Message ID | 20220919-v2-0-8419dcf4f09d@baylibre.com (mailing list archive) |
---|---|
Headers | show |
Series | Add MT8195 HDMI support | expand |
On 14/10/2022 11:15, Guillaume Ranquet wrote: > Add mt8195 SoC bindings for hdmi and hdmi-ddc > > Signed-off-by: Guillaume Ranquet <granquet@baylibre.com> > --- > .../bindings/display/mediatek/mediatek,hdmi.yaml | 67 +++++++++++++++++----- > .../display/mediatek/mediatek,mt8195-hdmi-ddc.yaml | 51 ++++++++++++++++ > 2 files changed, 104 insertions(+), 14 deletions(-) > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml > index bdaf0b51e68c..955026cd7ca5 100644 > --- a/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml > @@ -21,26 +21,21 @@ properties: > - mediatek,mt7623-hdmi > - mediatek,mt8167-hdmi > - mediatek,mt8173-hdmi > + - mediatek,mt8195-hdmi > > reg: > maxItems: 1 > > - interrupts: > - maxItems: 1 > - This change is not really explained in commit msg... > clocks: > - items: > - - description: Pixel Clock > - - description: HDMI PLL > - - description: Bit Clock > - - description: S/PDIF Clock > + minItems: 4 > + maxItems: 4 > > clock-names: > - items: > - - const: pixel > - - const: pll > - - const: bclk > - - const: spdif > + minItems: 4 > + maxItems: 4 > + > + interrupts: > + maxItems: 1 > > phys: > maxItems: 1 > @@ -58,6 +53,9 @@ properties: > description: | > phandle link and register offset to the system configuration registers. > > + power-domains: > + maxItems: 1 > + > ports: > $ref: /schemas/graph.yaml#/properties/ports > > @@ -86,9 +84,50 @@ required: > - clock-names > - phys > - phy-names > - - mediatek,syscon-hdmi > - ports > > +allOf: > + - if: > + properties: > + compatible: > + contains: > + const: mediatek,mt8195-hdmi > + then: > + properties: > + clocks: > + items: > + - description: APB > + - description: HDCP > + - description: HDCP 24M > + - description: Split HDMI > + clock-names: > + items: > + - const: hdmi_apb_sel > + - const: hdcp_sel > + - const: hdcp24_sel > + - const: split_hdmi > + > + required: > + - power-domains > + else: > + properties: > + clocks: > + items: > + - description: Pixel Clock > + - description: HDMI PLL > + - description: Bit Clock > + - description: S/PDIF Clock > + > + clock-names: > + items: > + - const: pixel > + - const: pll > + - const: bclk > + - const: spdif > + > + required: > + - mediatek,syscon-hdmi > + > additionalProperties: false > > examples: > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml > new file mode 100644 > index 000000000000..0fe0a2a2f17f > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml > @@ -0,0 +1,51 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek HDMI DDC for mt8195 > + > +maintainers: > + - CK Hu <ck.hu@mediatek.com> > + - Jitao shi <jitao.shi@mediatek.com> > + > +description: | > + The HDMI DDC i2c controller is used to interface with the HDMI DDC pins. > + > +properties: > + compatible: > + enum: > + - mediatek,mt8195-hdmi-ddc I think I wrote it - you already have bindings for HDMI DDC. I doubt that these are different and it looks like you model the bindings according to your driver. That's not the way. > + > + clocks: > + maxItems: 1 > + > + clock-names: > + items: > + - const: ddc > + > + mediatek,hdmi: > + $ref: /schemas/types.yaml#/definitions/phandle > + description: > + A phandle to the mt8195 hdmi controller > + > +required: > + - compatible > + - clocks > + - clock-names > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + #include <dt-bindings/interrupt-controller/irq.h> > + hdmiddc0: ddc_i2c { Node names should be generic - ddc. https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation No underscores in node names. Additionally I2C devices have addresses on the bus. Why this one doesn't? > + compatible = "mediatek,mt8195-hdmi-ddc"; > + mediatek,hdmi = <&hdmi0>; > + clocks = <&clk26m>; > + clock-names = "ddc"; > + }; > + > +... > Best regards, Krzysztof
On Fri, 14 Oct 2022 18:08, Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote: >On 14/10/2022 11:15, Guillaume Ranquet wrote: >> Add mt8195 SoC bindings for hdmi and hdmi-ddc >> >> Signed-off-by: Guillaume Ranquet <granquet@baylibre.com> >> --- >> .../bindings/display/mediatek/mediatek,hdmi.yaml | 67 +++++++++++++++++----- >> .../display/mediatek/mediatek,mt8195-hdmi-ddc.yaml | 51 ++++++++++++++++ >> 2 files changed, 104 insertions(+), 14 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml >> index bdaf0b51e68c..955026cd7ca5 100644 >> --- a/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml >> +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml >> @@ -21,26 +21,21 @@ properties: >> - mediatek,mt7623-hdmi >> - mediatek,mt8167-hdmi >> - mediatek,mt8173-hdmi >> + - mediatek,mt8195-hdmi >> >> reg: >> maxItems: 1 >> >> - interrupts: >> - maxItems: 1 >> - > >This change is not really explained in commit msg... > >> clocks: >> - items: >> - - description: Pixel Clock >> - - description: HDMI PLL >> - - description: Bit Clock >> - - description: S/PDIF Clock >> + minItems: 4 >> + maxItems: 4 >> >> clock-names: >> - items: >> - - const: pixel >> - - const: pll >> - - const: bclk >> - - const: spdif >> + minItems: 4 >> + maxItems: 4 >> + >> + interrupts: >> + maxItems: 1 >> >> phys: >> maxItems: 1 >> @@ -58,6 +53,9 @@ properties: >> description: | >> phandle link and register offset to the system configuration registers. >> >> + power-domains: >> + maxItems: 1 >> + >> ports: >> $ref: /schemas/graph.yaml#/properties/ports >> >> @@ -86,9 +84,50 @@ required: >> - clock-names >> - phys >> - phy-names >> - - mediatek,syscon-hdmi >> - ports >> >> +allOf: >> + - if: >> + properties: >> + compatible: >> + contains: >> + const: mediatek,mt8195-hdmi >> + then: >> + properties: >> + clocks: >> + items: >> + - description: APB >> + - description: HDCP >> + - description: HDCP 24M >> + - description: Split HDMI >> + clock-names: >> + items: >> + - const: hdmi_apb_sel >> + - const: hdcp_sel >> + - const: hdcp24_sel >> + - const: split_hdmi >> + >> + required: >> + - power-domains >> + else: >> + properties: >> + clocks: >> + items: >> + - description: Pixel Clock >> + - description: HDMI PLL >> + - description: Bit Clock >> + - description: S/PDIF Clock >> + >> + clock-names: >> + items: >> + - const: pixel >> + - const: pll >> + - const: bclk >> + - const: spdif >> + >> + required: >> + - mediatek,syscon-hdmi >> + >> additionalProperties: false >> >> examples: >> diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml >> new file mode 100644 >> index 000000000000..0fe0a2a2f17f >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml >> @@ -0,0 +1,51 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Mediatek HDMI DDC for mt8195 >> + >> +maintainers: >> + - CK Hu <ck.hu@mediatek.com> >> + - Jitao shi <jitao.shi@mediatek.com> >> + >> +description: | >> + The HDMI DDC i2c controller is used to interface with the HDMI DDC pins. >> + >> +properties: >> + compatible: >> + enum: >> + - mediatek,mt8195-hdmi-ddc > >I think I wrote it - you already have bindings for HDMI DDC. I doubt >that these are different and it looks like you model the bindings >according to your driver. That's not the way. Hi Krzysztof, I've made a separate binding as this new IP is integrated into the HDMI hw block. The difference it makes is that the hw is slightly simpler to describe as the IP doesn't have it's own range of registers or an interrupt line. I can use the "legacy mediatek mtk ddc binding" if I modify it to have the reg and interrupt properties not being required for mt8195. Would that work better for you? > >> + >> + clocks: >> + maxItems: 1 >> + >> + clock-names: >> + items: >> + - const: ddc >> + >> + mediatek,hdmi: >> + $ref: /schemas/types.yaml#/definitions/phandle >> + description: >> + A phandle to the mt8195 hdmi controller >> + >> +required: >> + - compatible >> + - clocks >> + - clock-names >> + >> +additionalProperties: false >> + >> +examples: >> + - | >> + #include <dt-bindings/interrupt-controller/arm-gic.h> >> + #include <dt-bindings/interrupt-controller/irq.h> >> + hdmiddc0: ddc_i2c { > >Node names should be generic - ddc. >https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation > >No underscores in node names. > >Additionally I2C devices have addresses on the bus. Why this one doesn't? > This is an i2c adapter, not a device. And as it lives inside the HDMI hw block, I've omitted using an address here. Is this valid? or should this be expressed differently? Thx, Guillaume. >> + compatible = "mediatek,mt8195-hdmi-ddc"; >> + mediatek,hdmi = <&hdmi0>; >> + clocks = <&clk26m>; >> + clock-names = "ddc"; >> + }; >> + >> +... >> > >Best regards, >Krzysztof >
On 02/11/2022 09:31, Guillaume Ranquet wrote: > On Fri, 14 Oct 2022 18:08, Krzysztof Kozlowski > <krzysztof.kozlowski@linaro.org> wrote: >> On 14/10/2022 11:15, Guillaume Ranquet wrote: >>> Add mt8195 SoC bindings for hdmi and hdmi-ddc >>> >>> Signed-off-by: Guillaume Ranquet <granquet@baylibre.com> >>> --- >>> .../bindings/display/mediatek/mediatek,hdmi.yaml | 67 +++++++++++++++++----- >>> .../display/mediatek/mediatek,mt8195-hdmi-ddc.yaml | 51 ++++++++++++++++ >>> 2 files changed, 104 insertions(+), 14 deletions(-) >>> >>> diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml >>> index bdaf0b51e68c..955026cd7ca5 100644 >>> --- a/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml >>> +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml >>> @@ -21,26 +21,21 @@ properties: >>> - mediatek,mt7623-hdmi >>> - mediatek,mt8167-hdmi >>> - mediatek,mt8173-hdmi >>> + - mediatek,mt8195-hdmi >>> >>> reg: >>> maxItems: 1 >>> >>> - interrupts: >>> - maxItems: 1 >>> - >> >> This change is not really explained in commit msg... >> >>> clocks: >>> - items: >>> - - description: Pixel Clock >>> - - description: HDMI PLL >>> - - description: Bit Clock >>> - - description: S/PDIF Clock >>> + minItems: 4 >>> + maxItems: 4 >>> >>> clock-names: >>> - items: >>> - - const: pixel >>> - - const: pll >>> - - const: bclk >>> - - const: spdif >>> + minItems: 4 >>> + maxItems: 4 >>> + >>> + interrupts: >>> + maxItems: 1 >>> >>> phys: >>> maxItems: 1 >>> @@ -58,6 +53,9 @@ properties: >>> description: | >>> phandle link and register offset to the system configuration registers. >>> >>> + power-domains: >>> + maxItems: 1 >>> + >>> ports: >>> $ref: /schemas/graph.yaml#/properties/ports >>> >>> @@ -86,9 +84,50 @@ required: >>> - clock-names >>> - phys >>> - phy-names >>> - - mediatek,syscon-hdmi >>> - ports >>> >>> +allOf: >>> + - if: >>> + properties: >>> + compatible: >>> + contains: >>> + const: mediatek,mt8195-hdmi >>> + then: >>> + properties: >>> + clocks: >>> + items: >>> + - description: APB >>> + - description: HDCP >>> + - description: HDCP 24M >>> + - description: Split HDMI >>> + clock-names: >>> + items: >>> + - const: hdmi_apb_sel >>> + - const: hdcp_sel >>> + - const: hdcp24_sel >>> + - const: split_hdmi >>> + >>> + required: >>> + - power-domains >>> + else: >>> + properties: >>> + clocks: >>> + items: >>> + - description: Pixel Clock >>> + - description: HDMI PLL >>> + - description: Bit Clock >>> + - description: S/PDIF Clock >>> + >>> + clock-names: >>> + items: >>> + - const: pixel >>> + - const: pll >>> + - const: bclk >>> + - const: spdif >>> + >>> + required: >>> + - mediatek,syscon-hdmi >>> + >>> additionalProperties: false >>> >>> examples: >>> diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml >>> new file mode 100644 >>> index 000000000000..0fe0a2a2f17f >>> --- /dev/null >>> +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml >>> @@ -0,0 +1,51 @@ >>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >>> +%YAML 1.2 >>> +--- >>> +$id: http://devicetree.org/schemas/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml# >>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>> + >>> +title: Mediatek HDMI DDC for mt8195 >>> + >>> +maintainers: >>> + - CK Hu <ck.hu@mediatek.com> >>> + - Jitao shi <jitao.shi@mediatek.com> >>> + >>> +description: | >>> + The HDMI DDC i2c controller is used to interface with the HDMI DDC pins. >>> + >>> +properties: >>> + compatible: >>> + enum: >>> + - mediatek,mt8195-hdmi-ddc >> >> I think I wrote it - you already have bindings for HDMI DDC. I doubt >> that these are different and it looks like you model the bindings >> according to your driver. That's not the way. > > Hi Krzysztof, > > I've made a separate binding as this new IP is integrated into the > HDMI hw block. > The difference it makes is that the hw is slightly simpler to describe > as the IP doesn't > have it's own range of registers or an interrupt line. > > I can use the "legacy mediatek mtk ddc binding" if I modify it to have > the reg and > interrupt properties not being required for mt8195. OK, it is reasonable - such stuff should be in commit msg, so we won't keep asking. > > Would that work better for you? > >> >>> + >>> + clocks: >>> + maxItems: 1 >>> + >>> + clock-names: >>> + items: >>> + - const: ddc >>> + >>> + mediatek,hdmi: >>> + $ref: /schemas/types.yaml#/definitions/phandle >>> + description: >>> + A phandle to the mt8195 hdmi controller >>> + >>> +required: >>> + - compatible >>> + - clocks >>> + - clock-names >>> + >>> +additionalProperties: false >>> + >>> +examples: >>> + - | >>> + #include <dt-bindings/interrupt-controller/arm-gic.h> >>> + #include <dt-bindings/interrupt-controller/irq.h> >>> + hdmiddc0: ddc_i2c { >> >> Node names should be generic - ddc. >> https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation >> >> No underscores in node names. >> >> Additionally I2C devices have addresses on the bus. Why this one doesn't? >> > > This is an i2c adapter, not a device. > And as it lives inside the HDMI hw block, I've omitted using an address here. > > Is this valid? or should this be expressed differently? What is an I2C adapter? Did you mean I2C controller (master)? Best regards, Krzysztof
On Thu, 03 Nov 2022 13:45, Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote: >On 02/11/2022 09:31, Guillaume Ranquet wrote: >> On Fri, 14 Oct 2022 18:08, Krzysztof Kozlowski >> <krzysztof.kozlowski@linaro.org> wrote: >>> On 14/10/2022 11:15, Guillaume Ranquet wrote: >>>> Add mt8195 SoC bindings for hdmi and hdmi-ddc >>>> >>>> Signed-off-by: Guillaume Ranquet <granquet@baylibre.com> >>>> --- >>>> .../bindings/display/mediatek/mediatek,hdmi.yaml | 67 +++++++++++++++++----- >>>> .../display/mediatek/mediatek,mt8195-hdmi-ddc.yaml | 51 ++++++++++++++++ >>>> 2 files changed, 104 insertions(+), 14 deletions(-) >>>> >>>> diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml >>>> index bdaf0b51e68c..955026cd7ca5 100644 >>>> --- a/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml >>>> +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml >>>> @@ -21,26 +21,21 @@ properties: >>>> - mediatek,mt7623-hdmi >>>> - mediatek,mt8167-hdmi >>>> - mediatek,mt8173-hdmi >>>> + - mediatek,mt8195-hdmi >>>> >>>> reg: >>>> maxItems: 1 >>>> >>>> - interrupts: >>>> - maxItems: 1 >>>> - >>> >>> This change is not really explained in commit msg... >>> >>>> clocks: >>>> - items: >>>> - - description: Pixel Clock >>>> - - description: HDMI PLL >>>> - - description: Bit Clock >>>> - - description: S/PDIF Clock >>>> + minItems: 4 >>>> + maxItems: 4 >>>> >>>> clock-names: >>>> - items: >>>> - - const: pixel >>>> - - const: pll >>>> - - const: bclk >>>> - - const: spdif >>>> + minItems: 4 >>>> + maxItems: 4 >>>> + >>>> + interrupts: >>>> + maxItems: 1 >>>> >>>> phys: >>>> maxItems: 1 >>>> @@ -58,6 +53,9 @@ properties: >>>> description: | >>>> phandle link and register offset to the system configuration registers. >>>> >>>> + power-domains: >>>> + maxItems: 1 >>>> + >>>> ports: >>>> $ref: /schemas/graph.yaml#/properties/ports >>>> >>>> @@ -86,9 +84,50 @@ required: >>>> - clock-names >>>> - phys >>>> - phy-names >>>> - - mediatek,syscon-hdmi >>>> - ports >>>> >>>> +allOf: >>>> + - if: >>>> + properties: >>>> + compatible: >>>> + contains: >>>> + const: mediatek,mt8195-hdmi >>>> + then: >>>> + properties: >>>> + clocks: >>>> + items: >>>> + - description: APB >>>> + - description: HDCP >>>> + - description: HDCP 24M >>>> + - description: Split HDMI >>>> + clock-names: >>>> + items: >>>> + - const: hdmi_apb_sel >>>> + - const: hdcp_sel >>>> + - const: hdcp24_sel >>>> + - const: split_hdmi >>>> + >>>> + required: >>>> + - power-domains >>>> + else: >>>> + properties: >>>> + clocks: >>>> + items: >>>> + - description: Pixel Clock >>>> + - description: HDMI PLL >>>> + - description: Bit Clock >>>> + - description: S/PDIF Clock >>>> + >>>> + clock-names: >>>> + items: >>>> + - const: pixel >>>> + - const: pll >>>> + - const: bclk >>>> + - const: spdif >>>> + >>>> + required: >>>> + - mediatek,syscon-hdmi >>>> + >>>> additionalProperties: false >>>> >>>> examples: >>>> diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml >>>> new file mode 100644 >>>> index 000000000000..0fe0a2a2f17f >>>> --- /dev/null >>>> +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml >>>> @@ -0,0 +1,51 @@ >>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >>>> +%YAML 1.2 >>>> +--- >>>> +$id: http://devicetree.org/schemas/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml# >>>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>>> + >>>> +title: Mediatek HDMI DDC for mt8195 >>>> + >>>> +maintainers: >>>> + - CK Hu <ck.hu@mediatek.com> >>>> + - Jitao shi <jitao.shi@mediatek.com> >>>> + >>>> +description: | >>>> + The HDMI DDC i2c controller is used to interface with the HDMI DDC pins. >>>> + >>>> +properties: >>>> + compatible: >>>> + enum: >>>> + - mediatek,mt8195-hdmi-ddc >>> >>> I think I wrote it - you already have bindings for HDMI DDC. I doubt >>> that these are different and it looks like you model the bindings >>> according to your driver. That's not the way. >> >> Hi Krzysztof, >> >> I've made a separate binding as this new IP is integrated into the >> HDMI hw block. >> The difference it makes is that the hw is slightly simpler to describe >> as the IP doesn't >> have it's own range of registers or an interrupt line. >> >> I can use the "legacy mediatek mtk ddc binding" if I modify it to have >> the reg and >> interrupt properties not being required for mt8195. > >OK, it is reasonable - such stuff should be in commit msg, so we won't >keep asking. > I'll sum this up in the commit msg for V3 then. >> >> Would that work better for you? >> >>> >>>> + >>>> + clocks: >>>> + maxItems: 1 >>>> + >>>> + clock-names: >>>> + items: >>>> + - const: ddc >>>> + >>>> + mediatek,hdmi: >>>> + $ref: /schemas/types.yaml#/definitions/phandle >>>> + description: >>>> + A phandle to the mt8195 hdmi controller >>>> + >>>> +required: >>>> + - compatible >>>> + - clocks >>>> + - clock-names >>>> + >>>> +additionalProperties: false >>>> + >>>> +examples: >>>> + - | >>>> + #include <dt-bindings/interrupt-controller/arm-gic.h> >>>> + #include <dt-bindings/interrupt-controller/irq.h> >>>> + hdmiddc0: ddc_i2c { >>> >>> Node names should be generic - ddc. >>> https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation >>> >>> No underscores in node names. >>> >>> Additionally I2C devices have addresses on the bus. Why this one doesn't? >>> >> >> This is an i2c adapter, not a device. >> And as it lives inside the HDMI hw block, I've omitted using an address here. >> >> Is this valid? or should this be expressed differently? > >What is an I2C adapter? Did you mean I2C controller (master)? Yes, a controller. This is an I2C controller connected to the HDMI connector, it is used to exchange data on the Display Data Channel with the display (such as EDID). Thx, Guillaume. > >Best regards, >Krzysztof >
On 03/11/2022 11:17, Guillaume Ranquet wrote: > On Thu, 03 Nov 2022 13:45, Krzysztof Kozlowski >>> This is an i2c adapter, not a device. >>> And as it lives inside the HDMI hw block, I've omitted using an address here. >>> >>> Is this valid? or should this be expressed differently? >> >> What is an I2C adapter? Did you mean I2C controller (master)? > > Yes, a controller. > This is an I2C controller connected to the HDMI connector, it is used > to exchange data on the Display Data Channel with > the display (such as EDID). OK, then the node name is "i2c". Best regards, Krzysztof
Add support for HDMI Tx on MT8195. This includes a split of the current "legacy" hdmi driver into a common library of functions and a two dedicated compilation units with specific code for mt8167 and another for the "new" mt8195 SoC. Support for the new mt8195 hdmi phy and the dpi/drm_drv adjustements to support hdmi. Based on next-20221014 test branch with dts and various "in flight" patches available here: https://gitlab.com/granquet/linux/-/tree/granquet/linux-next_HDMI I haven't updated the vdosys/mmsys/ethdr and mutex patches in a while in that test branch, they might be outdated.. To: Chunfeng Yun <chunfeng.yun@mediatek.com> To: Kishon Vijay Abraham I <kishon@ti.com> To: Vinod Koul <vkoul@kernel.org> To: Rob Herring <robh+dt@kernel.org> To: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org> To: Matthias Brugger <matthias.bgg@gmail.com> To: Chun-Kuang Hu <chunkuang.hu@kernel.org> To: Philipp Zabel <p.zabel@pengutronix.de> To: David Airlie <airlied@gmail.com> To: Daniel Vetter <daniel@ffwll.ch> To: CK Hu <ck.hu@mediatek.com> To: Jitao shi <jitao.shi@mediatek.com> Cc: linux-arm-kernel@lists.infradead.org Cc: linux-mediatek@lists.infradead.org Cc: linux-phy@lists.infradead.org Cc: devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Cc: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Cc: mac.shen@mediatek.com CC: stuart.lee@mediatek.com Signed-off-by: Guillaume Ranquet <granquet@baylibre.com> --- Changes in v2: - Removed syscon requirement from the hdmi node - Use as much as possible bit FIELD_PREP/FIELD_GET macros across all the patches - Make cec optional dynamically instead of hardcoded with a flag - Renamed hdmi variants to v1 (legacy) and v2 (mt8195) while waiting for a better name - Rework hdmi v2 code to use a connector (same as v1) - Remove "magic" 0x43 addr special handling in hdmi ddc code - Link to v1: https://lore.kernel.org/r/20220919-v1-0-4844816c9808@baylibre.com --- Guillaume Ranquet (12): dt-bindings: phy: mediatek: hdmi-phy: Add mt8195 compatible dt-bindings: display: mediatek: add MT8195 hdmi bindings drm/mediatek: hdmi: use a regmap instead of iomem drm/mediatek: extract common functions from the mtk hdmi driver drm/mediatek: hdmi: make the cec dev optional drm/mediatek: hdmi: add frame_colorimetry flag drm/mediatek: hdmi: add v2 support drm/mediatek: hdmi: v2: add audio support phy: phy-mtk-hdmi: Add generic phy configure callback phy: mediatek: add support for phy-mtk-hdmi-mt8195 dt-bindings: display: mediatek: dpi: Add compatible for MediaTek MT8195 drm/mediatek: dpi: Add mt8195 hdmi to DPI driver .../bindings/display/mediatek/mediatek,dpi.yaml | 1 + .../bindings/display/mediatek/mediatek,hdmi.yaml | 67 +- .../display/mediatek/mediatek,mt8195-hdmi-ddc.yaml | 51 + .../devicetree/bindings/phy/mediatek,hdmi-phy.yaml | 1 + drivers/gpu/drm/mediatek/Makefile | 5 +- drivers/gpu/drm/mediatek/mtk_dpi.c | 143 +- drivers/gpu/drm/mediatek/mtk_dpi_regs.h | 5 + drivers/gpu/drm/mediatek/mtk_hdmi.c | 655 +------- drivers/gpu/drm/mediatek/mtk_hdmi.h | 16 + drivers/gpu/drm/mediatek/mtk_hdmi_common.c | 477 ++++++ drivers/gpu/drm/mediatek/mtk_hdmi_common.h | 224 +++ drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c | 367 +++++ drivers/gpu/drm/mediatek/mtk_hdmi_regs_v2.h | 309 ++++ drivers/gpu/drm/mediatek/mtk_hdmi_v2.c | 1592 ++++++++++++++++++++ drivers/gpu/drm/mediatek/mtk_hdmi_v2.h | 31 + drivers/phy/mediatek/Makefile | 1 + drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c | 546 +++++++ drivers/phy/mediatek/phy-mtk-hdmi-mt8195.h | 131 ++ drivers/phy/mediatek/phy-mtk-hdmi.c | 15 + drivers/phy/mediatek/phy-mtk-hdmi.h | 2 + 20 files changed, 4004 insertions(+), 635 deletions(-) --- base-commit: 98035e7c0bb29bf68a2f4b650656f3a3dd07a494 change-id: 20220919-hdmi_mtk Best regards,