Message ID | e11ba0cf836d6f27935f58b7987e792026ab0233.1730172244.git.Sandor.yu@nxp.com |
---|---|
State | New |
Headers | show |
Series | Initial support Cadence MHDP8501(HDMI/DP) for i.MX8MQ | expand |
On Tue, Oct 29, 2024 at 02:02:11PM +0800, Sandor Yu wrote: > + interrupts: > + items: > + - description: Hotplug cable plugin. > + - description: Hotplug cable plugout. > + > + interrupt-names: > + items: > + - const: plug_in > + - const: plug_out > + > + data-lanes: > + $ref: /schemas/media/video-interfaces.yaml#/properties/data-lanes > + minItems: 4 > + maxItems: 4 > + description: Lane reordering for HDMI or DisplayPort interface. Please look how existing bindings do it. data-lanes is a property of port. Otherwise why would you like this to be applied to the input? Best regards, Krzysztof
> > On Tue, Oct 29, 2024 at 02:02:11PM +0800, Sandor Yu wrote: > > + interrupts: > > + items: > > + - description: Hotplug cable plugin. > > + - description: Hotplug cable plugout. > > + > > + interrupt-names: > > + items: > > + - const: plug_in > > + - const: plug_out > > + > > + data-lanes: > > + $ref: /schemas/media/video-interfaces.yaml#/properties/data-lanes > > + minItems: 4 > > + maxItems: 4 > > + description: Lane reordering for HDMI or DisplayPort interface. > > Please look how existing bindings do it. data-lanes is a property of port. > Otherwise why would you like this to be applied to the input? 'lane reordering' is a feature of the MHDP IP, and different boards have different mappings. Benjamin comments in v16, the imx8mq-zii-ultra board's lane mapping differs from the default in my driver, so we need to treat it as an input. As data-lanes is a property of port, so there is no exist property could be reused, How about revert 'data-lanes' back to my previous implementation of 'lane-mapping'? B.R Sandor > > Best regards, > Krzysztof
On 29/10/2024 08:17, Sandor Yu wrote: >> >> On Tue, Oct 29, 2024 at 02:02:11PM +0800, Sandor Yu wrote: >>> + interrupts: >>> + items: >>> + - description: Hotplug cable plugin. >>> + - description: Hotplug cable plugout. >>> + >>> + interrupt-names: >>> + items: >>> + - const: plug_in >>> + - const: plug_out >>> + >>> + data-lanes: >>> + $ref: /schemas/media/video-interfaces.yaml#/properties/data-lanes >>> + minItems: 4 >>> + maxItems: 4 >>> + description: Lane reordering for HDMI or DisplayPort interface. >> >> Please look how existing bindings do it. data-lanes is a property of port. >> Otherwise why would you like this to be applied to the input? > > 'lane reordering' is a feature of the MHDP IP, and different boards have different mappings. Yeah, and? > > Benjamin comments in v16, the imx8mq-zii-ultra board's lane mapping differs from the default in my driver, > so we need to treat it as an input. But HDMI is not your input port. At least that's what few lines below! This is confusing. > > As data-lanes is a property of port, so there is no exist property could be reused, data-lanes, really, what is the problem here? > How about revert 'data-lanes' back to my previous implementation of 'lane-mapping'? No. Best regards, Krzysztof
> > On 29/10/2024 08:17, Sandor Yu wrote: > >> > >> On Tue, Oct 29, 2024 at 02:02:11PM +0800, Sandor Yu wrote: > >>> + interrupts: > >>> + items: > >>> + - description: Hotplug cable plugin. > >>> + - description: Hotplug cable plugout. > >>> + > >>> + interrupt-names: > >>> + items: > >>> + - const: plug_in > >>> + - const: plug_out > >>> + > >>> + data-lanes: > >>> + $ref: > /schemas/media/video-interfaces.yaml#/properties/data-lanes > >>> + minItems: 4 > >>> + maxItems: 4 > >>> + description: Lane reordering for HDMI or DisplayPort interface. > >> > >> Please look how existing bindings do it. data-lanes is a property of port. > >> Otherwise why would you like this to be applied to the input? > > > > 'lane reordering' is a feature of the MHDP IP, and different boards have > different mappings. > > Yeah, and? > > > > > Benjamin comments in v16, the imx8mq-zii-ultra board's lane mapping > > differs from the default in my driver, so we need to treat it as an input. > > But HDMI is not your input port. At least that's what few lines below! > This is confusing. > > > > > As data-lanes is a property of port, so there is no exist property > > could be reused, > > data-lanes, really, what is the problem here? > > > How about revert 'data-lanes' back to my previous implementation of > 'lane-mapping'? > > No. I believe I understand now. The HDMI driver has two ports, and I will move the 'data-lanes' property to the endpoint of output port. B.R Sandor
On Tue, Oct 29, 2024 at 02:02:11PM +0800, Sandor Yu wrote: > Add bindings for Cadence MHDP8501 DisplayPort/HDMI bridge. > > Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> > --- > v17->v18: > - remove lane-mapping and replace it with data-lanes > - remove r-b tag as property changed. > > v16->v17: > - Add lane-mapping property > > v9->v16: > *No change > > .../display/bridge/cdns,mhdp8501.yaml | 112 ++++++++++++++++++ > 1 file changed, 112 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/bridge/cdns,mhdp8501.yaml > > diff --git a/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8501.yaml b/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8501.yaml > new file mode 100644 > index 0000000000000..e4b900ecf1ac9 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8501.yaml > @@ -0,0 +1,112 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/bridge/cdns,mhdp8501.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Cadence MHDP8501 DP/HDMI bridge > + > +maintainers: > + - Sandor Yu <Sandor.yu@nxp.com> > + > +description: > + Cadence MHDP8501 DisplayPort/HDMI interface. > + > +properties: > + compatible: > + enum: > + - fsl,imx8mq-mhdp8501 > + > + reg: > + maxItems: 1 > + > + clocks: > + maxItems: 1 > + description: MHDP8501 DP/HDMI APB clock. > + > + phys: > + maxItems: 1 > + description: > + phandle to the DP/HDMI PHY > + > + interrupts: > + items: > + - description: Hotplug cable plugin. > + - description: Hotplug cable plugout. > + > + interrupt-names: > + items: > + - const: plug_in > + - const: plug_out > + > + data-lanes: > + $ref: /schemas/media/video-interfaces.yaml#/properties/data-lanes > + minItems: 4 > + maxItems: 4 > + description: Lane reordering for HDMI or DisplayPort interface. So, HDMI or DP port? I don't think the format is actually the same, so it is either-or. > + > + ports: > + $ref: /schemas/graph.yaml#/properties/ports > + > + properties: > + port@0: > + $ref: /schemas/graph.yaml#/properties/port > + description: > + Input port from display controller output. > + port@1: > + $ref: /schemas/graph.yaml#/properties/port > + description: > + Output port to DisplayPort or HDMI connector. > + > + required: > + - port@0 > + - port@1 > + > +required: > + - compatible > + - reg > + - clocks > + - interrupts > + - interrupt-names > + - phys > + - data-lanes > + - ports > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/clock/imx8mq-clock.h> > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + > + mhdp: display-bridge@32c00000 { > + compatible = "fsl,imx8mq-mhdp8501"; > + reg = <0x32c00000 0x100000>; > + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "plug_in", "plug_out"; > + clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>; > + phys = <&mdhp_phy>; > + data-lanes = <1 2 3 4>; 0 1 2 3 > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + mhdp_in: endpoint { > + remote-endpoint = <&dcss_out>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + mhdp_out: endpoint { > + remote-endpoint = <&dp_connector>; > + }; > + }; > + }; > + }; > -- > 2.34.1 >
On Thu, Oct 31, 2024 at 09:55:45PM +0200, Dmitry Baryshkov wrote: > On Tue, Oct 29, 2024 at 02:02:11PM +0800, Sandor Yu wrote: > > Add bindings for Cadence MHDP8501 DisplayPort/HDMI bridge. > > > > Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> > > --- > > v17->v18: > > - remove lane-mapping and replace it with data-lanes > > - remove r-b tag as property changed. > > > > v16->v17: > > - Add lane-mapping property > > > > v9->v16: > > *No change > > > > .../display/bridge/cdns,mhdp8501.yaml | 112 ++++++++++++++++++ > > 1 file changed, 112 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/display/bridge/cdns,mhdp8501.yaml > > > > diff --git a/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8501.yaml b/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8501.yaml > > new file mode 100644 > > index 0000000000000..e4b900ecf1ac9 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8501.yaml > > @@ -0,0 +1,112 @@ > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/bridge/cdns,mhdp8501.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Cadence MHDP8501 DP/HDMI bridge > > + > > +maintainers: > > + - Sandor Yu <Sandor.yu@nxp.com> > > + > > +description: > > + Cadence MHDP8501 DisplayPort/HDMI interface. > > + > > +properties: > > + compatible: > > + enum: > > + - fsl,imx8mq-mhdp8501 > > + > > + reg: > > + maxItems: 1 > > + > > + clocks: > > + maxItems: 1 > > + description: MHDP8501 DP/HDMI APB clock. > > + > > + phys: > > + maxItems: 1 > > + description: > > + phandle to the DP/HDMI PHY > > + > > + interrupts: > > + items: > > + - description: Hotplug cable plugin. > > + - description: Hotplug cable plugout. > > + > > + interrupt-names: > > + items: > > + - const: plug_in > > + - const: plug_out > > + > > + data-lanes: > > + $ref: /schemas/media/video-interfaces.yaml#/properties/data-lanes > > + minItems: 4 > > + maxItems: 4 > > + description: Lane reordering for HDMI or DisplayPort interface. > > So, HDMI or DP port? I don't think the format is actually the same, so > it is either-or. Please ignore this, I've misread the text.
> On Tue, Oct 29, 2024 at 02:02:11PM +0800, Sandor Yu wrote: > > Add bindings for Cadence MHDP8501 DisplayPort/HDMI bridge. > > > > Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> > > --- > > v17->v18: > > - remove lane-mapping and replace it with data-lanes > > - remove r-b tag as property changed. > > > > v16->v17: > > - Add lane-mapping property > > > > v9->v16: > > *No change > > > > .../display/bridge/cdns,mhdp8501.yaml | 112 > ++++++++++++++++++ > > 1 file changed, 112 insertions(+) > > create mode 100644 > > Documentation/devicetree/bindings/display/bridge/cdns,mhdp8501.yaml > > > > diff --git > > a/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8501.yaml > > b/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8501.yaml > > new file mode 100644 > > index 0000000000000..e4b900ecf1ac9 > > --- /dev/null > > +++ > b/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8501.y > > +++ aml > > @@ -0,0 +1,112 @@ > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 > > +--- > > +$id: > > +https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevi > > > +cetree.org%2Fschemas%2Fdisplay%2Fbridge%2Fcdns%2Cmhdp8501.yaml% > 23&dat > > > +a=05%7C02%7CSandor.yu%40nxp.com%7Cda19a2cbbf2148c7f6f208dcf9e6 > 050f%7C > > > +686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C63866001353856588 > 4%7CUnkno > > > +wn%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1 > haWwi > > > +LCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=WZvYuredQsK8abMP4bFoWGF > a2DXUgzD0k5D > > +MNnMdc3M%3D&reserved=0 > > +$schema: > > +https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevi > > > +cetree.org%2Fmeta-schemas%2Fcore.yaml%23&data=05%7C02%7CSandor. > yu%40n > > > +xp.com%7Cda19a2cbbf2148c7f6f208dcf9e6050f%7C686ea1d3bc2b4c6fa92 > cd99c5 > > > +c301635%7C0%7C0%7C638660013538587632%7CUnknown%7CTWFpbGZs > b3d8eyJWIjoi > > > +MC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0 > %7C%7C% > > > +7C&sdata=OVinvIp2pzVTtMo%2FA6jsMaypCUch31CA0PhINPOx%2FrU%3D& > reserved= > > +0 > > + > > +title: Cadence MHDP8501 DP/HDMI bridge > > + > > +maintainers: > > + - Sandor Yu <Sandor.yu@nxp.com> > > + > > +description: > > + Cadence MHDP8501 DisplayPort/HDMI interface. > > + > > +properties: > > + compatible: > > + enum: > > + - fsl,imx8mq-mhdp8501 > > + > > + reg: > > + maxItems: 1 > > + > > + clocks: > > + maxItems: 1 > > + description: MHDP8501 DP/HDMI APB clock. > > + > > + phys: > > + maxItems: 1 > > + description: > > + phandle to the DP/HDMI PHY > > + > > + interrupts: > > + items: > > + - description: Hotplug cable plugin. > > + - description: Hotplug cable plugout. > > + > > + interrupt-names: > > + items: > > + - const: plug_in > > + - const: plug_out > > + > > + data-lanes: > > + $ref: /schemas/media/video-interfaces.yaml#/properties/data-lanes > > + minItems: 4 > > + maxItems: 4 > > + description: Lane reordering for HDMI or DisplayPort interface. > > So, HDMI or DP port? I don't think the format is actually the same, so it is > either-or. > > > + > > + ports: > > + $ref: /schemas/graph.yaml#/properties/ports > > + > > + properties: > > + port@0: > > + $ref: /schemas/graph.yaml#/properties/port > > + description: > > + Input port from display controller output. > > + port@1: > > + $ref: /schemas/graph.yaml#/properties/port > > + description: > > + Output port to DisplayPort or HDMI connector. > > + > > + required: > > + - port@0 > > + - port@1 > > + > > +required: > > + - compatible > > + - reg > > + - clocks > > + - interrupts > > + - interrupt-names > > + - phys > > + - data-lanes > > + - ports > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + #include <dt-bindings/clock/imx8mq-clock.h> > > + #include <dt-bindings/interrupt-controller/arm-gic.h> > > + > > + mhdp: display-bridge@32c00000 { > > + compatible = "fsl,imx8mq-mhdp8501"; > > + reg = <0x32c00000 0x100000>; > > + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, > > + <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; > > + interrupt-names = "plug_in", "plug_out"; > > + clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>; > > + phys = <&mdhp_phy>; > > + data-lanes = <1 2 3 4>; > > 0 1 2 3 OK. B.R Sandor > > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + > > + mhdp_in: endpoint { > > + remote-endpoint = <&dcss_out>; > > + }; > > + }; > > + > > + port@1 { > > + reg = <1>; > > + > > + mhdp_out: endpoint { > > + remote-endpoint = <&dp_connector>; > > + }; > > + }; > > + }; > > + }; > > -- > > 2.34.1 > > > > -- > With best wishes > Dmitry
diff --git a/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8501.yaml b/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8501.yaml new file mode 100644 index 0000000000000..e4b900ecf1ac9 --- /dev/null +++ b/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8501.yaml @@ -0,0 +1,112 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/bridge/cdns,mhdp8501.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Cadence MHDP8501 DP/HDMI bridge + +maintainers: + - Sandor Yu <Sandor.yu@nxp.com> + +description: + Cadence MHDP8501 DisplayPort/HDMI interface. + +properties: + compatible: + enum: + - fsl,imx8mq-mhdp8501 + + reg: + maxItems: 1 + + clocks: + maxItems: 1 + description: MHDP8501 DP/HDMI APB clock. + + phys: + maxItems: 1 + description: + phandle to the DP/HDMI PHY + + interrupts: + items: + - description: Hotplug cable plugin. + - description: Hotplug cable plugout. + + interrupt-names: + items: + - const: plug_in + - const: plug_out + + data-lanes: + $ref: /schemas/media/video-interfaces.yaml#/properties/data-lanes + minItems: 4 + maxItems: 4 + description: Lane reordering for HDMI or DisplayPort interface. + + ports: + $ref: /schemas/graph.yaml#/properties/ports + + properties: + port@0: + $ref: /schemas/graph.yaml#/properties/port + description: + Input port from display controller output. + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: + Output port to DisplayPort or HDMI connector. + + required: + - port@0 + - port@1 + +required: + - compatible + - reg + - clocks + - interrupts + - interrupt-names + - phys + - data-lanes + - ports + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/imx8mq-clock.h> + #include <dt-bindings/interrupt-controller/arm-gic.h> + + mhdp: display-bridge@32c00000 { + compatible = "fsl,imx8mq-mhdp8501"; + reg = <0x32c00000 0x100000>; + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "plug_in", "plug_out"; + clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>; + phys = <&mdhp_phy>; + data-lanes = <1 2 3 4>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + mhdp_in: endpoint { + remote-endpoint = <&dcss_out>; + }; + }; + + port@1 { + reg = <1>; + + mhdp_out: endpoint { + remote-endpoint = <&dp_connector>; + }; + }; + }; + };
Add bindings for Cadence MHDP8501 DisplayPort/HDMI bridge. Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> --- v17->v18: - remove lane-mapping and replace it with data-lanes - remove r-b tag as property changed. v16->v17: - Add lane-mapping property v9->v16: *No change .../display/bridge/cdns,mhdp8501.yaml | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/bridge/cdns,mhdp8501.yaml