drivers: sensors: use unified kernel threads

convert all sensor drivers to use threads and the unified kernel API and
remove all legacy APIs.

Change-Id: Ica43ea74ecbbf85273f718f182c413a9dcd8abc6
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
Anas Nashif 2016-11-10 10:05:53 -05:00 committed by Andrew Boie
commit 3fe2575f0d
48 changed files with 400 additions and 391 deletions

View file

@ -80,7 +80,7 @@ config BMA280_I2C_MASTER_DEV_NAME
choice choice
prompt "Trigger mode" prompt "Trigger mode"
depends on BMA280 depends on BMA280
default BMA280_TRIGGER_GLOBAL_FIBER default BMA280_TRIGGER_GLOBAL_THREAD
help help
Specify the type of triggering to be used by the driver. Specify the type of triggering to be used by the driver.
@ -88,15 +88,15 @@ config BMA280_TRIGGER_NONE
bool bool
prompt "No trigger" prompt "No trigger"
config BMA280_TRIGGER_GLOBAL_FIBER config BMA280_TRIGGER_GLOBAL_THREAD
bool bool
prompt "Use global fiber" prompt "Use global thread"
depends on GPIO depends on GPIO
select BMA280_TRIGGER select BMA280_TRIGGER
config BMA280_TRIGGER_OWN_FIBER config BMA280_TRIGGER_OWN_THREAD
bool bool
prompt "Use own fiber" prompt "Use own thread"
depends on GPIO depends on GPIO
select BMA280_TRIGGER select BMA280_TRIGGER
@ -124,21 +124,21 @@ config BMA280_GPIO_PIN_NUM
The number of the GPIO on which the interrupt signal from the chip The number of the GPIO on which the interrupt signal from the chip
will be received. will be received.
config BMA280_FIBER_PRIORITY config BMA280_THREAD_PRIORITY
int int
prompt "Fiber priority" prompt "Thread priority"
depends on BMA280 && BMA280_TRIGGER_OWN_FIBER depends on BMA280 && BMA280_TRIGGER_OWN_THREAD
default 10 default 10
help help
Priority of fiber used by the driver to handle interrupts. Priority of thread used by the driver to handle interrupts.
config BMA280_FIBER_STACK_SIZE config BMA280_THREAD_STACK_SIZE
int int
prompt "Fiber stack size" prompt "Thread stack size"
depends on BMA280 && BMA280_TRIGGER_OWN_FIBER depends on BMA280 && BMA280_TRIGGER_OWN_THREAD
default 1024 default 1024
help help
Stack size of fiber used by the driver to handle interrupts. Stack size of thread used by the driver to handle interrupts.
choice choice
prompt "Acceleration measurement range" prompt "Acceleration measurement range"

View file

@ -120,8 +120,8 @@
#define BMA280_REG_ACCEL_Y_MSB 0x5 #define BMA280_REG_ACCEL_Y_MSB 0x5
#define BMA280_REG_ACCEL_Z_MSB 0x7 #define BMA280_REG_ACCEL_Z_MSB 0x7
#define BMA280_FIBER_PRIORITY 10 #define BMA280_THREAD_PRIORITY 10
#define BMA280_FIBER_STACKSIZE_UNIT 1024 #define BMA280_THREAD_STACKSIZE_UNIT 1024
struct bma280_data { struct bma280_data {
struct device *i2c; struct device *i2c;
@ -140,10 +140,10 @@ struct bma280_data {
struct sensor_trigger any_motion_trigger; struct sensor_trigger any_motion_trigger;
sensor_trigger_handler_t any_motion_handler; sensor_trigger_handler_t any_motion_handler;
#if defined(CONFIG_BMA280_TRIGGER_OWN_FIBER) #if defined(CONFIG_BMA280_TRIGGER_OWN_THREAD)
char __stack fiber_stack[CONFIG_BMA280_FIBER_STACK_SIZE]; char __stack thread_stack[CONFIG_BMA280_THREAD_STACK_SIZE];
struct k_sem gpio_sem; struct k_sem gpio_sem;
#elif defined(CONFIG_BMA280_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_BMA280_TRIGGER_GLOBAL_THREAD)
struct k_work work; struct k_work work;
struct device *dev; struct device *dev;
#endif #endif

View file

@ -70,14 +70,14 @@ static void bma280_gpio_callback(struct device *dev,
gpio_pin_disable_callback(dev, CONFIG_BMA280_GPIO_PIN_NUM); gpio_pin_disable_callback(dev, CONFIG_BMA280_GPIO_PIN_NUM);
#if defined(CONFIG_BMA280_TRIGGER_OWN_FIBER) #if defined(CONFIG_BMA280_TRIGGER_OWN_THREAD)
k_sem_give(&drv_data->gpio_sem); k_sem_give(&drv_data->gpio_sem);
#elif defined(CONFIG_BMA280_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_BMA280_TRIGGER_GLOBAL_THREAD)
k_work_submit(&drv_data->work); k_work_submit(&drv_data->work);
#endif #endif
} }
static void bma280_fiber_cb(void *arg) static void bma280_thread_cb(void *arg)
{ {
struct device *dev = arg; struct device *dev = arg;
struct bma280_data *drv_data = dev->driver_data; struct bma280_data *drv_data = dev->driver_data;
@ -110,8 +110,8 @@ static void bma280_fiber_cb(void *arg)
gpio_pin_enable_callback(drv_data->gpio, CONFIG_BMA280_GPIO_PIN_NUM); gpio_pin_enable_callback(drv_data->gpio, CONFIG_BMA280_GPIO_PIN_NUM);
} }
#ifdef CONFIG_BMA280_TRIGGER_OWN_FIBER #ifdef CONFIG_BMA280_TRIGGER_OWN_THREAD
static void bma280_fiber(int dev_ptr, int unused) static void bma280_thread(int dev_ptr, int unused)
{ {
struct device *dev = INT_TO_POINTER(dev_ptr); struct device *dev = INT_TO_POINTER(dev_ptr);
struct bma280_data *drv_data = dev->driver_data; struct bma280_data *drv_data = dev->driver_data;
@ -120,18 +120,18 @@ static void bma280_fiber(int dev_ptr, int unused)
while (1) { while (1) {
k_sem_take(&drv_data->gpio_sem, K_FOREVER); k_sem_take(&drv_data->gpio_sem, K_FOREVER);
bma280_fiber_cb(dev); bma280_thread_cb(dev);
} }
} }
#endif #endif
#ifdef CONFIG_BMA280_TRIGGER_GLOBAL_FIBER #ifdef CONFIG_BMA280_TRIGGER_GLOBAL_THREAD
static void bma280_work_cb(struct k_work *work) static void bma280_work_cb(struct k_work *work)
{ {
struct bma280_data *drv_data = struct bma280_data *drv_data =
CONTAINER_OF(work, struct bma280_data, work); CONTAINER_OF(work, struct bma280_data, work);
bma280_fiber_cb(drv_data->dev); bma280_thread_cb(drv_data->dev);
} }
#endif #endif
@ -261,13 +261,13 @@ int bma280_init_interrupt(struct device *dev)
return -EIO; return -EIO;
} }
#if defined(CONFIG_BMA280_TRIGGER_OWN_FIBER) #if defined(CONFIG_BMA280_TRIGGER_OWN_THREAD)
k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX); k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX);
fiber_start(drv_data->fiber_stack, CONFIG_BMA280_FIBER_STACK_SIZE, k_thread_spawn(drv_data->thread_stack, CONFIG_BMA280_THREAD_STACK_SIZE,
(nano_fiber_entry_t)bma280_fiber, POINTER_TO_INT(dev), (k_thread_entry_t)bma280_thread, POINTER_TO_INT(dev), 0, NULL,
0, CONFIG_BMA280_FIBER_PRIORITY, 0); K_PRIO_COOP(CONFIG_BMA280_THREAD_PRIORITY), 0, 0);
#elif defined(CONFIG_BMA280_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_BMA280_TRIGGER_GLOBAL_THREAD)
drv_data->work.handler = bma280_work_cb; drv_data->work.handler = bma280_work_cb;
drv_data->dev = dev; drv_data->dev = dev;
#endif #endif

View file

@ -105,12 +105,12 @@ config BMC150_MAGN_TRIGGER
help help
Enable triggers for BMC150 magnetometer Enable triggers for BMC150 magnetometer
config BMC150_MAGN_TRIGGER_FIBER_STACK config BMC150_MAGN_TRIGGER_THREAD_STACK
int "Fiber stack size" int "Thread stack size"
depends on BMC150_MAGN_TRIGGER depends on BMC150_MAGN_TRIGGER
default 1024 default 1024
help help
Specify the internal fiber stack size. Specify the internal thread stack size.
config BMC150_MAGN_TRIGGER_DRDY config BMC150_MAGN_TRIGGER_DRDY
bool "Enable data ready trigger" bool "Enable data ready trigger"

View file

