Use SYS_INIT for BLE and USB init.
This commit is contained in:
parent
48f3f86a83
commit
7c5fb7adb5
7 changed files with 27 additions and 42 deletions
14
app/Kconfig
14
app/Kconfig
|
@ -15,12 +15,20 @@ config ZMK_KSCAN_EVENT_QUEUE_SIZE
|
|||
|
||||
menu "HID Output Types"
|
||||
|
||||
config ZMK_USB
|
||||
menuconfig ZMK_USB
|
||||
bool "USB"
|
||||
select USB
|
||||
select USB_DEVICE_STACK
|
||||
select USB_DEVICE_HID
|
||||
|
||||
if ZMK_USB
|
||||
|
||||
config ZMK_USB_INIT_PRIORITY
|
||||
int "Init Priority"
|
||||
default 50
|
||||
|
||||
endif
|
||||
|
||||
menuconfig ZMK_BLE
|
||||
bool "BLE (HID over GATT)"
|
||||
select BT
|
||||
|
@ -32,6 +40,10 @@ menuconfig ZMK_BLE
|
|||
|
||||
if ZMK_BLE
|
||||
|
||||
config ZMK_BLE_INIT_PRIORITY
|
||||
int "Init Priority"
|
||||
default 50
|
||||
|
||||
# HID GATT notifications sent this way are *not* picked up by Linux, and possibly others.
|
||||
config BT_GATT_NOTIFY_MULTIPLE
|
||||
default n
|
||||
|
|
|
@ -3,5 +3,4 @@
|
|||
#include <zmk/keys.h>
|
||||
#include <zmk/hid.h>
|
||||
|
||||
int zmk_endpoints_init();
|
||||
int zmk_endpoints_send_report(u8_t usage_report);
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
|
||||
#include <device.h>
|
||||
#include <init.h>
|
||||
|
||||
#include <math.h>
|
||||
|
||||
#include <settings/settings.h>
|
||||
|
@ -139,7 +142,7 @@ static void zmk_ble_ready(int err)
|
|||
}
|
||||
}
|
||||
|
||||
int zmk_ble_init()
|
||||
static int zmk_ble_init(struct device *_arg)
|
||||
{
|
||||
if (IS_ENABLED(CONFIG_SETTINGS))
|
||||
{
|
||||
|
@ -191,3 +194,7 @@ bool zmk_ble_handle_key_user(struct zmk_key_event *key_event)
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
SYS_INIT(zmk_ble_init,
|
||||
APPLICATION,
|
||||
CONFIG_ZMK_BLE_INIT_PRIORITY);
|
||||
|
|
|
@ -8,34 +8,6 @@
|
|||
#include <logging/log.h>
|
||||
LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
|
||||
|
||||
int zmk_endpoints_init()
|
||||
{
|
||||
int err;
|
||||
|
||||
LOG_DBG("");
|
||||
|
||||
#ifdef CONFIG_ZMK_USB
|
||||
err = zmk_usb_hid_init();
|
||||
if (err)
|
||||
{
|
||||
LOG_ERR("USB HID Init Failed\n");
|
||||
return err;
|
||||
}
|
||||
#endif /* CONFIG_ZMK_USB */
|
||||
|
||||
#ifdef CONFIG_ZMK_BLE
|
||||
err = zmk_hog_init();
|
||||
if (err)
|
||||
{
|
||||
LOG_ERR("HOG Init Failed\n");
|
||||
return err;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_ZMK_BLE */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int zmk_endpoints_send_report(u8_t usage_page)
|
||||
{
|
||||
int err;
|
||||
|
|
|
@ -7,11 +7,6 @@
|
|||
#include <zmk/hog.h>
|
||||
#include <zmk/hid.h>
|
||||
|
||||
int zmk_hog_init()
|
||||
{
|
||||
return zmk_ble_init();
|
||||
}
|
||||
|
||||
enum
|
||||
{
|
||||
HIDS_REMOTE_WAKE = BIT(0),
|
||||
|
|
|
@ -27,11 +27,6 @@ void main(void)
|
|||
return;
|
||||
}
|
||||
|
||||
if (zmk_endpoints_init())
|
||||
{
|
||||
printk("ENDPOINT INIT FAILED\n");
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SETTINGS
|
||||
settings_load();
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
|
||||
#include <device.h>
|
||||
#include <init.h>
|
||||
|
||||
#include <usb/usb_device.h>
|
||||
#include <usb/class/usb_hid.h>
|
||||
|
@ -29,7 +30,7 @@ void usb_hid_status_cb(enum usb_dc_status_code status, const u8_t *params)
|
|||
usb_status = status;
|
||||
};
|
||||
|
||||
int zmk_usb_hid_init()
|
||||
static int zmk_usb_hid_init(struct device *_arg)
|
||||
{
|
||||
int usb_enable_ret;
|
||||
|
||||
|
@ -56,3 +57,7 @@ int zmk_usb_hid_init()
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
SYS_INIT(zmk_usb_hid_init,
|
||||
APPLICATION,
|
||||
CONFIG_ZMK_USB_INIT_PRIORITY);
|
||||
|
|
Loading…
Reference in a new issue