mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-09 17:11:42 +00:00
GPIO changes for link proto1
Note that this moves the charger to a different I2C port. If you're working on battery charging, you'll need to hack board.h in your local repo to move it back. Signed-off-by: Randall Spangler <rspangler@chromium.org> BUG=chrome-os-partner:8458 TEST=manual Change-Id: Id94ee2ce1ef6c973c1786037e07d0c64a89a9940
This commit is contained in:
@@ -71,13 +71,15 @@ const struct gpio_info gpio_list[GPIO_COUNT] = {
|
||||
{"USB2_STATUSn", LM4_GPIO_E, (1<<1), 0, NULL},
|
||||
{"WRITE_PROTECTn", LM4_GPIO_J, (1<<4), GPIO_INT_BOTH,
|
||||
power_button_interrupt},
|
||||
/* Outputs; all unasserted by default */
|
||||
/* Outputs; all unasserted by default except for reset signals */
|
||||
{"CPU_PROCHOTn", LM4_GPIO_F, (1<<2), GPIO_OUT_HIGH, NULL},
|
||||
{"ENABLE_1_5V_DDR", LM4_GPIO_H, (1<<5), GPIO_OUT_LOW, NULL},
|
||||
{"ENABLE_BACKLIGHT", LM4_GPIO_H, (1<<4), GPIO_OUT_LOW, NULL},
|
||||
{"ENABLE_TOUCHPAD", LM4_GPIO_C, (1<<6), GPIO_OUT_LOW, NULL},
|
||||
{"ENABLE_VCORE", LM4_GPIO_F, (1<<7), GPIO_OUT_LOW, NULL},
|
||||
{"ENABLE_VS", LM4_GPIO_G, (1<<6), GPIO_OUT_LOW, NULL},
|
||||
{"ENTERING_RW", LM4_GPIO_J, (1<<5), GPIO_OUT_LOW, NULL},
|
||||
{"LIGHTBAR_RESETn", LM4_GPIO_B, (1<<1), GPIO_OUT_LOW, NULL},
|
||||
{"PCH_A20GATE", LM4_GPIO_Q, (1<<6), GPIO_OUT_LOW, NULL},
|
||||
{"PCH_DPWROK", LM4_GPIO_G, (1<<0), GPIO_OUT_LOW, NULL},
|
||||
{"PCH_HDA_SDO", LM4_GPIO_G, (1<<1), GPIO_OUT_LOW, NULL},
|
||||
@@ -86,11 +88,11 @@ const struct gpio_info gpio_list[GPIO_COUNT] = {
|
||||
{"PCH_PWRBTNn", LM4_GPIO_G, (1<<7), GPIO_OUT_HIGH, NULL},
|
||||
{"PCH_PWROK", LM4_GPIO_F, (1<<5), GPIO_OUT_LOW, NULL},
|
||||
{"PCH_RCINn", LM4_GPIO_Q, (1<<7), GPIO_OUT_LOW, NULL},
|
||||
/* Exception: RSMRST# is asserted at power-on */
|
||||
{"PCH_RSMRSTn", LM4_GPIO_F, (1<<1), GPIO_OUT_LOW, NULL},
|
||||
{"PCH_SMIn", LM4_GPIO_F, (1<<4), GPIO_OUT_HIGH, NULL},
|
||||
{"PCH_SUSACKn", LM4_GPIO_F, (1<<3), GPIO_OUT_HIGH, NULL},
|
||||
{"SHUNT_1_5V_DDR", LM4_GPIO_F, (1<<6), GPIO_OUT_HIGH, NULL},
|
||||
{"TOUCHSCREEN_RESETn", LM4_GPIO_B, (1<<0), GPIO_OUT_LOW, NULL},
|
||||
{"USB1_CTL1", LM4_GPIO_E, (1<<2), GPIO_OUT_LOW, NULL},
|
||||
{"USB1_CTL2", LM4_GPIO_E, (1<<3), GPIO_OUT_LOW, NULL},
|
||||
{"USB1_CTL3", LM4_GPIO_E, (1<<4), GPIO_OUT_LOW, NULL},
|
||||
|
||||
@@ -85,7 +85,7 @@ enum adc_channel
|
||||
|
||||
/* I2C ports */
|
||||
#define I2C_PORT_BATTERY 0
|
||||
#define I2C_PORT_CHARGER 1
|
||||
#define I2C_PORT_CHARGER 0 /* Note: proto0 used port 1 */
|
||||
#define I2C_PORT_THERMAL 5
|
||||
#define I2C_PORT_LIGHTBAR 1
|
||||
/* I2C port speeds in kbps */
|
||||
@@ -138,9 +138,11 @@ enum gpio_signal {
|
||||
GPIO_CPU_PROCHOTn, /* Force CPU to think it's overheated */
|
||||
GPIO_ENABLE_1_5V_DDR, /* Enable +1.5V_DDR supply */
|
||||
GPIO_ENABLE_BACKLIGHT, /* Enable backlight power */
|
||||
GPIO_ENABLE_TOUCHPAD, /* Enable touchpad power */
|
||||
GPIO_ENABLE_VCORE, /* Enable +CPU_CORE and +VGFX_CORE */
|
||||
GPIO_ENABLE_VS, /* Enable VS power supplies */
|
||||
GPIO_ENTERING_RW, /* Indicate when EC is entering RW code */
|
||||
GPIO_LIGHTBAR_RESETn, /* Reset lightbar controllers (Proto1+) */
|
||||
GPIO_PCH_A20GATE, /* A20GATE signal to PCH */
|
||||
GPIO_PCH_DPWROK, /* DPWROK signal to PCH */
|
||||
GPIO_PCH_HDA_SDO, /* HDA_SDO signal to PCH; when high, ME
|
||||
@@ -153,8 +155,9 @@ enum gpio_signal {
|
||||
GPIO_PCH_RSMRSTn, /* Reset PCH resume power plane logic */
|
||||
GPIO_PCH_SMIn, /* System management interrupt to PCH */
|
||||
GPIO_PCH_SUSACKn, /* Acknowledge PCH SUSWARN# signal */
|
||||
GPIO_SHUNT_1_5V_DDR, /* Shunt +1.5V_DDR; may also enable +3V_TP
|
||||
* depending on stuffing. */
|
||||
GPIO_SHUNT_1_5V_DDR, /* Shunt +1.5V_DDR (Proto0 only) */
|
||||
/* TODO: remove once we move to proto1 */
|
||||
GPIO_TOUCHSCREEN_RESETn, /* Reset touch screen (Proto1+) */
|
||||
GPIO_USB1_CTL1, /* USB charger port 1 CTL1 output */
|
||||
GPIO_USB1_CTL2, /* USB charger port 1 CTL2 output */
|
||||
GPIO_USB1_CTL3, /* USB charger port 1 CTL3 output */
|
||||
|
||||
@@ -426,7 +426,8 @@ int i2c_init(void)
|
||||
|
||||
/* Enable I2C modules and delay a few clocks */
|
||||
LM4_SYSTEM_RCGCI2C |= (1 << I2C_PORT_THERMAL) |
|
||||
(1 << I2C_PORT_BATTERY) | (1 << I2C_PORT_CHARGER);
|
||||
(1 << I2C_PORT_BATTERY) | (1 << I2C_PORT_CHARGER) |
|
||||
(1 << I2C_PORT_LIGHTBAR);
|
||||
scratch = LM4_SYSTEM_RCGCI2C;
|
||||
|
||||
/* Configure GPIOs */
|
||||
|
||||
@@ -277,6 +277,11 @@ void x86_power_task(void)
|
||||
gpio_set_level(GPIO_SHUNT_1_5V_DDR, 0);
|
||||
gpio_set_level(GPIO_ENABLE_1_5V_DDR, 1);
|
||||
|
||||
/* Enable touchpad power and take touchscreen out of
|
||||
* reset, so they can wake the system from suspend. */
|
||||
gpio_set_level(GPIO_ENABLE_TOUCHPAD, 1);
|
||||
gpio_set_level(GPIO_TOUCHSCREEN_RESETn, 1);
|
||||
|
||||
state = X86_S3;
|
||||
break;
|
||||
|
||||
@@ -293,6 +298,8 @@ void x86_power_task(void)
|
||||
gpio_set_level(GPIO_ENABLE_VS, 1);
|
||||
|
||||
/* Enable fan, now that +5VS is turned on */
|
||||
/* TODO: On proto1+, fan is on +5VALW, so we can leave
|
||||
* it on all the time. */
|
||||
pwm_enable_fan(1);
|
||||
|
||||
/* Wait for non-core power rails good */
|
||||
@@ -328,6 +335,8 @@ void x86_power_task(void)
|
||||
gpio_set_level(GPIO_PCH_RCINn, 0);
|
||||
|
||||
/* Disable fan, since it's powered by +5VS */
|
||||
/* TODO: On proto1+, fan is on +5VALW, so we can leave
|
||||
* it on all the time. */
|
||||
pwm_enable_fan(0);
|
||||
|
||||
/* Turn off power rails */
|
||||
@@ -337,6 +346,10 @@ void x86_power_task(void)
|
||||
break;
|
||||
|
||||
case X86_S3S5:
|
||||
/* Disable touchpad power and reset touchscreen. */
|
||||
gpio_set_level(GPIO_ENABLE_TOUCHPAD, 0);
|
||||
gpio_set_level(GPIO_TOUCHSCREEN_RESETn, 0);
|
||||
|
||||
/* Turn off power to RAM */
|
||||
gpio_set_level(GPIO_ENABLE_1_5V_DDR, 0);
|
||||
gpio_set_level(GPIO_SHUNT_1_5V_DDR, 1);
|
||||
|
||||
Reference in New Issue
Block a user