@ -127,7 +127,7 @@ struct bmc150_magn_data {
struct k_sem sem; struct k_sem sem;
#if defined(CONFIG_BMC150_MAGN_TRIGGER) #if defined(CONFIG_BMC150_MAGN_TRIGGER)
char __stack fiber_stack[CONFIG_BMC150_MAGN_TRIGGER_FIBER_STACK]; char __stack thread_stack[CONFIG_BMC150_MAGN_TRIGGER_THREAD_STACK];
#endif #endif
#if defined(CONFIG_BMC150_MAGN_TRIGGER_DRDY) #if defined(CONFIG_BMC150_MAGN_TRIGGER_DRDY)

View file

@ -80,13 +80,15 @@ static void bmc150_magn_gpio_drdy_callback(struct device *dev,
k_sem_give(&data->sem); k_sem_give(&data->sem);
} }
static void bmc150_magn_fiber_main(int arg1, int gpio_pin) static void bmc150_magn_thread_main(void *arg1, void *arg2, void *arg3)
{ {
struct device *dev = (struct device *) arg1; struct device *dev = (struct device *) arg1;
struct bmc150_magn_data *data = dev->driver_data; struct bmc150_magn_data *data = dev->driver_data;
const struct bmc150_magn_config *config = dev->config->config_info; const struct bmc150_magn_config *config = dev->config->config_info;
uint8_t reg_val; uint8_t reg_val;
int gpio_pin = config->gpio_drdy_int_pin;
while (1) { while (1) {
k_sem_take(&data->sem, K_FOREVER); k_sem_take(&data->sem, K_FOREVER);
@ -123,9 +125,10 @@ static int bmc150_magn_set_drdy_polarity(struct device *dev, int state)
int bmc150_magn_init_interrupt(struct device *dev) int bmc150_magn_init_interrupt(struct device *dev)
{ {
const struct bmc150_magn_config * const config = const struct bmc150_magn_config * const config =
dev->config->config_info; dev->config->config_info;
struct bmc150_magn_data *data = dev->driver_data; struct bmc150_magn_data *data = dev->driver_data;
#if defined(CONFIG_BMC150_MAGN_TRIGGER_DRDY) #if defined(CONFIG_BMC150_MAGN_TRIGGER_DRDY)
if (bmc150_magn_set_drdy_polarity(dev, 0) < 0) { if (bmc150_magn_set_drdy_polarity(dev, 0) < 0) {
SYS_LOG_DBG("failed to set DR polarity"); SYS_LOG_DBG("failed to set DR polarity");
@ -145,10 +148,10 @@ int bmc150_magn_init_interrupt(struct device *dev)
k_sem_init(&data->sem, 0, UINT_MAX); k_sem_init(&data->sem, 0, UINT_MAX);
task_fiber_start(data->fiber_stack, k_thread_spawn(data->thread_stack,
CONFIG_BMC150_MAGN_TRIGGER_FIBER_STACK, CONFIG_BMC150_MAGN_TRIGGER_THREAD_STACK,
bmc150_magn_fiber_main, (int) dev, bmc150_magn_thread_main, dev, NULL, NULL,
config->gpio_drdy_int_pin, 10, 0); K_PRIO_COOP(10), 0, 0);
data->gpio_drdy = device_get_binding(config->gpio_drdy_dev_name); data->gpio_drdy = device_get_binding(config->gpio_drdy_dev_name);
if (!data->gpio_drdy) { if (!data->gpio_drdy) {

View file

@ -47,7 +47,7 @@ endchoice
choice choice
prompt "Trigger mode" prompt "Trigger mode"
depends on BMG160 depends on BMG160
default BMG160_TRIGGER_GLOBAL_FIBER default BMG160_TRIGGER_GLOBAL_THREAD
help help
Specify the type of triggering to be used by the driver. Specify the type of triggering to be used by the driver.
@ -55,12 +55,12 @@ config BMG160_TRIGGER_NONE
bool bool
prompt "No trigger" prompt "No trigger"
config BMG160_TRIGGER_GLOBAL_FIBER config BMG160_TRIGGER_GLOBAL_THREAD
bool "Use global fiber" bool "Use global thread"
select BMG160_TRIGGER select BMG160_TRIGGER
config BMG160_TRIGGER_OWN_FIBER config BMG160_TRIGGER_OWN_THREAD
bool "Use own fiber" bool "Use own thread"
select BMG160_TRIGGER select BMG160_TRIGGER
endchoice endchoice
@ -68,19 +68,19 @@ config BMG160_TRIGGER
bool bool
depends on BMG160 depends on BMG160
config BMG160_FIBER_PRIORITY config BMG160_THREAD_PRIORITY
int "Own fiber priority" int "Own thread priority"
depends on BMG160 && BMG160_TRIGGER_OWN_FIBER depends on BMG160 && BMG160_TRIGGER_OWN_THREAD
default 10 default 10
help help
The priority of the fiber used for handling interrupts. The priority of the thread used for handling interrupts.
config BMG160_FIBER_STACK_SIZE config BMG160_THREAD_STACK_SIZE
int "Own fiber stack size" int "Own thread stack size"
depends on BMG160 && BMG160_TRIGGER_OWN_FIBER depends on BMG160 && BMG160_TRIGGER_OWN_THREAD
default 1024 default 1024
help help
The fiber stack size. The thread stack size.
config BMG160_GPIO_PORT_NAME config BMG160_GPIO_PORT_NAME
string "GPIO controller port name" string "GPIO controller port name"

View file

@ -205,11 +205,11 @@ struct bmg160_device_data {
struct device *gpio; struct device *gpio;
struct gpio_callback gpio_cb; struct gpio_callback gpio_cb;
#endif #endif
#ifdef CONFIG_BMG160_TRIGGER_OWN_FIBER #ifdef CONFIG_BMG160_TRIGGER_OWN_THREAD
struct k_sem trig_sem; struct k_sem trig_sem;
#endif #endif
struct k_sem sem; struct k_sem sem;
#ifdef CONFIG_BMG160_TRIGGER_GLOBAL_FIBER #ifdef CONFIG_BMG160_TRIGGER_GLOBAL_THREAD
struct k_work work; struct k_work work;
struct device *dev; struct device *dev;
#endif #endif

View file

@ -31,9 +31,9 @@ static void bmg160_gpio_callback(struct device *port, struct gpio_callback *cb,
struct bmg160_device_data *bmg160 = struct bmg160_device_data *bmg160 =
CONTAINER_OF(cb, struct bmg160_device_data, gpio_cb); CONTAINER_OF(cb, struct bmg160_device_data, gpio_cb);
#if defined(CONFIG_BMG160_TRIGGER_OWN_FIBER) #if defined(CONFIG_BMG160_TRIGGER_OWN_THREAD)
k_sem_give(&bmg160->trig_sem); k_sem_give(&bmg160->trig_sem);
#elif defined(CONFIG_BMG160_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_BMG160_TRIGGER_GLOBAL_THREAD)
k_work_submit(&bmg160->work); k_work_submit(&bmg160->work);
#endif #endif
} }
@ -177,10 +177,10 @@ static void bmg160_handle_int(void *arg)
} }
} }
#ifdef CONFIG_BMG160_TRIGGER_OWN_FIBER #ifdef CONFIG_BMG160_TRIGGER_OWN_THREAD
static char __stack bmg160_fiber_stack[CONFIG_BMG160_FIBER_STACK_SIZE]; static char __stack bmg160_thread_stack[CONFIG_BMG160_THREAD_STACK_SIZE];
static void bmg160_fiber_main(int arg1, int unused) static void bmg160_thread_main(void *arg1, void *arg2, void *arg3)
{ {
struct device *dev = (struct device *)arg1; struct device *dev = (struct device *)arg1;
struct bmg160_device_data *bmg160 = dev->driver_data; struct bmg160_device_data *bmg160 = dev->driver_data;
@ -193,7 +193,7 @@ static void bmg160_fiber_main(int arg1, int unused)
} }
#endif #endif
#ifdef CONFIG_BMG160_TRIGGER_GLOBAL_FIBER #ifdef CONFIG_BMG160_TRIGGER_GLOBAL_THREAD
static void bmg160_work_cb(struct k_work *work) static void bmg160_work_cb(struct k_work *work)
{ {
struct bmg160_device_data *bmg160 = struct bmg160_device_data *bmg160 =
@ -241,11 +241,12 @@ int bmg160_trigger_init(struct device *dev)
return -EINVAL; return -EINVAL;
} }
#if defined(CONFIG_BMG160_TRIGGER_OWN_FIBER) #if defined(CONFIG_BMG160_TRIGGER_OWN_THREAD)
k_sem_init(&bmg160->trig_sem, 0, UINT_MAX); k_sem_init(&bmg160->trig_sem, 0, UINT_MAX);
fiber_start(bmg160_fiber_stack, CONFIG_BMG160_FIBER_STACK_SIZE, k_thread_spawn(bmg160_thread_stack, CONFIG_BMG160_THREAD_STACK_SIZE,
bmg160_fiber_main, (int)dev, 0, 10, 0); bmg160_thread_main, dev, NULL, NULL, K_PRIO_COOP(10), 0, 0);
#elif defined(CONFIG_BMG160_TRIGGER_GLOBAL_FIBER)
#elif defined(CONFIG_BMG160_TRIGGER_GLOBAL_THREAD)
bmg160->work.handler = bmg160_work_cb; bmg160->work.handler = bmg160_work_cb;
bmg160->dev = dev; bmg160->dev = dev;
#endif #endif

View file

@ -37,7 +37,7 @@ config BMI160_SPI_BUS_FREQ
choice choice
prompt "Trigger mode" prompt "Trigger mode"
depends on BMI160 depends on BMI160
default BMI160_TRIGGER_GLOBAL_FIBER default BMI160_TRIGGER_GLOBAL_THREAD
help help
Specify the type of triggering to be used by the driver. Specify the type of triggering to be used by the driver.
@ -45,12 +45,12 @@ config BMI160_TRIGGER_NONE
bool bool
prompt "No trigger" prompt "No trigger"
config BMI160_TRIGGER_GLOBAL_FIBER config BMI160_TRIGGER_GLOBAL_THREAD
bool "Use global fiber" bool "Use global thread"
select BMI160_TRIGGER select BMI160_TRIGGER
config BMI160_TRIGGER_OWN_FIBER config BMI160_TRIGGER_OWN_THREAD
bool "Use own fiber" bool "Use own thread"
select BMI160_TRIGGER select BMI160_TRIGGER
endchoice endchoice
@ -72,19 +72,19 @@ config BMI160_TRIGGER_SOURCE_GPIO
depends on GPIO depends on GPIO
endchoice endchoice
config BMI160_FIBER_PRIORITY config BMI160_THREAD_PRIORITY
int "Own fiber priority" int "Own thread priority"
depends on BMI160 && BMI160_TRIGGER_OWN_FIBER depends on BMI160 && BMI160_TRIGGER_OWN_THREAD
default 10 default 10
help help
The priority of the fiber used for handling interrupts. The priority of the thread used for handling interrupts.
config BMI160_FIBER_STACK_SIZE config BMI160_THREAD_STACK_SIZE
int "Own fiber stack size" int "Own thread stack size"
depends on BMI160 && BMI160_TRIGGER_OWN_FIBER depends on BMI160 && BMI160_TRIGGER_OWN_THREAD
default 1024 default 1024
help help
The fiber stack size. The thread stack size.
config BMI160_GPIO_DEV_NAME config BMI160_GPIO_DEV_NAME
string "Gpio device" string "Gpio device"

View file

@ -879,7 +879,7 @@ int bmi160_init(struct device *dev)
/* /*
* The next command will take around 100ms (contains some necessary busy * The next command will take around 100ms (contains some necessary busy
* waits), but we cannot do it in a separate fiber since we need to * waits), but we cannot do it in a separate thread since we need to
* guarantee the BMI is up and running, befoare the app's main() is * guarantee the BMI is up and running, befoare the app's main() is
* called. * called.
*/ */

View file

@ -453,11 +453,11 @@ struct bmi160_device_data {
union bmi160_sample sample; union bmi160_sample sample;
struct bmi160_scale scale; struct bmi160_scale scale;
#ifdef CONFIG_BMI160_TRIGGER_OWN_FIBER #ifdef CONFIG_BMI160_TRIGGER_OWN_THREAD
struct k_sem sem; struct k_sem sem;
#endif #endif
#ifdef CONFIG_BMI160_TRIGGER_GLOBAL_FIBER #ifdef CONFIG_BMI160_TRIGGER_GLOBAL_THREAD
struct k_work work; struct k_work work;
struct device *dev; struct device *dev;
#endif #endif

View file

@ -92,11 +92,13 @@ static void bmi160_handle_interrupts(void *arg)
} }
#ifdef CONFIG_BMI160_TRIGGER_OWN_FIBER #ifdef CONFIG_BMI160_TRIGGER_OWN_THREAD
static char __stack bmi160_fiber_stack[CONFIG_BMI160_FIBER_STACK_SIZE]; static char __stack bmi160_thread_stack[CONFIG_BMI160_THREAD_STACK_SIZE];
static void bmi160_fiber_main(int arg1, int unused) static void bmi160_thread_main(void *arg1, void *unused1, void *unused2)
{ {
ARG_UNUSED(unused1);
ARG_UNUSED(unused2);
struct device *dev = (struct device *)arg1; struct device *dev = (struct device *)arg1;
struct bmi160_device_data *bmi160 = dev->driver_data; struct bmi160_device_data *bmi160 = dev->driver_data;
@ -107,7 +109,7 @@ static void bmi160_fiber_main(int arg1, int unused)
} }
#endif #endif
#ifdef CONFIG_BMI160_TRIGGER_GLOBAL_FIBER #ifdef CONFIG_BMI160_TRIGGER_GLOBAL_THREAD
static void bmi160_work_handler(struct k_work *work) static void bmi160_work_handler(struct k_work *work)
{ {
struct bmi160_device_data *bmi160 = struct bmi160_device_data *bmi160 =
@ -126,9 +128,9 @@ static void bmi160_gpio_callback(struct device *port,
struct bmi160_device_data *bmi160 = struct bmi160_device_data *bmi160 =
CONTAINER_OF(cb, struct bmi160_device_data, gpio_cb); CONTAINER_OF(cb, struct bmi160_device_data, gpio_cb);
#if defined(CONFIG_BMI160_TRIGGER_OWN_FIBER) #if defined(CONFIG_BMI160_TRIGGER_OWN_THREAD)
k_sem_give(&bmi160->sem); k_sem_give(&bmi160->sem);
#elif defined(CONFIG_BMI160_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_BMI160_TRIGGER_GLOBAL_THREAD)
k_work_submit(&bmi160->work); k_work_submit(&bmi160->work);
#endif #endif
} }
@ -139,9 +141,9 @@ static void bmi160_ipm_callback(void *context, uint32_t id, volatile void *data)
{ {
struct bmi160_device_data *bmi160 = context; struct bmi160_device_data *bmi160 = context;
#if defined(CONFIG_BMI160_TRIGGER_OWN_FIBER) #if defined(CONFIG_BMI160_TRIGGER_OWN_THREAD)
k_sem_give(&bmi160->sem); k_sem_give(&bmi160->sem);
#elif defined(CONFIG_BMI160_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_BMI160_TRIGGER_GLOBAL_THREAD)
k_work_submit(&bmi160->work); k_work_submit(&bmi160->work);
#endif #endif
} }
@ -320,13 +322,13 @@ int bmi160_trigger_mode_init(struct device *dev)
} }
#endif #endif
#if defined(CONFIG_BMI160_TRIGGER_OWN_FIBER) #if defined(CONFIG_BMI160_TRIGGER_OWN_THREAD)
k_sem_init(&bmi160->sem, 0, UINT_MAX); k_sem_init(&bmi160->sem, 0, UINT_MAX);
fiber_start(bmi160_fiber_stack, CONFIG_BMI160_FIBER_STACK_SIZE, k_thread_spawn(bmi160_thread_stack, CONFIG_BMI160_THREAD_STACK_SIZE,
bmi160_fiber_main, (int)dev, 0, bmi160_thread_main, dev, NULL, NULL,
CONFIG_BMI160_FIBER_PRIORITY, 0); K_PRIO_COOP(CONFIG_BMI160_THREAD_PRIORITY), 0, 0);
#elif defined(CONFIG_BMI160_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_BMI160_TRIGGER_GLOBAL_THREAD)
bmi160->work.handler = bmi160_work_handler; bmi160->work.handler = bmi160_work_handler;
bmi160->dev = dev; bmi160->dev = dev;
#endif #endif

View file

@ -42,7 +42,7 @@ config HMC5883L_I2C_MASTER_DEV_NAME
choice choice
prompt "Trigger mode" prompt "Trigger mode"
depends on HMC5883L depends on HMC5883L
default HMC5883L_TRIGGER_GLOBAL_FIBER default HMC5883L_TRIGGER_GLOBAL_THREAD
help help
Specify the type of triggering to be used by the driver. Specify the type of triggering to be used by the driver.
@ -50,15 +50,15 @@ config HMC5883L_TRIGGER_NONE
bool bool
prompt "No trigger" prompt "No trigger"
config HMC5883L_TRIGGER_GLOBAL_FIBER config HMC5883L_TRIGGER_GLOBAL_THREAD
bool bool
prompt "Use global fiber" prompt "Use global thread"
depends on GPIO depends on GPIO
select HMC5883L_TRIGGER select HMC5883L_TRIGGER
config HMC5883L_TRIGGER_OWN_FIBER config HMC5883L_TRIGGER_OWN_THREAD
bool bool
prompt "Use own fiber" prompt "Use own thread"
depends on GPIO depends on GPIO
select HMC5883L_TRIGGER select HMC5883L_TRIGGER
@ -86,21 +86,21 @@ config HMC5883L_GPIO_PIN_NUM
The number of the GPIO on which the interrupt signal from the The number of the GPIO on which the interrupt signal from the
HMC5883L chip will be received. HMC5883L chip will be received.
config HMC5883L_FIBER_PRIORITY config HMC5883L_THREAD_PRIORITY
int int
prompt "Fiber priority" prompt "Thread priority"
depends on HMC5883L && HMC5883L_TRIGGER_OWN_FIBER depends on HMC5883L && HMC5883L_TRIGGER_OWN_THREAD
default 10 default 10
help help
Priority of fiber used by the driver to handle interrupts. Priority of thread used by the driver to handle interrupts.
config HMC5883L_FIBER_STACK_SIZE config HMC5883L_THREAD_STACK_SIZE
int int
prompt "Fiber stack size" prompt "Thread stack size"
depends on HMC5883L && HMC5883L_TRIGGER_OWN_FIBER depends on HMC5883L && HMC5883L_TRIGGER_OWN_THREAD
default 1024 default 1024
help help
Stack size of fiber used by the driver to handle interrupts. Stack size of thread used by the driver to handle interrupts.
config HMC5883L_ODR config HMC5883L_ODR
string string

View file

@ -70,10 +70,10 @@ struct hmc5883l_data {
struct sensor_trigger data_ready_trigger; struct sensor_trigger data_ready_trigger;
sensor_trigger_handler_t data_ready_handler; sensor_trigger_handler_t data_ready_handler;
#if defined(CONFIG_HMC5883L_TRIGGER_OWN_FIBER) #if defined(CONFIG_HMC5883L_TRIGGER_OWN_THREAD)
char __stack fiber_stack[CONFIG_HMC5883L_FIBER_STACK_SIZE]; char __stack thread_stack[CONFIG_HMC5883L_THREAD_STACK_SIZE];
struct k_sem gpio_sem; struct k_sem gpio_sem;
#elif defined(CONFIG_HMC5883L_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_HMC5883L_TRIGGER_GLOBAL_THREAD)
struct k_work work; struct k_work work;
struct device *dev; struct device *dev;
#endif #endif

View file

@ -55,14 +55,14 @@ static void hmc5883l_gpio_callback(struct device *dev,
gpio_pin_disable_callback(dev, CONFIG_HMC5883L_GPIO_PIN_NUM); gpio_pin_disable_callback(dev, CONFIG_HMC5883L_GPIO_PIN_NUM);
#if defined(CONFIG_HMC5883L_TRIGGER_OWN_FIBER) #if defined(CONFIG_HMC5883L_TRIGGER_OWN_THREAD)
k_sem_give(&drv_data->gpio_sem); k_sem_give(&drv_data->gpio_sem);
#elif defined(CONFIG_HMC5883L_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_HMC5883L_TRIGGER_GLOBAL_THREAD)
k_work_submit(&drv_data->work); k_work_submit(&drv_data->work);
#endif #endif
} }
static void hmc5883l_fiber_cb(void *arg) static void hmc5883l_thread_cb(void *arg)
{ {
struct device *dev = arg; struct device *dev = arg;
struct hmc5883l_data *drv_data = dev->driver_data; struct hmc5883l_data *drv_data = dev->driver_data;
@ -75,8 +75,8 @@ static void hmc5883l_fiber_cb(void *arg)
gpio_pin_enable_callback(drv_data->gpio, CONFIG_HMC5883L_GPIO_PIN_NUM); gpio_pin_enable_callback(drv_data->gpio, CONFIG_HMC5883L_GPIO_PIN_NUM);
} }
#ifdef CONFIG_HMC5883L_TRIGGER_OWN_FIBER #ifdef CONFIG_HMC5883L_TRIGGER_OWN_THREAD
static void hmc5883l_fiber(int dev_ptr, int unused) static void hmc5883l_thread(int dev_ptr, int unused)
{ {
struct device *dev = INT_TO_POINTER(dev_ptr); struct device *dev = INT_TO_POINTER(dev_ptr);
struct hmc5883l_data *drv_data = dev->driver_data; struct hmc5883l_data *drv_data = dev->driver_data;
@ -85,18 +85,18 @@ static void hmc5883l_fiber(int dev_ptr, int unused)
while (1) { while (1) {
k_sem_take(&drv_data->gpio_sem, K_FOREVER); k_sem_take(&drv_data->gpio_sem, K_FOREVER);
hmc5883l_fiber_cb(dev); hmc5883l_thread_cb(dev);
} }
} }
#endif #endif
#ifdef CONFIG_HMC5883L_TRIGGER_GLOBAL_FIBER #ifdef CONFIG_HMC5883L_TRIGGER_GLOBAL_THREAD
static void hmc5883l_work_cb(struct k_work *work) static void hmc5883l_work_cb(struct k_work *work)
{ {
struct hmc5883l_data *drv_data = struct hmc5883l_data *drv_data =
CONTAINER_OF(work, struct hmc5883l_data, work); CONTAINER_OF(work, struct hmc5883l_data, work);
hmc5883l_fiber_cb(drv_data->dev); hmc5883l_thread_cb(drv_data->dev);
} }
#endif #endif
@ -125,13 +125,13 @@ int hmc5883l_init_interrupt(struct device *dev)
return -EIO; return -EIO;
} }
#if defined(CONFIG_HMC5883L_TRIGGER_OWN_FIBER) #if defined(CONFIG_HMC5883L_TRIGGER_OWN_THREAD)
k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX); k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX);
fiber_start(drv_data->fiber_stack, CONFIG_HMC5883L_FIBER_STACK_SIZE, k_thread_spawn(drv_data->thread_stack, CONFIG_HMC5883L_THREAD_STACK_SIZE,
(nano_fiber_entry_t)hmc5883l_fiber, POINTER_TO_INT(dev), (k_thread_entry_t)hmc5883l_thread, POINTER_TO_INT(dev),
0, CONFIG_HMC5883L_FIBER_PRIORITY, 0); 0, NULL, K_PRIO_COOP(CONFIG_HMC5883L_THREAD_PRIORITY), 0, 0);
#elif defined(CONFIG_HMC5883L_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_HMC5883L_TRIGGER_GLOBAL_THREAD)
drv_data->work.handler = hmc5883l_work_cb; drv_data->work.handler = hmc5883l_work_cb;
drv_data->dev = dev; drv_data->dev = dev;
#endif #endif

