Source
10
10
#include <dm/pinctrl.h>
11
11
12
12
static const char * const sandbox_pins[] = {
13
13
"SCL",
14
14
"SDA",
15
15
"TX",
16
16
"RX",
17
17
"W1"
18
18
};
19
19
20
+
static const char * const sandbox_pins_muxing[] = {
21
+
"I2C SCL",
22
+
"I2C SDA",
23
+
"Uart TX",
24
+
"Uart RX",
25
+
"1-wire gpio",
26
+
};
27
+
20
28
static const char * const sandbox_groups[] = {
21
29
"i2c",
22
30
"serial_a",
23
31
"serial_b",
24
32
"spi",
25
33
"w1",
26
34
};
27
35
28
36
static const char * const sandbox_functions[] = {
29
37
"i2c",
49
57
static int sandbox_get_pins_count(struct udevice *dev)
50
58
{
51
59
return ARRAY_SIZE(sandbox_pins);
52
60
}
53
61
54
62
static const char *sandbox_get_pin_name(struct udevice *dev, unsigned selector)
55
63
{
56
64
return sandbox_pins[selector];
57
65
}
58
66
67
+
static int sandbox_get_pin_muxing(struct udevice *dev,
68
+
unsigned int selector,
69
+
char *buf, int size)
70
+
{
71
+
snprintf(buf, size, "%s", sandbox_pins_muxing[selector]);
72
+
73
+
return 0;
74
+
}
75
+
59
76
static int sandbox_get_groups_count(struct udevice *dev)
60
77
{
61
78
return ARRAY_SIZE(sandbox_groups);
62
79
}
63
80
64
81
static const char *sandbox_get_group_name(struct udevice *dev,
65
82
unsigned selector)
66
83
{
67
84
return sandbox_groups[selector];
68
85
}
116
133
debug("sandbox pinconf: group = %d (%s), param = %d, arg = %d\n",
117
134
group_selector, sandbox_get_group_name(dev, group_selector),
118
135
param, argument);
119
136
120
137
return 0;
121
138
}
122
139
123
140
const struct pinctrl_ops sandbox_pinctrl_ops = {
124
141
.get_pins_count = sandbox_get_pins_count,
125
142
.get_pin_name = sandbox_get_pin_name,
143
+
.get_pin_muxing = sandbox_get_pin_muxing,
126
144
.get_groups_count = sandbox_get_groups_count,
127
145
.get_group_name = sandbox_get_group_name,
128
146
.get_functions_count = sandbox_get_functions_count,
129
147
.get_function_name = sandbox_get_function_name,
130
148
.pinmux_set = sandbox_pinmux_set,
131
149
.pinmux_group_set = sandbox_pinmux_group_set,
132
150
.pinconf_num_params = ARRAY_SIZE(sandbox_conf_params),
133
151
.pinconf_params = sandbox_conf_params,
134
152
.pinconf_set = sandbox_pinconf_set,
135
153
.pinconf_group_set = sandbox_pinconf_group_set,