mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-09-04 14:31:56 +00:00
Many APIs had two versions, by port and by pin, which called the same API with different parameters. This has been reorganized to reduce the number of system calls. Callback registration API skipped. Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
46 lines
1.2 KiB
C
46 lines
1.2 KiB
C
/*
|
|
* Copyright (c) 2017 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#include <gpio.h>
|
|
#include <syscall_handler.h>
|
|
|
|
_SYSCALL_HANDLER(gpio_config, port, access_op, pin, flags)
|
|
{
|
|
_SYSCALL_OBJ(port, K_OBJ_DRIVER_GPIO);
|
|
return _impl_gpio_config((struct device *)port, access_op, pin, flags);
|
|
}
|
|
|
|
_SYSCALL_HANDLER(gpio_write, port, access_op, pin, value)
|
|
{
|
|
_SYSCALL_OBJ(port, K_OBJ_DRIVER_GPIO);
|
|
return _impl_gpio_write((struct device *)port, access_op, pin, value);
|
|
}
|
|
|
|
_SYSCALL_HANDLER(gpio_read, port, access_op, pin, value)
|
|
{
|
|
_SYSCALL_OBJ(port, K_OBJ_DRIVER_GPIO);
|
|
_SYSCALL_MEMORY_WRITE(value, sizeof(u32_t));
|
|
return _impl_gpio_read((struct device *)port, access_op, pin,
|
|
(u32_t *)value);
|
|
}
|
|
|
|
_SYSCALL_HANDLER(gpio_enable_callback, port, access_op, pin)
|
|
{
|
|
_SYSCALL_OBJ(port, K_OBJ_DRIVER_GPIO);
|
|
return _impl_gpio_enable_callback((struct device *)port, access_op,
|
|
pin);
|
|
}
|
|
|
|
_SYSCALL_HANDLER(gpio_disable_callback, port, access_op, pin)
|
|
{
|
|
_SYSCALL_OBJ(port, K_OBJ_DRIVER_GPIO);
|
|
return _impl_gpio_disable_callback((struct device *)port, access_op,
|
|
pin);
|
|
}
|
|
|
|
_SYSCALL_HANDLER1_SIMPLE(gpio_get_pending_int, K_OBJ_DRIVER_GPIO,
|
|
struct device *);
|