RZ-G/RZG DeviceTree: Difference between revisions
Line 318: | Line 318: | ||
* '''Simple-Panel Driver:''' If you panel requires no special setup (no MIPI DSI DCS commands) or your system is doing it manually over I2C, you can use the kernels "simple-panel" driver. Note that you will be required to edit the driver file (drivers/gpu/drm/panel/panel-simple.c) to add your specific panel resolution and timing that you want. See kernel documentation Documentation/devicetree/bindings/panel/simple-panel.txt. | * '''Simple-Panel Driver:''' If you panel requires no special setup (no MIPI DSI DCS commands) or your system is doing it manually over I2C, you can use the kernels "simple-panel" driver. Note that you will be required to edit the driver file (drivers/gpu/drm/panel/panel-simple.c) to add your specific panel resolution and timing that you want. See kernel documentation Documentation/devicetree/bindings/panel/simple-panel.txt. | ||
* '''Parallel RGB LCD:''' Since a parallel LCD does not need any special setup, you can use simple-panel driver in the kernel. | * '''Parallel RGB LCD:''' Since a parallel LCD does not need any special setup, you can use simple-panel driver in the kernel. | ||
* '''Check Display Settings:''' You can use the command '''modetest -M rcar-du -c''' to check the status of your display driver. | |||
<br> | <br> | ||
Line 371: | Line 371: | ||
}; | }; | ||
}; | }; | ||
</pre> | |||
|} | |||
{| class="mw-collapsible mw-collapsed wikitable" | |||
| Example of RGB Panel on RZ/G2L   | |||
|- | |||
| | |||
* Add a rgb-dummy device | |||
<pre> | |||
rgb-dummy { | |||
compatible = "renesas,rgb-dummy"; | |||
ports { | |||
#address-cells = <1>; | |||
#size-cells = <0>; | |||
port@0 { | |||
reg = <0>; | |||
rgb_in: endpoint { | |||
remote-endpoint = <&du_out_rgb>; | |||
}; | |||
}; | |||
port@1 { | |||
reg = <1>; | |||
rgb_out: endpoint { | |||
remote-endpoint = <&panel_in>; | |||
}; | |||
}; | |||
}; | |||
}; | |||
</pre> | |||
* Add panel device node: | |||
<pre> | |||
panel { | |||
/* | |||
* Define code for panel here such as compatible, backlight, power,... | |||
* Can refer drivers/gpu/drm/panel/panel-simple.c | |||
*/ | |||
port { | |||
panel_in: endpoint { | |||
remote-endpoint = <&rgb_out>; | |||
}; | |||
}; | |||
}; | |||
</pre> | |||
* Add endpoint for DU RGB out: | |||
<pre> | |||
port@0 { | |||
du_out_rgb: endpoint { | |||
remote-endpoint = <&rgb_in>; | |||
}; | |||
}; | |||
</pre>|} | |||
=Audio= | =Audio= |
Revision as of 13:44, 6 October 2022
← RZ-G
- This page contains helpful notes about Device Tree configurations
RZ Specific Files
- Device Tree files for Renesas SoC and evaluation boards are under the directory arch/arm64/boot/dts/renesas
- Below is the list of Device Tree files used for the Renesas Evaluation boards.
RZ/G2H HiHope | |
File | Description |
---|---|
r8a774e1.dtsi | RZ/G2H Device Tree containing all peripherals |
hihope-common.dtsi | |
hihope-rev2.dtsi | |
hihope-rev4.dtsi | |
hihope-rzg2-ex-aistarvision-mipi-adapter-2.1.dtsi | |
hihope-rzg2-ex-aistarvision-mipi-adapter-2.4.dtsi | |
hihope-rzg2-ex.dtsi | |
hihope-rzg2-ex-lvds.dtsi | |
r8a774e1-hihope-rzg2h.dts | |
r8a774e1-hihope-rzg2h-ex.dts | |
r8a774e1-hihope-rzg2h-ex-idk-1110wr.dts | |
rzg2-advantech-idk-1110wr-panel.dtsi | |
r8a774e1-hihope-rzg2h-ex-mipi-2.1.dts | |
r8a774e1-hihope-rzg2h-ex-mipi-2.4.dts |
RZ/G2N HiHope | |
File | Description |
---|---|
r8a774b1.dtsi | RZ/G2N Device Tree containing all peripherals |
r8a774b1-hihope-rzg2n.dts | |
r8a774b1-hihope-rzg2n-ex.dts | |
r8a774b1-hihope-rzg2n-ex-idk-1110wr.dts | |
r8a774b1-hihope-rzg2n-ex-mipi-2.1.dts | |
r8a774b1-hihope-rzg2n-ex-mipi-2.4.dts | |
r8a774b1-hihope-rzg2n-rev2.dts | |
r8a774b1-hihope-rzg2n-rev2-ex.dts | |
r8a774b1-hihope-rzg2n-rev2-ex-idk-1110wr.dts | |
rzg2-advantech-idk-1110wr-panel.dtsi | |
r8a774b1-hihope-rzg2n-rev2-ex-mipi-2.1.dts | |
r8a774b1-hihope-rzg2n-rev2-ex-mipi-2.4.dts |
RZ/G2M HiHope | |
File | Description |
---|---|
r8a774a1.dtsi | RZ/G2M Device Tree containing all peripherals |
r8a774a1-hihope-rzg2m.dts | |
r8a774a1-hihope-rzg2m-ex.dts | |
r8a774a1-hihope-rzg2m-ex-idk-1110wr.dts | |
rzg2-advantech-idk-1110wr-panel.dtsi | |
r8a774a1-hihope-rzg2m-ex-mipi-2.1.dts | |
r8a774a1-hihope-rzg2m-ex-mipi-2.4.dts | |
r8a774a1-hihope-rzg2m-rev2.dts | |
r8a774a1-hihope-rzg2m-rev2-ex.dts | |
r8a774a1-hihope-rzg2m-rev2-ex-idk-1110wr.dts | |
r8a774a1-hihope-rzg2m-rev2-ex-mipi-2.1.dts | |
r8a774a1-hihope-rzg2m-rev2-ex-mipi-2.4.dts | |
r8a774a3.dtsi | |
r8a774a3-hihope-rzg2m.dts | |
r8a774a3-hihope-rzg2m-ex.dts | |
r8a774a3-hihope-rzg2m-ex-idk-1110wr.dts | |
rzg2-advantech-idk-1110wr-panel.dtsi | |
r8a774a3-hihope-rzg2m-ex-mipi-2.1.dts | |
r8a774a3-hihope-rzg2m-ex-mipi-2.4.dts |
RZ/G2E EK874 | |
File | Description |
---|---|
r8a774c0.dtsi | RZ/G2E Device Tree containing all peripherals |
r8a774c0-cat874.dts | |
r8a774c0-cat874-revc.dts | |
r8a774c0-ek874.dts | |
r8a774c0-ek874-idk-2121wr.dts | |
r8a774c0-ek874-mipi-2.1.dts | |
r8a774c0-ek874-mipi-2.4.dts | |
r8a774c0-ek874-revc.dts | |
r8a774c0-ek874-revc-idk-2121wr.dts | |
rzg2-advantech-idk-1110wr-panel.dtsi | |
r8a774c0-ek874-revc-mipi-2.1.dts | |
r8a774c0-ek874-revc-mipi-2.4.dts | |
r8a774c0-es10-cat874.dts | |
r8a774c0-es10.dtsi | |
r8a774c0-es10-ek874.dts | |
r8a774c0-es10-ek874-idk-2121wr.dts | |
r8a774c0-es10-ek874-mipi-2.1.dts | |
r8a774c0-es10-ek874-mipi-2.4.dts | |
cat874-common.dtsi | |
cat875.dtsi |
RZ/G2L SMARC | |
File | Description |
---|---|
r9a07g044.dtsi | RZ/G2L family SoC common parts |
r9a07g044l.dtsi | Specific to RZ/G2L (R9A07G044L) SoC |
r9a07g044l1.dtsi | Specific to RZ/G2L (R9A07G044L single cortex A55) SoC |
r9a07g044l2.dtsi | Specific to RZ/G2L (R9A07G044L dual cortex A55) SoC |
rz-smarc-common.dtsi | |
rzg2l-smarc.dtsi | |
rzg2l-smarc-pinfunction.dtsi | |
rzg2l-smarc-som.dtsi | |
r9a07g044l2-smarc.dts |
RZ/G2LC SMARC | |
File | Description |
---|---|
r9a07g044c1.dtsi | RZ/G2LC Device Tree containing all peripherals |
r9a07g044c2.dtsi | RZ/G2LC Device Tree containing all peripherals |
r9a07g044c2-smarc.dts | |
rzg2lc-smarc.dtsi | |
rzg2lc-smarc-pinfunction.dtsi | |
rzg2lc-smarc-som.dtsi |
RZ/G2UL SMARC | |
File | Description |
---|---|
rzg2ul-smarc.dtsi | |
r9a07g043.dtsi | RZ/G2UL Device Tree containing all peripherals |
r9a07g043u11.dtsi | |
r9a07g043u11-smarc.dts | |
r9a07g043u12.dtsi |
RZ/V2L SMARC | |
File | Description |
---|---|
r9a07g054.dtsi | RZ/V2L Device Tree containing all peripherals |
r9a07g054l1.dtsi | |
r9a07g054l2-dev.dts | |
r9a07g054l2.dtsi | |
r9a07g054l2-smarc.dts |
Internal Renesas boards
- r9a07g044l2-dev.dts
- rzg2l-smarc-dev.dtsi
Device Tree Syntax
Top Level (root node)
Compatible for the SoC
- The .dtsi file for each SoC will have a "compatible" string to specify that SoC it is. If you decide to make your own top level compatible, make sure you include the original SoC string. The reason is that some drivers (the VSP driver for example) look for that SoC string to know what SoC they are running on. If it is missing, it will not load or run correctly.
Here is a correct example of a .dts file for a RZ/G2L board. Notice how "renesas,r9a07g044" is at the end of the line.
/ { model = "My Really Cool RZ/G2L Board"; compatible = "my-rzg2l-board" , "renesas,r9a07g044"; chosen { bootargs = "ignore_loglevel rw root=/dev/mmc0blk1"; stdout-path = "serial0:115200n8"; }; };
Pin Control (pin mux)
Linux Drivers
- RZ/G2H, G2M, G2N, G2E:
- drivers/pinctrl/renesas/*
- CONFIG_xxx=y
- Documentation/devicetree/bindings/pinctrl/renesas,pcf.yaml
- RZ/G2L, G2LC, G2UL, V2L:
- drivers/pinctrl/renesas/pfc-rzg2l.c
- CONFIG_xxx=y
- Documentation/devicetree/bindings/pinctrl/renesas,rzg2l-pinctrl.yaml
Notes
Device Tree Examples
- (see device tree for evaluation board)
IRQ0-7
Linux Drivers
- RZ/G2H, G2M, G2N, G2E:
- CONFIG_xxx=y
- RZ/G2L, G2LC, G2UL, V2L:
- drivers/irqchip/irq-renesas-rzg2l.c
- CONFIG_RENESAS_RZG2L_IRQC=y
- Added after 'rz-5.10-cip13'
Notes
Device Tree Examples
Display
Linux Drivers
- RZ/G2H, G2M, G2N, G2E:
- CONFIG_xxx=y
- RZ/G2L, G2LC, G2UL, V2L:
- CONFIG_xxx=y
Notes
- Ports Node When defining ports { }, you must set #address-cells = <1>; and #size-cells = <0>;. For more information, see the documentation in the kernel source: Documentation/devicetree/bindings/media/video-interfaces.txt
- Resolution and Clock Definitions: An LCD Panel will have it's own separate driver. That driver will define the clock rate and resolution. The Renesas LCD driver will then get that information in order to set up the LCD controller (DU) output.
- DCS Commands: Many (most) MIPI DSI Panels require setup command (DCS) to be set over MIPI DSI to configure the panel's controller before pixel data can be sent. This is why there is usually a separate driver for each LCD since these commands are specific to each LCD panel.
- Simple-Panel Driver: If you panel requires no special setup (no MIPI DSI DCS commands) or your system is doing it manually over I2C, you can use the kernels "simple-panel" driver. Note that you will be required to edit the driver file (drivers/gpu/drm/panel/panel-simple.c) to add your specific panel resolution and timing that you want. See kernel documentation Documentation/devicetree/bindings/panel/simple-panel.txt.
- Parallel RGB LCD: Since a parallel LCD does not need any special setup, you can use simple-panel driver in the kernel.
- Check Display Settings: You can use the command modetest -M rcar-du -c to check the status of your display driver.
Device Tree Examples:
- RZ/G2L: MIPI-CSI to HDMI Bridge: See device tree for evaluation board.
Example of MIPI DSI Panel on RZ/G2L |
&du { status = "okay"; }; &dsi0 { status = "okay"; #address-cells = <1>; #size-cells = <0>; ports { #address-cells = <1>; #size-cells = <0>; port@1 { dsi0_out: endpoint { remote-endpoint = <&panel_in>; data-lanes = <1 2>; }; }; }; panel@0 { compatible = "ilitek,ili9881c"; reg = <0>; dsi-lanes = <2>; enable-gpios = <&pinctrl RZG2L_GPIO(43, 0) GPIO_ACTIVE_HIGH>; backlight = <&backlight>; status = "okay"; port { panel_in: endpoint { remote-endpoint = <&dsi0_out>; }; }; }; }; |
Example of RGB Panel on RZ/G2L | ||||
rgb-dummy { compatible = "renesas,rgb-dummy"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; rgb_in: endpoint { remote-endpoint = <&du_out_rgb>; }; }; port@1 { reg = <1>; rgb_out: endpoint { remote-endpoint = <&panel_in>; }; }; }; };
panel { /* * Define code for panel here such as compatible, backlight, power,... * Can refer drivers/gpu/drm/panel/panel-simple.c */ port { panel_in: endpoint { remote-endpoint = <&rgb_out>; }; }; };
port@0 { du_out_rgb: endpoint { remote-endpoint = <&rgb_in>; }; };|}
AudioLinux Drivers
Device Tree Examples
CameraLinux Drivers
Notes Device Tree Examples
EthernetLinux Drivers
Notes
USBLinux Drivers
Notes Device Tree Examples
SD CardLinux Drivers
Notes Device Tree Examples
eMMCLinux Drivers
Notes
Device Tree Examples
I2CLinux Drivers
Notes Device Tree Examples
SPILinux Drivers
Notes Device Tree Examples
QSPI FlashLinux Drivers
Notes Device Tree Examples
UART (SCIF)Linux Drivers
Notes Device Tree Examples
UART (SCI)Linux Drivers
Notes Device Tree Examples
CANLinux Drivers
Notes Device Tree Examples
ADCLinux Drivers
Notes Device Tree Examples
Watchdog Timer(WDT)Linux Drivers
Notes
Device Tree Examples
PWMLinux Drivers
Notes Device Tree Examples
TimerLinux Drivers
Notes Device Tree Examples
ThermalLinux Drivers
Notes
Device Tree Examples
PMIC RAA215300Linux Drivers
Notes
Device Tree Examples
|