diff mbox

sdhci-fujitsu: add support for setting the CMD_DAT_DELAY attribute

Message ID 20171101002132.13500-1-ard.biesheuvel@linaro.org
State New
Headers show

Commit Message

Ard Biesheuvel Nov. 1, 2017, 12:21 a.m. UTC
The Socionext SynQuacer SoC inherits this IP from Fujitsu, but
requires the F_SDH30_CMD_DAT_DELAY bit to be set in the
F_SDH30_ESD_CONTROL control register.

So let's add an optional property to this device's binding, and
set the attribute if it is present in the DT node.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt |  2 ++
 drivers/mmc/host/sdhci_f_sdh30.c                        | 18 +++++++++++++++++-
 2 files changed, 19 insertions(+), 1 deletion(-)

Comments

Rob Herring Nov. 2, 2017, 12:08 a.m. UTC | #1
On Wed, Nov 01, 2017 at 12:21:32AM +0000, Ard Biesheuvel wrote:
> The Socionext SynQuacer SoC inherits this IP from Fujitsu, but
> requires the F_SDH30_CMD_DAT_DELAY bit to be set in the
> F_SDH30_ESD_CONTROL control register.
> 
> So let's add an optional property to this device's binding, and
> set the attribute if it is present in the DT node.
> 
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> ---
>  Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt |  2 ++
>  drivers/mmc/host/sdhci_f_sdh30.c                        | 18 +++++++++++++++++-
>  2 files changed, 19 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
> index de2c53cff4f1..9ad02f743ad0 100644
> --- a/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
> +++ b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
> @@ -15,6 +15,8 @@ Required properties:
>  Optional properties:
>  - vqmmc-supply: phandle to the regulator device tree node, mentioned
>    as the VCCQ/VDD_IO supply in the eMMC/SD specs.
> +- cmd-dat-delay-select: boolean property indicating that this host requires
> +  the CMD_DAT_DELAY control to be enabled.

Needs a vendor prefix unless this is a standard SDHCI bit (in which 
case it should be documented in a common spot).

Rob
--
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
Ard Biesheuvel Nov. 2, 2017, 12:12 a.m. UTC | #2
On 2 November 2017 at 00:08, Rob Herring <robh@kernel.org> wrote:
> On Wed, Nov 01, 2017 at 12:21:32AM +0000, Ard Biesheuvel wrote:
>> The Socionext SynQuacer SoC inherits this IP from Fujitsu, but
>> requires the F_SDH30_CMD_DAT_DELAY bit to be set in the
>> F_SDH30_ESD_CONTROL control register.
>>
>> So let's add an optional property to this device's binding, and
>> set the attribute if it is present in the DT node.
>>
>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>> ---
>>  Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt |  2 ++
>>  drivers/mmc/host/sdhci_f_sdh30.c                        | 18 +++++++++++++++++-
>>  2 files changed, 19 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>> index de2c53cff4f1..9ad02f743ad0 100644
>> --- a/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>> +++ b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>> @@ -15,6 +15,8 @@ Required properties:
>>  Optional properties:
>>  - vqmmc-supply: phandle to the regulator device tree node, mentioned
>>    as the VCCQ/VDD_IO supply in the eMMC/SD specs.
>> +- cmd-dat-delay-select: boolean property indicating that this host requires
>> +  the CMD_DAT_DELAY control to be enabled.
>
> Needs a vendor prefix unless this is a standard SDHCI bit (in which
> case it should be documented in a common spot).
>

