1*c66ec88fSEmmanuel VadotConexant Digicolor CX92755 General Purpose Pin Mapping 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotThis document describes the device tree binding of the pin mapping hardware 4*c66ec88fSEmmanuel Vadotmodules in the Conexant Digicolor CX92755 SoCs. The CX92755 in one of the 5*c66ec88fSEmmanuel VadotDigicolor series of SoCs. 6*c66ec88fSEmmanuel Vadot 7*c66ec88fSEmmanuel Vadot=== Pin Controller Node === 8*c66ec88fSEmmanuel Vadot 9*c66ec88fSEmmanuel VadotRequired Properties: 10*c66ec88fSEmmanuel Vadot 11*c66ec88fSEmmanuel Vadot- compatible: Must be "cnxt,cx92755-pinctrl" 12*c66ec88fSEmmanuel Vadot- reg: Base address of the General Purpose Pin Mapping register block and the 13*c66ec88fSEmmanuel Vadot size of the block. 14*c66ec88fSEmmanuel Vadot- gpio-controller: Marks the device node as a GPIO controller. 15*c66ec88fSEmmanuel Vadot- #gpio-cells: Must be <2>. The first cell is the pin number and the 16*c66ec88fSEmmanuel Vadot second cell is used to specify flags. See include/dt-bindings/gpio/gpio.h 17*c66ec88fSEmmanuel Vadot for possible values. 18*c66ec88fSEmmanuel Vadot 19*c66ec88fSEmmanuel VadotFor example, the following is the bare minimum node: 20*c66ec88fSEmmanuel Vadot 21*c66ec88fSEmmanuel Vadot pinctrl: pinctrl@f0000e20 { 22*c66ec88fSEmmanuel Vadot compatible = "cnxt,cx92755-pinctrl"; 23*c66ec88fSEmmanuel Vadot reg = <0xf0000e20 0x100>; 24*c66ec88fSEmmanuel Vadot gpio-controller; 25*c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 26*c66ec88fSEmmanuel Vadot }; 27*c66ec88fSEmmanuel Vadot 28*c66ec88fSEmmanuel VadotAs a pin controller device, in addition to the required properties, this node 29*c66ec88fSEmmanuel Vadotshould also contain the pin configuration nodes that client devices reference, 30*c66ec88fSEmmanuel Vadotif any. 31*c66ec88fSEmmanuel Vadot 32*c66ec88fSEmmanuel VadotFor a general description of GPIO bindings, please refer to ../gpio/gpio.txt. 33*c66ec88fSEmmanuel Vadot 34*c66ec88fSEmmanuel Vadot=== Pin Configuration Node === 35*c66ec88fSEmmanuel Vadot 36*c66ec88fSEmmanuel VadotEach pin configuration node is a sub-node of the pin controller node and is a 37*c66ec88fSEmmanuel Vadotcontainer of an arbitrary number of subnodes, called pin group nodes in this 38*c66ec88fSEmmanuel Vadotdocument. 39*c66ec88fSEmmanuel Vadot 40*c66ec88fSEmmanuel VadotPlease refer to the pinctrl-bindings.txt in this directory for details of the 41*c66ec88fSEmmanuel Vadotcommon pinctrl bindings used by client devices, including the definition of a 42*c66ec88fSEmmanuel Vadot"pin configuration node". 43*c66ec88fSEmmanuel Vadot 44*c66ec88fSEmmanuel Vadot=== Pin Group Node === 45*c66ec88fSEmmanuel Vadot 46*c66ec88fSEmmanuel VadotA pin group node specifies the desired pin mux for an arbitrary number of 47*c66ec88fSEmmanuel Vadotpins. The name of the pin group node is optional and not used. 48*c66ec88fSEmmanuel Vadot 49*c66ec88fSEmmanuel VadotA pin group node only affects the properties specified in the node, and has no 50*c66ec88fSEmmanuel Vadoteffect on any properties that are omitted. 51*c66ec88fSEmmanuel Vadot 52*c66ec88fSEmmanuel VadotThe pin group node accepts a subset of the generic pin config properties. For 53*c66ec88fSEmmanuel Vadotdetails generic pin config properties, please refer to pinctrl-bindings.txt 54*c66ec88fSEmmanuel Vadotand <include/linux/pinctrl/pinconfig-generic.h>. 55*c66ec88fSEmmanuel Vadot 56*c66ec88fSEmmanuel VadotRequired Pin Group Node Properties: 57*c66ec88fSEmmanuel Vadot 58*c66ec88fSEmmanuel Vadot- pins: Multiple strings. Specifies the name(s) of one or more pins to be 59*c66ec88fSEmmanuel Vadot configured by this node. The format of a pin name string is "GP_xy", where x 60*c66ec88fSEmmanuel Vadot is an uppercase character from 'A' to 'R', and y is a digit from 0 to 7. 61*c66ec88fSEmmanuel Vadot- function: String. Specifies the pin mux selection. Values must be one of: 62*c66ec88fSEmmanuel Vadot "gpio", "client_a", "client_b", "client_c" 63*c66ec88fSEmmanuel Vadot 64*c66ec88fSEmmanuel VadotExample: 65*c66ec88fSEmmanuel Vadot pinctrl: pinctrl@f0000e20 { 66*c66ec88fSEmmanuel Vadot compatible = "cnxt,cx92755-pinctrl"; 67*c66ec88fSEmmanuel Vadot reg = <0xf0000e20 0x100>; 68*c66ec88fSEmmanuel Vadot 69*c66ec88fSEmmanuel Vadot uart0_default: uart0_active { 70*c66ec88fSEmmanuel Vadot data_signals { 71*c66ec88fSEmmanuel Vadot pins = "GP_O0", "GP_O1"; 72*c66ec88fSEmmanuel Vadot function = "client_b"; 73*c66ec88fSEmmanuel Vadot }; 74*c66ec88fSEmmanuel Vadot }; 75*c66ec88fSEmmanuel Vadot }; 76*c66ec88fSEmmanuel Vadot 77*c66ec88fSEmmanuel Vadot uart0: uart@f0000740 { 78*c66ec88fSEmmanuel Vadot compatible = "cnxt,cx92755-usart"; 79*c66ec88fSEmmanuel Vadot ... 80*c66ec88fSEmmanuel Vadot pinctrl-0 = <&uart0_default>; 81*c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 82*c66ec88fSEmmanuel Vadot }; 83*c66ec88fSEmmanuel Vadot 84*c66ec88fSEmmanuel VadotIn the example above, a single pin group configuration node defines the 85*c66ec88fSEmmanuel Vadot"client select" for the Rx and Tx signals of uart0. The uart0 node references 86*c66ec88fSEmmanuel Vadotthat pin configuration node using the &uart0_default phandle. 87