diff mbox

[v5,1/5] mmc: dt-bindings: add ZTE ZX296718 MMC bindings

Message ID 1478568298-18380-2-git-send-email-jun.nie@linaro.org
State Superseded
Headers show

Commit Message

Jun Nie Nov. 8, 2016, 1:24 a.m. UTC
Document the device-tree binding of ZTE MMC host on
ZX296718 SoC.

Signed-off-by: Jun Nie <jun.nie@linaro.org>

---
 .../devicetree/bindings/mmc/zx-dw-mshc.txt         | 35 ++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Shawn Lin Nov. 14, 2016, 7:58 a.m. UTC | #1
On 2016/11/8 9:24, Jun Nie wrote:
> Document the device-tree binding of ZTE MMC host on

> ZX296718 SoC.

>

> Signed-off-by: Jun Nie <jun.nie@linaro.org>

> ---

>  .../devicetree/bindings/mmc/zx-dw-mshc.txt         | 35 ++++++++++++++++++++++

>  1 file changed, 35 insertions(+)

>  create mode 100644 Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>

> diff --git a/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

> new file mode 100644

> index 0000000..c175c4b

> --- /dev/null

> +++ b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

> @@ -0,0 +1,35 @@

> +* ZTE specific extensions to the Synopsys Designware Mobile Storage

> +  Host Controller

> +

> +The Synopsys designware mobile storage host controller is used to interface

> +a SoC with storage medium such as eMMC or SD/MMC cards. This file documents

> +differences between the core Synopsys dw mshc controller properties described

> +by synopsys-dw-mshc.txt and the properties used by the ZTE specific

> +extensions to the Synopsys Designware Mobile Storage Host Controller.

> +

> +Required Properties:

> +

> +* compatible: should be

> +	- "zte,zx296718-dw-mshc": for ZX SoCs

> +

> +Example:

> +

> +	mmc1: mmc@1110000 {

> +		compatible = "zte,zx296718-dw-mshc";

> +		#address-cells = <1>;

> +		#size-cells = <0>;

> +		reg = <0x01110000 0x1000>;

> +		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;

> +		fifo-depth = <32>;

> +		data-addr = <0x200>;

> +		fifo-watermark-aligned;

> +		bus-width = <4>;

> +		clock-frequency = <50000000>;


do you need both clock-frequency and max-frequency here?

> +		clocks = <&topcrm SD0_AHB>, <&topcrm SD0_WCLK>;

> +		clock-names = "biu", "ciu";

> +		num-slots = <1>;

> +		max-frequency = <50000000>;

> +		cap-sdio-irq;

> +		cap-sd-highspeed;

> +		status = "disabled";

> +	};

>



-- 
Best Regards
Shawn Lin

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jun Nie Nov. 14, 2016, 10 a.m. UTC | #2
2016-11-14 15:58 GMT+08:00 Shawn Lin <shawn.lin@rock-chips.com>:
> On 2016/11/8 9:24, Jun Nie wrote:

>>

>> Document the device-tree binding of ZTE MMC host on

>> ZX296718 SoC.

>>

>> Signed-off-by: Jun Nie <jun.nie@linaro.org>

>> ---

>>  .../devicetree/bindings/mmc/zx-dw-mshc.txt         | 35

>> ++++++++++++++++++++++

>>  1 file changed, 35 insertions(+)

>>  create mode 100644 Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>

>> diff --git a/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>> b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>> new file mode 100644

>> index 0000000..c175c4b

>> --- /dev/null

>> +++ b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>> @@ -0,0 +1,35 @@

>> +* ZTE specific extensions to the Synopsys Designware Mobile Storage

>> +  Host Controller

>> +

>> +The Synopsys designware mobile storage host controller is used to

>> interface

>> +a SoC with storage medium such as eMMC or SD/MMC cards. This file

>> documents

>> +differences between the core Synopsys dw mshc controller properties

>> described

>> +by synopsys-dw-mshc.txt and the properties used by the ZTE specific

