linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] Documentation: phy: introduce new optional property to specify drive impedance
@ 2017-01-05  9:31 Shawn Lin
  2017-01-05  9:31 ` [PATCH 2/2] phy: rockchip-emmc: try to get drive impedance from DT Shawn Lin
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Shawn Lin @ 2017-01-05  9:31 UTC (permalink / raw)
  To: Kishon Vijay Abraham I
  Cc: Rob Herring, devicetree, linux-rockchip, Heiko Stuebner,
	Douglas Anderson, linux-kernel, Shawn Lin

We need to modify the drive impedance according to the
different hardware condition. So let's expose this to
the DT.

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
---

 Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt b/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
index e3ea557..731aeb9 100644
--- a/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
+++ b/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
@@ -14,6 +14,11 @@ specified by name:
 		access to it), it is strongly suggested.
  - clocks: Should have a phandle to the card clock exported by the SDHCI driver.
 
+Optional Properties:
+- drive_impedance: Must be one of 33, 40, 50, 66, 100. This property allows
+	different boards to specify their own drive impedance depending on the
+	hardware condition.
+
 Example:
 
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/2] phy: rockchip-emmc: try to get drive impedance from DT
  2017-01-05  9:31 [PATCH 1/2] Documentation: phy: introduce new optional property to specify drive impedance Shawn Lin
@ 2017-01-05  9:31 ` Shawn Lin
  2017-01-06  0:51   ` Doug Anderson
  2017-01-05 11:15 ` [PATCH 1/2] Documentation: phy: introduce new optional property to specify drive impedance Heiko Stübner
  2017-01-09 18:06 ` Rob Herring
  2 siblings, 1 reply; 8+ messages in thread
From: Shawn Lin @ 2017-01-05  9:31 UTC (permalink / raw)
  To: Kishon Vijay Abraham I
  Cc: Rob Herring, devicetree, linux-rockchip, Heiko Stuebner,
	Douglas Anderson, linux-kernel, Shawn Lin

Try to get drive impedance from DT and use it, otherwise
use 50ohm by default in order not to break the existing boards
as 50ohm works fine for them already.

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
---

 drivers/phy/phy-rockchip-emmc.c | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/drivers/phy/phy-rockchip-emmc.c b/drivers/phy/phy-rockchip-emmc.c
index f1b24f1..7fd4a3e 100644
--- a/drivers/phy/phy-rockchip-emmc.c
+++ b/drivers/phy/phy-rockchip-emmc.c
@@ -78,6 +78,7 @@
 
 struct rockchip_emmc_phy {
 	unsigned int	reg_offset;
+	unsigned int	drive_impedance;
 	struct regmap	*reg_base;
 	struct clk	*emmcclk;
 };
@@ -288,7 +289,7 @@ static int rockchip_emmc_phy_power_on(struct phy *phy)
 	/* Drive impedance: 50 Ohm */
 	regmap_write(rk_phy->reg_base,
 		     rk_phy->reg_offset + GRF_EMMCPHY_CON6,
-		     HIWORD_UPDATE(PHYCTRL_DR_50OHM,
+		     HIWORD_UPDATE(rk_phy->drive_impedance,
 				   PHYCTRL_DR_MASK,
 				   PHYCTRL_DR_SHIFT));
 
@@ -346,6 +347,32 @@ static int rockchip_emmc_phy_probe(struct platform_device *pdev)
 		return -EINVAL;
 	}
 
+	rk_phy->drive_impedance = PHYCTRL_DR_50OHM;
+	if (!of_property_read_u32(dev->of_node, "drive_impedance",
+				  &rk_phy->drive_impedance)) {
+		switch (rk_phy->drive_impedance) {
+		case 33:
+			rk_phy->drive_impedance = PHYCTRL_DR_33OHM;
+			break;
+		case 40:
+			rk_phy->drive_impedance = PHYCTRL_DR_40OHM;
+			break;
+		case 50:
+			rk_phy->drive_impedance = PHYCTRL_DR_50OHM;
+			break;
+		case 66:
+			rk_phy->drive_impedance = PHYCTRL_DR_66OHM;
+			break;
+		case 100:
+			rk_phy->drive_impedance = PHYCTRL_DR_100OHM;
+			break;
+		default:
+			dev_info(dev, "invalid drive impedance.\n");
+			rk_phy->drive_impedance = PHYCTRL_DR_50OHM;
+			break;
+		}
+	}
+
 	rk_phy->reg_offset = reg_offset;
 	rk_phy->reg_base = grf;
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/2] Documentation: phy: introduce new optional property to specify drive impedance
  2017-01-05  9:31 [PATCH 1/2] Documentation: phy: introduce new optional property to specify drive impedance Shawn Lin
  2017-01-05  9:31 ` [PATCH 2/2] phy: rockchip-emmc: try to get drive impedance from DT Shawn Lin
