162306a36Sopenharmony_ciCSR SiRFprimaII pinmux controller 262306a36Sopenharmony_ci 362306a36Sopenharmony_ciRequired properties: 462306a36Sopenharmony_ci- compatible : "sirf,prima2-pinctrl" 562306a36Sopenharmony_ci- reg : Address range of the pinctrl registers 662306a36Sopenharmony_ci- interrupts : Interrupts used by every GPIO group 762306a36Sopenharmony_ci- gpio-controller : Indicates this device is a GPIO controller 862306a36Sopenharmony_ci- interrupt-controller : Marks the device node as an interrupt controller 962306a36Sopenharmony_ciOptional properties: 1062306a36Sopenharmony_ci- sirf,pullups : if n-th bit of m-th bank is set, set a pullup on GPIO-n of bank m 1162306a36Sopenharmony_ci- sirf,pulldowns : if n-th bit of m-th bank is set, set a pulldown on GPIO-n of bank m 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciPlease refer to pinctrl-bindings.txt in this directory for details of the common 1462306a36Sopenharmony_cipinctrl bindings used by client devices. 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ciSiRFprimaII's pinmux nodes act as a container for an arbitrary number of subnodes. 1762306a36Sopenharmony_ciEach of these subnodes represents some desired configuration for a group of pins. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciRequired subnode-properties: 2062306a36Sopenharmony_ci- sirf,pins : An array of strings. Each string contains the name of a group. 2162306a36Sopenharmony_ci- sirf,function: A string containing the name of the function to mux to the 2262306a36Sopenharmony_ci group. 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci Valid values for group and function names can be found from looking at the 2562306a36Sopenharmony_ci group and function arrays in driver files: 2662306a36Sopenharmony_ci drivers/pinctrl/pinctrl-sirf.c 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ciFor example, pinctrl might have subnodes like the following: 2962306a36Sopenharmony_ci uart2_pins_a: uart2@0 { 3062306a36Sopenharmony_ci uart { 3162306a36Sopenharmony_ci sirf,pins = "uart2grp"; 3262306a36Sopenharmony_ci sirf,function = "uart2"; 3362306a36Sopenharmony_ci }; 3462306a36Sopenharmony_ci }; 3562306a36Sopenharmony_ci uart2_noflow_pins_a: uart2@1 { 3662306a36Sopenharmony_ci uart { 3762306a36Sopenharmony_ci sirf,pins = "uart2_nostreamctrlgrp"; 3862306a36Sopenharmony_ci sirf,function = "uart2_nostreamctrl"; 3962306a36Sopenharmony_ci }; 4062306a36Sopenharmony_ci }; 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ciFor a specific board, if it wants to use uart2 without hardware flow control, 4362306a36Sopenharmony_ciit can add the following to its board-specific .dts file. 4462306a36Sopenharmony_ciuart2: uart@b0070000 { 4562306a36Sopenharmony_ci pinctrl-names = "default"; 4662306a36Sopenharmony_ci pinctrl-0 = <&uart2_noflow_pins_a>; 4762306a36Sopenharmony_ci} 48