On Wed, Oct 03, 2012 at 18:06:10, Linus Walleij wrote:
On Wed, Oct 3, 2012 at 12:52 PM, AnilKumar, Chimata [off-list ref] wrote:
quoted
On Tue, Oct 02, 2012 at 01:29:37, Linus Walleij wrote:
quoted
quoted
This is what we're doing for ux500 and should be a good model.
I have looked into this, but not seen any named modes.
OK maybe it's not easy to find. If you look into:
arch/arm/mach-ux500/board-mop500-pins.c
you find our work in progress. Note that this is not (yet)
using device tree. (We want to migrate all our pinctrl
stuff first, then do DT.)
So for example this macro:
#define DB8500_PIN(pin,conf,dev) \
PIN_MAP_CONFIGS_PIN_DEFAULT(dev, "pinctrl-db8500", pin, conf)
Will define a config for the "default" mode for a certain
pin.
This:
#define DB8500_PIN_SLEEP(pin, conf, dev) \
PIN_MAP_CONFIGS_PIN(dev, PINCTRL_STATE_SLEEP, "pinctrl-db8500", \
pin, conf)
Will mutatis mutandis define a "sleep" mode for a pin.
Sorry for the macros. We'll get rid of them in the DT.
(Now that Stephen has patched in preprocessing it will
even look good.)
Hi Linus Walleij/Tony,
I completely understood this named modes, I have added named
modes like this in am335x-xxx.dts files
am33xx_pinmux: pinmux@44e10800 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&user_leds_s0>;
pinctrl-1 = <&user_leds_s1>;
user_leds_s0: user_leds_s0 {
pinctrl-single,pins = <
0x54 0x7 /* gpmc_a5.gpio1_21, OUTPUT | MODE7 */
0x58 0x17 /* gpmc_a6.gpio1_22, OUT PULLUP | MODE7 */
0x5c 0x7 /* gpmc_a7.gpio1_23, OUTPUT | MODE7 */
0x60 0x17 /* gpmc_a8.gpio1_24, OUT PULLUP | MODE7 */
>;
};
user_leds_s1: user_leds_s1 {
pinctrl-single,pins = <
0x54 0x2e /* gpmc_a5.gpio1_21, INPUT | MODE7 */
0x58 0x2e /* gpmc_a6.gpio1_22, INPUT | MODE7 */
0x5c 0x2e /* gpmc_a7.gpio1_23, INPUT | MODE7 */
0x60 0x2e /* gpmc_a8.gpio1_24, INPUT | MODE7 */
>;
};
};
I think "pinctrl-1" state will be used in driver
suspend/resume calls.
I have the pinmux/conf settings for default state but fully
optimized pinmux/conf values in idle & suspend states are not
available yet. Even though if I add here, I am unable to test
these pins in suspend state because suspend/resume of AM35xx
is not added yet
I have two options now
- add only default states for now, I can add reset of
the state details once suspend/resume is supported.
- add same values in all the states, modify those once
suspend/resume is added for AM335x.
Thanks
AnilKumar