I suspect this is a non-standard thing, so I'll add the fujitsu prefix. Ulf?
--
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
Ulf Hansson Nov. 2, 2017, 10:48 a.m. UTC | #3
On 2 November 2017 at 01:12, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
> On 2 November 2017 at 00:08, Rob Herring <robh@kernel.org> wrote:
>> On Wed, Nov 01, 2017 at 12:21:32AM +0000, Ard Biesheuvel wrote:
>>> The Socionext SynQuacer SoC inherits this IP from Fujitsu, but
>>> requires the F_SDH30_CMD_DAT_DELAY bit to be set in the
>>> F_SDH30_ESD_CONTROL control register.
>>>
>>> So let's add an optional property to this device's binding, and
>>> set the attribute if it is present in the DT node.
>>>
>>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>>> ---
>>>  Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt |  2 ++
>>>  drivers/mmc/host/sdhci_f_sdh30.c                        | 18 +++++++++++++++++-
>>>  2 files changed, 19 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>>> index de2c53cff4f1..9ad02f743ad0 100644
>>> --- a/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>>> +++ b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>>> @@ -15,6 +15,8 @@ Required properties:
>>>  Optional properties:
>>>  - vqmmc-supply: phandle to the regulator device tree node, mentioned
>>>    as the VCCQ/VDD_IO supply in the eMMC/SD specs.
>>> +- cmd-dat-delay-select: boolean property indicating that this host requires
>>> +  the CMD_DAT_DELAY control to be enabled.
>>
>> Needs a vendor prefix unless this is a standard SDHCI bit (in which
>> case it should be documented in a common spot).
>>
>
> I suspect this is a non-standard thing, so I'll add the fujitsu prefix. Ulf?

This is specific to the Fujitsu variant.

However, what puzzles me is why this bit is needed for the Socionext
SynQuacer SoC, but not for other SoCs that uses this IP. That seems
weird (probably wrong).

Moreover, the F_SDH30_CMD_DAT_DELAY register define is already there,
so I would rather suspect that it's something that did got fully
implemented. In other words, I don't think you need a new DT binding,
but rather try to implement it generically for the sdhci-f_sdh30
driver. Do you think that will work?

Kind regards
Uffe
--
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
Ard Biesheuvel Nov. 2, 2017, 10:49 a.m. UTC | #4
On 2 November 2017 at 10:48, Ulf Hansson <ulf.hansson@linaro.org> wrote:
> On 2 November 2017 at 01:12, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
>> On 2 November 2017 at 00:08, Rob Herring <robh@kernel.org> wrote:
>>> On Wed, Nov 01, 2017 at 12:21:32AM +0000, Ard Biesheuvel wrote:
>>>> The Socionext SynQuacer SoC inherits this IP from Fujitsu, but
>>>> requires the F_SDH30_CMD_DAT_DELAY bit to be set in the
>>>> F_SDH30_ESD_CONTROL control register.
>>>>
>>>> So let's add an optional property to this device's binding, and
>>>> set the attribute if it is present in the DT node.
>>>>
>>>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>>>> ---
>>>>  Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt |  2 ++
>>>>  drivers/mmc/host/sdhci_f_sdh30.c                        | 18 +++++++++++++++++-
>>>>  2 files changed, 19 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>>>> index de2c53cff4f1..9ad02f743ad0 100644
>>>> --- a/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>>>> +++ b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>>>> @@ -15,6 +15,8 @@ Required properties:
>>>>  Optional properties:
>>>>  - vqmmc-supply: phandle to the regulator device tree node, mentioned
>>>>    as the VCCQ/VDD_IO supply in the eMMC/SD specs.
>>>> +- cmd-dat-delay-select: boolean property indicating that this host requires
>>>> +  the CMD_DAT_DELAY control to be enabled.
>>>
>>> Needs a vendor prefix unless this is a standard SDHCI bit (in which
>>> case it should be documented in a common spot).
>>>
>>
>> I suspect this is a non-standard thing, so I'll add the fujitsu prefix. Ulf?
>
> This is specific to the Fujitsu variant.
>
> However, what puzzles me is why this bit is needed for the Socionext
> SynQuacer SoC, but not for other SoCs that uses this IP. That seems
> weird (probably wrong).
>
> Moreover, the F_SDH30_CMD_DAT_DELAY register define is already there,
> so I would rather suspect that it's something that did got fully
> implemented. In other words, I don't think you need a new DT binding,
> but rather try to implement it generically for the sdhci-f_sdh30
> driver. Do you think that will work?
>

