Thread (9 messages) 9 messages, 2 authors, 2013-05-28

Re: [net-next PATCH v3 1/6] net: cpsw: enhance pinctrl support

From: Mugunthan V N <hidden>
Date: 2013-05-28 14:05:09
Also in: linux-devicetree, linux-omap

On 5/28/2013 3:06 AM, Tony Lindgren wrote:
* Mugunthan V N [off-list ref] [130526 11:28]:
quoted
From: Hebbar Gururaja <redacted>

Amend cpsw controller to optionally take a pin control handle and set
the state of the pins to:

- "default" on boot, resume
- "sleep" on suspend()

This should make it possible to optimize energy usage for the pins
for the suspend/resume cycle.

If any of the above pin states are missing in dt, a warning message
about the missing state is displayed.
If certain pin-states are not available, to remove this warning message
pass respective state name with null phandler.

Signed-off-by: Hebbar Gururaja <redacted>
Signed-off-by: Mugunthan V N <redacted>
---
  drivers/net/ethernet/ti/cpsw.c |   48 ++++++++++++++++++++++++++++++++++++++++
  1 file changed, 48 insertions(+)
diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index 21a5b29..c9ed730 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -35,6 +35,7 @@
  #include <linux/if_vlan.h>
  
  #include <linux/platform_data/cpsw.h>
+#include <linux/pinctrl/consumer.h>
  
  #include "cpsw_ale.h"
  #include "cpts.h"
@@ -351,6 +352,11 @@ struct cpsw_priv {
  	bool irq_enabled;
  	struct cpts *cpts;
  	u32 emac_port;
+
+	/* Two optional pin states - default & sleep */
+	struct pinctrl		*pinctrl;
+	struct pinctrl_state	*pins_def;
+	struct pinctrl_state	*pins_sleep;
  };
Which pins do you need to dynamically remux? If it's not all
the pins, you should have three sets: default, active and idle.
This way the static pins in the default group don't need to be
constantly toggled.

Regards,

Tony
Tony

I am using this for all the pins, in probe all the cpsw pins will be 
configured
and i have used the same in suspend/resume callback for power saving.

Regards
Mugunthan V N
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help