Signed-off-by: Andrea della Porta <andrea.porta@suse.com>
---
.../bindings/mmc/brcm,sdhci-brcmstb.yaml | 51 ++++++++++++++++++-
1 file changed, 50 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.yaml b/Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.yaml
index cbd3d6c6c77f..6aa137d78e4f 100644
--- a/Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.yaml
+++ b/Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.yaml
@@ -13,6 +13,7 @@ maintainers:
properties:
compatible:
oneOf:
+ - const: brcm,bcm2712-sdhci
- items:
- enum:
- brcm,bcm7216-sdhci
@@ -26,12 +27,16 @@ properties:
- const: brcm,sdhci-brcmstb
reg:
- maxItems: 2
+ minItems: 2
+ maxItems: 4
reg-names:
+ minItems: 2
items:
- const: host
- const: cfg
+ - const: busisol
+ - const: lcpll
interrupts:
maxItems: 1
@@ -60,6 +65,7 @@ properties:
description: Specifies that controller should use auto CMD12
allOf:
+ - $ref: sdhci-common.yaml
- $ref: mmc-controller.yaml#
- if:
properties:
@@ -71,6 +77,28 @@ allOf:
required:
- clock-frequency
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: brcm,bcm2712-sdhci
+
+ then:
+ properties:
+ reg:
+ maxItems: 4
+ clock-names:
+ const: "sw_sdio"
+
+ else:
+ properties:
+ reg:
+ minItems: 2
+ maxItems: 2
+ reg-names:
+ minItems: 2
+ maxItems: 2
+
required:
- compatible
- reg
@@ -114,3 +142,24 @@ examples:
clocks = <&scmi_clk 245>;
clock-names = "sw_sdio";
};
+
+ - |
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ mmc@fff000 {
+ compatible = "brcm,bcm2712-sdhci";
+ reg = <0x10 0x00fff000 0x0 0x260>,
+ <0x10 0x00fff400 0x0 0x200>,
+ <0x10 0x015040b0 0x0 0x4>, // Bus isolation control
+ <0x10 0x015200f0 0x0 0x24>; // LCPLL control misc0-8
+ reg-names = "host", "cfg", "busisol", "lcpll";
+ interrupts = <0x0 0x111 0x4>;
+ clocks = <&clk_emmc2>;
+ sdhci-caps-mask = <0x0000C000 0x0>;
+ sdhci-caps = <0x0 0x0>;
+ mmc-ddr-3_3v;
+ clock-names = "sw_sdio";
+ };
+ };
--
2.35.3
On 4/13/2024 3:14 PM, Andrea della Porta wrote:
> Signed-off-by: Andrea della Porta <andrea.porta@suse.com>
> ---
> .../bindings/mmc/brcm,sdhci-brcmstb.yaml | 51 ++++++++++++++++++-
> 1 file changed, 50 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.yaml b/Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.yaml
> index cbd3d6c6c77f..6aa137d78e4f 100644
> --- a/Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.yaml
> +++ b/Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.yaml
> @@ -13,6 +13,7 @@ maintainers:
> properties:
> compatible:
> oneOf:
> + - const: brcm,bcm2712-sdhci
> - items:
> - enum:
> - brcm,bcm7216-sdhci
> @@ -26,12 +27,16 @@ properties:
> - const: brcm,sdhci-brcmstb
>
> reg:
> - maxItems: 2
> + minItems: 2
> + maxItems: 4
>
> reg-names:
> + minItems: 2
> items:
> - const: host
> - const: cfg
> + - const: busisol
> + - const: lcpll
>
> interrupts:
> maxItems: 1
> @@ -60,6 +65,7 @@ properties:
> description: Specifies that controller should use auto CMD12
>
> allOf:
> + - $ref: sdhci-common.yaml
> - $ref: mmc-controller.yaml#
> - if:
> properties:
> @@ -71,6 +77,28 @@ allOf:
> required:
> - clock-frequency
>
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: brcm,bcm2712-sdhci
> +
> + then:
> + properties:
> + reg:
> + maxItems: 4
> + clock-names:
> + const: "sw_sdio"
> +
> + else:
> + properties:
> + reg:
> + minItems: 2
> + maxItems: 2
> + reg-names:
> + minItems: 2
> + maxItems: 2
> +
> required:
> - compatible
> - reg
> @@ -114,3 +142,24 @@ examples:
> clocks = <&scmi_clk 245>;
> clock-names = "sw_sdio";
> };
> +
> + - |
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + mmc@fff000 {
> + compatible = "brcm,bcm2712-sdhci";
> + reg = <0x10 0x00fff000 0x0 0x260>,
> + <0x10 0x00fff400 0x0 0x200>,
> + <0x10 0x015040b0 0x0 0x4>, // Bus isolation control
That should be a syscon, not under direct management of the driver
because there are other bits in that register that are relevant here.
> + <0x10 0x015200f0 0x0 0x24>; // LCPLL control misc0-8
And likewise, this should be a clock provider, or the firmware could add
support for configuring the LCPLL since there are other things going on
there.
--
Florian
On 14/04/2024 00:14, Andrea della Porta wrote:
> Signed-off-by: Andrea della Porta <andrea.porta@suse.com>
? And what is being done here and why?
> ---
> .../bindings/mmc/brcm,sdhci-brcmstb.yaml | 51 ++++++++++++++++++-
> 1 file changed, 50 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.yaml b/Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.yaml
> index cbd3d6c6c77f..6aa137d78e4f 100644
> --- a/Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.yaml
> +++ b/Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.yaml
> @@ -13,6 +13,7 @@ maintainers:
> properties:
> compatible:
> oneOf:
> + - const: brcm,bcm2712-sdhci
> - items:
> - enum:
> - brcm,bcm7216-sdhci
> @@ -26,12 +27,16 @@ properties:
> - const: brcm,sdhci-brcmstb
>
> reg:
> - maxItems: 2
> + minItems: 2
> + maxItems: 4
>
> reg-names:
> + minItems: 2
> items:
> - const: host
> - const: cfg
> + - const: busisol
> + - const: lcpll
>
> interrupts:
> maxItems: 1
> @@ -60,6 +65,7 @@ properties:
> description: Specifies that controller should use auto CMD12
>
> allOf:
> + - $ref: sdhci-common.yaml
> - $ref: mmc-controller.yaml#
Why? Anyway, this replaces mmc-controller, doesn't it?
> - if:
> properties:
> @@ -71,6 +77,28 @@ allOf:
> required:
> - clock-frequency
>
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: brcm,bcm2712-sdhci
> +
> + then:
> + properties:
> + reg:
> + maxItems: 4
> + clock-names:
> + const: "sw_sdio"
Not tested.
> +
> + else:
> + properties:
> + reg:
> + minItems: 2
> + maxItems: 2
> + reg-names:
> + minItems: 2
> + maxItems: 2
> +
> required:
> - compatible
> - reg
> @@ -114,3 +142,24 @@ examples:
> clocks = <&scmi_clk 245>;
> clock-names = "sw_sdio";
> };
> +
> + - |
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + mmc@fff000 {
> + compatible = "brcm,bcm2712-sdhci";
> + reg = <0x10 0x00fff000 0x0 0x260>,
> + <0x10 0x00fff400 0x0 0x200>,
> + <0x10 0x015040b0 0x0 0x4>, // Bus isolation control
> + <0x10 0x015200f0 0x0 0x24>; // LCPLL control misc0-8
> + reg-names = "host", "cfg", "busisol", "lcpll";
> + interrupts = <0x0 0x111 0x4>;
Use proper defines.
> + clocks = <&clk_emmc2>;
> + sdhci-caps-mask = <0x0000C000 0x0>;
> + sdhci-caps = <0x0 0x0>;
> + mmc-ddr-3_3v;
> + clock-names = "sw_sdio";
names *always* follow property. In every DTS. Please fix youro DTS.
Best regards,
Krzysztof
On Sun, 14 Apr 2024 00:14:24 +0200, Andrea della Porta wrote: > Signed-off-by: Andrea della Porta <andrea.porta@suse.com> > --- > .../bindings/mmc/brcm,sdhci-brcmstb.yaml | 51 ++++++++++++++++++- > 1 file changed, 50 insertions(+), 1 deletion(-) > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: ./Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.yaml:91:10: [warning] wrong indentation: expected 10 but found 9 (indentation) ./Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.yaml:91:17: [error] string value is redundantly quoted with any quotes (quoted-strings) dtschema/dtc warnings/errors: doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/ad96fff723675c2d65a5e3328da9b09f2781cbcd.1713036964.git.andrea.porta@suse.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
© 2016 - 2026 Red Hat, Inc.