Zephyr Project API 3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
device_mmio.h File Reference
#include <zephyr/toolchain.h>
#include <zephyr/linker/sections.h>
#include <stdint.h>
#include <stddef.h>
#include <zephyr/kernel/mm.h>
#include <zephyr/sys/sys_io.h>

Go to the source code of this file.

Macros

#define DEVICE_MMIO_IS_IN_RAM
 
#define DEVICE_MMIO_RAM   mm_reg_t _mmio
 Declare storage for MMIO information within a device's dev_data struct.
 
#define DEVICE_MMIO_RAM_PTR(device)   (mm_reg_t *)((device)->data)
 Return a pointer to the RAM-based storage area for a device's MMIO address.
 
#define DEVICE_MMIO_ROM   struct z_device_mmio_rom _mmio
 Declare storage for MMIO data within a device's config struct.
 
#define DEVICE_MMIO_ROM_PTR(dev)    ((struct z_device_mmio_rom *)((dev)->config))
 Return a pointer to the ROM-based storage area for a device's MMIO information.
 
#define DEVICE_MMIO_ROM_INIT(node_id)    ._mmio = Z_DEVICE_MMIO_ROM_INITIALIZER(node_id)
 Initialize a DEVICE_MMIO_ROM member.
 
#define DEVICE_MMIO_MAP(dev, flags)
 Map MMIO memory into the address space.
 
#define DEVICE_MMIO_GET(dev)   (*DEVICE_MMIO_RAM_PTR(dev))
 Obtain the MMIO address for a device.
 
#define DEVICE_MMIO_NAMED_RAM(name)   mm_reg_t name
 Declare storage for MMIO data within a device's dev_data struct.
 
#define DEVICE_MMIO_NAMED_RAM_PTR(dev, name)    (&(DEV_DATA(dev)->name))
 Return a pointer to the RAM storage for a device's named MMIO address.
 
#define DEVICE_MMIO_NAMED_ROM(name)   struct z_device_mmio_rom name
 Declare storage for MMIO data within a device's config struct.
 
#define DEVICE_MMIO_NAMED_ROM_PTR(dev, name)   (&(DEV_CFG(dev)->name))
 Return a pointer to the ROM-based storage area for a device's MMIO information.
 
#define DEVICE_MMIO_NAMED_ROM_INIT(name, node_id)    .name = Z_DEVICE_MMIO_ROM_INITIALIZER(node_id)
 Initialize a named DEVICE_MMIO_NAMED_ROM member.
 
#define DEVICE_MMIO_NAMED_ROM_INIT_BY_NAME(name, node_id)    .name = Z_DEVICE_MMIO_NAMED_ROM_INITIALIZER(name, node_id)
 Initialize a named DEVICE_MMIO_NAMED_ROM member using a named DT reg property.
 
#define DEVICE_MMIO_NAMED_MAP(dev, name, flags)
 Set up memory for a named MMIO region.
 
#define DEVICE_MMIO_NAMED_GET(dev, name)    (*DEVICE_MMIO_NAMED_RAM_PTR((dev), name))
 Obtain a named MMIO address for a device.
 
#define DEVICE_MMIO_TOPLEVEL(name, node_id)
 Declare top-level storage for MMIO information, global scope.
 
#define DEVICE_MMIO_TOPLEVEL_DECLARE(name)
 Provide an extern reference to a top-level MMIO region.
 
#define DEVICE_MMIO_TOPLEVEL_STATIC(name, node_id)
 Declare top-level storage for MMIO information, static scope.
 
#define DEVICE_MMIO_TOPLEVEL_RAM_PTR(name)   &Z_TOPLEVEL_RAM_NAME(name)
 Return a pointer to the RAM storage for a device's toplevel MMIO address.
 
#define DEVICE_MMIO_TOPLEVEL_ROM_PTR(name)   &Z_TOPLEVEL_ROM_NAME(name)
 Return a pointer to the ROM-based storage area for a toplevel MMIO region.
 
#define DEVICE_MMIO_TOPLEVEL_MAP(name, flags)
 Set up memory for a driver'sMMIO region.
 
#define DEVICE_MMIO_TOPLEVEL_GET(name)    ((mm_reg_t)Z_TOPLEVEL_RAM_NAME(name))
 Obtain the MMIO address for a device declared top-level.
 

Functions

static __boot_func void device_map (mm_reg_t *virt_addr, uintptr_t phys_addr, size_t size, uint32_t flags)
 Set linear address for device MMIO access.