Message ID | 20191029153953.8EE9B68D04@verein.lst.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add anx6345 DP/eDP bridge for Olimex Teres-I | expand |
On Tue, Oct 29, 2019 at 01:16:57PM +0100, Torsten Duwe wrote: > The anx6345 is an ultra-low power DisplayPort/eDP transmitter designed > for portable devices. > > Add a binding document for it. > > Signed-off-by: Icenowy Zheng <icenowy@aosc.io> > Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> > Reviewed-by: Rob Herring <robh@kernel.org> > Signed-off-by: Torsten Duwe <duwe@suse.de> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > .../bindings/display/bridge/anx6345.yaml | 92 ++++++++++++++++++++++ > 1 file changed, 92 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/bridge/anx6345.yaml > > diff --git a/Documentation/devicetree/bindings/display/bridge/anx6345.yaml b/Documentation/devicetree/bindings/display/bridge/anx6345.yaml > new file mode 100644 > index 000000000000..094e8e8a5faa > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/bridge/anx6345.yaml > @@ -0,0 +1,92 @@ > +# SPDX-License-Identifier: GPL-2.0 > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/bridge/anx6345.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Analogix ANX6345 eDP Transmitter Device Tree Bindings > + > +maintainers: > + - Torsten Duwe <duwe@lst.de> > + > +description: | > + The ANX6345 is an ultra-low power Full-HD eDP transmitter designed for > + portable devices. > + > +properties: > + compatible: > + const: analogix,anx6345 > + > + reg: > + maxItems: 1 > + description: base I2C address of the device > + > + reset-gpios: > + maxItems: 1 > + description: GPIO connected to active low reset > + > + dvdd12-supply: > + maxItems: 1 > + description: Regulator for 1.2V digital core power. > + > + dvdd25-supply: > + maxItems: 1 > + description: Regulator for 2.5V digital core power. > + > + ports: > + anyOf: > + - port@0: > + description: Video port for LVTTL input > + - port@1: > + description: Video port for eDP output (panel or connector). > + May be omitted if EDID works reliably. > + required: > + - port@0 Have you tried to validate those two ports in a DT? I'm not quite sure what you wanted to express with that anyOf, but if it was something like port@0 is mandatory, and port@1 is optional, it should be something like this: properties: ... ports: type: object properties: port@0: type: object description: | Video port for LVTTL input port@1: type: object description: | Video port for eDP output (..) required: - port@0 This way, you express that both port@0 and port@1 must by nodes, under a node called ports, and port@0 is mandatory. You should even push this a bit further by adding additionalProperties: false to prevent a DT from having undocumented properties and children for the main node and ports node. Maxime
On Thu, Oct 31, 2019 at 01:51:00PM +0100, Maxime Ripard wrote: > On Tue, Oct 29, 2019 at 01:16:57PM +0100, Torsten Duwe wrote: > > + > > + ports: > > + anyOf: > > + - port@0: > > + description: Video port for LVTTL input > > + - port@1: > > + description: Video port for eDP output (panel or connector). > > + May be omitted if EDID works reliably. > > + required: > > + - port@0 > > Have you tried to validate those two ports in a DT? Yes, it validates as expected, like I wrote. Various sources told me that json-schema is not always straightforward so I assumed anyOf was OK. > I'm not quite sure what you wanted to express with that anyOf, but if > it was something like port@0 is mandatory, and port@1 is optional, it > should be something like this: > > properties: > > ... > > ports: > type: object > > properties: > port@0: > type: object > description: | > Video port for LVTTL input > > port@1: > type: object > description: | > Video port for eDP output (..) > > required: > - port@0 > > This way, you express that both port@0 and port@1 must by nodes, under > a node called ports, and port@0 is mandatory. That validates, too. Looks better, admittedly. I don't have a strong opinion here. It's just that Rob wrote in <CAL_JsqKAU3WG3L=KP8A8u4vW=q_BQWPN-m_c+ADOwTioJ2-cmg@mail.gmail.com>: | For this case specifically, we do need to define a common graph | schema, but haven't yet. You can assume we do and only really need to | capture what Maxime said above. (your points back then were port@N descriptions and neccessity for port@0) Are you sure that "object" is specific enough? > You should even push this a bit further by adding > additionalProperties: false to prevent a DT from having undocumented > properties and children for the main node and ports node. You mean like | jsonschema.exceptions.SchemaError: Additional properties are not allowed ('unevaluatedProperties' was unexpected) [...] | On schema: | {'$id': 'http://devicetree.org/schemas/watchdog/allwinner,sun4i-a10-wdt.yaml#', [...] | 'unevaluatedProperties': False} ? ;-) But yes, this patch series passes even with additionalProperties: false. In which form would you like to receive the update? Torsten
On Thu, Oct 31, 2019 at 03:52:24PM +0100, Torsten Duwe wrote: > On Thu, Oct 31, 2019 at 01:51:00PM +0100, Maxime Ripard wrote: > > On Tue, Oct 29, 2019 at 01:16:57PM +0100, Torsten Duwe wrote: > > > + > > > + ports: > > > + anyOf: > > > + - port@0: > > > + description: Video port for LVTTL input > > > + - port@1: > > > + description: Video port for eDP output (panel or connector). > > > + May be omitted if EDID works reliably. > > > + required: > > > + - port@0 > > > > Have you tried to validate those two ports in a DT? > > Yes, it validates as expected, like I wrote. Various sources told me that > json-schema is not always straightforward so I assumed anyOf was OK. > > > I'm not quite sure what you wanted to express with that anyOf, but if > > it was something like port@0 is mandatory, and port@1 is optional, it > > should be something like this: > > > > properties: > > > > ... > > > > ports: > > type: object > > > > properties: > > port@0: > > type: object > > description: | > > Video port for LVTTL input > > > > port@1: > > type: object > > description: | > > Video port for eDP output (..) > > > > required: > > - port@0 > > > > This way, you express that both port@0 and port@1 must by nodes, under > > a node called ports, and port@0 is mandatory. > > That validates, too. Looks better, admittedly. I don't have a strong > opinion here. It's just that Rob wrote in > <CAL_JsqKAU3WG3L=KP8A8u4vW=q_BQWPN-m_c+ADOwTioJ2-cmg@mail.gmail.com>: > > | For this case specifically, we do need to define a common graph > | schema, but haven't yet. You can assume we do and only really need to > | capture what Maxime said above. > (your points back then were port@N descriptions and neccessity for port@0) > > Are you sure that "object" is specific enough? Possibly not, but at least it checks that there's indeed something called port@0 (and port@1), and that they are both nodes (and not properties). We can probably refine this further, but this is good enough at the moment. > > You should even push this a bit further by adding > > additionalProperties: false to prevent a DT from having undocumented > > properties and children for the main node and ports node. > > You mean like > > | jsonschema.exceptions.SchemaError: Additional properties are not allowed ('unevaluatedProperties' was unexpected) > [...] > | On schema: > | {'$id': 'http://devicetree.org/schemas/watchdog/allwinner,sun4i-a10-wdt.yaml#', > [...] > | 'unevaluatedProperties': False} > > ? ;-) That would be on the meta-schema, but yes, we want to trigger warnings on something that isn't described. > > But yes, this patch series passes even with additionalProperties: false. > > In which form would you like to receive the update? Please send a new version. Thanks! Maxime
diff --git a/Documentation/devicetree/bindings/display/bridge/anx6345.yaml b/Documentation/devicetree/bindings/display/bridge/anx6345.yaml new file mode 100644 index 000000000000..094e8e8a5faa --- /dev/null +++ b/Documentation/devicetree/bindings/display/bridge/anx6345.yaml @@ -0,0 +1,92 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/bridge/anx6345.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Analogix ANX6345 eDP Transmitter Device Tree Bindings + +maintainers: + - Torsten Duwe <duwe@lst.de> + +description: | + The ANX6345 is an ultra-low power Full-HD eDP transmitter designed for + portable devices. + +properties: + compatible: + const: analogix,anx6345 + + reg: + maxItems: 1 + description: base I2C address of the device + + reset-gpios: + maxItems: 1 + description: GPIO connected to active low reset + + dvdd12-supply: + maxItems: 1 + description: Regulator for 1.2V digital core power. + + dvdd25-supply: + maxItems: 1 + description: Regulator for 2.5V digital core power. + + ports: + anyOf: + - port@0: + description: Video port for LVTTL input + - port@1: + description: Video port for eDP output (panel or connector). + May be omitted if EDID works reliably. + required: + - port@0 + +required: + - compatible + - reg + - reset-gpios + - dvdd12-supply + - dvdd25-supply + - ports + +examples: + - | + i2c0 { + #address-cells = <1>; + #size-cells = <0>; + + anx6345: anx6345@38 { + compatible = "analogix,anx6345"; + reg = <0x38>; + reset-gpios = <&pio42 1 /* GPIO_ACTIVE_LOW */>; + dvdd25-supply = <®_dldo2>; + dvdd12-supply = <®_fldo1>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + anx6345_in: port@0 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0>; + anx6345_in_tcon0: endpoint@0 { + reg = <0>; + remote-endpoint = <&tcon0_out_anx6345>; + }; + }; + + anx6345_out: port@1 { + #address-cells = <1>; + #size-cells = <0>; + reg = <1>; + anx6345_out_panel: endpoint@0 { + reg = <0>; + remote-endpoint = <&panel_in_edp>; + }; + }; + }; + }; + };