diff options
author | Krishna Yarlagadda <kyarlagadda@nvidia.com> | 2011-05-20 17:02:32 +0530 |
---|---|---|
committer | Niket Sirsi <nsirsi@nvidia.com> | 2011-05-26 19:06:11 -0700 |
commit | 6bff816120f3763ec7b960bde07a39d5b1c23326 (patch) | |
tree | f8720689a397488e230d28ce5a28343abee060e5 | |
parent | fec2840cd0ed71236ad20db32af8b51a4a2bb0a7 (diff) |
ARM: tegra: sensors: Support nct1008 on enterprise
Register nct1008 on enterprise
Change-Id: Ib555c7daee097f39b722acd34ec8097937c90b48
Reviewed-on: http://git-master/r/32364
Reviewed-by: Niket Sirsi <nsirsi@nvidia.com>
Tested-by: Niket Sirsi <nsirsi@nvidia.com>
-rw-r--r-- | arch/arm/mach-tegra/board-enterprise-sensors.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-enterprise-sensors.c b/arch/arm/mach-tegra/board-enterprise-sensors.c index c6e4ed472bbb..bb070b53cb45 100644 --- a/arch/arm/mach-tegra/board-enterprise-sensors.c +++ b/arch/arm/mach-tegra/board-enterprise-sensors.c @@ -21,10 +21,54 @@ #include <linux/i2c.h> #include <linux/err.h> #include <linux/mpu.h> +#include <linux/nct1008.h> #include <mach/gpio.h> +#include "cpu-tegra.h" #include "gpio-names.h" #include "board-enterprise.h" +static struct nct1008_platform_data enterprise_nct1008_pdata = { + .supported_hwrev = true, + .ext_range = false, + .conv_rate = 0x08, + .offset = 0, + .hysteresis = 5, + .shutdown_ext_limit = 75, + .shutdown_local_limit = 75, + .throttling_ext_limit = 90, + .alarm_fn = tegra_throttling_enable, +}; + +static struct i2c_board_info enterprise_i2c4_nct1008_board_info[] = { + { + I2C_BOARD_INFO("nct1008", 0x4C), + .irq = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PH7), + .platform_data = &enterprise_nct1008_pdata, + } +}; + +static void enterprise_nct1008_init(void) +{ + int ret; + + tegra_gpio_enable(TEGRA_GPIO_PH7); + ret = gpio_request(TEGRA_GPIO_PH7, "temp_alert"); + if (ret < 0) { + pr_err("%s: gpio_request failed %d\n", __func__, ret); + return; + } + + ret = gpio_direction_input(TEGRA_GPIO_PH7); + if (ret < 0) { + pr_err("%s: gpio_direction_input failed %d\n", __func__, ret); + gpio_free(TEGRA_GPIO_PH7); + return; + } + + i2c_register_board_info(4, enterprise_i2c4_nct1008_board_info, + ARRAY_SIZE(enterprise_i2c4_nct1008_board_info)); +} + #define SENSOR_MPU_NAME "mpu3050" static struct mpu3050_platform_data mpu3050_data = { .int_config = 0x10, @@ -97,6 +141,7 @@ static void enterprise_isl_init(void) int __init enterprise_sensors_init(void) { enterprise_isl_init(); + enterprise_nct1008_init(); enterprise_mpuirq_init(); return 0; |