diff options
author | Gary King <gking@nvidia.com> | 2011-02-11 00:14:53 -0800 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:46:05 -0800 |
commit | 5561bbc1dcfd9d0f35a10beba107bd177cab408e (patch) | |
tree | 581077cd25b75892883fd04fbb8fe6bf19ee10be /arch/arm | |
parent | 3bad0b8396e739542ef95295b33786c8e7c3b4d6 (diff) |
[ARM] tegra: ventana: register akm8975 compass
For Ventana board registering i2c board info for akm8975
compass on i2c bus4.
Original-Change-Id: Ie5a293699e69a9c94d89bb419db26ca81e5c4a91
Reviewed-on: http://git-master/r/7974
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
Rebase-Id: R10647df6bb1889c2a80cb4fc1d86dc48914bd624
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-tegra/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-ventana-sensors.c | 27 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-ventana.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-ventana.h | 1 |
4 files changed, 24 insertions, 6 deletions
diff --git a/arch/arm/mach-tegra/Makefile b/arch/arm/mach-tegra/Makefile index facd459541db..3f475c87673e 100644 --- a/arch/arm/mach-tegra/Makefile +++ b/arch/arm/mach-tegra/Makefile @@ -97,6 +97,7 @@ obj-${CONFIG_MACH_VENTANA} += board-ventana-pinmux.o obj-${CONFIG_MACH_VENTANA} += board-ventana-sdhci.o obj-${CONFIG_MACH_VENTANA} += board-ventana-power.o obj-${CONFIG_MACH_VENTANA} += board-ventana-panel.o +obj-${CONFIG_MACH_VENTANA} += board-ventana-sensors.o # Aruba diff --git a/arch/arm/mach-tegra/board-ventana-sensors.c b/arch/arm/mach-tegra/board-ventana-sensors.c index 3527ec9b036b..c2b3ba0d4a64 100644 --- a/arch/arm/mach-tegra/board-ventana-sensors.c +++ b/arch/arm/mach-tegra/board-ventana-sensors.c @@ -21,9 +21,12 @@ #include <linux/i2c.h> #include <mach/gpio.h> #include <linux/i2c/nct1008.h> +#include <linux/akm8975.h> + #include "gpio-names.h" #define ISL29018_IRQ_GPIO TEGRA_GPIO_PZ2 +#define AKM8975_IRQ_GPIO TEGRA_GPIO_PN5 static void ventana_isl29018_init(void) { @@ -32,6 +35,19 @@ static void ventana_isl29018_init(void) gpio_direction_input(ISL29018_IRQ_GPIO); } +static void ventana_akm8975_init(void) +{ + tegra_gpio_enable(AKM8975_IRQ_GPIO); + gpio_request(AKM8975_IRQ_GPIO, "akm8975"); + gpio_direction_input(AKM8975_IRQ_GPIO); +} + +struct nct1008_platform_data ventana_nct1008_pdata = { + .conv_rate = 5, + .config = NCT1008_CONFIG_ALERT_DISABLE, + .thermal_threshold = 110, +}; + static const struct i2c_board_info ventana_i2c0_board_info[] = { { I2C_BOARD_INFO("isl29018", 0x44), @@ -45,22 +61,21 @@ static const struct i2c_board_info ventana_i2c2_board_info[] = { }, }; -struct nct1008_platform_data ventana_nct1008_pdata = { - .conv_rate = 5, - .config = NCT1008_CONFIG_ALERT_DISABLE, - .thermal_threshold = 110, -}; - static struct i2c_board_info ventana_i2c4_board_info[] = { { I2C_BOARD_INFO("nct1008", 0x4C), .platform_data = &ventana_nct1008_pdata, }, + { + I2C_BOARD_INFO("akm8975", 0x0C), + .irq = TEGRA_GPIO_TO_IRQ(AKM8975_IRQ_GPIO), + } }; int __init ventana_sensors_init(void) { ventana_isl29018_init(); + ventana_akm8975_init(); i2c_register_board_info(0, ventana_i2c0_board_info, ARRAY_SIZE(ventana_i2c0_board_info)); diff --git a/arch/arm/mach-tegra/board-ventana.c b/arch/arm/mach-tegra/board-ventana.c index 4eb81c53b869..345913a74ca1 100644 --- a/arch/arm/mach-tegra/board-ventana.c +++ b/arch/arm/mach-tegra/board-ventana.c @@ -218,6 +218,7 @@ static void __init tegra_ventana_init(void) ventana_touch_init(); ventana_keys_init(); ventana_panel_init(); + ventana_sensors_init(); } MACHINE_START(VENTANA, "ventana") diff --git a/arch/arm/mach-tegra/board-ventana.h b/arch/arm/mach-tegra/board-ventana.h index 39703583249d..28f3a02538b3 100644 --- a/arch/arm/mach-tegra/board-ventana.h +++ b/arch/arm/mach-tegra/board-ventana.h @@ -21,5 +21,6 @@ int ventana_regulator_init(void); int ventana_sdhci_init(void); int ventana_pinmux_init(void); int ventana_panel_init(void); +int ventana_sensors_init(void); #endif |