From 73c8abe4a1012e6475417c41b47a84d1021a184c Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Wed, 21 Jan 2015 15:28:07 -0800 Subject: [PATCH] veyron: Add "backlight" GPIO to coreboot table This patch adds a new "backlight" output GPIO to the coreboot table in order to avoid redundantly defining that GPIO in the payload. BRANCH=veyron BUG=chrome-os-partner:34713 TEST=Tested together with corresponding depthcharge CL. Change-Id: I69b3c7ac6be4b9723b6a0dfecef5e1c4ea681aff Signed-off-by: Julius Werner Reviewed-on: https://chromium-review.googlesource.com/242400 Tested-by: Lin Huang Reviewed-by: Aaron Durbin (cherry picked from commit 04ce4c23573cf926aeef3d817d3ab00835f897c7) Signed-off-by: Julius Werner Reviewed-on: https://chromium-review.googlesource.com/243121 --- src/mainboard/google/veyron_gus/board.h | 1 + src/mainboard/google/veyron_gus/chromeos.c | 8 ++++++++ src/mainboard/google/veyron_gus/mainboard.c | 2 +- src/mainboard/google/veyron_jaq/board.h | 1 + src/mainboard/google/veyron_jaq/chromeos.c | 8 ++++++++ src/mainboard/google/veyron_jaq/mainboard.c | 2 +- src/mainboard/google/veyron_jerry/board.h | 1 + src/mainboard/google/veyron_jerry/chromeos.c | 8 ++++++++ src/mainboard/google/veyron_jerry/mainboard.c | 6 +++--- src/mainboard/google/veyron_mighty/board.h | 1 + src/mainboard/google/veyron_mighty/chromeos.c | 8 ++++++++ src/mainboard/google/veyron_mighty/mainboard.c | 6 +++--- src/mainboard/google/veyron_minnie/board.h | 1 + src/mainboard/google/veyron_minnie/chromeos.c | 8 ++++++++ src/mainboard/google/veyron_minnie/mainboard.c | 2 +- src/mainboard/google/veyron_pinky/board.h | 1 + src/mainboard/google/veyron_pinky/chromeos.c | 8 ++++++++ src/mainboard/google/veyron_pinky/mainboard.c | 6 +++--- src/mainboard/google/veyron_speedy/board.h | 1 + src/mainboard/google/veyron_speedy/chromeos.c | 8 ++++++++ src/mainboard/google/veyron_speedy/mainboard.c | 6 +++--- 21 files changed, 78 insertions(+), 15 deletions(-) diff --git a/src/mainboard/google/veyron_gus/board.h b/src/mainboard/google/veyron_gus/board.h index 25d4859d92..fa40d60353 100644 --- a/src/mainboard/google/veyron_gus/board.h +++ b/src/mainboard/google/veyron_gus/board.h @@ -23,6 +23,7 @@ #include #include +#define GPIO_BACKLIGHT GPIO(7, A, 0) #define GPIO_RESET GPIO(0, B, 5) void setup_chromeos_gpios(void); diff --git a/src/mainboard/google/veyron_gus/chromeos.c b/src/mainboard/google/veyron_gus/chromeos.c index 069b28b91a..d509a01653 100644 --- a/src/mainboard/google/veyron_gus/chromeos.c +++ b/src/mainboard/google/veyron_gus/chromeos.c @@ -100,6 +100,14 @@ void fill_lb_gpios(struct lb_gpios *gpios) GPIO_MAX_NAME_LENGTH); count++; + /* Backlight: GPIO active high (output) */ + gpios->gpios[count].port = GPIO_BACKLIGHT.raw; + gpios->gpios[count].polarity = ACTIVE_HIGH; + gpios->gpios[count].value = -1; + strncpy((char *)gpios->gpios[count].name, "backlight", + GPIO_MAX_NAME_LENGTH); + count++; + gpios->size = sizeof(*gpios) + (count * sizeof(struct lb_gpio)); gpios->count = count; diff --git a/src/mainboard/google/veyron_gus/mainboard.c b/src/mainboard/google/veyron_gus/mainboard.c index e1b17fc224..c623eec43b 100644 --- a/src/mainboard/google/veyron_gus/mainboard.c +++ b/src/mainboard/google/veyron_gus/mainboard.c @@ -139,5 +139,5 @@ void mainboard_power_on_backlight(void) mdelay(10); gpio_output(GPIO(7, A, 2), 1); /* LCD_BL */ mdelay(10); - gpio_output(GPIO(7, A, 0), 1); /* BL_EN */ + gpio_output(GPIO_BACKLIGHT, 1); /* BL_EN */ } diff --git a/src/mainboard/google/veyron_jaq/board.h b/src/mainboard/google/veyron_jaq/board.h index 12f4a048ec..a8667ba6d0 100644 --- a/src/mainboard/google/veyron_jaq/board.h +++ b/src/mainboard/google/veyron_jaq/board.h @@ -23,6 +23,7 @@ #include #include +#define GPIO_BACKLIGHT GPIO(7, A, 0) #define GPIO_RESET GPIO(0, B, 5) void setup_chromeos_gpios(void); diff --git a/src/mainboard/google/veyron_jaq/chromeos.c b/src/mainboard/google/veyron_jaq/chromeos.c index 069b28b91a..d509a01653 100644 --- a/src/mainboard/google/veyron_jaq/chromeos.c +++ b/src/mainboard/google/veyron_jaq/chromeos.c @@ -100,6 +100,14 @@ void fill_lb_gpios(struct lb_gpios *gpios) GPIO_MAX_NAME_LENGTH); count++; + /* Backlight: GPIO active high (output) */ + gpios->gpios[count].port = GPIO_BACKLIGHT.raw; + gpios->gpios[count].polarity = ACTIVE_HIGH; + gpios->gpios[count].value = -1; + strncpy((char *)gpios->gpios[count].name, "backlight", + GPIO_MAX_NAME_LENGTH); + count++; + gpios->size = sizeof(*gpios) + (count * sizeof(struct lb_gpio)); gpios->count = count; diff --git a/src/mainboard/google/veyron_jaq/mainboard.c b/src/mainboard/google/veyron_jaq/mainboard.c index e1b17fc224..c623eec43b 100644 --- a/src/mainboard/google/veyron_jaq/mainboard.c +++ b/src/mainboard/google/veyron_jaq/mainboard.c @@ -139,5 +139,5 @@ void mainboard_power_on_backlight(void) mdelay(10); gpio_output(GPIO(7, A, 2), 1); /* LCD_BL */ mdelay(10); - gpio_output(GPIO(7, A, 0), 1); /* BL_EN */ + gpio_output(GPIO_BACKLIGHT, 1); /* BL_EN */ } diff --git a/src/mainboard/google/veyron_jerry/board.h b/src/mainboard/google/veyron_jerry/board.h index 6aeca22d29..2f8a341d4f 100644 --- a/src/mainboard/google/veyron_jerry/board.h +++ b/src/mainboard/google/veyron_jerry/board.h @@ -23,6 +23,7 @@ #include #include +#define GPIO_BACKLIGHT GPIO(7, A, 0) #define GPIO_RESET GPIO(0, B, 5) void setup_chromeos_gpios(void); diff --git a/src/mainboard/google/veyron_jerry/chromeos.c b/src/mainboard/google/veyron_jerry/chromeos.c index 069b28b91a..d509a01653 100644 --- a/src/mainboard/google/veyron_jerry/chromeos.c +++ b/src/mainboard/google/veyron_jerry/chromeos.c @@ -100,6 +100,14 @@ void fill_lb_gpios(struct lb_gpios *gpios) GPIO_MAX_NAME_LENGTH); count++; + /* Backlight: GPIO active high (output) */ + gpios->gpios[count].port = GPIO_BACKLIGHT.raw; + gpios->gpios[count].polarity = ACTIVE_HIGH; + gpios->gpios[count].value = -1; + strncpy((char *)gpios->gpios[count].name, "backlight", + GPIO_MAX_NAME_LENGTH); + count++; + gpios->size = sizeof(*gpios) + (count * sizeof(struct lb_gpio)); gpios->count = count; diff --git a/src/mainboard/google/veyron_jerry/mainboard.c b/src/mainboard/google/veyron_jerry/mainboard.c index d49e4d06e3..0d814d5d7a 100644 --- a/src/mainboard/google/veyron_jerry/mainboard.c +++ b/src/mainboard/google/veyron_jerry/mainboard.c @@ -146,17 +146,17 @@ void mainboard_power_on_backlight(void) { switch (board_id()) { case 2: - gpio_output(GPIO(7, A, 0), 0); /* BL_EN */ + gpio_output(GPIO_BACKLIGHT, 0); /* BL_EN */ gpio_output(GPIO(7, A, 2), 1); /* LCD_BL */ mdelay(10); - gpio_output(GPIO(7, A, 0), 1); /* BL_EN */ + gpio_output(GPIO_BACKLIGHT, 1); /* BL_EN */ break; default: gpio_output(GPIO(2, B, 4), 1); /* BL_PWR_EN */ mdelay(10); gpio_output(GPIO(7, A, 2), 1); /* LCD_BL */ mdelay(10); - gpio_output(GPIO(7, A, 0), 1); /* BL_EN */ + gpio_output(GPIO_BACKLIGHT, 1); /* BL_EN */ break; } } diff --git a/src/mainboard/google/veyron_mighty/board.h b/src/mainboard/google/veyron_mighty/board.h index 9c2fdc7c7e..2ca1a41392 100644 --- a/src/mainboard/google/veyron_mighty/board.h +++ b/src/mainboard/google/veyron_mighty/board.h @@ -23,6 +23,7 @@ #include #include +#define GPIO_BACKLIGHT GPIO(7, A, 0) #define GPIO_RESET GPIO(0, B, 5) void setup_chromeos_gpios(void); diff --git a/src/mainboard/google/veyron_mighty/chromeos.c b/src/mainboard/google/veyron_mighty/chromeos.c index 069b28b91a..d509a01653 100644 --- a/src/mainboard/google/veyron_mighty/chromeos.c +++ b/src/mainboard/google/veyron_mighty/chromeos.c @@ -100,6 +100,14 @@ void fill_lb_gpios(struct lb_gpios *gpios) GPIO_MAX_NAME_LENGTH); count++; + /* Backlight: GPIO active high (output) */ + gpios->gpios[count].port = GPIO_BACKLIGHT.raw; + gpios->gpios[count].polarity = ACTIVE_HIGH; + gpios->gpios[count].value = -1; + strncpy((char *)gpios->gpios[count].name, "backlight", + 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/mainboard.c b/src/mainboard/google/veyron_mighty/mainboard.c index 7eb3f43772..2807b7bb00 100644 --- a/src/mainboard/google/veyron_mighty/mainboard.c +++ b/src/mainboard/google/veyron_mighty/mainboard.c @@ -146,17 +146,17 @@ void mainboard_power_on_backlight(void) { switch (board_id()) { case 0: - gpio_output(GPIO(7, A, 0), 0); /* BL_EN */ + gpio_output(GPIO_BACKLIGHT, 0); /* BL_EN */ gpio_output(GPIO(7, A, 2), 1); /* LCD_BL */ mdelay(10); - gpio_output(GPIO(7, A, 0), 1); /* BL_EN */ + gpio_output(GPIO_BACKLIGHT, 1); /* BL_EN */ break; default: gpio_output(GPIO(2, B, 4), 1); /* BL_PWR_EN */ mdelay(10); gpio_output(GPIO(7, A, 2), 1); /* LCD_BL */ mdelay(10); - gpio_output(GPIO(7, A, 0), 1); /* BL_EN */ + gpio_output(GPIO_BACKLIGHT, 1); /* BL_EN */ break; } } diff --git a/src/mainboard/google/veyron_minnie/board.h b/src/mainboard/google/veyron_minnie/board.h index fad9779e2c..6c51b42d6e 100644 --- a/src/mainboard/google/veyron_minnie/board.h +++ b/src/mainboard/google/veyron_minnie/board.h @@ -23,6 +23,7 @@ #include #include +#define GPIO_BACKLIGHT GPIO(7, A, 0) #define GPIO_RESET GPIO(0, B, 5) void setup_chromeos_gpios(void); diff --git a/src/mainboard/google/veyron_minnie/chromeos.c b/src/mainboard/google/veyron_minnie/chromeos.c index 069b28b91a..d509a01653 100644 --- a/src/mainboard/google/veyron_minnie/chromeos.c +++ b/src/mainboard/google/veyron_minnie/chromeos.c @@ -100,6 +100,14 @@ void fill_lb_gpios(struct lb_gpios *gpios) GPIO_MAX_NAME_LENGTH); count++; + /* Backlight: GPIO active high (output) */ + gpios->gpios[count].port = GPIO_BACKLIGHT.raw; + gpios->gpios[count].polarity = ACTIVE_HIGH; + gpios->gpios[count].value = -1; + strncpy((char *)gpios->gpios[count].name, "backlight", + GPIO_MAX_NAME_LENGTH); + count++; + gpios->size = sizeof(*gpios) + (count * sizeof(struct lb_gpio)); gpios->count = count; diff --git a/src/mainboard/google/veyron_minnie/mainboard.c b/src/mainboard/google/veyron_minnie/mainboard.c index e1b17fc224..c623eec43b 100644 --- a/src/mainboard/google/veyron_minnie/mainboard.c +++ b/src/mainboard/google/veyron_minnie/mainboard.c @@ -139,5 +139,5 @@ void mainboard_power_on_backlight(void) mdelay(10); gpio_output(GPIO(7, A, 2), 1); /* LCD_BL */ mdelay(10); - gpio_output(GPIO(7, A, 0), 1); /* BL_EN */ + gpio_output(GPIO_BACKLIGHT, 1); /* BL_EN */ } diff --git a/src/mainboard/google/veyron_pinky/board.h b/src/mainboard/google/veyron_pinky/board.h index ae441fb4e3..45590e7a57 100644 --- a/src/mainboard/google/veyron_pinky/board.h +++ b/src/mainboard/google/veyron_pinky/board.h @@ -23,6 +23,7 @@ #include #include +#define GPIO_BACKLIGHT GPIO(7, A, 0) #define GPIO_RESET (board_id() > 0 ? GPIO(0, B, 5) : GPIO(0, B, 2)) void setup_chromeos_gpios(void); diff --git a/src/mainboard/google/veyron_pinky/chromeos.c b/src/mainboard/google/veyron_pinky/chromeos.c index 83ca70b949..dd781aae58 100644 --- a/src/mainboard/google/veyron_pinky/chromeos.c +++ b/src/mainboard/google/veyron_pinky/chromeos.c @@ -101,6 +101,14 @@ void fill_lb_gpios(struct lb_gpios *gpios) GPIO_MAX_NAME_LENGTH); count++; + /* Backlight: GPIO active high (output) */ + gpios->gpios[count].port = GPIO_BACKLIGHT.raw; + gpios->gpios[count].polarity = ACTIVE_HIGH; + gpios->gpios[count].value = -1; + strncpy((char *)gpios->gpios[count].name, "backlight", + 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/mainboard.c b/src/mainboard/google/veyron_pinky/mainboard.c index 2500250b53..fd0c60df29 100644 --- a/src/mainboard/google/veyron_pinky/mainboard.c +++ b/src/mainboard/google/veyron_pinky/mainboard.c @@ -192,17 +192,17 @@ void mainboard_power_on_backlight(void) case 0: case 1: case 2: - gpio_output(GPIO(7, A, 0), 0); /* BL_EN */ + gpio_output(GPIO_BACKLIGHT, 0); /* BL_EN */ gpio_output(GPIO(7, A, 2), 1); /* LCD_BL */ mdelay(10); - gpio_output(GPIO(7, A, 0), 1); /* BL_EN */ + gpio_output(GPIO_BACKLIGHT, 1); /* BL_EN */ break; default: gpio_output(GPIO(2, B, 4), 1); /* BL_PWR_EN */ mdelay(10); gpio_output(GPIO(7, A, 2), 1); /* LCD_BL */ mdelay(10); - gpio_output(GPIO(7, A, 0), 1); /* BL_EN */ + gpio_output(GPIO_BACKLIGHT, 1); /* BL_EN */ break; } } diff --git a/src/mainboard/google/veyron_speedy/board.h b/src/mainboard/google/veyron_speedy/board.h index 3366760196..f98854e168 100644 --- a/src/mainboard/google/veyron_speedy/board.h +++ b/src/mainboard/google/veyron_speedy/board.h @@ -23,6 +23,7 @@ #include #include +#define GPIO_BACKLIGHT GPIO(7, A, 0) #define GPIO_RESET GPIO(0, B, 5) void setup_chromeos_gpios(void); diff --git a/src/mainboard/google/veyron_speedy/chromeos.c b/src/mainboard/google/veyron_speedy/chromeos.c index 069b28b91a..d509a01653 100644 --- a/src/mainboard/google/veyron_speedy/chromeos.c +++ b/src/mainboard/google/veyron_speedy/chromeos.c @@ -100,6 +100,14 @@ void fill_lb_gpios(struct lb_gpios *gpios) GPIO_MAX_NAME_LENGTH); count++; + /* Backlight: GPIO active high (output) */ + gpios->gpios[count].port = GPIO_BACKLIGHT.raw; + gpios->gpios[count].polarity = ACTIVE_HIGH; + gpios->gpios[count].value = -1; + strncpy((char *)gpios->gpios[count].name, "backlight", + GPIO_MAX_NAME_LENGTH); + count++; + gpios->size = sizeof(*gpios) + (count * sizeof(struct lb_gpio)); gpios->count = count; diff --git a/src/mainboard/google/veyron_speedy/mainboard.c b/src/mainboard/google/veyron_speedy/mainboard.c index 7eb3f43772..2807b7bb00 100644 --- a/src/mainboard/google/veyron_speedy/mainboard.c +++ b/src/mainboard/google/veyron_speedy/mainboard.c @@ -146,17 +146,17 @@ void mainboard_power_on_backlight(void) { switch (board_id()) { case 0: - gpio_output(GPIO(7, A, 0), 0); /* BL_EN */ + gpio_output(GPIO_BACKLIGHT, 0); /* BL_EN */ gpio_output(GPIO(7, A, 2), 1); /* LCD_BL */ mdelay(10); - gpio_output(GPIO(7, A, 0), 1); /* BL_EN */ + gpio_output(GPIO_BACKLIGHT, 1); /* BL_EN */ break; default: gpio_output(GPIO(2, B, 4), 1); /* BL_PWR_EN */ mdelay(10); gpio_output(GPIO(7, A, 2), 1); /* LCD_BL */ mdelay(10); - gpio_output(GPIO(7, A, 0), 1); /* BL_EN */ + gpio_output(GPIO_BACKLIGHT, 1); /* BL_EN */ break; } }