Message ID | 20240930052903.168881-6-victor.liu@nxp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add ITE IT6263 LVDS to HDMI converter support | expand |
Hi Liu, thanks for the patch. > -----Original Message----- > From: linux-arm-kernel <linux-arm-kernel-bounces@lists.infradead.org> On Behalf Of Liu Ying > Sent: Monday, September 30, 2024 6:29 AM > Subject: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 LVDS to HDMI converter > > Document ITE IT6263 LVDS to HDMI converter. > > Product link: > https://www.ite.com.tw/en/product/cate1/IT6263 > > Signed-off-by: Liu Ying <victor.liu@nxp.com> > --- > .../bindings/display/bridge/ite,it6263.yaml | 310 ++++++++++++++++++ > 1 file changed, 310 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > > diff --git a/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > new file mode 100644 > index 000000000000..97fb81e5bc4a > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > @@ -0,0 +1,310 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/bridge/ite,it6263.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: ITE IT6263 LVDS to HDMI converter > + > +maintainers: > + - Liu Ying <victor.liu@nxp.com> > + > +description: | > + The IT6263 is a high-performance single-chip De-SSC(De-Spread > +Spectrum) LVDS > + to HDMI converter. Combined with LVDS receiver and HDMI 1.4a > +transmitter, > + the IT6263 supports LVDS input and HDMI 1.4 output by conversion function. > + The built-in LVDS receiver can support single-link and dual-link LVDS > +inputs, > + and the built-in HDMI transmitter is fully compliant with HDMI > +1.4a/3D, HDCP > + 1.2 and backward compatible with DVI 1.0 specification. > + > + The IT6263 also encodes and transmits up to 8 channels of I2S digital > + audio, with sampling rate up to 192KHz and sample size up to 24 bits. > + In addition, an S/PDIF input port takes in compressed audio of up to 192KHz frame rate. > + > + The newly supported High-Bit Rate(HBR) audio by HDMI specifications > + v1.3 is provided by the IT6263 in two interfaces: the four I2S input > + ports or the S/PDIF input port. With both interfaces the highest > + possible HBR frame rate is supported at up to 768KHz. > + > +properties: > + compatible: > + const: ite,it6263 > + > + reg: > + maxItems: 1 > + > + clocks: > + maxItems: 1 > + description: audio master clock > + > + clock-names: > + const: mclk > + > + reset-gpios: > + maxItems: 1 > + > + ivdd-supply: > + description: 1.8V digital logic power > + > + ovdd-supply: > + description: 3.3V I/O pin power > + > + txavcc18-supply: > + description: 1.8V HDMI analog frontend power > + > + txavcc33-supply: > + description: 3.3V HDMI analog frontend power > + > + pvcc1-supply: > + description: 1.8V HDMI frontend core PLL power > + > + pvcc2-supply: > + description: 1.8V HDMI frontend filter PLL power > + > + avcc-supply: > + description: 3.3V LVDS frontend power > + > + anvdd-supply: > + description: 1.8V LVDS frontend analog power > + > + apvdd-supply: > + description: 1.8V LVDS frontend PLL power > + > + "#sound-dai-cells": > + const: 0 > + > + ite,i2s-audio-fifo-sources: > + $ref: /schemas/types.yaml#/definitions/uint32-array > + minItems: 1 > + maxItems: 4 > + items: > + enum: [0, 1, 2, 3] > + description: > + Each array element indicates the pin number of an I2S serial data input > + line which is connected to an audio FIFO, from audio FIFO0 to FIFO3. > + > + ite,rl-channel-swap-audio-sources: > + $ref: /schemas/types.yaml#/definitions/uint32-array > + minItems: 1 > + maxItems: 4 > + uniqueItems: true > + items: > + enum: [0, 1, 2, 3] > + description: > + Each array element indicates an audio source whose right channel and left > + channel are swapped by this converter. For I2S, the element is the pin > + number of an I2S serial data input line. For S/PDIF, the element is always > + 0. > + > + ports: > + $ref: /schemas/graph.yaml#/properties/ports > + > + oneOf: > + - properties: > + port@0: > + $ref: /schemas/graph.yaml#/properties/port > + description: the first LVDS input link > + > + port@1: false > + > + port@2: > + $ref: /schemas/graph.yaml#/properties/port > + description: video port for the HDMI output > + > + port@3: > + $ref: /schemas/graph.yaml#/properties/port > + description: sound input port > + > + required: > + - port@0 > + - port@2 > + > + - properties: > + port@0: > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > + description: the first LVDS input link > + > + properties: > + dual-lvds-odd-pixels: > + type: boolean > + description: the first sink port for odd pixels > + > + dual-lvds-even-pixels: > + type: boolean > + description: the first sink port for even pixels > + > + oneOf: > + - required: [dual-lvds-odd-pixels] > + - required: [dual-lvds-even-pixels] > + > + port@1: > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > + description: the second LVDS input link > + > + properties: > + dual-lvds-even-pixels: > + type: boolean > + description: the second sink port for even pixels > + > + dual-lvds-odd-pixels: > + type: boolean > + description: the second sink port for odd pixels > + > + oneOf: > + - required: [dual-lvds-even-pixels] > + - required: [dual-lvds-odd-pixels] > + > + port@2: > + $ref: /schemas/graph.yaml#/properties/port > + description: video port for the HDMI output > + > + port@3: > + $ref: /schemas/graph.yaml#/properties/port > + description: sound input port What about single lvds as device support it? Cheers, Biju > + > + required: > + - port@0 > + - port@1 > + - port@2 > + > + allOf: > + - if: > + properties: > + port@0: > + required: > + - dual-lvds-odd-pixels > + then: > + properties: > + port@1: > + properties: > + dual-lvds-odd-pixels: false > + > + - if: > + properties: > + port@0: > + required: > + - dual-lvds-even-pixels > + then: > + properties: > + port@1: > + properties: > + dual-lvds-even-pixels: false > + > +required: > + - compatible > + - reg > + - ivdd-supply > + - ovdd-supply > + - txavcc18-supply > + - txavcc33-supply > + - pvcc1-supply > + - pvcc2-supply > + - avcc-supply > + - anvdd-supply > + - apvdd-supply > + - ports > + > +additionalProperties: false > + > +examples: > + - | > + /* single-link LVDS input */ > + #include <dt-bindings/gpio/gpio.h> > + > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + hdmi@4c { > + compatible = "ite,it6263"; > + reg = <0x4c>; > + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > + ivdd-supply = <®_buck5>; > + ovdd-supply = <®_vext_3v3>; > + txavcc18-supply = <®_buck5>; > + txavcc33-supply = <®_vext_3v3>; > + pvcc1-supply = <®_buck5>; > + pvcc2-supply = <®_buck5>; > + avcc-supply = <®_vext_3v3>; > + anvdd-supply = <®_buck5>; > + apvdd-supply = <®_buck5>; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + it6263_lvds_link1: endpoint { > + remote-endpoint = <&ldb_lvds_ch0>; > + }; > + }; > + > + port@2 { > + reg = <2>; > + > + it6263_out: endpoint { > + remote-endpoint = <&hdmi_in>; > + }; > + }; > + }; > + }; > + }; > + > + - | > + /* dual-link LVDS input */ > + #include <dt-bindings/gpio/gpio.h> > + > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + hdmi@4c { > + compatible = "ite,it6263"; > + reg = <0x4c>; > + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > + ivdd-supply = <®_buck5>; > + ovdd-supply = <®_vext_3v3>; > + txavcc18-supply = <®_buck5>; > + txavcc33-supply = <®_vext_3v3>; > + pvcc1-supply = <®_buck5>; > + pvcc2-supply = <®_buck5>; > + avcc-supply = <®_vext_3v3>; > + anvdd-supply = <®_buck5>; > + apvdd-supply = <®_buck5>; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + dual-lvds-odd-pixels; > + > + it6263_lvds_link1_dual: endpoint { > + remote-endpoint = <&ldb_lvds_ch0>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + dual-lvds-even-pixels; > + > + it6263_lvds_link2_dual: endpoint { > + remote-endpoint = <&ldb_lvds_ch1>; > + }; > + }; > + > + port@2 { > + reg = <2>; > + > + it6263_out_dual: endpoint { > + remote-endpoint = <&hdmi_in>; > + }; > + }; > + }; > + }; > + }; > -- > 2.34.1 >
On 09/30/2024, Biju Das wrote: > Hi Liu, Hi Biju, > > thanks for the patch. > >> -----Original Message----- >> From: linux-arm-kernel <linux-arm-kernel-bounces@lists.infradead.org> On Behalf Of Liu Ying >> Sent: Monday, September 30, 2024 6:29 AM >> Subject: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 LVDS to HDMI converter >> >> Document ITE IT6263 LVDS to HDMI converter. >> >> Product link: >> https://www.ite.com.tw/en/product/cate1/IT6263 >> >> Signed-off-by: Liu Ying <victor.liu@nxp.com> >> --- >> .../bindings/display/bridge/ite,it6263.yaml | 310 ++++++++++++++++++ >> 1 file changed, 310 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml >> >> diff --git a/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml >> b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml >> new file mode 100644 >> index 000000000000..97fb81e5bc4a >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml >> @@ -0,0 +1,310 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/display/bridge/ite,it6263.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: ITE IT6263 LVDS to HDMI converter >> + >> +maintainers: >> + - Liu Ying <victor.liu@nxp.com> >> + >> +description: | >> + The IT6263 is a high-performance single-chip De-SSC(De-Spread >> +Spectrum) LVDS >> + to HDMI converter. Combined with LVDS receiver and HDMI 1.4a >> +transmitter, >> + the IT6263 supports LVDS input and HDMI 1.4 output by conversion function. >> + The built-in LVDS receiver can support single-link and dual-link LVDS >> +inputs, >> + and the built-in HDMI transmitter is fully compliant with HDMI >> +1.4a/3D, HDCP >> + 1.2 and backward compatible with DVI 1.0 specification. >> + >> + The IT6263 also encodes and transmits up to 8 channels of I2S digital >> + audio, with sampling rate up to 192KHz and sample size up to 24 bits. >> + In addition, an S/PDIF input port takes in compressed audio of up to 192KHz frame rate. >> + >> + The newly supported High-Bit Rate(HBR) audio by HDMI specifications >> + v1.3 is provided by the IT6263 in two interfaces: the four I2S input >> + ports or the S/PDIF input port. With both interfaces the highest >> + possible HBR frame rate is supported at up to 768KHz. >> + >> +properties: >> + compatible: >> + const: ite,it6263 >> + >> + reg: >> + maxItems: 1 >> + >> + clocks: >> + maxItems: 1 >> + description: audio master clock >> + >> + clock-names: >> + const: mclk >> + >> + reset-gpios: >> + maxItems: 1 >> + >> + ivdd-supply: >> + description: 1.8V digital logic power >> + >> + ovdd-supply: >> + description: 3.3V I/O pin power >> + >> + txavcc18-supply: >> + description: 1.8V HDMI analog frontend power >> + >> + txavcc33-supply: >> + description: 3.3V HDMI analog frontend power >> + >> + pvcc1-supply: >> + description: 1.8V HDMI frontend core PLL power >> + >> + pvcc2-supply: >> + description: 1.8V HDMI frontend filter PLL power >> + >> + avcc-supply: >> + description: 3.3V LVDS frontend power >> + >> + anvdd-supply: >> + description: 1.8V LVDS frontend analog power >> + >> + apvdd-supply: >> + description: 1.8V LVDS frontend PLL power >> + >> + "#sound-dai-cells": >> + const: 0 >> + >> + ite,i2s-audio-fifo-sources: >> + $ref: /schemas/types.yaml#/definitions/uint32-array >> + minItems: 1 >> + maxItems: 4 >> + items: >> + enum: [0, 1, 2, 3] >> + description: >> + Each array element indicates the pin number of an I2S serial data input >> + line which is connected to an audio FIFO, from audio FIFO0 to FIFO3. >> + >> + ite,rl-channel-swap-audio-sources: >> + $ref: /schemas/types.yaml#/definitions/uint32-array >> + minItems: 1 >> + maxItems: 4 >> + uniqueItems: true >> + items: >> + enum: [0, 1, 2, 3] >> + description: >> + Each array element indicates an audio source whose right channel and left >> + channel are swapped by this converter. For I2S, the element is the pin >> + number of an I2S serial data input line. For S/PDIF, the element is always >> + 0. >> + >> + ports: >> + $ref: /schemas/graph.yaml#/properties/ports >> + >> + oneOf: >> + - properties: >> + port@0: >> + $ref: /schemas/graph.yaml#/properties/port >> + description: the first LVDS input link >> + >> + port@1: false >> + >> + port@2: >> + $ref: /schemas/graph.yaml#/properties/port >> + description: video port for the HDMI output >> + >> + port@3: >> + $ref: /schemas/graph.yaml#/properties/port >> + description: sound input port >> + >> + required: >> + - port@0 >> + - port@2 >> + >> + - properties: >> + port@0: >> + $ref: /schemas/graph.yaml#/$defs/port-base >> + unevaluatedProperties: false >> + description: the first LVDS input link >> + >> + properties: >> + dual-lvds-odd-pixels: >> + type: boolean >> + description: the first sink port for odd pixels >> + >> + dual-lvds-even-pixels: >> + type: boolean >> + description: the first sink port for even pixels >> + >> + oneOf: >> + - required: [dual-lvds-odd-pixels] >> + - required: [dual-lvds-even-pixels] >> + >> + port@1: >> + $ref: /schemas/graph.yaml#/$defs/port-base >> + unevaluatedProperties: false >> + description: the second LVDS input link >> + >> + properties: >> + dual-lvds-even-pixels: >> + type: boolean >> + description: the second sink port for even pixels >> + >> + dual-lvds-odd-pixels: >> + type: boolean >> + description: the second sink port for odd pixels >> + >> + oneOf: >> + - required: [dual-lvds-even-pixels] >> + - required: [dual-lvds-odd-pixels] > > >> + >> + port@2: >> + $ref: /schemas/graph.yaml#/properties/port >> + description: video port for the HDMI output >> + >> + port@3: >> + $ref: /schemas/graph.yaml#/properties/port >> + description: sound input port > > What about single lvds as device support it? The single LVDS link has already been documented in this binding doc. Please find the "properties" above where only "port@0" and "port@2" are required. imx8mp-evk-lvds0-imx-lvds-hdmi.dtso and imx8mp-evk-lvds1-imx-lvds-hdmi.dtso added in patch 7 support the NXP adapter card with single LVDS link. > > Cheers, > Biju > >> + >> + required: >> + - port@0 >> + - port@1 >> + - port@2 >> + >> + allOf: >> + - if: >> + properties: >> + port@0: >> + required: >> + - dual-lvds-odd-pixels >> + then: >> + properties: >> + port@1: >> + properties: >> + dual-lvds-odd-pixels: false >> + >> + - if: >> + properties: >> + port@0: >> + required: >> + - dual-lvds-even-pixels >> + then: >> + properties: >> + port@1: >> + properties: >> + dual-lvds-even-pixels: false >> + >> +required: >> + - compatible >> + - reg >> + - ivdd-supply >> + - ovdd-supply >> + - txavcc18-supply >> + - txavcc33-supply >> + - pvcc1-supply >> + - pvcc2-supply >> + - avcc-supply >> + - anvdd-supply >> + - apvdd-supply >> + - ports >> + >> +additionalProperties: false >> + >> +examples: >> + - | >> + /* single-link LVDS input */ >> + #include <dt-bindings/gpio/gpio.h> >> + >> + i2c { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + hdmi@4c { >> + compatible = "ite,it6263"; >> + reg = <0x4c>; >> + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; >> + ivdd-supply = <®_buck5>; >> + ovdd-supply = <®_vext_3v3>; >> + txavcc18-supply = <®_buck5>; >> + txavcc33-supply = <®_vext_3v3>; >> + pvcc1-supply = <®_buck5>; >> + pvcc2-supply = <®_buck5>; >> + avcc-supply = <®_vext_3v3>; >> + anvdd-supply = <®_buck5>; >> + apvdd-supply = <®_buck5>; >> + >> + ports { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + port@0 { >> + reg = <0>; >> + >> + it6263_lvds_link1: endpoint { >> + remote-endpoint = <&ldb_lvds_ch0>; >> + }; >> + }; >> + >> + port@2 { >> + reg = <2>; >> + >> + it6263_out: endpoint { >> + remote-endpoint = <&hdmi_in>; >> + }; >> + }; >> + }; >> + }; >> + }; >> + >> + - | >> + /* dual-link LVDS input */ >> + #include <dt-bindings/gpio/gpio.h> >> + >> + i2c { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + hdmi@4c { >> + compatible = "ite,it6263"; >> + reg = <0x4c>; >> + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; >> + ivdd-supply = <®_buck5>; >> + ovdd-supply = <®_vext_3v3>; >> + txavcc18-supply = <®_buck5>; >> + txavcc33-supply = <®_vext_3v3>; >> + pvcc1-supply = <®_buck5>; >> + pvcc2-supply = <®_buck5>; >> + avcc-supply = <®_vext_3v3>; >> + anvdd-supply = <®_buck5>; >> + apvdd-supply = <®_buck5>; >> + >> + ports { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + port@0 { >> + reg = <0>; >> + dual-lvds-odd-pixels; >> + >> + it6263_lvds_link1_dual: endpoint { >> + remote-endpoint = <&ldb_lvds_ch0>; >> + }; >> + }; >> + >> + port@1 { >> + reg = <1>; >> + dual-lvds-even-pixels; >> + >> + it6263_lvds_link2_dual: endpoint { >> + remote-endpoint = <&ldb_lvds_ch1>; >> + }; >> + }; >> + >> + port@2 { >> + reg = <2>; >> + >> + it6263_out_dual: endpoint { >> + remote-endpoint = <&hdmi_in>; >> + }; >> + }; >> + }; >> + }; >> + }; >> -- >> 2.34.1 >> >
Hi Liu, > -----Original Message----- > From: Liu Ying <victor.liu@nxp.com> > Sent: Monday, September 30, 2024 10:16 AM > Subject: Re: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 LVDS to HDMI converter > > On 09/30/2024, Biju Das wrote: > > Hi Liu, > > Hi Biju, > > > > > thanks for the patch. > > > >> -----Original Message----- > >> From: linux-arm-kernel <linux-arm-kernel-bounces@lists.infradead.org> > >> On Behalf Of Liu Ying > >> Sent: Monday, September 30, 2024 6:29 AM > >> Subject: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 > >> LVDS to HDMI converter > >> > >> Document ITE IT6263 LVDS to HDMI converter. > >> > >> Product link: > >> https://www.ite.com.tw/en/product/cate1/IT6263 > >> > >> Signed-off-by: Liu Ying <victor.liu@nxp.com> > >> --- > >> .../bindings/display/bridge/ite,it6263.yaml | 310 ++++++++++++++++++ > >> 1 file changed, 310 insertions(+) > >> create mode 100644 > >> Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > >> > >> diff --git > >> a/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > >> b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > >> new file mode 100644 > >> index 000000000000..97fb81e5bc4a > >> --- /dev/null > >> +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yam > >> +++ l > >> @@ -0,0 +1,310 @@ > >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 > >> +--- > >> +$id: http://devicetree.org/schemas/display/bridge/ite,it6263.yaml# > >> +$schema: http://devicetree.org/meta-schemas/core.yaml# > >> + > >> +title: ITE IT6263 LVDS to HDMI converter > >> + > >> +maintainers: > >> + - Liu Ying <victor.liu@nxp.com> > >> + > >> +description: | > >> + The IT6263 is a high-performance single-chip De-SSC(De-Spread > >> +Spectrum) LVDS > >> + to HDMI converter. Combined with LVDS receiver and HDMI 1.4a > >> +transmitter, > >> + the IT6263 supports LVDS input and HDMI 1.4 output by conversion function. > >> + The built-in LVDS receiver can support single-link and dual-link > >> +LVDS inputs, > >> + and the built-in HDMI transmitter is fully compliant with HDMI > >> +1.4a/3D, HDCP > >> + 1.2 and backward compatible with DVI 1.0 specification. > >> + > >> + The IT6263 also encodes and transmits up to 8 channels of I2S > >> + digital audio, with sampling rate up to 192KHz and sample size up to 24 bits. > >> + In addition, an S/PDIF input port takes in compressed audio of up to 192KHz frame rate. > >> + > >> + The newly supported High-Bit Rate(HBR) audio by HDMI > >> + specifications > >> + v1.3 is provided by the IT6263 in two interfaces: the four I2S > >> + input ports or the S/PDIF input port. With both interfaces the > >> + highest possible HBR frame rate is supported at up to 768KHz. > >> + > >> +properties: > >> + compatible: > >> + const: ite,it6263 > >> + > >> + reg: > >> + maxItems: 1 > >> + > >> + clocks: > >> + maxItems: 1 > >> + description: audio master clock > >> + > >> + clock-names: > >> + const: mclk > >> + > >> + reset-gpios: > >> + maxItems: 1 > >> + > >> + ivdd-supply: > >> + description: 1.8V digital logic power > >> + > >> + ovdd-supply: > >> + description: 3.3V I/O pin power > >> + > >> + txavcc18-supply: > >> + description: 1.8V HDMI analog frontend power > >> + > >> + txavcc33-supply: > >> + description: 3.3V HDMI analog frontend power > >> + > >> + pvcc1-supply: > >> + description: 1.8V HDMI frontend core PLL power > >> + > >> + pvcc2-supply: > >> + description: 1.8V HDMI frontend filter PLL power > >> + > >> + avcc-supply: > >> + description: 3.3V LVDS frontend power > >> + > >> + anvdd-supply: > >> + description: 1.8V LVDS frontend analog power > >> + > >> + apvdd-supply: > >> + description: 1.8V LVDS frontend PLL power > >> + > >> + "#sound-dai-cells": > >> + const: 0 > >> + > >> + ite,i2s-audio-fifo-sources: > >> + $ref: /schemas/types.yaml#/definitions/uint32-array > >> + minItems: 1 > >> + maxItems: 4 > >> + items: > >> + enum: [0, 1, 2, 3] > >> + description: > >> + Each array element indicates the pin number of an I2S serial data input > >> + line which is connected to an audio FIFO, from audio FIFO0 to FIFO3. > >> + > >> + ite,rl-channel-swap-audio-sources: > >> + $ref: /schemas/types.yaml#/definitions/uint32-array > >> + minItems: 1 > >> + maxItems: 4 > >> + uniqueItems: true > >> + items: > >> + enum: [0, 1, 2, 3] > >> + description: > >> + Each array element indicates an audio source whose right channel and left > >> + channel are swapped by this converter. For I2S, the element is the pin > >> + number of an I2S serial data input line. For S/PDIF, the element is always > >> + 0. > >> + > >> + ports: > >> + $ref: /schemas/graph.yaml#/properties/ports > >> + > >> + oneOf: > >> + - properties: > >> + port@0: > >> + $ref: /schemas/graph.yaml#/properties/port > >> + description: the first LVDS input link > >> + > >> + port@1: false > >> + > >> + port@2: > >> + $ref: /schemas/graph.yaml#/properties/port > >> + description: video port for the HDMI output > >> + > >> + port@3: > >> + $ref: /schemas/graph.yaml#/properties/port > >> + description: sound input port > >> + > >> + required: > >> + - port@0 > >> + - port@2 > >> + > >> + - properties: > >> + port@0: > >> + $ref: /schemas/graph.yaml#/$defs/port-base > >> + unevaluatedProperties: false > >> + description: the first LVDS input link > >> + > >> + properties: > >> + dual-lvds-odd-pixels: > >> + type: boolean > >> + description: the first sink port for odd pixels > >> + > >> + dual-lvds-even-pixels: > >> + type: boolean > >> + description: the first sink port for even pixels > >> + > >> + oneOf: > >> + - required: [dual-lvds-odd-pixels] > >> + - required: [dual-lvds-even-pixels] > >> + > >> + port@1: > >> + $ref: /schemas/graph.yaml#/$defs/port-base > >> + unevaluatedProperties: false > >> + description: the second LVDS input link > >> + > >> + properties: > >> + dual-lvds-even-pixels: > >> + type: boolean > >> + description: the second sink port for even pixels > >> + > >> + dual-lvds-odd-pixels: > >> + type: boolean > >> + description: the second sink port for odd pixels > >> + > >> + oneOf: > >> + - required: [dual-lvds-even-pixels] > >> + - required: [dual-lvds-odd-pixels] > > > > > >> + > >> + port@2: > >> + $ref: /schemas/graph.yaml#/properties/port > >> + description: video port for the HDMI output > >> + > >> + port@3: > >> + $ref: /schemas/graph.yaml#/properties/port > >> + description: sound input port > > > > What about single lvds as device support it? > > The single LVDS link has already been documented in this binding doc. > Please find the "properties" above where only "port@0" and "port@2" > are required. Maybe "the first LVDS input link"-->"Single LVDS input link" for single LVDS block?? > > imx8mp-evk-lvds0-imx-lvds-hdmi.dtso and imx8mp-evk-lvds1-imx-lvds-hdmi.dtso > added in patch 7 support the NXP adapter card with single LVDS link. > > > > > Cheers, > > Biju > > > >> + > >> + required: > >> + - port@0 > >> + - port@1 > >> + - port@2 > >> + > >> + allOf: > >> + - if: > >> + properties: > >> + port@0: > >> + required: > >> + - dual-lvds-odd-pixels > >> + then: > >> + properties: > >> + port@1: > >> + properties: > >> + dual-lvds-odd-pixels: false > >> + > >> + - if: > >> + properties: > >> + port@0: > >> + required: > >> + - dual-lvds-even-pixels > >> + then: > >> + properties: > >> + port@1: > >> + properties: > >> + dual-lvds-even-pixels: false > >> + > >> +required: > >> + - compatible > >> + - reg > >> + - ivdd-supply > >> + - ovdd-supply > >> + - txavcc18-supply > >> + - txavcc33-supply > >> + - pvcc1-supply > >> + - pvcc2-supply > >> + - avcc-supply > >> + - anvdd-supply > >> + - apvdd-supply > >> + - ports > >> + > >> +additionalProperties: false > >> + > >> +examples: > >> + - | > >> + /* single-link LVDS input */ > >> + #include <dt-bindings/gpio/gpio.h> > >> + > >> + i2c { > >> + #address-cells = <1>; > >> + #size-cells = <0>; > >> + > >> + hdmi@4c { > >> + compatible = "ite,it6263"; > >> + reg = <0x4c>; > >> + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > >> + ivdd-supply = <®_buck5>; > >> + ovdd-supply = <®_vext_3v3>; > >> + txavcc18-supply = <®_buck5>; > >> + txavcc33-supply = <®_vext_3v3>; > >> + pvcc1-supply = <®_buck5>; > >> + pvcc2-supply = <®_buck5>; > >> + avcc-supply = <®_vext_3v3>; > >> + anvdd-supply = <®_buck5>; > >> + apvdd-supply = <®_buck5>; > >> + > >> + ports { > >> + #address-cells = <1>; > >> + #size-cells = <0>; > >> + > >> + port@0 { > >> + reg = <0>; > >> + > >> + it6263_lvds_link1: endpoint { > >> + remote-endpoint = <&ldb_lvds_ch0>; > >> + }; > >> + }; > >> + > >> + port@2 { > >> + reg = <2>; > >> + > >> + it6263_out: endpoint { > >> + remote-endpoint = <&hdmi_in>; > >> + }; > >> + }; > >> + }; > >> + }; > >> + }; > >> + > >> + - | > >> + /* dual-link LVDS input */ > >> + #include <dt-bindings/gpio/gpio.h> > >> + > >> + i2c { > >> + #address-cells = <1>; > >> + #size-cells = <0>; > >> + > >> + hdmi@4c { > >> + compatible = "ite,it6263"; > >> + reg = <0x4c>; > >> + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > >> + ivdd-supply = <®_buck5>; > >> + ovdd-supply = <®_vext_3v3>; > >> + txavcc18-supply = <®_buck5>; > >> + txavcc33-supply = <®_vext_3v3>; > >> + pvcc1-supply = <®_buck5>; > >> + pvcc2-supply = <®_buck5>; > >> + avcc-supply = <®_vext_3v3>; > >> + anvdd-supply = <®_buck5>; > >> + apvdd-supply = <®_buck5>; > >> + > >> + ports { > >> + #address-cells = <1>; > >> + #size-cells = <0>; > >> + > >> + port@0 { > >> + reg = <0>; > >> + dual-lvds-odd-pixels; > >> + > >> + it6263_lvds_link1_dual: endpoint { > >> + remote-endpoint = <&ldb_lvds_ch0>; > >> + }; > >> + }; > >> + > >> + port@1 { > >> + reg = <1>; > >> + dual-lvds-even-pixels; > >> + > >> + it6263_lvds_link2_dual: endpoint { > >> + remote-endpoint = <&ldb_lvds_ch1>; > >> + }; > >> + }; > >> + > >> + port@2 { > >> + reg = <2>; > >> + > >> + it6263_out_dual: endpoint { > >> + remote-endpoint = <&hdmi_in>; > >> + }; > >> + }; > >> + }; > >> + }; > >> + }; > >> -- > >> 2.34.1 > >> > > > > -- > Regards, > Liu Ying
On 09/30/2024, Biju Das wrote: > Hi Liu, Hi Biju, > >> -----Original Message----- >> From: Liu Ying <victor.liu@nxp.com> >> Sent: Monday, September 30, 2024 10:16 AM >> Subject: Re: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 LVDS to HDMI converter >> >> On 09/30/2024, Biju Das wrote: >>> Hi Liu, >> >> Hi Biju, >> >>> >>> thanks for the patch. >>> >>>> -----Original Message----- >>>> From: linux-arm-kernel <linux-arm-kernel-bounces@lists.infradead.org> >>>> On Behalf Of Liu Ying >>>> Sent: Monday, September 30, 2024 6:29 AM >>>> Subject: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 >>>> LVDS to HDMI converter >>>> >>>> Document ITE IT6263 LVDS to HDMI converter. >>>> >>>> Product link: >>>> https://www.ite.com.tw/en/product/cate1/IT6263 >>>> >>>> Signed-off-by: Liu Ying <victor.liu@nxp.com> >>>> --- >>>> .../bindings/display/bridge/ite,it6263.yaml | 310 ++++++++++++++++++ >>>> 1 file changed, 310 insertions(+) >>>> create mode 100644 >>>> Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml >>>> >>>> diff --git >>>> a/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml >>>> b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml >>>> new file mode 100644 >>>> index 000000000000..97fb81e5bc4a >>>> --- /dev/null >>>> +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yam >>>> +++ l >>>> @@ -0,0 +1,310 @@ >>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 >>>> +--- >>>> +$id: http://devicetree.org/schemas/display/bridge/ite,it6263.yaml# >>>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>>> + >>>> +title: ITE IT6263 LVDS to HDMI converter >>>> + >>>> +maintainers: >>>> + - Liu Ying <victor.liu@nxp.com> >>>> + >>>> +description: | >>>> + The IT6263 is a high-performance single-chip De-SSC(De-Spread >>>> +Spectrum) LVDS >>>> + to HDMI converter. Combined with LVDS receiver and HDMI 1.4a >>>> +transmitter, >>>> + the IT6263 supports LVDS input and HDMI 1.4 output by conversion function. >>>> + The built-in LVDS receiver can support single-link and dual-link >>>> +LVDS inputs, >>>> + and the built-in HDMI transmitter is fully compliant with HDMI >>>> +1.4a/3D, HDCP >>>> + 1.2 and backward compatible with DVI 1.0 specification. >>>> + >>>> + The IT6263 also encodes and transmits up to 8 channels of I2S >>>> + digital audio, with sampling rate up to 192KHz and sample size up to 24 bits. >>>> + In addition, an S/PDIF input port takes in compressed audio of up to 192KHz frame rate. >>>> + >>>> + The newly supported High-Bit Rate(HBR) audio by HDMI >>>> + specifications >>>> + v1.3 is provided by the IT6263 in two interfaces: the four I2S >>>> + input ports or the S/PDIF input port. With both interfaces the >>>> + highest possible HBR frame rate is supported at up to 768KHz. >>>> + >>>> +properties: >>>> + compatible: >>>> + const: ite,it6263 >>>> + >>>> + reg: >>>> + maxItems: 1 >>>> + >>>> + clocks: >>>> + maxItems: 1 >>>> + description: audio master clock >>>> + >>>> + clock-names: >>>> + const: mclk >>>> + >>>> + reset-gpios: >>>> + maxItems: 1 >>>> + >>>> + ivdd-supply: >>>> + description: 1.8V digital logic power >>>> + >>>> + ovdd-supply: >>>> + description: 3.3V I/O pin power >>>> + >>>> + txavcc18-supply: >>>> + description: 1.8V HDMI analog frontend power >>>> + >>>> + txavcc33-supply: >>>> + description: 3.3V HDMI analog frontend power >>>> + >>>> + pvcc1-supply: >>>> + description: 1.8V HDMI frontend core PLL power >>>> + >>>> + pvcc2-supply: >>>> + description: 1.8V HDMI frontend filter PLL power >>>> + >>>> + avcc-supply: >>>> + description: 3.3V LVDS frontend power >>>> + >>>> + anvdd-supply: >>>> + description: 1.8V LVDS frontend analog power >>>> + >>>> + apvdd-supply: >>>> + description: 1.8V LVDS frontend PLL power >>>> + >>>> + "#sound-dai-cells": >>>> + const: 0 >>>> + >>>> + ite,i2s-audio-fifo-sources: >>>> + $ref: /schemas/types.yaml#/definitions/uint32-array >>>> + minItems: 1 >>>> + maxItems: 4 >>>> + items: >>>> + enum: [0, 1, 2, 3] >>>> + description: >>>> + Each array element indicates the pin number of an I2S serial data input >>>> + line which is connected to an audio FIFO, from audio FIFO0 to FIFO3. >>>> + >>>> + ite,rl-channel-swap-audio-sources: >>>> + $ref: /schemas/types.yaml#/definitions/uint32-array >>>> + minItems: 1 >>>> + maxItems: 4 >>>> + uniqueItems: true >>>> + items: >>>> + enum: [0, 1, 2, 3] >>>> + description: >>>> + Each array element indicates an audio source whose right channel and left >>>> + channel are swapped by this converter. For I2S, the element is the pin >>>> + number of an I2S serial data input line. For S/PDIF, the element is always >>>> + 0. >>>> + >>>> + ports: >>>> + $ref: /schemas/graph.yaml#/properties/ports >>>> + >>>> + oneOf: >>>> + - properties: >>>> + port@0: >>>> + $ref: /schemas/graph.yaml#/properties/port >>>> + description: the first LVDS input link >>>> + >>>> + port@1: false >>>> + >>>> + port@2: >>>> + $ref: /schemas/graph.yaml#/properties/port >>>> + description: video port for the HDMI output >>>> + >>>> + port@3: >>>> + $ref: /schemas/graph.yaml#/properties/port >>>> + description: sound input port >>>> + >>>> + required: >>>> + - port@0 >>>> + - port@2 >>>> + >>>> + - properties: >>>> + port@0: >>>> + $ref: /schemas/graph.yaml#/$defs/port-base >>>> + unevaluatedProperties: false >>>> + description: the first LVDS input link >>>> + >>>> + properties: >>>> + dual-lvds-odd-pixels: >>>> + type: boolean >>>> + description: the first sink port for odd pixels >>>> + >>>> + dual-lvds-even-pixels: >>>> + type: boolean >>>> + description: the first sink port for even pixels >>>> + >>>> + oneOf: >>>> + - required: [dual-lvds-odd-pixels] >>>> + - required: [dual-lvds-even-pixels] >>>> + >>>> + port@1: >>>> + $ref: /schemas/graph.yaml#/$defs/port-base >>>> + unevaluatedProperties: false >>>> + description: the second LVDS input link >>>> + >>>> + properties: >>>> + dual-lvds-even-pixels: >>>> + type: boolean >>>> + description: the second sink port for even pixels >>>> + >>>> + dual-lvds-odd-pixels: >>>> + type: boolean >>>> + description: the second sink port for odd pixels >>>> + >>>> + oneOf: >>>> + - required: [dual-lvds-even-pixels] >>>> + - required: [dual-lvds-odd-pixels] >>> >>> >>>> + >>>> + port@2: >>>> + $ref: /schemas/graph.yaml#/properties/port >>>> + description: video port for the HDMI output >>>> + >>>> + port@3: >>>> + $ref: /schemas/graph.yaml#/properties/port >>>> + description: sound input port >>> >>> What about single lvds as device support it? >> >> The single LVDS link has already been documented in this binding doc. >> Please find the "properties" above where only "port@0" and "port@2" >> are required. > > Maybe "the first LVDS input link"-->"Single LVDS input link" for single LVDS block?? Nope. I tested single LVDS link with the second LVDS link. It didn't work. The single LVDS link only works with the first LVDS link. > >> >> imx8mp-evk-lvds0-imx-lvds-hdmi.dtso and imx8mp-evk-lvds1-imx-lvds-hdmi.dtso >> added in patch 7 support the NXP adapter card with single LVDS link. >> >>> >>> Cheers, >>> Biju >>> >>>> + >>>> + required: >>>> + - port@0 >>>> + - port@1 >>>> + - port@2 >>>> + >>>> + allOf: >>>> + - if: >>>> + properties: >>>> + port@0: >>>> + required: >>>> + - dual-lvds-odd-pixels >>>> + then: >>>> + properties: >>>> + port@1: >>>> + properties: >>>> + dual-lvds-odd-pixels: false >>>> + >>>> + - if: >>>> + properties: >>>> + port@0: >>>> + required: >>>> + - dual-lvds-even-pixels >>>> + then: >>>> + properties: >>>> + port@1: >>>> + properties: >>>> + dual-lvds-even-pixels: false >>>> + >>>> +required: >>>> + - compatible >>>> + - reg >>>> + - ivdd-supply >>>> + - ovdd-supply >>>> + - txavcc18-supply >>>> + - txavcc33-supply >>>> + - pvcc1-supply >>>> + - pvcc2-supply >>>> + - avcc-supply >>>> + - anvdd-supply >>>> + - apvdd-supply >>>> + - ports >>>> + >>>> +additionalProperties: false >>>> + >>>> +examples: >>>> + - | >>>> + /* single-link LVDS input */ >>>> + #include <dt-bindings/gpio/gpio.h> >>>> + >>>> + i2c { >>>> + #address-cells = <1>; >>>> + #size-cells = <0>; >>>> + >>>> + hdmi@4c { >>>> + compatible = "ite,it6263"; >>>> + reg = <0x4c>; >>>> + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; >>>> + ivdd-supply = <®_buck5>; >>>> + ovdd-supply = <®_vext_3v3>; >>>> + txavcc18-supply = <®_buck5>; >>>> + txavcc33-supply = <®_vext_3v3>; >>>> + pvcc1-supply = <®_buck5>; >>>> + pvcc2-supply = <®_buck5>; >>>> + avcc-supply = <®_vext_3v3>; >>>> + anvdd-supply = <®_buck5>; >>>> + apvdd-supply = <®_buck5>; >>>> + >>>> + ports { >>>> + #address-cells = <1>; >>>> + #size-cells = <0>; >>>> + >>>> + port@0 { >>>> + reg = <0>; >>>> + >>>> + it6263_lvds_link1: endpoint { >>>> + remote-endpoint = <&ldb_lvds_ch0>; >>>> + }; >>>> + }; >>>> + >>>> + port@2 { >>>> + reg = <2>; >>>> + >>>> + it6263_out: endpoint { >>>> + remote-endpoint = <&hdmi_in>; >>>> + }; >>>> + }; >>>> + }; >>>> + }; >>>> + }; >>>> + >>>> + - | >>>> + /* dual-link LVDS input */ >>>> + #include <dt-bindings/gpio/gpio.h> >>>> + >>>> + i2c { >>>> + #address-cells = <1>; >>>> + #size-cells = <0>; >>>> + >>>> + hdmi@4c { >>>> + compatible = "ite,it6263"; >>>> + reg = <0x4c>; >>>> + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; >>>> + ivdd-supply = <®_buck5>; >>>> + ovdd-supply = <®_vext_3v3>; >>>> + txavcc18-supply = <®_buck5>; >>>> + txavcc33-supply = <®_vext_3v3>; >>>> + pvcc1-supply = <®_buck5>; >>>> + pvcc2-supply = <®_buck5>; >>>> + avcc-supply = <®_vext_3v3>; >>>> + anvdd-supply = <®_buck5>; >>>> + apvdd-supply = <®_buck5>; >>>> + >>>> + ports { >>>> + #address-cells = <1>; >>>> + #size-cells = <0>; >>>> + >>>> + port@0 { >>>> + reg = <0>; >>>> + dual-lvds-odd-pixels; >>>> + >>>> + it6263_lvds_link1_dual: endpoint { >>>> + remote-endpoint = <&ldb_lvds_ch0>; >>>> + }; >>>> + }; >>>> + >>>> + port@1 { >>>> + reg = <1>; >>>> + dual-lvds-even-pixels; >>>> + >>>> + it6263_lvds_link2_dual: endpoint { >>>> + remote-endpoint = <&ldb_lvds_ch1>; >>>> + }; >>>> + }; >>>> + >>>> + port@2 { >>>> + reg = <2>; >>>> + >>>> + it6263_out_dual: endpoint { >>>> + remote-endpoint = <&hdmi_in>; >>>> + }; >>>> + }; >>>> + }; >>>> + }; >>>> + }; >>>> -- >>>> 2.34.1 >>>> >>> >> >> -- >> Regards, >> Liu Ying >
Hi Liu, > -----Original Message----- > From: Liu Ying <victor.liu@nxp.com> > Sent: Monday, September 30, 2024 10:30 AM > Subject: Re: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 LVDS to HDMI converter > > On 09/30/2024, Biju Das wrote: > > Hi Liu, > > Hi Biju, > > > > >> -----Original Message----- > >> From: Liu Ying <victor.liu@nxp.com> > >> Sent: Monday, September 30, 2024 10:16 AM > >> Subject: Re: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 > >> LVDS to HDMI converter > >> > >> On 09/30/2024, Biju Das wrote: > >>> Hi Liu, > >> > >> Hi Biju, > >> > >>> > >>> thanks for the patch. > >>> > >>>> -----Original Message----- > >>>> From: linux-arm-kernel > >>>> <linux-arm-kernel-bounces@lists.infradead.org> > >>>> On Behalf Of Liu Ying > >>>> Sent: Monday, September 30, 2024 6:29 AM > >>>> Subject: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 > >>>> LVDS to HDMI converter > >>>> > >>>> Document ITE IT6263 LVDS to HDMI converter. > >>>> > >>>> Product link: > >>>> https://www.ite.com.tw/en/product/cate1/IT6263 > >>>> > >>>> Signed-off-by: Liu Ying <victor.liu@nxp.com> > >>>> --- > >>>> .../bindings/display/bridge/ite,it6263.yaml | 310 ++++++++++++++++++ > >>>> 1 file changed, 310 insertions(+) > >>>> create mode 100644 > >>>> Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > >>>> > >>>> diff --git > >>>> a/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > >>>> b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > >>>> new file mode 100644 > >>>> index 000000000000..97fb81e5bc4a > >>>> --- /dev/null > >>>> +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6263.y > >>>> +++ am > >>>> +++ l > >>>> @@ -0,0 +1,310 @@ > >>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML > >>>> +1.2 > >>>> +--- > >>>> +$id: http://devicetree.org/schemas/display/bridge/ite,it6263.yaml# > >>>> +$schema: http://devicetree.org/meta-schemas/core.yaml# > >>>> + > >>>> +title: ITE IT6263 LVDS to HDMI converter > >>>> + > >>>> +maintainers: > >>>> + - Liu Ying <victor.liu@nxp.com> > >>>> + > >>>> +description: | > >>>> + The IT6263 is a high-performance single-chip De-SSC(De-Spread > >>>> +Spectrum) LVDS > >>>> + to HDMI converter. Combined with LVDS receiver and HDMI 1.4a > >>>> +transmitter, > >>>> + the IT6263 supports LVDS input and HDMI 1.4 output by conversion function. > >>>> + The built-in LVDS receiver can support single-link and dual-link > >>>> +LVDS inputs, > >>>> + and the built-in HDMI transmitter is fully compliant with HDMI > >>>> +1.4a/3D, HDCP > >>>> + 1.2 and backward compatible with DVI 1.0 specification. > >>>> + > >>>> + The IT6263 also encodes and transmits up to 8 channels of I2S > >>>> + digital audio, with sampling rate up to 192KHz and sample size up to 24 bits. > >>>> + In addition, an S/PDIF input port takes in compressed audio of up to 192KHz frame rate. > >>>> + > >>>> + The newly supported High-Bit Rate(HBR) audio by HDMI > >>>> + specifications > >>>> + v1.3 is provided by the IT6263 in two interfaces: the four I2S > >>>> + input ports or the S/PDIF input port. With both interfaces the > >>>> + highest possible HBR frame rate is supported at up to 768KHz. > >>>> + > >>>> +properties: > >>>> + compatible: > >>>> + const: ite,it6263 > >>>> + > >>>> + reg: > >>>> + maxItems: 1 > >>>> + > >>>> + clocks: > >>>> + maxItems: 1 > >>>> + description: audio master clock > >>>> + > >>>> + clock-names: > >>>> + const: mclk > >>>> + > >>>> + reset-gpios: > >>>> + maxItems: 1 > >>>> + > >>>> + ivdd-supply: > >>>> + description: 1.8V digital logic power > >>>> + > >>>> + ovdd-supply: > >>>> + description: 3.3V I/O pin power > >>>> + > >>>> + txavcc18-supply: > >>>> + description: 1.8V HDMI analog frontend power > >>>> + > >>>> + txavcc33-supply: > >>>> + description: 3.3V HDMI analog frontend power > >>>> + > >>>> + pvcc1-supply: > >>>> + description: 1.8V HDMI frontend core PLL power > >>>> + > >>>> + pvcc2-supply: > >>>> + description: 1.8V HDMI frontend filter PLL power > >>>> + > >>>> + avcc-supply: > >>>> + description: 3.3V LVDS frontend power > >>>> + > >>>> + anvdd-supply: > >>>> + description: 1.8V LVDS frontend analog power > >>>> + > >>>> + apvdd-supply: > >>>> + description: 1.8V LVDS frontend PLL power > >>>> + > >>>> + "#sound-dai-cells": > >>>> + const: 0 > >>>> + > >>>> + ite,i2s-audio-fifo-sources: > >>>> + $ref: /schemas/types.yaml#/definitions/uint32-array > >>>> + minItems: 1 > >>>> + maxItems: 4 > >>>> + items: > >>>> + enum: [0, 1, 2, 3] > >>>> + description: > >>>> + Each array element indicates the pin number of an I2S serial data input > >>>> + line which is connected to an audio FIFO, from audio FIFO0 to FIFO3. > >>>> + > >>>> + ite,rl-channel-swap-audio-sources: > >>>> + $ref: /schemas/types.yaml#/definitions/uint32-array > >>>> + minItems: 1 > >>>> + maxItems: 4 > >>>> + uniqueItems: true > >>>> + items: > >>>> + enum: [0, 1, 2, 3] > >>>> + description: > >>>> + Each array element indicates an audio source whose right channel and left > >>>> + channel are swapped by this converter. For I2S, the element is the pin > >>>> + number of an I2S serial data input line. For S/PDIF, the element is always > >>>> + 0. > >>>> + > >>>> + ports: > >>>> + $ref: /schemas/graph.yaml#/properties/ports > >>>> + > >>>> + oneOf: > >>>> + - properties: > >>>> + port@0: > >>>> + $ref: /schemas/graph.yaml#/properties/port > >>>> + description: the first LVDS input link > >>>> + > >>>> + port@1: false > >>>> + > >>>> + port@2: > >>>> + $ref: /schemas/graph.yaml#/properties/port > >>>> + description: video port for the HDMI output > >>>> + > >>>> + port@3: > >>>> + $ref: /schemas/graph.yaml#/properties/port > >>>> + description: sound input port > >>>> + > >>>> + required: > >>>> + - port@0 > >>>> + - port@2 > >>>> + > >>>> + - properties: > >>>> + port@0: > >>>> + $ref: /schemas/graph.yaml#/$defs/port-base > >>>> + unevaluatedProperties: false > >>>> + description: the first LVDS input link > >>>> + > >>>> + properties: > >>>> + dual-lvds-odd-pixels: > >>>> + type: boolean > >>>> + description: the first sink port for odd pixels > >>>> + > >>>> + dual-lvds-even-pixels: > >>>> + type: boolean > >>>> + description: the first sink port for even pixels > >>>> + > >>>> + oneOf: > >>>> + - required: [dual-lvds-odd-pixels] > >>>> + - required: [dual-lvds-even-pixels] > >>>> + > >>>> + port@1: > >>>> + $ref: /schemas/graph.yaml#/$defs/port-base > >>>> + unevaluatedProperties: false > >>>> + description: the second LVDS input link > >>>> + > >>>> + properties: > >>>> + dual-lvds-even-pixels: > >>>> + type: boolean > >>>> + description: the second sink port for even pixels > >>>> + > >>>> + dual-lvds-odd-pixels: > >>>> + type: boolean > >>>> + description: the second sink port for odd pixels > >>>> + > >>>> + oneOf: > >>>> + - required: [dual-lvds-even-pixels] > >>>> + - required: [dual-lvds-odd-pixels] > >>> > >>> > >>>> + > >>>> + port@2: > >>>> + $ref: /schemas/graph.yaml#/properties/port > >>>> + description: video port for the HDMI output > >>>> + > >>>> + port@3: > >>>> + $ref: /schemas/graph.yaml#/properties/port > >>>> + description: sound input port > >>> > >>> What about single lvds as device support it? > >> > >> The single LVDS link has already been documented in this binding doc. > >> Please find the "properties" above where only "port@0" and "port@2" > >> are required. > > > > Maybe "the first LVDS input link"-->"Single LVDS input link" for single LVDS block?? > > Nope. > > I tested single LVDS link with the second LVDS link. It didn't work. > The single LVDS link only works with the first LVDS link. OK. That is the reason you made port@1 false. Still port@0 is a single LVDS instance or first LVDS input link for the dual LVDS configuration?? Cheers, Biju > > > > >> > >> imx8mp-evk-lvds0-imx-lvds-hdmi.dtso and > >> imx8mp-evk-lvds1-imx-lvds-hdmi.dtso > >> added in patch 7 support the NXP adapter card with single LVDS link. > >> > >>> > >>> Cheers, > >>> Biju > >>> > >>>> + > >>>> + required: > >>>> + - port@0 > >>>> + - port@1 > >>>> + - port@2 > >>>> + > >>>> + allOf: > >>>> + - if: > >>>> + properties: > >>>> + port@0: > >>>> + required: > >>>> + - dual-lvds-odd-pixels > >>>> + then: > >>>> + properties: > >>>> + port@1: > >>>> + properties: > >>>> + dual-lvds-odd-pixels: false > >>>> + > >>>> + - if: > >>>> + properties: > >>>> + port@0: > >>>> + required: > >>>> + - dual-lvds-even-pixels > >>>> + then: > >>>> + properties: > >>>> + port@1: > >>>> + properties: > >>>> + dual-lvds-even-pixels: false > >>>> + > >>>> +required: > >>>> + - compatible > >>>> + - reg > >>>> + - ivdd-supply > >>>> + - ovdd-supply > >>>> + - txavcc18-supply > >>>> + - txavcc33-supply > >>>> + - pvcc1-supply > >>>> + - pvcc2-supply > >>>> + - avcc-supply > >>>> + - anvdd-supply > >>>> + - apvdd-supply > >>>> + - ports > >>>> + > >>>> +additionalProperties: false > >>>> + > >>>> +examples: > >>>> + - | > >>>> + /* single-link LVDS input */ > >>>> + #include <dt-bindings/gpio/gpio.h> > >>>> + > >>>> + i2c { > >>>> + #address-cells = <1>; > >>>> + #size-cells = <0>; > >>>> + > >>>> + hdmi@4c { > >>>> + compatible = "ite,it6263"; > >>>> + reg = <0x4c>; > >>>> + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > >>>> + ivdd-supply = <®_buck5>; > >>>> + ovdd-supply = <®_vext_3v3>; > >>>> + txavcc18-supply = <®_buck5>; > >>>> + txavcc33-supply = <®_vext_3v3>; > >>>> + pvcc1-supply = <®_buck5>; > >>>> + pvcc2-supply = <®_buck5>; > >>>> + avcc-supply = <®_vext_3v3>; > >>>> + anvdd-supply = <®_buck5>; > >>>> + apvdd-supply = <®_buck5>; > >>>> + > >>>> + ports { > >>>> + #address-cells = <1>; > >>>> + #size-cells = <0>; > >>>> + > >>>> + port@0 { > >>>> + reg = <0>; > >>>> + > >>>> + it6263_lvds_link1: endpoint { > >>>> + remote-endpoint = <&ldb_lvds_ch0>; > >>>> + }; > >>>> + }; > >>>> + > >>>> + port@2 { > >>>> + reg = <2>; > >>>> + > >>>> + it6263_out: endpoint { > >>>> + remote-endpoint = <&hdmi_in>; > >>>> + }; > >>>> + }; > >>>> + }; > >>>> + }; > >>>> + }; > >>>> + > >>>> + - | > >>>> + /* dual-link LVDS input */ > >>>> + #include <dt-bindings/gpio/gpio.h> > >>>> + > >>>> + i2c { > >>>> + #address-cells = <1>; > >>>> + #size-cells = <0>; > >>>> + > >>>> + hdmi@4c { > >>>> + compatible = "ite,it6263"; > >>>> + reg = <0x4c>; > >>>> + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > >>>> + ivdd-supply = <®_buck5>; > >>>> + ovdd-supply = <®_vext_3v3>; > >>>> + txavcc18-supply = <®_buck5>; > >>>> + txavcc33-supply = <®_vext_3v3>; > >>>> + pvcc1-supply = <®_buck5>; > >>>> + pvcc2-supply = <®_buck5>; > >>>> + avcc-supply = <®_vext_3v3>; > >>>> + anvdd-supply = <®_buck5>; > >>>> + apvdd-supply = <®_buck5>; > >>>> + > >>>> + ports { > >>>> + #address-cells = <1>; > >>>> + #size-cells = <0>; > >>>> + > >>>> + port@0 { > >>>> + reg = <0>; > >>>> + dual-lvds-odd-pixels; > >>>> + > >>>> + it6263_lvds_link1_dual: endpoint { > >>>> + remote-endpoint = <&ldb_lvds_ch0>; > >>>> + }; > >>>> + }; > >>>> + > >>>> + port@1 { > >>>> + reg = <1>; > >>>> + dual-lvds-even-pixels; > >>>> + > >>>> + it6263_lvds_link2_dual: endpoint { > >>>> + remote-endpoint = <&ldb_lvds_ch1>; > >>>> + }; > >>>> + }; > >>>> + > >>>> + port@2 { > >>>> + reg = <2>; > >>>> + > >>>> + it6263_out_dual: endpoint { > >>>> + remote-endpoint = <&hdmi_in>; > >>>> + }; > >>>> + }; > >>>> + }; > >>>> + }; > >>>> + }; > >>>> -- > >>>> 2.34.1 > >>>> > >>> > >> > >> -- > >> Regards, > >> Liu Ying > > > > -- > Regards, > Liu Ying
On 09/30/2024, Biju Das wrote: > Hi Liu, Hi Biju, > >> -----Original Message----- >> From: Liu Ying <victor.liu@nxp.com> >> Sent: Monday, September 30, 2024 10:30 AM >> Subject: Re: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 LVDS to HDMI converter >> >> On 09/30/2024, Biju Das wrote: >>> Hi Liu, >> >> Hi Biju, >> >>> >>>> -----Original Message----- >>>> From: Liu Ying <victor.liu@nxp.com> >>>> Sent: Monday, September 30, 2024 10:16 AM >>>> Subject: Re: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 >>>> LVDS to HDMI converter >>>> >>>> On 09/30/2024, Biju Das wrote: >>>>> Hi Liu, >>>> >>>> Hi Biju, >>>> >>>>> >>>>> thanks for the patch. >>>>> >>>>>> -----Original Message----- >>>>>> From: linux-arm-kernel >>>>>> <linux-arm-kernel-bounces@lists.infradead.org> >>>>>> On Behalf Of Liu Ying >>>>>> Sent: Monday, September 30, 2024 6:29 AM >>>>>> Subject: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 >>>>>> LVDS to HDMI converter >>>>>> >>>>>> Document ITE IT6263 LVDS to HDMI converter. >>>>>> >>>>>> Product link: >>>>>> https://www.ite.com.tw/en/product/cate1/IT6263 >>>>>> >>>>>> Signed-off-by: Liu Ying <victor.liu@nxp.com> >>>>>> --- >>>>>> .../bindings/display/bridge/ite,it6263.yaml | 310 ++++++++++++++++++ >>>>>> 1 file changed, 310 insertions(+) >>>>>> create mode 100644 >>>>>> Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml >>>>>> >>>>>> diff --git >>>>>> a/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml >>>>>> b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml >>>>>> new file mode 100644 >>>>>> index 000000000000..97fb81e5bc4a >>>>>> --- /dev/null >>>>>> +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6263.y >>>>>> +++ am >>>>>> +++ l >>>>>> @@ -0,0 +1,310 @@ >>>>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML >>>>>> +1.2 >>>>>> +--- >>>>>> +$id: http://devicetree.org/schemas/display/bridge/ite,it6263.yaml# >>>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>>>>> + >>>>>> +title: ITE IT6263 LVDS to HDMI converter >>>>>> + >>>>>> +maintainers: >>>>>> + - Liu Ying <victor.liu@nxp.com> >>>>>> + >>>>>> +description: | >>>>>> + The IT6263 is a high-performance single-chip De-SSC(De-Spread >>>>>> +Spectrum) LVDS >>>>>> + to HDMI converter. Combined with LVDS receiver and HDMI 1.4a >>>>>> +transmitter, >>>>>> + the IT6263 supports LVDS input and HDMI 1.4 output by conversion function. >>>>>> + The built-in LVDS receiver can support single-link and dual-link >>>>>> +LVDS inputs, >>>>>> + and the built-in HDMI transmitter is fully compliant with HDMI >>>>>> +1.4a/3D, HDCP >>>>>> + 1.2 and backward compatible with DVI 1.0 specification. >>>>>> + >>>>>> + The IT6263 also encodes and transmits up to 8 channels of I2S >>>>>> + digital audio, with sampling rate up to 192KHz and sample size up to 24 bits. >>>>>> + In addition, an S/PDIF input port takes in compressed audio of up to 192KHz frame rate. >>>>>> + >>>>>> + The newly supported High-Bit Rate(HBR) audio by HDMI >>>>>> + specifications >>>>>> + v1.3 is provided by the IT6263 in two interfaces: the four I2S >>>>>> + input ports or the S/PDIF input port. With both interfaces the >>>>>> + highest possible HBR frame rate is supported at up to 768KHz. >>>>>> + >>>>>> +properties: >>>>>> + compatible: >>>>>> + const: ite,it6263 >>>>>> + >>>>>> + reg: >>>>>> + maxItems: 1 >>>>>> + >>>>>> + clocks: >>>>>> + maxItems: 1 >>>>>> + description: audio master clock >>>>>> + >>>>>> + clock-names: >>>>>> + const: mclk >>>>>> + >>>>>> + reset-gpios: >>>>>> + maxItems: 1 >>>>>> + >>>>>> + ivdd-supply: >>>>>> + description: 1.8V digital logic power >>>>>> + >>>>>> + ovdd-supply: >>>>>> + description: 3.3V I/O pin power >>>>>> + >>>>>> + txavcc18-supply: >>>>>> + description: 1.8V HDMI analog frontend power >>>>>> + >>>>>> + txavcc33-supply: >>>>>> + description: 3.3V HDMI analog frontend power >>>>>> + >>>>>> + pvcc1-supply: >>>>>> + description: 1.8V HDMI frontend core PLL power >>>>>> + >>>>>> + pvcc2-supply: >>>>>> + description: 1.8V HDMI frontend filter PLL power >>>>>> + >>>>>> + avcc-supply: >>>>>> + description: 3.3V LVDS frontend power >>>>>> + >>>>>> + anvdd-supply: >>>>>> + description: 1.8V LVDS frontend analog power >>>>>> + >>>>>> + apvdd-supply: >>>>>> + description: 1.8V LVDS frontend PLL power >>>>>> + >>>>>> + "#sound-dai-cells": >>>>>> + const: 0 >>>>>> + >>>>>> + ite,i2s-audio-fifo-sources: >>>>>> + $ref: /schemas/types.yaml#/definitions/uint32-array >>>>>> + minItems: 1 >>>>>> + maxItems: 4 >>>>>> + items: >>>>>> + enum: [0, 1, 2, 3] >>>>>> + description: >>>>>> + Each array element indicates the pin number of an I2S serial data input >>>>>> + line which is connected to an audio FIFO, from audio FIFO0 to FIFO3. >>>>>> + >>>>>> + ite,rl-channel-swap-audio-sources: >>>>>> + $ref: /schemas/types.yaml#/definitions/uint32-array >>>>>> + minItems: 1 >>>>>> + maxItems: 4 >>>>>> + uniqueItems: true >>>>>> + items: >>>>>> + enum: [0, 1, 2, 3] >>>>>> + description: >>>>>> + Each array element indicates an audio source whose right channel and left >>>>>> + channel are swapped by this converter. For I2S, the element is the pin >>>>>> + number of an I2S serial data input line. For S/PDIF, the element is always >>>>>> + 0. >>>>>> + >>>>>> + ports: >>>>>> + $ref: /schemas/graph.yaml#/properties/ports >>>>>> + >>>>>> + oneOf: >>>>>> + - properties: >>>>>> + port@0: >>>>>> + $ref: /schemas/graph.yaml#/properties/port >>>>>> + description: the first LVDS input link >>>>>> + >>>>>> + port@1: false >>>>>> + >>>>>> + port@2: >>>>>> + $ref: /schemas/graph.yaml#/properties/port >>>>>> + description: video port for the HDMI output >>>>>> + >>>>>> + port@3: >>>>>> + $ref: /schemas/graph.yaml#/properties/port >>>>>> + description: sound input port >>>>>> + >>>>>> + required: >>>>>> + - port@0 >>>>>> + - port@2 >>>>>> + >>>>>> + - properties: >>>>>> + port@0: >>>>>> + $ref: /schemas/graph.yaml#/$defs/port-base >>>>>> + unevaluatedProperties: false >>>>>> + description: the first LVDS input link >>>>>> + >>>>>> + properties: >>>>>> + dual-lvds-odd-pixels: >>>>>> + type: boolean >>>>>> + description: the first sink port for odd pixels >>>>>> + >>>>>> + dual-lvds-even-pixels: >>>>>> + type: boolean >>>>>> + description: the first sink port for even pixels >>>>>> + >>>>>> + oneOf: >>>>>> + - required: [dual-lvds-odd-pixels] >>>>>> + - required: [dual-lvds-even-pixels] >>>>>> + >>>>>> + port@1: >>>>>> + $ref: /schemas/graph.yaml#/$defs/port-base >>>>>> + unevaluatedProperties: false >>>>>> + description: the second LVDS input link >>>>>> + >>>>>> + properties: >>>>>> + dual-lvds-even-pixels: >>>>>> + type: boolean >>>>>> + description: the second sink port for even pixels >>>>>> + >>>>>> + dual-lvds-odd-pixels: >>>>>> + type: boolean >>>>>> + description: the second sink port for odd pixels >>>>>> + >>>>>> + oneOf: >>>>>> + - required: [dual-lvds-even-pixels] >>>>>> + - required: [dual-lvds-odd-pixels] >>>>> >>>>> >>>>>> + >>>>>> + port@2: >>>>>> + $ref: /schemas/graph.yaml#/properties/port >>>>>> + description: video port for the HDMI output >>>>>> + >>>>>> + port@3: >>>>>> + $ref: /schemas/graph.yaml#/properties/port >>>>>> + description: sound input port >>>>> >>>>> What about single lvds as device support it? >>>> >>>> The single LVDS link has already been documented in this binding doc. >>>> Please find the "properties" above where only "port@0" and "port@2" >>>> are required. >>> >>> Maybe "the first LVDS input link"-->"Single LVDS input link" for single LVDS block?? >> >> Nope. >> >> I tested single LVDS link with the second LVDS link. It didn't work. >> The single LVDS link only works with the first LVDS link. > > OK. That is the reason you made port@1 false. Yes. > > Still port@0 is a single LVDS instance or first LVDS input link for the dual > LVDS configuration?? "port@0" always represents the first LVDS link and "port@1" always represents the second LVDS link, no matter it's a single-link LVDS or a dual-link LVDS. Which one is the first/second LVDS link? See "LVDS front-end interface pin" in IT6263 data sheet[1] where first/second are defined. [1] http://static6.arrow.com/aropdfconversion/a2ecd2a29274cf0bfb3f3c829ef224c5838fe144/it6263fn.pdf > > Cheers, > Biju > > >> >>> >>>> >>>> imx8mp-evk-lvds0-imx-lvds-hdmi.dtso and >>>> imx8mp-evk-lvds1-imx-lvds-hdmi.dtso >>>> added in patch 7 support the NXP adapter card with single LVDS link. >>>> >>>>> >>>>> Cheers, >>>>> Biju >>>>> >>>>>> + >>>>>> + required: >>>>>> + - port@0 >>>>>> + - port@1 >>>>>> + - port@2 >>>>>> + >>>>>> + allOf: >>>>>> + - if: >>>>>> + properties: >>>>>> + port@0: >>>>>> + required: >>>>>> + - dual-lvds-odd-pixels >>>>>> + then: >>>>>> + properties: >>>>>> + port@1: >>>>>> + properties: >>>>>> + dual-lvds-odd-pixels: false >>>>>> + >>>>>> + - if: >>>>>> + properties: >>>>>> + port@0: >>>>>> + required: >>>>>> + - dual-lvds-even-pixels >>>>>> + then: >>>>>> + properties: >>>>>> + port@1: >>>>>> + properties: >>>>>> + dual-lvds-even-pixels: false >>>>>> + >>>>>> +required: >>>>>> + - compatible >>>>>> + - reg >>>>>> + - ivdd-supply >>>>>> + - ovdd-supply >>>>>> + - txavcc18-supply >>>>>> + - txavcc33-supply >>>>>> + - pvcc1-supply >>>>>> + - pvcc2-supply >>>>>> + - avcc-supply >>>>>> + - anvdd-supply >>>>>> + - apvdd-supply >>>>>> + - ports >>>>>> + >>>>>> +additionalProperties: false >>>>>> + >>>>>> +examples: >>>>>> + - | >>>>>> + /* single-link LVDS input */ >>>>>> + #include <dt-bindings/gpio/gpio.h> >>>>>> + >>>>>> + i2c { >>>>>> + #address-cells = <1>; >>>>>> + #size-cells = <0>; >>>>>> + >>>>>> + hdmi@4c { >>>>>> + compatible = "ite,it6263"; >>>>>> + reg = <0x4c>; >>>>>> + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; >>>>>> + ivdd-supply = <®_buck5>; >>>>>> + ovdd-supply = <®_vext_3v3>; >>>>>> + txavcc18-supply = <®_buck5>; >>>>>> + txavcc33-supply = <®_vext_3v3>; >>>>>> + pvcc1-supply = <®_buck5>; >>>>>> + pvcc2-supply = <®_buck5>; >>>>>> + avcc-supply = <®_vext_3v3>; >>>>>> + anvdd-supply = <®_buck5>; >>>>>> + apvdd-supply = <®_buck5>; >>>>>> + >>>>>> + ports { >>>>>> + #address-cells = <1>; >>>>>> + #size-cells = <0>; >>>>>> + >>>>>> + port@0 { >>>>>> + reg = <0>; >>>>>> + >>>>>> + it6263_lvds_link1: endpoint { >>>>>> + remote-endpoint = <&ldb_lvds_ch0>; >>>>>> + }; >>>>>> + }; >>>>>> + >>>>>> + port@2 { >>>>>> + reg = <2>; >>>>>> + >>>>>> + it6263_out: endpoint { >>>>>> + remote-endpoint = <&hdmi_in>; >>>>>> + }; >>>>>> + }; >>>>>> + }; >>>>>> + }; >>>>>> + }; >>>>>> + >>>>>> + - | >>>>>> + /* dual-link LVDS input */ >>>>>> + #include <dt-bindings/gpio/gpio.h> >>>>>> + >>>>>> + i2c { >>>>>> + #address-cells = <1>; >>>>>> + #size-cells = <0>; >>>>>> + >>>>>> + hdmi@4c { >>>>>> + compatible = "ite,it6263"; >>>>>> + reg = <0x4c>; >>>>>> + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; >>>>>> + ivdd-supply = <®_buck5>; >>>>>> + ovdd-supply = <®_vext_3v3>; >>>>>> + txavcc18-supply = <®_buck5>; >>>>>> + txavcc33-supply = <®_vext_3v3>; >>>>>> + pvcc1-supply = <®_buck5>; >>>>>> + pvcc2-supply = <®_buck5>; >>>>>> + avcc-supply = <®_vext_3v3>; >>>>>> + anvdd-supply = <®_buck5>; >>>>>> + apvdd-supply = <®_buck5>; >>>>>> + >>>>>> + ports { >>>>>> + #address-cells = <1>; >>>>>> + #size-cells = <0>; >>>>>> + >>>>>> + port@0 { >>>>>> + reg = <0>; >>>>>> + dual-lvds-odd-pixels; >>>>>> + >>>>>> + it6263_lvds_link1_dual: endpoint { >>>>>> + remote-endpoint = <&ldb_lvds_ch0>; >>>>>> + }; >>>>>> + }; >>>>>> + >>>>>> + port@1 { >>>>>> + reg = <1>; >>>>>> + dual-lvds-even-pixels; >>>>>> + >>>>>> + it6263_lvds_link2_dual: endpoint { >>>>>> + remote-endpoint = <&ldb_lvds_ch1>; >>>>>> + }; >>>>>> + }; >>>>>> + >>>>>> + port@2 { >>>>>> + reg = <2>; >>>>>> + >>>>>> + it6263_out_dual: endpoint { >>>>>> + remote-endpoint = <&hdmi_in>; >>>>>> + }; >>>>>> + }; >>>>>> + }; >>>>>> + }; >>>>>> + }; >>>>>> -- >>>>>> 2.34.1 >>>>>> >>>>> >>>> >>>> -- >>>> Regards, >>>> Liu Ying >>> >> >> -- >> Regards, >> Liu Ying >
Hi Liu, > -----Original Message----- > From: Liu Ying <victor.liu@nxp.com> > Sent: Monday, September 30, 2024 10:49 AM > Subject: Re: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 LVDS to HDMI converter > > On 09/30/2024, Biju Das wrote: > > Hi Liu, > > Hi Biju, > > > > >> -----Original Message----- > >> From: Liu Ying <victor.liu@nxp.com> > >> Sent: Monday, September 30, 2024 10:30 AM > >> Subject: Re: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 > >> LVDS to HDMI converter > >> > >> On 09/30/2024, Biju Das wrote: > >>> Hi Liu, > >> > >> Hi Biju, > >> > >>> > >>>> -----Original Message----- > >>>> From: Liu Ying <victor.liu@nxp.com> > >>>> Sent: Monday, September 30, 2024 10:16 AM > >>>> Subject: Re: [PATCH 5/8] dt-bindings: display: bridge: Add ITE > >>>> IT6263 LVDS to HDMI converter > >>>> > >>>> On 09/30/2024, Biju Das wrote: > >>>>> Hi Liu, > >>>> > >>>> Hi Biju, > >>>> > >>>>> > >>>>> thanks for the patch. > >>>>> > >>>>>> -----Original Message----- > >>>>>> From: linux-arm-kernel > >>>>>> <linux-arm-kernel-bounces@lists.infradead.org> > >>>>>> On Behalf Of Liu Ying > >>>>>> Sent: Monday, September 30, 2024 6:29 AM > >>>>>> Subject: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 > >>>>>> LVDS to HDMI converter > >>>>>> > >>>>>> Document ITE IT6263 LVDS to HDMI converter. > >>>>>> > >>>>>> Product link: > >>>>>> https://www.ite.com.tw/en/product/cate1/IT6263 > >>>>>> > >>>>>> Signed-off-by: Liu Ying <victor.liu@nxp.com> > >>>>>> --- > >>>>>> .../bindings/display/bridge/ite,it6263.yaml | 310 ++++++++++++++++++ > >>>>>> 1 file changed, 310 insertions(+) create mode 100644 > >>>>>> Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > >>>>>> > >>>>>> diff --git > >>>>>> a/Documentation/devicetree/bindings/display/bridge/ite,it6263.yam > >>>>>> l > >>>>>> b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yam > >>>>>> l > >>>>>> new file mode 100644 > >>>>>> index 000000000000..97fb81e5bc4a > >>>>>> --- /dev/null > >>>>>> +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6263 > >>>>>> +++ .y > >>>>>> +++ am > >>>>>> +++ l > >>>>>> @@ -0,0 +1,310 @@ > >>>>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML > >>>>>> +1.2 > >>>>>> +--- > >>>>>> +$id: > >>>>>> +http://devicetree.org/schemas/display/bridge/ite,it6263.yaml# > >>>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml# > >>>>>> + > >>>>>> +title: ITE IT6263 LVDS to HDMI converter > >>>>>> + > >>>>>> +maintainers: > >>>>>> + - Liu Ying <victor.liu@nxp.com> > >>>>>> + > >>>>>> +description: | > >>>>>> + The IT6263 is a high-performance single-chip De-SSC(De-Spread > >>>>>> +Spectrum) LVDS > >>>>>> + to HDMI converter. Combined with LVDS receiver and HDMI 1.4a > >>>>>> +transmitter, > >>>>>> + the IT6263 supports LVDS input and HDMI 1.4 output by conversion function. > >>>>>> + The built-in LVDS receiver can support single-link and > >>>>>> +dual-link LVDS inputs, > >>>>>> + and the built-in HDMI transmitter is fully compliant with HDMI > >>>>>> +1.4a/3D, HDCP > >>>>>> + 1.2 and backward compatible with DVI 1.0 specification. > >>>>>> + > >>>>>> + The IT6263 also encodes and transmits up to 8 channels of I2S > >>>>>> + digital audio, with sampling rate up to 192KHz and sample size up to 24 bits. > >>>>>> + In addition, an S/PDIF input port takes in compressed audio of up to 192KHz frame rate. > >>>>>> + > >>>>>> + The newly supported High-Bit Rate(HBR) audio by HDMI > >>>>>> + specifications > >>>>>> + v1.3 is provided by the IT6263 in two interfaces: the four I2S > >>>>>> + input ports or the S/PDIF input port. With both interfaces > >>>>>> + the highest possible HBR frame rate is supported at up to 768KHz. > >>>>>> + > >>>>>> +properties: > >>>>>> + compatible: > >>>>>> + const: ite,it6263 > >>>>>> + > >>>>>> + reg: > >>>>>> + maxItems: 1 > >>>>>> + > >>>>>> + clocks: > >>>>>> + maxItems: 1 > >>>>>> + description: audio master clock > >>>>>> + > >>>>>> + clock-names: > >>>>>> + const: mclk > >>>>>> + > >>>>>> + reset-gpios: > >>>>>> + maxItems: 1 > >>>>>> + > >>>>>> + ivdd-supply: > >>>>>> + description: 1.8V digital logic power > >>>>>> + > >>>>>> + ovdd-supply: > >>>>>> + description: 3.3V I/O pin power > >>>>>> + > >>>>>> + txavcc18-supply: > >>>>>> + description: 1.8V HDMI analog frontend power > >>>>>> + > >>>>>> + txavcc33-supply: > >>>>>> + description: 3.3V HDMI analog frontend power > >>>>>> + > >>>>>> + pvcc1-supply: > >>>>>> + description: 1.8V HDMI frontend core PLL power > >>>>>> + > >>>>>> + pvcc2-supply: > >>>>>> + description: 1.8V HDMI frontend filter PLL power > >>>>>> + > >>>>>> + avcc-supply: > >>>>>> + description: 3.3V LVDS frontend power > >>>>>> + > >>>>>> + anvdd-supply: > >>>>>> + description: 1.8V LVDS frontend analog power > >>>>>> + > >>>>>> + apvdd-supply: > >>>>>> + description: 1.8V LVDS frontend PLL power > >>>>>> + > >>>>>> + "#sound-dai-cells": > >>>>>> + const: 0 > >>>>>> + > >>>>>> + ite,i2s-audio-fifo-sources: > >>>>>> + $ref: /schemas/types.yaml#/definitions/uint32-array > >>>>>> + minItems: 1 > >>>>>> + maxItems: 4 > >>>>>> + items: > >>>>>> + enum: [0, 1, 2, 3] > >>>>>> + description: > >>>>>> + Each array element indicates the pin number of an I2S serial data input > >>>>>> + line which is connected to an audio FIFO, from audio FIFO0 to FIFO3. > >>>>>> + > >>>>>> + ite,rl-channel-swap-audio-sources: > >>>>>> + $ref: /schemas/types.yaml#/definitions/uint32-array > >>>>>> + minItems: 1 > >>>>>> + maxItems: 4 > >>>>>> + uniqueItems: true > >>>>>> + items: > >>>>>> + enum: [0, 1, 2, 3] > >>>>>> + description: > >>>>>> + Each array element indicates an audio source whose right channel and left > >>>>>> + channel are swapped by this converter. For I2S, the element is the pin > >>>>>> + number of an I2S serial data input line. For S/PDIF, the element is always > >>>>>> + 0. > >>>>>> + > >>>>>> + ports: > >>>>>> + $ref: /schemas/graph.yaml#/properties/ports > >>>>>> + > >>>>>> + oneOf: > >>>>>> + - properties: > >>>>>> + port@0: > >>>>>> + $ref: /schemas/graph.yaml#/properties/port > >>>>>> + description: the first LVDS input link > >>>>>> + > >>>>>> + port@1: false > >>>>>> + > >>>>>> + port@2: > >>>>>> + $ref: /schemas/graph.yaml#/properties/port > >>>>>> + description: video port for the HDMI output > >>>>>> + > >>>>>> + port@3: > >>>>>> + $ref: /schemas/graph.yaml#/properties/port > >>>>>> + description: sound input port > >>>>>> + > >>>>>> + required: > >>>>>> + - port@0 > >>>>>> + - port@2 > >>>>>> + > >>>>>> + - properties: > >>>>>> + port@0: > >>>>>> + $ref: /schemas/graph.yaml#/$defs/port-base > >>>>>> + unevaluatedProperties: false > >>>>>> + description: the first LVDS input link > >>>>>> + > >>>>>> + properties: > >>>>>> + dual-lvds-odd-pixels: > >>>>>> + type: boolean > >>>>>> + description: the first sink port for odd pixels > >>>>>> + > >>>>>> + dual-lvds-even-pixels: > >>>>>> + type: boolean > >>>>>> + description: the first sink port for even pixels > >>>>>> + > >>>>>> + oneOf: > >>>>>> + - required: [dual-lvds-odd-pixels] > >>>>>> + - required: [dual-lvds-even-pixels] > >>>>>> + > >>>>>> + port@1: > >>>>>> + $ref: /schemas/graph.yaml#/$defs/port-base > >>>>>> + unevaluatedProperties: false > >>>>>> + description: the second LVDS input link > >>>>>> + > >>>>>> + properties: > >>>>>> + dual-lvds-even-pixels: > >>>>>> + type: boolean > >>>>>> + description: the second sink port for even > >>>>>> + pixels > >>>>>> + > >>>>>> + dual-lvds-odd-pixels: > >>>>>> + type: boolean > >>>>>> + description: the second sink port for odd pixels > >>>>>> + > >>>>>> + oneOf: > >>>>>> + - required: [dual-lvds-even-pixels] > >>>>>> + - required: [dual-lvds-odd-pixels] > >>>>> > >>>>> > >>>>>> + > >>>>>> + port@2: > >>>>>> + $ref: /schemas/graph.yaml#/properties/port > >>>>>> + description: video port for the HDMI output > >>>>>> + > >>>>>> + port@3: > >>>>>> + $ref: /schemas/graph.yaml#/properties/port > >>>>>> + description: sound input port > >>>>> > >>>>> What about single lvds as device support it? > >>>> > >>>> The single LVDS link has already been documented in this binding doc. > >>>> Please find the "properties" above where only "port@0" and "port@2" > >>>> are required. > >>> > >>> Maybe "the first LVDS input link"-->"Single LVDS input link" for single LVDS block?? > >> > >> Nope. > >> > >> I tested single LVDS link with the second LVDS link. It didn't work. > >> The single LVDS link only works with the first LVDS link. > > > > OK. That is the reason you made port@1 false. > > Yes. > > > > > Still port@0 is a single LVDS instance or first LVDS input link for > > the dual LVDS configuration?? > > "port@0" always represents the first LVDS link and "port@1" always represents the second LVDS link, no > matter it's a single-link LVDS or a dual-link LVDS. > > Which one is the first/second LVDS link? See "LVDS front-end interface pin" in IT6263 data sheet[1] > where first/second are defined. > > [1] http://static6.arrow.com/aropdfconversion/a2ecd2a29274cf0bfb3f3c829ef224c5838fe144/it6263fn.pdf I agree it matches with hw documentation. Cheers, Biju > > > > > Cheers, > > Biju > > > > > >> > >>> > >>>> > >>>> imx8mp-evk-lvds0-imx-lvds-hdmi.dtso and > >>>> imx8mp-evk-lvds1-imx-lvds-hdmi.dtso > >>>> added in patch 7 support the NXP adapter card with single LVDS link. > >>>> > >>>>> > >>>>> Cheers, > >>>>> Biju > >>>>> > >>>>>> + > >>>>>> + required: > >>>>>> + - port@0 > >>>>>> + - port@1 > >>>>>> + - port@2 > >>>>>> + > >>>>>> + allOf: > >>>>>> + - if: > >>>>>> + properties: > >>>>>> + port@0: > >>>>>> + required: > >>>>>> + - dual-lvds-odd-pixels > >>>>>> + then: > >>>>>> + properties: > >>>>>> + port@1: > >>>>>> + properties: > >>>>>> + dual-lvds-odd-pixels: false > >>>>>> + > >>>>>> + - if: > >>>>>> + properties: > >>>>>> + port@0: > >>>>>> + required: > >>>>>> + - dual-lvds-even-pixels > >>>>>> + then: > >>>>>> + properties: > >>>>>> + port@1: > >>>>>> + properties: > >>>>>> + dual-lvds-even-pixels: false > >>>>>> + > >>>>>> +required: > >>>>>> + - compatible > >>>>>> + - reg > >>>>>> + - ivdd-supply > >>>>>> + - ovdd-supply > >>>>>> + - txavcc18-supply > >>>>>> + - txavcc33-supply > >>>>>> + - pvcc1-supply > >>>>>> + - pvcc2-supply > >>>>>> + - avcc-supply > >>>>>> + - anvdd-supply > >>>>>> + - apvdd-supply > >>>>>> + - ports > >>>>>> + > >>>>>> +additionalProperties: false > >>>>>> + > >>>>>> +examples: > >>>>>> + - | > >>>>>> + /* single-link LVDS input */ > >>>>>> + #include <dt-bindings/gpio/gpio.h> > >>>>>> + > >>>>>> + i2c { > >>>>>> + #address-cells = <1>; > >>>>>> + #size-cells = <0>; > >>>>>> + > >>>>>> + hdmi@4c { > >>>>>> + compatible = "ite,it6263"; > >>>>>> + reg = <0x4c>; > >>>>>> + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > >>>>>> + ivdd-supply = <®_buck5>; > >>>>>> + ovdd-supply = <®_vext_3v3>; > >>>>>> + txavcc18-supply = <®_buck5>; > >>>>>> + txavcc33-supply = <®_vext_3v3>; > >>>>>> + pvcc1-supply = <®_buck5>; > >>>>>> + pvcc2-supply = <®_buck5>; > >>>>>> + avcc-supply = <®_vext_3v3>; > >>>>>> + anvdd-supply = <®_buck5>; > >>>>>> + apvdd-supply = <®_buck5>; > >>>>>> + > >>>>>> + ports { > >>>>>> + #address-cells = <1>; > >>>>>> + #size-cells = <0>; > >>>>>> + > >>>>>> + port@0 { > >>>>>> + reg = <0>; > >>>>>> + > >>>>>> + it6263_lvds_link1: endpoint { > >>>>>> + remote-endpoint = <&ldb_lvds_ch0>; > >>>>>> + }; > >>>>>> + }; > >>>>>> + > >>>>>> + port@2 { > >>>>>> + reg = <2>; > >>>>>> + > >>>>>> + it6263_out: endpoint { > >>>>>> + remote-endpoint = <&hdmi_in>; > >>>>>> + }; > >>>>>> + }; > >>>>>> + }; > >>>>>> + }; > >>>>>> + }; > >>>>>> + > >>>>>> + - | > >>>>>> + /* dual-link LVDS input */ > >>>>>> + #include <dt-bindings/gpio/gpio.h> > >>>>>> + > >>>>>> + i2c { > >>>>>> + #address-cells = <1>; > >>>>>> + #size-cells = <0>; > >>>>>> + > >>>>>> + hdmi@4c { > >>>>>> + compatible = "ite,it6263"; > >>>>>> + reg = <0x4c>; > >>>>>> + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > >>>>>> + ivdd-supply = <®_buck5>; > >>>>>> + ovdd-supply = <®_vext_3v3>; > >>>>>> + txavcc18-supply = <®_buck5>; > >>>>>> + txavcc33-supply = <®_vext_3v3>; > >>>>>> + pvcc1-supply = <®_buck5>; > >>>>>> + pvcc2-supply = <®_buck5>; > >>>>>> + avcc-supply = <®_vext_3v3>; > >>>>>> + anvdd-supply = <®_buck5>; > >>>>>> + apvdd-supply = <®_buck5>; > >>>>>> + > >>>>>> + ports { > >>>>>> + #address-cells = <1>; > >>>>>> + #size-cells = <0>; > >>>>>> + > >>>>>> + port@0 { > >>>>>> + reg = <0>; > >>>>>> + dual-lvds-odd-pixels; > >>>>>> + > >>>>>> + it6263_lvds_link1_dual: endpoint { > >>>>>> + remote-endpoint = <&ldb_lvds_ch0>; > >>>>>> + }; > >>>>>> + }; > >>>>>> + > >>>>>> + port@1 { > >>>>>> + reg = <1>; > >>>>>> + dual-lvds-even-pixels; > >>>>>> + > >>>>>> + it6263_lvds_link2_dual: endpoint { > >>>>>> + remote-endpoint = <&ldb_lvds_ch1>; > >>>>>> + }; > >>>>>> + }; > >>>>>> + > >>>>>> + port@2 { > >>>>>> + reg = <2>; > >>>>>> + > >>>>>> + it6263_out_dual: endpoint { > >>>>>> + remote-endpoint = <&hdmi_in>; > >>>>>> + }; > >>>>>> + }; > >>>>>> + }; > >>>>>> + }; > >>>>>> + }; > >>>>>> -- > >>>>>> 2.34.1 > >>>>>> > >>>>> > >>>> > >>>> -- > >>>> Regards, > >>>> Liu Ying > >>> > >> > >> -- > >> Regards, > >> Liu Ying > > > > -- > Regards, > Liu Ying
Hi Liu, > -----Original Message----- > From: Biju Das > Sent: Monday, September 30, 2024 10:04 AM > Subject: RE: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 LVDS to HDMI converter > > Hi Liu, > > thanks for the patch. > > > -----Original Message----- > > From: linux-arm-kernel <linux-arm-kernel-bounces@lists.infradead.org> > > On Behalf Of Liu Ying > > Sent: Monday, September 30, 2024 6:29 AM > > Subject: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 LVDS > > to HDMI converter > > > > Document ITE IT6263 LVDS to HDMI converter. > > > > Product link: > > https://www.ite.com.tw/en/product/cate1/IT6263 > > > > Signed-off-by: Liu Ying <victor.liu@nxp.com> > > --- > > .../bindings/display/bridge/ite,it6263.yaml | 310 ++++++++++++++++++ > > 1 file changed, 310 insertions(+) > > create mode 100644 > > Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > > > > diff --git > > a/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > > b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > > new file mode 100644 > > index 000000000000..97fb81e5bc4a > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > > @@ -0,0 +1,310 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/bridge/ite,it6263.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: ITE IT6263 LVDS to HDMI converter > > + > > +maintainers: > > + - Liu Ying <victor.liu@nxp.com> > > + > > +description: | > > + The IT6263 is a high-performance single-chip De-SSC(De-Spread > > +Spectrum) LVDS > > + to HDMI converter. Combined with LVDS receiver and HDMI 1.4a > > +transmitter, > > + the IT6263 supports LVDS input and HDMI 1.4 output by conversion function. > > + The built-in LVDS receiver can support single-link and dual-link > > +LVDS inputs, > > + and the built-in HDMI transmitter is fully compliant with HDMI > > +1.4a/3D, HDCP > > + 1.2 and backward compatible with DVI 1.0 specification. > > + > > + The IT6263 also encodes and transmits up to 8 channels of I2S > > + digital audio, with sampling rate up to 192KHz and sample size up to 24 bits. > > + In addition, an S/PDIF input port takes in compressed audio of up to 192KHz frame rate. > > + > > + The newly supported High-Bit Rate(HBR) audio by HDMI specifications > > + v1.3 is provided by the IT6263 in two interfaces: the four I2S > > + input ports or the S/PDIF input port. With both interfaces the > > + highest possible HBR frame rate is supported at up to 768KHz. > > + > > +properties: > > + compatible: > > + const: ite,it6263 > > + > > + reg: > > + maxItems: 1 > > + > > + clocks: > > + maxItems: 1 > > + description: audio master clock > > + > > + clock-names: > > + const: mclk > > + > > + reset-gpios: > > + maxItems: 1 > > + > > + ivdd-supply: > > + description: 1.8V digital logic power > > + > > + ovdd-supply: > > + description: 3.3V I/O pin power > > + > > + txavcc18-supply: > > + description: 1.8V HDMI analog frontend power > > + > > + txavcc33-supply: > > + description: 3.3V HDMI analog frontend power > > + > > + pvcc1-supply: > > + description: 1.8V HDMI frontend core PLL power > > + > > + pvcc2-supply: > > + description: 1.8V HDMI frontend filter PLL power > > + > > + avcc-supply: > > + description: 3.3V LVDS frontend power > > + > > + anvdd-supply: > > + description: 1.8V LVDS frontend analog power > > + > > + apvdd-supply: > > + description: 1.8V LVDS frontend PLL power > > + > > + "#sound-dai-cells": > > + const: 0 > > + > > + ite,i2s-audio-fifo-sources: > > + $ref: /schemas/types.yaml#/definitions/uint32-array > > + minItems: 1 > > + maxItems: 4 > > + items: > > + enum: [0, 1, 2, 3] > > + description: > > + Each array element indicates the pin number of an I2S serial data input > > + line which is connected to an audio FIFO, from audio FIFO0 to FIFO3. > > + > > + ite,rl-channel-swap-audio-sources: > > + $ref: /schemas/types.yaml#/definitions/uint32-array > > + minItems: 1 > > + maxItems: 4 > > + uniqueItems: true > > + items: > > + enum: [0, 1, 2, 3] > > + description: > > + Each array element indicates an audio source whose right channel and left > > + channel are swapped by this converter. For I2S, the element is the pin > > + number of an I2S serial data input line. For S/PDIF, the element is always > > + 0. > > + > > + ports: > > + $ref: /schemas/graph.yaml#/properties/ports > > + > > + oneOf: > > + - properties: > > + port@0: > > + $ref: /schemas/graph.yaml#/properties/port > > + description: the first LVDS input link > > + > > + port@1: false > > + > > + port@2: > > + $ref: /schemas/graph.yaml#/properties/port > > + description: video port for the HDMI output > > + > > + port@3: > > + $ref: /schemas/graph.yaml#/properties/port > > + description: sound input port > > + > > + required: > > + - port@0 > > + - port@2 > > + > > + - properties: > > + port@0: > > + $ref: /schemas/graph.yaml#/$defs/port-base > > + unevaluatedProperties: false > > + description: the first LVDS input link > > + > > + properties: > > + dual-lvds-odd-pixels: > > + type: boolean > > + description: the first sink port for odd pixels > > + > > + dual-lvds-even-pixels: > > + type: boolean > > + description: the first sink port for even pixels > > + > > + oneOf: > > + - required: [dual-lvds-odd-pixels] > > + - required: [dual-lvds-even-pixels] > > + > > + port@1: > > + $ref: /schemas/graph.yaml#/$defs/port-base > > + unevaluatedProperties: false > > + description: the second LVDS input link > > + > > + properties: > > + dual-lvds-even-pixels: > > + type: boolean > > + description: the second sink port for even pixels > > + > > + dual-lvds-odd-pixels: > > + type: boolean > > + description: the second sink port for odd pixels > > + > > + oneOf: > > + - required: [dual-lvds-even-pixels] > > + - required: [dual-lvds-odd-pixels] > > > > + > > + port@2: > > + $ref: /schemas/graph.yaml#/properties/port > > + description: video port for the HDMI output > > + > > + port@3: > > + $ref: /schemas/graph.yaml#/properties/port > > + description: sound input port > > What about single lvds as device support it? > > Cheers, > Biju > > > + > > + required: > > + - port@0 > > + - port@1 > > + - port@2 > > + > > + allOf: > > + - if: > > + properties: > > + port@0: > > + required: > > + - dual-lvds-odd-pixels > > + then: > > + properties: > > + port@1: > > + properties: > > + dual-lvds-odd-pixels: false > > + > > + - if: > > + properties: > > + port@0: > > + required: > > + - dual-lvds-even-pixels > > + then: > > + properties: > > + port@1: > > + properties: > > + dual-lvds-even-pixels: false Do we need to document ite,data-mapping to support both VESA and JEIDA formats?? Or Is there any run time info available to get this info? Currently, I see it is hardcoded in driver. Cheers, Biju > > + > > +required: > > + - compatible > > + - reg > > + - ivdd-supply > > + - ovdd-supply > > + - txavcc18-supply > > + - txavcc33-supply > > + - pvcc1-supply > > + - pvcc2-supply > > + - avcc-supply > > + - anvdd-supply > > + - apvdd-supply > > + - ports > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + /* single-link LVDS input */ > > + #include <dt-bindings/gpio/gpio.h> > > + > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + hdmi@4c { > > + compatible = "ite,it6263"; > > + reg = <0x4c>; > > + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > > + ivdd-supply = <®_buck5>; > > + ovdd-supply = <®_vext_3v3>; > > + txavcc18-supply = <®_buck5>; > > + txavcc33-supply = <®_vext_3v3>; > > + pvcc1-supply = <®_buck5>; > > + pvcc2-supply = <®_buck5>; > > + avcc-supply = <®_vext_3v3>; > > + anvdd-supply = <®_buck5>; > > + apvdd-supply = <®_buck5>; > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + > > + it6263_lvds_link1: endpoint { > > + remote-endpoint = <&ldb_lvds_ch0>; > > + }; > > + }; > > + > > + port@2 { > > + reg = <2>; > > + > > + it6263_out: endpoint { > > + remote-endpoint = <&hdmi_in>; > > + }; > > + }; > > + }; > > + }; > > + }; > > + > > + - | > > + /* dual-link LVDS input */ > > + #include <dt-bindings/gpio/gpio.h> > > + > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + hdmi@4c { > > + compatible = "ite,it6263"; > > + reg = <0x4c>; > > + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > > + ivdd-supply = <®_buck5>; > > + ovdd-supply = <®_vext_3v3>; > > + txavcc18-supply = <®_buck5>; > > + txavcc33-supply = <®_vext_3v3>; > > + pvcc1-supply = <®_buck5>; > > + pvcc2-supply = <®_buck5>; > > + avcc-supply = <®_vext_3v3>; > > + anvdd-supply = <®_buck5>; > > + apvdd-supply = <®_buck5>; > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + dual-lvds-odd-pixels; > > + > > + it6263_lvds_link1_dual: endpoint { > > + remote-endpoint = <&ldb_lvds_ch0>; > > + }; > > + }; > > + > > + port@1 { > > + reg = <1>; > > + dual-lvds-even-pixels; > > + > > + it6263_lvds_link2_dual: endpoint { > > + remote-endpoint = <&ldb_lvds_ch1>; > > + }; > > + }; > > + > > + port@2 { > > + reg = <2>; > > + > > + it6263_out_dual: endpoint { > > + remote-endpoint = <&hdmi_in>; > > + }; > > + }; > > + }; > > + }; > > + }; > > -- > > 2.34.1 > >
On Mon, Sep 30, 2024 at 01:29:00PM +0800, Liu Ying wrote: > Document ITE IT6263 LVDS to HDMI converter. > > Product link: > https://www.ite.com.tw/en/product/cate1/IT6263 > > Signed-off-by: Liu Ying <victor.liu@nxp.com> > --- > .../bindings/display/bridge/ite,it6263.yaml | 310 ++++++++++++++++++ > 1 file changed, 310 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > > diff --git a/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > new file mode 100644 > index 000000000000..97fb81e5bc4a > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml > @@ -0,0 +1,310 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/bridge/ite,it6263.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: ITE IT6263 LVDS to HDMI converter > + > +maintainers: > + - Liu Ying <victor.liu@nxp.com> > + > +description: | > + The IT6263 is a high-performance single-chip De-SSC(De-Spread Spectrum) LVDS > + to HDMI converter. Combined with LVDS receiver and HDMI 1.4a transmitter, > + the IT6263 supports LVDS input and HDMI 1.4 output by conversion function. > + The built-in LVDS receiver can support single-link and dual-link LVDS inputs, > + and the built-in HDMI transmitter is fully compliant with HDMI 1.4a/3D, HDCP > + 1.2 and backward compatible with DVI 1.0 specification. > + > + The IT6263 also encodes and transmits up to 8 channels of I2S digital audio, > + with sampling rate up to 192KHz and sample size up to 24 bits. In addition, > + an S/PDIF input port takes in compressed audio of up to 192KHz frame rate. > + > + The newly supported High-Bit Rate(HBR) audio by HDMI specifications v1.3 is > + provided by the IT6263 in two interfaces: the four I2S input ports or the > + S/PDIF input port. With both interfaces the highest possible HBR frame rate > + is supported at up to 768KHz. > + > +properties: > + compatible: > + const: ite,it6263 > + > + reg: > + maxItems: 1 > + > + clocks: > + maxItems: 1 > + description: audio master clock > + > + clock-names: > + const: mclk > + > + reset-gpios: > + maxItems: 1 > + > + ivdd-supply: > + description: 1.8V digital logic power > + > + ovdd-supply: > + description: 3.3V I/O pin power > + > + txavcc18-supply: > + description: 1.8V HDMI analog frontend power > + > + txavcc33-supply: > + description: 3.3V HDMI analog frontend power > + > + pvcc1-supply: > + description: 1.8V HDMI frontend core PLL power > + > + pvcc2-supply: > + description: 1.8V HDMI frontend filter PLL power > + > + avcc-supply: > + description: 3.3V LVDS frontend power > + > + anvdd-supply: > + description: 1.8V LVDS frontend analog power > + > + apvdd-supply: > + description: 1.8V LVDS frontend PLL power > + > + "#sound-dai-cells": > + const: 0 > + > + ite,i2s-audio-fifo-sources: > + $ref: /schemas/types.yaml#/definitions/uint32-array > + minItems: 1 > + maxItems: 4 > + items: > + enum: [0, 1, 2, 3] > + description: > + Each array element indicates the pin number of an I2S serial data input > + line which is connected to an audio FIFO, from audio FIFO0 to FIFO3. > + > + ite,rl-channel-swap-audio-sources: > + $ref: /schemas/types.yaml#/definitions/uint32-array > + minItems: 1 > + maxItems: 4 > + uniqueItems: true > + items: > + enum: [0, 1, 2, 3] > + description: > + Each array element indicates an audio source whose right channel and left > + channel are swapped by this converter. For I2S, the element is the pin > + number of an I2S serial data input line. For S/PDIF, the element is always > + 0. > + > + ports: > + $ref: /schemas/graph.yaml#/properties/ports Test your bindings. You need 'additionalProperties: false' here. Though I can't remember if that can 'see' properties under the oneOf. So it may have to be unevaluatedProperties instead. > + > + oneOf: I think you can get rid of this. If port@1 requires the dual link properties and then properties on port@0, then the only way you can have a single link is removing port@1 from the DT. > + - properties: > + port@0: > + $ref: /schemas/graph.yaml#/properties/port > + description: the first LVDS input link > + > + port@1: false > + > + port@2: > + $ref: /schemas/graph.yaml#/properties/port > + description: video port for the HDMI output > + > + port@3: > + $ref: /schemas/graph.yaml#/properties/port > + description: sound input port > + > + required: > + - port@0 > + - port@2 > + > + - properties: > + port@0: > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > + description: the first LVDS input link > + > + properties: > + dual-lvds-odd-pixels: > + type: boolean > + description: the first sink port for odd pixels > + > + dual-lvds-even-pixels: > + type: boolean > + description: the first sink port for even pixels > + > + oneOf: > + - required: [dual-lvds-odd-pixels] > + - required: [dual-lvds-even-pixels] > + > + port@1: > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > + description: the second LVDS input link > + > + properties: > + dual-lvds-even-pixels: > + type: boolean > + description: the second sink port for even pixels > + > + dual-lvds-odd-pixels: > + type: boolean > + description: the second sink port for odd pixels > + > + oneOf: > + - required: [dual-lvds-even-pixels] > + - required: [dual-lvds-odd-pixels] > + > + port@2: > + $ref: /schemas/graph.yaml#/properties/port > + description: video port for the HDMI output > + > + port@3: > + $ref: /schemas/graph.yaml#/properties/port > + description: sound input port > + > + required: > + - port@0 > + - port@1 > + - port@2 > + > + allOf: > + - if: > + properties: > + port@0: > + required: > + - dual-lvds-odd-pixels > + then: > + properties: > + port@1: > + properties: > + dual-lvds-odd-pixels: false > + > + - if: > + properties: > + port@0: > + required: > + - dual-lvds-even-pixels > + then: > + properties: > + port@1: > + properties: > + dual-lvds-even-pixels: false > + > +required: > + - compatible > + - reg > + - ivdd-supply > + - ovdd-supply > + - txavcc18-supply > + - txavcc33-supply > + - pvcc1-supply > + - pvcc2-supply > + - avcc-supply > + - anvdd-supply > + - apvdd-supply > + - ports > + > +additionalProperties: false > +
Hi Rob, On 10/02/2024, Rob Herring wrote: > On Mon, Sep 30, 2024 at 01:29:00PM +0800, Liu Ying wrote: >> Document ITE IT6263 LVDS to HDMI converter. >> >> Product link: >> https://www.ite.com.tw/en/product/cate1/IT6263 >> >> Signed-off-by: Liu Ying <victor.liu@nxp.com> >> --- >> .../bindings/display/bridge/ite,it6263.yaml | 310 ++++++++++++++++++ >> 1 file changed, 310 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml >> >> diff --git a/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml >> new file mode 100644 >> index 000000000000..97fb81e5bc4a >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml >> @@ -0,0 +1,310 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/display/bridge/ite,it6263.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: ITE IT6263 LVDS to HDMI converter >> + >> +maintainers: >> + - Liu Ying <victor.liu@nxp.com> >> + >> +description: | >> + The IT6263 is a high-performance single-chip De-SSC(De-Spread Spectrum) LVDS >> + to HDMI converter. Combined with LVDS receiver and HDMI 1.4a transmitter, >> + the IT6263 supports LVDS input and HDMI 1.4 output by conversion function. >> + The built-in LVDS receiver can support single-link and dual-link LVDS inputs, >> + and the built-in HDMI transmitter is fully compliant with HDMI 1.4a/3D, HDCP >> + 1.2 and backward compatible with DVI 1.0 specification. >> + >> + The IT6263 also encodes and transmits up to 8 channels of I2S digital audio, >> + with sampling rate up to 192KHz and sample size up to 24 bits. In addition, >> + an S/PDIF input port takes in compressed audio of up to 192KHz frame rate. >> + >> + The newly supported High-Bit Rate(HBR) audio by HDMI specifications v1.3 is >> + provided by the IT6263 in two interfaces: the four I2S input ports or the >> + S/PDIF input port. With both interfaces the highest possible HBR frame rate >> + is supported at up to 768KHz. >> + >> +properties: >> + compatible: >> + const: ite,it6263 >> + >> + reg: >> + maxItems: 1 >> + >> + clocks: >> + maxItems: 1 >> + description: audio master clock >> + >> + clock-names: >> + const: mclk >> + >> + reset-gpios: >> + maxItems: 1 >> + >> + ivdd-supply: >> + description: 1.8V digital logic power >> + >> + ovdd-supply: >> + description: 3.3V I/O pin power >> + >> + txavcc18-supply: >> + description: 1.8V HDMI analog frontend power >> + >> + txavcc33-supply: >> + description: 3.3V HDMI analog frontend power >> + >> + pvcc1-supply: >> + description: 1.8V HDMI frontend core PLL power >> + >> + pvcc2-supply: >> + description: 1.8V HDMI frontend filter PLL power >> + >> + avcc-supply: >> + description: 3.3V LVDS frontend power >> + >> + anvdd-supply: >> + description: 1.8V LVDS frontend analog power >> + >> + apvdd-supply: >> + description: 1.8V LVDS frontend PLL power >> + >> + "#sound-dai-cells": >> + const: 0 >> + >> + ite,i2s-audio-fifo-sources: >> + $ref: /schemas/types.yaml#/definitions/uint32-array >> + minItems: 1 >> + maxItems: 4 >> + items: >> + enum: [0, 1, 2, 3] >> + description: >> + Each array element indicates the pin number of an I2S serial data input >> + line which is connected to an audio FIFO, from audio FIFO0 to FIFO3. >> + >> + ite,rl-channel-swap-audio-sources: >> + $ref: /schemas/types.yaml#/definitions/uint32-array >> + minItems: 1 >> + maxItems: 4 >> + uniqueItems: true >> + items: >> + enum: [0, 1, 2, 3] >> + description: >> + Each array element indicates an audio source whose right channel and left >> + channel are swapped by this converter. For I2S, the element is the pin >> + number of an I2S serial data input line. For S/PDIF, the element is always >> + 0. >> + >> + ports: >> + $ref: /schemas/graph.yaml#/properties/ports > > Test your bindings. You need 'additionalProperties: false' here. Though > I can't remember if that can 'see' properties under the oneOf. So it may > have to be unevaluatedProperties instead. Ah, I see the same warnings with your bot after upgrading my local dtschema to dtschema-2024.9. I should have upgraded it earlier, sorry. Before sending this patch, I tested it with dtschema-2024.2 and there is no warning. However, there are still the warnings after adding additionalProperties or unevaluatedProperties constraint here. With additionalProperties, there are even some additional errors. Thoughts? > >> + >> + oneOf: > > I think you can get rid of this. If port@1 requires the dual link > properties and then properties on port@0, then the only way you can have > a single link is removing port@1 from the DT. If I get rid of this with the below snippet, I see warnings against the single-link LVDS input example. It looks like the conditions in "allOf" are still true even if "port@1" is not in that example. And it seems difficult to disallow people to add "dual-lvds-odd-pixels" and/or "dual-lvds-even-pixels" properties to "port@0" when there is no "port@1". This is not an issue if we use the "oneOf" to separate the single/dual link cases. Any ideas? -----------------------------8<----------------------------- ports: $ref: /schemas/graph.yaml#/properties/ports properties: port@0: $ref: /schemas/graph.yaml#/$defs/port-base unevaluatedProperties: false description: the first LVDS input link properties: dual-lvds-odd-pixels: type: boolean description: the first sink port for odd pixels dual-lvds-even-pixels: type: boolean description: the first sink port for even pixels port@1: $ref: /schemas/graph.yaml#/$defs/port-base unevaluatedProperties: false description: the second LVDS input link properties: dual-lvds-even-pixels: type: boolean description: the second sink port for even pixels dual-lvds-odd-pixels: type: boolean description: the second sink port for odd pixels oneOf: - required: [dual-lvds-even-pixels] - required: [dual-lvds-odd-pixels] port@2: $ref: /schemas/graph.yaml#/properties/port description: video port for the HDMI output port@3: $ref: /schemas/graph.yaml#/properties/port description: sound input port required: - port@0 - port@2 allOf: - if: properties: port@1: required: - dual-lvds-odd-pixels then: properties: port@0: required: - dual-lvds-even-pixels - if: properties: port@1: required: - dual-lvds-even-pixels then: properties: port@0: required: - dual-lvds-odd-pixels -----------------------------8<----------------------------- Documentation/devicetree/bindings/display/bridge/ite,it6263.example.dtb: hdmi@4c: ports:port@0: 'dual-lvds-even-pixels' is a required property from schema $id: http://devicetree.org/schemas/display/bridge/ite,it6263.yaml# Documentation/devicetree/bindings/display/bridge/ite,it6263.example.dtb: hdmi@4c: ports:port@0: 'dual-lvds-odd-pixels' is a required property from schema $id: http://devicetree.org/schemas/display/bridge/ite,it6263.yaml# > >> + - properties: >> + port@0: >> + $ref: /schemas/graph.yaml#/properties/port >> + description: the first LVDS input link >> + >> + port@1: false >> + >> + port@2: >> + $ref: /schemas/graph.yaml#/properties/port >> + description: video port for the HDMI output >> + >> + port@3: >> + $ref: /schemas/graph.yaml#/properties/port >> + description: sound input port >> + >> + required: >> + - port@0 >> + - port@2 >> + >> + - properties: >> + port@0: >> + $ref: /schemas/graph.yaml#/$defs/port-base >> + unevaluatedProperties: false >> + description: the first LVDS input link >> + >> + properties: >> + dual-lvds-odd-pixels: >> + type: boolean >> + description: the first sink port for odd pixels >> + >> + dual-lvds-even-pixels: >> + type: boolean >> + description: the first sink port for even pixels >> + >> + oneOf: >> + - required: [dual-lvds-odd-pixels] >> + - required: [dual-lvds-even-pixels] >> + >> + port@1: >> + $ref: /schemas/graph.yaml#/$defs/port-base >> + unevaluatedProperties: false >> + description: the second LVDS input link >> + >> + properties: >> + dual-lvds-even-pixels: >> + type: boolean >> + description: the second sink port for even pixels >> + >> + dual-lvds-odd-pixels: >> + type: boolean >> + description: the second sink port for odd pixels >> + >> + oneOf: >> + - required: [dual-lvds-even-pixels] >> + - required: [dual-lvds-odd-pixels] >> + >> + port@2: >> + $ref: /schemas/graph.yaml#/properties/port >> + description: video port for the HDMI output >> + >> + port@3: >> + $ref: /schemas/graph.yaml#/properties/port >> + description: sound input port >> + >> + required: >> + - port@0 >> + - port@1 >> + - port@2 >> + >> + allOf: >> + - if: >> + properties: >> + port@0: >> + required: >> + - dual-lvds-odd-pixels >> + then: >> + properties: >> + port@1: >> + properties: >> + dual-lvds-odd-pixels: false >> + >> + - if: >> + properties: >> + port@0: >> + required: >> + - dual-lvds-even-pixels >> + then: >> + properties: >> + port@1: >> + properties: >> + dual-lvds-even-pixels: false >> + >> +required: >> + - compatible >> + - reg >> + - ivdd-supply >> + - ovdd-supply >> + - txavcc18-supply >> + - txavcc33-supply >> + - pvcc1-supply >> + - pvcc2-supply >> + - avcc-supply >> + - anvdd-supply >> + - apvdd-supply >> + - ports >> + >> +additionalProperties: false >> +
On 09/30/2024, Biju Das wrote: > Hi Liu, Hi Biju, > >> -----Original Message----- >> From: Biju Das >> Sent: Monday, September 30, 2024 10:04 AM >> Subject: RE: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 LVDS to HDMI converter >> >> Hi Liu, >> >> thanks for the patch. >> >>> -----Original Message----- >>> From: linux-arm-kernel <linux-arm-kernel-bounces@lists.infradead.org> >>> On Behalf Of Liu Ying >>> Sent: Monday, September 30, 2024 6:29 AM >>> Subject: [PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 LVDS >>> to HDMI converter >>> >>> Document ITE IT6263 LVDS to HDMI converter. >>> >>> Product link: >>> https://www.ite.com.tw/en/product/cate1/IT6263 >>> >>> Signed-off-by: Liu Ying <victor.liu@nxp.com> >>> --- >>> .../bindings/display/bridge/ite,it6263.yaml | 310 ++++++++++++++++++ >>> 1 file changed, 310 insertions(+) >>> create mode 100644 >>> Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml >>> >>> diff --git >>> a/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml >>> b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml >>> new file mode 100644 >>> index 000000000000..97fb81e5bc4a >>> --- /dev/null >>> +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml >>> @@ -0,0 +1,310 @@ >>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 >>> +--- >>> +$id: http://devicetree.org/schemas/display/bridge/ite,it6263.yaml# >>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>> + >>> +title: ITE IT6263 LVDS to HDMI converter >>> + >>> +maintainers: >>> + - Liu Ying <victor.liu@nxp.com> >>> + >>> +description: | >>> + The IT6263 is a high-performance single-chip De-SSC(De-Spread >>> +Spectrum) LVDS >>> + to HDMI converter. Combined with LVDS receiver and HDMI 1.4a >>> +transmitter, >>> + the IT6263 supports LVDS input and HDMI 1.4 output by conversion function. >>> + The built-in LVDS receiver can support single-link and dual-link >>> +LVDS inputs, >>> + and the built-in HDMI transmitter is fully compliant with HDMI >>> +1.4a/3D, HDCP >>> + 1.2 and backward compatible with DVI 1.0 specification. >>> + >>> + The IT6263 also encodes and transmits up to 8 channels of I2S >>> + digital audio, with sampling rate up to 192KHz and sample size up to 24 bits. >>> + In addition, an S/PDIF input port takes in compressed audio of up to 192KHz frame rate. >>> + >>> + The newly supported High-Bit Rate(HBR) audio by HDMI specifications >>> + v1.3 is provided by the IT6263 in two interfaces: the four I2S >>> + input ports or the S/PDIF input port. With both interfaces the >>> + highest possible HBR frame rate is supported at up to 768KHz. >>> + >>> +properties: >>> + compatible: >>> + const: ite,it6263 >>> + >>> + reg: >>> + maxItems: 1 >>> + >>> + clocks: >>> + maxItems: 1 >>> + description: audio master clock >>> + >>> + clock-names: >>> + const: mclk >>> + >>> + reset-gpios: >>> + maxItems: 1 >>> + >>> + ivdd-supply: >>> + description: 1.8V digital logic power >>> + >>> + ovdd-supply: >>> + description: 3.3V I/O pin power >>> + >>> + txavcc18-supply: >>> + description: 1.8V HDMI analog frontend power >>> + >>> + txavcc33-supply: >>> + description: 3.3V HDMI analog frontend power >>> + >>> + pvcc1-supply: >>> + description: 1.8V HDMI frontend core PLL power >>> + >>> + pvcc2-supply: >>> + description: 1.8V HDMI frontend filter PLL power >>> + >>> + avcc-supply: >>> + description: 3.3V LVDS frontend power >>> + >>> + anvdd-supply: >>> + description: 1.8V LVDS frontend analog power >>> + >>> + apvdd-supply: >>> + description: 1.8V LVDS frontend PLL power >>> + >>> + "#sound-dai-cells": >>> + const: 0 >>> + >>> + ite,i2s-audio-fifo-sources: >>> + $ref: /schemas/types.yaml#/definitions/uint32-array >>> + minItems: 1 >>> + maxItems: 4 >>> + items: >>> + enum: [0, 1, 2, 3] >>> + description: >>> + Each array element indicates the pin number of an I2S serial data input >>> + line which is connected to an audio FIFO, from audio FIFO0 to FIFO3. >>> + >>> + ite,rl-channel-swap-audio-sources: >>> + $ref: /schemas/types.yaml#/definitions/uint32-array >>> + minItems: 1 >>> + maxItems: 4 >>> + uniqueItems: true >>> + items: >>> + enum: [0, 1, 2, 3] >>> + description: >>> + Each array element indicates an audio source whose right channel and left >>> + channel are swapped by this converter. For I2S, the element is the pin >>> + number of an I2S serial data input line. For S/PDIF, the element is always >>> + 0. >>> + >>> + ports: >>> + $ref: /schemas/graph.yaml#/properties/ports >>> + >>> + oneOf: >>> + - properties: >>> + port@0: >>> + $ref: /schemas/graph.yaml#/properties/port >>> + description: the first LVDS input link >>> + >>> + port@1: false >>> + >>> + port@2: >>> + $ref: /schemas/graph.yaml#/properties/port >>> + description: video port for the HDMI output >>> + >>> + port@3: >>> + $ref: /schemas/graph.yaml#/properties/port >>> + description: sound input port >>> + >>> + required: >>> + - port@0 >>> + - port@2 >>> + >>> + - properties: >>> + port@0: >>> + $ref: /schemas/graph.yaml#/$defs/port-base >>> + unevaluatedProperties: false >>> + description: the first LVDS input link >>> + >>> + properties: >>> + dual-lvds-odd-pixels: >>> + type: boolean >>> + description: the first sink port for odd pixels >>> + >>> + dual-lvds-even-pixels: >>> + type: boolean >>> + description: the first sink port for even pixels >>> + >>> + oneOf: >>> + - required: [dual-lvds-odd-pixels] >>> + - required: [dual-lvds-even-pixels] >>> + >>> + port@1: >>> + $ref: /schemas/graph.yaml#/$defs/port-base >>> + unevaluatedProperties: false >>> + description: the second LVDS input link >>> + >>> + properties: >>> + dual-lvds-even-pixels: >>> + type: boolean >>> + description: the second sink port for even pixels >>> + >>> + dual-lvds-odd-pixels: >>> + type: boolean >>> + description: the second sink port for odd pixels >>> + >>> + oneOf: >>> + - required: [dual-lvds-even-pixels] >>> + - required: [dual-lvds-odd-pixels] >> >> >>> + >>> + port@2: >>> + $ref: /schemas/graph.yaml#/properties/port >>> + description: video port for the HDMI output >>> + >>> + port@3: >>> + $ref: /schemas/graph.yaml#/properties/port >>> + description: sound input port >> >> What about single lvds as device support it? >> >> Cheers, >> Biju >> >>> + >>> + required: >>> + - port@0 >>> + - port@1 >>> + - port@2 >>> + >>> + allOf: >>> + - if: >>> + properties: >>> + port@0: >>> + required: >>> + - dual-lvds-odd-pixels >>> + then: >>> + properties: >>> + port@1: >>> + properties: >>> + dual-lvds-odd-pixels: false >>> + >>> + - if: >>> + properties: >>> + port@0: >>> + required: >>> + - dual-lvds-even-pixels >>> + then: >>> + properties: >>> + port@1: >>> + properties: >>> + dual-lvds-even-pixels: false > > Do we need to document ite,data-mapping to support both VESA and JEIDA formats?? > > Or > > Is there any run time info available to get this info? Currently, > I see it is hardcoded in driver. I think there are two options: 1) Reference the data-mapping property in lvds-data-mapping.yaml Question is that only jeida-18, jeida-24 and vesa-24 are enumerated, while IT6263 supports something like jeida-30 and vesa-30(not sure if they are standarized or not) with 5 data lanes(A-E) per LVDS link as the LVDS mapping table in IT6263 datasheet mentions. 2) Document the number of data lanes per LVDS link This is enough. data-mapping is kind of too much information from DT point of view. Linux display bridge drivers support runtime bus format negotiation to determine the data mapping. So maybe a property like this is ok: ite,lvds-link-num-data-lanes: $ref: /schemas/types.yaml#/definitions/uint8 enum: [3, 4, 5] BTW, I only tested 4 data lanes. Not sure if the other 2 work or not. Laurent, Rob, any thoughts? > > Cheers, > Biju > >>> + >>> +required: >>> + - compatible >>> + - reg >>> + - ivdd-supply >>> + - ovdd-supply >>> + - txavcc18-supply >>> + - txavcc33-supply >>> + - pvcc1-supply >>> + - pvcc2-supply >>> + - avcc-supply >>> + - anvdd-supply >>> + - apvdd-supply >>> + - ports >>> + >>> +additionalProperties: false >>> + >>> +examples: >>> + - | >>> + /* single-link LVDS input */ >>> + #include <dt-bindings/gpio/gpio.h> >>> + >>> + i2c { >>> + #address-cells = <1>; >>> + #size-cells = <0>; >>> + >>> + hdmi@4c { >>> + compatible = "ite,it6263"; >>> + reg = <0x4c>; >>> + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; >>> + ivdd-supply = <®_buck5>; >>> + ovdd-supply = <®_vext_3v3>; >>> + txavcc18-supply = <®_buck5>; >>> + txavcc33-supply = <®_vext_3v3>; >>> + pvcc1-supply = <®_buck5>; >>> + pvcc2-supply = <®_buck5>; >>> + avcc-supply = <®_vext_3v3>; >>> + anvdd-supply = <®_buck5>; >>> + apvdd-supply = <®_buck5>; >>> + >>> + ports { >>> + #address-cells = <1>; >>> + #size-cells = <0>; >>> + >>> + port@0 { >>> + reg = <0>; >>> + >>> + it6263_lvds_link1: endpoint { >>> + remote-endpoint = <&ldb_lvds_ch0>; >>> + }; >>> + }; >>> + >>> + port@2 { >>> + reg = <2>; >>> + >>> + it6263_out: endpoint { >>> + remote-endpoint = <&hdmi_in>; >>> + }; >>> + }; >>> + }; >>> + }; >>> + }; >>> + >>> + - | >>> + /* dual-link LVDS input */ >>> + #include <dt-bindings/gpio/gpio.h> >>> + >>> + i2c { >>> + #address-cells = <1>; >>> + #size-cells = <0>; >>> + >>> + hdmi@4c { >>> + compatible = "ite,it6263"; >>> + reg = <0x4c>; >>> + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; >>> + ivdd-supply = <®_buck5>; >>> + ovdd-supply = <®_vext_3v3>; >>> + txavcc18-supply = <®_buck5>; >>> + txavcc33-supply = <®_vext_3v3>; >>> + pvcc1-supply = <®_buck5>; >>> + pvcc2-supply = <®_buck5>; >>> + avcc-supply = <®_vext_3v3>; >>> + anvdd-supply = <®_buck5>; >>> + apvdd-supply = <®_buck5>; >>> + >>> + ports { >>> + #address-cells = <1>; >>> + #size-cells = <0>; >>> + >>> + port@0 { >>> + reg = <0>; >>> + dual-lvds-odd-pixels; >>> + >>> + it6263_lvds_link1_dual: endpoint { >>> + remote-endpoint = <&ldb_lvds_ch0>; >>> + }; >>> + }; >>> + >>> + port@1 { >>> + reg = <1>; >>> + dual-lvds-even-pixels; >>> + >>> + it6263_lvds_link2_dual: endpoint { >>> + remote-endpoint = <&ldb_lvds_ch1>; >>> + }; >>> + }; >>> + >>> + port@2 { >>> + reg = <2>; >>> + >>> + it6263_out_dual: endpoint { >>> + remote-endpoint = <&hdmi_in>; >>> + }; >>> + }; >>> + }; >>> + }; >>> + }; >>> -- >>> 2.34.1 >>> >
diff --git a/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml new file mode 100644 index 000000000000..97fb81e5bc4a --- /dev/null +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml @@ -0,0 +1,310 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/bridge/ite,it6263.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: ITE IT6263 LVDS to HDMI converter + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +description: | + The IT6263 is a high-performance single-chip De-SSC(De-Spread Spectrum) LVDS + to HDMI converter. Combined with LVDS receiver and HDMI 1.4a transmitter, + the IT6263 supports LVDS input and HDMI 1.4 output by conversion function. + The built-in LVDS receiver can support single-link and dual-link LVDS inputs, + and the built-in HDMI transmitter is fully compliant with HDMI 1.4a/3D, HDCP + 1.2 and backward compatible with DVI 1.0 specification. + + The IT6263 also encodes and transmits up to 8 channels of I2S digital audio, + with sampling rate up to 192KHz and sample size up to 24 bits. In addition, + an S/PDIF input port takes in compressed audio of up to 192KHz frame rate. + + The newly supported High-Bit Rate(HBR) audio by HDMI specifications v1.3 is + provided by the IT6263 in two interfaces: the four I2S input ports or the + S/PDIF input port. With both interfaces the highest possible HBR frame rate + is supported at up to 768KHz. + +properties: + compatible: + const: ite,it6263 + + reg: + maxItems: 1 + + clocks: + maxItems: 1 + description: audio master clock + + clock-names: + const: mclk + + reset-gpios: + maxItems: 1 + + ivdd-supply: + description: 1.8V digital logic power + + ovdd-supply: + description: 3.3V I/O pin power + + txavcc18-supply: + description: 1.8V HDMI analog frontend power + + txavcc33-supply: + description: 3.3V HDMI analog frontend power + + pvcc1-supply: + description: 1.8V HDMI frontend core PLL power + + pvcc2-supply: + description: 1.8V HDMI frontend filter PLL power + + avcc-supply: + description: 3.3V LVDS frontend power + + anvdd-supply: + description: 1.8V LVDS frontend analog power + + apvdd-supply: + description: 1.8V LVDS frontend PLL power + + "#sound-dai-cells": + const: 0 + + ite,i2s-audio-fifo-sources: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 4 + items: + enum: [0, 1, 2, 3] + description: + Each array element indicates the pin number of an I2S serial data input + line which is connected to an audio FIFO, from audio FIFO0 to FIFO3. + + ite,rl-channel-swap-audio-sources: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 4 + uniqueItems: true + items: + enum: [0, 1, 2, 3] + description: + Each array element indicates an audio source whose right channel and left + channel are swapped by this converter. For I2S, the element is the pin + number of an I2S serial data input line. For S/PDIF, the element is always + 0. + + ports: + $ref: /schemas/graph.yaml#/properties/ports + + oneOf: + - properties: + port@0: + $ref: /schemas/graph.yaml#/properties/port + description: the first LVDS input link + + port@1: false + + port@2: + $ref: /schemas/graph.yaml#/properties/port + description: video port for the HDMI output + + port@3: + $ref: /schemas/graph.yaml#/properties/port + description: sound input port + + required: + - port@0 + - port@2 + + - properties: + port@0: + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: the first LVDS input link + + properties: + dual-lvds-odd-pixels: + type: boolean + description: the first sink port for odd pixels + + dual-lvds-even-pixels: + type: boolean + description: the first sink port for even pixels + + oneOf: + - required: [dual-lvds-odd-pixels] + - required: [dual-lvds-even-pixels] + + port@1: + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: the second LVDS input link + + properties: + dual-lvds-even-pixels: + type: boolean + description: the second sink port for even pixels + + dual-lvds-odd-pixels: + type: boolean + description: the second sink port for odd pixels + + oneOf: + - required: [dual-lvds-even-pixels] + - required: [dual-lvds-odd-pixels] + + port@2: + $ref: /schemas/graph.yaml#/properties/port + description: video port for the HDMI output + + port@3: + $ref: /schemas/graph.yaml#/properties/port + description: sound input port + + required: + - port@0 + - port@1 + - port@2 + + allOf: + - if: + properties: + port@0: + required: + - dual-lvds-odd-pixels + then: + properties: + port@1: + properties: + dual-lvds-odd-pixels: false + + - if: + properties: + port@0: + required: + - dual-lvds-even-pixels + then: + properties: + port@1: + properties: + dual-lvds-even-pixels: false + +required: + - compatible + - reg + - ivdd-supply + - ovdd-supply + - txavcc18-supply + - txavcc33-supply + - pvcc1-supply + - pvcc2-supply + - avcc-supply + - anvdd-supply + - apvdd-supply + - ports + +additionalProperties: false + +examples: + - | + /* single-link LVDS input */ + #include <dt-bindings/gpio/gpio.h> + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + hdmi@4c { + compatible = "ite,it6263"; + reg = <0x4c>; + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; + ivdd-supply = <®_buck5>; + ovdd-supply = <®_vext_3v3>; + txavcc18-supply = <®_buck5>; + txavcc33-supply = <®_vext_3v3>; + pvcc1-supply = <®_buck5>; + pvcc2-supply = <®_buck5>; + avcc-supply = <®_vext_3v3>; + anvdd-supply = <®_buck5>; + apvdd-supply = <®_buck5>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + it6263_lvds_link1: endpoint { + remote-endpoint = <&ldb_lvds_ch0>; + }; + }; + + port@2 { + reg = <2>; + + it6263_out: endpoint { + remote-endpoint = <&hdmi_in>; + }; + }; + }; + }; + }; + + - | + /* dual-link LVDS input */ + #include <dt-bindings/gpio/gpio.h> + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + hdmi@4c { + compatible = "ite,it6263"; + reg = <0x4c>; + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; + ivdd-supply = <®_buck5>; + ovdd-supply = <®_vext_3v3>; + txavcc18-supply = <®_buck5>; + txavcc33-supply = <®_vext_3v3>; + pvcc1-supply = <®_buck5>; + pvcc2-supply = <®_buck5>; + avcc-supply = <®_vext_3v3>; + anvdd-supply = <®_buck5>; + apvdd-supply = <®_buck5>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + dual-lvds-odd-pixels; + + it6263_lvds_link1_dual: endpoint { + remote-endpoint = <&ldb_lvds_ch0>; + }; + }; + + port@1 { + reg = <1>; + dual-lvds-even-pixels; + + it6263_lvds_link2_dual: endpoint { + remote-endpoint = <&ldb_lvds_ch1>; + }; + }; + + port@2 { + reg = <2>; + + it6263_out_dual: endpoint { + remote-endpoint = <&hdmi_in>; + }; + }; + }; + }; + };
Document ITE IT6263 LVDS to HDMI converter. Product link: https://www.ite.com.tw/en/product/cate1/IT6263 Signed-off-by: Liu Ying <victor.liu@nxp.com> --- .../bindings/display/bridge/ite,it6263.yaml | 310 ++++++++++++++++++ 1 file changed, 310 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml