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@xxxxxxxxxx> > Cc: devicetree@xxxxxxxxxxxxxxx > Signed-off-by: Maxime Ripard <maxime@xxxxxxxxxx> > --- > 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