ste,nomadik.txt 3.9 KB
Newer Older
1 2 3
ST Ericsson Nomadik pinmux controller

Required properties:
4 5
- compatible: "stericsson,db8500-pinctrl", "stericsson,db8540-pinctrl",
              "stericsson,stn8815-pinctrl"
6 7 8 9 10 11 12 13 14 15 16 17 18
- reg: Should contain the register physical address and length of the PRCMU.

Please refer to pinctrl-bindings.txt in this directory for details of the
common pinctrl bindings used by client devices, including the meaning of the
phrase "pin configuration node".

ST Ericsson's pin configuration nodes act as a container for an arbitrary number of
subnodes. Each of these subnodes represents some desired configuration for a
pin, a group, or a list of pins or groups. This configuration can include the
mux function to select on those pin(s)/group(s), and various pin configuration
parameters, such as input, output, pull up, pull down...

The name of each subnode is not important; all subnodes should be enumerated
19 20 21
and processed purely based on their content. The subnodes use the generic
pin multiplexing node layout from the standard pin control bindings
(see pinctrl-bindings.txt):
22

23 24
Required pin multiplexing subnode properties:
- function: A string containing the name of the function to mux to the
25
  pin or group.
26 27 28
- groups : An array of strings. Each string contains the name of a pin
  group that will be combined with the function to form a multiplexing
  set-up.
29

30 31 32 33 34
Required pin configuration subnode properties:
- pins: A string array describing the pins affected by the configuration
  in the node.
- ste,config: Handle of pin configuration node
  (e.g. ste,config = <&slpm_in_wkup_pdis>)
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75

- ste,input : <0/1/2>
	0: input with no pull
	1: input with pull up,
	2: input with pull down,

- ste,output: <0/1/2>
	0: output low,
	1: output high,
	2: output (value is not specified).

- ste,sleep: <0/1>
	0: sleep mode disable,
	1: sleep mode enable.

- ste,sleep-input: <0/1/2/3>
	0: sleep input with no pull,
	1: sleep input with pull up,
	2: sleep input with pull down.
	3: sleep input and keep last input configuration (no pull, pull up or pull down).

- ste,sleep-output: <0/1/2>
	0: sleep output low,
	1: sleep output high,
	2: sleep output (value is not specified).

- ste,sleep-gpio: <0/1>
	0: disable sleep gpio mode,
	1: enable sleep gpio mode.

- ste,sleep-wakeup: <0/1>
	0: wake-up detection enabled,
	1: wake-up detection disabled.

- ste,sleep-pull-disable: <0/1>
	0: GPIO pull-up or pull-down resistor is enabled, when pin is an input,
	1: GPIO pull-up and pull-down resistor are disabled.

Example board file extract:

	pinctrl@80157000 {
76
		compatible = "stericsson,db8500-pinctrl";
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
		reg = <0x80157000 0x2000>;

		pinctrl-names = "default";

		slpm_in_wkup_pdis: slpm_in_wkup_pdis {
			ste,sleep = <1>;
			ste,sleep-input = <3>;
			ste,sleep-wakeup = <1>;
			ste,sleep-pull-disable = <0>;
		};

		slpm_out_hi_wkup_pdis: slpm_out_hi_wkup_pdis {
			ste,sleep = <1>;
			ste,sleep-output = <1>;
			ste,sleep-wakeup = <1>;
			ste,sleep-pull-disable = <0>;
		};

		slpm_out_wkup_pdis: slpm_out_wkup_pdis {
			ste,sleep = <1>;
			ste,sleep-output = <2>;
			ste,sleep-wakeup = <1>;
			ste,sleep-pull-disable = <0>;
		};

		uart0 {
			uart0_default_mux: uart0_mux {
				u0_default_mux {
105 106
					function = "u0";
					pins = "u0_a_1";
107 108 109 110
				};
			};
			uart0_default_mode: uart0_default {
				uart0_default_cfg1 {
111
					pins = "GPIO0", "GPIO2";
112 113 114 115
					ste,input = <1>;
				};

				uart0_default_cfg2 {
116
					pins = "GPIO1", "GPIO3";
117 118 119 120 121
					ste,output = <1>;
				};
			};
			uart0_sleep_mode: uart0_sleep {
				uart0_sleep_cfg1 {
122
					pins = "GPIO0", "GPIO2";
123 124 125
					ste,config = <&slpm_in_wkup_pdis>;
				};
				uart0_sleep_cfg2 {
126
					pins = "GPIO1";
127 128 129
					ste,config = <&slpm_out_hi_wkup_pdis>;
				};
				uart0_sleep_cfg3 {
130
					pins = "GPIO3";
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
					ste,config = <&slpm_out_wkup_pdis>;
				};
			};
		};
	};

	uart@80120000 {
		compatible = "arm,pl011", "arm,primecell";
		reg = <0x80120000 0x1000>;
		interrupts = <0 11 0x4>;

		pinctrl-names = "default","sleep";
		pinctrl-0 = <&uart0_default_mux>, <&uart0_default_mode>;
		pinctrl-1 = <&uart0_sleep_mode>;
	};