View file

@ -42,7 +42,7 @@ config HTS221_I2C_MASTER_DEV_NAME
choice choice
prompt "Trigger mode" prompt "Trigger mode"
depends on HTS221 depends on HTS221
default HTS221_TRIGGER_GLOBAL_FIBER default HTS221_TRIGGER_GLOBAL_THREAD
help help
Specify the type of triggering to be used by the driver. Specify the type of triggering to be used by the driver.
@ -50,15 +50,15 @@ config HTS221_TRIGGER_NONE
bool bool
prompt "No trigger" prompt "No trigger"
config HTS221_TRIGGER_GLOBAL_FIBER config HTS221_TRIGGER_GLOBAL_THREAD
bool bool
prompt "Use global fiber" prompt "Use global thread"
depends on GPIO depends on GPIO
select HTS221_TRIGGER select HTS221_TRIGGER
config HTS221_TRIGGER_OWN_FIBER config HTS221_TRIGGER_OWN_THREAD
bool bool
prompt "Use own fiber" prompt "Use own thread"
depends on GPIO depends on GPIO
select HTS221_TRIGGER select HTS221_TRIGGER
@ -86,21 +86,21 @@ config HTS221_GPIO_PIN_NUM
The number of the GPIO on which the interrupt signal from the HTS221 The number of the GPIO on which the interrupt signal from the HTS221
chip will be received. chip will be received.
config HTS221_FIBER_PRIORITY config HTS221_THREAD_PRIORITY
int int
prompt "Fiber priority" prompt "Thread priority"
depends on HTS221 && HTS221_TRIGGER_OWN_FIBER depends on HTS221 && HTS221_TRIGGER_OWN_THREAD
default 10 default 10
help help
Priority of fiber used by the driver to handle interrupts. Priority of thread used by the driver to handle interrupts.
config HTS221_FIBER_STACK_SIZE config HTS221_THREAD_STACK_SIZE
int int
prompt "Fiber stack size" prompt "Thread stack size"
depends on HTS221 && HTS221_TRIGGER_OWN_FIBER depends on HTS221 && HTS221_TRIGGER_OWN_THREAD
default 1024 default 1024
help help
Stack size of fiber used by the driver to handle interrupts. Stack size of thread used by the driver to handle interrupts.
config HTS221_ODR config HTS221_ODR
string string

View file

@ -68,10 +68,10 @@ struct hts221_data {
struct sensor_trigger data_ready_trigger; struct sensor_trigger data_ready_trigger;
sensor_trigger_handler_t data_ready_handler; sensor_trigger_handler_t data_ready_handler;
#if defined(CONFIG_HTS221_TRIGGER_OWN_FIBER) #if defined(CONFIG_HTS221_TRIGGER_OWN_THREAD)
char __stack fiber_stack[CONFIG_HTS221_FIBER_STACK_SIZE]; char __stack thread_stack[CONFIG_HTS221_THREAD_STACK_SIZE];
struct k_sem gpio_sem; struct k_sem gpio_sem;
#elif defined(CONFIG_HTS221_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_HTS221_TRIGGER_GLOBAL_THREAD)
struct k_work work; struct k_work work;
struct device *dev; struct device *dev;
#endif #endif

View file

@ -55,14 +55,14 @@ static void hts221_gpio_callback(struct device *dev,
gpio_pin_disable_callback(dev, CONFIG_HTS221_GPIO_PIN_NUM); gpio_pin_disable_callback(dev, CONFIG_HTS221_GPIO_PIN_NUM);
#if defined(CONFIG_HTS221_TRIGGER_OWN_FIBER) #if defined(CONFIG_HTS221_TRIGGER_OWN_THREAD)
k_sem_give(&drv_data->gpio_sem); k_sem_give(&drv_data->gpio_sem);
#elif defined(CONFIG_HTS221_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_HTS221_TRIGGER_GLOBAL_THREAD)
k_work_submit(&drv_data->work); k_work_submit(&drv_data->work);
#endif #endif
} }
static void hts221_fiber_cb(void *arg) static void hts221_thread_cb(void *arg)
{ {
struct device *dev = arg; struct device *dev = arg;
struct hts221_data *drv_data = dev->driver_data; struct hts221_data *drv_data = dev->driver_data;
@ -75,8 +75,8 @@ static void hts221_fiber_cb(void *arg)
gpio_pin_enable_callback(drv_data->gpio, CONFIG_HTS221_GPIO_PIN_NUM); gpio_pin_enable_callback(drv_data->gpio, CONFIG_HTS221_GPIO_PIN_NUM);
} }
#ifdef CONFIG_HTS221_TRIGGER_OWN_FIBER #ifdef CONFIG_HTS221_TRIGGER_OWN_THREAD
static void hts221_fiber(int dev_ptr, int unused) static void hts221_thread(int dev_ptr, int unused)
{ {
struct device *dev = INT_TO_POINTER(dev_ptr); struct device *dev = INT_TO_POINTER(dev_ptr);
struct hts221_data *drv_data = dev->driver_data; struct hts221_data *drv_data = dev->driver_data;
@ -85,18 +85,18 @@ static void hts221_fiber(int dev_ptr, int unused)
while (1) { while (1) {
k_sem_take(&drv_data->gpio_sem, K_FOREVER); k_sem_take(&drv_data->gpio_sem, K_FOREVER);
hts221_fiber_cb(dev); hts221_thread_cb(dev);
} }
} }
#endif #endif
#ifdef CONFIG_HTS221_TRIGGER_GLOBAL_FIBER #ifdef CONFIG_HTS221_TRIGGER_GLOBAL_THREAD
static void hts221_work_cb(struct k_work *work) static void hts221_work_cb(struct k_work *work)
{ {
struct hts221_data *drv_data = struct hts221_data *drv_data =
CONTAINER_OF(work, struct hts221_data, work); CONTAINER_OF(work, struct hts221_data, work);
hts221_fiber_cb(drv_data->dev); hts221_thread_cb(drv_data->dev);
} }
#endif #endif
@ -132,13 +132,13 @@ int hts221_init_interrupt(struct device *dev)
return -EIO; return -EIO;
} }
#if defined(CONFIG_HTS221_TRIGGER_OWN_FIBER) #if defined(CONFIG_HTS221_TRIGGER_OWN_THREAD)
k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX); k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX);
fiber_start(drv_data->fiber_stack, CONFIG_HTS221_FIBER_STACK_SIZE, k_thread_spawn(drv_data->thread_stack, CONFIG_HTS221_THREAD_STACK_SIZE,
(nano_fiber_entry_t)hts221_fiber, POINTER_TO_INT(dev), (k_thread_entry_t)hts221_thread, POINTER_TO_INT(dev),
0, CONFIG_HTS221_FIBER_PRIORITY, 0); 0, NULL, K_PRIO_COOP(CONFIG_HTS221_THREAD_PRIORITY), 0, 0);
#elif defined(CONFIG_HTS221_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_HTS221_TRIGGER_GLOBAL_THREAD)
drv_data->work.handler = hts221_work_cb; drv_data->work.handler = hts221_work_cb;
drv_data->dev = dev; drv_data->dev = dev;
#endif #endif

