2024-11-06 12:38 AM
Hi Everyone,
I have problem with custom carrier and dts. I am using MP135 SoM from PHYTEC and when I add panel backlight property to the panel node, there is no pwm output, but when I comment out this feature from the panel node, the panel backlight works as expected. Can you check my dts? I am using a generic RGB display. This is my working dts:
#include "stm32mp1-phycore-custom-carrier.dtsi"
/ {
model = "CUSTOM CARRIER";
compatible = "phytec,stm32mp135f-pbacd10", "phytec,stm32mp135f-pcl076-emmc",
"phytec,stm32mp135f-pcl076", "st,stm32mp135";
memory@c0000000 {
reg = <0xc0000000 0x20000000>;
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
optee_framebuffer@dd000000 {
reg = <0xdd000000 0x1000000>;
no-map;
};
optee@de000000 {
reg = <0xde000000 0x2000000>;
no-map;
};
};
panel_rgb: rgb-panel {
compatible = "panel-dpi";
label = "dt304b-lcd";
reset-gpios = <&gpioi 0 GPIO_ACTIVE_HIGH>;
//backlight = <&panel_backlight>;
data-mapping = "bgr666";
status = "okay";
width-mm = <115>;
height-mm = <80>;
port {
panel_in_rgb: endpoint {
remote-endpoint = <<dc_ep0_out>;
};
};
//SATOZ 4.3INCH PANEL TIMINGS
panel-timing {
clock-frequency = <9000000>;
hactive = <480>;
vactive = <272>;
hfront-porch = <8>;
hback-porch = <43>;
hsync-len = <4>;
vback-porch = <12>;
vfront-porch = <8>;
vsync-len = <4>;
};
};
panel_backlight: panel-backlight {
compatible = "pwm-backlight";
status = "okay";
pwms = <&pwm_8 2 50000 0>;
enable-gpios = <&gpiob 1 GPIO_ACTIVE_HIGH>;
power-supply = <&scmi_vdd>;
brightness-levels = <0 4 8 16 32 64 128 255>;
default-brightness-level = <6>;
};
user-leds {
compatible = "gpio-leds";
sys-green-led {
gpios = <&gpiob 13 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "heartbeat";
};
sys-red-led {
gpios = <&gpiob 5 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "gpio";
default-state = "on";
};
};
};
<dc {
pinctrl-names = "default", "sleep";
pinctrl-0 = <<dc_pins_mx>;
pinctrl-1 = <<dc_sleep_pins_mx>;
status = "okay";
port {
#address-cells = <1>;
#size-cells = <0>;
ltdc_ep0_out: endpoint@0 {
reg = <0>;
remote-endpoint = <&panel_in_rgb>;
};
};
};
&timers8 {
/delete-property/dmas;
/delete-property/dma-names;
status = "okay";
pwm_8: pwm {
pinctrl-0 = <&tim8_pwm_pins_mx>;
pinctrl-1 = <&tim8_pwm_sleep_pins_mx>;
pinctrl-names = "default", "sleep";
status = "okay";
};
};
&i2c5 {
/delete-node/i2c_rtc;
/delete-node/tlv320;
goodix: goodix_ts@14 {
compatible = "goodix,gt911";
reg = <0x14>;
interrupt-parent = <&gpiof>;
interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
interrupt-controller;
reset-gpios = <&gpiog 12 GPIO_ACTIVE_LOW>;
touchscreen-size-x = <480>;
touchscreen-size-y = <272>;
status = "okay";
};
};