mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-08 20:55:22 +00:00
Update reserved function names starting with one underscore, replacing them as follows: '_k_' with 'z_' '_K_' with 'Z_' '_handler_' with 'z_handl_' '_Cstart' with 'z_cstart' '_Swap' with 'z_swap' This renaming is done on both global and those static function names in kernel/include and include/. Other static function names in kernel/ are renamed by removing the leading underscore. Other function names not starting with any prefix listed above are renamed starting with a 'z_' or 'Z_' prefix. Function names starting with two or three leading underscores are not automatcally renamed since these names will collide with the variants with two or three leading underscores. Various generator scripts have also been updated as well as perf, linker and usb files. These are drivers/serial/uart_handlers.c include/linker/kobject-text.ld kernel/include/syscall_handler.h scripts/gen_kobject_list.py scripts/gen_syscall_header.py Signed-off-by: Patrik Flykt <patrik.flykt@intel.com>
146 lines
3.3 KiB
C
146 lines
3.3 KiB
C
/*
|
|
* Copyright (c) 2018 Linaro Limited
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#ifndef ZEPHYR_INCLUDE_LED_H_
|
|
#define ZEPHYR_INCLUDE_LED_H_
|
|
|
|
/**
|
|
* @file
|
|
* @brief Public LED driver APIs
|
|
*/
|
|
|
|
#include <zephyr/types.h>
|
|
#include <device.h>
|
|
|
|
/**
|
|
* @typedef led_api_blink()
|
|
* @brief Callback API for blinking an LED
|
|
*
|
|
* @see led_blink() for argument descriptions.
|
|
*/
|
|
typedef int (*led_api_blink)(struct device *dev, u32_t led,
|
|
u32_t delay_on, u32_t delay_off);
|
|
|
|
/**
|
|
* @typedef led_api_set_brightness()
|
|
* @brief Callback API for setting brightness of an LED
|
|
*
|
|
* @see led_set_brightness() for argument descriptions.
|
|
*/
|
|
typedef int (*led_api_set_brightness)(struct device *dev, u32_t led,
|
|
u8_t value);
|
|
/**
|
|
* @typedef led_api_on()
|
|
* @brief Callback API for turning on an LED
|
|
*
|
|
* @see led_on() for argument descriptions.
|
|
*/
|
|
typedef int (*led_api_on)(struct device *dev, u32_t led);
|
|
|
|
/**
|
|
* @typedef led_api_off()
|
|
* @brief Callback API for turning off an LED
|
|
*
|
|
* @see led_off() for argument descriptions.
|
|
*/
|
|
typedef int (*led_api_off)(struct device *dev, u32_t led);
|
|
|
|
/**
|
|
* @brief LED driver API
|
|
*
|
|
* This is the mandatory API any LED driver needs to expose.
|
|
*/
|
|
struct led_driver_api {
|
|
led_api_blink blink;
|
|
led_api_set_brightness set_brightness;
|
|
led_api_on on;
|
|
led_api_off off;
|
|
};
|
|
|
|
/**
|
|
* @brief Blink an LED
|
|
*
|
|
* This routine starts blinking an LED forever with the given time period
|
|
*
|
|
* @param dev LED device
|
|
* @param led LED channel/pin
|
|
* @param delay_on Time period (in milliseconds) an LED should be ON
|
|
* @param delay_off Time period (in milliseconds) an LED should be OFF
|
|
* @return 0 on success, negative on error
|
|
*/
|
|
__syscall int led_blink(struct device *dev, u32_t led,
|
|
u32_t delay_on, u32_t delay_off);
|
|
|
|
static inline int z_impl_led_blink(struct device *dev, u32_t led,
|
|
u32_t delay_on, u32_t delay_off)
|
|
{
|
|
const struct led_driver_api *api = dev->driver_api;
|
|
|
|
return api->blink(dev, led, delay_on, delay_off);
|
|
}
|
|
|
|
/**
|
|
* @brief Set LED brightness
|
|
*
|
|
* This routine sets the brightness of a LED to the given value.
|
|
* Calling this function after led_blink() won't affect blinking.
|
|
*
|
|
* @param dev LED device
|
|
* @param led LED channel/pin
|
|
* @param value Brightness value to set in percent
|
|
* @return 0 on success, negative on error
|
|
*/
|
|
__syscall int led_set_brightness(struct device *dev, u32_t led,
|
|
u8_t value);
|
|
|
|
static inline int z_impl_led_set_brightness(struct device *dev, u32_t led,
|
|
u8_t value)
|
|
{
|
|
const struct led_driver_api *api = dev->driver_api;
|
|
|
|
return api->set_brightness(dev, led, value);
|
|
}
|
|
|
|
/**
|
|
* @brief Turn on an LED
|
|
*
|
|
* This routine turns on an LED
|
|
*
|
|
* @param dev LED device
|
|
* @param led LED channel/pin
|
|
* @return 0 on success, negative on error
|
|
*/
|
|
__syscall int led_on(struct device *dev, u32_t led);
|
|
|
|
static inline int z_impl_led_on(struct device *dev, u32_t led)
|
|
{
|
|
const struct led_driver_api *api = dev->driver_api;
|
|
|
|
return api->on(dev, led);
|
|
}
|
|
|
|
/**
|
|
* @brief Turn off an LED
|
|
*
|
|
* This routine turns off an LED
|
|
*
|
|
* @param dev LED device
|
|
* @param led LED channel/pin
|
|
* @return 0 on success, negative on error
|
|
*/
|
|
__syscall int led_off(struct device *dev, u32_t led);
|
|
|
|
static inline int z_impl_led_off(struct device *dev, u32_t led)
|
|
{
|
|
const struct led_driver_api *api = dev->driver_api;
|
|
|
|
return api->off(dev, led);
|
|
}
|
|
|
|
#include <syscalls/led.h>
|
|
|
|
#endif /* ZEPHYR_INCLUDE_LED_H_ */
|