View file

@ -41,13 +41,13 @@ config ISL29035_I2C_MASTER_DEV_NAME
The device name of the I2C master device to which the ISL29035 The device name of the I2C master device to which the ISL29035
chip is connected. chip is connected.
config ISL29035_FIBER_PRIORITY config ISL29035_THREAD_PRIORITY
int int
prompt "Fiber priority" prompt "Thread priority"
depends on ISL29035 depends on ISL29035
default 10 default 10
help help
Priority of fiber used to handle the timer and threshold triggers. Priority of thread used to handle the timer and threshold triggers.
choice choice
prompt "Full scale lux range" prompt "Full scale lux range"
@ -135,15 +135,15 @@ config ISL29035_TRIGGER_NONE
bool bool
prompt "No trigger" prompt "No trigger"
config ISL29035_TRIGGER_GLOBAL_FIBER config ISL29035_TRIGGER_GLOBAL_THREAD
bool bool
prompt "Use global fiber" prompt "Use global thread"
depends on GPIO depends on GPIO
select ISL29035_TRIGGER select ISL29035_TRIGGER
config ISL29035_TRIGGER_OWN_FIBER config ISL29035_TRIGGER_OWN_THREAD
bool bool
prompt "Use own fiber" prompt "Use own thread"
depends on GPIO depends on GPIO
select ISL29035_TRIGGER select ISL29035_TRIGGER
@ -171,21 +171,21 @@ config ISL29035_GPIO_PIN_NUM
The number of the GPIO pin to which the ISL29035 interrupt pin is The number of the GPIO pin to which the ISL29035 interrupt pin is
connected. connected.
config ISL29035_FIBER_PRIORITY config ISL29035_THREAD_PRIORITY
int int
prompt "Fiber priority" prompt "Thread priority"
depends on ISL29035 && ISL29035_TRIGGER_OWN_FIBER depends on ISL29035 && ISL29035_TRIGGER_OWN_THREAD
default 10 default 10
help help
Priority of fiber used by the driver to handle interrupts. Priority of thread used by the driver to handle interrupts.
config ISL29035_FIBER_STACK_SIZE config ISL29035_THREAD_STACK_SIZE
int int
prompt "Fiber stack size" prompt "Thread stack size"
depends on ISL29035 && ISL29035_TRIGGER_OWN_FIBER depends on ISL29035 && ISL29035_TRIGGER_OWN_THREAD
default 1024 default 1024
help help
Stack size of fiber used by the driver to handle interrupts. Stack size of thread used by the driver to handle interrupts.
choice choice
prompt "Interrupt persist cycles" prompt "Interrupt persist cycles"

View file

@ -131,10 +131,10 @@ struct isl29035_driver_data {
struct sensor_trigger th_trigger; struct sensor_trigger th_trigger;
sensor_trigger_handler_t th_handler; sensor_trigger_handler_t th_handler;
#if defined(CONFIG_ISL29035_TRIGGER_OWN_FIBER) #if defined(CONFIG_ISL29035_TRIGGER_OWN_THREAD)
char __stack fiber_stack[CONFIG_ISL29035_FIBER_STACK_SIZE]; char __stack thread_stack[CONFIG_ISL29035_THREAD_STACK_SIZE];
struct k_sem gpio_sem; struct k_sem gpio_sem;
#elif defined(CONFIG_ISL29035_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_ISL29035_TRIGGER_GLOBAL_THREAD)
struct k_work work; struct k_work work;
struct device *dev; struct device *dev;
#endif #endif

View file

@ -84,14 +84,14 @@ static void isl29035_gpio_callback(struct device *dev,
gpio_pin_disable_callback(dev, CONFIG_ISL29035_GPIO_PIN_NUM); gpio_pin_disable_callback(dev, CONFIG_ISL29035_GPIO_PIN_NUM);
#if defined(CONFIG_ISL29035_TRIGGER_OWN_FIBER) #if defined(CONFIG_ISL29035_TRIGGER_OWN_THREAD)
k_sem_give(&drv_data->gpio_sem); k_sem_give(&drv_data->gpio_sem);
#elif defined(CONFIG_ISL29035_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_ISL29035_TRIGGER_GLOBAL_THREAD)
k_work_submit(&drv_data->work); k_work_submit(&drv_data->work);
#endif #endif
} }
static void isl29035_fiber_cb(struct device *dev) static void isl29035_thread_cb(struct device *dev)
{ {
struct isl29035_driver_data *drv_data = dev->driver_data; struct isl29035_driver_data *drv_data = dev->driver_data;
uint8_t val; uint8_t val;
@ -107,8 +107,8 @@ static void isl29035_fiber_cb(struct device *dev)
gpio_pin_enable_callback(drv_data->gpio, CONFIG_ISL29035_GPIO_PIN_NUM); gpio_pin_enable_callback(drv_data->gpio, CONFIG_ISL29035_GPIO_PIN_NUM);
} }
#ifdef CONFIG_ISL29035_TRIGGER_OWN_FIBER #ifdef CONFIG_ISL29035_TRIGGER_OWN_THREAD
static void isl29035_fiber(int ptr, int unused) static void isl29035_thread(int ptr, int unused)
{ {
struct device *dev = INT_TO_POINTER(ptr); struct device *dev = INT_TO_POINTER(ptr);
struct isl29035_driver_data *drv_data = dev->driver_data; struct isl29035_driver_data *drv_data = dev->driver_data;
@ -117,18 +117,18 @@ static void isl29035_fiber(int ptr, int unused)
while (1) { while (1) {
k_sem_take(&drv_data->gpio_sem, K_FOREVER); k_sem_take(&drv_data->gpio_sem, K_FOREVER);
isl29035_fiber_cb(dev); isl29035_thread_cb(dev);
} }
} }
#endif #endif
#ifdef CONFIG_ISL29035_TRIGGER_GLOBAL_FIBER #ifdef CONFIG_ISL29035_TRIGGER_GLOBAL_THREAD
static void isl29035_work_cb(struct k_work *work) static void isl29035_work_cb(struct k_work *work)
{ {
struct isl29035_driver_data *drv_data = struct isl29035_driver_data *drv_data =
CONTAINER_OF(work, struct isl29035_driver_data, work); CONTAINER_OF(work, struct isl29035_driver_data, work);
isl29035_fiber_cb(drv_data->dev); isl29035_thread_cb(drv_data->dev);
} }
#endif #endif
@ -183,13 +183,13 @@ int isl29035_init_interrupt(struct device *dev)
return -EIO; return -EIO;
} }
#if defined(CONFIG_ISL29035_TRIGGER_OWN_FIBER) #if defined(CONFIG_ISL29035_TRIGGER_OWN_THREAD)
k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX); k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX);
fiber_start(drv_data->fiber_stack, CONFIG_ISL29035_FIBER_STACK_SIZE, k_thread_spawn(drv_data->thread_stack, CONFIG_ISL29035_THREAD_STACK_SIZE,
(nano_fiber_entry_t)isl29035_fiber, POINTER_TO_INT(dev), (k_thread_entry_t)isl29035_thread, POINTER_TO_INT(dev),
0, CONFIG_ISL29035_FIBER_PRIORITY, 0); 0, NULL, K_PRIO_COOP(CONFIG_ISL29035_THREAD_PRIORITY), 0, 0);
#elif defined(CONFIG_ISL29035_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_ISL29035_TRIGGER_GLOBAL_THREAD)
drv_data->work.handler = isl29035_work_cb; drv_data->work.handler = isl29035_work_cb;
drv_data->dev = dev; drv_data->dev = dev;
#endif #endif

View file

@ -55,7 +55,7 @@ config LIS3DH_I2C_MASTER_DEV_NAME
choice choice
prompt "Trigger mode" prompt "Trigger mode"
depends on LIS3DH depends on LIS3DH
default LIS3DH_TRIGGER_GLOBAL_FIBER default LIS3DH_TRIGGER_GLOBAL_THREAD
help help
Specify the type of triggering to be used by the driver. Specify the type of triggering to be used by the driver.
@ -63,15 +63,15 @@ config LIS3DH_TRIGGER_NONE
bool bool
prompt "No trigger" prompt "No trigger"
config LIS3DH_TRIGGER_GLOBAL_FIBER config LIS3DH_TRIGGER_GLOBAL_THREAD
bool bool
prompt "Use global fiber" prompt "Use global thread"
depends on GPIO depends on GPIO
select LIS3DH_TRIGGER select LIS3DH_TRIGGER
config LIS3DH_TRIGGER_OWN_FIBER config LIS3DH_TRIGGER_OWN_THREAD
bool bool
prompt "Use own fiber" prompt "Use own thread"
depends on GPIO depends on GPIO
select LIS3DH_TRIGGER select LIS3DH_TRIGGER
@ -99,21 +99,21 @@ config LIS3DH_GPIO_PIN_NUM
The number of the GPIO on which the interrupt signal from the LIS3DH The number of the GPIO on which the interrupt signal from the LIS3DH
chip will be received. chip will be received.
config LIS3DH_FIBER_PRIORITY config LIS3DH_THREAD_PRIORITY
int int
prompt "Fiber priority" prompt "Thread priority"
depends on LIS3DH && LIS3DH_TRIGGER_OWN_FIBER depends on LIS3DH && LIS3DH_TRIGGER_OWN_THREAD
default 10 default 10
help help
Priority of fiber used by the driver to handle interrupts. Priority of thread used by the driver to handle interrupts.
config LIS3DH_FIBER_STACK_SIZE config LIS3DH_THREAD_STACK_SIZE
int int
prompt "Fiber stack size" prompt "Thread stack size"
depends on LIS3DH && LIS3DH_TRIGGER_OWN_FIBER depends on LIS3DH && LIS3DH_TRIGGER_OWN_THREAD
default 1024 default 1024
help help
Stack size of fiber used by the driver to handle interrupts. Stack size of thread used by the driver to handle interrupts.
choice choice
prompt "Acceleration measurement range" prompt "Acceleration measurement range"

View file

