blob: d2dd104e89f5eaaab6927d0ee473985a09590402 [file] [log] [blame]
Raul E Rangelb3c41322020-05-20 14:07:41 -06001/* SPDX-License-Identifier: GPL-2.0-or-later */
2
3#include <baseboard/gpio.h>
4#include <baseboard/variants.h>
5#include <boardid.h>
6#include <gpio.h>
7#include <soc/gpio.h>
8#include <ec/google/chromeec/ec.h>
Furquan Shaikhda459c42020-06-18 01:34:48 -07009
10static const struct soc_amd_gpio ezkinil_bid1_gpio_set_stage_ram[] = {
Josie Nordrum4cc87d42020-08-19 15:52:42 -070011 /* PEN_DETECT_ODL - Not connected */
12 PAD_NC(GPIO_4),
13 /* PEN_POWER_EN - Not connected */
14 PAD_NC(GPIO_5),
Furquan Shaikhda459c42020-06-18 01:34:48 -070015 /* DMIC_SEL */
16 PAD_GPO(GPIO_13, LOW), // Select Camera 1 Dmic
Raul E Rangelb3c41322020-05-20 14:07:41 -060017 /* USB_OC4_L - USB_A1 */
Furquan Shaikhf6b2e6f2020-07-17 15:30:47 -070018 PAD_NF(GPIO_14, USB_OC4_L, PULL_NONE),
Raul E Rangelb3c41322020-05-20 14:07:41 -060019 /* USB_OC2_L - USB A0 */
Furquan Shaikhf6b2e6f2020-07-17 15:30:47 -070020 PAD_NF(GPIO_18, USB_OC2_L, PULL_NONE),
Furquan Shaikh65e11172020-07-21 21:51:27 -070021 /* EN_PWR_WIFI */
22 PAD_GPO(GPIO_29, HIGH),
Furquan Shaikhda459c42020-06-18 01:34:48 -070023 /* EN_PWR_TOUCHPAD_PS2 */
24 PAD_GPO(GPIO_67, HIGH),
25 /* MST_GPIO_2 (Fw Update HDMI hub) */
26 PAD_GPI(GPIO_86, PULL_NONE),
Furquan Shaikh79dba4a2020-08-04 17:16:33 -070027 /* EN_DEV_BEEP_L */
28 PAD_GPO(GPIO_89, HIGH),
Furquan Shaikhda459c42020-06-18 01:34:48 -070029 /* MST_GPIO_3 (Fw Update HDMI hub) */
30 PAD_GPI(GPIO_90, PULL_NONE),
Furquan Shaikhcc6c41f2020-08-04 20:16:55 -070031 /* USI_RESET */
32 PAD_GPO(GPIO_140, HIGH),
Raul E Rangelb3c41322020-05-20 14:07:41 -060033};
Furquan Shaikhda459c42020-06-18 01:34:48 -070034
35static const struct soc_amd_gpio ezkinil_bid2_gpio_set_stage_ram[] = {
Josie Nordrum4cc87d42020-08-19 15:52:42 -070036 /* PEN_DETECT_ODL - Not connected */
37 PAD_NC(GPIO_4),
38 /* PEN_POWER_EN - Not connected */
39 PAD_NC(GPIO_5),
Furquan Shaikhda459c42020-06-18 01:34:48 -070040 /* FPMCU_RST_L Change NC */
Furquan Shaikhf6b2e6f2020-07-17 15:30:47 -070041 PAD_NC(GPIO_11),
Furquan Shaikhda459c42020-06-18 01:34:48 -070042 /* DMIC_SEL */
43 PAD_GPO(GPIO_13, LOW), // Select Camera 1 Dmic
Furquan Shaikh65e11172020-07-21 21:51:27 -070044 /* EN_PWR_WIFI */
45 PAD_GPO(GPIO_29, HIGH),
Furquan Shaikhda459c42020-06-18 01:34:48 -070046 /* EN_PWR_TOUCHPAD_PS2 */
47 PAD_GPO(GPIO_67, HIGH),
48 /* FPMCU_BOOT0 Change NC */
Furquan Shaikhf6b2e6f2020-07-17 15:30:47 -070049 PAD_NC(GPIO_69),
Furquan Shaikhda459c42020-06-18 01:34:48 -070050 /* MST_GPIO_2 (Fw Update HDMI hub) Change NC */
Furquan Shaikhf6b2e6f2020-07-17 15:30:47 -070051 PAD_NC(GPIO_86),
Furquan Shaikh79dba4a2020-08-04 17:16:33 -070052 /* EN_DEV_BEEP_L */
53 PAD_GPO(GPIO_89, HIGH),
Furquan Shaikh5474f8e2020-08-05 14:54:39 -070054 /* TP */
55 PAD_NC(GPIO_90),
Furquan Shaikhcc6c41f2020-08-04 20:16:55 -070056 /* USI_RESET */
57 PAD_GPO(GPIO_140, HIGH),
Furquan Shaikhda459c42020-06-18 01:34:48 -070058};
59
60static const struct soc_amd_gpio ezkinil_bid3_gpio_set_stage_ram[] = {
Josie Nordrum4cc87d42020-08-19 15:52:42 -070061 /* PEN_DETECT_ODL - Not connected */
62 PAD_NC(GPIO_4),
63 /* PEN_POWER_EN - Not connected */
64 PAD_NC(GPIO_5),
Furquan Shaikhda459c42020-06-18 01:34:48 -070065 /* FPMCU_RST_L Change NC */
Furquan Shaikhf6b2e6f2020-07-17 15:30:47 -070066 PAD_NC(GPIO_11),
Furquan Shaikhda459c42020-06-18 01:34:48 -070067 /* FPMCU_BOOT0 Change NC */
Furquan Shaikhf6b2e6f2020-07-17 15:30:47 -070068 PAD_NC(GPIO_69),
Furquan Shaikh79dba4a2020-08-04 17:16:33 -070069 /* EN_DEV_BEEP_L */
70 PAD_GPO(GPIO_89, HIGH),
Furquan Shaikhcc6c41f2020-08-04 20:16:55 -070071 /* USI_RESET */
72 PAD_GPO(GPIO_140, HIGH),
Furquan Shaikhda459c42020-06-18 01:34:48 -070073};
74
Raul E Rangelb3c41322020-05-20 14:07:41 -060075const struct soc_amd_gpio *variant_override_gpio_table(size_t *size)
76{
77 uint32_t board_version;
78
79 /*
80 * If board version cannot be read, assume that this is an older revision of the board
81 * and so apply overrides. If board version is provided by the EC, then apply overrides
82 * if version < 2.
83 */
Eric Laif209b182020-10-20 02:44:53 +080084 if (google_chromeec_cbi_get_board_version(&board_version) != 0)
Raul E Rangelb3c41322020-05-20 14:07:41 -060085 board_version = 1;
86
87 if (board_version <= 1) {
Furquan Shaikhda459c42020-06-18 01:34:48 -070088 *size = ARRAY_SIZE(ezkinil_bid1_gpio_set_stage_ram);
89 return ezkinil_bid1_gpio_set_stage_ram;
90 } else if (board_version == 2) {
91 *size = ARRAY_SIZE(ezkinil_bid2_gpio_set_stage_ram);
92 return ezkinil_bid2_gpio_set_stage_ram;
Raul E Rangelb3c41322020-05-20 14:07:41 -060093 }
94
Furquan Shaikhda459c42020-06-18 01:34:48 -070095 *size = ARRAY_SIZE(ezkinil_bid3_gpio_set_stage_ram);
96 return ezkinil_bid3_gpio_set_stage_ram;
Raul E Rangelb3c41322020-05-20 14:07:41 -060097}