13#ifndef ZEPHYR_INCLUDE_DRIVERS_MISC_RENESAS_ELC_H_ 
   14#define ZEPHYR_INCLUDE_DRIVERS_MISC_RENESAS_ELC_H_ 
   60#define RENESAS_ELC_DT_SPEC_DEVICE_GET_BY_NAME(node_id, name)                                      \ 
   61        DEVICE_DT_GET(DT_PHANDLE_BY_NAME(node_id, renesas_elcs, name)) 
 
   71#define RENESAS_ELC_DT_SPEC_DEVICE_GET_BY_IDX(node_id, idx)                                        \ 
   72        DEVICE_DT_GET(DT_PHANDLE_BY_IDX(node_id, renesas_elcs, idx)) 
 
   83#define RENESAS_ELC_DT_SPEC_DEVICE_GET_BY_NAME_OR_NULL(node_id, name)                              \ 
   84        DEVICE_DT_GET_OR_NULL(DT_PHANDLE_BY_NAME(node_id, renesas_elcs, name)) 
 
   95#define RENESAS_ELC_DT_SPEC_DEVICE_GET_BY_IDX_OR_NULL(node_id, idx)                                \ 
   96        DEVICE_DT_GET_OR_NULL(DT_PHANDLE_BY_IDX(node_id, renesas_elcs, idx)) 
 
  107#define RENESAS_ELC_DT_SPEC_DEVICE_INST_GET_BY_NAME(inst, name)                                    \ 
  108        DEVICE_DT_GET(DT_PHANDLE_BY_NAME(DT_DRV_INST(inst), renesas_elcs, name)) 
 
  119#define RENESAS_ELC_DT_SPEC_DEVICE_INST_GET_BY_IDX(inst, idx)                                      \ 
  120        DEVICE_DT_GET(DT_PHANDLE_BY_IDX(DT_DRV_INST(inst), renesas_elcs, idx)) 
 
  131#define RENESAS_ELC_DT_SPEC_DEVICE_INST_GET_BY_NAME_OR_NULL(inst, name)                            \ 
  132        DEVICE_DT_GET_OR_NULL(DT_PHANDLE_BY_NAME(DT_DRV_INST(inst), renesas_elcs, name)) 
 
  143#define RENESAS_ELC_DT_SPEC_DEVICE_INST_GET_BY_IDX_OR_NULL(inst, idx)                              \ 
  144        DEVICE_DT_GET_OR_NULL(DT_PHANDLE_BY_IDX(DT_DRV_INST(inst), renesas_elcs, idx)) 
 
  154#define RENESAS_ELC_DT_SPEC_PERIPHERAL_GET_BY_NAME(node_id, name)                                  \ 
  155        DT_PHA_BY_NAME(node_id, renesas_elcs, name, peripheral) 
 
  165#define RENESAS_ELC_DT_SPEC_PERIPHERAL_GET_BY_IDX(node_id, idx)                                    \ 
  166        DT_PHA_BY_IDX(node_id, renesas_elcs, idx, peripheral) 
 
  178#define RENESAS_ELC_DT_SPEC_PERIPHERAL_GET_BY_NAME_OR(node_id, name, default_value)                \ 
  179        COND_CODE_1(DT_NODE_HAS_PROP(node_id, renesas_elcs),                                       \ 
  180                (RENESAS_ELC_DT_SPEC_PERIPHERAL_GET_BY_NAME(node_id, name)),                       \ 
 
  193#define RENESAS_ELC_DT_SPEC_PERIPHERAL_GET_BY_IDX_OR(node_id, idx, default_value)                  \ 
  194        COND_CODE_1(DT_NODE_HAS_PROP(node_id, renesas_elcs),                                       \ 
  195                (RENESAS_ELC_DT_SPEC_PERIPHERAL_GET_BY_IDX(node_id, idx)),                         \ 
 
  206#define RENESAS_ELC_DT_SPEC_PERIPHERAL_INST_GET_BY_NAME(inst, name)                                \ 
  207        RENESAS_ELC_DT_SPEC_PERIPHERAL_GET_BY_NAME(DT_DRV_INST(inst), name) 
 
  217#define RENESAS_ELC_DT_SPEC_PERIPHERAL_INST_GET_BY_IDX(inst, idx)                                  \ 
  218        RENESAS_ELC_DT_SPEC_PERIPHERAL_GET_BY_IDX(DT_DRV_INST(inst), idx) 
 
  230#define RENESAS_ELC_DT_SPEC_PERIPHERAL_INST_GET_BY_NAME_OR(inst, name, default_value)              \ 
  231        RENESAS_ELC_DT_SPEC_PERIPHERAL_GET_BY_NAME_OR(DT_DRV_INST(inst), name, default_value) 
 
  243#define RENESAS_ELC_DT_SPEC_PERIPHERAL_INST_GET_BY_IDX_OR(inst, idx, default_value)                \ 
  244        RENESAS_ELC_DT_SPEC_PERIPHERAL_GET_BY_IDX_OR(DT_DRV_INST(inst), idx, default_value) 
 
  254#define RENESAS_ELC_DT_SPEC_EVENT_GET_BY_NAME(node_id, name)                                       \ 
  255        DT_PHA_BY_NAME(node_id, renesas_elcs, name, event) 
 
  265#define RENESAS_ELC_DT_SPEC_EVENT_GET_BY_IDX(node_id, idx)                                         \ 
  266        DT_PHA_BY_IDX(node_id, renesas_elcs, idx, event) 
 
  278#define RENESAS_ELC_DT_SPEC_EVENT_GET_BY_NAME_OR(node_id, name, default_value)                     \ 
  279        COND_CODE_1(DT_NODE_HAS_PROP(node_id, renesas_elcs),                                       \ 
  280                (RENESAS_ELC_DT_SPEC_EVENT_GET_BY_NAME(node_id, name)),                            \ 
 
  293#define RENESAS_ELC_DT_SPEC_EVENT_GET_BY_IDX_OR(node_id, idx, default_value)                       \ 
  294        COND_CODE_1(DT_NODE_HAS_PROP(node_id, renesas_elcs),                                       \ 
  295                (RENESAS_ELC_DT_SPEC_EVENT_GET_BY_IDX(node_id, idx)),                              \ 
 
  306#define RENESAS_ELC_DT_SPEC_EVENT_INST_GET_BY_NAME(inst, name)                                     \ 
  307        RENESAS_ELC_DT_SPEC_EVENT_GET_BY_NAME(DT_DRV_INST(inst), name) 
 
  317#define RENESAS_ELC_DT_SPEC_EVENT_INST_GET_BY_IDX(inst, idx)                                       \ 
  318        RENESAS_ELC_DT_SPEC_EVENT_GET_BY_IDX(DT_DRV_INST(inst), idx) 
 
  330#define RENESAS_ELC_DT_SPEC_EVENT_INST_GET_BY_NAME_OR(inst, name, default_value)                   \ 
  331        RENESAS_ELC_DT_SPEC_EVENT_GET_BY_NAME_OR(DT_DRV_INST(inst), name, default_value) 
 
  343#define RENESAS_ELC_DT_SPEC_EVENT_INST_GET_BY_IDX_OR(inst, idx, default_value)                     \ 
  344        RENESAS_ELC_DT_SPEC_EVENT_GET_BY_IDX_OR(DT_DRV_INST(inst), idx, default_value) 
 
  353__subsystem 
struct renesas_elc_driver_api {
 
  354        int (*software_event_generate)(
const struct device *dev, 
uint32_t event);
 
  357        int (*enable)(
const struct device *dev);
 
  358        int (*disable)(
const struct device *dev);
 
  379static inline int z_impl_renesas_elc_software_event_generate(
const struct device *dev,
 
  382        return DEVICE_API_GET(renesas_elc, dev)->software_event_generate(dev, event);
 
  400static inline int z_impl_renesas_elc_link_set(
const struct device *dev, 
uint32_t peripheral,
 
  403        return DEVICE_API_GET(renesas_elc, dev)->link_set(dev, peripheral, event);
 
  419static inline int z_impl_renesas_elc_link_break(
const struct device *dev, 
uint32_t peripheral)
 
  421        return DEVICE_API_GET(renesas_elc, dev)->link_break(dev, peripheral);
 
  436static inline int z_impl_renesas_elc_enable(
const struct device *dev)
 
  453static inline int z_impl_renesas_elc_disable(
const struct device *dev)
 
  466#include <zephyr/syscalls/renesas_elc.h> 
#define DEVICE_API_GET(_class, _dev)
Expands to the pointer of a device's API for a given class.
Definition device.h:1350
int renesas_elc_link_set(const struct device *dev, uint32_t peripheral, uint32_t event)
Create a single event link.
int renesas_elc_link_break(const struct device *dev, uint32_t peripheral)
Break an event link.
int renesas_elc_disable(const struct device *dev)
Disable the operation of the Event Link Controller.
int renesas_elc_software_event_generate(const struct device *dev, uint32_t event)
Generate a software event in the Event Link Controller.
int renesas_elc_enable(const struct device *dev)
Enable the operation of the Event Link Controller.
sighandler_t signal(int sig, sighandler_t handler)
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
Runtime device structure (in ROM) per driver instance.
Definition device.h:510
Container for Renesas ELC information specified in devicetree.
Definition renesas_elc.h:43
uint32_t peripheral
Renesas ELC peripheral ID.
Definition renesas_elc.h:47
uint32_t event
Renesas ELC event ID.
Definition renesas_elc.h:49
const struct device * dev
Renesas ELC device instance.
Definition renesas_elc.h:45