refactor: Move drivers into properly module.

* Align our driver module layout to properly match Zephyr conventions,
  allowing proper CMake setup to amend the library for each type of driver.
This commit is contained in:
Peter Johanson 2023-09-02 20:07:31 -07:00 committed by Pete Johanson
parent eaeea4bdfa
commit 690bc1bb44
55 changed files with 53 additions and 39 deletions

View File

@ -8,7 +8,7 @@ list(APPEND DTS_ROOT ${CMAKE_SOURCE_DIR}/drivers/zephyr)
set(ZephyrBuildConfiguration_ROOT ${CMAKE_SOURCE_DIR}/cmake)
list(APPEND ZEPHYR_EXTRA_MODULES
${CMAKE_CURRENT_SOURCE_DIR}/drivers
${CMAKE_CURRENT_SOURCE_DIR}/module
)
# Find Zephyr. This also loads Zephyr's build system.

View File

@ -403,14 +403,18 @@ endif
#Initialization Priorities
endmenu
menu "KSCAN Settings"
menuconfig ZMK_KSCAN
bool "ZMK KScan Integration"
default y
select KSCAN
if ZMK_KSCAN
config ZMK_KSCAN_EVENT_QUEUE_SIZE
int "Size of the event queue for KSCAN events to buffer events"
default 4
#KSCAN Settings
endmenu
endif # ZMK_KSCAN
menu "Logging"

View File

@ -1,7 +0,0 @@
# Copyright (c) 2020 The ZMK Contributors
# SPDX-License-Identifier: MIT
add_subdirectory_ifdef(CONFIG_ZMK_DRIVERS_GPIO gpio)
add_subdirectory(kscan)
add_subdirectory(sensor)
add_subdirectory(display)

View File

@ -1,4 +0,0 @@
# Copyright (c) 2021 The ZMK Contributors
# SPDX-License-Identifier: MIT
zephyr_sources_ifdef(CONFIG_IL0323 il0323.c)

View File

@ -1,9 +0,0 @@
/*
* Copyright (c) 2020 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#warning "kscan-mock.h has been deprecated and superseded by kscan_mock.h"
#include "kscan_mock.h"

View File

@ -0,0 +1,3 @@
zephyr_include_directories(include)
add_subdirectory(drivers)

2
app/module/Kconfig Normal file
View File

@ -0,0 +1,2 @@
rsource "drivers/Kconfig"

View File

@ -0,0 +1,7 @@
# Copyright (c) 2020 The ZMK Contributors
# SPDX-License-Identifier: MIT
add_subdirectory_ifdef(CONFIG_GPIO gpio)
add_subdirectory_ifdef(CONFIG_KSCAN kscan)
add_subdirectory_ifdef(CONFIG_SENSOR sensor)
add_subdirectory_ifdef(CONFIG_DISPLAY display)

View File

@ -0,0 +1,6 @@
# Copyright (c) 2021 The ZMK Contributors
# SPDX-License-Identifier: MIT
zephyr_library_amend()
zephyr_library_sources_ifdef(CONFIG_IL0323 il0323.c)

View File

@ -1,4 +1,8 @@
# Copyright (c) 2021 The ZMK Contributors
# SPDX-License-Identifier: MIT
rsource "Kconfig.il0323"
if DISPLAY
rsource "Kconfig.il0323"
endif # DISPLAY

View File

@ -1,8 +1,7 @@
# Copyright (c) 2022 The ZMK Contributors
# SPDX-License-Identifier: MIT
zephyr_library_named(zmk__drivers__gpio)
zephyr_library_include_directories(${CMAKE_SOURCE_DIR}/include)
zephyr_library_amend()
zephyr_library_sources_ifdef(CONFIG_GPIO_595 gpio_595.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MAX7318 gpio_max7318.c)

View File

@ -1,5 +1,7 @@
menuconfig ZMK_DRIVERS_GPIO
bool "GPIO"
if GPIO
rsource "Kconfig.max7318"
rsource "Kconfig.595"
endif # GPIO

View File

@ -10,7 +10,6 @@ menuconfig GPIO_595
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_GPIO_595))
depends on SPI
select HAS_DTS_GPIO
select ZMK_DRIVERS_GPIO
help
Enable driver for 595 shift register chip using SPI.

View File

@ -10,7 +10,6 @@ menuconfig GPIO_MAX7318
default $(dt_compat_enabled,$(DT_COMPAT_MAXIM_MAX7318))
depends on I2C
select HAS_DTS_GPIO
select ZMK_DRIVERS_GPIO
help
Enable driver for MAX7318 I2C-based GPIO chip.

View File

@ -1,8 +1,7 @@
# Copyright (c) 2020 The ZMK Contributors
# SPDX-License-Identifier: MIT
zephyr_library_named(zmk__drivers__kscan)
zephyr_library_include_directories(${CMAKE_SOURCE_DIR}/include)
zephyr_library_amend()
zephyr_library_sources_ifdef(CONFIG_ZMK_KSCAN_GPIO_DRIVER debounce.c)
zephyr_library_sources_ifdef(CONFIG_ZMK_KSCAN_GPIO_DRIVER kscan_gpio.c)

View File

@ -7,6 +7,8 @@ DT_COMPAT_ZMK_KSCAN_GPIO_DIRECT := zmk,kscan-gpio-direct
DT_COMPAT_ZMK_KSCAN_GPIO_MATRIX := zmk,kscan-gpio-matrix
DT_COMPAT_ZMK_KSCAN_MOCK := zmk,kscan-mock
if KSCAN
config ZMK_KSCAN_COMPOSITE_DRIVER
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_KSCAN_COMPOSITE))
@ -87,8 +89,10 @@ config ZMK_KSCAN_DEBOUNCE_RELEASE_MS
endif
config ZMK_KSCAN_INIT_PRIORITY
int "Keyboard scan driver init priority"
default 40
help
Keyboard scan device driver initialization priority.
# config ZMK_KSCAN_INIT_PRIORITY
# int "Keyboard scan driver init priority"
# default 40
# help
# Keyboard scan device driver initialization priority.
endif # KSCAN

View File

@ -1,5 +1,9 @@
# Copyright (c) 2020 The ZMK Contributors
# SPDX-License-Identifier: MIT
if SENSOR
rsource "battery/Kconfig"
rsource "ec11/Kconfig"
rsource "ec11/Kconfig"
endif # SENSOR

View File

@ -1,3 +1,5 @@
build:
cmake: .
kconfig: Kconfig
settings:
dts_root: .