@ 2017-01-05 11:15 ` Heiko Stübner
  2017-01-06  0:44   ` Shawn Lin
  2017-01-09 18:06 ` Rob Herring
  2 siblings, 1 reply; 8+ messages in thread
From: Heiko Stübner @ 2017-01-05 11:15 UTC (permalink / raw)
  To: Shawn Lin
  Cc: Kishon Vijay Abraham I, Rob Herring, devicetree, linux-rockchip,
	Douglas Anderson, linux-kernel

Hi Shawn,

Am Donnerstag, 5. Januar 2017, 17:31:21 schrieb Shawn Lin:
> We need to modify the drive impedance according to the
> different hardware condition. So let's expose this to
> the DT.
> 
> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
> ---
> 
>  Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
> b/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt index
> e3ea557..731aeb9 100644
> --- a/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
> +++ b/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
> @@ -14,6 +14,11 @@ specified by name:
>  		access to it), it is strongly suggested.
>   - clocks: Should have a phandle to the card clock exported by the SDHCI
> driver.
> 
> +Optional Properties:
> +- drive_impedance: Must be one of 33, 40, 50, 66, 100. This property allows
> +	different boards to specify their own drive impedance depending on the
> +	hardware condition.

In what unit are your 33, 40 etc values?

It is recommended that properties should specify their unit, see all the 
properties ending in "-ma", "-ns" and so on and also 
Documentation/devicetree/bindings/property-units.txt

Also properties should use dashes ("-") not underscores.

Judging by the second patch, these are Ohm, so combining the above you 
probably want

	drive-impedance-ohms

as property name.

Also the patch subject is slightly misleading and should probably specify the 
rockchip-emmc as well :-)


Heiko

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/2] Documentation: phy: introduce new optional property to specify drive impedance
  2017-01-05 11:15 ` [PATCH 1/2] Documentation: phy: introduce new optional property to specify drive impedance Heiko Stübner
@ 2017-01-06  0:44   ` Shawn Lin
  0 siblings, 0 replies; 8+ messages in thread
From: Shawn Lin @ 2017-01-06  0:44 UTC (permalink / raw)
  To: Heiko Stübner
  Cc: shawn.lin, Kishon Vijay Abraham I, Rob Herring, devicetree,
	linux-rockchip, Douglas Anderson, linux-kernel

On 2017/1/5 19:15, Heiko Stübner wrote:
> Hi Shawn,
>
> Am Donnerstag, 5. Januar 2017, 17:31:21 schrieb Shawn Lin:
>> We need to modify the drive impedance according to the
>> different hardware condition. So let's expose this to
>> the DT.
>>
>> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
>> ---
>>
>>  Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt | 5 +++++
>>  1 file changed, 5 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
>> b/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt index
>> e3ea557..731aeb9 100644
>> --- a/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
>> +++ b/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
>> @@ -14,6 +14,11 @@ specified by name:
>>  		access to it), it is strongly suggested.
>>   - clocks: Should have a phandle to the card clock exported by the SDHCI
>> driver.
>>
>> +Optional Properties:
>> +- drive_impedance: Must be one of 33, 40, 50, 66, 100. This property allows
>> +	different boards to specify their own drive impedance depending on the
>> +	hardware condition.
>
> In what unit are your 33, 40 etc values?
>
> It is recommended that properties should specify their unit, see all the
> properties ending in "-ma", "-ns" and so on and also
> Documentation/devicetree/bindings/property-units.txt
>
> Also properties should use dashes ("-") not underscores.
>
> Judging by the second patch, these are Ohm, so combining the above you
> probably want
>
> 	drive-impedance-ohms
>
> as property name.
>
> Also the patch subject is slightly misleading and should probably specify the
> rockchip-emmc as well :-)

Thanks, will fix them.

>
>
> Heiko
>
>
>


-- 
Best Regards
Shawn Lin

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] phy: rockchip-emmc: try to get drive impedance from DT
  2017-01-05  9:31 ` [PATCH 2/2] phy: rockchip-emmc: try to get drive impedance from DT Shawn Lin
