diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2022-06-08 21:03:11 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2022-06-27 10:50:23 -0400 |
commit | 790ff4d8d7ac200527c272af3e58f0d9f06468e4 (patch) | |
tree | b021c1ec8517f6b16950394ca9aef91dcff7dc7d /src/stm32 | |
parent | c8cc98ce5dce3771cf2728eee7b1bdb026504f75 (diff) | |
download | kutter-790ff4d8d7ac200527c272af3e58f0d9f06468e4.tar.gz kutter-790ff4d8d7ac200527c272af3e58f0d9f06468e4.tar.xz kutter-790ff4d8d7ac200527c272af3e58f0d9f06468e4.zip |
usb_canbus: Initial support for USB to CAN bridge mode
Support a USB interface that shows up as a canbus adapter to linux.
Route both local and real canbus packets over that interface.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/stm32')
-rw-r--r-- | src/stm32/Kconfig | 62 | ||||
-rw-r--r-- | src/stm32/Makefile | 2 |
2 files changed, 58 insertions, 6 deletions
diff --git a/src/stm32/Kconfig b/src/stm32/Kconfig index b1035ec1..355b132e 100644 --- a/src/stm32/Kconfig +++ b/src/stm32/Kconfig @@ -108,6 +108,12 @@ config HAVE_STM32_CANBUS config HAVE_STM32_FDCANBUS bool default y if MACH_STM32G0 +config HAVE_STM32_USBCANBUS + bool + depends on HAVE_STM32_USBFS || HAVE_STM32_USBOTG + depends on HAVE_STM32_CANBUS || HAVE_STM32_FDCANBUS + depends on !MACH_STM32F103 + default y config MCU string @@ -327,30 +333,74 @@ choice bool "CAN bus (on PA9/PA10)" if LOW_LEVEL_OPTIONS depends on HAVE_STM32_CANBUS && MACH_STM32F042 select CANSERIAL - config STM32_CANBUS_PB8_PB9 + config STM32_MMENU_CANBUS_PB8_PB9 bool "CAN bus (on PB8/PB9)" if LOW_LEVEL_OPTIONS depends on HAVE_STM32_CANBUS || HAVE_STM32_FDCANBUS select CANSERIAL - config STM32_CANBUS_PI9_PH13 + config STM32_MMENU_CANBUS_PI9_PH13 bool "CAN bus (on PI9/PH13)" if LOW_LEVEL_OPTIONS depends on HAVE_STM32_CANBUS && MACH_STM32F4 select CANSERIAL - config STM32_CANBUS_PB5_PB6 + config STM32_MMENU_CANBUS_PB5_PB6 bool "CAN bus (on PB5/PB6)" if LOW_LEVEL_OPTIONS depends on HAVE_STM32_CANBUS && MACH_STM32F4 select CANSERIAL - config STM32_CANBUS_PB12_PB13 + config STM32_MMENU_CANBUS_PB12_PB13 bool "CAN bus (on PB12/PB13)" if LOW_LEVEL_OPTIONS depends on HAVE_STM32_CANBUS && MACH_STM32F4 select CANSERIAL - config STM32_CANBUS_PD0_PD1 + config STM32_MMENU_CANBUS_PD0_PD1 bool "CAN bus (on PD0/PD1)" if LOW_LEVEL_OPTIONS depends on HAVE_STM32_CANBUS select CANSERIAL - config STM32_CANBUS_PB0_PB1 + config STM32_MMENU_CANBUS_PB0_PB1 bool "CAN bus (on PB0/PB1)" depends on HAVE_STM32_FDCANBUS select CANSERIAL + config STM32_USBCANBUS_PA11_PA12 + bool "USB to CAN bus bridge (USB on PA11/PA12)" + depends on HAVE_STM32_USBCANBUS + select USBCANBUS +endchoice +choice + prompt "CAN bus interface" if USBCANBUS + config STM32_CMENU_CANBUS_PB8_PB9 + bool "CAN bus (on PB8/PB9)" + config STM32_CMENU_CANBUS_PI9_PH13 + bool "CAN bus (on PI9/PH13)" + depends on HAVE_STM32_CANBUS && MACH_STM32F4 + config STM32_CMENU_CANBUS_PB5_PB6 + bool "CAN bus (on PB5/PB6)" + depends on HAVE_STM32_CANBUS && MACH_STM32F4 + config STM32_CMENU_CANBUS_PB12_PB13 + bool "CAN bus (on PB12/PB13)" + depends on HAVE_STM32_CANBUS && MACH_STM32F4 + config STM32_CMENU_CANBUS_PD0_PD1 + bool "CAN bus (on PD0/PD1)" + depends on HAVE_STM32_CANBUS + config STM32_CMENU_CANBUS_PB0_PB1 + bool "CAN bus (on PB0/PB1)" + depends on HAVE_STM32_FDCANBUS endchoice + +config STM32_CANBUS_PB8_PB9 + bool + default y if STM32_MMENU_CANBUS_PB8_PB9 || STM32_CMENU_CANBUS_PB8_PB9 +config STM32_CANBUS_PI9_PH13 + bool + default y if STM32_MMENU_CANBUS_PI9_PH13 || STM32_CMENU_CANBUS_PI9_PH13 +config STM32_CANBUS_PB5_PB6 + bool + default y if STM32_MMENU_CANBUS_PB5_PB6 || STM32_CMENU_CANBUS_PB5_PB6 +config STM32_CANBUS_PB12_PB13 + bool + default y if STM32_MMENU_CANBUS_PB12_PB13 || STM32_CMENU_CANBUS_PB12_PB13 +config STM32_CANBUS_PD0_PD1 + bool + default y if STM32_MMENU_CANBUS_PD0_PD1 || STM32_CMENU_CANBUS_PD0_PD1 +config STM32_CANBUS_PB0_PB1 + bool + default y if STM32_MMENU_CANBUS_PB0_PB1 || STM32_CMENU_CANBUS_PB0_PB1 + endif diff --git a/src/stm32/Makefile b/src/stm32/Makefile index 2fbf7549..2ff04f69 100644 --- a/src/stm32/Makefile +++ b/src/stm32/Makefile @@ -63,6 +63,8 @@ canbus-src-y := generic/canserial.c ../lib/fast-hash/fasthash.c canbus-src-$(CONFIG_HAVE_STM32_CANBUS) += stm32/can.c canbus-src-$(CONFIG_HAVE_STM32_FDCANBUS) += stm32/fdcan.c src-$(CONFIG_CANSERIAL) += $(canbus-src-y) generic/canbus.c stm32/chipid.c +src-$(CONFIG_USBCANBUS) += $(usb-src-y) $(canbus-src-y) +src-$(CONFIG_USBCANBUS) += stm32/chipid.c generic/usb_canbus.c src-$(CONFIG_HAVE_GPIO_HARD_PWM) += stm32/hard_pwm.c # Binary output file rules |