Message ID | 20250304101530.969920-4-victor.liu@nxp.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | drm/bridge: simple-bridge: Add DPI color encoder support | expand |
On Tue, Mar 04, 2025 at 06:15:28PM +0800, Liu Ying wrote: > A DPI color encoder, as a simple display bridge, converts input DPI color > coding to output DPI color coding, like Adafruit Kippah DPI hat[1] which > converts input 18-bit pixel data to 24-bit pixel data(with 2 low padding > bits in every color component though). Document the DPI color encoder. > > [1] https://learn.adafruit.com/adafruit-dpi-display-kippah-ttl-tft/downloads > > Signed-off-by: Liu Ying <victor.liu@nxp.com> So it's just a bunch of signals that aren't wired / set to the ground? I assume to free a few GPIOs? I guess that makes sense. > --- > .../display/bridge/simple-bridge.yaml | 89 ++++++++++++++++++- > 1 file changed, 87 insertions(+), 2 deletions(-) > > diff --git a/Documentation/devicetree/bindings/display/bridge/simple-bridge.yaml b/Documentation/devicetree/bindings/display/bridge/simple-bridge.yaml > index 43cf4df9811a..c1747c033040 100644 > --- a/Documentation/devicetree/bindings/display/bridge/simple-bridge.yaml > +++ b/Documentation/devicetree/bindings/display/bridge/simple-bridge.yaml > @@ -27,6 +27,7 @@ properties: > - const: adi,adv7123 > - enum: > - adi,adv7123 > + - dpi-color-encoder I don't think we can claim that there's a generic DPI color encoder. Maybe we can add the prefix dumb or transparent? > - dumb-vga-dac > - ti,opa362 > - ti,ths8134 > @@ -37,13 +38,31 @@ properties: > > properties: > port@0: > - $ref: /schemas/graph.yaml#/properties/port > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > description: The bridge input > > + properties: > + endpoint: > + $ref: /schemas/media/video-interfaces.yaml# > + unevaluatedProperties: false > + > + properties: > + dpi-color-coding: true > + > port@1: > - $ref: /schemas/graph.yaml#/properties/port > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > description: The bridge output > > + properties: > + endpoint: > + $ref: /schemas/media/video-interfaces.yaml# > + unevaluatedProperties: false > + > + properties: > + dpi-color-coding: true > + > required: > - port@0 > - port@1 > @@ -61,6 +80,44 @@ required: > > additionalProperties: false > > +allOf: > + - $ref: /schemas/display/dpi-color-coding.yaml# > + - if: > + properties: > + compatible: > + contains: > + const: dpi-color-encoder > + then: > + properties: > + ports: > + properties: > + port@0: > + properties: > + endpoint: > + required: > + - dpi-color-coding > + > + port@1: > + properties: > + endpoint: > + required: > + - dpi-color-coding > + else: > + properties: > + ports: > + properties: > + port@0: > + properties: > + endpoint: > + properties: > + dpi-color-coding: false > + > + port@1: > + properties: > + endpoint: > + properties: > + dpi-color-coding: false > + Also it complicates the binding enough to warrant for another binding for that specific "component". > examples: > - | > bridge { > @@ -88,4 +145,32 @@ examples: > }; > }; > > + - | > + bridge { > + compatible = "dpi-color-enoder"; You have a typo in the compatible. Maxime
On Tue, 04 Mar 2025 18:15:28 +0800, Liu Ying wrote: > A DPI color encoder, as a simple display bridge, converts input DPI color > coding to output DPI color coding, like Adafruit Kippah DPI hat[1] which > converts input 18-bit pixel data to 24-bit pixel data(with 2 low padding > bits in every color component though). Document the DPI color encoder. > > [1] https://learn.adafruit.com/adafruit-dpi-display-kippah-ttl-tft/downloads > > Signed-off-by: Liu Ying <victor.liu@nxp.com> > --- > .../display/bridge/simple-bridge.yaml | 89 ++++++++++++++++++- > 1 file changed, 87 insertions(+), 2 deletions(-) > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: dtschema/dtc warnings/errors: Documentation/devicetree/bindings/display/bridge/simple-bridge.example.dtb: /example-1/bridge: failed to match any schema with compatible: ['dpi-color-enoder'] doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250304101530.969920-4-victor.liu@nxp.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
On Tue, Mar 04, 2025 at 06:15:28PM +0800, Liu Ying wrote: > A DPI color encoder, as a simple display bridge, converts input DPI color > coding to output DPI color coding, like Adafruit Kippah DPI hat[1] which > converts input 18-bit pixel data to 24-bit pixel data(with 2 low padding > bits in every color component though). Document the DPI color encoder. Why do we need a node for this? Isn't this just wired how it is wired and there's nothing for s/w to see or do? I suppose if you are trying to resolve the mode with 24-bit on one end and 18-bit on the other end, you need to allow that and not require an exact match. You still might need to figure out which pins the 18-bit data comes out on, but you have that problem with an 18-bit panel too. IOW, how is this any different if you have an 18-bit panel versus 24-bit panel? Rob
diff --git a/Documentation/devicetree/bindings/display/bridge/simple-bridge.yaml b/Documentation/devicetree/bindings/display/bridge/simple-bridge.yaml index 43cf4df9811a..c1747c033040 100644 --- a/Documentation/devicetree/bindings/display/bridge/simple-bridge.yaml +++ b/Documentation/devicetree/bindings/display/bridge/simple-bridge.yaml @@ -27,6 +27,7 @@ properties: - const: adi,adv7123 - enum: - adi,adv7123 + - dpi-color-encoder - dumb-vga-dac - ti,opa362 - ti,ths8134 @@ -37,13 +38,31 @@ properties: properties: port@0: - $ref: /schemas/graph.yaml#/properties/port + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false description: The bridge input + properties: + endpoint: + $ref: /schemas/media/video-interfaces.yaml# + unevaluatedProperties: false + + properties: + dpi-color-coding: true + port@1: - $ref: /schemas/graph.yaml#/properties/port + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false description: The bridge output + properties: + endpoint: + $ref: /schemas/media/video-interfaces.yaml# + unevaluatedProperties: false + + properties: + dpi-color-coding: true + required: - port@0 - port@1 @@ -61,6 +80,44 @@ required: additionalProperties: false +allOf: + - $ref: /schemas/display/dpi-color-coding.yaml# + - if: + properties: + compatible: + contains: + const: dpi-color-encoder + then: + properties: + ports: + properties: + port@0: + properties: + endpoint: + required: + - dpi-color-coding + + port@1: + properties: + endpoint: + required: + - dpi-color-coding + else: + properties: + ports: + properties: + port@0: + properties: + endpoint: + properties: + dpi-color-coding: false + + port@1: + properties: + endpoint: + properties: + dpi-color-coding: false + examples: - | bridge { @@ -88,4 +145,32 @@ examples: }; }; + - | + bridge { + compatible = "dpi-color-enoder"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + dpi_in: endpoint { + remote-endpoint = <&dc_out>; + dpi-color-coding = "18bit-configuration1"; + }; + }; + + port@1 { + reg = <1>; + + dpi_out: endpoint { + remote-endpoint = <&panel_in>; + dpi-color-coding = "24bit"; + }; + }; + }; + }; + ...
A DPI color encoder, as a simple display bridge, converts input DPI color coding to output DPI color coding, like Adafruit Kippah DPI hat[1] which converts input 18-bit pixel data to 24-bit pixel data(with 2 low padding bits in every color component though). Document the DPI color encoder. [1] https://learn.adafruit.com/adafruit-dpi-display-kippah-ttl-tft/downloads Signed-off-by: Liu Ying <victor.liu@nxp.com> --- .../display/bridge/simple-bridge.yaml | 89 ++++++++++++++++++- 1 file changed, 87 insertions(+), 2 deletions(-)