>> +extensions to the Synopsys Designware Mobile Storage Host Controller.

>> +

>> +Required Properties:

>> +

>> +* compatible: should be

>> +       - "zte,zx296718-dw-mshc": for ZX SoCs

>> +

>> +Example:

>> +

>> +       mmc1: mmc@1110000 {

>> +               compatible = "zte,zx296718-dw-mshc";

>> +               #address-cells = <1>;

>> +               #size-cells = <0>;

>> +               reg = <0x01110000 0x1000>;

>> +               interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;

>> +               fifo-depth = <32>;

>> +               data-addr = <0x200>;

>> +               fifo-watermark-aligned;

>> +               bus-width = <4>;

>> +               clock-frequency = <50000000>;

>

>

> do you need both clock-frequency and max-frequency here?


According to dts document, clock-frequency is for clock configuration
when dw core probe. max-frequency is for mmc core to limit max
frequency for any cards at any time. Do you have any suggestion? Thank
you for your time!

>

>> +               clocks = <&topcrm SD0_AHB>, <&topcrm SD0_WCLK>;

>> +               clock-names = "biu", "ciu";

>> +               num-slots = <1>;

>> +               max-frequency = <50000000>;

>> +               cap-sdio-irq;

>> +               cap-sd-highspeed;

>> +               status = "disabled";

>> +       };

>>

>

>

> --

> Best Regards

> Shawn Lin

>

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jaehoon Chung Nov. 14, 2016, 10:04 a.m. UTC | #3
On 11/14/2016 07:00 PM, Jun Nie wrote:
> 2016-11-14 15:58 GMT+08:00 Shawn Lin <shawn.lin@rock-chips.com>:

>> On 2016/11/8 9:24, Jun Nie wrote:

>>>

>>> Document the device-tree binding of ZTE MMC host on

>>> ZX296718 SoC.

>>>

>>> Signed-off-by: Jun Nie <jun.nie@linaro.org>

>>> ---

>>>  .../devicetree/bindings/mmc/zx-dw-mshc.txt         | 35

>>> ++++++++++++++++++++++

>>>  1 file changed, 35 insertions(+)

>>>  create mode 100644 Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>>

>>> diff --git a/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>> b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>> new file mode 100644

>>> index 0000000..c175c4b

>>> --- /dev/null

>>> +++ b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>> @@ -0,0 +1,35 @@

>>> +* ZTE specific extensions to the Synopsys Designware Mobile Storage

>>> +  Host Controller

>>> +

>>> +The Synopsys designware mobile storage host controller is used to

>>> interface

>>> +a SoC with storage medium such as eMMC or SD/MMC cards. This file

>>> documents

>>> +differences between the core Synopsys dw mshc controller properties

>>> described

>>> +by synopsys-dw-mshc.txt and the properties used by the ZTE specific

>>> +extensions to the Synopsys Designware Mobile Storage Host Controller.

>>> +

>>> +Required Properties:

>>> +

>>> +* compatible: should be

>>> +       - "zte,zx296718-dw-mshc": for ZX SoCs

>>> +

>>> +Example:

>>> +

>>> +       mmc1: mmc@1110000 {

>>> +               compatible = "zte,zx296718-dw-mshc";

>>> +               #address-cells = <1>;

>>> +               #size-cells = <0>;

>>> +               reg = <0x01110000 0x1000>;

>>> +               interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;

>>> +               fifo-depth = <32>;

>>> +               data-addr = <0x200>;

>>> +               fifo-watermark-aligned;

>>> +               bus-width = <4>;

>>> +               clock-frequency = <50000000>;

>>

>>

>> do you need both clock-frequency and max-frequency here?

> 

> According to dts document, clock-frequency is for clock configuration

> when dw core probe. max-frequency is for mmc core to limit max

> frequency for any cards at any time. Do you have any suggestion? Thank

> you for your time!


As i know, Jun's comment is right. :)
clock-frequency should be used with clk_set_rate().

> 

>>

>>> +               clocks = <&topcrm SD0_AHB>, <&topcrm SD0_WCLK>;

>>> +               clock-names = "biu", "ciu";

>>> +               num-slots = <1>;

>>> +               max-frequency = <50000000>;

>>> +               cap-sdio-irq;

>>> +               cap-sd-highspeed;

>>> +               status = "disabled";

>>> +       };