@ 2017-01-06  0:51   ` Doug Anderson
  2017-01-06  1:09     ` Shawn Lin
  0 siblings, 1 reply; 8+ messages in thread
From: Doug Anderson @ 2017-01-06  0:51 UTC (permalink / raw)
  To: Shawn Lin
  Cc: Kishon Vijay Abraham I, Rob Herring, devicetree,
	open list:ARM/Rockchip SoC...,
	Heiko Stuebner, linux-kernel

Hi,

On Thu, Jan 5, 2017 at 1:31 AM, Shawn Lin <shawn.lin@rock-chips.com> wrote:
> Try to get drive impedance from DT and use it, otherwise
> use 50ohm by default in order not to break the existing boards
> as 50ohm works fine for them already.
>
> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
> ---
>
>  drivers/phy/phy-rockchip-emmc.c | 29 ++++++++++++++++++++++++++++-
>  1 file changed, 28 insertions(+), 1 deletion(-)

I could have sworn that you somehow needed to make sure that the eMMC
part itself needed to also be updated to be told the matching drive
impedance so you don't get a mismatch.  How do you make that work?
...or am I just confused.  I meant to try to dig more, but ran out of
time today.  :(

-Doug

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] phy: rockchip-emmc: try to get drive impedance from DT
  2017-01-06  0:51   ` Doug Anderson
@ 2017-01-06  1:09     ` Shawn Lin
  2017-01-06 18:29       ` Doug Anderson
  0 siblings, 1 reply; 8+ messages in thread
From: Shawn Lin @ 2017-01-06  1:09 UTC (permalink / raw)
  To: Doug Anderson
  Cc: shawn.lin, Kishon Vijay Abraham I, Rob Herring, devicetree,
	open list:ARM/Rockchip SoC...,
	Heiko Stuebner, linux-kernel

On 2017/1/6 8:51, Doug Anderson wrote:
> Hi,
>
> On Thu, Jan 5, 2017 at 1:31 AM, Shawn Lin <shawn.lin@rock-chips.com> wrote:
>> Try to get drive impedance from DT and use it, otherwise
>> use 50ohm by default in order not to break the existing boards
>> as 50ohm works fine for them already.
>>
>> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
>> ---
>>
>>  drivers/phy/phy-rockchip-emmc.c | 29 ++++++++++++++++++++++++++++-
>>  1 file changed, 28 insertions(+), 1 deletion(-)
>
> I could have sworn that you somehow needed to make sure that the eMMC
> part itself needed to also be updated to be told the matching drive
> impedance so you don't get a mismatch.  How do you make that work?

No I didn't. So that means the eMMC part itself still couldn't be
updated. The intention for me to introduce this only for emmc phy is
that I got report that the default drive impedance of one eMMC is not
50ohms, so now we haven't been able to update it for eMMC part but maybe
we could just update it for the phy itself to match them in between.


> ...or am I just confused.  I meant to try to dig more, but ran out of
> time today.  :(
>
> -Doug
>
>
>


-- 
Best Regards
Shawn Lin

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] phy: rockchip-emmc: try to get drive impedance from DT
  2017-01-06  1:09     ` Shawn Lin
