coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
ec.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <ec/acpi/ec.h>
4 #include "ec.h"
5 
6 #define CHAUSIE_EC_CMD 0x666
7 #define CHAUSIE_EC_DATA 0x662
8 
9 #define EC_GPIO_3_ADDR 0xA3
10 #define EC_GPIO_LOM_RESET_AUX (1 << 1)
11 
12 #define EC_GPIO_7_ADDR 0xA7
13 #define EC_GPIO_DT_PWREN (1 << 2)
14 #define EC_GPIO_WWAN_MODULE_RST (1 << 5)
15 
16 #define EC_GPIO_8_ADDR 0xA8
17 #define EC_GPIO_SMBUS0_EN (1 << 0)
18 
19 #define EC_GPIO_A_ADDR 0xAA
20 #define EC_GPIO_WWAN_PWREN (1 << 3)
21 #define EC_GPIO_M2_SSD0_PWREN (1 << 6)
22 #define EC_GPIO_LOM_PWREN (1 << 7)
23 
24 #define EC_GPIO_C_ADDR 0xAC
25 #define EC_GPIO_DT_N_WLAN_SW (1 << 1)
26 #define EC_GPIO_MP2_SEL (1 << 2)
27 #define EC_GPIO_WWAN_N_LOM_SW (1 << 3)
28 
29 static void configure_ec_gpio(void)
30 {
31  uint8_t tmp;
32 
33  tmp = ec_read(EC_GPIO_3_ADDR);
34  tmp |= EC_GPIO_LOM_RESET_AUX;
36 
37  tmp = ec_read(EC_GPIO_7_ADDR);
40 
41  tmp = ec_read(EC_GPIO_8_ADDR);
42  tmp |= EC_GPIO_SMBUS0_EN;
44 
45  tmp = ec_read(EC_GPIO_A_ADDR);
48 
49  tmp = ec_read(EC_GPIO_C_ADDR);
52 }
53 
54 void chausie_ec_init(void)
55 {
58 }
u8 ec_read(u8 addr)
Definition: ec.c:107
void ec_set_ports(u16 cmd_reg, u16 data_reg)
Definition: ec.c:143
int ec_write(u8 addr, u8 data)
Definition: ec.c:115
#define EC_GPIO_8_ADDR
Definition: ec.c:16
#define EC_GPIO_WWAN_MODULE_RST
Definition: ec.c:14
#define EC_GPIO_WWAN_N_LOM_SW
Definition: ec.c:27
#define EC_GPIO_7_ADDR
Definition: ec.c:12
#define EC_GPIO_SMBUS0_EN
Definition: ec.c:17
#define CHAUSIE_EC_DATA
Definition: ec.c:7
#define EC_GPIO_M2_SSD0_PWREN
Definition: ec.c:21
#define CHAUSIE_EC_CMD
Definition: ec.c:6
#define EC_GPIO_WWAN_PWREN
Definition: ec.c:20
#define EC_GPIO_DT_N_WLAN_SW
Definition: ec.c:25
#define EC_GPIO_LOM_PWREN
Definition: ec.c:22
#define EC_GPIO_A_ADDR
Definition: ec.c:19
#define EC_GPIO_LOM_RESET_AUX
Definition: ec.c:10
void chausie_ec_init(void)
Definition: ec.c:54
static void configure_ec_gpio(void)
Definition: ec.c:29
#define EC_GPIO_C_ADDR
Definition: ec.c:24
#define EC_GPIO_3_ADDR
Definition: ec.c:9
#define EC_GPIO_MP2_SEL
Definition: ec.c:26
#define EC_GPIO_DT_PWREN
Definition: ec.c:13
unsigned char uint8_t
Definition: stdint.h:8