linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: rockchip: rk3188: enable pull-ups on UART inputs
@ 2014-03-09 19:43 Max Schwarz
  2014-03-13  0:36 ` Heiko Stübner
  0 siblings, 1 reply; 5+ messages in thread
From: Max Schwarz @ 2014-03-09 19:43 UTC (permalink / raw)
  To: linux-arm-kernel

Enable integrated pull-ups on the UART RX pins of Rockchip RK3188.

This fixes UART receive on the radxa Rock board, which has an input diode
preventing the RX pin from being raised from the outside.

Signed-off-by: Max Schwarz <max.schwarz@online.de>
---
 arch/arm/boot/dts/rk3188.dtsi | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/boot/dts/rk3188.dtsi b/arch/arm/boot/dts/rk3188.dtsi
index 412f4d0..2e10bd7 100644
--- a/arch/arm/boot/dts/rk3188.dtsi
+++ b/arch/arm/boot/dts/rk3188.dtsi
@@ -149,7 +149,7 @@
 
 			uart0 {
 				uart0_xfer: uart0-xfer {
-					rockchip,pins = <RK_GPIO1 0 RK_FUNC_1 &pcfg_pull_none>,
+					rockchip,pins = <RK_GPIO1 0 RK_FUNC_1 &pcfg_pull_up>,
 							<RK_GPIO1 1 RK_FUNC_1 &pcfg_pull_none>;
 				};
 
@@ -164,7 +164,7 @@
 
 			uart1 {
 				uart1_xfer: uart1-xfer {
-					rockchip,pins = <RK_GPIO1 4 RK_FUNC_1 &pcfg_pull_none>,
+					rockchip,pins = <RK_GPIO1 4 RK_FUNC_1 &pcfg_pull_up>,
 							<RK_GPIO1 5 RK_FUNC_1 &pcfg_pull_none>;
 				};
 
@@ -179,7 +179,7 @@
 
 			uart2 {
 				uart2_xfer: uart2-xfer {
-					rockchip,pins = <RK_GPIO1 8 RK_FUNC_1 &pcfg_pull_none>,
+					rockchip,pins = <RK_GPIO1 8 RK_FUNC_1 &pcfg_pull_up>,
 							<RK_GPIO1 9 RK_FUNC_1 &pcfg_pull_none>;
 				};
 				/* no rts / cts for uart2 */
@@ -187,7 +187,7 @@
 
 			uart3 {
 				uart3_xfer: uart3-xfer {
-					rockchip,pins = <RK_GPIO1 10 RK_FUNC_1 &pcfg_pull_none>,
+					rockchip,pins = <RK_GPIO1 10 RK_FUNC_1 &pcfg_pull_up>,
 							<RK_GPIO1 11 RK_FUNC_1 &pcfg_pull_none>;
 				};
 
-- 
1.8.3.2

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

* [PATCH] ARM: rockchip: rk3188: enable pull-ups on UART inputs
  2014-03-09 19:43 [PATCH] ARM: rockchip: rk3188: enable pull-ups on UART inputs Max Schwarz
@ 2014-03-13  0:36 ` Heiko Stübner
  2014-03-13 19:25   ` Max Schwarz
  0 siblings, 1 reply; 5+ messages in thread
From: Heiko Stübner @ 2014-03-13  0:36 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Max,


Am Sonntag, 9. M?rz 2014, 20:43:11 schrieb Max Schwarz:
> Enable integrated pull-ups on the UART RX pins of Rockchip RK3188.
> 
> This fixes UART receive on the radxa Rock board, which has an input diode
> preventing the RX pin from being raised from the outside.
>
> Signed-off-by: Max Schwarz <max.schwarz@online.de>

Your patch changes the default behaviour for all rk3188 uarts, while the patch 
description suggests a Radxa Rock specific problem.
On my preproduction Radxa Rock the issue is not present, but I think I 
remember reading somewhere, that the diodes where added in the mass-production 
model.

So I've dug a bit through different sources:

- the schematics of another rk3188 based device, did not use diodes for the 
uarts like the Radxa, but

- the default values for pull configuration supports your observation:
	gpio1-0: pull-up
	gpio1-1: pull down [currently also none]
	gpio1-4: pull up
	gpio1-5: pull-down
		and so on for the two other pin-groups.

- and rockchip vendor kernels do not seem to change the uart pull configs

I've tested both your patch + enabling the pull down for the txd pin too. Both 
variants work on my radxa.

So I agree with you but would like to determine if we should also set the txd 
to pull down in one go, to restore the default pull setting of these pins or 
should leave them as is.
Thoughts?


Heiko


> ---
>  arch/arm/boot/dts/rk3188.dtsi | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/rk3188.dtsi b/arch/arm/boot/dts/rk3188.dtsi
> index 412f4d0..2e10bd7 100644
> --- a/arch/arm/boot/dts/rk3188.dtsi
> +++ b/arch/arm/boot/dts/rk3188.dtsi
> @@ -149,7 +149,7 @@
> 
>  			uart0 {
>  				uart0_xfer: uart0-xfer {
> -					rockchip,pins = <RK_GPIO1 0 RK_FUNC_1 
&pcfg_pull_none>,
> +					rockchip,pins = <RK_GPIO1 0 RK_FUNC_1 &pcfg_pull_up>,
>  							<RK_GPIO1 1 RK_FUNC_1 &pcfg_pull_none>;
>  				};
> 
> @@ -164,7 +164,7 @@
> 
>  			uart1 {
>  				uart1_xfer: uart1-xfer {
> -					rockchip,pins = <RK_GPIO1 4 RK_FUNC_1 
&pcfg_pull_none>,
> +					rockchip,pins = <RK_GPIO1 4 RK_FUNC_1 &pcfg_pull_up>,
>  							<RK_GPIO1 5 RK_FUNC_1 &pcfg_pull_none>;
>  				};
> 
> @@ -179,7 +179,7 @@
> 
>  			uart2 {
>  				uart2_xfer: uart2-xfer {
> -					rockchip,pins = <RK_GPIO1 8 RK_FUNC_1 
&pcfg_pull_none>,
> +					rockchip,pins = <RK_GPIO1 8 RK_FUNC_1 &pcfg_pull_up>,
>  							<RK_GPIO1 9 RK_FUNC_1 &pcfg_pull_none>;
>  				};
>  				/* no rts / cts for uart2 */
> @@ -187,7 +187,7 @@
> 
>  			uart3 {
>  				uart3_xfer: uart3-xfer {
> -					rockchip,pins = <RK_GPIO1 10 RK_FUNC_1 
&pcfg_pull_none>,
> +					rockchip,pins = <RK_GPIO1 10 RK_FUNC_1 &pcfg_pull_up>,
>  							<RK_GPIO1 11 RK_FUNC_1 &pcfg_pull_none>;
>  				};

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

* [PATCH] ARM: rockchip: rk3188: enable pull-ups on UART inputs
  2014-03-13  0:36 ` Heiko Stübner
