#include <linux/input.h>
#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;
}
*/
#include <linux/kernel.h>
+#include <linux/gpio.h>
#include <mach/pinmux.h>
+#include "gpio-names.h"
+
#include "board-stingray.h"
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},
{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},
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);
}