@ -102,10 +102,10 @@ struct lis3dh_data {
struct sensor_trigger data_ready_trigger; struct sensor_trigger data_ready_trigger;
sensor_trigger_handler_t data_ready_handler; sensor_trigger_handler_t data_ready_handler;
#if defined(CONFIG_LIS3DH_TRIGGER_OWN_FIBER) #if defined(CONFIG_LIS3DH_TRIGGER_OWN_THREAD)
char __stack fiber_stack[CONFIG_LIS3DH_FIBER_STACK_SIZE]; char __stack thread_stack[CONFIG_LIS3DH_THREAD_STACK_SIZE];
struct k_sem gpio_sem; struct k_sem gpio_sem;
#elif defined(CONFIG_LIS3DH_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_LIS3DH_TRIGGER_GLOBAL_THREAD)
struct k_work work; struct k_work work;
struct device *dev; struct device *dev;
#endif #endif

View file

@ -55,14 +55,14 @@ static void lis3dh_gpio_callback(struct device *dev,
gpio_pin_disable_callback(dev, CONFIG_LIS3DH_GPIO_PIN_NUM); gpio_pin_disable_callback(dev, CONFIG_LIS3DH_GPIO_PIN_NUM);
#if defined(CONFIG_LIS3DH_TRIGGER_OWN_FIBER) #if defined(CONFIG_LIS3DH_TRIGGER_OWN_THREAD)
k_sem_give(&drv_data->gpio_sem); k_sem_give(&drv_data->gpio_sem);
#elif defined(CONFIG_LIS3DH_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_LIS3DH_TRIGGER_GLOBAL_THREAD)
k_work_submit(&drv_data->work); k_work_submit(&drv_data->work);
#endif #endif
} }
static void lis3dh_fiber_cb(void *arg) static void lis3dh_thread_cb(void *arg)
{ {
struct device *dev = arg; struct device *dev = arg;
struct lis3dh_data *drv_data = dev->driver_data; struct lis3dh_data *drv_data = dev->driver_data;
@ -75,8 +75,8 @@ static void lis3dh_fiber_cb(void *arg)
gpio_pin_enable_callback(drv_data->gpio, CONFIG_LIS3DH_GPIO_PIN_NUM); gpio_pin_enable_callback(drv_data->gpio, CONFIG_LIS3DH_GPIO_PIN_NUM);
} }
#ifdef CONFIG_LIS3DH_TRIGGER_OWN_FIBER #ifdef CONFIG_LIS3DH_TRIGGER_OWN_THREAD
static void lis3dh_fiber(int dev_ptr, int unused) static void lis3dh_thread(int dev_ptr, int unused)
{ {
struct device *dev = INT_TO_POINTER(dev_ptr); struct device *dev = INT_TO_POINTER(dev_ptr);
struct lis3dh_data *drv_data = dev->driver_data; struct lis3dh_data *drv_data = dev->driver_data;
@ -85,18 +85,18 @@ static void lis3dh_fiber(int dev_ptr, int unused)
while (1) { while (1) {
k_sem_take(&drv_data->gpio_sem, K_FOREVER); k_sem_take(&drv_data->gpio_sem, K_FOREVER);
lis3dh_fiber_cb(dev); lis3dh_thread_cb(dev);
} }
} }
#endif #endif
#ifdef CONFIG_LIS3DH_TRIGGER_GLOBAL_FIBER #ifdef CONFIG_LIS3DH_TRIGGER_GLOBAL_THREAD
static void lis3dh_work_cb(struct k_work *work) static void lis3dh_work_cb(struct k_work *work)
{ {
struct lis3dh_data *drv_data = struct lis3dh_data *drv_data =
CONTAINER_OF(work, struct lis3dh_data, work); CONTAINER_OF(work, struct lis3dh_data, work);
lis3dh_fiber_cb(drv_data->dev); lis3dh_thread_cb(drv_data->dev);
} }
#endif #endif
@ -138,13 +138,13 @@ int lis3dh_init_interrupt(struct device *dev)
return -EIO; return -EIO;
} }
#if defined(CONFIG_LIS3DH_TRIGGER_OWN_FIBER) #if defined(CONFIG_LIS3DH_TRIGGER_OWN_THREAD)
k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX); k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX);
fiber_start(drv_data->fiber_stack, CONFIG_LIS3DH_FIBER_STACK_SIZE, k_thread_spawn(drv_data->thread_stack, CONFIG_LIS3DH_THREAD_STACK_SIZE,
(nano_fiber_entry_t)lis3dh_fiber, POINTER_TO_INT(dev), (k_thread_entry_t)lis3dh_thread, POINTER_TO_INT(dev),
0, CONFIG_LIS3DH_FIBER_PRIORITY, 0); 0, NULL, K_PRIO_COOP(CONFIG_LIS3DH_THREAD_PRIORITY), 0, 0);
#elif defined(CONFIG_LIS3DH_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_LIS3DH_TRIGGER_GLOBAL_THREAD)
drv_data->work.handler = lis3dh_work_cb; drv_data->work.handler = lis3dh_work_cb;
drv_data->dev = dev; drv_data->dev = dev;
#endif #endif

View file

@ -52,7 +52,7 @@ config LIS3MDL_I2C_MASTER_DEV_NAME
choice choice
prompt "Trigger mode" prompt "Trigger mode"
depends on LIS3MDL depends on LIS3MDL
default LIS3MDL_TRIGGER_GLOBAL_FIBER default LIS3MDL_TRIGGER_GLOBAL_THREAD
help help
Specify the type of triggering to be used by the driver. Specify the type of triggering to be used by the driver.
@ -60,15 +60,15 @@ config LIS3MDL_TRIGGER_NONE
bool bool
prompt "No trigger" prompt "No trigger"
config LIS3MDL_TRIGGER_GLOBAL_FIBER config LIS3MDL_TRIGGER_GLOBAL_THREAD
bool bool
prompt "Use global fiber" prompt "Use global thread"
depends on GPIO depends on GPIO
select LIS3MDL_TRIGGER select LIS3MDL_TRIGGER
config LIS3MDL_TRIGGER_OWN_FIBER config LIS3MDL_TRIGGER_OWN_THREAD
bool bool
prompt "Use own fiber" prompt "Use own thread"
depends on GPIO depends on GPIO
select LIS3MDL_TRIGGER select LIS3MDL_TRIGGER
@ -96,21 +96,21 @@ config LIS3MDL_GPIO_PIN_NUM
The number of the GPIO on which the interrupt signal from the LIS3MDL The number of the GPIO on which the interrupt signal from the LIS3MDL
chip will be received. chip will be received.
config LIS3MDL_FIBER_PRIORITY config LIS3MDL_THREAD_PRIORITY
int int
prompt "Fiber priority" prompt "Thread priority"
depends on LIS3MDL && LIS3MDL_TRIGGER_OWN_FIBER depends on LIS3MDL && LIS3MDL_TRIGGER_OWN_THREAD
default 10 default 10
help help
Priority of fiber used by the driver to handle interrupts. Priority of thread used by the driver to handle interrupts.
config LIS3MDL_FIBER_STACK_SIZE config LIS3MDL_THREAD_STACK_SIZE
int int
prompt "Fiber stack size" prompt "Thread stack size"
depends on LIS3MDL && LIS3MDL_TRIGGER_OWN_FIBER depends on LIS3MDL && LIS3MDL_TRIGGER_OWN_THREAD
default 1024 default 1024
help help
Stack size of fiber used by the driver to handle interrupts. Stack size of thread used by the driver to handle interrupts.
config LIS3MDL_ODR config LIS3MDL_ODR
string string

View file

@ -116,10 +116,10 @@ struct lis3mdl_data {
struct sensor_trigger data_ready_trigger; struct sensor_trigger data_ready_trigger;
sensor_trigger_handler_t data_ready_handler; sensor_trigger_handler_t data_ready_handler;
#if defined(CONFIG_LIS3MDL_TRIGGER_OWN_FIBER) #if defined(CONFIG_LIS3MDL_TRIGGER_OWN_THREAD)
char __stack fiber_stack[CONFIG_LIS3MDL_FIBER_STACK_SIZE]; char __stack thread_stack[CONFIG_LIS3MDL_THREAD_STACK_SIZE];
struct k_sem gpio_sem; struct k_sem gpio_sem;
#elif defined(CONFIG_LIS3MDL_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_LIS3MDL_TRIGGER_GLOBAL_THREAD)
struct k_work work; struct k_work work;
struct device *dev; struct device *dev;
#endif #endif

View file

@ -55,14 +55,14 @@ static void lis3mdl_gpio_callback(struct device *dev,
gpio_pin_disable_callback(dev, CONFIG_LIS3MDL_GPIO_PIN_NUM); gpio_pin_disable_callback(dev, CONFIG_LIS3MDL_GPIO_PIN_NUM);
#if defined(CONFIG_LIS3MDL_TRIGGER_OWN_FIBER) #if defined(CONFIG_LIS3MDL_TRIGGER_OWN_THREAD)
k_sem_give(&drv_data->gpio_sem); k_sem_give(&drv_data->gpio_sem);
#elif defined(CONFIG_LIS3MDL_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_LIS3MDL_TRIGGER_GLOBAL_THREAD)
k_work_submit(&drv_data->work); k_work_submit(&drv_data->work);
#endif #endif
} }
static void lis3mdl_fiber_cb(void *arg) static void lis3mdl_thread_cb(void *arg)
{ {
struct device *dev = arg; struct device *dev = arg;
struct lis3mdl_data *drv_data = dev->driver_data; struct lis3mdl_data *drv_data = dev->driver_data;
@ -75,8 +75,8 @@ static void lis3mdl_fiber_cb(void *arg)
gpio_pin_enable_callback(drv_data->gpio, CONFIG_LIS3MDL_GPIO_PIN_NUM); gpio_pin_enable_callback(drv_data->gpio, CONFIG_LIS3MDL_GPIO_PIN_NUM);
} }
#ifdef CONFIG_LIS3MDL_TRIGGER_OWN_FIBER #ifdef CONFIG_LIS3MDL_TRIGGER_OWN_THREAD
static void lis3mdl_fiber(int dev_ptr, int unused) static void lis3mdl_thread(int dev_ptr, int unused)
{ {
struct device *dev = INT_TO_POINTER(dev_ptr); struct device *dev = INT_TO_POINTER(dev_ptr);
struct lis3mdl_data *drv_data = dev->driver_data; struct lis3mdl_data *drv_data = dev->driver_data;
@ -85,18 +85,18 @@ static void lis3mdl_fiber(int dev_ptr, int unused)
while (1) { while (1) {
k_sem_take(&drv_data->gpio_sem, K_FOREVER); k_sem_take(&drv_data->gpio_sem, K_FOREVER);
lis3mdl_fiber_cb(dev); lis3mdl_thread_cb(dev);
} }
} }
#endif #endif
#ifdef CONFIG_LIS3MDL_TRIGGER_GLOBAL_FIBER #ifdef CONFIG_LIS3MDL_TRIGGER_GLOBAL_THREAD
static void lis3mdl_work_cb(struct k_work *work) static void lis3mdl_work_cb(struct k_work *work)
{ {
struct lis3mdl_data *drv_data = struct lis3mdl_data *drv_data =
CONTAINER_OF(work, struct lis3mdl_data, work); CONTAINER_OF(work, struct lis3mdl_data, work);
lis3mdl_fiber_cb(drv_data->dev); lis3mdl_thread_cb(drv_data->dev);
} }
#endif #endif
@ -138,13 +138,13 @@ int lis3mdl_init_interrupt(struct device *dev)
return -EIO; return -EIO;
} }
#if defined(CONFIG_LIS3MDL_TRIGGER_OWN_FIBER) #if defined(CONFIG_LIS3MDL_TRIGGER_OWN_THREAD)
k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX); k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX);
fiber_start(drv_data->fiber_stack, CONFIG_LIS3MDL_FIBER_STACK_SIZE, k_thread_spawn(drv_data->thread_stack, CONFIG_LIS3MDL_THREAD_STACK_SIZE,
(nano_fiber_entry_t)lis3mdl_fiber, POINTER_TO_INT(dev), (k_thread_entry_t)lis3mdl_thread, POINTER_TO_INT(dev),
0, CONFIG_LIS3MDL_FIBER_PRIORITY, 0); 0, NULL, K_PRIO_COOP(CONFIG_LIS3MDL_THREAD_PRIORITY), 0, 0);
#elif defined(CONFIG_LIS3MDL_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_LIS3MDL_TRIGGER_GLOBAL_THREAD)
drv_data->work.handler = lis3mdl_work_cb; drv_data->work.handler = lis3mdl_work_cb;
drv_data->dev = dev; drv_data->dev = dev;
#endif #endif

View file

@ -117,12 +117,12 @@ config LSM9DS0_GYRO_TRIGGERS
depends on LSM9DS0_GYRO && GPIO depends on LSM9DS0_GYRO && GPIO
default n default n
config LSM9DS0_GYRO_FIBER_STACK_SIZE config LSM9DS0_GYRO_THREAD_STACK_SIZE
int "Fiber stack size" int "Thread stack size"
depends on LSM9DS0_GYRO_TRIGGERS depends on LSM9DS0_GYRO_TRIGGERS
default 1024 default 1024
help help
Specify the internal fiber stack size. Specify the internal thread stack size.
config LSM9DS0_GYRO_TRIGGER_DRDY config LSM9DS0_GYRO_TRIGGER_DRDY
bool "Enable data ready trigger" bool "Enable data ready trigger"

View file