>>>

>>

>>

>> --

>> Best Regards

>> Shawn Lin

>>

> 

> 

> 


--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Shawn Lin Nov. 15, 2016, 12:48 a.m. UTC | #4
On 2016/11/14 18:04, Jaehoon Chung wrote:
> On 11/14/2016 07:00 PM, Jun Nie wrote:

>> 2016-11-14 15:58 GMT+08:00 Shawn Lin <shawn.lin@rock-chips.com>:

>>> On 2016/11/8 9:24, Jun Nie wrote:

>>>>

>>>> Document the device-tree binding of ZTE MMC host on

>>>> ZX296718 SoC.

>>>>

>>>> Signed-off-by: Jun Nie <jun.nie@linaro.org>

>>>> ---

>>>>  .../devicetree/bindings/mmc/zx-dw-mshc.txt         | 35

>>>> ++++++++++++++++++++++

>>>>  1 file changed, 35 insertions(+)

>>>>  create mode 100644 Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>>>

>>>> diff --git a/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>>> b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>>> new file mode 100644

>>>> index 0000000..c175c4b

>>>> --- /dev/null

>>>> +++ b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>>> @@ -0,0 +1,35 @@

>>>> +* ZTE specific extensions to the Synopsys Designware Mobile Storage

>>>> +  Host Controller

>>>> +

>>>> +The Synopsys designware mobile storage host controller is used to

>>>> interface

>>>> +a SoC with storage medium such as eMMC or SD/MMC cards. This file

>>>> documents

>>>> +differences between the core Synopsys dw mshc controller properties

>>>> described

>>>> +by synopsys-dw-mshc.txt and the properties used by the ZTE specific

>>>> +extensions to the Synopsys Designware Mobile Storage Host Controller.

>>>> +

>>>> +Required Properties:

>>>> +

>>>> +* compatible: should be

>>>> +       - "zte,zx296718-dw-mshc": for ZX SoCs

>>>> +

>>>> +Example:

>>>> +

>>>> +       mmc1: mmc@1110000 {

>>>> +               compatible = "zte,zx296718-dw-mshc";

>>>> +               #address-cells = <1>;

>>>> +               #size-cells = <0>;

>>>> +               reg = <0x01110000 0x1000>;

>>>> +               interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;

>>>> +               fifo-depth = <32>;

>>>> +               data-addr = <0x200>;

>>>> +               fifo-watermark-aligned;

>>>> +               bus-width = <4>;

>>>> +               clock-frequency = <50000000>;

>>>

>>>

>>> do you need both clock-frequency and max-frequency here?

>>

>> According to dts document, clock-frequency is for clock configuration

>> when dw core probe. max-frequency is for mmc core to limit max

>> frequency for any cards at any time. Do you have any suggestion? Thank

>> you for your time!

>

> As i know, Jun's comment is right. :)

> clock-frequency should be used with clk_set_rate().


yup, I was thinking that should we reuse max-frequency instead of
clock-frequency in the future?  I saw most of the DT(I didn't check all
of them) assign clock-frequency to the same value as max of clock-
freq-min-max. I think it's pointless if the clock-frequency is different
from max-frequency as both of them will be setted via dw_mmc and finally
we only take min(clock-frequency, max-frquency). Was I missing
something?

What is your opinion, Jaehoon and Jun? :)

>

>>

>>>

>>>> +               clocks = <&topcrm SD0_AHB>, <&topcrm SD0_WCLK>;

>>>> +               clock-names = "biu", "ciu";

>>>> +               num-slots = <1>;

>>>> +               max-frequency = <50000000>;

>>>> +               cap-sdio-irq;

>>>> +               cap-sd-highspeed;

>>>> +               status = "disabled";

