mb/google/brya/var/omnigul: Modify NVMe and UFS Storage support
[coreboot.git] / src / mainboard / amd / birman / ec.c
blob3775ef5a2a27e5b884d63dc00a1dba961895c486
1 /* SPDX-License-Identifier: GPL-2.0-only */
3 /* TODO: Update for birman */
5 #include <ec/acpi/ec.h>
6 #include "ec.h"
8 #define BIRMAN_EC_CMD 0x666
9 #define BIRMAN_EC_DATA 0x662
11 #define EC_GPIO_3_ADDR 0xA3
12 #define EC_GPIO_LOM_RESET_AUX BIT(1)
14 #define EC_GPIO_7_ADDR 0xA7
15 #define EC_GPIO_DT_PWREN BIT(2)
16 #define EC_GPIO_WWAN_MODULE_RST BIT(5)
18 #define EC_GPIO_8_ADDR 0xA8
19 #define EC_GPIO_SMBUS0_EN BIT(0)
21 #define EC_GPIO_A_ADDR 0xAA
22 #define EC_GPIO_WWAN_PWREN BIT(3)
23 #define EC_GPIO_M2_SSD0_PWREN BIT(6)
24 #define EC_GPIO_LOM_PWREN BIT(7)
26 #define EC_GPIO_C_ADDR 0xAC
27 #define EC_GPIO_DT_N_WLAN_SW BIT(1)
28 #define EC_GPIO_MP2_SEL BIT(2)
29 #define EC_GPIO_WWAN_N_LOM_SW BIT(3)
31 #define EC_SW02_ADDR 0xB7
32 #define EC_SW02_MS BIT(7)
34 static void configure_ec_gpio(void)
36 uint8_t tmp;
38 tmp = ec_read(EC_GPIO_3_ADDR);
39 tmp |= EC_GPIO_LOM_RESET_AUX;
40 ec_write(EC_GPIO_3_ADDR, tmp);
42 tmp = ec_read(EC_GPIO_7_ADDR);
43 tmp |= EC_GPIO_WWAN_MODULE_RST | EC_GPIO_DT_PWREN;
44 ec_write(EC_GPIO_7_ADDR, tmp);
46 tmp = ec_read(EC_GPIO_8_ADDR);
47 tmp |= EC_GPIO_SMBUS0_EN;
48 ec_write(EC_GPIO_8_ADDR, tmp);
50 tmp = ec_read(EC_GPIO_A_ADDR);
51 tmp |= EC_GPIO_M2_SSD0_PWREN | EC_GPIO_LOM_PWREN | EC_GPIO_WWAN_PWREN;
52 ec_write(EC_GPIO_A_ADDR, tmp);
54 tmp = ec_read(EC_GPIO_C_ADDR);
55 tmp |= EC_GPIO_WWAN_N_LOM_SW | EC_GPIO_MP2_SEL | EC_GPIO_DT_N_WLAN_SW;
56 ec_write(EC_GPIO_C_ADDR, tmp);
58 tmp = ec_read(EC_SW02_ADDR);
59 tmp |= EC_SW02_MS;
60 ec_write(EC_SW02_ADDR, tmp);
63 void birman_ec_init(void)
65 ec_set_ports(BIRMAN_EC_CMD, BIRMAN_EC_DATA);
66 configure_ec_gpio();