Re: ARC dw-mshc binding compat string

Marek Vasut
2016-03-26T18:10:18Z

On 03/26/2016 06:52 PM, Vladimir Zapolskiy wrote:
> Hi Marek,
>
> On 26.03.2016 19:30, Marek Vasut wrote:
>> On 03/26/2016 06:26 PM, Vladimir Zapolskiy wrote:
>>> On 26.03.2016 12:14, Marek Vasut wrote:
>>>> Hi!
>>>>
>>>> I noticed that arch/arc/boot/dts/axs10x_mb.dtsi uses "altr," prefix in
>>>> the DT compatible string:
>>>>
>>>> mmc@0x15000 {
>>>> compatible = "altr,socfpga-dw-mshc";
>>>> reg = < 0x15000 0x400 >;
>>>> num-slots = < 1 >;
>>>> fifo-depth = < 16 >;
>>>> card-detect-delay = < 200 >;
>>>> clocks = <&apbclk>, <&mmcclk>;
>>>> clock-names = "biu", "ciu";
>>>> interrupts = < 7 >;
>>>> bus-width = < 4 >;
>>>> };
>>>>
>>>> I don't think this is OK, since ARC is unrelated to Altera, which is
>>>> what the "altr," prefix stands for. I think the socfpga-dw-mshc shim
>>>> should be extended with another compatibility string, something like
>>>> "snps,arc-dw-mshc" and the axs10x_mb.dtsi should be adjusted
>>>> accordingly. What do you think ?
>>>>
>>>
>>> There is "snps,dw-mshc" described in
>>> Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt and supported by
>>> dw_mmc host controller driver.
>>
>> Thanks, that's even better.
>>
>> btw what do you think of using altr, prefix on non-altera system, that
>> doesn't seem ok, right ?
>
> according to ePAPR the prefix should represent a device (IP block here
> I believe) manufacturer, so it should be okay to use "altr" prefix on
> non-Altera system, if Altera provides another hardware vendor with
> some own IP block.

In this case, it's Synopsys who provides the SD/MMC/MS core to other
chip makers (Altera etc).

> That said, I would rather prefer to see "snps,dw-mshc" prefix on description
> of an MMC controller found on SoCFPGA series, "altr,socfpga-dw-mshc" seems
> to be redundant.

According to drivers/mmc/host/dw_mmc-pltfm.c , the Altera SoCFPGA one
"altr,socfpga-dw-mshc" and also Imagination Technology Pistacio one
"img,pistachio-dw-mshc" need specialty bit (SDMMC_CMD_USE_HOLD_REG),
while the stock one "snps,dw-mshc" does not. I am not sure if the ARC
one needs it as well, but most likely yes.

I wonder if that bit is needed on some particular version of the DWMMC
core. In that case, should we have "snps,dw-mshc" and "snps,dw-mshc-vN"
binding ? Or should we use DT property to discern the need for this bit ?

> --
> With best wishes,
> Vladimir
>

--
Best regards,
Marek Vasut