summaryrefslogtreecommitdiff
path: root/board/adlrvpp_mchp1521/board.h
blob: 645bfc0598af14c28638fbf98d3cd816ffbc0f7b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
/* Copyright 2021 The ChromiumOS Authors
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

/* Intel ADLRVP-P-DDR4-MEC1521 board-specific configuration */

#ifndef __CROS_EC_BOARD_H
#define __CROS_EC_BOARD_H

/* Microchip EC variant */
#define VARIANT_INTELRVP_EC_MCHP

/* UART for EC console */
#undef CONFIG_UART_CONSOLE
#define CONFIG_UART_CONSOLE 2

#include "adlrvp.h"

#undef CONFIG_CMD_ADC
#undef CONFIG_CMD_APTHROTTLE
#undef CONFIG_CMD_BATTFAKE
#undef CONFIG_CMD_GETTIME

/* Enable LTO */
#define CONFIG_LTO

/*
 * Macros for GPIO signals used in common code that don't match the
 * schematic names. Signal names in gpio.inc match the schematic and are
 * then redefined here to so it's more clear which signal is being used for
 * which purpose.
 */
/* Power sequencing */
#define GPIO_EC_SPI_OE_N GPIO_EC_PCH_SPI_OE_N
#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_ALL_SYS_PWRGD
#define GPIO_PG_EC_RSMRST_ODL GPIO_RSMRST_PWRGD_EC_N
#define GPIO_PCH_SLP_S0_L GPIO_PM_SLP_S0_R_N
#define GPIO_PG_EC_DSW_PWROK GPIO_EC_TRACE_DATA_2
#define GPIO_VCCST_PWRGD GPIO_EC_TRACE_DATA_3
#define GPIO_SLP_SUS_L GPIO_PM_SLP_SUS_N
#define GPIO_SYS_RESET_L GPIO_DG2_PRESENT
#define GPIO_PCH_RSMRST_L GPIO_PM_RSMRST_R
#define GPIO_PCH_PWRBTN_L GPIO_PM_PWRBTN_N_R
#define GPIO_EN_PP3300_A GPIO_EC_DS3_R
#define GPIO_SYS_PWROK_EC GPIO_SYS_PWROK_EC_R
#define GPIO_PCH_DSW_PWROK GPIO_EC_TRACE_DATA_1

/* Buttons */
#define GPIO_LID_OPEN GPIO_SMC_LID
#define GPIO_VOLUME_UP_L GPIO_VOL_UP_EC
#define GPIO_VOLUME_DOWN_L GPIO_VOL_DOWN_EC
#define GPIO_POWER_BUTTON_L GPIO_PWRBTN_EC_IN_N

/* Sensors */
#define GPIO_TABLET_MODE_L GPIO_EC_SLATEMODE_HALLOUT_SNSR_R
#define GPIO_CPU_PROCHOT GPIO_PROCHOT_EC_R

/* AC & Battery */
#define GPIO_DC_JACK_PRESENT GPIO_STD_ADP_PRSNT_EC
#define GPIO_AC_PRESENT GPIO_BC_ACOK_EC_IN
#define CONFIG_BATTERY_PRESENT_GPIO GPIO_BATT_ID_R

/* eSPI/Host communication */
#define GPIO_ESPI_RESET_L GPIO_ESPI_RST_EC_R_N
#define GPIO_PCH_WAKE_L GPIO_SMC_WAKE_SCI_N
#define GPIO_EC_INT_L GPIO_EC_TRACE_DATA_0

/* H1 */
#define GPIO_WP_L GPIO_EC_WAKE_CLK_R
#define GPIO_PACKET_MODE_EN GPIO_EC_TRACE_CLK
#define GPIO_ENTERING_RW GPIO_DNX_FORCE_RELOAD_EC_R

/* FAN */
#define GPIO_FAN_POWER_EN GPIO_FAN_PWR_DISABLE

/* LEDs */
#define GPIO_BAT_LED_RED_L GPIO_PM_BAT_STATUS_LED2
#define GPIO_PWR_LED_WHITE_L GPIO_PM_PWRBTN_LED

/* Uart */
#define GPIO_UART2_RX GPIO_EC_UART_RX

/* Case Closed Debug Mode interrupt */
#define GPIO_CCD_MODE_ODL GPIO_KBC_NUMLOCK

/* USB-C interrupts */
#define GPIO_USBC_TCPC_ALRT_P0 GPIO_TYPEC_EC_SMBUS_ALERT_0_R
#define GPIO_USBC_TCPC_ALRT_P1 GPIO_TYPEC_EC_SMBUS_ALERT_1_R
#define GPIO_USBC_TCPC_PPC_ALRT_P0 GPIO_KBC_SCANOUT_15
#define GPIO_USBC_TCPC_PPC_ALRT_P1 GPIO_KBC_CAPSLOCK

/* I2C ports & Configs */
/* Charger */
#define I2C_PORT_CHARGER MCHP_I2C_PORT0
/* Port 80 */
#define I2C_PORT_PORT80 MCHP_I2C_PORT0
/* Board ID */
#define I2C_PORT_PCA9555_BOARD_ID_GPIO MCHP_I2C_PORT0
/* Battery */
#define I2C_PORT_BATTERY MCHP_I2C_PORT0
/* USB-C I2C */
#define I2C_PORT_TYPEC_0 MCHP_I2C_PORT1
#define I2C_PORT_TYPEC_1 MCHP_I2C_PORT5

/*
 * MEC1521H loads firmware using QMSPI controller
 * CONFIG_SPI_FLASH_PORT is the index into
 * spi_devices[] in board.c
 */
#define CONFIG_SPI_FLASH_PORT 0
#define CONFIG_SPI_FLASH

/*
 * ADLRVP uses 32MB SPI flash- W25R256JVEIQ.But, EC binary to be generated
 * is of size 512KB. This bin is then later appended with 0xFF to become 32MB
 * binary for flashing purpose.
 */
#define CONFIG_FLASH_SIZE_BYTES (512 * 1024)
#define CONFIG_SPI_FLASH_W25X40 /* TODO: change to W25R256 */

/* ADC channels */
/*
 * Undefining below and redefining based on ADL RVP schematics,
 * as they are already defined with different channels in mchp_ec.h.
 */
#undef ADC_TEMP_SNS_AMBIENT_CHANNEL
#undef ADC_TEMP_SNS_VR_CHANNEL
#undef ADC_TEMP_SNS_DDR_CHANNEL
#undef ADC_TEMP_SNS_SKIN_CHANNEL

#define ADC_TEMP_SNS_AMBIENT_CHANNEL CHIP_ADC_CH4
#define ADC_TEMP_SNS_VR_CHANNEL CHIP_ADC_CH5
#define ADC_TEMP_SNS_DDR_CHANNEL CHIP_ADC_CH6
#define ADC_TEMP_SNS_SKIN_CHANNEL CHIP_ADC_CH7

/* To do: Remove once fan register details are added in mchp/fan.c */
#undef CONFIG_FANS

/* Use internal silicon 32KHz oscillator */
#undef CONFIG_CLOCK_SRC_EXTERNAL

/* Free up flash space. */
#undef CONFIG_CONSOLE_CMDHELP

#ifndef __ASSEMBLER__

enum adlrvp_i2c_channel {
	I2C_CHAN_BATT_CHG,
	I2C_CHAN_TCPC_0,
	I2C_CHAN_TCPC_1,
	I2C_CHAN_COUNT,
};

/* Map I2C port to controller */
int board_i2c_p2c(int port);
#endif /* !__ASSEMBLER__ */

#endif /* __CROS_EC_BOARD_H */