Message ID | 4c21dda4f0b73977de1e54d408d7bf6bf3b6d238.1582533919.git-series.maxime@cerno.tech (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/vc4: Support BCM2711 Display Pipeline | expand |
On Mon, Feb 24, 2020 at 10:07:30AM +0100, Maxime Ripard wrote: > The HDMI controllers found in the BCM2711 SoC need some adjustments to the > bindings, especially since the registers have been shuffled around in more > register ranges. > > Cc: Rob Herring <robh+dt@kernel.org> > Cc: devicetree@vger.kernel.org > Signed-off-by: Maxime Ripard <maxime@cerno.tech> > --- > Documentation/devicetree/bindings/display/brcm,bcm2835-hdmi.yaml | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------ > 1 file changed, 109 insertions(+), 9 deletions(-) > > diff --git a/Documentation/devicetree/bindings/display/brcm,bcm2835-hdmi.yaml b/Documentation/devicetree/bindings/display/brcm,bcm2835-hdmi.yaml > index 52b3cdac0bdf..a9d24e1cf684 100644 > --- a/Documentation/devicetree/bindings/display/brcm,bcm2835-hdmi.yaml > +++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-hdmi.yaml > @@ -11,24 +11,58 @@ maintainers: > > properties: > compatible: > - const: brcm,bcm2835-hdmi > + enum: > + - brcm,bcm2835-hdmi > + - brcm,bcm2711-hdmi0 > + - brcm,bcm2711-hdmi1 > > reg: > + oneOf: > + - items: > + - description: HDMI register range > + - description: HD register range > + > + - items: > + - description: HDMI controller register range > + - description: DVP register range > + - description: HDMI PHY register range > + - description: Rate Manager register range > + - description: Packet RAM register range > + - description: Metadata RAM register range > + - description: CSC register range > + - description: CEC register range > + - description: HD register range > + > + reg-names: > items: > - - description: HDMI register range > - - description: HD register range > + - const: hdmi > + - const: dvp > + - const: phy > + - const: rm > + - const: packet > + - const: metadata > + - const: csc > + - const: cec > + - const: hd Don't you want 'hd' 2nd or need to define the 2 entry case separately? Really, I think this should be 2 files. All but interrupts and ddc have a difference. > > interrupts: > minItems: 2 > > clocks: > - items: > - - description: The pixel clock > - - description: The HDMI state machine clock > + oneOf: > + - items: > + - description: The pixel clock > + - description: The HDMI state machine clock > + > + - items: > + - description: The HDMI state machine clock > > clock-names: > - items: > - - const: pixel > + oneOf: > + - items: > + - const: pixel > + - const: hdmi > + > - const: hdmi > > ddc: > @@ -51,15 +85,54 @@ properties: > dma-names: > const: audio-rx > > + resets: > + maxItems: 1 > + > required: > - compatible > - reg > - - interrupts > - clocks > - ddc > > additionalProperties: false > > +if: > + properties: > + compatible: > + contains: > + enum: > + - brcm,bcm2711-hdmi0 > + - brcm,bcm2711-hdmi1 > + > +then: > + properties: > + reg: > + minItems: 9 > + > + clocks: > + maxItems: 1 > + > + clock-names: > + maxItems: 1 > + > + required: > + - reg-names > + - resets > + > +else: > + properties: > + reg: > + maxItems: 2 > + > + clocks: > + minItems: 2 > + > + clock-names: > + minItems: 2 > + > + required: > + - interrupts > + > examples: > - | > #include <dt-bindings/clock/bcm2835.h> > @@ -77,4 +150,31 @@ examples: > clock-names = "pixel", "hdmi"; > }; > > + - | > + hdmi0: hdmi@7ef00700 { > + compatible = "brcm,bcm2711-hdmi0"; > + reg = <0x7ef00700 0x300>, > + <0x7ef00300 0x200>, > + <0x7ef00f00 0x80>, > + <0x7ef00f80 0x80>, > + <0x7ef01b00 0x200>, > + <0x7ef01f00 0x400>, > + <0x7ef00200 0x80>, > + <0x7ef04300 0x100>, > + <0x7ef20000 0x100>; > + reg-names = "hdmi", > + "dvp", > + "phy", > + "rm", > + "packet", > + "metadata", > + "csc", > + "cec", > + "hd"; > + clocks = <&firmware_clocks 13>; > + clock-names = "hdmi"; > + resets = <&dvp 0>; > + ddc = <&ddc0>; > + }; > + > ... > -- > git-series 0.9.1
diff --git a/Documentation/devicetree/bindings/display/brcm,bcm2835-hdmi.yaml b/Documentation/devicetree/bindings/display/brcm,bcm2835-hdmi.yaml index 52b3cdac0bdf..a9d24e1cf684 100644 --- a/Documentation/devicetree/bindings/display/brcm,bcm2835-hdmi.yaml +++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-hdmi.yaml @@ -11,24 +11,58 @@ maintainers: properties: compatible: - const: brcm,bcm2835-hdmi + enum: + - brcm,bcm2835-hdmi + - brcm,bcm2711-hdmi0 + - brcm,bcm2711-hdmi1 reg: + oneOf: + - items: + - description: HDMI register range + - description: HD register range + + - items: + - description: HDMI controller register range + - description: DVP register range + - description: HDMI PHY register range + - description: Rate Manager register range + - description: Packet RAM register range + - description: Metadata RAM register range + - description: CSC register range + - description: CEC register range + - description: HD register range + + reg-names: items: - - description: HDMI register range - - description: HD register range + - const: hdmi + - const: dvp + - const: phy + - const: rm + - const: packet + - const: metadata + - const: csc + - const: cec + - const: hd interrupts: minItems: 2 clocks: - items: - - description: The pixel clock - - description: The HDMI state machine clock + oneOf: + - items: + - description: The pixel clock + - description: The HDMI state machine clock + + - items: + - description: The HDMI state machine clock clock-names: - items: - - const: pixel + oneOf: + - items: + - const: pixel + - const: hdmi + - const: hdmi ddc: @@ -51,15 +85,54 @@ properties: dma-names: const: audio-rx + resets: + maxItems: 1 + required: - compatible - reg - - interrupts - clocks - ddc additionalProperties: false +if: + properties: + compatible: + contains: + enum: + - brcm,bcm2711-hdmi0 + - brcm,bcm2711-hdmi1 + +then: + properties: + reg: + minItems: 9 + + clocks: + maxItems: 1 + + clock-names: + maxItems: 1 + + required: + - reg-names + - resets + +else: + properties: + reg: + maxItems: 2 + + clocks: + minItems: 2 + + clock-names: + minItems: 2 + + required: + - interrupts + examples: - | #include <dt-bindings/clock/bcm2835.h> @@ -77,4 +150,31 @@ examples: clock-names = "pixel", "hdmi"; }; + - | + hdmi0: hdmi@7ef00700 { + compatible = "brcm,bcm2711-hdmi0"; + reg = <0x7ef00700 0x300>, + <0x7ef00300 0x200>, + <0x7ef00f00 0x80>, + <0x7ef00f80 0x80>, + <0x7ef01b00 0x200>, + <0x7ef01f00 0x400>, + <0x7ef00200 0x80>, + <0x7ef04300 0x100>, + <0x7ef20000 0x100>; + reg-names = "hdmi", + "dvp", + "phy", + "rm", + "packet", + "metadata", + "csc", + "cec", + "hd"; + clocks = <&firmware_clocks 13>; + clock-names = "hdmi"; + resets = <&dvp 0>; + ddc = <&ddc0>; + }; + ...
The HDMI controllers found in the BCM2711 SoC need some adjustments to the bindings, especially since the registers have been shuffled around in more register ranges. Cc: Rob Herring <robh+dt@kernel.org> Cc: devicetree@vger.kernel.org Signed-off-by: Maxime Ripard <maxime@cerno.tech> --- Documentation/devicetree/bindings/display/brcm,bcm2835-hdmi.yaml | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 109 insertions(+), 9 deletions(-)