@ -239,7 +239,7 @@ struct lsm9ds0_gyro_data {
#endif #endif
#if defined(CONFIG_LSM9DS0_GYRO_TRIGGER_DRDY) #if defined(CONFIG_LSM9DS0_GYRO_TRIGGER_DRDY)
char __stack fiber_stack[CONFIG_LSM9DS0_GYRO_FIBER_STACK_SIZE]; char __stack thread_stack[CONFIG_LSM9DS0_GYRO_THREAD_STACK_SIZE];
struct device *dev; struct device *dev;
struct device *gpio_drdy; struct device *gpio_drdy;

View file

@ -80,10 +80,13 @@ static void lsm9ds0_gyro_gpio_drdy_callback(struct device *dev,
k_sem_give(&data->sem); k_sem_give(&data->sem);
} }
static void lsm9ds0_gyro_fiber_main(int arg1, int gpio_pin) static void lsm9ds0_gyro_thread_main(void *arg1, void *arg2, void *arg3)
{ {
struct device *dev = (struct device *) arg1; struct device *dev = (struct device *) arg1;
struct lsm9ds0_gyro_data *data = dev->driver_data; struct lsm9ds0_gyro_data *data = dev->driver_data;
const struct lsm9ds0_gyro_config *config = dev->config->config_info;
int gpio_pin = config->gpio_drdy_int_pin;
while (1) { while (1) {
k_sem_take(&data->sem, K_FOREVER); k_sem_take(&data->sem, K_FOREVER);
@ -104,10 +107,10 @@ int lsm9ds0_gyro_init_interrupt(struct device *dev)
k_sem_init(&data->sem, 0, UINT_MAX); k_sem_init(&data->sem, 0, UINT_MAX);
task_fiber_start(data->fiber_stack, k_thread_spawn(data->thread_stack,
CONFIG_LSM9DS0_GYRO_FIBER_STACK_SIZE, CONFIG_LSM9DS0_GYRO_THREAD_STACK_SIZE,
lsm9ds0_gyro_fiber_main, (int) dev, lsm9ds0_gyro_thread_main, dev, NULL, NULL,
config->gpio_drdy_int_pin, 10, 0); K_PRIO_COOP(10), 0, 0);
data->gpio_drdy = device_get_binding(config->gpio_drdy_dev_name); data->gpio_drdy = device_get_binding(config->gpio_drdy_dev_name);
if (!data->gpio_drdy) { if (!data->gpio_drdy) {

View file

@ -52,15 +52,15 @@ choice
config MCP9808_TRIGGER_NONE config MCP9808_TRIGGER_NONE
bool "No trigger" bool "No trigger"
config MCP9808_TRIGGER_GLOBAL_FIBER config MCP9808_TRIGGER_GLOBAL_THREAD
depends on GPIO depends on GPIO
select MCP9808_TRIGGER select MCP9808_TRIGGER
bool "Use global fiber" bool "Use global thread"
config MCP9808_TRIGGER_OWN_FIBER config MCP9808_TRIGGER_OWN_THREAD
depends on GPIO depends on GPIO
select MCP9808_TRIGGER select MCP9808_TRIGGER
bool "Use own fiber" bool "Use own thread"
endchoice endchoice
@ -82,12 +82,12 @@ config MCP9808_GPIO_PIN
help help
The GPIO pin the MCP9808 interrupt is connected to. The GPIO pin the MCP9808 interrupt is connected to.
config MCP9808_FIBER_STACK_SIZE config MCP9808_THREAD_STACK_SIZE
int "Sensor delayed work fiber stack size" int "Sensor delayed work thread stack size"
depends on MCP9808 && MCP9808_TRIGGER_OWN_FIBER depends on MCP9808 && MCP9808_TRIGGER_OWN_THREAD
default 1024 default 1024
config MCP9808_FIBER_PRIORITY config MCP9808_THREAD_PRIORITY
int "MCP9808 fiber priority" int "MCP9808 thread priority"
depends on MCP9808 && MCP9808_TRIGGER_OWN_FIBER depends on MCP9808 && MCP9808_TRIGGER_OWN_THREAD
default 10 default 10

View file

@ -50,11 +50,11 @@ struct mcp9808_data {
struct gpio_callback gpio_cb; struct gpio_callback gpio_cb;
#ifdef CONFIG_MCP9808_TRIGGER_OWN_FIBER #ifdef CONFIG_MCP9808_TRIGGER_OWN_THREAD
struct k_sem sem; struct k_sem sem;
#endif #endif
#ifdef CONFIG_MCP9808_TRIGGER_GLOBAL_FIBER #ifdef CONFIG_MCP9808_TRIGGER_GLOBAL_THREAD
struct k_work work; struct k_work work;
struct device *dev; struct device *dev;
#endif #endif

View file

@ -116,7 +116,7 @@ int mcp9808_trigger_set(struct device *dev,
handler == NULL ? 0 : MCP9808_ALERT_CNT); handler == NULL ? 0 : MCP9808_ALERT_CNT);
} }
#ifdef CONFIG_MCP9808_TRIGGER_OWN_FIBER #ifdef CONFIG_MCP9808_TRIGGER_OWN_THREAD
static void mcp9808_gpio_cb(struct device *dev, static void mcp9808_gpio_cb(struct device *dev,
struct gpio_callback *cb, uint32_t pins) struct gpio_callback *cb, uint32_t pins)
@ -129,7 +129,7 @@ static void mcp9808_gpio_cb(struct device *dev,
k_sem_give(&data->sem); k_sem_give(&data->sem);
} }
static void mcp9808_fiber_main(int arg1, int arg2) static void mcp9808_thread_main(int arg1, int arg2)
{ {
struct device *dev = INT_TO_POINTER(arg1); struct device *dev = INT_TO_POINTER(arg1);
struct mcp9808_data *data = dev->driver_data; struct mcp9808_data *data = dev->driver_data;
@ -144,9 +144,9 @@ static void mcp9808_fiber_main(int arg1, int arg2)
} }
} }
static char __stack mcp9808_fiber_stack[CONFIG_MCP9808_FIBER_STACK_SIZE]; static char __stack mcp9808_thread_stack[CONFIG_MCP9808_THREAD_STACK_SIZE];
#else /* CONFIG_MCP9808_TRIGGER_GLOBAL_FIBER */ #else /* CONFIG_MCP9808_TRIGGER_GLOBAL_THREAD */
static void mcp9808_gpio_cb(struct device *dev, static void mcp9808_gpio_cb(struct device *dev,
struct gpio_callback *cb, uint32_t pins) struct gpio_callback *cb, uint32_t pins)
@ -159,7 +159,7 @@ static void mcp9808_gpio_cb(struct device *dev,
k_work_submit(&data->work); k_work_submit(&data->work);
} }
static void mcp9808_gpio_fiber_cb(struct k_work *work) static void mcp9808_gpio_thread_cb(struct k_work *work)
{ {
struct mcp9808_data *data = struct mcp9808_data *data =
CONTAINER_OF(work, struct mcp9808_data, work); CONTAINER_OF(work, struct mcp9808_data, work);
@ -170,7 +170,7 @@ static void mcp9808_gpio_fiber_cb(struct k_work *work)
MCP9808_INT_CLEAR, MCP9808_INT_CLEAR); MCP9808_INT_CLEAR, MCP9808_INT_CLEAR);
} }
#endif /* CONFIG_MCP9808_TRIGGER_GLOBAL_FIBER */ #endif /* CONFIG_MCP9808_TRIGGER_GLOBAL_THREAD */
void mcp9808_setup_interrupt(struct device *dev) void mcp9808_setup_interrupt(struct device *dev)
{ {
@ -183,15 +183,15 @@ void mcp9808_setup_interrupt(struct device *dev)
mcp9808_reg_update(data, MCP9808_REG_CONFIG, MCP9808_INT_CLEAR, mcp9808_reg_update(data, MCP9808_REG_CONFIG, MCP9808_INT_CLEAR,
MCP9808_INT_CLEAR); MCP9808_INT_CLEAR);
#ifdef CONFIG_MCP9808_TRIGGER_OWN_FIBER #ifdef CONFIG_MCP9808_TRIGGER_OWN_THREAD
k_sem_init(&data->sem, 0, UINT_MAX); k_sem_init(&data->sem, 0, UINT_MAX);
fiber_fiber_start(mcp9808_fiber_stack, k_thread_spawn(mcp9808_thread_stack,
CONFIG_MCP9808_FIBER_STACK_SIZE, CONFIG_MCP9808_THREAD_STACK_SIZE,
mcp9808_fiber_main, POINTER_TO_INT(dev), 0, mcp9808_thread_main, POINTER_TO_INT(dev), 0, NULL,
CONFIG_MCP9808_FIBER_PRIORITY, 0); K_PRIO_COOP(CONFIG_MCP9808_THREAD_PRIORITY), 0, 0);
#else /* CONFIG_MCP9808_TRIGGER_GLOBAL_FIBER */ #else /* CONFIG_MCP9808_TRIGGER_GLOBAL_THREAD */
data->work.handler = mcp9808_gpio_fiber_cb; data->work.handler = mcp9808_gpio_thread_cb;
data->dev = dev; data->dev = dev;
#endif #endif

View file

@ -55,7 +55,7 @@ config MPU6050_I2C_MASTER_DEV_NAME
choice choice
prompt "Trigger mode" prompt "Trigger mode"
depends on MPU6050 depends on MPU6050
default MPU6050_TRIGGER_GLOBAL_FIBER default MPU6050_TRIGGER_GLOBAL_THREAD
help help
Specify the type of triggering to be used by the driver. Specify the type of triggering to be used by the driver.
@ -63,15 +63,15 @@ config MPU6050_TRIGGER_NONE
bool bool
prompt "No trigger" prompt "No trigger"
config MPU6050_TRIGGER_GLOBAL_FIBER config MPU6050_TRIGGER_GLOBAL_THREAD
bool bool
prompt "Use global fiber" prompt "Use global thread"
depends on GPIO depends on GPIO
select MPU6050_TRIGGER select MPU6050_TRIGGER
config MPU6050_TRIGGER_OWN_FIBER config MPU6050_TRIGGER_OWN_THREAD
bool bool
prompt "Use own fiber" prompt "Use own thread"
depends on GPIO depends on GPIO
select MPU6050_TRIGGER select MPU6050_TRIGGER
@ -99,21 +99,21 @@ config MPU6050_GPIO_PIN_NUM
The number of the GPIO on which the interrupt signal from the MPU6050 The number of the GPIO on which the interrupt signal from the MPU6050
chip will be received. chip will be received.
config MPU6050_FIBER_PRIORITY config MPU6050_THREAD_PRIORITY
int int
prompt "Fiber priority" prompt "Thread priority"
depends on MPU6050 && MPU6050_TRIGGER_OWN_FIBER depends on MPU6050 && MPU6050_TRIGGER_OWN_THREAD
default 10 default 10
help help
Priority of fiber used by the driver to handle interrupts. Priority of thread used by the driver to handle interrupts.
config MPU6050_FIBER_STACK_SIZE config MPU6050_THREAD_STACK_SIZE
int int
prompt "Fiber stack size" prompt "Thread stack size"
depends on MPU6050 && MPU6050_TRIGGER_OWN_FIBER depends on MPU6050 && MPU6050_TRIGGER_OWN_THREAD
default 1024 default 1024
help help
Stack size of fiber used by the driver to handle interrupts. Stack size of thread used by the driver to handle interrupts.
config MPU6050_ACCEL_FS config MPU6050_ACCEL_FS
int int

View file

@ -70,10 +70,10 @@ struct mpu6050_data {
struct sensor_trigger data_ready_trigger; struct sensor_trigger data_ready_trigger;
sensor_trigger_handler_t data_ready_handler; sensor_trigger_handler_t data_ready_handler;
#if defined(CONFIG_MPU6050_TRIGGER_OWN_FIBER) #if defined(CONFIG_MPU6050_TRIGGER_OWN_THREAD)
char __stack fiber_stack[CONFIG_MPU6050_FIBER_STACK_SIZE]; char __stack thread_stack[CONFIG_MPU6050_THREAD_STACK_SIZE];
struct k_sem gpio_sem; struct k_sem gpio_sem;
#elif defined(CONFIG_MPU6050_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_MPU6050_TRIGGER_GLOBAL_THREAD)
struct k_work work; struct k_work work;
struct device *dev; struct device *dev;
#endif #endif

View file

@ -56,14 +56,14 @@ static void mpu6050_gpio_callback(struct device *dev,
gpio_pin_disable_callback(dev, CONFIG_MPU6050_GPIO_PIN_NUM); gpio_pin_disable_callback(dev, CONFIG_MPU6050_GPIO_PIN_NUM);
#if defined(CONFIG_MPU6050_TRIGGER_OWN_FIBER) #if defined(CONFIG_MPU6050_TRIGGER_OWN_THREAD)
k_sem_give(&drv_data->gpio_sem); k_sem_give(&drv_data->gpio_sem);
#elif defined(CONFIG_MPU6050_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_MPU6050_TRIGGER_GLOBAL_THREAD)
k_work_submit(&drv_data->work); k_work_submit(&drv_data->work);
#endif #endif
} }
static void mpu6050_fiber_cb(void *arg) static void mpu6050_thread_cb(void *arg)
{ {
struct device *dev = arg; struct device *dev = arg;
struct mpu6050_data *drv_data = dev->driver_data; struct mpu6050_data *drv_data = dev->driver_data;
@ -76,8 +76,8 @@ static void mpu6050_fiber_cb(void *arg)
gpio_pin_enable_callback(drv_data->gpio, CONFIG_MPU6050_GPIO_PIN_NUM); gpio_pin_enable_callback(drv_data->gpio, CONFIG_MPU6050_GPIO_PIN_NUM);
} }
#ifdef CONFIG_MPU6050_TRIGGER_OWN_FIBER #ifdef CONFIG_MPU6050_TRIGGER_OWN_THREAD
static void mpu6050_fiber(int dev_ptr, int unused) static void mpu6050_thread(int dev_ptr, int unused)
{ {
struct device *dev = INT_TO_POINTER(dev_ptr); struct device *dev = INT_TO_POINTER(dev_ptr);
struct mpu6050_data *drv_data = dev->driver_data; struct mpu6050_data *drv_data = dev->driver_data;
@ -86,18 +86,18 @@ static void mpu6050_fiber(int dev_ptr, int unused)
while (1) { while (1) {
k_sem_take(&drv_data->gpio_sem, K_FOREVER); k_sem_take(&drv_data->gpio_sem, K_FOREVER);
mpu6050_fiber_cb(dev); mpu6050_thread_cb(dev);
} }
} }
#endif #endif
#ifdef CONFIG_MPU6050_TRIGGER_GLOBAL_FIBER #ifdef CONFIG_MPU6050_TRIGGER_GLOBAL_THREAD
static void mpu6050_work_cb(struct k_work *work) static void mpu6050_work_cb(struct k_work *work)
{ {
struct mpu6050_data *drv_data = struct mpu6050_data *drv_data =
CONTAINER_OF(work, struct mpu6050_data, work); CONTAINER_OF(work, struct mpu6050_data, work);
mpu6050_fiber_cb(drv_data->dev); mpu6050_thread_cb(drv_data->dev);
} }
#endif #endif
@ -133,13 +133,13 @@ int mpu6050_init_interrupt(struct device *dev)
return -EIO; return -EIO;
} }
#if defined(CONFIG_MPU6050_TRIGGER_OWN_FIBER) #if defined(CONFIG_MPU6050_TRIGGER_OWN_THREAD)
k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX); k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX);
fiber_start(drv_data->fiber_stack, CONFIG_MPU6050_FIBER_STACK_SIZE, k_thread_spawn(drv_data->thread_stack, CONFIG_MPU6050_THREAD_STACK_SIZE,
(nano_fiber_entry_t)mpu6050_fiber, POINTER_TO_INT(dev), (k_thread_entry_t)mpu6050_thread, POINTER_TO_INT(dev),
0, CONFIG_MPU6050_FIBER_PRIORITY, 0); 0, NULL, K_PRIO_COOP(CONFIG_MPU6050_THREAD_PRIORITY), 0, 0);
#elif defined(CONFIG_MPU6050_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_MPU6050_TRIGGER_GLOBAL_THREAD)
drv_data->work.handler = mpu6050_work_cb; drv_data->work.handler = mpu6050_work_cb;
drv_data->dev = dev; drv_data->dev = dev;
#endif #endif

