[PATCH 5/8] dt-bindings: display: bridge: Add ITE IT6263 LVDS to HDMI converter

Liu Ying victor.liu at nxp.com
Wed Oct 9 07:00:35 UTC 2024


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 at 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 at 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 at 1 requires the dual link 
> properties and then properties on port at 0, then the only way you can have 
> a single link is removing port at 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 at 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 at 0" when there is no
"port at 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 at 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 at 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 at 2:                                                                    
        $ref: /schemas/graph.yaml#/properties/port                               
        description: video port for the HDMI output                              
                                                                                 
      port at 3:                                                                    
        $ref: /schemas/graph.yaml#/properties/port                               
        description: sound input port                                            
                                                                                 
    required:                                                                    
      - port at 0                                                                   
      - port at 2

    allOf:                                                                       
      - if:                                                                      
          properties:                                                            
            port at 1:                                                              
              required:                                                          
                - dual-lvds-odd-pixels                                           
        then:                                                                    
          properties:                                                            
            port at 0:                                                              
              required:                                                          
                - dual-lvds-even-pixels                                          
                                                                                 
      - if:                                                                      
          properties:                                                            
            port at 1:                                                              
              required:                                                          
                - dual-lvds-even-pixels                                          
        then:                                                                    
          properties:                                                            
            port at 0:                                                              
              required:                                                          
                - dual-lvds-odd-pixels                        
-----------------------------8<-----------------------------

Documentation/devicetree/bindings/display/bridge/ite,it6263.example.dtb: hdmi at 4c: ports:port at 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 at 4c: ports:port at 0: 'dual-lvds-odd-pixels' is a required property
	from schema $id: http://devicetree.org/schemas/display/bridge/ite,it6263.yaml#

> 
>> +      - properties:
>> +          port at 0:
>> +            $ref: /schemas/graph.yaml#/properties/port
>> +            description: the first LVDS input link
>> +
>> +          port at 1: false
>> +
>> +          port at 2:
>> +            $ref: /schemas/graph.yaml#/properties/port
>> +            description: video port for the HDMI output
>> +
>> +          port at 3:
>> +            $ref: /schemas/graph.yaml#/properties/port
>> +            description: sound input port
>> +
>> +        required:
>> +          - port at 0
>> +          - port at 2
>> +
>> +      - properties:
>> +          port at 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 at 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 at 2:
>> +            $ref: /schemas/graph.yaml#/properties/port
>> +            description: video port for the HDMI output
>> +
>> +          port at 3:
>> +            $ref: /schemas/graph.yaml#/properties/port
>> +            description: sound input port
>> +
>> +        required:
>> +          - port at 0
>> +          - port at 1
>> +          - port at 2
>> +
>> +        allOf:
>> +          - if:
>> +              properties:
>> +                port at 0:
>> +                  required:
>> +                    - dual-lvds-odd-pixels
>> +            then:
>> +              properties:
>> +                port at 1:
>> +                  properties:
>> +                    dual-lvds-odd-pixels: false
>> +
>> +          - if:
>> +              properties:
>> +                port at 0:
>> +                  required:
>> +                    - dual-lvds-even-pixels
>> +            then:
>> +              properties:
>> +                port at 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
>> +

-- 
Regards,
Liu Ying



More information about the dri-devel mailing list