|
@@ -461,3 +461,133 @@ static struct resource bfin_uart1_resources[] = {
|
|
|
},
|
|
|
{ /* RTS pin */
|
|
|
.start = GPIO_PF10,
|
|
|
+ .end = GPIO_PF10,
|
|
|
+ .flags = IORESOURCE_IO,
|
|
|
+ },
|
|
|
+#endif
|
|
|
+};
|
|
|
+
|
|
|
+static unsigned short bfin_uart1_peripherals[] = {
|
|
|
+ P_UART1_TX, P_UART1_RX, 0
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device bfin_uart1_device = {
|
|
|
+ .name = "bfin-uart",
|
|
|
+ .id = 1,
|
|
|
+ .num_resources = ARRAY_SIZE(bfin_uart1_resources),
|
|
|
+ .resource = bfin_uart1_resources,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &bfin_uart1_peripherals, /* Passed to driver */
|
|
|
+ },
|
|
|
+};
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+
|
|
|
+#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
|
|
|
+#ifdef CONFIG_BFIN_SIR0
|
|
|
+static struct resource bfin_sir0_resources[] = {
|
|
|
+ {
|
|
|
+ .start = 0xFFC00400,
|
|
|
+ .end = 0xFFC004FF,
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .start = IRQ_UART0_RX,
|
|
|
+ .end = IRQ_UART0_RX+1,
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .start = CH_UART0_RX,
|
|
|
+ .end = CH_UART0_RX+1,
|
|
|
+ .flags = IORESOURCE_DMA,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device bfin_sir0_device = {
|
|
|
+ .name = "bfin_sir",
|
|
|
+ .id = 0,
|
|
|
+ .num_resources = ARRAY_SIZE(bfin_sir0_resources),
|
|
|
+ .resource = bfin_sir0_resources,
|
|
|
+};
|
|
|
+#endif
|
|
|
+#ifdef CONFIG_BFIN_SIR1
|
|
|
+static struct resource bfin_sir1_resources[] = {
|
|
|
+ {
|
|
|
+ .start = 0xFFC02000,
|
|
|
+ .end = 0xFFC020FF,
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .start = IRQ_UART1_RX,
|
|
|
+ .end = IRQ_UART1_RX+1,
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .start = CH_UART1_RX,
|
|
|
+ .end = CH_UART1_RX+1,
|
|
|
+ .flags = IORESOURCE_DMA,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device bfin_sir1_device = {
|
|
|
+ .name = "bfin_sir",
|
|
|
+ .id = 1,
|
|
|
+ .num_resources = ARRAY_SIZE(bfin_sir1_resources),
|
|
|
+ .resource = bfin_sir1_resources,
|
|
|
+};
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+
|
|
|
+#if defined(CONFIG_TOUCHSCREEN_AD7160) || defined(CONFIG_TOUCHSCREEN_AD7160_MODULE)
|
|
|
+#include <linux/input/ad7160.h>
|
|
|
+static const struct ad7160_platform_data bfin_ad7160_ts_info = {
|
|
|
+ .sensor_x_res = 854,
|
|
|
+ .sensor_y_res = 480,
|
|
|
+ .pressure = 100,
|
|
|
+ .filter_coef = 3,
|
|
|
+ .coord_pref = AD7160_ORIG_TOP_LEFT,
|
|
|
+ .first_touch_window = 5,
|
|
|
+ .move_window = 3,
|
|
|
+ .event_cabs = AD7160_EMIT_ABS_MT_TRACKING_ID |
|
|
|
+ AD7160_EMIT_ABS_MT_PRESSURE |
|
|
|
+ AD7160_TRACKING_ID_ASCENDING,
|
|
|
+ .finger_act_ctrl = 0x64,
|
|
|
+ .haptic_effect1_ctrl = AD7160_HAPTIC_SLOT_A(60) |
|
|
|
+ AD7160_HAPTIC_SLOT_A_LVL_HIGH |
|
|
|
+ AD7160_HAPTIC_SLOT_B(60) |
|
|
|
+ AD7160_HAPTIC_SLOT_B_LVL_LOW,
|
|
|
+
|
|
|
+ .haptic_effect2_ctrl = AD7160_HAPTIC_SLOT_A(20) |
|
|
|
+ AD7160_HAPTIC_SLOT_A_LVL_HIGH |
|
|
|
+ AD7160_HAPTIC_SLOT_B(80) |
|
|
|
+ AD7160_HAPTIC_SLOT_B_LVL_LOW |
|
|
|
+ AD7160_HAPTIC_SLOT_C(120) |
|
|
|
+ AD7160_HAPTIC_SLOT_C_LVL_HIGH |
|
|
|
+ AD7160_HAPTIC_SLOT_D(30) |
|
|
|
+ AD7160_HAPTIC_SLOT_D_LVL_LOW,
|
|
|
+};
|
|
|
+#endif
|
|
|
+
|
|
|
+#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
|
|
|
+static const u16 bfin_twi0_pins[] = {P_TWI0_SCL, P_TWI0_SDA, 0};
|
|
|
+
|
|
|
+static struct resource bfin_twi0_resource[] = {
|
|
|
+ [0] = {
|
|
|
+ .start = TWI0_REGBASE,
|
|
|
+ .end = TWI0_REGBASE,
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
+ },
|
|
|
+ [1] = {
|
|
|
+ .start = IRQ_TWI,
|
|
|
+ .end = IRQ_TWI,
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device i2c_bfin_twi_device = {
|
|
|
+ .name = "i2c-bfin-twi",
|
|
|
+ .id = 0,
|
|
|
+ .num_resources = ARRAY_SIZE(bfin_twi0_resource),
|
|
|
+ .resource = bfin_twi0_resource,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &bfin_twi0_pins,
|