@ 2014-03-13 19:25   ` Max Schwarz
  2014-03-22 22:20     ` Heiko Stübner
  0 siblings, 1 reply; 5+ messages in thread
From: Max Schwarz @ 2014-03-13 19:25 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Heiko,

> So I agree with you but would like to determine if we should also set the
> txd to pull down in one go, to restore the default pull setting of these
> pins or should leave them as is.
> Thoughts?
As soon as the UART is enabled, that TX pull-down does not do anything because 
the UART will actively drive the pin. I don't know what happens if the UART is 
suspended through runtime PM, though. I skimmed over the 8250_dw and saw 
support for that.

On the radxa board, there is even an external pull-up on the TX pin. The UART 
idle level is high, so that makes sense. If we wanted to pull the pin 
somewhere, I guess it should be up, not down. 

My vote would be to keep the patch as it is. In any case, it's an improvement 
of the status quo and does not change TX behavior.

Cheers,
  Max

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

* [PATCH] ARM: rockchip: rk3188: enable pull-ups on UART inputs
  2014-03-13 19:25   ` Max Schwarz
@ 2014-03-22 22:20     ` Heiko Stübner
  2014-03-22 23:03       ` Max Schwarz
  0 siblings, 1 reply; 5+ messages in thread
From: Heiko Stübner @ 2014-03-22 22:20 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Max,


Am Donnerstag, 13. M?rz 2014, 20:25:43 schrieb Max Schwarz:
> Hello Heiko,
> 
> > So I agree with you but would like to determine if we should also set the
> > txd to pull down in one go, to restore the default pull setting of these
> > pins or should leave them as is.
> > Thoughts?
> 
> As soon as the UART is enabled, that TX pull-down does not do anything
> because the UART will actively drive the pin. I don't know what happens if
> the UART is suspended through runtime PM, though. I skimmed over the
> 8250_dw and saw support for that.
> 
> On the radxa board, there is even an external pull-up on the TX pin. The
> UART idle level is high, so that makes sense. If we wanted to pull the pin
> somewhere, I guess it should be up, not down.
> 
> My vote would be to keep the patch as it is. In any case, it's an
> improvement of the status quo and does not change TX behavior.

ok, but as we change the default behaviour of the pin - and as we discussed 
above rightfully so, the commit message should reflect this and not describe a 
Radxa-Rock specific change. So would you be ok with something like:

---------- 8< --------------------
Subject: [PATCH] ARM: rockchip: rk3188: enable pull-ups on UART RX pins

The default behaviour of the uart-rx pins on the rk3188 is to be pulled up and 
a lot of designs use diodes to even prevent them from being raised from the 
outside.

Therefore change the rx-pin settings accordingly.

This also fixes a uart receive problem on mass production Radxa Rock boards.
---------- 8< --------------------


Heiko

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

* [PATCH] ARM: rockchip: rk3188: enable pull-ups on UART inputs
  2014-03-22 22:20     ` Heiko Stübner
@ 2014-03-22 23:03       ` Max Schwarz
  0 siblings, 0 replies; 5+ messages in thread
From: Max Schwarz @ 2014-03-22 23:03 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Heiko,

> ok, but as we change the default behaviour of the pin - and as we discussed
> above rightfully so, the commit message should reflect this and not describe
> a Radxa-Rock specific change. So would you be ok with something like:
> 
> ---------- 8< --------------------
> Subject: [PATCH] ARM: rockchip: rk3188: enable pull-ups on UART RX pins
> 
> The default behaviour of the uart-rx pins on the rk3188 is to be pulled up
> and a lot of designs use diodes to even prevent them from being raised from
> the outside.
> 
> Therefore change the rx-pin settings accordingly.
> 
> This also fixes a uart receive problem on mass production Radxa Rock boards.
> ---------- 8< --------------------

Yes, that sounds good to me. Thanks!

Cheers,
  Max

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

end of thread, other threads:[~2014-03-22 23:03 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-09 19:43 [PATCH] ARM: rockchip: rk3188: enable pull-ups on UART inputs Max Schwarz
2014-03-13  0:36 ` Heiko Stübner
2014-03-13 19:25   ` Max Schwarz
2014-03-22 22:20     ` Heiko Stübner
2014-03-22 23:03       ` Max Schwarz

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).