162306a36Sopenharmony_ciST Ericsson Nomadik pinmux controller 262306a36Sopenharmony_ci 362306a36Sopenharmony_ciRequired properties: 462306a36Sopenharmony_ci- compatible: "stericsson,db8500-pinctrl", "stericsson,db8540-pinctrl", 562306a36Sopenharmony_ci "stericsson,stn8815-pinctrl" 662306a36Sopenharmony_ci- nomadik-gpio-chips: array of phandles to the corresponding GPIO chips 762306a36Sopenharmony_ci (these have the register ranges used by the pin controller). 862306a36Sopenharmony_ci- prcm: phandle to the PRCMU managing the back end of this pin controller 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ciPlease refer to pinctrl-bindings.txt in this directory for details of the 1162306a36Sopenharmony_cicommon pinctrl bindings used by client devices, including the meaning of the 1262306a36Sopenharmony_ciphrase "pin configuration node". 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ciST Ericsson's pin configuration nodes act as a container for an arbitrary number of 1562306a36Sopenharmony_cisubnodes. Each of these subnodes represents some desired configuration for a 1662306a36Sopenharmony_cipin, a group, or a list of pins or groups. This configuration can include the 1762306a36Sopenharmony_cimux function to select on those pin(s)/group(s), and various pin configuration 1862306a36Sopenharmony_ciparameters, such as input, output, pull up, pull down... 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ciThe name of each subnode is not important; all subnodes should be enumerated 2162306a36Sopenharmony_ciand processed purely based on their content. The subnodes use the generic 2262306a36Sopenharmony_cipin multiplexing node layout from the standard pin control bindings 2362306a36Sopenharmony_ci(see pinctrl-bindings.txt): 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ciRequired pin multiplexing subnode properties: 2662306a36Sopenharmony_ci- function: A string containing the name of the function to mux to the 2762306a36Sopenharmony_ci pin or group. 2862306a36Sopenharmony_ci- groups : An array of strings. Each string contains the name of a pin 2962306a36Sopenharmony_ci group that will be combined with the function to form a multiplexing 3062306a36Sopenharmony_ci set-up. 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciRequired pin configuration subnode properties: 3362306a36Sopenharmony_ci- pins: A string array describing the pins affected by the configuration 3462306a36Sopenharmony_ci in the node. 3562306a36Sopenharmony_ci- ste,config: Handle of pin configuration node 3662306a36Sopenharmony_ci (e.g. ste,config = <&slpm_in_wkup_pdis>) 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci- ste,input : <0/1/2> 3962306a36Sopenharmony_ci 0: input with no pull 4062306a36Sopenharmony_ci 1: input with pull up, 4162306a36Sopenharmony_ci 2: input with pull down, 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci- ste,output: <0/1/2> 4462306a36Sopenharmony_ci 0: output low, 4562306a36Sopenharmony_ci 1: output high, 4662306a36Sopenharmony_ci 2: output (value is not specified). 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci- ste,sleep: <0/1> 4962306a36Sopenharmony_ci 0: sleep mode disable, 5062306a36Sopenharmony_ci 1: sleep mode enable. 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci- ste,sleep-input: <0/1/2/3> 5362306a36Sopenharmony_ci 0: sleep input with no pull, 5462306a36Sopenharmony_ci 1: sleep input with pull up, 5562306a36Sopenharmony_ci 2: sleep input with pull down. 5662306a36Sopenharmony_ci 3: sleep input and keep last input configuration (no pull, pull up or pull down). 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci- ste,sleep-output: <0/1/2> 5962306a36Sopenharmony_ci 0: sleep output low, 6062306a36Sopenharmony_ci 1: sleep output high, 6162306a36Sopenharmony_ci 2: sleep output (value is not specified). 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci- ste,sleep-gpio: <0/1> 6462306a36Sopenharmony_ci 0: disable sleep gpio mode, 6562306a36Sopenharmony_ci 1: enable sleep gpio mode. 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci- ste,sleep-wakeup: <0/1> 6862306a36Sopenharmony_ci 0: wake-up detection enabled, 6962306a36Sopenharmony_ci 1: wake-up detection disabled. 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci- ste,sleep-pull-disable: <0/1> 7262306a36Sopenharmony_ci 0: GPIO pull-up or pull-down resistor is enabled, when pin is an input, 7362306a36Sopenharmony_ci 1: GPIO pull-up and pull-down resistor are disabled. 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ciExample board file extract: 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci pinctrl@80157000 { 7862306a36Sopenharmony_ci compatible = "stericsson,db8500-pinctrl"; 7962306a36Sopenharmony_ci nomadik-gpio-chips = <&gpio0>, <&gpio1>, <&gpio2>, <&gpio3>; 8062306a36Sopenharmony_ci prcm = <&prcmu>; 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci pinctrl-names = "default"; 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci slpm_in_wkup_pdis: slpm_in_wkup_pdis { 8562306a36Sopenharmony_ci ste,sleep = <1>; 8662306a36Sopenharmony_ci ste,sleep-input = <3>; 8762306a36Sopenharmony_ci ste,sleep-wakeup = <1>; 8862306a36Sopenharmony_ci ste,sleep-pull-disable = <0>; 8962306a36Sopenharmony_ci }; 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci slpm_out_hi_wkup_pdis: slpm_out_hi_wkup_pdis { 9262306a36Sopenharmony_ci ste,sleep = <1>; 9362306a36Sopenharmony_ci ste,sleep-output = <1>; 9462306a36Sopenharmony_ci ste,sleep-wakeup = <1>; 9562306a36Sopenharmony_ci ste,sleep-pull-disable = <0>; 9662306a36Sopenharmony_ci }; 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ci slpm_out_wkup_pdis: slpm_out_wkup_pdis { 9962306a36Sopenharmony_ci ste,sleep = <1>; 10062306a36Sopenharmony_ci ste,sleep-output = <2>; 10162306a36Sopenharmony_ci ste,sleep-wakeup = <1>; 10262306a36Sopenharmony_ci ste,sleep-pull-disable = <0>; 10362306a36Sopenharmony_ci }; 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_ci uart0 { 10662306a36Sopenharmony_ci uart0_default_mux: uart0_mux { 10762306a36Sopenharmony_ci u0_default_mux { 10862306a36Sopenharmony_ci function = "u0"; 10962306a36Sopenharmony_ci pins = "u0_a_1"; 11062306a36Sopenharmony_ci }; 11162306a36Sopenharmony_ci }; 11262306a36Sopenharmony_ci uart0_default_mode: uart0_default { 11362306a36Sopenharmony_ci uart0_default_cfg1 { 11462306a36Sopenharmony_ci pins = "GPIO0", "GPIO2"; 11562306a36Sopenharmony_ci ste,input = <1>; 11662306a36Sopenharmony_ci }; 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ci uart0_default_cfg2 { 11962306a36Sopenharmony_ci pins = "GPIO1", "GPIO3"; 12062306a36Sopenharmony_ci ste,output = <1>; 12162306a36Sopenharmony_ci }; 12262306a36Sopenharmony_ci }; 12362306a36Sopenharmony_ci uart0_sleep_mode: uart0_sleep { 12462306a36Sopenharmony_ci uart0_sleep_cfg1 { 12562306a36Sopenharmony_ci pins = "GPIO0", "GPIO2"; 12662306a36Sopenharmony_ci ste,config = <&slpm_in_wkup_pdis>; 12762306a36Sopenharmony_ci }; 12862306a36Sopenharmony_ci uart0_sleep_cfg2 { 12962306a36Sopenharmony_ci pins = "GPIO1"; 13062306a36Sopenharmony_ci ste,config = <&slpm_out_hi_wkup_pdis>; 13162306a36Sopenharmony_ci }; 13262306a36Sopenharmony_ci uart0_sleep_cfg3 { 13362306a36Sopenharmony_ci pins = "GPIO3"; 13462306a36Sopenharmony_ci ste,config = <&slpm_out_wkup_pdis>; 13562306a36Sopenharmony_ci }; 13662306a36Sopenharmony_ci }; 13762306a36Sopenharmony_ci }; 13862306a36Sopenharmony_ci }; 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_ci uart@80120000 { 14162306a36Sopenharmony_ci compatible = "arm,pl011", "arm,primecell"; 14262306a36Sopenharmony_ci reg = <0x80120000 0x1000>; 14362306a36Sopenharmony_ci interrupts = <0 11 0x4>; 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ci pinctrl-names = "default","sleep"; 14662306a36Sopenharmony_ci pinctrl-0 = <&uart0_default_mux>, <&uart0_default_mode>; 14762306a36Sopenharmony_ci pinctrl-1 = <&uart0_sleep_mode>; 14862306a36Sopenharmony_ci }; 149