Message ID | 20230522173423.64691-4-sebastian.reichel@collabora.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add RK3588 SATA support | expand |
On Mon, May 22, 2023 at 07:34:20PM +0200, Sebastian Reichel wrote: > Provide a specific list of clocks allowed for RK3568 and RK3588 > based DWC AHCI controllers. > > Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> > --- > .../bindings/ata/snps,dwc-ahci.yaml | 34 +++++++++++++++++-- > 1 file changed, 31 insertions(+), 3 deletions(-) > > diff --git a/Documentation/devicetree/bindings/ata/snps,dwc-ahci.yaml b/Documentation/devicetree/bindings/ata/snps,dwc-ahci.yaml > index c6a0d6c8b62c..37830185b9b5 100644 > --- a/Documentation/devicetree/bindings/ata/snps,dwc-ahci.yaml > +++ b/Documentation/devicetree/bindings/ata/snps,dwc-ahci.yaml > @@ -13,9 +13,6 @@ description: > This document defines device tree bindings for the generic Synopsys DWC > implementation of the AHCI SATA controller. > > -allOf: > - - $ref: snps,dwc-ahci-common.yaml# > - > properties: > compatible: > oneOf: > @@ -41,6 +38,37 @@ required: > - reg > - interrupts > > +allOf: > + - $ref: snps,dwc-ahci-common.yaml# > + - if: > + properties: > + compatible: > + contains: > + enum: > + - rockchip,rk3588-dwc-ahci > + then: > + properties: > + clock-names: > + items: > + - const: sata > + - const: pmalive > + - const: rxoob > + - const: ref > + - const: asic > + - if: > + properties: > + compatible: > + contains: > + enum: > + - rockchip,rk3568-dwc-ahci > + then: > + properties: > + clock-names: > + items: > + - const: sata > + - const: pmalive > + - const: rxoob > + As I already suggested here https://lore.kernel.org/all/20230421192822.yckihqlk2vlkueyc@mobilestation/ let's create a separate DT-schema for the Rockchip AHCI SATA controllers. Please see the way it's done for Baikal-T1 AHCI SATA here: Documentation/devicetree/bindings/ata/baikal,bt1-ahci.yaml Your generic schema patch doesn't provide a full hardware constraints (what about resets, number of ports, etc?), but makes the generic DW AHCI SATA controller DT-schema harder to read. * Don't forget to add the "select: ..." property to prevent your DT-schema from being applied to all the "snps,dwc-ahci"-compatible DT-nodes (see my comment to the previous patchset revision). Alternatively you can just drop the generic DW AHCI compatible string from the DT-files (but in this case you would need to add vendor-specific compatible string to the driver). -Serge(y) > unevaluatedProperties: false > > examples: > -- > 2.39.2 >
diff --git a/Documentation/devicetree/bindings/ata/snps,dwc-ahci.yaml b/Documentation/devicetree/bindings/ata/snps,dwc-ahci.yaml index c6a0d6c8b62c..37830185b9b5 100644 --- a/Documentation/devicetree/bindings/ata/snps,dwc-ahci.yaml +++ b/Documentation/devicetree/bindings/ata/snps,dwc-ahci.yaml @@ -13,9 +13,6 @@ description: This document defines device tree bindings for the generic Synopsys DWC implementation of the AHCI SATA controller. -allOf: - - $ref: snps,dwc-ahci-common.yaml# - properties: compatible: oneOf: @@ -41,6 +38,37 @@ required: - reg - interrupts +allOf: + - $ref: snps,dwc-ahci-common.yaml# + - if: + properties: + compatible: + contains: + enum: + - rockchip,rk3588-dwc-ahci + then: + properties: + clock-names: + items: + - const: sata + - const: pmalive + - const: rxoob + - const: ref + - const: asic + - if: + properties: + compatible: + contains: + enum: + - rockchip,rk3568-dwc-ahci + then: + properties: + clock-names: + items: + - const: sata + - const: pmalive + - const: rxoob + unevaluatedProperties: false examples:
Provide a specific list of clocks allowed for RK3568 and RK3588 based DWC AHCI controllers. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> --- .../bindings/ata/snps,dwc-ahci.yaml | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-)