>>>> +       };

>>>>

>>>

>>>

>>> --

>>> Best Regards

>>> Shawn Lin

>>>

>>

>>

>>

>

> --

> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in

> the body of a message to majordomo@vger.kernel.org

> More majordomo info at  http://vger.kernel.org/majordomo-info.html

>



-- 
Best Regards
Shawn Lin

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jaehoon Chung Nov. 15, 2016, 5:21 a.m. UTC | #5
On 11/15/2016 09:48 AM, Shawn Lin wrote:
> On 2016/11/14 18:04, Jaehoon Chung wrote:

>> On 11/14/2016 07:00 PM, Jun Nie wrote:

>>> 2016-11-14 15:58 GMT+08:00 Shawn Lin <shawn.lin@rock-chips.com>:

>>>> On 2016/11/8 9:24, Jun Nie wrote:

>>>>>

>>>>> Document the device-tree binding of ZTE MMC host on

>>>>> ZX296718 SoC.

>>>>>

>>>>> Signed-off-by: Jun Nie <jun.nie@linaro.org>

>>>>> ---

>>>>>  .../devicetree/bindings/mmc/zx-dw-mshc.txt         | 35

>>>>> ++++++++++++++++++++++

>>>>>  1 file changed, 35 insertions(+)

>>>>>  create mode 100644 Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>>>>

>>>>> diff --git a/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>>>> b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>>>> new file mode 100644

>>>>> index 0000000..c175c4b

>>>>> --- /dev/null

>>>>> +++ b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>>>> @@ -0,0 +1,35 @@

>>>>> +* ZTE specific extensions to the Synopsys Designware Mobile Storage

>>>>> +  Host Controller

>>>>> +

>>>>> +The Synopsys designware mobile storage host controller is used to

>>>>> interface

>>>>> +a SoC with storage medium such as eMMC or SD/MMC cards. This file

>>>>> documents

>>>>> +differences between the core Synopsys dw mshc controller properties

>>>>> described

>>>>> +by synopsys-dw-mshc.txt and the properties used by the ZTE specific

>>>>> +extensions to the Synopsys Designware Mobile Storage Host Controller.

>>>>> +

>>>>> +Required Properties:

>>>>> +

>>>>> +* compatible: should be

>>>>> +       - "zte,zx296718-dw-mshc": for ZX SoCs

>>>>> +

>>>>> +Example:

>>>>> +

>>>>> +       mmc1: mmc@1110000 {

>>>>> +               compatible = "zte,zx296718-dw-mshc";

>>>>> +               #address-cells = <1>;

>>>>> +               #size-cells = <0>;

>>>>> +               reg = <0x01110000 0x1000>;

>>>>> +               interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;

>>>>> +               fifo-depth = <32>;

>>>>> +               data-addr = <0x200>;

>>>>> +               fifo-watermark-aligned;

>>>>> +               bus-width = <4>;

>>>>> +               clock-frequency = <50000000>;

>>>>

>>>>

>>>> do you need both clock-frequency and max-frequency here?

>>>

>>> According to dts document, clock-frequency is for clock configuration

>>> when dw core probe. max-frequency is for mmc core to limit max

>>> frequency for any cards at any time. Do you have any suggestion? Thank

>>> you for your time!

>>

>> As i know, Jun's comment is right. :)

>> clock-frequency should be used with clk_set_rate().

> 

> yup, I was thinking that should we reuse max-frequency instead of

> clock-frequency in the future?  I saw most of the DT(I didn't check all

> of them) assign clock-frequency to the same value as max of clock-

> freq-min-max. I think it's pointless if the clock-frequency is different

> from max-frequency as both of them will be setted via dw_mmc and finally

> we only take min(clock-frequency, max-frquency). Was I missing

> something?


Well, clock-frequency is for setting CMU. but max-frequency is not really used for CMU.
For example, clock-frequency is 100MHz. Max-frequency is 50MHz.
It's possible to use. then dwmmc controller should divide to 2 for max-frequency.

There are too many cases. Source clock can be 400MHz or 200MHz..etc..
but maximum clock is decided according to busmode.

I'm not sure because i didn't have HW knowledge..
but in my experience, 
1) 400MHz/2 = 200MHz,
2) 800MHz/4 = 200MHz.

