Message ID | 20191223143538.20327-2-enric.balletbo@collabora.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/bridge: PS8640 MIPI-to-eDP bridge | expand |
Hi Enric, Rob, On Mon, 2019-12-23 at 15:35 +0100, Enric Balletbo i Serra wrote: > From: Jitao Shi <jitao.shi@mediatek.com> > > Add documentation for DT properties supported by > ps8640 DSI-eDP converter. > > Signed-off-by: Jitao Shi <jitao.shi@mediatek.com> > Acked-by: Rob Herring <robh@kernel.org> > Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de> > Signed-off-by: Ulrich Hecht <uli@fpond.eu> > Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> [..] > + > + ports: > + type: object > + description: > + A node containing DSI input & output port nodes with endpoint > + definitions as documented in > + Documentation/devicetree/bindings/media/video-interfaces.txt > + Documentation/devicetree/bindings/graph.txt > + properties: > + port@0: > + type: object > + description: | > + Video port for DSI input > + > + port@1: > + type: object > + description: | > + Video port for eDP output (panel or connector). > + > + required: > + - port@0 > + Is it correct to require port@0 ? This could be called port@1 or port@2, and IIUC it should bind the same. Thanks, Ezequiel > +required: > + - compatible > + - reg > + - powerdown-gpios > + - reset-gpios > + - vdd12-supply > + - vdd33-supply > + - ports > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + i2c0 { > + #address-cells = <1>; > + #size-cells = <0>; > + > + ps8640: edp-bridge@18 { > + compatible = "parade,ps8640"; > + reg = <0x18>; > + powerdown-gpios = <&pio 116 GPIO_ACTIVE_LOW>; > + reset-gpios = <&pio 115 GPIO_ACTIVE_LOW>; > + vdd12-supply = <&ps8640_fixed_1v2>; > + vdd33-supply = <&mt6397_vgp2_reg>; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + ps8640_in: endpoint { > + remote-endpoint = <&dsi0_out>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + ps8640_out: endpoint { > + remote-endpoint = <&panel_in>; > + }; > + }; > + }; > + }; > + }; > + > -- > 2.20.1 > >
Hi Ezequiel, On 26/12/19 15:27, Ezequiel Garcia wrote: > Hi Enric, Rob, > > On Mon, 2019-12-23 at 15:35 +0100, Enric Balletbo i Serra wrote: >> From: Jitao Shi <jitao.shi@mediatek.com> >> >> Add documentation for DT properties supported by >> ps8640 DSI-eDP converter. >> >> Signed-off-by: Jitao Shi <jitao.shi@mediatek.com> >> Acked-by: Rob Herring <robh@kernel.org> >> Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de> >> Signed-off-by: Ulrich Hecht <uli@fpond.eu> >> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> > [..] >> + >> + ports: >> + type: object >> + description: >> + A node containing DSI input & output port nodes with endpoint >> + definitions as documented in >> + Documentation/devicetree/bindings/media/video-interfaces.txt >> + Documentation/devicetree/bindings/graph.txt >> + properties: >> + port@0: >> + type: object >> + description: | >> + Video port for DSI input >> + >> + port@1: >> + type: object >> + description: | >> + Video port for eDP output (panel or connector). >> + >> + required: >> + - port@0 >> + > > Is it correct to require port@0 ? This could be called port@1 > or port@2, and IIUC it should bind the same. > My understanding is that at least the Video port for DSI input is required, which makes sense, otherwise you have the chip connected nowhere. port@1 is optional because it could be connected to a eDP panel or can just be a connector. About your second question, I am not sure I understand you. You mean that have a DT like this should work? ports { #address-cells = <1>; #size-cells = <0>; port@1 { reg = <0>; ps8640_in: endpoint { remote-endpoint = <&dsi0_out>; }; }; port@2 { reg = <1>; ps8640_out: endpoint { remote-endpoint = <&panel_in>; }; }; }; Probably yes, because the driver what really looks is the register value, but that's odd and probably a bad practice. Also if I am not wrong the convention is name the nodes with port@<reg property> (like we do in i2c devices for example) port@0 is the label that has the register value to 0. port@1 is the label that has the register value to 1. ... Thanks, Enric > Thanks, > Ezequiel > >> +required: >> + - compatible >> + - reg >> + - powerdown-gpios >> + - reset-gpios >> + - vdd12-supply >> + - vdd33-supply >> + - ports >> + >> +additionalProperties: false >> + >> +examples: >> + - | >> + #include <dt-bindings/gpio/gpio.h> >> + i2c0 { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + ps8640: edp-bridge@18 { >> + compatible = "parade,ps8640"; >> + reg = <0x18>; >> + powerdown-gpios = <&pio 116 GPIO_ACTIVE_LOW>; >> + reset-gpios = <&pio 115 GPIO_ACTIVE_LOW>; >> + vdd12-supply = <&ps8640_fixed_1v2>; >> + vdd33-supply = <&mt6397_vgp2_reg>; >> + >> + ports { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + port@0 { >> + reg = <0>; >> + ps8640_in: endpoint { >> + remote-endpoint = <&dsi0_out>; >> + }; >> + }; >> + >> + port@1 { >> + reg = <1>; >> + ps8640_out: endpoint { >> + remote-endpoint = <&panel_in>; >> + }; >> + }; >> + }; >> + }; >> + }; >> + >> -- >> 2.20.1 >> >> > > >
diff --git a/Documentation/devicetree/bindings/display/bridge/ps8640.yaml b/Documentation/devicetree/bindings/display/bridge/ps8640.yaml new file mode 100644 index 000000000000..5dff93641bea --- /dev/null +++ b/Documentation/devicetree/bindings/display/bridge/ps8640.yaml @@ -0,0 +1,112 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/bridge/ps8640.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: MIPI DSI to eDP Video Format Converter Device Tree Bindings + +maintainers: + - Nicolas Boichat <drinkcat@chromium.org> + - Enric Balletbo i Serra <enric.balletbo@collabora.com> + +description: | + The PS8640 is a low power MIPI-to-eDP video format converter supporting + mobile devices with embedded panel resolutions up to 2048 x 1536. The + device accepts a single channel of MIPI DSI v1.1, with up to four lanes + plus clock, at a transmission rate up to 1.5Gbit/sec per lane. The + device outputs eDP v1.4, one or two lanes, at a link rate of up to + 3.24Gbit/sec per lane. + +properties: + compatible: + const: parade,ps8640 + + reg: + maxItems: 1 + description: Base I2C address of the device. + + powerdown-gpios: + maxItems: 1 + description: GPIO connected to active low powerdown. + + reset-gpios: + maxItems: 1 + description: GPIO connected to active low reset. + + vdd12-supply: + maxItems: 1 + description: Regulator for 1.2V digital core power. + + vdd33-supply: + maxItems: 1 + description: Regulator for 3.3V digital core power. + + ports: + type: object + description: + A node containing DSI input & output port nodes with endpoint + definitions as documented in + Documentation/devicetree/bindings/media/video-interfaces.txt + Documentation/devicetree/bindings/graph.txt + properties: + port@0: + type: object + description: | + Video port for DSI input + + port@1: + type: object + description: | + Video port for eDP output (panel or connector). + + required: + - port@0 + +required: + - compatible + - reg + - powerdown-gpios + - reset-gpios + - vdd12-supply + - vdd33-supply + - ports + +additionalProperties: false + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + i2c0 { + #address-cells = <1>; + #size-cells = <0>; + + ps8640: edp-bridge@18 { + compatible = "parade,ps8640"; + reg = <0x18>; + powerdown-gpios = <&pio 116 GPIO_ACTIVE_LOW>; + reset-gpios = <&pio 115 GPIO_ACTIVE_LOW>; + vdd12-supply = <&ps8640_fixed_1v2>; + vdd33-supply = <&mt6397_vgp2_reg>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + ps8640_in: endpoint { + remote-endpoint = <&dsi0_out>; + }; + }; + + port@1 { + reg = <1>; + ps8640_out: endpoint { + remote-endpoint = <&panel_in>; + }; + }; + }; + }; + }; +