mirror of
https://github.com/CTCaer/hekate.git
synced 2024-11-22 18:06:40 +00:00
bdk: touch: reorder power on
So touch IC reset can be properly done on a fast power cycle.
This commit is contained in:
parent
f4bf48e76a
commit
50811aacfa
1 changed files with 15 additions and 9 deletions
|
@ -401,23 +401,29 @@ static int touch_init()
|
||||||
|
|
||||||
int touch_power_on()
|
int touch_power_on()
|
||||||
{
|
{
|
||||||
// Enable LDO6 for touchscreen AVDD supply.
|
|
||||||
max7762x_regulator_set_voltage(REGULATOR_LDO6, 2900000);
|
|
||||||
max7762x_regulator_enable(REGULATOR_LDO6, true);
|
|
||||||
|
|
||||||
// Configure touchscreen VDD GPIO.
|
|
||||||
PINMUX_AUX(PINMUX_AUX_DAP4_SCLK) = PINMUX_PULL_DOWN | 1;
|
|
||||||
gpio_direction_output(GPIO_PORT_J, GPIO_PIN_7, GPIO_HIGH);
|
|
||||||
|
|
||||||
// Configure Touscreen and GCAsic shared GPIO.
|
// Configure Touscreen and GCAsic shared GPIO.
|
||||||
PINMUX_AUX(PINMUX_AUX_CAM_I2C_SDA) = PINMUX_LPDR | PINMUX_INPUT_ENABLE | PINMUX_TRISTATE | PINMUX_PULL_UP | 2;
|
PINMUX_AUX(PINMUX_AUX_CAM_I2C_SDA) = PINMUX_LPDR | PINMUX_INPUT_ENABLE | PINMUX_TRISTATE | PINMUX_PULL_UP | 2;
|
||||||
PINMUX_AUX(PINMUX_AUX_CAM_I2C_SCL) = PINMUX_IO_HV | PINMUX_LPDR | PINMUX_TRISTATE | PINMUX_PULL_DOWN | 2;
|
PINMUX_AUX(PINMUX_AUX_CAM_I2C_SCL) = PINMUX_IO_HV | PINMUX_LPDR | PINMUX_TRISTATE | PINMUX_PULL_DOWN | 2; // Unused.
|
||||||
gpio_config(GPIO_PORT_S, GPIO_PIN_3, GPIO_MODE_GPIO); // GC detect.
|
gpio_config(GPIO_PORT_S, GPIO_PIN_3, GPIO_MODE_GPIO); // GC detect.
|
||||||
|
|
||||||
|
// Configure touchscreen Touch Reset pin.
|
||||||
|
PINMUX_AUX(PINMUX_AUX_DAP4_SCLK) = PINMUX_PULL_DOWN | 1;
|
||||||
|
gpio_direction_output(GPIO_PORT_J, GPIO_PIN_7, GPIO_LOW);
|
||||||
|
usleep(20);
|
||||||
|
|
||||||
|
// Enable LDO6 for touchscreen AVDD and DVDD supply.
|
||||||
|
max7762x_regulator_set_voltage(REGULATOR_LDO6, 2900000);
|
||||||
|
max7762x_regulator_enable(REGULATOR_LDO6, true);
|
||||||
|
|
||||||
// Initialize I2C3.
|
// Initialize I2C3.
|
||||||
pinmux_config_i2c(I2C_3);
|
pinmux_config_i2c(I2C_3);
|
||||||
clock_enable_i2c(I2C_3);
|
clock_enable_i2c(I2C_3);
|
||||||
i2c_init(I2C_3);
|
i2c_init(I2C_3);
|
||||||
|
usleep(1000);
|
||||||
|
|
||||||
|
// Set Touch Reset pin.
|
||||||
|
gpio_write(GPIO_PORT_J, GPIO_PIN_7, GPIO_HIGH);
|
||||||
|
usleep(10000);
|
||||||
|
|
||||||
// Wait for the touchscreen module to get ready.
|
// Wait for the touchscreen module to get ready.
|
||||||
touch_wait_event(STMFTS_EV_CONTROLLER_READY, 0, 20, NULL);
|
touch_wait_event(STMFTS_EV_CONTROLLER_READY, 0, 20, NULL);
|
||||||
|
|
Loading…
Reference in a new issue