]>
Commit | Line | Data |
---|---|---|
f9367793 WC |
1 | CSR SiRFatlas7 pinmux controller |
2 | ||
3 | Required properties: | |
4 | - compatible : "sirf,atlas7-ioc" | |
5 | - reg : Address range of the pinctrl registers | |
6 | ||
7 | For 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 | ||
60 | Please refer to pinctrl-bindings.txt in this directory for details of the common | |
61 | pinctrl bindings used by client devices. | |
62 | ||
63 | SiRFatlas7's pinmux nodes act as a container for an abitrary number of subnodes. | |
64 | Each of these subnodes represents some desired configuration for a group of pins. | |
65 | ||
66 | Required 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 | ||
75 | For 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 | ||
97 | For a specific board, if it wants to use sd1, | |
98 | it can add the following to its board-specific .dts file. | |
4c9847b7 | 99 | sd1: sd@12340000 { |
f9367793 WC |
100 | pinctrl-names = "default"; |
101 | pinctrl-0 = <&sd1_pmx0>; | |
102 | } | |
103 | ||
104 | or | |
105 | ||
4c9847b7 | 106 | sd1: sd@12340000 { |
f9367793 WC |
107 | pinctrl-names = "default"; |
108 | pinctrl-0 = <&sd1_pmx1>; | |
109 | } |