@ 2017-01-06 18:29       ` Doug Anderson
  0 siblings, 0 replies; 8+ messages in thread
From: Doug Anderson @ 2017-01-06 18:29 UTC (permalink / raw)
  To: Shawn Lin
  Cc: Kishon Vijay Abraham I, Rob Herring, devicetree,
	open list:ARM/Rockchip SoC...,
	Heiko Stuebner, linux-kernel

Hi,

On Thu, Jan 5, 2017 at 5:09 PM, Shawn Lin <shawn.lin@rock-chips.com> wrote:
> On 2017/1/6 8:51, Doug Anderson wrote:
>>
>> Hi,
>>
>> On Thu, Jan 5, 2017 at 1:31 AM, Shawn Lin <shawn.lin@rock-chips.com>
>> wrote:
>>>
>>> Try to get drive impedance from DT and use it, otherwise
>>> use 50ohm by default in order not to break the existing boards
>>> as 50ohm works fine for them already.
>>>
>>> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
>>> ---
>>>
>>>  drivers/phy/phy-rockchip-emmc.c | 29 ++++++++++++++++++++++++++++-
>>>  1 file changed, 28 insertions(+), 1 deletion(-)
>>
>>
>> I could have sworn that you somehow needed to make sure that the eMMC
>> part itself needed to also be updated to be told the matching drive
>> impedance so you don't get a mismatch.  How do you make that work?
>
>
> No I didn't. So that means the eMMC part itself still couldn't be
> updated. The intention for me to introduce this only for emmc phy is
> that I got report that the default drive impedance of one eMMC is not
> 50ohms, so now we haven't been able to update it for eMMC part but maybe
> we could just update it for the phy itself to match them in between.

Interesting.  ...the eMMC spec says that 50 Ohm is mandatory, so we
know that 50 Ohm must be supported.

...and even if the default isn't 50 Ohm then wouldn't it get set to 50
OHm when we set the HS_TIMING ?


-Doug

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/2] Documentation: phy: introduce new optional property to specify drive impedance
  2017-01-05  9:31 [PATCH 1/2] Documentation: phy: introduce new optional property to specify drive impedance Shawn Lin
  2017-01-05  9:31 ` [PATCH 2/2] phy: rockchip-emmc: try to get drive impedance from DT Shawn Lin
  2017-01-05 11:15 ` [PATCH 1/2] Documentation: phy: introduce new optional property to specify drive impedance Heiko Stübner
@ 2017-01-09 18:06 ` Rob Herring
  2 siblings, 0 replies; 8+ messages in thread
From: Rob Herring @ 2017-01-09 18:06 UTC (permalink / raw)
  To: Shawn Lin
  Cc: Kishon Vijay Abraham I, devicetree, linux-rockchip,
	Heiko Stuebner, Douglas Anderson, linux-kernel

On Thu, Jan 05, 2017 at 05:31:21PM +0800, Shawn Lin wrote:
> We need to modify the drive impedance according to the
> different hardware condition. So let's expose this to
> the DT.
> 
> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
> ---
> 
>  Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt b/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
> index e3ea557..731aeb9 100644
> --- a/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
> +++ b/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
> @@ -14,6 +14,11 @@ specified by name:
>  		access to it), it is strongly suggested.
>   - clocks: Should have a phandle to the card clock exported by the SDHCI driver.
>  
> +Optional Properties:
> +- drive_impedance: Must be one of 33, 40, 50, 66, 100. This property allows
> +	different boards to specify their own drive impedance depending on the
> +	hardware condition.

Needs a vendor prefix. Don't use '_'. And needs unit suffix (-ohms).

> +
>  Example:
>  
>  
> -- 
> 1.9.1
> 
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-01-09 18:06 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-05  9:31 [PATCH 1/2] Documentation: phy: introduce new optional property to specify drive impedance Shawn Lin
2017-01-05  9:31 ` [PATCH 2/2] phy: rockchip-emmc: try to get drive impedance from DT Shawn Lin
2017-01-06  0:51   ` Doug Anderson
2017-01-06  1:09     ` Shawn Lin
2017-01-06 18:29       ` Doug Anderson
2017-01-05 11:15 ` [PATCH 1/2] Documentation: phy: introduce new optional property to specify drive impedance Heiko Stübner
2017-01-06  0:44   ` Shawn Lin
2017-01-09 18:06 ` Rob Herring

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).