1) and 2) are same value as 200MHz. but those clock phase might be a little difference.

So i want to keep the clock-frequency for setting the initial CMU value.
What your opinion? :)

Best Regards,
Jaehoon Chung

> 

> What is your opinion, Jaehoon and Jun? :)

> 

>>

>>>

>>>>

>>>>> +               clocks = <&topcrm SD0_AHB>, <&topcrm SD0_WCLK>;

>>>>> +               clock-names = "biu", "ciu";

>>>>> +               num-slots = <1>;

>>>>> +               max-frequency = <50000000>;

>>>>> +               cap-sdio-irq;

>>>>> +               cap-sd-highspeed;

>>>>> +               status = "disabled";

>>>>> +       };

>>>>>

>>>>

>>>>

>>>> -- 

>>>> Best Regards

>>>> Shawn Lin

>>>>

>>>

>>>

>>>

>>

>> -- 

>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in

>> the body of a message to majordomo@vger.kernel.org

>> More majordomo info at  http://vger.kernel.org/majordomo-info.html

>>

> 

> 


--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Shawn Lin Nov. 15, 2016, 7:49 a.m. UTC | #6
On 2016/11/15 13:21, Jaehoon Chung wrote:
> On 11/15/2016 09:48 AM, Shawn Lin wrote:

>> On 2016/11/14 18:04, Jaehoon Chung wrote:

>>> On 11/14/2016 07:00 PM, Jun Nie wrote:

>>>> 2016-11-14 15:58 GMT+08:00 Shawn Lin <shawn.lin@rock-chips.com>:

>>>>> On 2016/11/8 9:24, Jun Nie wrote:

>>>>>>

>>>>>> Document the device-tree binding of ZTE MMC host on

>>>>>> ZX296718 SoC.

>>>>>>

>>>>>> Signed-off-by: Jun Nie <jun.nie@linaro.org>

>>>>>> ---

>>>>>>  .../devicetree/bindings/mmc/zx-dw-mshc.txt         | 35

>>>>>> ++++++++++++++++++++++

>>>>>>  1 file changed, 35 insertions(+)

>>>>>>  create mode 100644 Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>>>>>

>>>>>> diff --git a/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>>>>> b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>>>>> new file mode 100644

>>>>>> index 0000000..c175c4b

>>>>>> --- /dev/null

>>>>>> +++ b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>>>>> @@ -0,0 +1,35 @@

>>>>>> +* ZTE specific extensions to the Synopsys Designware Mobile Storage

>>>>>> +  Host Controller

>>>>>> +

>>>>>> +The Synopsys designware mobile storage host controller is used to

>>>>>> interface

>>>>>> +a SoC with storage medium such as eMMC or SD/MMC cards. This file

>>>>>> documents

>>>>>> +differences between the core Synopsys dw mshc controller properties

>>>>>> described

>>>>>> +by synopsys-dw-mshc.txt and the properties used by the ZTE specific

>>>>>> +extensions to the Synopsys Designware Mobile Storage Host Controller.

>>>>>> +

>>>>>> +Required Properties:

>>>>>> +

>>>>>> +* compatible: should be

>>>>>> +       - "zte,zx296718-dw-mshc": for ZX SoCs

>>>>>> +

>>>>>> +Example:

>>>>>> +