View file

@ -62,15 +62,15 @@ config SHT3XD_TRIGGER_NONE
bool bool
prompt "No trigger" prompt "No trigger"
config SHT3XD_TRIGGER_GLOBAL_FIBER config SHT3XD_TRIGGER_GLOBAL_THREAD
bool bool
prompt "Use global fiber" prompt "Use global thread"
depends on GPIO depends on GPIO
select SHT3XD_TRIGGER select SHT3XD_TRIGGER
config SHT3XD_TRIGGER_OWN_FIBER config SHT3XD_TRIGGER_OWN_THREAD
bool bool
prompt "Use own fiber" prompt "Use own thread"
depends on GPIO depends on GPIO
select SHT3XD_TRIGGER select SHT3XD_TRIGGER
@ -98,21 +98,21 @@ config SHT3XD_GPIO_PIN_NUM
The number of the GPIO on which the interrupt signal from the The number of the GPIO on which the interrupt signal from the
SHT3xD chip will be received. SHT3xD chip will be received.
config SHT3XD_FIBER_PRIORITY config SHT3XD_THREAD_PRIORITY
int int
prompt "Fiber priority" prompt "Thread priority"
depends on SHT3XD && SHT3XD_TRIGGER_OWN_FIBER depends on SHT3XD && SHT3XD_TRIGGER_OWN_THREAD
default 10 default 10
help help
Priority of fiber used by the driver to handle interrupts. Priority of thread used by the driver to handle interrupts.
config SHT3XD_FIBER_STACK_SIZE config SHT3XD_THREAD_STACK_SIZE
int int
prompt "Fiber stack size" prompt "Thread stack size"
depends on SHT3XD && SHT3XD_TRIGGER_OWN_FIBER depends on SHT3XD && SHT3XD_TRIGGER_OWN_THREAD
default 1024 default 1024
help help
Stack size of fiber used by the driver to handle interrupts. Stack size of thread used by the driver to handle interrupts.
choice choice
prompt "Measurement repeatability" prompt "Measurement repeatability"

View file

@ -84,10 +84,10 @@ struct sht3xd_data {
sensor_trigger_handler_t handler; sensor_trigger_handler_t handler;
struct sensor_trigger trigger; struct sensor_trigger trigger;
#if defined(CONFIG_SHT3XD_TRIGGER_OWN_FIBER) #if defined(CONFIG_SHT3XD_TRIGGER_OWN_THREAD)
char __stack fiber_stack[CONFIG_SHT3XD_FIBER_STACK_SIZE]; char __stack thread_stack[CONFIG_SHT3XD_THREAD_STACK_SIZE];
struct k_sem gpio_sem; struct k_sem gpio_sem;
#elif defined(CONFIG_SHT3XD_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_SHT3XD_TRIGGER_GLOBAL_THREAD)
struct k_work work; struct k_work work;
struct device *dev; struct device *dev;
#endif #endif

View file

@ -117,14 +117,14 @@ static void sht3xd_gpio_callback(struct device *dev,
gpio_pin_disable_callback(dev, CONFIG_SHT3XD_GPIO_PIN_NUM); gpio_pin_disable_callback(dev, CONFIG_SHT3XD_GPIO_PIN_NUM);
#if defined(CONFIG_SHT3XD_TRIGGER_OWN_FIBER) #if defined(CONFIG_SHT3XD_TRIGGER_OWN_THREAD)
k_sem_give(&drv_data->gpio_sem); k_sem_give(&drv_data->gpio_sem);
#elif defined(CONFIG_SHT3XD_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_SHT3XD_TRIGGER_GLOBAL_THREAD)
k_work_submit(&drv_data->work); k_work_submit(&drv_data->work);
#endif #endif
} }
static void sht3xd_fiber_cb(void *arg) static void sht3xd_thread_cb(void *arg)
{ {
struct device *dev = arg; struct device *dev = arg;
struct sht3xd_data *drv_data = dev->driver_data; struct sht3xd_data *drv_data = dev->driver_data;
@ -136,8 +136,8 @@ static void sht3xd_fiber_cb(void *arg)
gpio_pin_enable_callback(drv_data->gpio, CONFIG_SHT3XD_GPIO_PIN_NUM); gpio_pin_enable_callback(drv_data->gpio, CONFIG_SHT3XD_GPIO_PIN_NUM);
} }
#ifdef CONFIG_SHT3XD_TRIGGER_OWN_FIBER #ifdef CONFIG_SHT3XD_TRIGGER_OWN_THREAD
static void sht3xd_fiber(int dev_ptr, int unused) static void sht3xd_thread(int dev_ptr, int unused)
{ {
struct device *dev = INT_TO_POINTER(dev_ptr); struct device *dev = INT_TO_POINTER(dev_ptr);
struct sht3xd_data *drv_data = dev->driver_data; struct sht3xd_data *drv_data = dev->driver_data;
@ -146,18 +146,18 @@ static void sht3xd_fiber(int dev_ptr, int unused)
while (1) { while (1) {
k_sem_take(&drv_data->gpio_sem, K_FOREVER); k_sem_take(&drv_data->gpio_sem, K_FOREVER);
sht3xd_fiber_cb(dev); sht3xd_thread_cb(dev);
} }
} }
#endif #endif
#ifdef CONFIG_SHT3XD_TRIGGER_GLOBAL_FIBER #ifdef CONFIG_SHT3XD_TRIGGER_GLOBAL_THREAD
static void sht3xd_work_cb(struct k_work *work) static void sht3xd_work_cb(struct k_work *work)
{ {
struct sht3xd_data *drv_data = struct sht3xd_data *drv_data =
CONTAINER_OF(work, struct sht3xd_data, work); CONTAINER_OF(work, struct sht3xd_data, work);
sht3xd_fiber_cb(drv_data->dev); sht3xd_thread_cb(drv_data->dev);
} }
#endif #endif
@ -232,13 +232,13 @@ int sht3xd_init_interrupt(struct device *dev)
return -EIO; return -EIO;
} }
#if defined(CONFIG_SHT3XD_TRIGGER_OWN_FIBER) #if defined(CONFIG_SHT3XD_TRIGGER_OWN_THREAD)
k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX); k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX);
fiber_start(drv_data->fiber_stack, CONFIG_SHT3XD_FIBER_STACK_SIZE, k_thread_spawn(drv_data->thread_stack, CONFIG_SHT3XD_THREAD_STACK_SIZE,
(nano_fiber_entry_t)sht3xd_fiber, POINTER_TO_INT(dev), (k_thread_entry_t)sht3xd_thread, POINTER_TO_INT(dev),
0, CONFIG_SHT3XD_FIBER_PRIORITY, 0); 0, NULL, K_PRIO_COOP(CONFIG_SHT3XD_THREAD_PRIORITY), 0, 0);
#elif defined(CONFIG_SHT3XD_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_SHT3XD_TRIGGER_GLOBAL_THREAD)
drv_data->work.handler = sht3xd_work_cb; drv_data->work.handler = sht3xd_work_cb;
drv_data->dev = dev; drv_data->dev = dev;
#endif #endif

View file

@ -55,20 +55,20 @@ config SX9500_PROX_CHANNEL
choice choice
prompt "SX9500 trigger mode" prompt "SX9500 trigger mode"
depends on SX9500 depends on SX9500
default SX9500_TRIGGER_GLOBAL_FIBER default SX9500_TRIGGER_GLOBAL_THREAD
config SX9500_TRIGGER_NONE config SX9500_TRIGGER_NONE
bool "No trigger" bool "No trigger"
config SX9500_TRIGGER_GLOBAL_FIBER config SX9500_TRIGGER_GLOBAL_THREAD
depends on GPIO depends on GPIO
select SX9500_TRIGGER select SX9500_TRIGGER
bool "Use global fiber" bool "Use global thread"
config SX9500_TRIGGER_OWN_FIBER config SX9500_TRIGGER_OWN_THREAD
depends on GPIO depends on GPIO
select SX9500_TRIGGER select SX9500_TRIGGER
bool "Use own fiber" bool "Use own thread"
endchoice endchoice
@ -89,12 +89,12 @@ config SX9500_GPIO_PIN
depends on SX9500 && SX9500_TRIGGER depends on SX9500 && SX9500_TRIGGER
default 3 default 3
config SX9500_FIBER_STACK_SIZE config SX9500_THREAD_STACK_SIZE
int "Sensor delayed work fiber stack size" int "Sensor delayed work thread stack size"
depends on SX9500 && SX9500_TRIGGER_OWN_FIBER depends on SX9500 && SX9500_TRIGGER_OWN_THREAD
default 1024 default 1024
config SX9500_FIBER_PRIORITY config SX9500_THREAD_PRIORITY
int "Fiber priority" int "Thread priority"
depends on SX9500 && SX9500_TRIGGER_OWN_FIBER depends on SX9500 && SX9500_TRIGGER_OWN_THREAD
default 10 default 10

View file

