diff options
Diffstat (limited to 'arch/blackfin/mach-bf548/boards/ezkit.c')
| -rw-r--r-- | arch/blackfin/mach-bf548/boards/ezkit.c | 85 | 
1 files changed, 74 insertions, 11 deletions
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c index 096e661700a..add5a17452c 100644 --- a/arch/blackfin/mach-bf548/boards/ezkit.c +++ b/arch/blackfin/mach-bf548/boards/ezkit.c @@ -208,6 +208,43 @@ static struct platform_device bfin_rotary_device = {  };  #endif +#if defined(CONFIG_INPUT_ADXL34X) || defined(CONFIG_INPUT_ADXL34X_MODULE) +#include <linux/input.h> +#include <linux/spi/adxl34x.h> +static const struct adxl34x_platform_data adxl34x_info = { +	.x_axis_offset = 0, +	.y_axis_offset = 0, +	.z_axis_offset = 0, +	.tap_threshold = 0x31, +	.tap_duration = 0x10, +	.tap_latency = 0x60, +	.tap_window = 0xF0, +	.tap_axis_control = ADXL_TAP_X_EN | ADXL_TAP_Y_EN | ADXL_TAP_Z_EN, +	.act_axis_control = 0xFF, +	.activity_threshold = 5, +	.inactivity_threshold = 3, +	.inactivity_time = 4, +	.free_fall_threshold = 0x7, +	.free_fall_time = 0x20, +	.data_rate = 0x8, +	.data_range = ADXL_FULL_RES, + +	.ev_type = EV_ABS, +	.ev_code_x = ABS_X,		/* EV_REL */ +	.ev_code_y = ABS_Y,		/* EV_REL */ +	.ev_code_z = ABS_Z,		/* EV_REL */ + +	.ev_code_tap_x = BTN_TOUCH,		/* EV_KEY */ +	.ev_code_tap_y = BTN_TOUCH,		/* EV_KEY */ +	.ev_code_tap_z = BTN_TOUCH,		/* EV_KEY */ + +/*	.ev_code_ff = KEY_F,*/		/* EV_KEY */ +/*	.ev_code_act_inactivity = KEY_A,*/	/* EV_KEY */ +	.power_mode = ADXL_AUTO_SLEEP | ADXL_LINK, +	.fifo_mode = ADXL_FIFO_STREAM, +}; +#endif +  #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)  static struct platform_device rtc_device = {  	.name = "rtc-bfin", @@ -628,6 +665,14 @@ static struct bfin5xx_spi_chip spidev_chip_info = {  };  #endif +#if defined(CONFIG_INPUT_ADXL34X_SPI) || defined(CONFIG_INPUT_ADXL34X_SPI_MODULE) +static struct bfin5xx_spi_chip spi_adxl34x_chip_info = { +	.enable_dma = 0,         /* use dma transfer with this chip*/ +	.bits_per_word = 8, +	.cs_change_per_word = 0, +}; +#endif +  static struct spi_board_info bfin_spi_board_info[] __initdata = {  #if defined(CONFIG_MTD_M25P80) \  	|| defined(CONFIG_MTD_M25P80_MODULE) @@ -653,15 +698,15 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {  	},  #endif  #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) -{ -	.modalias		= "ad7877", -	.platform_data		= &bfin_ad7877_ts_info, -	.irq			= IRQ_PB4,	/* old boards (<=Rev 1.3) use IRQ_PJ11 */ -	.max_speed_hz		= 12500000,     /* max spi clock (SCK) speed in HZ */ -	.bus_num		= 0, -	.chip_select  		= 2, -	.controller_data = &spi_ad7877_chip_info, -}, +	{ +		.modalias		= "ad7877", +		.platform_data		= &bfin_ad7877_ts_info, +		.irq			= IRQ_PB4,	/* old boards (<=Rev 1.3) use IRQ_PJ11 */ +		.max_speed_hz		= 12500000,     /* max spi clock (SCK) speed in HZ */ +		.bus_num		= 0, +		.chip_select  		= 2, +		.controller_data = &spi_ad7877_chip_info, +	},  #endif  #if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)  	{ @@ -672,8 +717,19 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {  		.controller_data = &spidev_chip_info,  	},  #endif +#if defined(CONFIG_INPUT_ADXL34X_SPI) || defined(CONFIG_INPUT_ADXL34X_SPI_MODULE) +	{ +		.modalias		= "adxl34x", +		.platform_data		= &adxl34x_info, +		.irq			= IRQ_PC5, +		.max_speed_hz		= 5000000,     /* max spi clock (SCK) speed in HZ */ +		.bus_num		= 1, +		.chip_select  		= 2, +		.controller_data = &spi_adxl34x_chip_info, +		.mode = SPI_MODE_3, +	}, +#endif  }; -  #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)  /* SPI (0) */  static struct resource bfin_spi0_resource[] = { @@ -786,7 +842,7 @@ static struct i2c_board_info __initdata bfin_i2c_board_info0[] = {  #if !defined(CONFIG_BF542)	/* The BF542 only has 1 TWI */  static struct i2c_board_info __initdata bfin_i2c_board_info1[] = { -#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE) +#if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE)  	{  		I2C_BOARD_INFO("pcf8574_lcd", 0x22),  	}, @@ -797,6 +853,13 @@ static struct i2c_board_info __initdata bfin_i2c_board_info1[] = {  		.irq = 212,  	},  #endif +#if defined(CONFIG_INPUT_ADXL34X_I2C) || defined(CONFIG_INPUT_ADXL34X_I2C_MODULE) +	{ +		I2C_BOARD_INFO("adxl34x", 0x53), +		.irq = IRQ_PC5, +		.platform_data = (void *)&adxl34x_info, +	}, +#endif  };  #endif  |