>>>>>> +       mmc1: mmc@1110000 {

>>>>>> +               compatible = "zte,zx296718-dw-mshc";

>>>>>> +               #address-cells = <1>;

>>>>>> +               #size-cells = <0>;

>>>>>> +               reg = <0x01110000 0x1000>;

>>>>>> +               interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;

>>>>>> +               fifo-depth = <32>;

>>>>>> +               data-addr = <0x200>;

>>>>>> +               fifo-watermark-aligned;

>>>>>> +               bus-width = <4>;

>>>>>> +               clock-frequency = <50000000>;

>>>>>

>>>>>

>>>>> do you need both clock-frequency and max-frequency here?

>>>>

>>>> According to dts document, clock-frequency is for clock configuration

>>>> when dw core probe. max-frequency is for mmc core to limit max

>>>> frequency for any cards at any time. Do you have any suggestion? Thank

>>>> you for your time!

>>>

>>> As i know, Jun's comment is right. :)

>>> clock-frequency should be used with clk_set_rate().

>>

>> yup, I was thinking that should we reuse max-frequency instead of

>> clock-frequency in the future?  I saw most of the DT(I didn't check all

>> of them) assign clock-frequency to the same value as max of clock-

>> freq-min-max. I think it's pointless if the clock-frequency is different

>> from max-frequency as both of them will be setted via dw_mmc and finally

>> we only take min(clock-frequency, max-frquency). Was I missing

>> something?

>

> Well, clock-frequency is for setting CMU. but max-frequency is not really used for CMU.

> For example, clock-frequency is 100MHz. Max-frequency is 50MHz.

> It's possible to use. then dwmmc controller should divide to 2 for max-frequency.


yes, but why shouldn't we ask clock unit to generate max-frequency, so
we don't need to divide 2 here?

>

> There are too many cases. Source clock can be 400MHz or 200MHz..etc..

> but maximum clock is decided according to busmode.

>

> I'm not sure because i didn't have HW knowledge..

> but in my experience,

> 1) 400MHz/2 = 200MHz,

> 2) 800MHz/4 = 200MHz.

>

> 1) and 2) are same value as 200MHz. but those clock phase might be a little difference.


clock rate shouldn't be problem but the clock phase maybe according to
the different clock design.

>

> So i want to keep the clock-frequency for setting the initial CMU value.

> What your opinion? :)


it' okay and I was just think that
(1) most of the host drivers direct use max-frequenct(f_max) for
setting clock source rate and use internal divider to generate other 
different rate. Also you can look at mmc_set_clock function.
That impiles they doesn't care the phase or any differences at all.
(2) If clock-frequency may be a little different with max-frequency,
but I now check all the DT using clock-frequency with clock-freq-min-max
before your cleanup and comfirm that all of the clock-frequency(s) are
the same as the max of clock-freq-min-max, namely max-frequency after
your cleanup. That implies that there are no difference between
setting source rate with clock-frequency and with max-frequency.


Anyway, that is just some random thoughts and shouldn't block this
patchset. We could disscuss this topic later. :)

>

> Best Regards,

> Jaehoon Chung

>

>>

>> What is your opinion, Jaehoon and Jun? :)

>>

>>>

>>>>

>>>>>

>>>>>> +               clocks = <&topcrm SD0_AHB>, <&topcrm SD0_WCLK>;

>>>>>> +               clock-names = "biu", "ciu";

>>>>>> +               num-slots = <1>;

>>>>>> +               max-frequency = <50000000>;

>>>>>> +               cap-sdio-irq;

>>>>>> +               cap-sd-highspeed;

>>>>>> +               status = "disabled";

>>>>>> +       };

>>>>>>

>>>>>

>>>>>

>>>>> --

>>>>> Best Regards

>>>>> Shawn Lin

>>>>>

>>>>

>>>>

>>>>

>>>

>>> --

>>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in

>>> the body of a message to majordomo@vger.kernel.org

>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html

>>>

>>

>>

>

> --

> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in

> the body of a message to majordomo@vger.kernel.org

> More majordomo info at  http://vger.kernel.org/majordomo-info.html

>



-- 
Best Regards
Shawn Lin

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jaehoon Chung Nov. 16, 2016, 1:54 a.m. UTC | #7
On 11/15/2016 04:49 PM, Shawn Lin wrote:
> On 2016/11/15 13:21, Jaehoon Chung wrote:

>> On 11/15/2016 09:48 AM, Shawn Lin wrote:

>>> On 2016/11/14 18:04, Jaehoon Chung wrote:

>>>> On 11/14/2016 07:00 PM, Jun Nie wrote:

>>>>> 2016-11-14 15:58 GMT+08:00 Shawn Lin <shawn.lin@rock-chips.com>:

>>>>>> On 2016/11/8 9:24, Jun Nie wrote:

>>>>>>>

>>>>>>> Document the device-tree binding of ZTE MMC host on

>>>>>>> ZX296718 SoC.

>>>>>>>

>>>>>>> Signed-off-by: Jun Nie <jun.nie@linaro.org>

>>>>>>> ---

>>>>>>>  .../devicetree/bindings/mmc/zx-dw-mshc.txt         | 35

>>>>>>> ++++++++++++++++++++++

>>>>>>>  1 file changed, 35 insertions(+)

>>>>>>>  create mode 100644 Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>>>>>>

>>>>>>> diff --git a/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>>>>>> b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>>>>>> new file mode 100644

>>>>>>> index 0000000..c175c4b

>>>>>>> --- /dev/null

>>>>>>> +++ b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt

>>>>>>> @@ -0,0 +1,35 @@

>>>>>>> +* ZTE specific extensions to the Synopsys Designware Mobile Storage

>>>>>>> +  Host Controller

>>>>>>> +

>>>>>>> +The Synopsys designware mobile storage host controller is used to

>>>>>>> interface

>>>>>>> +a SoC with storage medium such as eMMC or SD/MMC cards. This file

>>>>>>> documents

>>>>>>> +differences between the core Synopsys dw mshc controller properties

>>>>>>> described

>>>>>>> +by synopsys-dw-mshc.txt and the properties used by the ZTE specific

>>>>>>> +extensions to the Synopsys Designware Mobile Storage Host Controller.

>>>>>>> +

>>>>>>> +Required Properties:

>>>>>>> +

>>>>>>> +* compatible: should be

>>>>>>> +       - "zte,zx296718-dw-mshc": for ZX SoCs

>>>>>>> +

>>>>>>> +Example:

>>>>>>> +

>>>>>>> +       mmc1: mmc@1110000 {

>>>>>>> +               compatible = "zte,zx296718-dw-mshc";

>>>>>>> +               #address-cells = <1>;

>>>>>>> +               #size-cells = <0>;

>>>>>>> +               reg = <0x01110000 0x1000>;

>>>>>>> +               interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;

>>>>>>> +               fifo-depth = <32>;

>>>>>>> +               data-addr = <0x200>;

>>>>>>> +               fifo-watermark-aligned;

>>>>>>> +               bus-width = <4>;

>>>>>>> +               clock-frequency = <50000000>;

>>>>>>

>>>>>>

>>>>>> do you need both clock-frequency and max-frequency here?

>>>>>

>>>>> According to dts document, clock-frequency is for clock configuration

>>>>> when dw core probe. max-frequency is for mmc core to limit max

>>>>> frequency for any cards at any time. Do you have any suggestion? Thank

>>>>> you for your time!

>>>>

>>>> As i know, Jun's comment is right. :)

>>>> clock-frequency should be used with clk_set_rate().

>>>

>>> yup, I was thinking that should we reuse max-frequency instead of

>>> clock-frequency in the future?  I saw most of the DT(I didn't check all

>>> of them) assign clock-frequency to the same value as max of clock-

>>> freq-min-max. I think it's pointless if the clock-frequency is different

>>> from max-frequency as both of them will be setted via dw_mmc and finally

>>> we only take min(clock-frequency, max-frquency). Was I missing

>>> something?

>>

>> Well, clock-frequency is for setting CMU. but max-frequency is not really used for CMU.

>> For example, clock-frequency is 100MHz. Max-frequency is 50MHz.

>> It's possible to use. then dwmmc controller should divide to 2 for max-frequency.

> 

> yes, but why shouldn't we ask clock unit to generate max-frequency, so

> we don't need to divide 2 here?

> 

>>

>> There are too many cases. Source clock can be 400MHz or 200MHz..etc..

>> but maximum clock is decided according to busmode.

>>

>> I'm not sure because i didn't have HW knowledge..

>> but in my experience,

>> 1) 400MHz/2 = 200MHz,

