Re: [RFC 1/2] mmc: sdhci: dt: Add device tree properties sdhci-caps and sdhci-caps-mask

From: Ulf Hansson
Date: Fri Oct 28 2016 - 04:12:44 EST


On 25 October 2016 at 21:58, Zach Brown <zach.brown@xxxxxx> wrote:
> On some systems the sdhci capabilty registers are incorrect for one
> reason or another.
>
> The sdhci-caps-mask property specifies which bits in the registers
> are incorrect and should be turned off before using sdhci-caps to turn
> on bits.
>
> The sdhci-caps property specifies which bits should be turned on.
>
> Signed-off-by: Zach Brown <zach.brown@xxxxxx>
> ---
> Documentation/devicetree/bindings/mmc/mmc.txt | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/mmc/mmc.txt b/Documentation/devicetree/bindings/mmc/mmc.txt
> index 8a37782..1415aa0 100644
> --- a/Documentation/devicetree/bindings/mmc/mmc.txt
> +++ b/Documentation/devicetree/bindings/mmc/mmc.txt

The bindings in this document are common mmc DT bindings, not bindings
specific to a mmc controller.

So unless these bindings are applicable for another controller than
sdhci, I suggest we create a new file to document these.
How about Documentation/devicetree/bindings/mmc/sdhci.txt?

> @@ -52,6 +52,13 @@ Optional properties:
> - no-sdio: controller is limited to send sdio cmd during initialization
> - no-sd: controller is limited to send sd cmd during initialization
> - no-mmc: controller is limited to send mmc cmd during initialization
> +- sdhci-caps-mask: The sdhci capabilities registers are incorrect. This 64bit

/s/registers/register

This applies to some more places below as well.

> + property corresponds to the bits in the sdhci capabilty registers. If the bit
> + is on in the mask then the bit is incorrect in the registers and should be
> + turned off.
> +- sdhci-caps: The sdhci capabilities registers are incorrect. This 64bit
> + property corresponds to the bits in the sdhci capability registers. If the
> + bit is on in the property then the bit should be on in the reigsters.

/s/reigsters/register

>
> *NOTE* on CD and WP polarity. To use common for all SD/MMC host controllers line
> polarity properties, we have to fix the meaning of the "normal" and "inverted"
> --
> 2.7.4
>

Overall, I like this idea as it gives us good flexibility. Thus it
should avoid us to having to add any further new similar "sdhci broken
cap" DT binding. We could also decide to start deprecate some of the
existing sdhci bindings, if we think that makes sense.

The downside is that we get a "magic" hex value in the dts. Although,
people could address this issue by providing some comments about what
the bits it means in the dts files themselves.

Let's see what Rob thinks about this.

Kind regards
Uffe