summaryrefslogtreecommitdiff
path: root/src/mainboard
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard')
-rw-r--r--src/mainboard/google/nyan/chromeos.c26
-rw-r--r--src/mainboard/google/nyan_big/chromeos.c26
-rw-r--r--src/mainboard/google/nyan_blaze/chromeos.c26
-rw-r--r--src/mainboard/google/rush/chromeos.c18
-rw-r--r--src/mainboard/google/rush_ryu/chromeos.c22
-rw-r--r--src/mainboard/google/rush_ryu/gpio.h4
-rw-r--r--src/mainboard/google/veyron_jerry/chromeos.c23
-rw-r--r--src/mainboard/google/veyron_mighty/chromeos.c23
-rw-r--r--src/mainboard/google/veyron_pinky/chromeos.c21
9 files changed, 158 insertions, 31 deletions
diff --git a/src/mainboard/google/nyan/chromeos.c b/src/mainboard/google/nyan/chromeos.c
index 91a3f13de6..1be850eaa7 100644
--- a/src/mainboard/google/nyan/chromeos.c
+++ b/src/mainboard/google/nyan/chromeos.c
@@ -31,7 +31,7 @@ void fill_lb_gpios(struct lb_gpios *gpios)
int count = 0;
/* Write Protect: active low */
- gpios->gpios[count].port = GPIO_R1_INDEX;
+ gpios->gpios[count].port = GPIO(R1);
gpios->gpios[count].polarity = ACTIVE_LOW;
gpios->gpios[count].value = gpio_get(GPIO(R1));
strncpy((char *)gpios->gpios[count].name, "write protect",
@@ -47,16 +47,16 @@ void fill_lb_gpios(struct lb_gpios *gpios)
count++;
/* Lid: active high */
- gpios->gpios[count].port = GPIO_R4_INDEX;
+ gpios->gpios[count].port = GPIO(R4);
gpios->gpios[count].polarity = ACTIVE_HIGH;
- gpios->gpios[count].value = gpio_get(GPIO(R4));
+ gpios->gpios[count].value = -1;
strncpy((char *)gpios->gpios[count].name, "lid", GPIO_MAX_NAME_LENGTH);
count++;
/* Power: active low */
- gpios->gpios[count].port = GPIO_Q0_INDEX;
+ gpios->gpios[count].port = GPIO(Q0);
gpios->gpios[count].polarity = ACTIVE_LOW;
- gpios->gpios[count].value = gpio_get(GPIO(Q0));
+ gpios->gpios[count].value = -1;
strncpy((char *)gpios->gpios[count].name, "power",
GPIO_MAX_NAME_LENGTH);
count++;
@@ -69,6 +69,22 @@ void fill_lb_gpios(struct lb_gpios *gpios)
GPIO_MAX_NAME_LENGTH);
count++;
+ /* EC in RW: active high */
+ gpios->gpios[count].port = GPIO(U4);
+ gpios->gpios[count].polarity = ACTIVE_HIGH;
+ gpios->gpios[count].value = -1;
+ strncpy((char *)gpios->gpios[count].name, "EC in RW",
+ GPIO_MAX_NAME_LENGTH);
+ count++;
+
+ /* Reset: active low (output) */
+ gpios->gpios[count].port = GPIO(I5);
+ gpios->gpios[count].polarity = ACTIVE_LOW;
+ gpios->gpios[count].value = -1;
+ strncpy((char *)gpios->gpios[count].name, "reset",
+ GPIO_MAX_NAME_LENGTH);
+ count++;
+
gpios->size = sizeof(*gpios) + (count * sizeof(struct lb_gpio));
gpios->count = count;
diff --git a/src/mainboard/google/nyan_big/chromeos.c b/src/mainboard/google/nyan_big/chromeos.c
index 7073198a78..be948d24d8 100644
--- a/src/mainboard/google/nyan_big/chromeos.c
+++ b/src/mainboard/google/nyan_big/chromeos.c
@@ -31,7 +31,7 @@ void fill_lb_gpios(struct lb_gpios *gpios)
int count = 0;
/* Write Protect: active low */
- gpios->gpios[count].port = GPIO_R1_INDEX;
+ gpios->gpios[count].port = GPIO(R1);
gpios->gpios[count].polarity = ACTIVE_LOW;
gpios->gpios[count].value = gpio_get(GPIO(R1));
strncpy((char *)gpios->gpios[count].name, "write protect",
@@ -47,16 +47,16 @@ void fill_lb_gpios(struct lb_gpios *gpios)
count++;
/* Lid: active high */
- gpios->gpios[count].port = GPIO_R4_INDEX;
+ gpios->gpios[count].port = GPIO(R4);
gpios->gpios[count].polarity = ACTIVE_HIGH;
- gpios->gpios[count].value = gpio_get(GPIO(R4));
+ gpios->gpios[count].value = -1;
strncpy((char *)gpios->gpios[count].name, "lid", GPIO_MAX_NAME_LENGTH);
count++;
/* Power: active low */
- gpios->gpios[count].port = GPIO_Q0_INDEX;
+ gpios->gpios[count].port = GPIO(Q0);
gpios->gpios[count].polarity = ACTIVE_LOW;
- gpios->gpios[count].value = gpio_get(GPIO(Q0));
+ gpios->gpios[count].value = -1;
strncpy((char *)gpios->gpios[count].name, "power",
GPIO_MAX_NAME_LENGTH);
count++;
@@ -69,6 +69,22 @@ void fill_lb_gpios(struct lb_gpios *gpios)
GPIO_MAX_NAME_LENGTH);
count++;
+ /* EC in RW: active high */
+ gpios->gpios[count].port = GPIO(U4);
+ gpios->gpios[count].polarity = ACTIVE_HIGH;
+ gpios->gpios[count].value = -1;
+ strncpy((char *)gpios->gpios[count].name, "EC in RW",
+ GPIO_MAX_NAME_LENGTH);
+ count++;
+
+ /* Reset: active low (output) */
+ gpios->gpios[count].port = GPIO(I5);
+ gpios->gpios[count].polarity = ACTIVE_LOW;
+ gpios->gpios[count].value = -1;
+ strncpy((char *)gpios->gpios[count].name, "reset",
+ GPIO_MAX_NAME_LENGTH);
+ count++;
+
gpios->size = sizeof(*gpios) + (count * sizeof(struct lb_gpio));
gpios->count = count;
diff --git a/src/mainboard/google/nyan_blaze/chromeos.c b/src/mainboard/google/nyan_blaze/chromeos.c
index 7718849fe8..4c72eabb64 100644
--- a/src/mainboard/google/nyan_blaze/chromeos.c
+++ b/src/mainboard/google/nyan_blaze/chromeos.c
@@ -35,7 +35,7 @@ void fill_lb_gpios(struct lb_gpios *gpios)
int count = 0;
/* Write Protect: active low */
- gpios->gpios[count].port = GPIO_R1_INDEX;
+ gpios->gpios[count].port = GPIO(R1);
gpios->gpios[count].polarity = ACTIVE_LOW;
gpios->gpios[count].value = gpio_get(GPIO(R1));
strncpy((char *)gpios->gpios[count].name, "write protect",
@@ -51,16 +51,16 @@ void fill_lb_gpios(struct lb_gpios *gpios)
count++;
/* Lid: active high */
- gpios->gpios[count].port = GPIO_R4_INDEX;
+ gpios->gpios[count].port = GPIO(R4);
gpios->gpios[count].polarity = ACTIVE_HIGH;
- gpios->gpios[count].value = gpio_get(GPIO(R4));
+ gpios->gpios[count].value = -1;
strncpy((char *)gpios->gpios[count].name, "lid", GPIO_MAX_NAME_LENGTH);
count++;
/* Power: active low */
- gpios->gpios[count].port = GPIO_Q0_INDEX;
+ gpios->gpios[count].port = GPIO(Q0);
gpios->gpios[count].polarity = ACTIVE_LOW;
- gpios->gpios[count].value = gpio_get(GPIO(Q0));
+ gpios->gpios[count].value = -1;
strncpy((char *)gpios->gpios[count].name, "power",
GPIO_MAX_NAME_LENGTH);
count++;
@@ -73,6 +73,22 @@ void fill_lb_gpios(struct lb_gpios *gpios)
GPIO_MAX_NAME_LENGTH);
count++;
+ /* EC in RW: active high */
+ gpios->gpios[count].port = GPIO(U4);
+ gpios->gpios[count].polarity = ACTIVE_HIGH;
+ gpios->gpios[count].value = -1;
+ strncpy((char *)gpios->gpios[count].name, "EC in RW",
+ GPIO_MAX_NAME_LENGTH);
+ count++;
+
+ /* Reset: active low (output) */
+ gpios->gpios[count].port = GPIO(I5);
+ gpios->gpios[count].polarity = ACTIVE_LOW;
+ gpios->gpios[count].value = -1;
+ strncpy((char *)gpios->gpios[count].name, "reset",
+ GPIO_MAX_NAME_LENGTH);
+ count++;
+
gpios->size = sizeof(*gpios) + (count * sizeof(struct lb_gpio));
gpios->count = count;
diff --git a/src/mainboard/google/rush/chromeos.c b/src/mainboard/google/rush/chromeos.c
index 1a017f5078..b4a7f8faab 100644
--- a/src/mainboard/google/rush/chromeos.c
+++ b/src/mainboard/google/rush/chromeos.c
@@ -30,7 +30,7 @@ void fill_lb_gpios(struct lb_gpios *gpios)
int count = 0;
/* Write Protect: active low */
- gpios->gpios[count].port = GPIO_R1_INDEX;
+ gpios->gpios[count].port = GPIO(R1);
gpios->gpios[count].polarity = ACTIVE_LOW;
gpios->gpios[count].value = gpio_get(GPIO(R1));
strncpy((char *)gpios->gpios[count].name, "write protect",
@@ -46,16 +46,16 @@ void fill_lb_gpios(struct lb_gpios *gpios)
count++;
/* Lid: active high */
- gpios->gpios[count].port = GPIO_R4_INDEX;
+ gpios->gpios[count].port = GPIO(R4);
gpios->gpios[count].polarity = ACTIVE_HIGH;
- gpios->gpios[count].value = 1;
+ gpios->gpios[count].value = -1;
strncpy((char *)gpios->gpios[count].name, "lid", GPIO_MAX_NAME_LENGTH);
count++;
/* Power: active low */
- gpios->gpios[count].port = GPIO_Q0_INDEX;
+ gpios->gpios[count].port = GPIO(Q0);
gpios->gpios[count].polarity = ACTIVE_LOW;
- gpios->gpios[count].value = 1;
+ gpios->gpios[count].value = -1;
strncpy((char *)gpios->gpios[count].name, "power",
GPIO_MAX_NAME_LENGTH);
count++;
@@ -68,6 +68,14 @@ void fill_lb_gpios(struct lb_gpios *gpios)
GPIO_MAX_NAME_LENGTH);
count++;
+ /* Reset: active low (output) */
+ gpios->gpios[count].port = GPIO(I5);
+ gpios->gpios[count].polarity = ACTIVE_LOW;
+ gpios->gpios[count].value = -1;
+ strncpy((char *)gpios->gpios[count].name, "reset",
+ GPIO_MAX_NAME_LENGTH);
+ count++;
+
gpios->size = sizeof(*gpios) + (count * sizeof(struct lb_gpio));
gpios->count = count;
diff --git a/src/mainboard/google/rush_ryu/chromeos.c b/src/mainboard/google/rush_ryu/chromeos.c
index 2fd9bb1048..6781b39954 100644
--- a/src/mainboard/google/rush_ryu/chromeos.c
+++ b/src/mainboard/google/rush_ryu/chromeos.c
@@ -40,7 +40,7 @@ void fill_lb_gpios(struct lb_gpios *gpios)
int count = 0;
/* Write Protect: active low */
- gpios->gpios[count].port = WRITE_PROTECT_L_INDEX;
+ gpios->gpios[count].port = WRITE_PROTECT_L;
gpios->gpios[count].polarity = ACTIVE_LOW;
gpios->gpios[count].value = gpio_get(WRITE_PROTECT_L);
strncpy((char *)gpios->gpios[count].name, "write protect",
@@ -58,9 +58,9 @@ void fill_lb_gpios(struct lb_gpios *gpios)
/* TODO(adurbin): add lid switch */
/* Power: active low / high depending on board id */
- gpios->gpios[count].port = POWER_BUTTON_INDEX;
+ gpios->gpios[count].port = POWER_BUTTON;
gpios->gpios[count].polarity = get_pwr_btn_polarity();
- gpios->gpios[count].value = gpio_get(POWER_BUTTON);
+ gpios->gpios[count].value = -1;
strncpy((char *)gpios->gpios[count].name, "power",
GPIO_MAX_NAME_LENGTH);
count++;
@@ -73,6 +73,22 @@ void fill_lb_gpios(struct lb_gpios *gpios)
GPIO_MAX_NAME_LENGTH);
count++;
+ /* EC in RW: active high */
+ gpios->gpios[count].port = EC_IN_RW;
+ gpios->gpios[count].polarity = ACTIVE_HIGH;
+ gpios->gpios[count].value = -1;
+ strncpy((char *)gpios->gpios[count].name, "EC in RW",
+ GPIO_MAX_NAME_LENGTH);
+ count++;
+
+ /* Reset: active low (output) */
+ gpios->gpios[count].port = AP_SYS_RESET_L;
+ gpios->gpios[count].polarity = ACTIVE_LOW;
+ gpios->gpios[count].value = -1;
+ strncpy((char *)gpios->gpios[count].name, "reset",
+ GPIO_MAX_NAME_LENGTH);
+ count++;
+
gpios->size = sizeof(*gpios) + (count * sizeof(struct lb_gpio));
gpios->count = count;
diff --git a/src/mainboard/google/rush_ryu/gpio.h b/src/mainboard/google/rush_ryu/gpio.h
index a813d42332..8fa7c3d07d 100644
--- a/src/mainboard/google/rush_ryu/gpio.h
+++ b/src/mainboard/google/rush_ryu/gpio.h
@@ -57,11 +57,11 @@ enum {
/* Write Protect */
SPI_1V8_WP_L = GPIO(R1),
WRITE_PROTECT_L = SPI_1V8_WP_L,
- WRITE_PROTECT_L_INDEX = GPIO_R1_INDEX,
/* Power button - Depending on board id, maybe active high / low */
BTN_AP_PWR = GPIO(Q0),
POWER_BUTTON = BTN_AP_PWR,
- POWER_BUTTON_INDEX = GPIO_Q0_INDEX,
+ /* EC in RW signal */
+ EC_IN_RW = GPIO(U4),
/* Panel related GPIOs */
LCD_EN = GPIO(H5),
diff --git a/src/mainboard/google/veyron_jerry/chromeos.c b/src/mainboard/google/veyron_jerry/chromeos.c
index 6e6a855edf..069b28b91a 100644
--- a/src/mainboard/google/veyron_jerry/chromeos.c
+++ b/src/mainboard/google/veyron_jerry/chromeos.c
@@ -25,10 +25,13 @@
#include <string.h>
#include <vendorcode/google/chromeos/chromeos.h>
+#include "board.h"
+
#define GPIO_WP GPIO(7, A, 6)
#define GPIO_LID GPIO(0, A, 6)
#define GPIO_POWER GPIO(0, A, 5)
#define GPIO_RECOVERY GPIO(0, B, 1)
+#define GPIO_ECINRW GPIO(0, A, 7)
void setup_chromeos_gpios(void)
{
@@ -61,14 +64,14 @@ void fill_lb_gpios(struct lb_gpios *gpios)
/* Lid: active high */
gpios->gpios[count].port = GPIO_LID.raw;
gpios->gpios[count].polarity = ACTIVE_HIGH;
- gpios->gpios[count].value = gpio_get(GPIO_LID);
+ gpios->gpios[count].value = -1;
strncpy((char *)gpios->gpios[count].name, "lid", GPIO_MAX_NAME_LENGTH);
count++;
/* Power:GPIO active high */
gpios->gpios[count].port = GPIO_POWER.raw;
gpios->gpios[count].polarity = ACTIVE_LOW;
- gpios->gpios[count].value = gpio_get(GPIO_POWER);
+ gpios->gpios[count].value = -1;
strncpy((char *)gpios->gpios[count].name, "power",
GPIO_MAX_NAME_LENGTH);
count++;
@@ -81,6 +84,22 @@ void fill_lb_gpios(struct lb_gpios *gpios)
GPIO_MAX_NAME_LENGTH);
count++;
+ /* EC in RW: GPIO active high */
+ gpios->gpios[count].port = GPIO_ECINRW.raw;
+ gpios->gpios[count].polarity = ACTIVE_HIGH;
+ gpios->gpios[count].value = -1;
+ strncpy((char *)gpios->gpios[count].name, "EC in RW",
+ GPIO_MAX_NAME_LENGTH);
+ count++;
+
+ /* Reset: GPIO active high (output) */
+ gpios->gpios[count].port = GPIO_RESET.raw;
+ gpios->gpios[count].polarity = ACTIVE_HIGH;
+ gpios->gpios[count].value = -1;
+ strncpy((char *)gpios->gpios[count].name, "reset",
+ GPIO_MAX_NAME_LENGTH);
+ count++;
+
gpios->size = sizeof(*gpios) + (count * sizeof(struct lb_gpio));
gpios->count = count;
diff --git a/src/mainboard/google/veyron_mighty/chromeos.c b/src/mainboard/google/veyron_mighty/chromeos.c
index 6e6a855edf..069b28b91a 100644
--- a/src/mainboard/google/veyron_mighty/chromeos.c
+++ b/src/mainboard/google/veyron_mighty/chromeos.c
@@ -25,10 +25,13 @@
#include <string.h>
#include <vendorcode/google/chromeos/chromeos.h>
+#include "board.h"
+
#define GPIO_WP GPIO(7, A, 6)
#define GPIO_LID GPIO(0, A, 6)
#define GPIO_POWER GPIO(0, A, 5)
#define GPIO_RECOVERY GPIO(0, B, 1)
+#define GPIO_ECINRW GPIO(0, A, 7)
void setup_chromeos_gpios(void)
{
@@ -61,14 +64,14 @@ void fill_lb_gpios(struct lb_gpios *gpios)
/* Lid: active high */
gpios->gpios[count].port = GPIO_LID.raw;
gpios->gpios[count].polarity = ACTIVE_HIGH;
- gpios->gpios[count].value = gpio_get(GPIO_LID);
+ gpios->gpios[count].value = -1;
strncpy((char *)gpios->gpios[count].name, "lid", GPIO_MAX_NAME_LENGTH);
count++;
/* Power:GPIO active high */
gpios->gpios[count].port = GPIO_POWER.raw;
gpios->gpios[count].polarity = ACTIVE_LOW;
- gpios->gpios[count].value = gpio_get(GPIO_POWER);
+ gpios->gpios[count].value = -1;
strncpy((char *)gpios->gpios[count].name, "power",
GPIO_MAX_NAME_LENGTH);
count++;
@@ -81,6 +84,22 @@ void fill_lb_gpios(struct lb_gpios *gpios)
GPIO_MAX_NAME_LENGTH);
count++;
+ /* EC in RW: GPIO active high */
+ gpios->gpios[count].port = GPIO_ECINRW.raw;
+ gpios->gpios[count].polarity = ACTIVE_HIGH;
+ gpios->gpios[count].value = -1;
+ strncpy((char *)gpios->gpios[count].name, "EC in RW",
+ GPIO_MAX_NAME_LENGTH);
+ count++;
+
+ /* Reset: GPIO active high (output) */
+ gpios->gpios[count].port = GPIO_RESET.raw;
+ gpios->gpios[count].polarity = ACTIVE_HIGH;
+ gpios->gpios[count].value = -1;
+ strncpy((char *)gpios->gpios[count].name, "reset",
+ GPIO_MAX_NAME_LENGTH);
+ count++;
+
gpios->size = sizeof(*gpios) + (count * sizeof(struct lb_gpio));
gpios->count = count;
diff --git a/src/mainboard/google/veyron_pinky/chromeos.c b/src/mainboard/google/veyron_pinky/chromeos.c
index 8cfad3edcd..83ca70b949 100644
--- a/src/mainboard/google/veyron_pinky/chromeos.c
+++ b/src/mainboard/google/veyron_pinky/chromeos.c
@@ -31,6 +31,7 @@
#define GPIO_LID (board_id() > 0 ? GPIO(0, A, 6) : GPIO(7, B, 5))
#define GPIO_POWER GPIO(0, A, 5)
#define GPIO_RECOVERY GPIO(0, B, 1)
+#define GPIO_ECINRW GPIO(0, A, 7)
void setup_chromeos_gpios(void)
{
@@ -63,7 +64,7 @@ void fill_lb_gpios(struct lb_gpios *gpios)
/* Lid: active high */
gpios->gpios[count].port = GPIO_LID.raw;
gpios->gpios[count].polarity = ACTIVE_HIGH;
- gpios->gpios[count].value = gpio_get(GPIO_LID);
+ gpios->gpios[count].value = -1;
strncpy((char *)gpios->gpios[count].name, "lid", GPIO_MAX_NAME_LENGTH);
count++;
@@ -71,7 +72,7 @@ void fill_lb_gpios(struct lb_gpios *gpios)
gpios->gpios[count].port = GPIO_POWER.raw;
gpios->gpios[count].polarity = board_id() > 1 ? ACTIVE_LOW :
ACTIVE_HIGH;
- gpios->gpios[count].value = gpio_get(GPIO_POWER);
+ gpios->gpios[count].value = -1;
strncpy((char *)gpios->gpios[count].name, "power",
GPIO_MAX_NAME_LENGTH);
count++;
@@ -84,6 +85,22 @@ void fill_lb_gpios(struct lb_gpios *gpios)
GPIO_MAX_NAME_LENGTH);
count++;
+ /* EC in RW: GPIO active high */
+ gpios->gpios[count].port = GPIO_ECINRW.raw;
+ gpios->gpios[count].polarity = ACTIVE_HIGH;
+ gpios->gpios[count].value = -1;
+ strncpy((char *)gpios->gpios[count].name, "EC in RW",
+ GPIO_MAX_NAME_LENGTH);
+ count++;
+
+ /* Reset: GPIO active high (output) */
+ gpios->gpios[count].port = GPIO_RESET.raw;
+ gpios->gpios[count].polarity = ACTIVE_HIGH;
+ gpios->gpios[count].value = -1;
+ strncpy((char *)gpios->gpios[count].name, "reset",
+ GPIO_MAX_NAME_LENGTH);
+ count++;
+
gpios->size = sizeof(*gpios) + (count * sizeof(struct lb_gpio));
gpios->count = count;