birdsong-devices/Kconfig
2025-11-03 03:20:55 +00:00

147 lines
3.8 KiB
Text

# birdsong hardware support Kconfig
# Copyright (c) 2025 eden ariel and the birdsong team
# SPDX-License-Identifier: EUPL-1.2
config BIRDSONG_BOOPLOADER
def_bool MCUBOOT
select BOOT_VALIDATE_SLOT0
imply BOOT_SERIAL_BOOT_MODE
imply BOOT_SERIAL_ENTRANCE_GPIO
imply BOOT_SERIAL_NO_APPLICATION
imply CONSOLE
imply MCUBOOT_BOOT_BANNER
imply MCUBOOT_INDICATION_LED
imply MCUBOOT_SERIAL
imply MCUBOOT_STORAGE_MINIMAL_SCRAMBLE
imply USB_DEVICE_STACK
if BT
choice BT_STACK_SELECTION
default BT_HCI
endchoice # BT_STACK_SELECTION
endif #BT
menu "birdsong hardware features"
config BIRDSONG_HW_CORE
bool "core hardware settings for all devices and images"
select FLASH
select FLASH_MAP
select FLASH_PAGE_LAYOUT
imply RETAINED_MEM
imply RETENTION
imply RETENTION_BOOT_MODE
imply SERIAL
imply USB_CDC_ACM
depends on !BIRDSONG_NET
default y
config BIRDSONG_HW_APP_SUPPORT
bool "application support for birdsong hardware"
select BIRDSONG_HW_CORE
select BT_SMP if BT
select BT_SMP_SC_ONLY if BT
select FPU if CPU_HAS_FPU
select FPU_SHARING if CPU_HAS_FPU
select GPIO
select INPUT
select MULTITHREADING
select PM_DEVICE
select SETTINGS if !MCUBOOT
select ZMS
imply ADC
imply BOOTLOADER_MCUBOOT
imply BT
imply BT_BAS if BT
imply BT_CONN if BT
imply BT_CTLR_PHY_2M if BT
imply CONSOLE
imply FIREFLIES
imply HWINFO
imply I2C
imply INPUT
imply INPUT_KBD_MATRIX_16_BIT_ROW if INPUT
imply PM_DEVICE_RUNTIME if BIRDSONG_PM
imply PM_DEVICE_POWER_DOMAIN
imply PWM
imply STDOUT_CONSOLE
imply UART_CONSOLE
imply UART_INTERRUPT_DRIVEN
imply UART_LINE_CTRL
imply USB_DEVICE_STACK_NEXT if !BIRDSONG_HW_ZMK
depends on !MCUBOOT
default y if BIRDSONG || BIRDSONG_HW_ZMK
default n
config BIRDSONG_HW_SHELL
bool "birdsong hardware diag shell"
select CBPRINTF_FP_SUPPORT
select SHELL
imply DEVICE_SHELL
imply DEVMEM_SHELL
imply I2C_SHELL if I2C
imply INPUT_SHELL if INPUT
imply INPUT_SHELL_KBD_MATRIX_STATE if INPUT
imply GPIO_SHELL if GPIO
imply KERNEL_SHELL
imply LED_SHELL if LED
imply PM_DEVICE_SHELL if PM_DEVICE
imply SENSOR_SHELL if SENSOR
imply SETTINGS_SHELL if SETTINGS
imply SHELL_TAB
imply SHELL_TAB_AUTOCOMPLETION
depends on !MCUBOOT
default y if BIRDSONG || BIRDSONG_HW_ZMK
default n
config BIRDSONG_SHELL_EXTRAS
bool "extras for birdsong shell"
imply ADC_SHELL if ADC
imply CLOCK_CONTROL_NRF_SHELL if CLOCK_CONTROL_NRF
imply DATE_SHELL
imply BT_SHELL if BT
imply BT_GATT_DYNAMIC_DB if BT
imply HWINFO_SHELL if HWINFO
imply LV_Z_SHELL if LVGL
imply PWM_SHELL if PWM
imply REGULATOR_SHELL if REGULATOR
imply SPI_SHELL if SPI
imply UART_SHELL if SERIAL
imply USBD_SHELL if USB_DEVICE_STACK_NEXT
default n
config BIRDSONG_BOOPLOADER_MATRIXKEY
bool "birdsong mcuboot matrix key integration"
depends on MCUBOOT
default n
config BIRDSONG_APP_HW
def_bool BIRDSONG
select BIRDSONG_HW_APP_SUPPORT
config BIRDSONG_HW_ZMK
bool "zmk support for birdsong hardware"
select BIRDSONG_HW_APP_SUPPORT
select DISPLAY if ZMK_DISPLAY
select LED_STRIP if ZMK_RGB_UNDERGLOW
select LVGL if ZMK_DISPLAY
imply USB_DEVICE_STACK
imply USB_DEVICE_HID
imply ZMK_USB
imply ZMK_BLE
imply ZMK_BLE_PASSKEY_ENTRY
imply ZMK_USB_BOOT
imply ZMK_EXT_POWER if ZMK_RGB_UNDERGLOW
imply ZMK_HID_INDICATORS
imply ZMK_PM_SOFT_OFF
imply ZMK_RGB_UNDERGLOW_EXT_POWER if ZMK_RGB_UNDERGLOW
imply ZMK_SLEEP
default n
endmenu # "birdsong hardware features"
rsource "Kconfig.defconfig"
rsource "drivers/Kconfig"
rsource "src/coquette/Kconfig"
rsource "boards/shields/coquette_wings/Kconfig.shield"