xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/pinctrl-atlas7.txt (revision b077aed33b7b6aefca7b17ddb250cf521f938613)
1CSR SiRFatlas7 pinmux controller
2
3Required properties:
4- compatible	: "sirf,atlas7-ioc"
5- reg		: Address range of the pinctrl registers
6
7For example, pinctrl might have properties like the following:
8	pinctrl: ioc@18880000 {
9			compatible = "sirf,atlas7-ioc";
10			reg = <0x18880000 0x1000>;
11
12			a_ac97_pmx: ac97@0 {
13				ac97 {
14					groups = "audio_ac97_grp";
15					function = "audio_ac97";
16				};
17			};
18
19			...
20
21			sd2_pmx: sd2@0 {
22				sd2 {
23					groups = "sd2_grp0";
24					function = "sd2";
25				};
26			};
27
28			...
29
30
31			sample0_cfg: sample0@0 {
32				sample0 {
33					pins = "ldd_0", "ldd_1";
34					bias-pull-up;
35				};
36			};
37
38			sample1_cfg: sample1@0 {
39				sample1 {
40					pins = "ldd_2", "ldd_3";
41					input-schmitt-enable;
42				};
43			};
44
45			sample2_cfg: sample2@0 {
46				sample2 {
47					groups = "uart4_nopause_grp";
48					bias-pull-down;
49				};
50			};
51
52			sample3_cfg: sample3@0 {
53				sample3 {
54					pins = "ldd_4", "ldd_5";
55					drive-strength = <2>;
56				};
57			};
58	};
59
60Please refer to pinctrl-bindings.txt in this directory for details of the common
61pinctrl bindings used by client devices.
62
63SiRFatlas7's pinmux nodes act as a container for an arbitrary number of subnodes.
64Each of these subnodes represents some desired configuration for a group of pins.
65
66Required subnode-properties:
67- groups : An array of strings. Each string contains the name of a group.
68- function: A string containing the name of the function to mux to the
69  group.
70
71  Valid values for group and function names can be found from looking at the
72  group and function arrays in driver files:
73  drivers/pinctrl/pinctrl-sirf.c
74
75For example, pinctrl might have subnodes like the following:
76	sd0_pmx: sd0@0 {
77		sd0 {
78			groups = "sd0_grp";
79			function = "sd0";
80		};
81	};
82
83	sd1_pmx0: sd1@0 {
84		sd1 {
85			groups = "sd1_grp0";
86			function = "sd1_m0";
87		};
88	};
89
90	sd1_pmx1: sd1@1 {
91		sd1 {
92			groups = "sd1_grp1";
93			function = "sd1_m1";
94		};
95	};
96
97For a specific board, if it wants to use sd1,
98it can add the following to its board-specific .dts file.
99sd1: sd@12340000 {
100	pinctrl-names = "default";
101	pinctrl-0 = <&sd1_pmx0>;
102}
103
104or
105
106sd1: sd@12340000 {
107	pinctrl-names = "default";
108	pinctrl-0 = <&sd1_pmx1>;
109}
110