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

dt-bindings: media: convert nxp,tda1997x.txt to yaml format

Convert nxp,tda1997x.txt to yaml format

Additional changes:
- update audio width to 8, 16, 24, 32.
- keep one example only.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>

authored by

Frank Li and committed by
Hans Verkuil
c423487b 577242cd

+162 -178
+162
Documentation/devicetree/bindings/media/i2c/nxp,tda19971.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/media/i2c/nxp,tda19971.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: NXP TDA1997x HDMI receiver 8 + 9 + maintainers: 10 + - Frank Li <Frank.Li@nxp.com> 11 + 12 + description: | 13 + The TDA19971/73 are HDMI video receivers. 14 + 15 + The TDA19971 Video port output pins can be used as follows: 16 + - RGB 8bit per color (24 bits total): R[11:4] B[11:4] G[11:4] 17 + - YUV444 8bit per color (24 bits total): Y[11:4] Cr[11:4] Cb[11:4] 18 + - YUV422 semi-planar 8bit per component (16 bits total): Y[11:4] CbCr[11:4] 19 + - YUV422 semi-planar 10bit per component (20 bits total): Y[11:2] CbCr[11:2] 20 + - YUV422 semi-planar 12bit per component (24 bits total): - Y[11:0] CbCr[11:0] 21 + - YUV422 BT656 8bit per component (8 bits total): YCbCr[11:4] (2-cycles) 22 + - YUV422 BT656 10bit per component (10 bits total): YCbCr[11:2] (2-cycles) 23 + - YUV422 BT656 12bit per component (12 bits total): YCbCr[11:0] (2-cycles) 24 + 25 + The TDA19973 Video port output pins can be used as follows: 26 + - RGB 12bit per color (36 bits total): R[11:0] B[11:0] G[11:0] 27 + - YUV444 12bit per color (36 bits total): Y[11:0] Cb[11:0] Cr[11:0] 28 + - YUV422 semi-planar 12bit per component (24 bits total): Y[11:0] CbCr[11:0] 29 + - YUV422 BT656 12bit per component (12 bits total): YCbCr[11:0] (2-cycles) 30 + 31 + The Video port output pins are mapped via 4-bit 'pin groups' allowing 32 + for a variety of connection possibilities including swapping pin order within 33 + pin groups. The video_portcfg device-tree property consists of register mapping 34 + pairs which map a chip-specific VP output register to a 4-bit pin group. If 35 + the pin group needs to be bit-swapped you can use the *_S pin-group defines. 36 + 37 + properties: 38 + compatible: 39 + enum: 40 + - nxp,tda19971 41 + - nxp,tda19973 42 + 43 + reg: 44 + maxItems: 1 45 + 46 + interrupts: 47 + maxItems: 1 48 + 49 + DOVDD-supply: true 50 + 51 + DVDD-supply: true 52 + 53 + AVDD-supply: true 54 + 55 + '#sound-dai-cells': 56 + const: 0 57 + 58 + port: 59 + $ref: /schemas/graph.yaml#/$defs/port-base 60 + unevaluatedProperties: false 61 + 62 + properties: 63 + endpoint: 64 + $ref: /schemas/media/video-interfaces.yaml# 65 + unevaluatedProperties: false 66 + 67 + nxp,vidout-portcfg: 68 + $ref: /schemas/types.yaml#/definitions/uint32-matrix 69 + minItems: 1 70 + maxItems: 4 71 + items: 72 + items: 73 + - description: Video Port control registers index. 74 + maximum: 8 75 + minimum: 0 76 + - description: pin(pinswapped) groups 77 + 78 + description: 79 + array of pairs mapping VP output pins to pin groups. 80 + 81 + nxp,audout-format: 82 + enum: 83 + - i2s 84 + - spdif 85 + 86 + nxp,audout-width: 87 + $ref: /schemas/types.yaml#/definitions/uint32 88 + enum: [8, 16, 24, 32] 89 + description: 90 + width of audio output data bus. 91 + 92 + nxp,audout-layout: 93 + $ref: /schemas/types.yaml#/definitions/uint32 94 + enum: [0, 1] 95 + description: 96 + data layout (0=AP0 used, 1=AP0/AP1/AP2/AP3 used). 97 + 98 + nxp,audout-mclk-fs: 99 + $ref: /schemas/types.yaml#/definitions/uint32 100 + description: 101 + Multiplication factor between stream rate and codec mclk. 102 + 103 + required: 104 + - compatible 105 + - reg 106 + - interrupts 107 + - DOVDD-supply 108 + - AVDD-supply 109 + - DVDD-supply 110 + 111 + additionalProperties: false 112 + 113 + examples: 114 + - | 115 + #include <dt-bindings/interrupt-controller/irq.h> 116 + #include <dt-bindings/media/tda1997x.h> 117 + 118 + i2c { 119 + #address-cells = <1>; 120 + #size-cells = <0>; 121 + 122 + hdmi-receiver@48 { 123 + compatible = "nxp,tda19971"; 124 + reg = <0x48>; 125 + pinctrl-names = "default"; 126 + pinctrl-0 = <&pinctrl_tda1997x>; 127 + interrupt-parent = <&gpio1>; 128 + interrupts = <7 IRQ_TYPE_LEVEL_LOW>; 129 + DOVDD-supply = <&reg_3p3v>; 130 + AVDD-supply = <&reg_1p8v>; 131 + DVDD-supply = <&reg_1p8v>; 132 + /* audio */ 133 + #sound-dai-cells = <0>; 134 + nxp,audout-format = "i2s"; 135 + nxp,audout-layout = <0>; 136 + nxp,audout-width = <16>; 137 + nxp,audout-mclk-fs = <128>; 138 + /* 139 + * The 8bpp YUV422 semi-planar mode outputs CbCr[11:4] 140 + * and Y[11:4] across 16bits in the same pixclk cycle. 141 + */ 142 + nxp,vidout-portcfg = 143 + /* Y[11:8]<->VP[15:12]<->CSI_DATA[19:16] */ 144 + < TDA1997X_VP24_V15_12 TDA1997X_G_Y_11_8 >, 145 + /* Y[7:4]<->VP[11:08]<->CSI_DATA[15:12] */ 146 + < TDA1997X_VP24_V11_08 TDA1997X_G_Y_7_4 >, 147 + /* CbCc[11:8]<->VP[07:04]<->CSI_DATA[11:8] */ 148 + < TDA1997X_VP24_V07_04 TDA1997X_R_CR_CBCR_11_8 >, 149 + /* CbCr[7:4]<->VP[03:00]<->CSI_DATA[7:4] */ 150 + < TDA1997X_VP24_V03_00 TDA1997X_R_CR_CBCR_7_4 >; 151 + 152 + port { 153 + endpoint { 154 + remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>; 155 + bus-width = <16>; 156 + hsync-active = <1>; 157 + vsync-active = <1>; 158 + data-active = <1>; 159 + }; 160 + }; 161 + }; 162 + };
-178
Documentation/devicetree/bindings/media/i2c/nxp,tda1997x.txt
··· 1 - Device-Tree bindings for the NXP TDA1997x HDMI receiver 2 - 3 - The TDA19971/73 are HDMI video receivers. 4 - 5 - The TDA19971 Video port output pins can be used as follows: 6 - - RGB 8bit per color (24 bits total): R[11:4] B[11:4] G[11:4] 7 - - YUV444 8bit per color (24 bits total): Y[11:4] Cr[11:4] Cb[11:4] 8 - - YUV422 semi-planar 8bit per component (16 bits total): Y[11:4] CbCr[11:4] 9 - - YUV422 semi-planar 10bit per component (20 bits total): Y[11:2] CbCr[11:2] 10 - - YUV422 semi-planar 12bit per component (24 bits total): - Y[11:0] CbCr[11:0] 11 - - YUV422 BT656 8bit per component (8 bits total): YCbCr[11:4] (2-cycles) 12 - - YUV422 BT656 10bit per component (10 bits total): YCbCr[11:2] (2-cycles) 13 - - YUV422 BT656 12bit per component (12 bits total): YCbCr[11:0] (2-cycles) 14 - 15 - The TDA19973 Video port output pins can be used as follows: 16 - - RGB 12bit per color (36 bits total): R[11:0] B[11:0] G[11:0] 17 - - YUV444 12bit per color (36 bits total): Y[11:0] Cb[11:0] Cr[11:0] 18 - - YUV422 semi-planar 12bit per component (24 bits total): Y[11:0] CbCr[11:0] 19 - - YUV422 BT656 12bit per component (12 bits total): YCbCr[11:0] (2-cycles) 20 - 21 - The Video port output pins are mapped via 4-bit 'pin groups' allowing 22 - for a variety of connection possibilities including swapping pin order within 23 - pin groups. The video_portcfg device-tree property consists of register mapping 24 - pairs which map a chip-specific VP output register to a 4-bit pin group. If 25 - the pin group needs to be bit-swapped you can use the *_S pin-group defines. 26 - 27 - Required Properties: 28 - - compatible : 29 - - "nxp,tda19971" for the TDA19971 30 - - "nxp,tda19973" for the TDA19973 31 - - reg : I2C slave address 32 - - interrupts : The interrupt number 33 - - DOVDD-supply : Digital I/O supply 34 - - DVDD-supply : Digital Core supply 35 - - AVDD-supply : Analog supply 36 - - nxp,vidout-portcfg : array of pairs mapping VP output pins to pin groups. 37 - 38 - Optional Properties: 39 - - nxp,audout-format : DAI bus format: "i2s" or "spdif". 40 - - nxp,audout-width : width of audio output data bus (1-4). 41 - - nxp,audout-layout : data layout (0=AP0 used, 1=AP0/AP1/AP2/AP3 used). 42 - - nxp,audout-mclk-fs : Multiplication factor between stream rate and codec 43 - mclk. 44 - 45 - The port node shall contain one endpoint child node for its digital 46 - output video port, in accordance with the video interface bindings defined in 47 - Documentation/devicetree/bindings/media/video-interfaces.txt. 48 - 49 - Optional Endpoint Properties: 50 - The following three properties are defined in video-interfaces.txt and 51 - are valid for the output parallel bus endpoint: 52 - - hsync-active: Horizontal synchronization polarity. Defaults to active high. 53 - - vsync-active: Vertical synchronization polarity. Defaults to active high. 54 - - data-active: Data polarity. Defaults to active high. 55 - 56 - Examples: 57 - - VP[15:0] connected to IMX6 CSI_DATA[19:4] for 16bit YUV422 58 - 16bit I2S layout0 with a 128*fs clock (A_WS, AP0, A_CLK pins) 59 - hdmi-receiver@48 { 60 - compatible = "nxp,tda19971"; 61 - pinctrl-names = "default"; 62 - pinctrl-0 = <&pinctrl_tda1997x>; 63 - reg = <0x48>; 64 - interrupt-parent = <&gpio1>; 65 - interrupts = <7 IRQ_TYPE_LEVEL_LOW>; 66 - DOVDD-supply = <&reg_3p3v>; 67 - AVDD-supply = <&reg_1p8v>; 68 - DVDD-supply = <&reg_1p8v>; 69 - /* audio */ 70 - #sound-dai-cells = <0>; 71 - nxp,audout-format = "i2s"; 72 - nxp,audout-layout = <0>; 73 - nxp,audout-width = <16>; 74 - nxp,audout-mclk-fs = <128>; 75 - /* 76 - * The 8bpp YUV422 semi-planar mode outputs CbCr[11:4] 77 - * and Y[11:4] across 16bits in the same pixclk cycle. 78 - */ 79 - nxp,vidout-portcfg = 80 - /* Y[11:8]<->VP[15:12]<->CSI_DATA[19:16] */ 81 - < TDA1997X_VP24_V15_12 TDA1997X_G_Y_11_8 >, 82 - /* Y[7:4]<->VP[11:08]<->CSI_DATA[15:12] */ 83 - < TDA1997X_VP24_V11_08 TDA1997X_G_Y_7_4 >, 84 - /* CbCc[11:8]<->VP[07:04]<->CSI_DATA[11:8] */ 85 - < TDA1997X_VP24_V07_04 TDA1997X_R_CR_CBCR_11_8 >, 86 - /* CbCr[7:4]<->VP[03:00]<->CSI_DATA[7:4] */ 87 - < TDA1997X_VP24_V03_00 TDA1997X_R_CR_CBCR_7_4 >; 88 - 89 - port { 90 - tda1997x_to_ipu1_csi0_mux: endpoint { 91 - remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>; 92 - bus-width = <16>; 93 - hsync-active = <1>; 94 - vsync-active = <1>; 95 - data-active = <1>; 96 - }; 97 - }; 98 - }; 99 - - VP[15:8] connected to IMX6 CSI_DATA[19:12] for 8bit BT656 100 - 16bit I2S layout0 with a 128*fs clock (A_WS, AP0, A_CLK pins) 101 - hdmi-receiver@48 { 102 - compatible = "nxp,tda19971"; 103 - pinctrl-names = "default"; 104 - pinctrl-0 = <&pinctrl_tda1997x>; 105 - reg = <0x48>; 106 - interrupt-parent = <&gpio1>; 107 - interrupts = <7 IRQ_TYPE_LEVEL_LOW>; 108 - DOVDD-supply = <&reg_3p3v>; 109 - AVDD-supply = <&reg_1p8v>; 110 - DVDD-supply = <&reg_1p8v>; 111 - /* audio */ 112 - #sound-dai-cells = <0>; 113 - nxp,audout-format = "i2s"; 114 - nxp,audout-layout = <0>; 115 - nxp,audout-width = <16>; 116 - nxp,audout-mclk-fs = <128>; 117 - /* 118 - * The 8bpp YUV422 semi-planar mode outputs CbCr[11:4] 119 - * and Y[11:4] across 16bits in the same pixclk cycle. 120 - */ 121 - nxp,vidout-portcfg = 122 - /* Y[11:8]<->VP[15:12]<->CSI_DATA[19:16] */ 123 - < TDA1997X_VP24_V15_12 TDA1997X_G_Y_11_8 >, 124 - /* Y[7:4]<->VP[11:08]<->CSI_DATA[15:12] */ 125 - < TDA1997X_VP24_V11_08 TDA1997X_G_Y_7_4 >, 126 - /* CbCc[11:8]<->VP[07:04]<->CSI_DATA[11:8] */ 127 - < TDA1997X_VP24_V07_04 TDA1997X_R_CR_CBCR_11_8 >, 128 - /* CbCr[7:4]<->VP[03:00]<->CSI_DATA[7:4] */ 129 - < TDA1997X_VP24_V03_00 TDA1997X_R_CR_CBCR_7_4 >; 130 - 131 - port { 132 - tda1997x_to_ipu1_csi0_mux: endpoint { 133 - remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>; 134 - bus-width = <16>; 135 - hsync-active = <1>; 136 - vsync-active = <1>; 137 - data-active = <1>; 138 - }; 139 - }; 140 - }; 141 - - VP[15:8] connected to IMX6 CSI_DATA[19:12] for 8bit BT656 142 - 16bit I2S layout0 with a 128*fs clock (A_WS, AP0, A_CLK pins) 143 - hdmi-receiver@48 { 144 - compatible = "nxp,tda19971"; 145 - pinctrl-names = "default"; 146 - pinctrl-0 = <&pinctrl_tda1997x>; 147 - reg = <0x48>; 148 - interrupt-parent = <&gpio1>; 149 - interrupts = <7 IRQ_TYPE_LEVEL_LOW>; 150 - DOVDD-supply = <&reg_3p3v>; 151 - AVDD-supply = <&reg_1p8v>; 152 - DVDD-supply = <&reg_1p8v>; 153 - /* audio */ 154 - #sound-dai-cells = <0>; 155 - nxp,audout-format = "i2s"; 156 - nxp,audout-layout = <0>; 157 - nxp,audout-width = <16>; 158 - nxp,audout-mclk-fs = <128>; 159 - /* 160 - * The 8bpp BT656 mode outputs YCbCr[11:4] across 8bits over 161 - * 2 pixclk cycles. 162 - */ 163 - nxp,vidout-portcfg = 164 - /* YCbCr[11:8]<->VP[15:12]<->CSI_DATA[19:16] */ 165 - < TDA1997X_VP24_V15_12 TDA1997X_R_CR_CBCR_11_8 >, 166 - /* YCbCr[7:4]<->VP[11:08]<->CSI_DATA[15:12] */ 167 - < TDA1997X_VP24_V11_08 TDA1997X_R_CR_CBCR_7_4 >, 168 - 169 - port { 170 - tda1997x_to_ipu1_csi0_mux: endpoint { 171 - remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>; 172 - bus-width = <16>; 173 - hsync-active = <1>; 174 - vsync-active = <1>; 175 - data-active = <1>; 176 - }; 177 - }; 178 - };