/* * Copyright (c) 2020 Intel Corporation * * SPDX-License-Identifier: Apache-2.0 */ #include #include #include "abstract_driver.h" #define MY_DRIVER_A "my_driver_A" #define MY_DRIVER_B "my_driver_B" /* define individual driver A */ static int my_driver_A_do_this(const struct device *device, int foo, int bar) { return foo + bar; } static void my_driver_A_do_that(const struct device *device, unsigned int *baz) { *baz = 1; } static struct subsystem_api my_driver_A_api_funcs = { .do_this = my_driver_A_do_this, .do_that = my_driver_A_do_that }; int common_driver_init(const struct device *dev) { return 0; } /* define individual driver B */ static int my_driver_B_do_this(const struct device *device, int foo, int bar) { return foo - bar; } static void my_driver_B_do_that(const struct device *device, unsigned int *baz) { *baz = 2; } static struct subsystem_api my_driver_B_api_funcs = { .do_this = my_driver_B_do_this, .do_that = my_driver_B_do_that }; /** * @cond INTERNAL_HIDDEN */ DEVICE_DEFINE(my_driver_A, MY_DRIVER_A, &common_driver_init, NULL, NULL, NULL, POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &my_driver_A_api_funcs); DEVICE_DEFINE(my_driver_B, MY_DRIVER_B, &common_driver_init, NULL, NULL, NULL, POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &my_driver_B_api_funcs); /** * @endcond */