2016-10-25 16:09 GMT+08:00 Jaehoon Chung <jh80.chung@xxxxxxxxxxx>: > On 10/25/2016 01:17 PM, Shawn Lin wrote: >> On 2016/10/25 10:16, Jaehoon Chung wrote: >>> On 10/24/2016 09:19 PM, Shawn Lin wrote: >>>> On 2016/10/24 17:11, Jun Nie wrote: >>>>> Add fifo-addr-override property and fifo-watermark-quirk property to >>>>> synopsys-dw-mshc bindings. It is intended to provide workarounds to >>>>> support more SoCs that break current assumption. >>>>> >>>>> See Documentation/devicetree/bindings/reset/reset.txt for details. >>>>> >>>>> Signed-off-by: Jun Nie <jun.nie@xxxxxxxxxx> >>>>> --- >>>>> Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt | 13 +++++++++++++ >>>>> 1 file changed, 13 insertions(+) >>>>> >>>>> diff --git a/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt >>>>> index 4e00e85..eb64921 100644 >>>>> --- a/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt >>>>> +++ b/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt >>>>> @@ -76,6 +76,17 @@ Optional properties: >>>>> >>>>> * broken-cd: as documented in mmc core bindings. >>>>> >>>>> +* fifo-addr-override: Override fifo address with value provided by DT. The FIFO >>>>> + reg offset of version 0x210A break current assumption that 0x100 (version < 0x240A) >>>>> + and 0x200(version >= 0x240A) in some implementation. So this property serves as >>>>> + workaround. >>>> >>>> Can we hardcode this to the code by checking the host version? >>> >>> I think it should be not workaround..According to TRM, Address is equal or greater than 0x100. >>> It means address can be 0x200, right? >>> If you needs to overwrite the DATA register offset for your target, just can add the property for this. >>> >> >> I can't follow yours here as I don't have 210A TRM. Do you mean the TRM >> for 210A say: "Address is equal or greater than 0x100" ? > > Upper version than IP 2.40a is used the offset 0x100 as other purpose. > For preventing to use wrong register. we put to check host->verid. > > Yes, can set the address to any value 0x100 or greater. > If some soc needs to use 0x200, why not? > > But it's not true that FIFO reg offset of version 2.10a break. > I have checked 2.10a TRM..It's DATA offset >= 0x100. > > Best Regards, > Jaehoon Chung OK, will change property name to "fifo-addr" to set fifo reg address via property in next version. I do not have 2.10a TRM and had assumed current code is following the TRM. Jun > >> >>>> >>>>> + >>>>> +* fifo-watermark-quirk: Data done irq is expected if data length is less than >>>>> + watermark in PIO mode. But fifo watermark is requested to be aligned with data >>>>> + length in some SoC so that TX/RX irq can be generated with data done irq. Add the >>>>> + watermark quirk to mark this requirement and force fifo watermark setting >>>>> + accordingly. >>>> >>>> I would like to know if this limitation is *really* related to some >>>> Socs or the version of 210A dw_mmc? >>>> >>>> >>>>> + >>>>> * vmmc-supply: The phandle to the regulator to use for vmmc. If this is >>>>> specified we'll defer probe until we can find this regulator. >>>>> >>>>> @@ -103,6 +114,8 @@ board specific portions as listed below. >>>>> interrupts = <0 75 0>; >>>>> #address-cells = <1>; >>>>> #size-cells = <0>; >>>>> + fifo-addr-override = <0x200>; >>>>> + fifo-watermark-quirk; >>>>> }; >>>>> >>>>> [board specific internal DMA resources] >>>>> >>>> >>>> >>> >>> >>> >>> >> >> > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html