Do you mean set it unconditionally? That works for me, but I have no
way of testing whether it still works on other SoCs that use this IP.
--
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
Ulf Hansson Nov. 2, 2017, 11 a.m. UTC | #5
+ Vincent Yang (several emails, don't know which works)

On 2 November 2017 at 11:49, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
> On 2 November 2017 at 10:48, Ulf Hansson <ulf.hansson@linaro.org> wrote:
>> On 2 November 2017 at 01:12, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
>>> On 2 November 2017 at 00:08, Rob Herring <robh@kernel.org> wrote:
>>>> On Wed, Nov 01, 2017 at 12:21:32AM +0000, Ard Biesheuvel wrote:
>>>>> The Socionext SynQuacer SoC inherits this IP from Fujitsu, but
>>>>> requires the F_SDH30_CMD_DAT_DELAY bit to be set in the
>>>>> F_SDH30_ESD_CONTROL control register.
>>>>>
>>>>> So let's add an optional property to this device's binding, and
>>>>> set the attribute if it is present in the DT node.
>>>>>
>>>>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>>>>> ---
>>>>>  Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt |  2 ++
>>>>>  drivers/mmc/host/sdhci_f_sdh30.c                        | 18 +++++++++++++++++-
>>>>>  2 files changed, 19 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>>>>> index de2c53cff4f1..9ad02f743ad0 100644
>>>>> --- a/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>>>>> +++ b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>>>>> @@ -15,6 +15,8 @@ Required properties:
>>>>>  Optional properties:
>>>>>  - vqmmc-supply: phandle to the regulator device tree node, mentioned
>>>>>    as the VCCQ/VDD_IO supply in the eMMC/SD specs.
>>>>> +- cmd-dat-delay-select: boolean property indicating that this host requires
>>>>> +  the CMD_DAT_DELAY control to be enabled.
>>>>
>>>> Needs a vendor prefix unless this is a standard SDHCI bit (in which
>>>> case it should be documented in a common spot).
>>>>
>>>
>>> I suspect this is a non-standard thing, so I'll add the fujitsu prefix. Ulf?
>>
>> This is specific to the Fujitsu variant.
>>
>> However, what puzzles me is why this bit is needed for the Socionext
>> SynQuacer SoC, but not for other SoCs that uses this IP. That seems
>> weird (probably wrong).
>>
>> Moreover, the F_SDH30_CMD_DAT_DELAY register define is already there,
>> so I would rather suspect that it's something that did got fully
>> implemented. In other words, I don't think you need a new DT binding,
>> but rather try to implement it generically for the sdhci-f_sdh30
>> driver. Do you think that will work?
>>
>
> Do you mean set it unconditionally? That works for me, but I have no

Yes.

> way of testing whether it still works on other SoCs that use this IP.

Me neither!

Apparently there are no DTS in the kernel git that uses the
"fujitsu,mb86s70-sdhci-3.0".

I looped in Vincent Yang, let's hope he can provide us with some more
information.

Kind regards
Uffe
--
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
Vincent Yang Nov. 3, 2017, 3:29 a.m. UTC | #6
2017-11-02 19:00 GMT+08:00 Ulf Hansson <ulf.hansson@linaro.org>:
> + Vincent Yang (several emails, don't know which works)
>
> On 2 November 2017 at 11:49, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
>> On 2 November 2017 at 10:48, Ulf Hansson <ulf.hansson@linaro.org> wrote:
>>> On 2 November 2017 at 01:12, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
>>>> On 2 November 2017 at 00:08, Rob Herring <robh@kernel.org> wrote:
>>>>> On Wed, Nov 01, 2017 at 12:21:32AM +0000, Ard Biesheuvel wrote:
>>>>>> The Socionext SynQuacer SoC inherits this IP from Fujitsu, but
>>>>>> requires the F_SDH30_CMD_DAT_DELAY bit to be set in the
>>>>>> F_SDH30_ESD_CONTROL control register.
>>>>>>
>>>>>> So let's add an optional property to this device's binding, and
>>>>>> set the attribute if it is present in the DT node.
>>>>>>
>>>>>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>>>>>> ---
>>>>>>  Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt |  2 ++
>>>>>>  drivers/mmc/host/sdhci_f_sdh30.c                        | 18 +++++++++++++++++-
>>>>>>  2 files changed, 19 insertions(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>>>>>> index de2c53cff4f1..9ad02f743ad0 100644
>>>>>> --- a/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>>>>>> +++ b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>>>>>> @@ -15,6 +15,8 @@ Required properties:
>>>>>>  Optional properties:
>>>>>>  - vqmmc-supply: phandle to the regulator device tree node, mentioned
>>>>>>    as the VCCQ/VDD_IO supply in the eMMC/SD specs.
>>>>>> +- cmd-dat-delay-select: boolean property indicating that this host requires
>>>>>> +  the CMD_DAT_DELAY control to be enabled.
>>>>>
>>>>> Needs a vendor prefix unless this is a standard SDHCI bit (in which
>>>>> case it should be documented in a common spot).
>>>>>
>>>>
>>>> I suspect this is a non-standard thing, so I'll add the fujitsu prefix. Ulf?
>>>
>>> This is specific to the Fujitsu variant.
>>>
>>> However, what puzzles me is why this bit is needed for the Socionext
>>> SynQuacer SoC, but not for other SoCs that uses this IP. That seems
>>> weird (probably wrong).
>>>
>>> Moreover, the F_SDH30_CMD_DAT_DELAY register define is already there,
>>> so I would rather suspect that it's something that did got fully
>>> implemented. In other words, I don't think you need a new DT binding,
>>> but rather try to implement it generically for the sdhci-f_sdh30
>>> driver. Do you think that will work?
>>>
>>
>> Do you mean set it unconditionally? That works for me, but I have no
>
> Yes.
>
>> way of testing whether it still works on other SoCs that use this IP.
>
> Me neither!

Hi all, I can not yet get contact with IP owner because it is a
holiday in Japan.
Around two years ago, F_SDH30_CMD_DAT_DELAY was a new feature of this IP.
I will update the latest information as soon as I get it.

>
> Apparently there are no DTS in the kernel git that uses the
> "fujitsu,mb86s70-sdhci-3.0".

Around two years ago, sdhci_f_sdh30_driver was a portion for mb86s70 SoC
patch series, but finally the patch series did not fully go upstream.

Kind regards
Vincent

>
> I looped in Vincent Yang, let's hope he can provide us with some more
> information.
>
> Kind regards
> Uffe
--
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
Vincent Yang Nov. 6, 2017, 2:54 a.m. UTC | #7
2017-11-03 11:29 GMT+08:00 Vincent Yang <vincent.cw.yang@gmail.com>:
> 2017-11-02 19:00 GMT+08:00 Ulf Hansson <ulf.hansson@linaro.org>:
>> + Vincent Yang (several emails, don't know which works)
>>
>> On 2 November 2017 at 11:49, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
>>> On 2 November 2017 at 10:48, Ulf Hansson <ulf.hansson@linaro.org> wrote:
>>>> On 2 November 2017 at 01:12, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
>>>>> On 2 November 2017 at 00:08, Rob Herring <robh@kernel.org> wrote:
>>>>>> On Wed, Nov 01, 2017 at 12:21:32AM +0000, Ard Biesheuvel wrote:
>>>>>>> The Socionext SynQuacer SoC inherits this IP from Fujitsu, but
>>>>>>> requires the F_SDH30_CMD_DAT_DELAY bit to be set in the
>>>>>>> F_SDH30_ESD_CONTROL control register.
>>>>>>>
>>>>>>> So let's add an optional property to this device's binding, and
>>>>>>> set the attribute if it is present in the DT node.
>>>>>>>
>>>>>>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>>>>>>> ---
>>>>>>>  Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt |  2 ++
>>>>>>>  drivers/mmc/host/sdhci_f_sdh30.c                        | 18 +++++++++++++++++-
>>>>>>>  2 files changed, 19 insertions(+), 1 deletion(-)
>>>>>>>
>>>>>>> diff --git a/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>>>>>>> index de2c53cff4f1..9ad02f743ad0 100644
>>>>>>> --- a/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>>>>>>> +++ b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
>>>>>>> @@ -15,6 +15,8 @@ Required properties:
>>>>>>>  Optional properties:
>>>>>>>  - vqmmc-supply: phandle to the regulator device tree node, mentioned
>>>>>>>    as the VCCQ/VDD_IO supply in the eMMC/SD specs.
>>>>>>> +- cmd-dat-delay-select: boolean property indicating that this host requires
>>>>>>> +  the CMD_DAT_DELAY control to be enabled.
>>>>>>
>>>>>> Needs a vendor prefix unless this is a standard SDHCI bit (in which
>>>>>> case it should be documented in a common spot).
>>>>>>
>>>>>
>>>>> I suspect this is a non-standard thing, so I'll add the fujitsu prefix. Ulf?
>>>>
>>>> This is specific to the Fujitsu variant.
>>>>
>>>> However, what puzzles me is why this bit is needed for the Socionext
>>>> SynQuacer SoC, but not for other SoCs that uses this IP. That seems
>>>> weird (probably wrong).
>>>>
>>>> Moreover, the F_SDH30_CMD_DAT_DELAY register define is already there,
>>>> so I would rather suspect that it's something that did got fully
>>>> implemented. In other words, I don't think you need a new DT binding,
>>>> but rather try to implement it generically for the sdhci-f_sdh30
>>>> driver. Do you think that will work?
>>>>
>>>
>>> Do you mean set it unconditionally? That works for me, but I have no
>>
>> Yes.
>>
>>> way of testing whether it still works on other SoCs that use this IP.
>>
>> Me neither!
>
> Hi all, I can not yet get contact with IP owner because it is a
> holiday in Japan.
> Around two years ago, F_SDH30_CMD_DAT_DELAY was a new feature of this IP.
> I will update the latest information as soon as I get it.
>
I got a response from IP owner.
He explains F_SDH30_CMD_DAT_DELAY is intended to adjust signal timing of
CMD/DAT lines, and it is necessary to change its value according to
SoC/board design.
So he advises us to make F_SDH30_CMD_DAT_DELAY adjustable by a DT binding.

Kind regards
Vincent

>>
>> Apparently there are no DTS in the kernel git that uses the
>> "fujitsu,mb86s70-sdhci-3.0".
>
> Around two years ago, sdhci_f_sdh30_driver was a portion for mb86s70 SoC
> patch series, but finally the patch series did not fully go upstream.
>
> Kind regards
> Vincent
>
>>
>> I looped in Vincent Yang, let's hope he can provide us with some more
>> information.
>>
>> Kind regards
>> Uffe
--
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
Ulf Hansson Nov. 6, 2017, 7:17 a.m. UTC | #8
[...]

>>>>
>>>> Do you mean set it unconditionally? That works for me, but I have no
>>>
>>> Yes.
>>>
>>>> way of testing whether it still works on other SoCs that use this IP.
>>>
>>> Me neither!
>>
>> Hi all, I can not yet get contact with IP owner because it is a
>> holiday in Japan.
>> Around two years ago, F_SDH30_CMD_DAT_DELAY was a new feature of this IP.
>> I will update the latest information as soon as I get it.
>>
> I got a response from IP owner.
> He explains F_SDH30_CMD_DAT_DELAY is intended to adjust signal timing of
> CMD/DAT lines, and it is necessary to change its value according to
> SoC/board design.
> So he advises us to make F_SDH30_CMD_DAT_DELAY adjustable by a DT binding.
>
> Kind regards
> Vincent
>
>>>
>>> Apparently there are no DTS in the kernel git that uses the
>>> "fujitsu,mb86s70-sdhci-3.0".
>>
>> Around two years ago, sdhci_f_sdh30_driver was a portion for mb86s70 SoC
>> patch series, but finally the patch series did not fully go upstream.
>>

Vincent, thanks for all the help in this!

Ard, one thing, could you please split the DT doc change into a
separate patch, preceding the change that actually do the parsing of
the new binding.

Kind regards
Uffe
--
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
Ard Biesheuvel Nov. 6, 2017, 10:46 a.m. UTC | #9
On 6 November 2017 at 07:17, Ulf Hansson <ulf.hansson@linaro.org> wrote:
> [...]
>
>>>>>
>>>>> Do you mean set it unconditionally? That works for me, but I have no
>>>>
>>>> Yes.
>>>>
>>>>> way of testing whether it still works on other SoCs that use this IP.
>>>>
>>>> Me neither!
>>>
>>> Hi all, I can not yet get contact with IP owner because it is a
>>> holiday in Japan.
>>> Around two years ago, F_SDH30_CMD_DAT_DELAY was a new feature of this IP.
>>> I will update the latest information as soon as I get it.
>>>
>> I got a response from IP owner.
>> He explains F_SDH30_CMD_DAT_DELAY is intended to adjust signal timing of
>> CMD/DAT lines, and it is necessary to change its value according to
>> SoC/board design.
>> So he advises us to make F_SDH30_CMD_DAT_DELAY adjustable by a DT binding.
>>
>> Kind regards
>> Vincent
>>
>>>>
>>>> Apparently there are no DTS in the kernel git that uses the
>>>> "fujitsu,mb86s70-sdhci-3.0".
>>>
>>> Around two years ago, sdhci_f_sdh30_driver was a portion for mb86s70 SoC
>>> patch series, but finally the patch series did not fully go upstream.
>>>
>
> Vincent, thanks for all the help in this!
>
> Ard, one thing, could you please split the DT doc change into a
> separate patch, preceding the change that actually do the parsing of
> the new binding.
>

Will do. Thanks.
--
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/sdhci-fujitsu.txt b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
index de2c53cff4f1..9ad02f743ad0 100644
--- a/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
+++ b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
@@ -15,6 +15,8 @@  Required properties:
 Optional properties:
 - vqmmc-supply: phandle to the regulator device tree node, mentioned
   as the VCCQ/VDD_IO supply in the eMMC/SD specs.
+- cmd-dat-delay-select: boolean property indicating that this host requires
+  the CMD_DAT_DELAY control to be enabled.
 
 Example:
 
diff --git a/drivers/mmc/host/sdhci_f_sdh30.c b/drivers/mmc/host/sdhci_f_sdh30.c
index 111b66f5439b..00bc2121d607 100644
--- a/drivers/mmc/host/sdhci_f_sdh30.c
+++ b/drivers/mmc/host/sdhci_f_sdh30.c
@@ -13,6 +13,7 @@ 
 #include <linux/err.h>
 #include <linux/delay.h>
 #include <linux/module.h>
+#include <linux/property.h>
 #include <linux/clk.h>
 
 #include "sdhci-pltfm.h"
@@ -45,8 +46,9 @@ 
 struct f_sdhost_priv {
 	struct clk *clk_iface;
 	struct clk *clk;
-	u32 vendor_hs200;
 	struct device *dev;
+	u32 vendor_hs200;
+	bool enable_cmd_dat_delay;
 };
 
 static void sdhci_f_sdh30_soft_voltage_switch(struct sdhci_host *host)
@@ -84,10 +86,19 @@  static unsigned int sdhci_f_sdh30_get_min_clock(struct sdhci_host *host)
 
 static void sdhci_f_sdh30_reset(struct sdhci_host *host, u8 mask)
 {
+	struct f_sdhost_priv *priv = sdhci_priv(host);
+	u32 ctl;
+
 	if (sdhci_readw(host, SDHCI_CLOCK_CONTROL) == 0)
 		sdhci_writew(host, 0xBC01, SDHCI_CLOCK_CONTROL);
 
 	sdhci_reset(host, mask);
+
+	if (priv->enable_cmd_dat_delay) {
+		ctl = sdhci_readl(host, F_SDH30_ESD_CONTROL);
+		ctl |= F_SDH30_CMD_DAT_DELAY;
+		sdhci_writel(host, ctl, F_SDH30_ESD_CONTROL);
+	}
 }
 
 static const struct sdhci_ops sdhci_f_sdh30_ops = {
@@ -126,6 +137,11 @@  static int sdhci_f_sdh30_probe(struct platform_device *pdev)
 	host->quirks2 = SDHCI_QUIRK2_SUPPORT_SINGLE |
 			SDHCI_QUIRK2_TUNING_WORK_AROUND;
 
+	if (device_property_read_bool(dev, "cmd-dat-delay-select")) {
+		dev_info(dev, "Setting cmd-dat-delay\n");
+		priv->enable_cmd_dat_delay = true;
+	}
+
 	ret = mmc_of_parse(host->mmc);
 	if (ret)
 		goto err;