xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/cnxt,cx92755-pinctrl.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
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