Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: display: imx: convert fsl-imx-drm.txt to yaml format

Convert fsl-imx-drm.txt to yaml format and create 5 yaml files for
differences purpose.

Additional changes:
- add missed include file in examples.
- add clocks, clock-names for ipu.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Link: https://lore.kernel.org/r/20250415212943.3400852-1-Frank.Li@nxp.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>

authored by

Frank Li and committed by
Rob Herring (Arm)
b252d1b0 50ede3b0

+316 -160
+36
Documentation/devicetree/bindings/display/imx/fsl,imx-display-subsystem.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/display/imx/fsl,imx-display-subsystem.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale i.MX DRM master device 8 + 9 + maintainers: 10 + - Frank Li <Frank.Li@nxp.com> 11 + 12 + description: 13 + The freescale i.MX DRM master device is a virtual device needed to list all 14 + IPU or other display interface nodes that comprise the graphics subsystem. 15 + 16 + properties: 17 + compatible: 18 + const: fsl,imx-display-subsystem 19 + 20 + ports: 21 + $ref: /schemas/types.yaml#/definitions/phandle-array 22 + description: 23 + Should contain a list of phandles pointing to camera 24 + sensor interface ports of IPU devices. 25 + 26 + required: 27 + - compatible 28 + 29 + additionalProperties: false 30 + 31 + examples: 32 + - | 33 + display-subsystem { 34 + compatible = "fsl,imx-display-subsystem"; 35 + ports = <&ipu_di0>; 36 + };
+74
Documentation/devicetree/bindings/display/imx/fsl,imx-parallel-display.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/display/imx/fsl,imx-parallel-display.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Parallel display support 8 + 9 + maintainers: 10 + - Frank Li <Frank.Li@nxp.com> 11 + 12 + properties: 13 + compatible: 14 + const: fsl,imx-parallel-display 15 + 16 + interface-pix-fmt: 17 + $ref: /schemas/types.yaml#/definitions/string 18 + enum: 19 + - rgb24 20 + - rgb565 21 + - bgr666 22 + - lvds666 23 + 24 + ddc: 25 + $ref: /schemas/types.yaml#/definitions/phandle 26 + description: 27 + phandle describing the i2c bus handling the display data channel 28 + 29 + '#address-cells': 30 + const: 1 31 + 32 + '#size-cells': 33 + const: 0 34 + 35 + port@0: 36 + $ref: /schemas/graph.yaml#/$defs/port-base 37 + unevaluatedProperties: false 38 + description: input port connected to the IPU display interface 39 + 40 + port@1: 41 + $ref: /schemas/graph.yaml#/$defs/port-base 42 + unevaluatedProperties: false 43 + description: output port connected to a panel 44 + 45 + required: 46 + - compatible 47 + 48 + additionalProperties: false 49 + 50 + examples: 51 + - | 52 + display { 53 + compatible = "fsl,imx-parallel-display"; 54 + #address-cells = <1>; 55 + #size-cells = <0>; 56 + interface-pix-fmt = "rgb24"; 57 + 58 + port@0 { 59 + reg = <0>; 60 + 61 + endpoint { 62 + remote-endpoint = <&ipu_di0_disp0>; 63 + }; 64 + }; 65 + 66 + port@1 { 67 + reg = <1>; 68 + 69 + endpoint { 70 + remote-endpoint = <&panel_in>; 71 + }; 72 + }; 73 + }; 74 +
+97
Documentation/devicetree/bindings/display/imx/fsl,imx6q-ipu.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/display/imx/fsl,imx6q-ipu.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale i.MX IPUv3 8 + 9 + maintainers: 10 + - Frank Li <Frank.Li@nxp.com> 11 + 12 + properties: 13 + compatible: 14 + oneOf: 15 + - enum: 16 + - fsl,imx51-ipu 17 + - fsl,imx53-ipu 18 + - fsl,imx6q-ipu 19 + - items: 20 + - const: fsl,imx6qp-ipu 21 + - const: fsl,imx6q-ipu 22 + 23 + reg: 24 + maxItems: 1 25 + 26 + interrupts: 27 + minItems: 1 28 + maxItems: 2 29 + 30 + clocks: 31 + maxItems: 3 32 + 33 + clock-names: 34 + items: 35 + - const: bus 36 + - const: di0 37 + - const: di1 38 + 39 + resets: 40 + maxItems: 1 41 + 42 + '#address-cells': 43 + const: 1 44 + 45 + '#size-cells': 46 + const: 0 47 + 48 + fsl,prg: 49 + $ref: /schemas/types.yaml#/definitions/phandle 50 + description: phandle to prg node associated with this IPU instance 51 + 52 + port@0: 53 + $ref: /schemas/graph.yaml#/$defs/port-base 54 + unevaluatedProperties: false 55 + description: CSI0 56 + 57 + port@1: 58 + $ref: /schemas/graph.yaml#/$defs/port-base 59 + unevaluatedProperties: false 60 + description: CSI1 61 + 62 + port@2: 63 + $ref: /schemas/graph.yaml#/$defs/port-base 64 + unevaluatedProperties: false 65 + description: DI0 66 + 67 + port@3: 68 + $ref: /schemas/graph.yaml#/$defs/port-base 69 + unevaluatedProperties: false 70 + description: DI1 71 + 72 + required: 73 + - compatible 74 + - reg 75 + - interrupts 76 + - resets 77 + 78 + additionalProperties: false 79 + 80 + examples: 81 + - | 82 + display-controller@18000000 { 83 + compatible = "fsl,imx53-ipu"; 84 + reg = <0x18000000 0x080000000>; 85 + #address-cells = <1>; 86 + #size-cells = <0>; 87 + interrupts = <11 10>; 88 + resets = <&src 2>; 89 + 90 + port@2 { 91 + reg = <2>; 92 + 93 + endpoint { 94 + remote-endpoint = <&display_in>; 95 + }; 96 + }; 97 + };
+55
Documentation/devicetree/bindings/display/imx/fsl,imx6qp-pre.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/display/imx/fsl,imx6qp-pre.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale i.MX PRE (Prefetch Resolve Engine) 8 + 9 + maintainers: 10 + - Frank Li <Frank.Li@nxp.com> 11 + 12 + properties: 13 + compatible: 14 + const: fsl,imx6qp-pre 15 + 16 + reg: 17 + maxItems: 1 18 + 19 + interrupts: 20 + maxItems: 1 21 + 22 + clocks: 23 + maxItems: 1 24 + 25 + clock-names: 26 + items: 27 + - const: axi 28 + fsl,iram: 29 + $ref: /schemas/types.yaml#/definitions/phandle 30 + description: 31 + phandle pointing to the mmio-sram device node, that should be 32 + used for the PRE SRAM double buffer. 33 + 34 + required: 35 + - compatible 36 + - reg 37 + - interrupts 38 + - clocks 39 + - clock-names 40 + 41 + additionalProperties: false 42 + 43 + examples: 44 + - | 45 + #include <dt-bindings/clock/imx6qdl-clock.h> 46 + #include <dt-bindings/interrupt-controller/arm-gic.h> 47 + 48 + pre@21c8000 { 49 + compatible = "fsl,imx6qp-pre"; 50 + reg = <0x021c8000 0x1000>; 51 + interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>; 52 + clocks = <&clks IMX6QDL_CLK_PRE0>; 53 + clock-names = "axi"; 54 + fsl,iram = <&ocram2>; 55 + };
+54
Documentation/devicetree/bindings/display/imx/fsl,imx6qp-prg.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/display/imx/fsl,imx6qp-prg.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale i.MX PRG (Prefetch Resolve Gasket) 8 + 9 + maintainers: 10 + - Frank Li <Frank.Li@nxp.com> 11 + 12 + properties: 13 + compatible: 14 + const: fsl,imx6qp-prg 15 + 16 + reg: 17 + maxItems: 1 18 + 19 + clocks: 20 + maxItems: 2 21 + 22 + clock-names: 23 + items: 24 + - const: ipg 25 + - const: axi 26 + 27 + fsl,pres: 28 + $ref: /schemas/types.yaml#/definitions/phandle-array 29 + items: 30 + maxItems: 1 31 + description: 32 + phandles to the PRE units attached to this PRG, with the fixed 33 + PRE as the first entry and the muxable PREs following. 34 + 35 + required: 36 + - compatible 37 + - reg 38 + - clocks 39 + - clock-names 40 + 41 + additionalProperties: false 42 + 43 + examples: 44 + - | 45 + #include <dt-bindings/clock/imx6qdl-clock.h> 46 + 47 + prg@21cc000 { 48 + compatible = "fsl,imx6qp-prg"; 49 + reg = <0x021cc000 0x1000>; 50 + clocks = <&clks IMX6QDL_CLK_PRG0_APB>, <&clks IMX6QDL_CLK_PRG0_AXI>; 51 + clock-names = "ipg", "axi"; 52 + fsl,pres = <&pre1>, <&pre2>, <&pre3>; 53 + }; 54 +
-160
Documentation/devicetree/bindings/display/imx/fsl-imx-drm.txt
··· 1 - Freescale i.MX DRM master device 2 - ================================ 3 - 4 - The freescale i.MX DRM master device is a virtual device needed to list all 5 - IPU or other display interface nodes that comprise the graphics subsystem. 6 - 7 - Required properties: 8 - - compatible: Should be "fsl,imx-display-subsystem" 9 - - ports: Should contain a list of phandles pointing to display interface ports 10 - of IPU devices 11 - 12 - example: 13 - 14 - display-subsystem { 15 - compatible = "fsl,imx-display-subsystem"; 16 - ports = <&ipu_di0>; 17 - }; 18 - 19 - 20 - Freescale i.MX IPUv3 21 - ==================== 22 - 23 - Required properties: 24 - - compatible: Should be "fsl,<chip>-ipu" where <chip> is one of 25 - - imx51 26 - - imx53 27 - - imx6q 28 - - imx6qp 29 - - reg: should be register base and length as documented in the 30 - datasheet 31 - - interrupts: Should contain sync interrupt and error interrupt, 32 - in this order. 33 - - resets: phandle pointing to the system reset controller and 34 - reset line index, see reset/fsl,imx-src.txt for details 35 - Additional required properties for fsl,imx6qp-ipu: 36 - - fsl,prg: phandle to prg node associated with this IPU instance 37 - Optional properties: 38 - - port@[0-3]: Port nodes with endpoint definitions as defined in 39 - Documentation/devicetree/bindings/media/video-interfaces.txt. 40 - Ports 0 and 1 should correspond to CSI0 and CSI1, 41 - ports 2 and 3 should correspond to DI0 and DI1, respectively. 42 - 43 - example: 44 - 45 - ipu: ipu@18000000 { 46 - #address-cells = <1>; 47 - #size-cells = <0>; 48 - compatible = "fsl,imx53-ipu"; 49 - reg = <0x18000000 0x080000000>; 50 - interrupts = <11 10>; 51 - resets = <&src 2>; 52 - 53 - ipu_di0: port@2 { 54 - reg = <2>; 55 - 56 - ipu_di0_disp0: endpoint { 57 - remote-endpoint = <&display_in>; 58 - }; 59 - }; 60 - }; 61 - 62 - Freescale i.MX PRE (Prefetch Resolve Engine) 63 - ============================================ 64 - 65 - Required properties: 66 - - compatible: should be "fsl,imx6qp-pre" 67 - - reg: should be register base and length as documented in the 68 - datasheet 69 - - clocks : phandle to the PRE axi clock input, as described 70 - in Documentation/devicetree/bindings/clock/clock-bindings.txt and 71 - Documentation/devicetree/bindings/clock/imx6q-clock.yaml. 72 - - clock-names: should be "axi" 73 - - interrupts: should contain the PRE interrupt 74 - - fsl,iram: phandle pointing to the mmio-sram device node, that should be 75 - used for the PRE SRAM double buffer. 76 - 77 - example: 78 - 79 - pre@21c8000 { 80 - compatible = "fsl,imx6qp-pre"; 81 - reg = <0x021c8000 0x1000>; 82 - interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>; 83 - clocks = <&clks IMX6QDL_CLK_PRE0>; 84 - clock-names = "axi"; 85 - fsl,iram = <&ocram2>; 86 - }; 87 - 88 - Freescale i.MX PRG (Prefetch Resolve Gasket) 89 - ============================================ 90 - 91 - Required properties: 92 - - compatible: should be "fsl,imx6qp-prg" 93 - - reg: should be register base and length as documented in the 94 - datasheet 95 - - clocks : phandles to the PRG ipg and axi clock inputs, as described 96 - in Documentation/devicetree/bindings/clock/clock-bindings.txt and 97 - Documentation/devicetree/bindings/clock/imx6q-clock.yaml. 98 - - clock-names: should be "ipg" and "axi" 99 - - fsl,pres: phandles to the PRE units attached to this PRG, with the fixed 100 - PRE as the first entry and the muxable PREs following. 101 - 102 - example: 103 - 104 - prg@21cc000 { 105 - compatible = "fsl,imx6qp-prg"; 106 - reg = <0x021cc000 0x1000>; 107 - clocks = <&clks IMX6QDL_CLK_PRG0_APB>, 108 - <&clks IMX6QDL_CLK_PRG0_AXI>; 109 - clock-names = "ipg", "axi"; 110 - fsl,pres = <&pre1>, <&pre2>, <&pre3>; 111 - }; 112 - 113 - Parallel display support 114 - ======================== 115 - 116 - Required properties: 117 - - compatible: Should be "fsl,imx-parallel-display" 118 - Optional properties: 119 - - interface-pix-fmt: How this display is connected to the 120 - display interface. Currently supported types: "rgb24", "rgb565", "bgr666" 121 - and "lvds666". 122 - - ddc: phandle describing the i2c bus handling the display data 123 - channel 124 - - port@[0-1]: Port nodes with endpoint definitions as defined in 125 - Documentation/devicetree/bindings/media/video-interfaces.txt. 126 - Port 0 is the input port connected to the IPU display interface, 127 - port 1 is the output port connected to a panel. 128 - 129 - example: 130 - 131 - disp0 { 132 - compatible = "fsl,imx-parallel-display"; 133 - interface-pix-fmt = "rgb24"; 134 - 135 - port@0 { 136 - reg = <0>; 137 - 138 - display_in: endpoint { 139 - remote-endpoint = <&ipu_di0_disp0>; 140 - }; 141 - }; 142 - 143 - port@1 { 144 - reg = <1>; 145 - 146 - display_out: endpoint { 147 - remote-endpoint = <&panel_in>; 148 - }; 149 - }; 150 - }; 151 - 152 - panel { 153 - ... 154 - 155 - port { 156 - panel_in: endpoint { 157 - remote-endpoint = <&display_out>; 158 - }; 159 - }; 160 - };