Use a command group 'bcm2835gpio' with subcommands instead of individual commands with 'bcm2835gpio_' prefix. The old commands are still available for backward compatibility but marked as deprecated. Change-Id: I8f7b14273b1b2813ac3c9704605d175fa2053008 Signed-off-by: Marc Schink <dev@zapb.de> Reviewed-on: http://openocd.zylin.com/6396 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>jim
@@ -3197,67 +3197,67 @@ configuration on exit. | |||
See @file{interface/raspberrypi-native.cfg} for a sample config and | |||
pinout. | |||
@deffn {Config Command} {bcm2835gpio_jtag_nums} @var{tck} @var{tms} @var{tdi} @var{tdo} | |||
@deffn {Config Command} {bcm2835gpio jtag_nums} @var{tck} @var{tms} @var{tdi} @var{tdo} | |||
Set JTAG transport GPIO numbers for TCK, TMS, TDI, and TDO (in that order). | |||
Must be specified to enable JTAG transport. These pins can also be specified | |||
individually. | |||
@end deffn | |||
@deffn {Config Command} {bcm2835gpio_tck_num} @var{tck} | |||
@deffn {Config Command} {bcm2835gpio tck_num} @var{tck} | |||
Set TCK GPIO number. Must be specified to enable JTAG transport. Can also be | |||
specified using the configuration command bcm2835gpio_jtag_nums. | |||
specified using the configuration command @command{bcm2835gpio jtag_nums}. | |||
@end deffn | |||
@deffn {Config Command} {bcm2835gpio_tms_num} @var{tms} | |||
@deffn {Config Command} {bcm2835gpio tms_num} @var{tms} | |||
Set TMS GPIO number. Must be specified to enable JTAG transport. Can also be | |||
specified using the configuration command bcm2835gpio_jtag_nums. | |||
specified using the configuration command @command{bcm2835gpio jtag_nums}. | |||
@end deffn | |||
@deffn {Config Command} {bcm2835gpio_tdo_num} @var{tdo} | |||
@deffn {Config Command} {bcm2835gpio tdo_num} @var{tdo} | |||
Set TDO GPIO number. Must be specified to enable JTAG transport. Can also be | |||
specified using the configuration command bcm2835gpio_jtag_nums. | |||
specified using the configuration command @command{bcm2835gpio jtag_nums}. | |||
@end deffn | |||
@deffn {Config Command} {bcm2835gpio_tdi_num} @var{tdi} | |||
@deffn {Config Command} {bcm2835gpio tdi_num} @var{tdi} | |||
Set TDI GPIO number. Must be specified to enable JTAG transport. Can also be | |||
specified using the configuration command bcm2835gpio_jtag_nums. | |||
specified using the configuration command @command{bcm2835gpio jtag_nums}. | |||
@end deffn | |||
@deffn {Config Command} {bcm2835gpio_swd_nums} @var{swclk} @var{swdio} | |||
@deffn {Config Command} {bcm2835gpio swd_nums} @var{swclk} @var{swdio} | |||
Set SWD transport GPIO numbers for SWCLK and SWDIO (in that order). Must be | |||
specified to enable SWD transport. These pins can also be specified individually. | |||
@end deffn | |||
@deffn {Config Command} {bcm2835gpio_swclk_num} @var{swclk} | |||
@deffn {Config Command} {bcm2835gpio swclk_num} @var{swclk} | |||
Set SWCLK GPIO number. Must be specified to enable SWD transport. Can also be | |||
specified using the configuration command bcm2835gpio_swd_nums. | |||
specified using the configuration command @command{bcm2835gpio swd_nums}. | |||
@end deffn | |||
@deffn {Config Command} {bcm2835gpio_swdio_num} @var{swdio} | |||
@deffn {Config Command} {bcm2835gpio swdio_num} @var{swdio} | |||
Set SWDIO GPIO number. Must be specified to enable SWD transport. Can also be | |||
specified using the configuration command bcm2835gpio_swd_nums. | |||
specified using the configuration command @command{bcm2835gpio swd_nums}. | |||
@end deffn | |||
@deffn {Config Command} {bcm2835gpio_swdio_dir_num} @var{swdio} @var{dir} | |||
@deffn {Config Command} {bcm2835gpio swdio_dir_num} @var{swdio} @var{dir} | |||
Set SWDIO direction control pin GPIO number. If specified, this pin can be used | |||
to control the direction of an external buffer on the SWDIO pin (set=output | |||
mode, clear=input mode). If not specified, this feature is disabled. | |||
@end deffn | |||
@deffn {Config Command} {bcm2835gpio_srst_num} @var{srst} | |||
@deffn {Config Command} {bcm2835gpio srst_num} @var{srst} | |||
Set SRST GPIO number. Must be specified to enable SRST. | |||
@end deffn | |||
@deffn {Config Command} {bcm2835gpio_trst_num} @var{trst} | |||
@deffn {Config Command} {bcm2835gpio trst_num} @var{trst} | |||
Set TRST GPIO number. Must be specified to enable TRST. | |||
@end deffn | |||
@deffn {Config Command} {bcm2835gpio_speed_coeffs} @var{speed_coeff} @var{speed_offset} | |||
@deffn {Config Command} {bcm2835gpio speed_coeffs} @var{speed_coeff} @var{speed_offset} | |||
Set SPEED_COEFF and SPEED_OFFSET for delay calculations. If unspecified, | |||
speed_coeff defaults to 113714, and speed_offset defaults to 28. | |||
@end deffn | |||
@deffn {Config Command} {bcm2835gpio_peripheral_base} @var{base} | |||
@deffn {Config Command} {bcm2835gpio peripheral_base} @var{base} | |||
Set the peripheral base register address to access GPIOs. For the RPi1, use | |||
0x20000000. For RPi2 and RPi3, use 0x3F000000. For RPi4, use 0xFE000000. A full | |||
list can be found in the | |||
@@ -338,93 +338,93 @@ COMMAND_HANDLER(bcm2835gpio_handle_peripheral_base) | |||
return ERROR_OK; | |||
} | |||
static const struct command_registration bcm2835gpio_command_handlers[] = { | |||
static const struct command_registration bcm2835gpio_subcommand_handlers[] = { | |||
{ | |||
.name = "bcm2835gpio_jtag_nums", | |||
.name = "jtag_nums", | |||
.handler = &bcm2835gpio_handle_jtag_gpionums, | |||
.mode = COMMAND_CONFIG, | |||
.help = "gpio numbers for tck, tms, tdi, tdo. (in that order)", | |||
.usage = "[tck tms tdi tdo]", | |||
}, | |||
{ | |||
.name = "bcm2835gpio_tck_num", | |||
.name = "tck_num", | |||
.handler = &bcm2835gpio_handle_jtag_gpionum_tck, | |||
.mode = COMMAND_CONFIG, | |||
.help = "gpio number for tck.", | |||
.usage = "[tck]", | |||
}, | |||
{ | |||
.name = "bcm2835gpio_tms_num", | |||
.name = "tms_num", | |||
.handler = &bcm2835gpio_handle_jtag_gpionum_tms, | |||
.mode = COMMAND_CONFIG, | |||
.help = "gpio number for tms.", | |||
.usage = "[tms]", | |||
}, | |||
{ | |||
.name = "bcm2835gpio_tdo_num", | |||
.name = "tdo_num", | |||
.handler = &bcm2835gpio_handle_jtag_gpionum_tdo, | |||
.mode = COMMAND_CONFIG, | |||
.help = "gpio number for tdo.", | |||
.usage = "[tdo]", | |||
}, | |||
{ | |||
.name = "bcm2835gpio_tdi_num", | |||
.name = "tdi_num", | |||
.handler = &bcm2835gpio_handle_jtag_gpionum_tdi, | |||
.mode = COMMAND_CONFIG, | |||
.help = "gpio number for tdi.", | |||
.usage = "[tdi]", | |||
}, | |||
{ | |||
.name = "bcm2835gpio_swd_nums", | |||
.name = "swd_nums", | |||
.handler = &bcm2835gpio_handle_swd_gpionums, | |||
.mode = COMMAND_CONFIG, | |||
.help = "gpio numbers for swclk, swdio. (in that order)", | |||
.usage = "[swclk swdio]", | |||
}, | |||
{ | |||
.name = "bcm2835gpio_swclk_num", | |||
.name = "swclk_num", | |||
.handler = &bcm2835gpio_handle_swd_gpionum_swclk, | |||
.mode = COMMAND_CONFIG, | |||
.help = "gpio number for swclk.", | |||
.usage = "[swclk]", | |||
}, | |||
{ | |||
.name = "bcm2835gpio_swdio_num", | |||
.name = "swdio_num", | |||
.handler = &bcm2835gpio_handle_swd_gpionum_swdio, | |||
.mode = COMMAND_CONFIG, | |||
.help = "gpio number for swdio.", | |||
.usage = "[swdio]", | |||
}, | |||
{ | |||
.name = "bcm2835gpio_swdio_dir_num", | |||
.name = "swdio_dir_num", | |||
.handler = &bcm2835gpio_handle_swd_dir_gpionum_swdio, | |||
.mode = COMMAND_CONFIG, | |||
.help = "gpio number for swdio direction control pin (set=output mode, clear=input mode)", | |||
.usage = "[swdio_dir]", | |||
}, | |||
{ | |||
.name = "bcm2835gpio_srst_num", | |||
.name = "srst_num", | |||
.handler = &bcm2835gpio_handle_jtag_gpionum_srst, | |||
.mode = COMMAND_CONFIG, | |||
.help = "gpio number for srst.", | |||
.usage = "[srst]", | |||
}, | |||
{ | |||
.name = "bcm2835gpio_trst_num", | |||
.name = "trst_num", | |||
.handler = &bcm2835gpio_handle_jtag_gpionum_trst, | |||
.mode = COMMAND_CONFIG, | |||
.help = "gpio number for trst.", | |||
.usage = "[trst]", | |||
}, | |||
{ | |||
.name = "bcm2835gpio_speed_coeffs", | |||
.name = "speed_coeffs", | |||
.handler = &bcm2835gpio_handle_speed_coeffs, | |||
.mode = COMMAND_CONFIG, | |||
.help = "SPEED_COEFF and SPEED_OFFSET for delay calculations.", | |||
.usage = "[SPEED_COEFF SPEED_OFFSET]", | |||
}, | |||
{ | |||
.name = "bcm2835gpio_peripheral_base", | |||
.name = "peripheral_base", | |||
.handler = &bcm2835gpio_handle_peripheral_base, | |||
.mode = COMMAND_CONFIG, | |||
.help = "peripheral base to access GPIOs (RPi1 0x20000000, RPi2 0x3F000000).", | |||
@@ -434,6 +434,17 @@ static const struct command_registration bcm2835gpio_command_handlers[] = { | |||
COMMAND_REGISTRATION_DONE | |||
}; | |||
static const struct command_registration bcm2835gpio_command_handlers[] = { | |||
{ | |||
.name = "bcm2835gpio", | |||
.mode = COMMAND_ANY, | |||
.help = "perform bcm2835gpio management", | |||
.chain = bcm2835gpio_subcommand_handlers, | |||
.usage = "", | |||
}, | |||
COMMAND_REGISTRATION_DONE | |||
}; | |||
static const char * const bcm2835_transports[] = { "jtag", "swd", NULL }; | |||
static struct jtag_interface bcm2835gpio_interface = { | |||
@@ -375,4 +375,82 @@ proc vsllink_usb_interface args { | |||
eval vsllink usb_interface $args | |||
} | |||
lappend _telnet_autocomplete_skip bcm2835gpio_jtag_nums | |||
proc bcm2835gpio_jtag_nums args { | |||
echo "DEPRECATED! use 'bcm2835gpio jtag_nums' not 'bcm2835gpio_jtag_nums'" | |||
eval bcm2835gpio jtag_nums $args | |||
} | |||
lappend _telnet_autocomplete_skip bcm2835gpio_tck_num | |||
proc bcm2835gpio_tck_num args { | |||
echo "DEPRECATED! use 'bcm2835gpio tck_num' not 'bcm2835gpio_tck_num'" | |||
eval bcm2835gpio tck_num $args | |||
} | |||
lappend _telnet_autocomplete_skip bcm2835gpio_tms_num | |||
proc bcm2835gpio_tms_num args { | |||
echo "DEPRECATED! use 'bcm2835gpio tms_num' not 'bcm2835gpio_tms_num'" | |||
eval bcm2835gpio tms_num $args | |||
} | |||
lappend _telnet_autocomplete_skip bcm2835gpio_tdo_num | |||
proc bcm2835gpio_tdo_num args { | |||
echo "DEPRECATED! use 'bcm2835gpio tdo_num' not 'bcm2835gpio_tdo_num'" | |||
eval bcm2835gpio tdo_num $args | |||
} | |||
lappend _telnet_autocomplete_skip bcm2835gpio_tdi_num | |||
proc bcm2835gpio_tdi_num args { | |||
echo "DEPRECATED! use 'bcm2835gpio tdi_num' not 'bcm2835gpio_tdi_num'" | |||
eval bcm2835gpio tdi_num $args | |||
} | |||
lappend _telnet_autocomplete_skip bcm2835gpio_swd_nums | |||
proc bcm2835gpio_swd_nums args { | |||
echo "DEPRECATED! use 'bcm2835gpio swd_nums' not 'bcm2835gpio_swd_nums'" | |||
eval bcm2835gpio swd_nums $args | |||
} | |||
lappend _telnet_autocomplete_skip bcm2835gpio_swclk_num | |||
proc bcm2835gpio_swclk_num args { | |||
echo "DEPRECATED! use 'bcm2835gpio swclk_num' not 'bcm2835gpio_swclk_num'" | |||
eval bcm2835gpio swclk_num $args | |||
} | |||
lappend _telnet_autocomplete_skip bcm2835gpio_swdio_num | |||
proc bcm2835gpio_swdio_num args { | |||
echo "DEPRECATED! use 'bcm2835gpio swdio_num' not 'bcm2835gpio_swdio_num'" | |||
eval bcm2835gpio swdio_num $args | |||
} | |||
lappend _telnet_autocomplete_skip bcm2835gpio_swdio_dir_num | |||
proc bcm2835gpio_swdio_dir_num args { | |||
echo "DEPRECATED! use 'bcm2835gpio swdio_dir_num' not 'bcm2835gpio_swdio_dir_num'" | |||
eval bcm2835gpio swdio_dir_num $args | |||
} | |||
lappend _telnet_autocomplete_skip bcm2835gpio_srst_num | |||
proc bcm2835gpio_srst_num args { | |||
echo "DEPRECATED! use 'bcm2835gpio srst_num' not 'bcm2835gpio_srst_num'" | |||
eval bcm2835gpio srst_num $args | |||
} | |||
lappend _telnet_autocomplete_skip bcm2835gpio_trst_num | |||
proc bcm2835gpio_trst_num args { | |||
echo "DEPRECATED! use 'bcm2835gpio trst_num' not 'bcm2835gpio_trst_num'" | |||
eval bcm2835gpio trst_num $args | |||
} | |||
lappend _telnet_autocomplete_skip bcm2835gpio_speed_coeffs | |||
proc bcm2835gpio_speed_coeffs args { | |||
echo "DEPRECATED! use 'bcm2835gpio speed_coeffs' not 'bcm2835gpio_speed_coeffs'" | |||
eval bcm2835gpio speed_coeffs $args | |||
} | |||
lappend _telnet_autocomplete_skip bcm2835gpio_peripheral_base | |||
proc bcm2835gpio_peripheral_base args { | |||
echo "DEPRECATED! use 'bcm2835gpio peripheral_base' not 'bcm2835gpio_peripheral_base'" | |||
eval bcm2835gpio peripheral_base $args | |||
} | |||
# END MIGRATION AIDS |