>> 2) 800MHz/4 = 200MHz.

>>

>> 1) and 2) are same value as 200MHz. but those clock phase might be a little difference.

> 

> clock rate shouldn't be problem but the clock phase maybe according to

> the different clock design.

> 

>>

>> So i want to keep the clock-frequency for setting the initial CMU value.

>> What your opinion? :)

> 

> it' okay and I was just think that

> (1) most of the host drivers direct use max-frequenct(f_max) for

> setting clock source rate and use internal divider to generate other different rate. Also you can look at mmc_set_clock function.

> That impiles they doesn't care the phase or any differences at all.

> (2) If clock-frequency may be a little different with max-frequency,

> but I now check all the DT using clock-frequency with clock-freq-min-max

> before your cleanup and comfirm that all of the clock-frequency(s) are

> the same as the max of clock-freq-min-max, namely max-frequency after

> your cleanup. That implies that there are no difference between

> setting source rate with clock-frequency and with max-frequency.

> 

> 

> Anyway, that is just some random thoughts and shouldn't block this

> patchset. We could disscuss this topic later. :)


Yes, we can discuss about this in future. :)

Best Regards,
Jaehoon Chung

> 

>>

>> Best Regards,

>> Jaehoon Chung

>>

>>>

>>> What is your opinion, Jaehoon and Jun? :)

>>>

>>>>

>>>>>

>>>>>>

>>>>>>> +               clocks = <&topcrm SD0_AHB>, <&topcrm SD0_WCLK>;

>>>>>>> +               clock-names = "biu", "ciu";

>>>>>>> +               num-slots = <1>;

>>>>>>> +               max-frequency = <50000000>;

>>>>>>> +               cap-sdio-irq;

>>>>>>> +               cap-sd-highspeed;

>>>>>>> +               status = "disabled";

>>>>>>> +       };

>>>>>>>

>>>>>>

>>>>>>

>>>>>> -- 

>>>>>> Best Regards

>>>>>> Shawn Lin

>>>>>>

>>>>>

>>>>>

>>>>>

>>>>

>>>> -- 

>>>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in

>>>> the body of a message to majordomo@vger.kernel.org

>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html

>>>>

>>>

>>>

>>

>> -- 

>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in

>> the body of a message to majordomo@vger.kernel.org

>> More majordomo info at  http://vger.kernel.org/majordomo-info.html

>>

> 

> 


--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt
new file mode 100644
index 0000000..c175c4b
--- /dev/null
+++ b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt
@@ -0,0 +1,35 @@ 
+* ZTE specific extensions to the Synopsys Designware Mobile Storage
+  Host Controller
+
+The Synopsys designware mobile storage host controller is used to interface
+a SoC with storage medium such as eMMC or SD/MMC cards. This file documents
+differences between the core Synopsys dw mshc controller properties described
+by synopsys-dw-mshc.txt and the properties used by the ZTE specific
+extensions to the Synopsys Designware Mobile Storage Host Controller.
+
+Required Properties:
+
+* compatible: should be
+	- "zte,zx296718-dw-mshc": for ZX SoCs
+
+Example:
+
+	mmc1: mmc@1110000 {
+		compatible = "zte,zx296718-dw-mshc";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		reg = <0x01110000 0x1000>;
+		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+		fifo-depth = <32>;
+		data-addr = <0x200>;
+		fifo-watermark-aligned;
+		bus-width = <4>;
+		clock-frequency = <50000000>;
+		clocks = <&topcrm SD0_AHB>, <&topcrm SD0_WCLK>;
+		clock-names = "biu", "ciu";
+		num-slots = <1>;
+		max-frequency = <50000000>;
+		cap-sdio-irq;
+		cap-sd-highspeed;
+		status = "disabled";
+	};