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@xxxxxxx> > --- > .../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@xxxxxxx> > + > +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 > +