xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/cortina,gemini-pinctrl.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotCortina Systems Gemini pin controller
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotThis pin controller is found in the Cortina Systems Gemini SoC family,
4*c66ec88fSEmmanuel Vadotsee further arm/gemini.txt. It is a purely group-based multiplexing pin
5*c66ec88fSEmmanuel Vadotcontroller.
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel VadotThe pin controller node must be a subnode of the system controller node.
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel VadotRequired properties:
10*c66ec88fSEmmanuel Vadot- compatible: "cortina,gemini-pinctrl"
11*c66ec88fSEmmanuel Vadot
12*c66ec88fSEmmanuel VadotSubnodes of the pin controller contain pin control multiplexing set-up
13*c66ec88fSEmmanuel Vadotand pin configuration of individual pins.
14*c66ec88fSEmmanuel Vadot
15*c66ec88fSEmmanuel VadotPlease refer to pinctrl-bindings.txt for generic pin multiplexing nodes
16*c66ec88fSEmmanuel Vadotand generic pin config nodes.
17*c66ec88fSEmmanuel Vadot
18*c66ec88fSEmmanuel VadotSupported configurations:
19*c66ec88fSEmmanuel Vadot- skew-delay is supported on the Ethernet pins
20*c66ec88fSEmmanuel Vadot- drive-strength with 4, 8, 12 or 16 mA as argument is supported for
21*c66ec88fSEmmanuel Vadot  entire groups on the groups "idegrp", "gmii_gmac0_grp", "gmii_gmac1_grp"
22*c66ec88fSEmmanuel Vadot  and "pcigrp".
23*c66ec88fSEmmanuel Vadot
24*c66ec88fSEmmanuel VadotExample:
25*c66ec88fSEmmanuel Vadot
26*c66ec88fSEmmanuel Vadot
27*c66ec88fSEmmanuel Vadotsyscon {
28*c66ec88fSEmmanuel Vadot	compatible = "cortina,gemini-syscon";
29*c66ec88fSEmmanuel Vadot	...
30*c66ec88fSEmmanuel Vadot	pinctrl {
31*c66ec88fSEmmanuel Vadot		compatible = "cortina,gemini-pinctrl";
32*c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
33*c66ec88fSEmmanuel Vadot		pinctrl-0 = <&dram_default_pins>, <&system_default_pins>,
34*c66ec88fSEmmanuel Vadot		    <&vcontrol_default_pins>;
35*c66ec88fSEmmanuel Vadot
36*c66ec88fSEmmanuel Vadot		dram_default_pins: pinctrl-dram {
37*c66ec88fSEmmanuel Vadot			mux {
38*c66ec88fSEmmanuel Vadot				function = "dram";
39*c66ec88fSEmmanuel Vadot				groups = "dramgrp";
40*c66ec88fSEmmanuel Vadot			};
41*c66ec88fSEmmanuel Vadot		};
42*c66ec88fSEmmanuel Vadot		rtc_default_pins: pinctrl-rtc {
43*c66ec88fSEmmanuel Vadot			mux {
44*c66ec88fSEmmanuel Vadot				function = "rtc";
45*c66ec88fSEmmanuel Vadot				groups = "rtcgrp";
46*c66ec88fSEmmanuel Vadot			};
47*c66ec88fSEmmanuel Vadot		};
48*c66ec88fSEmmanuel Vadot		power_default_pins: pinctrl-power {
49*c66ec88fSEmmanuel Vadot			mux {
50*c66ec88fSEmmanuel Vadot				function = "power";
51*c66ec88fSEmmanuel Vadot				groups = "powergrp";
52*c66ec88fSEmmanuel Vadot			};
53*c66ec88fSEmmanuel Vadot		};
54*c66ec88fSEmmanuel Vadot		system_default_pins: pinctrl-system {
55*c66ec88fSEmmanuel Vadot			mux {
56*c66ec88fSEmmanuel Vadot				function = "system";
57*c66ec88fSEmmanuel Vadot				groups = "systemgrp";
58*c66ec88fSEmmanuel Vadot			};
59*c66ec88fSEmmanuel Vadot		};
60*c66ec88fSEmmanuel Vadot		(...)
61*c66ec88fSEmmanuel Vadot		uart_default_pins: pinctrl-uart {
62*c66ec88fSEmmanuel Vadot			mux {
63*c66ec88fSEmmanuel Vadot				function = "uart";
64*c66ec88fSEmmanuel Vadot				groups = "uartrxtxgrp";
65*c66ec88fSEmmanuel Vadot			};
66*c66ec88fSEmmanuel Vadot		};
67*c66ec88fSEmmanuel Vadot	};
68*c66ec88fSEmmanuel Vadot};
69