xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/marvell,mvebu-pinctrl.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot* Marvell SoC pinctrl core driver for mpp
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotThe pinctrl driver enables Marvell SoCs to configure the multi-purpose pins
4*c66ec88fSEmmanuel Vadot(mpp) to a specific function. For each SoC family there is a SoC specific
5*c66ec88fSEmmanuel Vadotdriver using this core driver.
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel VadotPlease refer to pinctrl-bindings.txt in this directory for details of the
8*c66ec88fSEmmanuel Vadotcommon pinctrl bindings used by client devices, including the meaning of the
9*c66ec88fSEmmanuel Vadotphrase "pin configuration node".
10*c66ec88fSEmmanuel Vadot
11*c66ec88fSEmmanuel VadotA Marvell SoC pin configuration node is a node of a group of pins which can
12*c66ec88fSEmmanuel Vadotbe used for a specific device or function. Each node requires one or more
13*c66ec88fSEmmanuel Vadotmpp pins or group of pins and a mpp function common to all pins.
14*c66ec88fSEmmanuel Vadot
15*c66ec88fSEmmanuel VadotRequired properties for pinctrl driver:
16*c66ec88fSEmmanuel Vadot- compatible: "marvell,<soc>-pinctrl"
17*c66ec88fSEmmanuel Vadot  Please refer to each marvell,<soc>-pinctrl.txt binding doc for supported SoCs.
18*c66ec88fSEmmanuel Vadot
19*c66ec88fSEmmanuel VadotRequired properties for pin configuration node:
20*c66ec88fSEmmanuel Vadot- marvell,pins: string array of mpp pins or group of pins to be muxed.
21*c66ec88fSEmmanuel Vadot- marvell,function: string representing a function to mux to for all
22*c66ec88fSEmmanuel Vadot    marvell,pins given in this pin configuration node. The function has to be
23*c66ec88fSEmmanuel Vadot    common for all marvell,pins. Please refer to marvell,<soc>-pinctrl.txt for
24*c66ec88fSEmmanuel Vadot    valid pin/pin group names and available function names for each SoC.
25*c66ec88fSEmmanuel Vadot
26*c66ec88fSEmmanuel VadotExamples:
27*c66ec88fSEmmanuel Vadot
28*c66ec88fSEmmanuel Vadotuart1: serial@12100 {
29*c66ec88fSEmmanuel Vadot	compatible = "ns16550a";
30*c66ec88fSEmmanuel Vadot	reg = <0x12100 0x100>;
31*c66ec88fSEmmanuel Vadot	reg-shift = <2>;
32*c66ec88fSEmmanuel Vadot	interrupts = <7>;
33*c66ec88fSEmmanuel Vadot
34*c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pmx_uart1_sw>;
35*c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
36*c66ec88fSEmmanuel Vadot};
37*c66ec88fSEmmanuel Vadot
38*c66ec88fSEmmanuel Vadotpinctrl: pinctrl@d0200 {
39*c66ec88fSEmmanuel Vadot	compatible = "marvell,dove-pinctrl";
40*c66ec88fSEmmanuel Vadot	reg = <0xd0200 0x14>, <0xd0440 0x04>, <0xd802c 0x08>;
41*c66ec88fSEmmanuel Vadot
42*c66ec88fSEmmanuel Vadot	pmx_uart1_sw: pmx-uart1-sw {
43*c66ec88fSEmmanuel Vadot		marvell,pins = "mpp_uart1";
44*c66ec88fSEmmanuel Vadot		marvell,function = "uart1";
45*c66ec88fSEmmanuel Vadot	};
46*c66ec88fSEmmanuel Vadot};
47