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

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

Convert ldb.txt to yaml format.

Additional changes
- fix clock-names order to match existed dts file.
- remove lvds-panel and iomuxc-gpr node in examples.
- fsl,imx6q-ldb fail back to fsl,imx53-ldb.
- add fsl,panel property to match existed dts.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Link: https://lore.kernel.org/r/20250417145742.3568572-1-Frank.Li@nxp.com
[robh: Use #/properties/port schema for port]
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>

authored by

Frank Li and committed by
Rob Herring (Arm)
e808ed95 ba127016

+193 -146
+193
Documentation/devicetree/bindings/display/imx/fsl,imx6q-ldb.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-ldb.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale LVDS Display Bridge (ldb) 8 + 9 + description: 10 + The LVDS Display Bridge device tree node contains up to two lvds-channel 11 + nodes describing each of the two LVDS encoder channels of the bridge. 12 + 13 + maintainers: 14 + - Frank Li <Frank.Li@nxp.com> 15 + 16 + properties: 17 + compatible: 18 + oneOf: 19 + - enum: 20 + - fsl,imx53-ldb 21 + - items: 22 + - enum: 23 + - fsl,imx6q-ldb 24 + - const: fsl,imx53-ldb 25 + 26 + reg: 27 + maxItems: 1 28 + 29 + '#address-cells': 30 + const: 1 31 + 32 + '#size-cells': 33 + const: 0 34 + 35 + gpr: 36 + $ref: /schemas/types.yaml#/definitions/phandle 37 + description: 38 + The phandle points to the iomuxc-gpr region containing the LVDS 39 + control register. 40 + 41 + clocks: 42 + minItems: 6 43 + maxItems: 8 44 + 45 + clock-names: 46 + oneOf: 47 + - items: 48 + - const: di0_pll 49 + - const: di1_pll 50 + - const: di0_sel 51 + - const: di1_sel 52 + - const: di0 53 + - const: di1 54 + - items: 55 + - const: di0_pll 56 + - const: di1_pll 57 + - const: di0_sel 58 + - const: di1_sel 59 + - const: di2_sel 60 + - const: di3_sel 61 + - const: di0 62 + - const: di1 63 + 64 + fsl,dual-channel: 65 + $ref: /schemas/types.yaml#/definitions/flag 66 + description: 67 + if it exists, only LVDS channel 0 should 68 + be configured - one input will be distributed on both outputs in dual 69 + channel mode 70 + 71 + patternProperties: 72 + '^lvds-channel@[0-1]$': 73 + type: object 74 + description: 75 + Each LVDS Channel has to contain either an of graph link to a panel device node 76 + or a display-timings node that describes the video timings for the connected 77 + LVDS display as well as the fsl,data-mapping and fsl,data-width properties. 78 + 79 + properties: 80 + reg: 81 + maxItems: 1 82 + 83 + '#address-cells': 84 + const: 1 85 + 86 + '#size-cells': 87 + const: 0 88 + 89 + display-timings: 90 + $ref: /schemas/display/panel/display-timings.yaml# 91 + 92 + fsl,data-mapping: 93 + enum: 94 + - spwg 95 + - jeida 96 + 97 + fsl,data-width: 98 + $ref: /schemas/types.yaml#/definitions/uint32 99 + description: should be <18> or <24> 100 + enum: 101 + - 18 102 + - 24 103 + 104 + fsl,panel: 105 + $ref: /schemas/types.yaml#/definitions/phandle 106 + description: phandle to lcd panel 107 + 108 + patternProperties: 109 + '^port@[0-4]$': 110 + $ref: /schemas/graph.yaml#/properties/port 111 + description: 112 + On i.MX5, the internal two-input-multiplexer is used. Due to hardware 113 + limitations, only one input port (port@[0,1]) can be used for each channel 114 + (lvds-channel@[0,1], respectively). 115 + On i.MX6, there should be four input ports (port@[0-3]) that correspond 116 + to the four LVDS multiplexer inputs. 117 + A single output port (port@2 on i.MX5, port@4 on i.MX6) must be connected 118 + to a panel input port. Optionally, the output port can be left out if 119 + display-timings are used instead. 120 + 121 + additionalProperties: false 122 + 123 + required: 124 + - compatible 125 + - gpr 126 + - clocks 127 + - clock-names 128 + 129 + additionalProperties: false 130 + 131 + examples: 132 + - | 133 + #include <dt-bindings/clock/imx5-clock.h> 134 + 135 + ldb@53fa8008 { 136 + compatible = "fsl,imx53-ldb"; 137 + reg = <0x53fa8008 0x4>; 138 + #address-cells = <1>; 139 + #size-cells = <0>; 140 + gpr = <&gpr>; 141 + clocks = <&clks IMX5_CLK_LDB_DI0_SEL>, 142 + <&clks IMX5_CLK_LDB_DI1_SEL>, 143 + <&clks IMX5_CLK_IPU_DI0_SEL>, 144 + <&clks IMX5_CLK_IPU_DI1_SEL>, 145 + <&clks IMX5_CLK_LDB_DI0_GATE>, 146 + <&clks IMX5_CLK_LDB_DI1_GATE>; 147 + clock-names = "di0_pll", "di1_pll", 148 + "di0_sel", "di1_sel", 149 + "di0", "di1"; 150 + 151 + /* Using an of-graph endpoint link to connect the panel */ 152 + lvds-channel@0 { 153 + reg = <0>; 154 + #address-cells = <1>; 155 + #size-cells = <0>; 156 + 157 + port@0 { 158 + reg = <0>; 159 + 160 + endpoint { 161 + remote-endpoint = <&ipu_di0_lvds0>; 162 + }; 163 + }; 164 + 165 + port@2 { 166 + reg = <2>; 167 + 168 + endpoint { 169 + remote-endpoint = <&panel_in>; 170 + }; 171 + }; 172 + }; 173 + 174 + /* Using display-timings and fsl,data-mapping/width instead */ 175 + lvds-channel@1 { 176 + reg = <1>; 177 + #address-cells = <1>; 178 + #size-cells = <0>; 179 + fsl,data-mapping = "spwg"; 180 + fsl,data-width = <24>; 181 + 182 + display-timings {/* ... */ 183 + }; 184 + 185 + port@1 { 186 + reg = <1>; 187 + 188 + endpoint { 189 + remote-endpoint = <&ipu_di1_lvds1>; 190 + }; 191 + }; 192 + }; 193 + };
-146
Documentation/devicetree/bindings/display/imx/ldb.txt
··· 1 - Device-Tree bindings for LVDS Display Bridge (ldb) 2 - 3 - LVDS Display Bridge 4 - =================== 5 - 6 - The LVDS Display Bridge device tree node contains up to two lvds-channel 7 - nodes describing each of the two LVDS encoder channels of the bridge. 8 - 9 - Required properties: 10 - - #address-cells : should be <1> 11 - - #size-cells : should be <0> 12 - - compatible : should be "fsl,imx53-ldb" or "fsl,imx6q-ldb". 13 - Both LDB versions are similar, but i.MX6 has an additional 14 - multiplexer in the front to select any of the four IPU display 15 - interfaces as input for each LVDS channel. 16 - - gpr : should be <&gpr> on i.MX53 and i.MX6q. 17 - The phandle points to the iomuxc-gpr region containing the LVDS 18 - control register. 19 - - clocks, clock-names : phandles to the LDB divider and selector clocks and to 20 - the display interface selector clocks, as described in 21 - Documentation/devicetree/bindings/clock/clock-bindings.txt 22 - The following clocks are expected on i.MX53: 23 - "di0_pll" - LDB LVDS channel 0 mux 24 - "di1_pll" - LDB LVDS channel 1 mux 25 - "di0" - LDB LVDS channel 0 gate 26 - "di1" - LDB LVDS channel 1 gate 27 - "di0_sel" - IPU1 DI0 mux 28 - "di1_sel" - IPU1 DI1 mux 29 - On i.MX6q the following additional clocks are needed: 30 - "di2_sel" - IPU2 DI0 mux 31 - "di3_sel" - IPU2 DI1 mux 32 - The needed clock numbers for each are documented in 33 - Documentation/devicetree/bindings/clock/imx5-clock.yaml, and in 34 - Documentation/devicetree/bindings/clock/imx6q-clock.yaml. 35 - 36 - Optional properties: 37 - - pinctrl-names : should be "default" on i.MX53, not used on i.MX6q 38 - - pinctrl-0 : a phandle pointing to LVDS pin settings on i.MX53, 39 - not used on i.MX6q 40 - - fsl,dual-channel : boolean. if it exists, only LVDS channel 0 should 41 - be configured - one input will be distributed on both outputs in dual 42 - channel mode 43 - 44 - LVDS Channel 45 - ============ 46 - 47 - Each LVDS Channel has to contain either an of graph link to a panel device node 48 - or a display-timings node that describes the video timings for the connected 49 - LVDS display as well as the fsl,data-mapping and fsl,data-width properties. 50 - 51 - Required properties: 52 - - reg : should be <0> or <1> 53 - - port: Input and output port nodes with endpoint definitions as defined in 54 - Documentation/devicetree/bindings/graph.txt. 55 - On i.MX5, the internal two-input-multiplexer is used. Due to hardware 56 - limitations, only one input port (port@[0,1]) can be used for each channel 57 - (lvds-channel@[0,1], respectively). 58 - On i.MX6, there should be four input ports (port@[0-3]) that correspond 59 - to the four LVDS multiplexer inputs. 60 - A single output port (port@2 on i.MX5, port@4 on i.MX6) must be connected 61 - to a panel input port. Optionally, the output port can be left out if 62 - display-timings are used instead. 63 - 64 - Optional properties (required if display-timings are used): 65 - - display-timings : A node that describes the display timings as defined in 66 - Documentation/devicetree/bindings/display/panel/display-timing.txt. 67 - - fsl,data-mapping : should be "spwg" or "jeida" 68 - This describes how the color bits are laid out in the 69 - serialized LVDS signal. 70 - - fsl,data-width : should be <18> or <24> 71 - 72 - example: 73 - 74 - gpr: iomuxc-gpr@53fa8000 { 75 - /* ... */ 76 - }; 77 - 78 - ldb: ldb@53fa8008 { 79 - #address-cells = <1>; 80 - #size-cells = <0>; 81 - compatible = "fsl,imx53-ldb"; 82 - gpr = <&gpr>; 83 - clocks = <&clks IMX5_CLK_LDB_DI0_SEL>, 84 - <&clks IMX5_CLK_LDB_DI1_SEL>, 85 - <&clks IMX5_CLK_IPU_DI0_SEL>, 86 - <&clks IMX5_CLK_IPU_DI1_SEL>, 87 - <&clks IMX5_CLK_LDB_DI0_GATE>, 88 - <&clks IMX5_CLK_LDB_DI1_GATE>; 89 - clock-names = "di0_pll", "di1_pll", 90 - "di0_sel", "di1_sel", 91 - "di0", "di1"; 92 - 93 - /* Using an of-graph endpoint link to connect the panel */ 94 - lvds-channel@0 { 95 - #address-cells = <1>; 96 - #size-cells = <0>; 97 - reg = <0>; 98 - 99 - port@0 { 100 - reg = <0>; 101 - 102 - lvds0_in: endpoint { 103 - remote-endpoint = <&ipu_di0_lvds0>; 104 - }; 105 - }; 106 - 107 - port@2 { 108 - reg = <2>; 109 - 110 - lvds0_out: endpoint { 111 - remote-endpoint = <&panel_in>; 112 - }; 113 - }; 114 - }; 115 - 116 - /* Using display-timings and fsl,data-mapping/width instead */ 117 - lvds-channel@1 { 118 - #address-cells = <1>; 119 - #size-cells = <0>; 120 - reg = <1>; 121 - fsl,data-mapping = "spwg"; 122 - fsl,data-width = <24>; 123 - 124 - display-timings { 125 - /* ... */ 126 - }; 127 - 128 - port@1 { 129 - reg = <1>; 130 - 131 - lvds1_in: endpoint { 132 - remote-endpoint = <&ipu_di1_lvds1>; 133 - }; 134 - }; 135 - }; 136 - }; 137 - 138 - panel: lvds-panel { 139 - /* ... */ 140 - 141 - port { 142 - panel_in: endpoint { 143 - remote-endpoint = <&lvds0_out>; 144 - }; 145 - }; 146 - };