From faf87c8ee1398778e62d56721a4a9702e1bd12eb Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 13 May 2010 14:03:59 -0700 Subject: [PATCH] [ARM] tegra: stingray: Update board files for stingray Change-Id: I6433bce8bb1cee03a50d1df96a3edd1d2a5d95da Signed-off-by: Colin Cross --- arch/arm/mach-tegra/board-stingray-i2c.c | 396 ++++++++++++-------- arch/arm/mach-tegra/board-stingray-keypad.c | 2 +- arch/arm/mach-tegra/board-stingray-panel.c | 8 +- arch/arm/mach-tegra/board-stingray-pinmux.c | 126 ++++--- arch/arm/mach-tegra/board-stingray.c | 2 +- 5 files changed, 335 insertions(+), 199 deletions(-) diff --git a/arch/arm/mach-tegra/board-stingray-i2c.c b/arch/arm/mach-tegra/board-stingray-i2c.c index 53e527ab8068..9112fda1cce8 100644 --- a/arch/arm/mach-tegra/board-stingray-i2c.c +++ b/arch/arm/mach-tegra/board-stingray-i2c.c @@ -28,192 +28,296 @@ #include #include "gpio-names.h" -#define STINGRAY_TOUCH_IRQ_GPIO TEGRA_GPIO_PF5 -#define STINGRAY_COMPASS_IRQ_GPIO TEGRA_GPIO_PE2 +#define XMEGAT_BL_I2C_ADDR 0x35 +#define STINGRAY_TOUCH_RESET_N_GPIO TEGRA_GPIO_PR4 +#define STINGRAY_TOUCH_INT_N_GPIO TEGRA_GPIO_PV2 +#define STINGRAY_TOUCH_WAKE_N_GPIO TEGRA_GPIO_PJ2 -static int sholes_touch_reset(void) +static int stingray_touch_reset(void) { + gpio_set_value(STINGRAY_TOUCH_RESET_N_GPIO, 0); + msleep(10); + gpio_set_value(STINGRAY_TOUCH_RESET_N_GPIO, 1); + msleep(100); /* value from moto */ return 0; } -static struct vkey sholes_touch_vkeys[] = { - { - .code = KEY_BACK, - }, - { - .code = KEY_MENU, - }, - { - .code = KEY_HOME, - }, - { - .code = KEY_SEARCH, - }, -}; -static struct qtm_touch_keyarray_cfg sholes_key_array_data[] = { - { - .ctrl = 0, - .x_origin = 0, - .y_origin = 0, - .x_size = 0, - .y_size = 0, - .aks_cfg = 0, - .burst_len = 0, - .tch_det_thr = 0, - .tch_det_int = 0, - .rsvd1 = 0, - .rsvd2 = 0, - }, - { - .ctrl = 0, - .x_origin = 0, - .y_origin = 0, - .x_size = 0, - .y_size = 0, - .aks_cfg = 0, - .burst_len = 0, - .tch_det_thr = 0, - .tch_det_int = 0, - .rsvd1 = 0, - .rsvd2 = 0, - }, -}; +/*struct qtouch_ts_platform_data stingray_touch_data = { -static struct qtouch_ts_platform_data sholes_ts_platform_data = { - .irqflags = IRQF_TRIGGER_LOW, - .flags = (QTOUCH_SWAP_XY | - QTOUCH_FLIP_X | + .flags = (QTOUCH_FLIP_X | + QTOUCH_FLIP_Y | QTOUCH_USE_MULTITOUCH | - QTOUCH_CFG_BACKUPNV | - QTOUCH_EEPROM_CHECKSUM), - .abs_min_x = 0, - .abs_max_x = 1024, - .abs_min_y = 0, - .abs_max_y = 1024, - .abs_min_p = 0, - .abs_max_p = 255, - .abs_min_w = 0, - .abs_max_w = 15, - .x_delta = 400, - .y_delta = 250, - .nv_checksum = 0xfaf5, - .fuzz_x = 0, - .fuzz_y = 0, - .fuzz_p = 2, - .fuzz_w = 2, - .hw_reset = sholes_touch_reset, + QTOUCH_CFG_BACKUPNV), + .irqflags = (IRQF_TRIGGER_LOW), + .abs_min_x = 0, + .abs_max_x = 320, //1023, + .abs_min_y = 0, + .abs_max_y = 736, //1023, + .abs_min_p = 0, + .abs_max_p = 255, + .abs_min_w = 0, + .abs_max_w = 15, + .x_delta = 400, + .y_delta = 250, + .nv_checksum = 0x2c30, + .fuzz_x = 0, + .fuzz_y = 0, + .fuzz_p = 2, + .fuzz_w = 2, + .boot_i2c_addr = XMEGAT_BL_I2C_ADDR, + .hw_reset = stingray_touch_reset, + .key_array = { + .cfg = NULL, + .keys = NULL, + .num_keys = 0, + }, .power_cfg = { .idle_acq_int = 0xff, .active_acq_int = 0xff, - .active_idle_to = 0x01, + .active_idle_to = 0x00, }, .acquire_cfg = { - .charge_time = 12, - .atouch_drift = 5, - .touch_drift = 20, - .drift_susp = 20, - .touch_autocal = 0x96, + .charge_time = 0x0A, + .atouch_drift = 0x14, + .touch_drift = 0x14, + .drift_susp = 0x14, + .touch_autocal = 0x00, .sync = 0, + .atch_cal_suspend_time = 0, + .atch_cal_suspend_thres = 0, }, .multi_touch_cfg = { - .ctrl = 0x0b, + .ctrl = 0x83, .x_origin = 0, .y_origin = 0, - .x_size = 19, - .y_size = 11, + .x_size = 0x1b, + .y_size = 0x2a, .aks_cfg = 0, - .burst_len = 0x40, - .tch_det_thr = 0x12, - .tch_det_int = 0x2, - .mov_hyst_init = 0xe, - .mov_hyst_next = 0xe, - .mov_filter = 0x9, - .num_touch = 2, - .merge_hyst = 0, - .merge_thresh = 3, - .amp_hyst = 2, - .x_res = 0x0000, - .y_res = 0x0000, - .x_low_clip = 0x00, - .x_high_clip = 0x00, - .y_low_clip = 0x00, - .y_high_clip = 0x00, - }, - .linear_tbl_cfg = { - .ctrl = 0x01, - .x_offset = 0x0000, - .x_segment = { - 0x48, 0x3f, 0x3c, 0x3E, - 0x3f, 0x3e, 0x3e, 0x3e, - 0x3f, 0x42, 0x41, 0x3f, - 0x41, 0x40, 0x41, 0x46 - }, - .y_offset = 0x0000, - .y_segment = { - 0x44, 0x38, 0x37, 0x3e, - 0x3e, 0x41, 0x41, 0x3f, - 0x42, 0x41, 0x42, 0x42, - 0x41, 0x3f, 0x41, 0x45 - }, - }, + .burst_len = 0x30, + .tch_det_thr = 0x2D, + .tch_det_int = 0x3, + .orient = 1, + .mrg_to = 0x00, + .mov_hyst_init = 0x05, + .mov_hyst_next = 0x02, + .mov_filter = 0x20, + .num_touch = 0x01, + .merge_hyst = 0x0A, + .merge_thresh = 0x0A, + .amp_hyst = 0x0A, + .x_res = 0x031F, + .y_res = 0x04FF, + .x_low_clip = 0x00, + .x_high_clip = 0x00, + .y_low_clip = 0x00, + .y_high_clip = 0x00, + .x_edge_ctrl = 0, + .x_edge_dist = 0, + .y_edge_ctrl = 0, + .y_edge_dist = 0, + .jump_limit = 0, + }, + .linear_tbl_cfg = { + .ctrl = 0x00, + .x_offset = 0x0000, + .x_segment = { + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 + }, + .y_offset = 0x0000, + .y_segment = { + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 + }, + }, + .comms_config_cfg = { + .ctrl = 0, + .command = 0, + }, + .gpio_pwm_cfg = { + .ctrl = 0, + .report_mask = 0, + .pin_direction = 0, + .internal_pullup = 0, + .output_value = 0, + .wake_on_change = 0, + .pwm_enable = 0, + .pwm_period = 0, + .duty_cycle_0 = 0, + .duty_cycle_1 = 0, + .duty_cycle_2 = 0, + .duty_cycle_3 = 0, + .trigger_0 = 0, + .trigger_1 = 0, + .trigger_2 = 0, + .trigger_3 = 0, + }, .grip_suppression_cfg = { .ctrl = 0x00, - .xlogrip = 0x00, - .xhigrip = 0x00, - .ylogrip = 0x00, - .yhigrip = 0x00, + .xlogrip = 0x2F, + .xhigrip = 0x2F, + .ylogrip = 0x2F, + .yhigrip = 0x2F, .maxtchs = 0x00, - .reserve0 = 0x00, - .szthr1 = 0x00, - .szthr2 = 0x00, + .reserve0 = 0x00, + .szthr1 = 0x00, + .szthr2 = 0x00, .shpthr1 = 0x00, .shpthr2 = 0x00, + .supextto = 0x00, }, - .noise1_suppression_cfg = { - .ctrl = 0x01, - .reserved = 0x01, - .atchthr = 0x64, - .duty_cycle = 0x08, + .noise_suppression_cfg = { + .ctrl = 0, + .outlier_filter_len = 0, + .reserve0 = 0, + .gcaf_upper_limit = 0, + .gcaf_lower_limit = 0, + .gcaf_low_count = 0, + .noise_threshold = 0, + .reserve1 = 0, + .freq_hop_scale = 0, + .burst_freq_0 = 0, + .burst_freq_1 = 0x0A, + .burst_freq_2 = 0x0F, + .burst_freq_3 = 0x14, + .burst_freq_4 = 0x19, + .idle_gcaf_valid = 0, + }, + .touch_proximity_cfg = { + .ctrl = 0, + .x_origin = 0, + .y_origin = 0, + .x_size = 0, + .y_size = 0, + .reserve0 = 0, + .blen = 0, + .tch_thresh = 0, + .tch_detect_int = 0, + .average = 0, + .move_null_rate = 0, + .move_det_tresh = 0, + }, + .one_touch_gesture_proc_cfg = { + .ctrl = 0, + .reserve0 = 0, + .gesture_enable = 0, + .pres_proc = 0, + .tap_time_out = 0, + .flick_time_out = 0, + .drag_time_out = 0, + .short_press_time_out = 0, + .long_press_time_out = 0, + .repeat_press_time_out = 0, + .flick_threshold = 0, + .drag_threshold = 0, + .tap_threshold = 0, + .throw_threshold = 0, + }, + .self_test_cfg = { + .ctrl = 0, + .command = 0, + .high_signal_limit_0 = 0, + .low_signal_limit_0 = 0, + .high_signal_limit_1 = 0, + .low_signal_limit_1 = 0, + .high_signal_limit_2 = 0, + .low_signal_limit_2 = 0, + }, + .two_touch_gesture_proc_cfg = { + .ctrl = 0, + .reserved0 = 0, + .reserved1 = 0, + .gesture_enable = 0, + .rotate_threshold = 0, + .zoom_threshold = 0, }, - .key_array = { - .cfg = sholes_key_array_data, - .num_keys = ARRAY_SIZE(sholes_key_array_data), + .cte_config_cfg = { + .ctrl = 0, + .command = 0, + .mode = 0, + .idle_gcaf_depth = 16, + .active_gcaf_depth = 16, + .voltage = 60, + }, + .noise1_suppression_cfg = { + .ctrl = 0x01, + .version = 0x01, + .atch_thr = 0x64, + .duty_cycle = 0x08, + .drift_thr = 0x00, + .clamp_thr = 0x00, + .diff_thr = 0x00, + .adjustment = 0x00, + .average = 0x0000, + .temp = 0x00, + .offset = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + .bad_chan = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00 + }, + .x_short = 0x00, }, .vkeys = { - .keys = sholes_touch_vkeys, - .count = ARRAY_SIZE(sholes_touch_vkeys), - .start = 961, + .count = 0, + .keys = NULL, }, }; -static struct i2c_board_info __initdata sholes_i2c_bus1_board_info[] = { +static struct i2c_board_info __initdata stingray_i2c_bus1_board_info[] = { { - I2C_BOARD_INFO(QTOUCH_TS_NAME, 0x4a), - .platform_data = &sholes_ts_platform_data, - .irq = TEGRA_GPIO_TO_IRQ(STINGRAY_TOUCH_IRQ_GPIO), - }, -}; - -static struct i2c_board_info __initdata stingray_i2c_bus4_board_info[] = { - { - I2C_BOARD_INFO("akm8973", 0x0C), - .irq = TEGRA_GPIO_TO_IRQ(STINGRAY_COMPASS_IRQ_GPIO), - }, -}; + I2C_BOARD_INFO(QTOUCH_TS_NAME, 0x5B), + .platform_data = &stingray_touch_data, + .irq = TEGRA_GPIO_TO_IRQ(STINGRAY_TOUCH_INT_N_GPIO), + }, +};*/ static int __init stingray_init_i2c(void) { if (!machine_is_stingray()) return 0; - tegra_gpio_enable(STINGRAY_TOUCH_IRQ_GPIO); - gpio_request(STINGRAY_TOUCH_IRQ_GPIO, "touch_irq"); - gpio_direction_input(STINGRAY_TOUCH_IRQ_GPIO); + tegra_gpio_enable(STINGRAY_TOUCH_INT_N_GPIO); + gpio_request(STINGRAY_TOUCH_INT_N_GPIO, "touch_irq"); + gpio_direction_input(STINGRAY_TOUCH_INT_N_GPIO); + + tegra_gpio_enable(STINGRAY_TOUCH_WAKE_N_GPIO); + gpio_request(STINGRAY_TOUCH_WAKE_N_GPIO, "touch_wake"); + gpio_direction_input(STINGRAY_TOUCH_WAKE_N_GPIO); + + tegra_gpio_enable(STINGRAY_TOUCH_RESET_N_GPIO); + gpio_request(STINGRAY_TOUCH_RESET_N_GPIO, "touch_reset"); + gpio_direction_output(STINGRAY_TOUCH_RESET_N_GPIO, 1); - i2c_register_board_info(0, sholes_i2c_bus1_board_info, 1); +// i2c_register_board_info(0, stingray_i2c_bus1_board_info, 1); - i2c_register_board_info(3, stingray_i2c_bus4_board_info, 1); +// i2c_register_board_info(3, stingray_i2c_bus4_board_info, 1); return 0; } diff --git a/arch/arm/mach-tegra/board-stingray-keypad.c b/arch/arm/mach-tegra/board-stingray-keypad.c index 45df99cce179..df4016d53012 100644 --- a/arch/arm/mach-tegra/board-stingray-keypad.c +++ b/arch/arm/mach-tegra/board-stingray-keypad.c @@ -105,7 +105,7 @@ static struct keyreset_platform_data tegra_reset_keys_pdata = { }, }; -struct platform_device tegra_reset_keys_device = { +static struct platform_device tegra_reset_keys_device = { .name = KEYRESET_NAME, .dev.platform_data = &tegra_reset_keys_pdata, }; diff --git a/arch/arm/mach-tegra/board-stingray-panel.c b/arch/arm/mach-tegra/board-stingray-panel.c index 778ca5646499..ef744c134399 100644 --- a/arch/arm/mach-tegra/board-stingray-panel.c +++ b/arch/arm/mach-tegra/board-stingray-panel.c @@ -41,10 +41,10 @@ static struct resource fb_resource[] = { }; static struct tegra_fb_lcd_data tegra_fb_lcd_platform_data = { - .lcd_xres = 480, - .lcd_yres = 854, - .fb_xres = 480, - .fb_yres = 854, + .lcd_xres = 1280, + .lcd_yres = 720, + .fb_xres = 1280, + .fb_yres = 720, .bits_per_pixel = 16, }; diff --git a/arch/arm/mach-tegra/board-stingray-pinmux.c b/arch/arm/mach-tegra/board-stingray-pinmux.c index f73d350c9d14..29212bbe7024 100644 --- a/arch/arm/mach-tegra/board-stingray-pinmux.c +++ b/arch/arm/mach-tegra/board-stingray-pinmux.c @@ -15,8 +15,11 @@ */ #include +#include #include +#include "gpio-names.h" + #include "board-stingray.h" static struct tegra_pingroup_config stingray_pinmux[] = { @@ -34,84 +37,84 @@ static struct tegra_pingroup_config stingray_pinmux[] = { {TEGRA_PINGROUP_DAP3, TEGRA_MUX_DAP3, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_DAP4, TEGRA_MUX_DAP4, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_DDC, TEGRA_MUX_I2C2, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_DTA, TEGRA_MUX_SDIO2, TEGRA_TRI_NORMAL, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_DTB, TEGRA_MUX_RSVD1, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_DTC, TEGRA_MUX_RSVD1, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_DTD, TEGRA_MUX_SDIO2, TEGRA_TRI_NORMAL, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_DTE, TEGRA_MUX_RSVD1, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_DTF, TEGRA_MUX_I2C3, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_DTA, TEGRA_MUX_VI, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_DTB, TEGRA_MUX_VI, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_DTC, TEGRA_MUX_VI, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_DTD, TEGRA_MUX_VI, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_DTE, TEGRA_MUX_VI, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_DTF, TEGRA_MUX_I2C3, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_GMA, TEGRA_MUX_SDIO4, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_GMB, TEGRA_MUX_GMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_GMC, TEGRA_MUX_UARTD, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_GMD, TEGRA_MUX_GMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_GMD, TEGRA_MUX_GMI, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_GME, TEGRA_MUX_SDIO4, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_GPU, TEGRA_MUX_GMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_GPU7, TEGRA_MUX_RTCK, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_GPV, TEGRA_MUX_PCIE, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_GPV, TEGRA_MUX_PCIE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_HDINT, TEGRA_MUX_HDMI, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_I2CP, TEGRA_MUX_I2C, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_IRRX, TEGRA_MUX_UARTA, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_IRTX, TEGRA_MUX_UARTA, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_KBCA, TEGRA_MUX_KBC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_KBCB, TEGRA_MUX_KBC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_KBCB, TEGRA_MUX_SDIO2, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_KBCC, TEGRA_MUX_KBC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_KBCD, TEGRA_MUX_KBC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_KBCD, TEGRA_MUX_SDIO2, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_KBCE, TEGRA_MUX_KBC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_KBCF, TEGRA_MUX_KBC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_LCSN, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_LD0, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_LD1, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LD10, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_LD1, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LD10, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_LD11, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_LD12, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LD13, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_LD12, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LD13, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_LD14, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_LD15, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LD16, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LD17, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LD2, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_LD15, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LD16, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LD17, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LD2, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_LD3, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_LD4, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LD5, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LD6, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LD7, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LD8, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LD9, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_LD4, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LD5, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LD6, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LD7, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LD8, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LD9, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_LDC, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LDI, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LHP0, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LHP1, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LHP2, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LHS, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_LDI, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LHP0, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LHP1, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LHP2, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LHS, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_LM0, TEGRA_MUX_SPI3, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_LM1, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LPP, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LPW0, TEGRA_MUX_SPI3, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_LPP, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LPW0, TEGRA_MUX_SPI3, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_LPW1, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_LPW2, TEGRA_MUX_SPI3, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LSC0, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_LSC0, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_LSC1, TEGRA_MUX_SPI3, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_LSCK, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_LSDA, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_LSDI, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LSPI, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LVP0, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LVP1, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_LVS, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_LSPI, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LVP0, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LVP1, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_LVS, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_OWC, TEGRA_MUX_OWR, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_PMC, TEGRA_MUX_PWR_ON, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_PTA, TEGRA_MUX_RSVD4, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_RM, TEGRA_MUX_I2C, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_SDB, TEGRA_MUX_SDIO3, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_SDC, TEGRA_MUX_SDIO3, TEGRA_TRI_NORMAL, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_SDD, TEGRA_MUX_SDIO3, TEGRA_TRI_NORMAL, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_SDIO1, TEGRA_MUX_SDIO1, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_RM, TEGRA_MUX_RSVD2, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_SDB, TEGRA_MUX_SDIO3, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_SDC, TEGRA_MUX_SDIO3, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_SDD, TEGRA_MUX_SDIO3, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_SDIO1, TEGRA_MUX_UARTE, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_SLXA, TEGRA_MUX_PCIE, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_SLXC, TEGRA_MUX_SPI4, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_SLXD, TEGRA_MUX_SPI4, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_SLXK, TEGRA_MUX_PCIE, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_SPDI, TEGRA_MUX_RSVD2, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_SPDO, TEGRA_MUX_RSVD2, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_SLXK, TEGRA_MUX_PCIE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_SPDI, TEGRA_MUX_I2C, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_SPDO, TEGRA_MUX_I2C, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_SPIA, TEGRA_MUX_SPI2, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_SPIB, TEGRA_MUX_SPI2, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_SPIC, TEGRA_MUX_SPI2, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, @@ -120,13 +123,13 @@ static struct tegra_pingroup_config stingray_pinmux[] = { {TEGRA_PINGROUP_SPIF, TEGRA_MUX_SPI1, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_SPIG, TEGRA_MUX_SPI2, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_SPIH, TEGRA_MUX_SPI2, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_UAA, TEGRA_MUX_MIPI_HS, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_UAB, TEGRA_MUX_MIPI_HS, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_UAA, TEGRA_MUX_ULPI, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_UAB, TEGRA_MUX_ULPI, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_UAC, TEGRA_MUX_OWR, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_UAD, TEGRA_MUX_IRDA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_UCA, TEGRA_MUX_UARTC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_UCB, TEGRA_MUX_UARTC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_UDA, TEGRA_MUX_RSVD2, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_UDA, TEGRA_MUX_ULPI, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_CK32, TEGRA_MUX_NONE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_DDRC, TEGRA_MUX_NONE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_PMCA, TEGRA_MUX_NONE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, @@ -141,4 +144,33 @@ static struct tegra_pingroup_config stingray_pinmux[] = { void stingray_pinmux_init(void) { tegra_pinmux_config_table(stingray_pinmux, ARRAY_SIZE(stingray_pinmux)); + + tegra_gpio_disable(TEGRA_GPIO_PE0); + tegra_gpio_disable(TEGRA_GPIO_PE1); + tegra_gpio_disable(TEGRA_GPIO_PE2); + tegra_gpio_disable(TEGRA_GPIO_PE3); + tegra_gpio_disable(TEGRA_GPIO_PE4); + tegra_gpio_disable(TEGRA_GPIO_PE5); + tegra_gpio_disable(TEGRA_GPIO_PE6); + tegra_gpio_disable(TEGRA_GPIO_PE7); + tegra_gpio_disable(TEGRA_GPIO_PF0); + tegra_gpio_disable(TEGRA_GPIO_PF1); + tegra_gpio_disable(TEGRA_GPIO_PF2); + tegra_gpio_disable(TEGRA_GPIO_PF3); + tegra_gpio_disable(TEGRA_GPIO_PF4); + tegra_gpio_disable(TEGRA_GPIO_PF5); + tegra_gpio_disable(TEGRA_GPIO_PF6); + tegra_gpio_disable(TEGRA_GPIO_PF7); + tegra_gpio_disable(TEGRA_GPIO_PM0); + tegra_gpio_disable(TEGRA_GPIO_PM1); + tegra_gpio_disable(TEGRA_GPIO_PM2); + tegra_gpio_disable(TEGRA_GPIO_PM3); + tegra_gpio_disable(TEGRA_GPIO_PM4); + tegra_gpio_disable(TEGRA_GPIO_PM5); + tegra_gpio_disable(TEGRA_GPIO_PM6); + tegra_gpio_disable(TEGRA_GPIO_PM7); + tegra_gpio_disable(TEGRA_GPIO_PN7); + + tegra_gpio_disable(TEGRA_GPIO_PK5); + tegra_gpio_disable(TEGRA_GPIO_PK6); } diff --git a/arch/arm/mach-tegra/board-stingray.c b/arch/arm/mach-tegra/board-stingray.c index 3c169ed8035f..bc80c04f25d6 100644 --- a/arch/arm/mach-tegra/board-stingray.c +++ b/arch/arm/mach-tegra/board-stingray.c @@ -134,7 +134,7 @@ static struct fsl_usb2_platform_data tegra_otg_pdata = { .phy_mode = FSL_USB2_PHY_UTMI, }; -struct platform_device tegra_otg = { +static struct platform_device tegra_otg = { .name = "fsl-tegra-udc", .id = -1, .dev = { -- 2.34.1