DESK-RZ-L/Peripherals/LCD

From DAVE Developer's Wiki
Jump to: navigation, search
History
Issue Date Notes
2025/12/16 DESK-RZ-L-1.x.x release


Peripheral LCD[edit | edit source]

LCD display interface with a PWM-controlled backlight adjustment

Configuration[edit | edit source]

These peripheral(s) can only be used with the following ConfigID(s) (see the associated BOM):

ConfigID Note
2002 LCD is supported
2003 LCD is not supported: some pins are used to drive the motors

Device tree configuration[edit | edit source]

/ {
...
	lcd_vdd: regulator-lcd-vdd {
		compatible = "regulator-fixed";
		regulator-name = "LCD_VDD";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		enable-active-high;
		gpio = <&pinctrl RZT2H_GPIO(8, 0) GPIO_ACTIVE_HIGH>;
		startup-delay-us = <500>;

		status = "okay";
	};

	lcd_5v: regulator-lcd-5v {
		compatible = "regulator-fixed";
		regulator-name = "LCD_5V";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		enable-active-high;
		gpio = <&pinctrl RZT2H_GPIO(7, 7) GPIO_ACTIVE_HIGH>;
		startup-delay-us = <10000>;

		status = "okay";
	};

	panel_backlight: backlight {
		compatible = "pwm-backlight";
		pwms = <&gpt00_3 0 5000000>;
		pwm-names = "backlight";
		power-supply = <&lcd_5v>;

		brightness-levels = <0 3 6 8 11 13 16 18 21 23 26 29 31 34 36 39 41 44 46 49 51 54 57 59 62 64 67 69 72 74 77 80 82 85 87 90 92 95 97 100 102 105 108 110 113 115 118 120 123 125 128 131 133 136 138 141 143 146 148 151 153 156 159 161 164 166 169 171 174 176 179 182 184 187 189 192 194 197 199 202 204 207 210 212 215 217 220 222 225 227 230 233 235 238 240 243 245 248 250 253 255>;
		default-brightness-level = <75>;
	};

	panel-rgb@0 {
		compatible = "ampire,am_800480btmqw_tbmh_a_mode";
		status = "okay";

		power-supply = <&lcd_vdd>;
		backlight = <&panel_backlight>;

		port {
			panel_rgb_in: endpoint {
				remote-endpoint = <&du_out_rgb>;
			};
		};
	};
};
...
&gpt00_3 {
	pinctrl-0 = <&gpt00_3_pins>;
	pinctrl-names = "default";
	channel = "channel_B";

	status = "okay";
};

&du {
	pinctrl-0 = <&du_pins>;
	pinctrl-names = "default";

	status = "okay";

	ports {
		port@0 {
			du_out_rgb: endpoint {
				remote-endpoint = <&panel_rgb_in>;
			};
		};
	};
};

&pinctrl {
...
	gpt00_3_pins: gpt00 {
		pinmux =    <RZT2H_PORT_PINMUX(0, 7, 0x9)>; /* P00_7 GTIOC00_3B */
	};

	du_pins: du {
		du_data {
			pinmux =    <RZT2H_PORT_PINMUX(10, 2, 0x28)>, /* P10_2 DISP_DATAR2 | B_Y7   B2 */
				        <RZT2H_PORT_PINMUX(10, 3, 0x28)>, /* P10_3 DISP_DATAR3 | B_AA6  B1 */
				        <RZT2H_PORT_PINMUX(10, 4, 0x28)>, /* P10_4 DISP_DATAR4 | B_Y6   B5 */

				        <RZT2H_PORT_PINMUX(10, 5, 0x28)>, /* P10_5 DISP_DATAR4 | B_AA5  B3 */
				        <RZT2H_PORT_PINMUX(10, 6, 0x28)>, /* P10_6 DISP_DATAR6 | B_Y5   A6 */
				        <RZT2H_PORT_PINMUX(10, 7, 0x28)>, /* P10_7 DISP_DATAR7 | B_Y4   C4 */

				        <RZT2H_PORT_PINMUX(14, 2, 0x28)>, /* P14_2 DISP_DATAG2 | B_W4   C10 */
				        <RZT2H_PORT_PINMUX(14, 3, 0x28)>, /* P14_3 DISP_DATAG3 | B_V3   D9 */
				        <RZT2H_PORT_PINMUX(14, 4, 0x28)>, /* P14_4 DISP_DATAG4 | B_V4   A9 */

				        <RZT2H_PORT_PINMUX(14, 5, 0x28)>, /* P14_5 DISP_DATAG5 | B_U3   C11 */
				        <RZT2H_PORT_PINMUX(14, 6, 0x28)>, /* P14_6 DISP_DATAG6 | B_T3   B9 */
				        <RZT2H_PORT_PINMUX(17, 6, 0x28)>, /* P17_6 DISP_DATAG7 | B_T4   F13 */

				        <RZT2H_PORT_PINMUX(18, 1, 0x28)>, /* P18_1 DISP_DATAB2 | B_R4   E13 */
				        <RZT2H_PORT_PINMUX(18, 2, 0x28)>, /* P18_2 DISP_DATAB3 | B_R3   B15 */
				        <RZT2H_PORT_PINMUX(18, 3, 0x28)>, /* P18_3 DISP_DATAB4 | B_P3   D13 */

				        <RZT2H_PORT_PINMUX(18, 4, 0x28)>, /* P18_4 DISP_DATAB5 | B_N3   F15 */
				        <RZT2H_PORT_PINMUX(18, 5, 0x28)>, /* P18_5 DISP_DATAB6 | B_N4   G15 */
				        <RZT2H_PORT_PINMUX(18, 6, 0x28)>; /* P18_6 DISP_DATAB7 | B_M3   B16 */
			drive-strength = <3>;
		};

		du_clk {
			pinmux =    <RZT2H_PORT_PINMUX(9, 4, 0x28)>; /* P09_4 DISP_CLK | B_M4   D2 */
			drive-strength = <3>;
		};

		du_de {
			pinmux =    <RZT2H_PORT_PINMUX(9, 7, 0x28)>; /* P09_7 DISP_DE | B_J4   D5 */
			drive-strength = <3>;
		};
	};
...
};

Accessing the peripheral[edit | edit source]

Linux[edit | edit source]

...
[    0.384387] gpt-rzg2l 90002300.gpt00_3: RZ/G2L GPT Driver probed
...
[   62.737202] [drm] Initialized rcar-du 1.0.0 20130110 for 920c0000.display on minor 0
[   62.748512] [drm] Device 920c0000.display probed
[   62.844967] rcar-du 920c0000.display: [drm] fb0: rcar-dudrmfb frame buffer device
...

Backlight management

root@desk-t2h-usd-devel:~# ls /sys/class/backlight/backlight/           
actual_brightness  bl_power  brightness  device  max_brightness  power  scale  subsystem  type  event
root@desk-t2h-usd-devel:~# echo 5 > /sys/class/backlight/backlight/brightness
root@desk-t2h-usd-devel:~# echo 100 > /sys/class/backlight/backlight/brightness

Display power off and on

root@desk-t2h-usd-devel:~# echo 1 > /sys/class/graphics/fb0/blank 
root@desk-t2h-usd-devel:~# echo 0 > /sys/class/graphics/fb0/blank