Message ID | 1678626510.1783316-1-sleirsgoevy@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mmc: dw_mmc: fix DW MMC cores with 32-bit bus on 64-bit Linux systems | expand |
On 12/03/2023 14:03, Sergey Lisov wrote: > Some Samsung Exynos boards using the arm64 architecture have DW MMC > controllers configured for a 32-bit data bus but a 64-bit FIFO. On these > systems the 64-bit FIFO registers must be accessed in two 32-bit halves. > > Add two new compatible strings, "samsung,exynos78xx-dw-mshc" and > "samsung,exynos78xx-dw-mshc-smu" respectively, to denote exynos78xx > boards that need this quirk. But it's very possible that all > "samsung,exynos7-dw-mshc" boards are actually affected. > --- > .../devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml | 2 ++ > arch/arm64/boot/dts/exynos/exynos7885.dtsi | 2 +- Bindings and DTS (and driver) are always separate. > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml b/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml > index fdaa18481..a72a67792 100644 > --- a/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml > +++ b/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml > @@ -22,6 +22,8 @@ properties: > - samsung,exynos5420-dw-mshc-smu > - samsung,exynos7-dw-mshc > - samsung,exynos7-dw-mshc-smu > + - samsung,exynos78xx-dw-mshc > + - samsung,exynos78xx-dw-mshc-smu Compatibles must be specific. There is also no fallback, but I assume that's intentional - you say these are not compatible? > - axis,artpec8-dw-mshc > > reg: > diff --git a/arch/arm64/boot/dts/exynos/exynos7885.dtsi b/arch/arm64/boot/dts/exynos/exynos7885.dtsi > index 23c2e0bb0..4b94ac9da 100644 > --- a/arch/arm64/boot/dts/exynos/exynos7885.dtsi > +++ b/arch/arm64/boot/dts/exynos/exynos7885.dtsi > @@ -294,7 +294,7 @@ pmu_system_controller: system-controller@11c80000 { > }; > > mmc_0: mmc@13500000 { > - compatible = "samsung,exynos7-dw-mshc-smu"; > + compatible = "samsung,exynos78xx-dw-mshc-smu"; That's non-bisectable change (also breaking other users of DTS), so you need to explain in commit msg rationale - devices were never compatible and using exynos7 does not work in certain cases. Best regards, Krzysztof
> Bindings and DTS (and driver) are always separate. Okay, will split the patch. > Compatibles must be specific. No, this way you'd have tons of identical compatibles that only differ in the exynosXXXX digits, and are functionally equivalent. > That's non-bisectable change (also breaking other users of DTS), so you > need to explain in commit msg rationale - devices were never compatible > and using exynos7 does not work in certain cases. Valid point.
diff --git a/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml b/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml index fdaa18481..a72a67792 100644 --- a/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml +++ b/Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml @@ -22,6 +22,8 @@ properties: - samsung,exynos5420-dw-mshc-smu - samsung,exynos7-dw-mshc - samsung,exynos7-dw-mshc-smu + - samsung,exynos78xx-dw-mshc + - samsung,exynos78xx-dw-mshc-smu - axis,artpec8-dw-mshc reg: diff --git a/arch/arm64/boot/dts/exynos/exynos7885.dtsi b/arch/arm64/boot/dts/exynos/exynos7885.dtsi index 23c2e0bb0..4b94ac9da 100644 --- a/arch/arm64/boot/dts/exynos/exynos7885.dtsi +++ b/arch/arm64/boot/dts/exynos/exynos7885.dtsi @@ -294,7 +294,7 @@ pmu_system_controller: system-controller@11c80000 { }; mmc_0: mmc@13500000 { - compatible = "samsung,exynos7-dw-mshc-smu"; + compatible = "samsung,exynos78xx-dw-mshc-smu"; reg = <0x13500000 0x2000>; interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; #address-cells = <1>;