Skip to main content
Associate II
November 6, 2024
Question

STM32MP135 NO BACKLIGHT

  • November 6, 2024
  • 0 replies
  • 815 views

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 = <&ltdc_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";
 };
 };
 };

 &ltdc {
 pinctrl-names = "default", "sleep";
 pinctrl-0 = <&ltdc_pins_mx>;
 pinctrl-1 = <&ltdc_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";
	};
};