mirror of
https://github.com/torvalds/linux.git
synced 2024-12-21 10:31:54 +00:00
cbc59e26e9
Add pinctrl device tree binding documentation for the General Purpose Pin Mapping module of the Conexant CX92755 SoC. Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
87 lines
2.9 KiB
Plaintext
87 lines
2.9 KiB
Plaintext
Conexant Digicolor CX92755 General Purpose Pin Mapping
|
|
|
|
This document describes the device tree binding of the pin mapping hardware
|
|
modules in the Conexant Digicolor CX92755 SoCs. The CX92755 in one of the
|
|
Digicolor series of SoCs.
|
|
|
|
=== Pin Controller Node ===
|
|
|
|
Required Properties:
|
|
|
|
- compatible: Must be "cnxt,cx92755-pinctrl"
|
|
- reg: Base address of the General Purpose Pin Mapping register block and the
|
|
size of the block.
|
|
- gpio-controller: Marks the device node as a GPIO controller.
|
|
- #gpio-cells: Must be <2>. The first cell is the pin number and the
|
|
second cell is used to specify flags. See include/dt-bindings/gpio/gpio.h
|
|
for possible values.
|
|
|
|
For example, the following is the bare minimum node:
|
|
|
|
pinctrl: pinctrl@f0000e20 {
|
|
compatible = "cnxt,cx92755-pinctrl";
|
|
reg = <0xf0000e20 0x100>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
};
|
|
|
|
As a pin controller device, in addition to the required properties, this node
|
|
should also contain the pin configuration nodes that client devices reference,
|
|
if any.
|
|
|
|
For a general description of GPIO bindings, please refer to ../gpio/gpio.txt.
|
|
|
|
=== Pin Configuration Node ===
|
|
|
|
Each pin configuration node is a sub-node of the pin controller node and is a
|
|
container of an arbitrary number of subnodes, called pin group nodes in this
|
|
document.
|
|
|
|
Please refer to the pinctrl-bindings.txt in this directory for details of the
|
|
common pinctrl bindings used by client devices, including the definition of a
|
|
"pin configuration node".
|
|
|
|
=== Pin Group Node ===
|
|
|
|
A pin group node specifies the desired pin mux for an arbitrary number of
|
|
pins. The name of the pin group node is optional and not used.
|
|
|
|
A pin group node only affects the properties specified in the node, and has no
|
|
effect on any properties that are omitted.
|
|
|
|
The pin group node accepts a subset of the generic pin config properties. For
|
|
details generic pin config properties, please refer to pinctrl-bindings.txt
|
|
and <include/linux/pinctrl/pinconfig-generic.h>.
|
|
|
|
Required Pin Group Node Properties:
|
|
|
|
- pins: Multiple strings. Specifies the name(s) of one or more pins to be
|
|
configured by this node. The format of a pin name string is "GP_xy", where x
|
|
is an uppercase character from 'A' to 'R', and y is a digit from 0 to 7.
|
|
- function: String. Specifies the pin mux selection. Values must be one of:
|
|
"gpio", "client_a", "client_b", "client_c"
|
|
|
|
Example:
|
|
pinctrl: pinctrl@f0000e20 {
|
|
compatible = "cnxt,cx92755-pinctrl";
|
|
reg = <0xf0000e20 0x100>;
|
|
|
|
uart0_default: uart0_active {
|
|
data_signals {
|
|
pins = "GP_O0", "GP_O1";
|
|
function = "client_b";
|
|
};
|
|
};
|
|
};
|
|
|
|
uart0: uart@f0000740 {
|
|
compatible = "cnxt,cx92755-usart";
|
|
...
|
|
pinctrl-0 = <&uart0_default>;
|
|
pinctrl-names = "default";
|
|
};
|
|
|
|
In the example above, a single pin group configuration node defines the
|
|
"client select" for the Rx and Tx signals of uart0. The uart0 node references
|
|
that pin configuration node using the &uart0_default phandle.
|