diff options
Diffstat (limited to 'include/linux/platform_data/i2c-omap.h')
-rw-r--r-- | include/linux/platform_data/i2c-omap.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/linux/platform_data/i2c-omap.h b/include/linux/platform_data/i2c-omap.h new file mode 100644 index 000000000000..3444265ee8ee --- /dev/null +++ b/include/linux/platform_data/i2c-omap.h | |||
@@ -0,0 +1,39 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
2 | #ifndef __I2C_OMAP_H__ | ||
3 | #define __I2C_OMAP_H__ | ||
4 | |||
5 | #include <linux/platform_device.h> | ||
6 | |||
7 | /* | ||
8 | * Version 2 of the I2C peripheral unit has a different register | ||
9 | * layout and extra registers. The ID register in the V2 peripheral | ||
10 | * unit on the OMAP4430 reports the same ID as the V1 peripheral | ||
11 | * unit on the OMAP3530, so we must inform the driver which IP | ||
12 | * version we know it is running on from platform / cpu-specific | ||
13 | * code using these constants in the hwmod class definition. | ||
14 | */ | ||
15 | |||
16 | #define OMAP_I2C_IP_VERSION_1 1 | ||
17 | #define OMAP_I2C_IP_VERSION_2 2 | ||
18 | |||
19 | /* struct omap_i2c_bus_platform_data .flags meanings */ | ||
20 | |||
21 | #define OMAP_I2C_FLAG_NO_FIFO BIT(0) | ||
22 | #define OMAP_I2C_FLAG_SIMPLE_CLOCK BIT(1) | ||
23 | #define OMAP_I2C_FLAG_16BIT_DATA_REG BIT(2) | ||
24 | #define OMAP_I2C_FLAG_ALWAYS_ARMXOR_CLK BIT(5) | ||
25 | #define OMAP_I2C_FLAG_FORCE_19200_INT_CLK BIT(6) | ||
26 | /* how the CPU address bus must be translated for I2C unit access */ | ||
27 | #define OMAP_I2C_FLAG_BUS_SHIFT_NONE 0 | ||
28 | #define OMAP_I2C_FLAG_BUS_SHIFT_1 BIT(7) | ||
29 | #define OMAP_I2C_FLAG_BUS_SHIFT_2 BIT(8) | ||
30 | #define OMAP_I2C_FLAG_BUS_SHIFT__SHIFT 7 | ||
31 | |||
32 | struct omap_i2c_bus_platform_data { | ||
33 | u32 clkrate; | ||
34 | u32 rev; | ||
35 | u32 flags; | ||
36 | void (*set_mpu_wkup_lat)(struct device *dev, long set); | ||
37 | }; | ||
38 | |||
39 | #endif | ||