[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