@@ -32,8 +32,13 @@ static void device_name_get(size_t idx, struct shell_static_entry *entry)
32
32
33
33
SHELL_DYNAMIC_CMD_CREATE (dsub_device_name , device_name_get );
34
34
35
- static int parse_device_arg (const struct shell * sh , char * * argv , const struct device * * dev )
35
+ static int parse_device_arg (const struct shell * sh , size_t argc ,
36
+ char * * argv , const struct device * * dev )
36
37
{
38
+ if (argc < 2 ) {
39
+ shell_error (sh , "not enough arguments" );
40
+ return - EINVAL ;
41
+ }
37
42
* dev = shell_device_get_binding (argv [1 ]);
38
43
if (!* dev ) {
39
44
shell_error (sh , "device %s not found" , argv [1 ]);
@@ -55,12 +60,12 @@ static int cmd_mdio_scan(const struct shell *sh, size_t argc, char **argv)
55
60
uint16_t reg_addr ;
56
61
int ret ;
57
62
58
- ret = parse_device_arg (sh , argv , & dev );
63
+ ret = parse_device_arg (sh , argc , argv , & dev );
59
64
if (ret < 0 ) {
60
65
return ret ;
61
66
}
62
67
63
- if (argc >= 2 ) {
68
+ if (argc >= 3 ) {
64
69
reg_addr = strtol (argv [2 ], NULL , 16 );
65
70
} else {
66
71
reg_addr = 0 ;
@@ -98,7 +103,7 @@ static int cmd_mdio_write(const struct shell *sh, size_t argc, char **argv)
98
103
uint16_t port_addr ;
99
104
int ret ;
100
105
101
- ret = parse_device_arg (sh , argv , & dev );
106
+ ret = parse_device_arg (sh , argc , argv , & dev );
102
107
if (ret < 0 ) {
103
108
return ret ;
104
109
}
@@ -130,7 +135,7 @@ static int cmd_mdio_read(const struct shell *sh, size_t argc, char **argv)
130
135
uint16_t port_addr ;
131
136
int ret ;
132
137
133
- ret = parse_device_arg (sh , argv , & dev );
138
+ ret = parse_device_arg (sh , argc , argv , & dev );
134
139
if (ret < 0 ) {
135
140
return ret ;
136
141
}
@@ -164,7 +169,7 @@ static int cmd_mdio_write_45(const struct shell *sh, size_t argc, char **argv)
164
169
uint8_t port_addr ;
165
170
int ret ;
166
171
167
- ret = parse_device_arg (sh , argv , & dev );
172
+ ret = parse_device_arg (sh , argc , argv , & dev );
168
173
if (ret < 0 ) {
169
174
return ret ;
170
175
}
@@ -198,7 +203,7 @@ static int cmd_mdio_read_c45(const struct shell *sh, size_t argc, char **argv)
198
203
uint8_t port_addr ;
199
204
int ret ;
200
205
201
- ret = parse_device_arg (sh , argv , & dev );
206
+ ret = parse_device_arg (sh , argc , argv , & dev );
202
207
if (ret < 0 ) {
203
208
return ret ;
204
209
}
@@ -226,7 +231,7 @@ static int cmd_mdio_read_c45(const struct shell *sh, size_t argc, char **argv)
226
231
SHELL_STATIC_SUBCMD_SET_CREATE (sub_mdio_cmds ,
227
232
SHELL_CMD_ARG (scan , & dsub_device_name ,
228
233
"Scan MDIO bus for devices: scan <device> [<reg_addr>]" ,
229
- cmd_mdio_scan , 1 , 1 ),
234
+ cmd_mdio_scan , 2 , 1 ),
230
235
SHELL_CMD_ARG (read , & dsub_device_name ,
231
236
"Read from MDIO device: read <device> <phy_addr> <reg_addr>" ,
232
237
cmd_mdio_read , 4 , 0 ),
0 commit comments