@ -41,11 +41,11 @@ struct sx9500_data {
struct gpio_callback gpio_cb; struct gpio_callback gpio_cb;
#ifdef CONFIG_SX9500_TRIGGER_OWN_FIBER #ifdef CONFIG_SX9500_TRIGGER_OWN_THREAD
struct k_sem sem; struct k_sem sem;
#endif #endif
#ifdef CONFIG_SX9500_TRIGGER_GLOBAL_FIBER #ifdef CONFIG_SX9500_TRIGGER_GLOBAL_THREAD
struct k_work work; struct k_work work;
struct device *dev; struct device *dev;
#endif #endif

View file

@ -23,8 +23,8 @@
#include <misc/util.h> #include <misc/util.h>
#include "sx9500.h" #include "sx9500.h"
#ifdef CONFIG_SX9500_TRIGGER_OWN_FIBER #ifdef CONFIG_SX9500_TRIGGER_OWN_THREAD
static char __stack sx9500_fiber_stack[CONFIG_SX9500_FIBER_STACK_SIZE]; static char __stack sx9500_thread_stack[CONFIG_SX9500_THREAD_STACK_SIZE];
#endif #endif
int sx9500_trigger_set(struct device *dev, int sx9500_trigger_set(struct device *dev,
@ -65,7 +65,7 @@ int sx9500_trigger_set(struct device *dev,
return 0; return 0;
} }
#ifdef CONFIG_SX9500_TRIGGER_OWN_FIBER #ifdef CONFIG_SX9500_TRIGGER_OWN_THREAD
static void sx9500_gpio_cb(struct device *port, static void sx9500_gpio_cb(struct device *port,
struct gpio_callback *cb, uint32_t pins) struct gpio_callback *cb, uint32_t pins)
@ -78,7 +78,7 @@ static void sx9500_gpio_cb(struct device *port,
k_sem_give(&data->sem); k_sem_give(&data->sem);
} }
static void sx9500_fiber_main(int arg1, int unused) static void sx9500_thread_main(int arg1, int unused)
{ {
struct device *dev = INT_TO_POINTER(arg1); struct device *dev = INT_TO_POINTER(arg1);
struct sx9500_data *data = dev->driver_data; struct sx9500_data *data = dev->driver_data;
@ -105,7 +105,7 @@ static void sx9500_fiber_main(int arg1, int unused)
} }
} }
#else /* CONFIG_SX9500_TRIGGER_GLOBAL_FIBER */ #else /* CONFIG_SX9500_TRIGGER_GLOBAL_THREAD */
static void sx9500_gpio_cb(struct device *port, static void sx9500_gpio_cb(struct device *port,
struct gpio_callback *cb, uint32_t pins) struct gpio_callback *cb, uint32_t pins)
@ -118,7 +118,7 @@ static void sx9500_gpio_cb(struct device *port,
k_work_submit(&data->work); k_work_submit(&data->work);
} }
static void sx9500_gpio_fiber_cb(void *arg) static void sx9500_gpio_thread_cb(void *arg)
{ {
struct device *dev = arg; struct device *dev = arg;
struct sx9500_data *data = dev->driver_data; struct sx9500_data *data = dev->driver_data;
@ -138,15 +138,15 @@ static void sx9500_gpio_fiber_cb(void *arg)
data->handler_near_far(dev, &data->trigger_near_far); data->handler_near_far(dev, &data->trigger_near_far);
} }
} }
#endif /* CONFIG_SX9500_TRIGGER_GLOBAL_FIBER */ #endif /* CONFIG_SX9500_TRIGGER_GLOBAL_THREAD */
#ifdef CONFIG_SX9500_TRIGGER_GLOBAL_FIBER #ifdef CONFIG_SX9500_TRIGGER_GLOBAL_THREAD
static void sx9500_work_cb(struct k_work *work) static void sx9500_work_cb(struct k_work *work)
{ {
struct sx9500_data *data = struct sx9500_data *data =
CONTAINER_OF(work, struct sx9500_data, work); CONTAINER_OF(work, struct sx9500_data, work);
sx9500_gpio_fiber_cb(data->dev); sx9500_gpio_thread_cb(data->dev);
} }
#endif #endif
@ -155,7 +155,7 @@ int sx9500_setup_interrupt(struct device *dev)
struct sx9500_data *data = dev->driver_data; struct sx9500_data *data = dev->driver_data;
struct device *gpio; struct device *gpio;
#ifdef CONFIG_SX9500_TRIGGER_OWN_FIBER #ifdef CONFIG_SX9500_TRIGGER_OWN_THREAD
k_sem_init(&data->sem, 0, UINT_MAX); k_sem_init(&data->sem, 0, UINT_MAX);
#else #else
data->work.handler = sx9500_work_cb; data->work.handler = sx9500_work_cb;
@ -180,10 +180,10 @@ int sx9500_setup_interrupt(struct device *dev)
gpio_add_callback(gpio, &data->gpio_cb); gpio_add_callback(gpio, &data->gpio_cb);
gpio_pin_enable_callback(gpio, CONFIG_SX9500_GPIO_PIN); gpio_pin_enable_callback(gpio, CONFIG_SX9500_GPIO_PIN);
#ifdef CONFIG_SX9500_TRIGGER_OWN_FIBER #ifdef CONFIG_SX9500_TRIGGER_OWN_THREAD
fiber_fiber_start(sx9500_fiber_stack, CONFIG_SX9500_FIBER_STACK_SIZE, k_thread_spawn(sx9500_thread_stack, CONFIG_SX9500_THREAD_STACK_SIZE,
sx9500_fiber_main, POINTER_TO_INT(dev), 0, sx9500_thread_main, POINTER_TO_INT(dev), 0, NULL,
CONFIG_SX9500_FIBER_PRIORITY, 0); K_PRIO_COOP(CONFIG_SX9500_THREAD_PRIORITY), 0, 0);
#endif #endif
return 0; return 0;

View file

@ -69,15 +69,15 @@ config TMP007_TRIGGER_NONE
bool bool
prompt "No trigger" prompt "No trigger"
config TMP007_TRIGGER_GLOBAL_FIBER config TMP007_TRIGGER_GLOBAL_THREAD
bool bool
prompt "Use global fiber" prompt "Use global thread"
depends on GPIO depends on GPIO
select TMP007_TRIGGER select TMP007_TRIGGER
config TMP007_TRIGGER_OWN_FIBER config TMP007_TRIGGER_OWN_THREAD
bool bool
prompt "Use own fiber" prompt "Use own thread"
depends on GPIO depends on GPIO
select TMP007_TRIGGER select TMP007_TRIGGER
@ -105,18 +105,18 @@ config TMP007_GPIO_PIN_NUM
The number of the GPIO pin on which the interrupt signal from the The number of the GPIO pin on which the interrupt signal from the
TMP007 chip will be received. TMP007 chip will be received.
config TMP007_FIBER_PRIORITY config TMP007_THREAD_PRIORITY
int int
prompt "Fiber priority" prompt "Thread priority"
depends on TMP007 && TMP007_TRIGGER_OWN_FIBER depends on TMP007 && TMP007_TRIGGER_OWN_THREAD
default 10 default 10
help help
Priority of fiber used by the driver to handle interrupts. Priority of thread used by the driver to handle interrupts.
config TMP007_FIBER_STACK_SIZE config TMP007_THREAD_STACK_SIZE
int int
prompt "Fiber stack size" prompt "Thread stack size"
depends on TMP007 && TMP007_TRIGGER_OWN_FIBER depends on TMP007 && TMP007_TRIGGER_OWN_THREAD
default 1024 default 1024
help help
Stack size of fiber used by the driver to handle interrupts. Stack size of thread used by the driver to handle interrupts.

View file

@ -57,10 +57,10 @@ struct tmp007_data {
sensor_trigger_handler_t th_handler; sensor_trigger_handler_t th_handler;
struct sensor_trigger th_trigger; struct sensor_trigger th_trigger;
#if defined(CONFIG_TMP007_TRIGGER_OWN_FIBER) #if defined(CONFIG_TMP007_TRIGGER_OWN_THREAD)
char __stack fiber_stack[CONFIG_TMP007_FIBER_STACK_SIZE]; char __stack thread_stack[CONFIG_TMP007_THREAD_STACK_SIZE];
struct k_sem gpio_sem; struct k_sem gpio_sem;
#elif defined(CONFIG_TMP007_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_TMP007_TRIGGER_GLOBAL_THREAD)
struct k_work work; struct k_work work;
struct device *dev; struct device *dev;
#endif #endif

View file

@ -64,14 +64,14 @@ static void tmp007_gpio_callback(struct device *dev,
gpio_pin_disable_callback(dev, CONFIG_TMP007_GPIO_PIN_NUM); gpio_pin_disable_callback(dev, CONFIG_TMP007_GPIO_PIN_NUM);
#if defined(CONFIG_TMP007_TRIGGER_OWN_FIBER) #if defined(CONFIG_TMP007_TRIGGER_OWN_THREAD)
k_sem_give(&drv_data->gpio_sem); k_sem_give(&drv_data->gpio_sem);
#elif defined(CONFIG_TMP007_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_TMP007_TRIGGER_GLOBAL_THREAD)
k_work_submit(&drv_data->work); k_work_submit(&drv_data->work);
#endif #endif
} }
static void tmp007_fiber_cb(void *arg) static void tmp007_thread_cb(void *arg)
{ {
struct device *dev = arg; struct device *dev = arg;
struct tmp007_data *drv_data = dev->driver_data; struct tmp007_data *drv_data = dev->driver_data;
@ -94,8 +94,8 @@ static void tmp007_fiber_cb(void *arg)
gpio_pin_enable_callback(drv_data->gpio, CONFIG_TMP007_GPIO_PIN_NUM); gpio_pin_enable_callback(drv_data->gpio, CONFIG_TMP007_GPIO_PIN_NUM);
} }
#ifdef CONFIG_TMP007_TRIGGER_OWN_FIBER #ifdef CONFIG_TMP007_TRIGGER_OWN_THREAD
static void tmp007_fiber(int dev_ptr, int unused) static void tmp007_thread(int dev_ptr, int unused)
{ {
struct device *dev = INT_TO_POINTER(dev_ptr); struct device *dev = INT_TO_POINTER(dev_ptr);
struct tmp007_data *drv_data = dev->driver_data; struct tmp007_data *drv_data = dev->driver_data;
@ -104,18 +104,18 @@ static void tmp007_fiber(int dev_ptr, int unused)
while (1) { while (1) {
k_sem_take(&drv_data->gpio_sem, K_FOREVER); k_sem_take(&drv_data->gpio_sem, K_FOREVER);
tmp007_fiber_cb(dev); tmp007_thread_cb(dev);
} }
} }
#endif #endif
#ifdef CONFIG_TMP007_TRIGGER_GLOBAL_FIBER #ifdef CONFIG_TMP007_TRIGGER_GLOBAL_THREAD
static void tmp007_work_cb(struct k_work *work) static void tmp007_work_cb(struct k_work *work)
{ {
struct tmp007_data *drv_data = struct tmp007_data *drv_data =
CONTAINER_OF(work, struct tmp007_data, work); CONTAINER_OF(work, struct tmp007_data, work);
tmp007_fiber_cb(drv_data->dev); tmp007_thread_cb(drv_data->dev);
} }
#endif #endif
@ -171,13 +171,13 @@ int tmp007_init_interrupt(struct device *dev)
return -EIO; return -EIO;
} }
#if defined(CONFIG_TMP007_TRIGGER_OWN_FIBER) #if defined(CONFIG_TMP007_TRIGGER_OWN_THREAD)
k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX); k_sem_init(&drv_data->gpio_sem, 0, UINT_MAX);
fiber_start(drv_data->fiber_stack, CONFIG_TMP007_FIBER_STACK_SIZE, k_thread_spawn(drv_data->thread_stack, CONFIG_TMP007_THREAD_STACK_SIZE,
(nano_fiber_entry_t)tmp007_fiber, POINTER_TO_INT(dev), (k_thread_entry_t)tmp007_thread, POINTER_TO_INT(dev),
0, CONFIG_TMP007_FIBER_PRIORITY, 0); 0, NULL, K_PRIO_COOP(CONFIG_TMP007_THREAD_PRIORITY), 0, 0);
#elif defined(CONFIG_TMP007_TRIGGER_GLOBAL_FIBER) #elif defined(CONFIG_TMP007_TRIGGER_GLOBAL_THREAD)
drv_data->work.handler = tmp007_work_cb; drv_data->work.handler = tmp007_work_cb;
drv_data->dev = dev; drv_data->dev = dev;
#endif #endif

View file

@ -11,5 +11,5 @@ CONFIG_BMI160_NAME="bmi160"
CONFIG_BMI160_SPI_PORT_NAME="SPI_1" CONFIG_BMI160_SPI_PORT_NAME="SPI_1"
CONFIG_BMI160_SLAVE=1 CONFIG_BMI160_SLAVE=1
CONFIG_BMI160_SPI_BUS_FREQ=88 CONFIG_BMI160_SPI_BUS_FREQ=88
CONFIG_BMI160_TRIGGER_OWN_FIBER=y CONFIG_BMI160_TRIGGER_OWN_THREAD=y
CONFIG_BMI160_TRIGGER=y CONFIG_BMI160_TRIGGER=y

View file

@ -8,9 +8,9 @@ CONFIG_BMC150_MAGN=y
CONFIG_BMC150_MAGN_TRIGGER=y CONFIG_BMC150_MAGN_TRIGGER=y
CONFIG_BMC150_MAGN_TRIGGER_DRDY=y CONFIG_BMC150_MAGN_TRIGGER_DRDY=y
CONFIG_BMG160=y CONFIG_BMG160=y
CONFIG_BMG160_TRIGGER_OWN_FIBER=y CONFIG_BMG160_TRIGGER_OWN_THREAD=y
CONFIG_BMI160=y CONFIG_BMI160=y
CONFIG_BMI160_TRIGGER_OWN_FIBER=y CONFIG_BMI160_TRIGGER_OWN_THREAD=y
CONFIG_LSM6DS0=y CONFIG_LSM6DS0=y
CONFIG_LSM9DS0_GYRO=y CONFIG_LSM9DS0_GYRO=y
CONFIG_LSM9DS0_GYRO_TRIGGERS=y CONFIG_LSM9DS0_GYRO_TRIGGERS=y