49 unsigned char dev_type;
55 #define AMBAPP_FLAG_FFACT_DIR 0x100 56 #define AMBAPP_FLAG_FFACT 0x0f0 57 #define AMBAPP_FLAG_MBUS 0x00c 58 #define AMBAPP_FLAG_SBUS 0x003 61 #define DEV_TO_APB(adev) ((struct ambapp_apb_info *)((adev)->devinfo)) 62 #define DEV_TO_AHB(adev) ((struct ambapp_ahb_info *)((adev)->devinfo)) 63 #define DEV_TO_COMMON(adev) ((struct ambapp_common_info *)((adev)->devinfo)) 65 #define APB_TO_DEV(apb_info) ((struct ambapp_dev *)(unsigned int(apb_info) - \ 66 offsetof(struct ambapp_dev, devinfo))) 67 #define AHB_TO_DEV(ahb_info) ((struct ambapp_dev *)(unsigned int(ahb_info) - \ 68 offsetof(struct ambapp_dev, devinfo))) 94 unsigned int start[4];
98 unsigned int custom[3];
104 unsigned char vendor;
114 unsigned int freq_hz;
121 unsigned int local_adr;
122 unsigned int remote_adr;
137 typedef int (*ambapp_func_t)(
struct ambapp_dev *dev,
int index,
void *arg);
139 #define DEV_IS_FREE(dev) (dev->owner == NULL) 140 #define DEV_IS_ALLOCATED(dev) (dev->owner != NULL) 143 #define OPTIONS_AHB_MSTS 0x00000001 144 #define OPTIONS_AHB_SLVS 0x00000002 145 #define OPTIONS_APB_SLVS 0x00000004 146 #define OPTIONS_ALL_DEVS (OPTIONS_AHB_MSTS|OPTIONS_AHB_SLVS|OPTIONS_APB_SLVS) 148 #define OPTIONS_FREE 0x00000010 149 #define OPTIONS_ALLOCATED 0x00000020 150 #define OPTIONS_ALL (OPTIONS_FREE|OPTIONS_ALLOCATED) 153 #define OPTIONS_DEPTH_FIRST 0x00000100 155 #define DEV_AHB_NONE 0 156 #define DEV_AHB_MST 1 157 #define DEV_AHB_SLV 2 158 #define DEV_APB_SLV 3 162 const unsigned int id;
163 const unsigned int custom[3];
164 const unsigned int mbar[4];
168 const unsigned int id;
169 const unsigned int iobar;
172 #define ambapp_pnp_vendor(id) (((id) >> 24) & 0xff) 173 #define ambapp_pnp_device(id) (((id) >> 12) & 0xfff) 174 #define ambapp_pnp_ver(id) (((id)>>5) & 0x1f) 175 #define ambapp_pnp_irq(id) ((id) & 0x1f) 177 #define ambapp_pnp_start(mbar) (((mbar) & 0xfff00000) & (((mbar) & 0xfff0) << 16)) 178 #define ambapp_pnp_mbar_mask(mbar) (((mbar)>>4) & 0xfff) 179 #define ambapp_pnp_mbar_type(mbar) ((mbar) & 0xf) 181 #define ambapp_pnp_apb_start(iobar, base) ((base) | ((((iobar) & 0xfff00000)>>12) & (((iobar) & 0xfff0)<<4)) ) 182 #define ambapp_pnp_apb_mask(iobar) ((~(ambapp_pnp_mbar_mask(iobar)<<8) & 0x000fffff) + 1) 184 #define AMBA_TYPE_AHBIO_ADDR(addr,base_ioarea) ((unsigned int)(base_ioarea) | ((addr) >> 12)) 186 #define AMBA_TYPE_APBIO 0x1 187 #define AMBA_TYPE_MEM 0x2 188 #define AMBA_TYPE_AHBIO 0x3 191 typedef void *(*ambapp_memcpy_t)(
211 extern int ambapp_scan(
214 ambapp_memcpy_t memfunc,
221 extern void ambapp_freq_init(
227 extern unsigned int ambapp_freq_get(
257 extern int ambapp_for_each(
259 unsigned int options,
274 extern int ambapp_find_by_idx(
struct ambapp_dev *dev,
int index,
void *pcount);
279 extern int ambapp_dev_count(
struct ambapp_bus *abus,
unsigned int options,
283 extern void ambapp_print(
struct ambapp_bus *abus,
int show_depth);
288 extern int ambapp_alloc_dev(
struct ambapp_dev *dev,
void *owner);
291 extern void ambapp_free_dev(
struct ambapp_dev *dev);
297 extern int ambapp_depth(
struct ambapp_dev *dev);
300 extern char *ambapp_device_id2str(
int vendor,
int id);
303 extern char *ambapp_vendor_id2str(
int vendor);
308 extern int ambapp_vendev_id2str(
int vendor,
int id,
char *buf);
312 extern int ambapp_find_apbslv(
318 extern int ambapp_find_apbslv_next(
325 extern int ambapp_find_apbslvs_next(
333 extern int ambapp_find_apbslvs(
340 extern int ambapp_find_ahbslv(
346 extern int ambapp_find_ahbslv_next(
353 extern int ambapp_find_ahbslvs_next(
361 extern int ambapp_find_ahbslvs(
369 extern int ambapp_get_number_ahbslv_devices(
374 extern int ambapp_get_number_apbslv_devices(
Definition: rtemscompat1.h:15
AMBA Plug & Play Bus Vendor and Device IDs.