|
@@ -73,6 +73,8 @@
|
|
|
#define SFI_SIG_SPIB "SPIB"
|
|
|
#define SFI_SIG_I2CB "I2CB"
|
|
|
#define SFI_SIG_GPEM "GPEM"
|
|
|
+#define SFI_SIG_DEVS "DEVS"
|
|
|
+#define SFI_SIG_GPIO "GPIO"
|
|
|
|
|
|
#define SFI_SIGNATURE_SIZE 4
|
|
|
#define SFI_OEM_ID_SIZE 6
|
|
@@ -145,6 +147,27 @@ struct sfi_rtc_table_entry {
|
|
|
u32 irq;
|
|
|
} __packed;
|
|
|
|
|
|
+struct sfi_device_table_entry {
|
|
|
+ u8 type; /* bus type, I2C, SPI or ...*/
|
|
|
+#define SFI_DEV_TYPE_SPI 0
|
|
|
+#define SFI_DEV_TYPE_I2C 1
|
|
|
+#define SFI_DEV_TYPE_UART 2
|
|
|
+#define SFI_DEV_TYPE_HSI 3
|
|
|
+#define SFI_DEV_TYPE_IPC 4
|
|
|
+
|
|
|
+ u8 host_num; /* attached to host 0, 1...*/
|
|
|
+ u16 addr;
|
|
|
+ u8 irq;
|
|
|
+ u32 max_freq;
|
|
|
+ char name[16];
|
|
|
+} __packed;
|
|
|
+
|
|
|
+struct sfi_gpio_table_entry {
|
|
|
+ char controller_name[16];
|
|
|
+ u16 pin_no;
|
|
|
+ char pin_name[16];
|
|
|
+} __packed;
|
|
|
+
|
|
|
struct sfi_spi_table_entry {
|
|
|
u16 host_num; /* attached to host 0, 1...*/
|
|
|
u16 cs; /* chip select */
|
|
@@ -166,7 +189,6 @@ struct sfi_gpe_table_entry {
|
|
|
u16 phys_id; /* physical GPE id */
|
|
|
} __packed;
|
|
|
|
|
|
-
|
|
|
typedef int (*sfi_table_handler) (struct sfi_table_header *table);
|
|
|
|
|
|
#ifdef CONFIG_SFI
|