1 #ifndef __LUNAIX_DEVICE_NUM_H
2 #define __LUNAIX_DEVICE_NUM_H
4 #include <lunaix/types.h>
7 Device metadata field (device_def::meta)
10 | interface | function |
12 Where the interface identify how the device is connected with the processor
13 Lunaix identify the following values:
15 NON: device do not have hardware interfacing
17 SOC: device conntected through some System-on-Chip interconnect bus
18 for example, southbridge on x86 platform, AMBA for ARM's series.
20 PCI: device connected through the peripheral component interconnect bus
23 USB: device connected through the universal serial bus (USB)
25 SPI: device connected through the serial peripheral interface (SPI)
27 I2C: device connected through the IIC protocol
29 The function defines the functionality that the device is designated to
30 serve. Lunaix identify the following values:
32 PSEDUO: a pseudo device which does not backed by any hardware. (e.g.
35 CHAR: a character device, which support read/write and dealing with
36 characters. Backed hardware might exist.
38 SERIAL: a serial interface which talks
40 STORAGE: a device that is used for storage of data
42 INPUT: a device that accept external input.
44 TIME: a device that provides time related services, for example, timing
47 BUSIF: a device that is the interface or HBAs for accessing interconnect
50 TTY: a device which can be called as teletypewriter, system can use such
51 device for output into external environment
54 #define DEV_FNGRP(if_, function) \
55 (((if_) & 0xffff) << 16) | ((function) & 0xffff)
56 #define DEV_UNIQUE(devkind, variant) \
57 (((devkind) & 0xffff) << 16) | ((variant) & 0xffff)
58 #define DEV_KIND_FROM(unique) ((unique) >> 16)
59 #define DEV_VAR_FROM(unique) ((unique) & 0xffff)
61 #define DEV_IF(fngrp) ((fngrp) >> 16)
62 #define DEV_FN(fngrp) (((fngrp) & 0xffff))
71 #define DEVFN_PSEUDO 0x0
72 #define DEVFN_CHAR 0x1
73 #define DEVFN_STORAGE 0x4
74 #define DEVFN_INPUT 0x5
75 #define DEVFN_TIME 0x6
76 #define DEVFN_BUSIF 0x7
78 #define DEVFN_DISP 0x9
81 #define DEV_BUILTIN_NULL 0
82 #define DEV_BUILTIN_ZERO 1
90 #define DEV_UART16550 7
93 #define DEV_TIMER_APIC 0
94 #define DEV_TIMER_HEPT 1
115 #endif /* __LUNAIX_DEVICE_NUM_H */