blob: f64bafce1a875cf6e70eab5c26c769dbdadb0986 [file] [log] [blame]
/* Copyright 2016 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
/*
* config.h - Top-level configuration Chrome EC
*
* All configuration settings (CONFIG_*) are defined in this file or in a
* sub-configuration file (config_chip.h, board.h, etc.) included by this file.
*
* Note that this file is included by assembly (.S) files. Any C-isms such as
* struct definitions or enums in a sub-configuration file MUST be guarded with
* #ifndef __ASSEMBLER__ to prevent those C-isms from being evaluated by the
* assembler.
*/
#ifndef __CROS_EC_CONFIG_H
#define __CROS_EC_CONFIG_H
/*
* When building for Zephyr tests, a shimmed_tasks.h header is defined
* to create all the HAS_TASK_* definitions. Since those are used in
* config.h, we need to include that header first.
*/
#ifdef CONFIG_ZEPHYR
#include "shimmed_tasks.h"
#endif /* CONFIG_ZEPHYR */
#ifdef INCLUDE_ENV_CONFIG
/*
* When building for an EC target, pick up the .h file which allows to
* keep track of changing make variables.
*/
#include "env_config.h"
#endif
/*
* All config options are listed alphabetically and described here.
*
* If you add a new config option somewhere in the code, you must add a
* default value here and describe what it does.
*
* To get a list current list, run this command:
* git grep " CONFIG_" | grep -o "CONFIG_[A-Za-z0-9_]\+" | sort | uniq
*
* Some options are #defined here to enable them by default. Chips or boards
* may override this by #undef'ing them in config_chip.h or board.h,
* respectively.
*
* TODO(crosbug.com/p/23758): Describe all of these. Also describe the
* HAS_TASK_* macro and how/when it should be used vs. a config define. And
* BOARD_*, CHIP_*, and CHIP_FAMILY_*.
*/
/* When the ec_rate config is set, put the sensor in force mode */
#undef CONFIG_SENSOR_EC_RATE_FORCE_MODE
/* Add support for sensor FIFO */
#undef CONFIG_ACCEL_FIFO
/* Define the size of the global fifo, must be a power of 2. */
#undef CONFIG_ACCEL_FIFO_SIZE
/* The amount of free entries that trigger an interrupt to the AP. */
#undef CONFIG_ACCEL_FIFO_THRES
/*
* Sensors in this mask are in forced mode: they needed to be polled
* at their data rate frequency.
*/
#undef CONFIG_ACCEL_FORCE_MODE_MASK
/* Enable accelerometer interrupts. */
#undef CONFIG_ACCEL_INTERRUPTS
/*
* Support "spoof" mode for sensors. This allows sensors to have their values
* spoofed to any arbitrary value. This is useful for testing.
*/
#define CONFIG_ACCEL_SPOOF_MODE
/* Specify type of accelerometers attached. */
#undef CONFIG_ACCEL_BMA255
#undef CONFIG_ACCEL_BMA4XX
#undef CONFIG_ACCEL_KXCJ9
#undef CONFIG_ACCEL_KX022
/*
* lis2dh/lis2de/lng2dm have the same register interface but different
* supported resolution. In normal mode, lis2dh works in 10-bit resolution,
* but lis2de/lng2dm only support 8bit resolution.
*
* Use the define for your correct chip and the CONFIG_ACCEL_LIS2D_COMMON will
* automatically get defined.
*/
#undef CONFIG_ACCEL_LIS2DE
#undef CONFIG_ACCEL_LIS2DH
#undef CONFIG_ACCEL_LIS2DS
#undef CONFIG_ACCEL_LNG2DM
#undef CONFIG_ACCEL_LIS2D_COMMON
/*
* lis2dw12 and lis2dwl have almost the same register interface.
* lis2dw12 supports 4 low power modes but lis2dwl only supports one. lis2dwl
* only supports 12 bit resolution under low power mode. But lis2dw12 can
* support 12 bit or 14 bit resolution at different low power modes. In order
* to get 14 bit resolution, lis2dwl does not use low power mode and lis2dw12
* only uses 3 of 4 low power modes.
*
* Use the define for your correct chip and the CONFIG_ACCEL_LIS2DW_COMMON will
* automatically get defined.
*/
#undef CONFIG_ACCEL_LIS2DW12
#undef CONFIG_ACCEL_LIS2DWL
#undef CONFIG_ACCEL_LIS2DW_COMMON
#undef CONFIG_ACCELGYRO_BMI160
#undef CONFIG_ACCELGYRO_BMI220
#undef CONFIG_ACCELGYRO_BMI260
#undef CONFIG_ACCELGYRO_BMI3XX
#undef CONFIG_ACCELGYRO_ICM426XX
#undef CONFIG_ACCELGYRO_ICM42607
#undef CONFIG_ACCELGYRO_LSM6DS0
/* Use CONFIG_ACCELGYRO_LSM6DSM for LSM6DSL, LSM6DSM, and/or LSM6DS3 */
#undef CONFIG_ACCELGYRO_LSM6DSM
#undef CONFIG_ACCELGYRO_LSM6DSO
/* Select the communication mode for the accelgyro ICM. Only one of these should
* be set. To set the value manually, simply define one or the other. If neither
* is defined, but I2C_PORT_ACCEL is defined, then CONFIG_ACCELGYRO_ICM_I2C will
* automatically be set.
*/
#undef CONFIG_ACCELGYRO_ICM_COMM_SPI
#undef CONFIG_ACCELGYRO_ICM_COMM_I2C
/* Select the communication mode for the accelgyro BMI. Only one of these should
* be set. To set the value manually, simply define one or the other. If neither
* is defined, but I2C_PORT_ACCEL is defined, then CONFIG_ACCELGYRO_BMI_I2C will
* automatically be set.
*/
#undef CONFIG_ACCELGYRO_BMI_COMM_SPI
#undef CONFIG_ACCELGYRO_BMI_COMM_I2C
/*
* Some chips have a portion of memory which will remain powered even
* during a reset. This is called Always-On, or AON memory, and
* typically has a separate firmware to manage the memory. These
* values can be used to configure the RAM layout for Always-On.
*
* See chip/ish/ for an example implementation.
*/
#undef CONFIG_AON_PERSISTENT_BASE
#undef CONFIG_AON_PERSISTENT_SIZE
#undef CONFIG_AON_RAM_BASE
#undef CONFIG_AON_RAM_SIZE
/* Add sensorhub function for LSM6DSM, required if 2nd device attached. */
#undef CONFIG_SENSORHUB_LSM6DSM
/* Specify type of Magnetometer attached. */
#undef CONFIG_MAG_LIS2MDL
#undef CONFIG_MAG_BMM150
/* Presence of a Bosh Sensortec BMM150 magnetometer behind a BMIxxx. */
#undef CONFIG_MAG_BMI_BMM150
/* Presence of a Bosh Sensortec BMM150 magnetometer behind a LSM6DSM. */
#undef CONFIG_MAG_LSM6DSM_BMM150
/* Presence of a ST LIS2MDL magnetometer behind a BMIxxx. */
#undef CONFIG_MAG_BMI_LIS2MDL
/* Presence of a ST LIS2MDL magnetometer behind a LSM6DSM. */
#undef CONFIG_MAG_LSM6DSM_LIS2MDL
/* Specify barometer attached */
#undef CONFIG_BARO_BMP280
/* When set, it indicates a secondary sensor is attached behind a BMIxxx. */
#undef CONFIG_BMI_SEC_I2C
/* When set, it indicates a secondary sensor is attached behind a LSM6DSM/L. */
#undef CONFIG_LSM6DSM_SEC_I2C
/* Support for BMIxxx hardware orientation sensor */
#undef CONFIG_BMI_ORIENTATION_SENSOR
/* Support for KIONIX KX022 hardware orientation sensor */
#undef CONFIG_KX022_ORIENTATION_SENSOR
/* Define the i2c address of the sensor behind the main sensor, if present. */
#undef CONFIG_ACCELGYRO_SEC_ADDR_FLAGS
/*
* Define if either CONFIG_BMI_ORIENTATION_SENSOR or
* CONFIG_KX022_ORIENTATION_SENSOR is set.
*/
#undef CONFIG_ORIENTATION_SENSOR
/* Support the orientation gesture */
#undef CONFIG_GESTURE_ORIENTATION
/* Support the body_detection */
#undef CONFIG_BODY_DETECTION
/* Which sensor body_detection use */
#undef CONFIG_BODY_DETECTION_SENSOR
/* The max number of sampling data for 1 second */
#undef CONFIG_BODY_DETECTION_MAX_WINDOW_SIZE
/* The threshold of acceleration variance */
#undef CONFIG_BODY_DETECTION_VAR_THRESHOLD
#undef CONFIG_BODY_DETECTION_CONFIDENCE_DELTA
/* How much noise affect threshold of variance */
#undef CONFIG_BODY_DETECTION_VAR_NOISE_FACTOR
/* The confidence limit of on_body/off_body */
#undef CONFIG_BODY_DETECTION_ON_BODY_CON
#undef CONFIG_BODY_DETECTION_OFF_BODY_CON
/* The threshold duration to change to off_body */
#undef CONFIG_BODY_DETECTION_STATIONARY_DURATION
/* Send the SCI event to notify host when body status change */
#undef CONFIG_BODY_DETECTION_NOTIFY_MODE_CHANGE
/* Send the MKBP event to notify host when body status change */
#undef CONFIG_BODY_DETECTION_NOTIFY_MKBP
/* Always enable the body detection function in S0 */
#undef CONFIG_BODY_DETECTION_ALWAYS_ENABLE_IN_S0
/*
* Use the old standard reference frame for accelerometers. The old
* reference frame is:
* Z-axis: perpendicular to keyboard, pointing up, such that if the device
* is sitting flat on a table, the accel reads +G.
* X-axis: in the plane of the keyboard, pointing from the front lip to the
* hinge, such that if the device is oriented with the front lip touching
* the table and the hinge directly above, the accel reads +G.
* Y-axis: in the plane of the keyboard, pointing to the right, such that
* if the device is on it's left side, the accel reads +G.
*
* Also, in the old reference frame, the lid accel matches the base accel
* readings when lid is closed.
*/
#undef CONFIG_ACCEL_STD_REF_FRAME_OLD
/* Set when INT2 is an output */
#undef CONFIG_ACCELGYRO_BMI160_INT2_OUTPUT
#undef CONFIG_ACCELGYRO_BMI260_INT2_OUTPUT
/* Specify type of Gyrometers attached. */
#undef CONFIG_GYRO_L3GD20H
/*
* If this is defined, motion_sense sends sensor events to the AP in the format
* +-----------+
* | Timestamp |
* | Payload |
* | Timestamp |
* | Payload |
* | ... |
* +-----------+
*
* If this is not defined, the events will be sent in the format
* +-----------+
* | Payload |
* | Payload |
* | Payload |
* | ... |
* | Timestamp |
* +-----------+
*
* The former format enables improved filtering of sensor event timestamps on
* the AP, but comes with stricter jitter requirements.
*/
#define CONFIG_SENSOR_TIGHT_TIMESTAMPS
/* Sync event driver */
#undef CONFIG_SYNC
/*
* How many sync events to buffer before motion_sense gets a chance to run.
* This is similar to sensor side fifos.
* Note: for vsync, anything above 2 is probably plenty.
*/
#define CONFIG_SYNC_QUEUE_SIZE 8
/* Simulate command for sync */
#undef CONFIG_SYNC_COMMAND
/*
* Define the event to raise when the sync event happens.
* Must be within TASK_EVENT_MOTION_INTERRUPT_MASK.
*/
#undef CONFIG_SYNC_INT_EVENT
#ifndef CONFIG_ZEPHYR
/* Compile chip support for digital-to-analog converter */
#undef CONFIG_DAC
#endif /* CONFIG_ZEPHYR */
/*
* Allow runtime configuration of the adc_channels[] array
*/
#undef CONFIG_ADC_CHANNELS_RUNTIME_CONFIG
/*
* ADC sample time selection. The value is chip-dependent.
* TODO: Replace this with CONFIG_ADC_PROFILE entries.
*/
#undef CONFIG_ADC_SAMPLE_TIME
/* Support voltage comparator */
#undef CONFIG_ADC_VOLTAGE_COMPARATOR
/* Include the ADC analog watchdog feature in the ADC code */
#define CONFIG_ADC_WATCHDOG
/*
* Chip-dependent ADC configuration - select one.
* SINGLE - Sample all inputs once when requested.
* FAST_CONTINUOUS - Sample all inputs continuously using DMA, with minimal
* sample time.
*/
#define CONFIG_ADC_PROFILE_SINGLE
#undef CONFIG_ADC_PROFILE_FAST_CONTINUOUS
/*
* Some ALS modules may be connected to the EC. We need the command, and
* specific drivers for each module.
*/
#ifdef HAS_TASK_ALS
#define CONFIG_ALS
#else
#undef CONFIG_ALS
#endif
#undef CONFIG_ALS_AL3010
#undef CONFIG_ALS_BH1730
/*
* If defined, BH1730 uses board specific lux calculation formula parameters.
* If not defined, BH1730 uses default parameters to calculate lux.
*/
#undef CONFIG_ALS_BH1730_LUXTH_PARAMS
#undef CONFIG_ALS_ISL29035
#undef CONFIG_ALS_OPT3001
#undef CONFIG_ALS_CM32183
/* Define the exact model ID present on the board: SI1141 = 41, SI1142 = 42, */
#undef CONFIG_ALS_SI114X
/* Check if the device revision is supported */
#undef CONFIG_ALS_SI114X_CHECK_REVISION
/* Define to include the clear channel driver for the tcs3400 light sensor */
#undef CONFIG_ALS_TCS3400
/* Define to include Vishay VEML3328 driver */
#undef CONFIG_ALS_VEML3328
/*
* Define the event to raise when a sensor interrupt triggers.
* Must be within TASK_EVENT_MOTION_INTERRUPT_MASK.
*/
#undef CONFIG_ACCELGYRO_BMI160_INT_EVENT
#undef CONFIG_ACCELGYRO_BMI260_INT_EVENT
#undef CONFIG_ACCELGYRO_BMI3XX_INT_EVENT
#undef CONFIG_ACCELGYRO_ICM426XX_INT_EVENT
#undef CONFIG_ACCELGYRO_ICM42607_INT_EVENT
#undef CONFIG_ACCEL_BMA4XX_INT_EVENT
#undef CONFIG_ACCEL_LSM6DSM_INT_EVENT
#undef CONFIG_ACCEL_LSM6DSO_INT_EVENT
#undef CONFIG_ACCEL_LIS2DS_INT_EVENT
#undef CONFIG_ACCEL_LIS2DW12_INT_EVENT
#undef CONFIG_ALS_SI114X_INT_EVENT
#undef CONFIG_ALS_TCS3400_INT_EVENT
/*
* Enable Si114x to operate in polling mode. This config is used in conjunction
* with CONFIG_ALS_SI114X_INT_EVENT. When polling is enabled, the read is
* initiated in the same manner as when interrupts are used, but the event which
* triggers the irq_handler is generated by deferred call using a fixed delay.
*/
#undef CONFIG_ALS_SI114X_POLLING
/*
* Enable tcs3400 to operate without interrupt pin. This config is used in
* conjunction with CONFIG_ALS_TCS3400_INT_EVENT. When this option is enabled,
* the read is initiated in the same manner as when interrupts are used, but the
* event which triggers the irq_handler is generated by deferred call.
*/
#undef CONFIG_ALS_TCS3400_EMULATED_IRQ_EVENT
/* Define which ALS sensor is used for dimming the lightbar when dark */
#undef CONFIG_ALS_LIGHTBAR_DIMMING
/* Link against third_party/cryptoc. */
#undef CONFIG_LIBCRYPTOC
/* Support AP hang detection host command and state machine */
#undef CONFIG_AP_HANG_DETECT
/* Support AP Warm reset Interrupt. */
#undef CONFIG_AP_WARM_RESET_INTERRUPT
/*
* Enable support for CPU caches behaving according to the ARMv7-M ISA.
* (so far, only the Cortex-M7 has such caches)
*/
#undef CONFIG_ARMV7M_CACHE
/*
* Defined if core/ code provides assembly optimized implementation of
* multiply-accumulate operations (32-bit operands, 64-bit result), for the
* cores that lack native instructions.
*/
#undef CONFIG_ASSEMBLY_MULA32
#ifndef CONFIG_ZEPHYR
/* Support audio codec. */
#undef CONFIG_AUDIO_CODEC
#endif /* CONFIG_ZEPHYR */
/* Audio codec caps. */
#undef CONFIG_AUDIO_CODEC_CAP_WOV_AUDIO_SHM
#undef CONFIG_AUDIO_CODEC_CAP_WOV_LANG_SHM
/* Support audio codec on DMIC. */
#undef CONFIG_AUDIO_CODEC_DMIC
/* Support audio codec software gain on DMIC. */
#undef CONFIG_AUDIO_CODEC_DMIC_SOFTWARE_GAIN
#undef CONFIG_AUDIO_CODEC_DMIC_MAX_SOFTWARE_GAIN
/* Support audio codec on I2S RX. */
#undef CONFIG_AUDIO_CODEC_I2S_RX
/* Support audio codec on WoV. */
#undef CONFIG_AUDIO_CODEC_WOV
/* Audio codec buffers. */
#undef CONFIG_AUDIO_CODEC_WOV_AUDIO_BUF_LEN
#undef CONFIG_AUDIO_CODEC_WOV_AUDIO_BUF_TYPE
#undef CONFIG_AUDIO_CODEC_WOV_LANG_BUF_LEN
#undef CONFIG_AUDIO_CODEC_WOV_LANG_BUF_TYPE
/*
* Support controlling the display backlight based on the state of the lid
* switch. The EC will disable the backlight when the lid is closed.
*
* The GPIO should be named GPIO_ENABLE_BACKLIGHT if active high, or
* GPIO_ENABLE_BACKLIGHT_L if active low. See CONFIG_BACKLIGHT_LID_ACTIVE_LOW.
*/
#undef CONFIG_BACKLIGHT_LID
/*
* The backlight GPIO pin is active low and named GPIO_BACKLIGHT_ENABLED_L
*/
#undef CONFIG_BACKLIGHT_LID_ACTIVE_LOW
/*
* If defined, EC will enable the backlight signal only if this GPIO is
* asserted AND the lid is open. This supports passing the backlight-enable
* signal from the AP through EC.
*/
#undef CONFIG_BACKLIGHT_REQ_GPIO
/* Support base32 text encoding */
#undef CONFIG_BASE32
/*****************************************************************************/
/* Battery config */
/*
* Support battery management and interrogation.
*
* This is implied by CONFIG_BATTERY_<device> (below); if not enabled and
* CONFIG_BATTERY_PRESENT_CUSTOM is also disabled, the board is assumed to not
* have or support a battery.
*/
#undef CONFIG_BATTERY
/**
* Enable Battery-config-in-CBI. It makes a board read battery info from CBI.
*/
#undef CONFIG_BATTERY_CONFIG_IN_CBI
/*
* Compile battery-specific code.
*
* Note that some boards have their own unique battery constants / functions.
* In this case, those are provided in board/(boardname)/battery.c, and none of
* these are defined.
* Defining one of these will automatically define CONFIG_BATTERY near the end
* of this file. If you add a new config here, you'll need to update that
* check.
*/
#undef CONFIG_BATTERY_BQ20Z453
#undef CONFIG_BATTERY_BQ27541
#undef CONFIG_BATTERY_BQ27621
#undef CONFIG_BATTERY_BQ4050
#undef CONFIG_BATTERY_MAX17055
#undef CONFIG_BATTERY_MM8013
/*
* MAX17055 support alert on voltage, current, temperature, and state-of-charge.
*/
#undef CONFIG_BATTERY_MAX17055_ALERT
/*
* Enable full model driver of MAX17055.
*
* It provides a better soc estimation. ocv_table needs to be supplied.
*/
#undef CONFIG_BATTERY_MAX17055_FULL_MODEL
/* Compile mock battery support; used by tests. */
#undef CONFIG_BATTERY_MOCK
/* Maximum time to wake a non-responsive battery, in second */
#define CONFIG_BATTERY_PRECHARGE_TIMEOUT 30
/*
* If defined, the charger will check a board specific function for battery hw
* presence as an additional condition to determine if power on is allowed for
* factory override, where allowing booting of a bare board with no battery and
* no power button press is required.
*/
#undef CONFIG_BATTERY_HW_PRESENT_CUSTOM
/*
* battery_is_present() support.
*
* Choice of battery driver normally determines the implementation of
* battery_is_present(); it is also possible to provide a board-specific
* implementation or note its presence from a GPIO level.
*
* If CONFIG_BATTERY is not enabled, a stub implementation that always returns
* "not present" is provided unless CONFIG_BATTERY_PRESENT_CUSTOM is enabled.
*
* These options are mutually exclusive.
*/
/* The board provides a custom battery_is_present() implementation. */
#undef CONFIG_BATTERY_PRESENT_CUSTOM
/* Battery is present if the GPIO named by this define reads logic-low. */
#undef CONFIG_BATTERY_PRESENT_GPIO
/*
* Compile smart battery support
*
* For batteries which support this specification:
* http://sbs-forum.org/specs/sbdat110.pdf)
*/
#undef CONFIG_BATTERY_SMART
/* Chemistry of the battery device */
#undef CONFIG_BATTERY_DEVICE_CHEMISTRY
/*
* If defined, the board must supply fuel gauge and battery information for
* each supported battery. This information is then used for battery cut off
* and to check the charge/discharge FET status.
*/
#undef CONFIG_BATTERY_FUEL_GAUGE
/*
* Critical battery shutdown timeout (seconds)
*
* If the battery is at extremely low charge (and discharging) or extremely
* high temperature, the EC will notify the AP and start a timer with the
* timeout defined here. If the critical condition is not corrected before
* the timeout expires, the EC will shut down the AP (if the AP is not already
* off) and then optionally hibernate or cut off battery.
*/
#define CONFIG_BATTERY_CRITICAL_SHUTDOWN_TIMEOUT 30
/* Perform a battery cut-off when we reach the battery critical level */
#undef CONFIG_BATTERY_CRITICAL_SHUTDOWN_CUT_OFF
/* If the battery is too hot or too cold, stop charging */
#undef CONFIG_BATTERY_CHECK_CHARGE_TEMP_LIMITS
/*
* Support battery cut-off as host command and console command.
*
* Once defined, you have to implement a board_cut_off_battery() function
* in board/???/battery.c file.
*/
#undef CONFIG_BATTERY_CUT_OFF
/*
* The default delay is 1 second. Define this if a board prefers
* different delay.
*/
#undef CONFIG_BATTERY_CUTOFF_DELAY_US
/*
* After the EC executes battery cutoff, it'll wait for this amount of time in
* msec before deciding the cutoff failed.
*/
#define CONFIG_BATTERY_CUTOFF_TIMEOUT_MSEC 8000
/*
* The board-specific battery.c implements get and set functions to read and
* write arbirary vendor-specific parameters stored in the battery.
* See include/battery.h for prototypes.
*/
#undef CONFIG_BATTERY_VENDOR_PARAM
/*
* TODO(crosbug.com/p/29467): allows charging of a dead battery that
* requests nil for current and voltage. Remove this workaround when
* possible.
*/
#undef CONFIG_BATTERY_REQUESTS_NIL_WHEN_DEAD
/*
* Check for battery in disconnect state (similar to cut-off state). If this
* battery is found to be in disconnect state, take it out of this state by
* force-applying a charge current. This option requires
* battery_get_disconnect_state() to be defined.
*/
#undef CONFIG_BATTERY_REVIVE_DISCONNECT
/*
* Low voltage protection for a battery (a.k.a. deep charge inspection):
* If battery voltage is lower than voltage_min, deep charge for more
* than precharge time The battery voltage is still lower than voltage_min,
* the system will stop charging
*/
#undef CONFIG_BATTERY_LOW_VOLTAGE_PROTECTION
/*
* If battery voltage is lower than voltage_min, precharge voltage & current
* are supplied and charging will be disabled after
* CONFIG_BATTERY_LOW_VOLTAGE_TIMEOUT seconds.
*/
#define CONFIG_BATTERY_LOW_VOLTAGE_TIMEOUT (30 * 60 * SECOND)
/*
* Use memory mapped region to store battery information. It supports only
* single battery systems. V2 should be used unless there is a reason not to.
*/
#undef CONFIG_BATTERY_V1
/*
* Use an alternative method to store battery information: Instead of writing
* directly to host memory mapped region, this keeps the battery information in
* ec_response_battery_static/dynamic_info structures, that can then be fetched
* using host commands, or via EC_ACPI_MEM_BATTERY_INDEX command, which tells
* the EC to update the shared memory.
*
* This is required on dual-battery systems and hostless bases with a battery.
*/
#undef CONFIG_BATTERY_V2
/*
* Number of batteries, only matters when CONFIG_BATTERY_V2 is used.
*/
#undef CONFIG_BATTERY_COUNT
/*
* Smart battery driver should measure the voltage cell imbalance in the battery
* pack. This requires a battery driver capable of the measurement.
*/
#undef CONFIG_BATTERY_MEASURE_IMBALANCE
/*
* Some boards needs to lower input voltage when battery is full and chipset
* is in S5/G3. This should be defined to integer value in mV.
*/
#undef CONFIG_BATT_FULL_CHIPSET_OFF_INPUT_LIMIT_MV
/*
* Check the specific battery status to judge whether the battery is
* initialized and stable when the battery wakes up from ship mode.
*/
#undef CONFIG_BATTERY_STBL_STAT
/*
* Some batteries don't update full capacity timely or don't update it at all.
* On such systems, compensation is required to guarantee remaining_capacity
* will be equal to full_capacity eventually. This used to be done in ACPI.
*
* Powerd uses CONFIG_BATT_HOST_SHUTDOWN_PERCENTAGE as the threshold for low
* battery shutdown.
*
* We want to show the low battery alert whenever we can. Thus, we make EC not
* inhibit power-on even if it knows the host would immediately shut down. To
* get that behavior, we need:
*
* MIN_BAT_PCT_FOR_POWER_ON < HOST_SHUTDOWN_PER = BATTERY_LEVEL_SHUTDOWN
*
* Thus, we set them as follows by default:
*
* CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON = 2 (don't boot if soc < 2%)
* CONFIG_BATT_HOST_SHUTDOWN_PERCENTAGE = 4 (shutdown if soc <= 4%)
* BATTERY_LEVEL_SHUTDOWN = 3 (shutdown if soc < 3%)
*
* This produces the following behavior:
*
* - If soc = 1%, system doesn't boot. User wouldn't know why.
* - If soc = 2~4%, system boots. Alert is shown. System immediately shuts down.
* - If battery discharges to 4% while the system is running, system shuts down.
* If that happens while a user is away, they can press the power button to
* learn what happened.
* - If system fails to shutdown for some reason and battery further discharges
* to 2%, EC will trigger shutdown.
*/
#define CONFIG_BATT_HOST_SHUTDOWN_PERCENTAGE 4 /* shutdown if soc <= 4% */
/*
* Powerd's full_factor. The value comes from:
* src/platform2/power_manager/default_prefs/power_supply_full_factor
*
* This value is used by the host to calculate the ETA for full charge.
*/
#define CONFIG_BATT_HOST_FULL_FACTOR 97
/*
* Expose some data when it is needed.
* For example, battery disconnect state
*/
#undef CONFIG_CHARGE_STATE_DEBUG
/* Include support for Bluetooth LE */
#undef CONFIG_BLUETOOTH_LE
/* Include support for testing the radio for Bluetooth LE */
#undef CONFIG_BLUETOOTH_LE_RADIO_TEST
/* Include support for the HCI and link layers for Bluetooth LE */
#undef CONFIG_BLUETOOTH_LE_STACK
/* Include debugging support for the Bluetooth link layer */
#undef CONFIG_BLUETOOTH_LL_DEBUG
/* Include debugging support for Bluetooth HCI */
#undef CONFIG_BLUETOOTH_HCI_DEBUG
/* Boot header storage offset. */
#undef CONFIG_BOOT_HEADER_STORAGE_OFF
/* Size of boot header in storage. */
#undef CONFIG_BOOT_HEADER_STORAGE_SIZE
/*****************************************************************************/
/* Bootblock config */
/* Pack AP-FW bootblock in EC image. */
#undef CONFIG_BOOTBLOCK
/*****************************************************************************/
/* EC can choose power signal gpio by schematic version */
#undef CONFIG_POWER_SIGNAL_RUNTIME_CONFIG
/* EC has GPIOs to allow board to reset RTC */
#undef CONFIG_BOARD_HAS_RTC_RESET
/*
* Call board_config_post_gpio_init() after GPIOs are initialized. See
* include/board_config.h for more information.
*/
#undef CONFIG_BOARD_POST_GPIO_INIT
/*
* Call board_config_pre_init() before any inits are called. See
* include/board_config.h for more information.
*/
#undef CONFIG_BOARD_PRE_INIT
/* The board version comes from Cros Board Info within EEPROM. */
#undef CONFIG_BOARD_VERSION_CBI
/*
* The board version is encoded with 3 GPIO signals where GPIO_BOARD_VERSION1
* is the LSB.
*/
#undef CONFIG_BOARD_VERSION_GPIO
/* EC responses to a board defined I2C address */
#undef CONFIG_BOARD_I2C_ADDR_FLAGS
/*
* The board is unable to distinguish EC reset from power-on so it should treat
* all resets as triggered by RESET_PIN even if it is a POWER_ON reset.
*/
#undef CONFIG_BOARD_FORCE_RESET_PIN
/*
* For some boards on power-on, the EC is reset by the H1 after power-on,
* so the EC sees 2 resets. This config enables the EC to save a flag
* on the first power-up restart, and then wait for the second reset before
* any other setup is done (such as GPIOs, timers, UART etc.)
* On the second reset, the saved flag is used to detect the previous
* power-on, and treat the second reset as a power-on instead of a reset.
*
* NOTE: Implemented only for npcx and ite
*/
#undef CONFIG_BOARD_RESET_AFTER_POWER_ON
/* Permanent LM4 boot configuration */
#undef CONFIG_BOOTCFG_VALUE
/*****************************************************************************/
/* Modify the default behavior to make system bringup easier. */
#undef CONFIG_BRINGUP
/*
* Enable debug prints / asserts that may helpful for debugging board bring-up,
* but probably shouldn't be enabled for production for performance reasons.
*/
#undef CONFIG_DEBUG_BRINGUP
/*****************************************************************************/
/*
* Support for entering recovery mode using the volume buttons or a dedicated
* recovery button. Note that these are *buttons* and not keys in the keyboard
* matrix.
*/
#undef CONFIG_BUTTON_TRIGGERED_RECOVERY
/*
* Compile detachable base support
*
* Enabled on all boards that have a detachable base.
*/
#undef CONFIG_DETACHABLE_BASE
/*
* Indicates there is a dedicated recovery button. Note, that if there are
* volume buttons, a dedicated recovery button is not needed. This is intended
* because if a board has volume buttons, they can do everything a dedicated
* recovery button can do.
* For various reasons, on some platforms there may be multiple recovery inputs.
* See b/149967026.
*/
#undef CONFIG_DEDICATED_RECOVERY_BUTTON
#undef CONFIG_DEDICATED_RECOVERY_BUTTON_2
/* Configure recovery button. e.g. BUTTON_FLAG_ACTIVE_HIGH */
#undef CONFIG_DEDICATED_RECOVERY_BUTTON_FLAGS
#undef CONFIG_DEDICATED_RECOVERY_BUTTON_2_FLAGS
/*
* RISC-V core specific panic data is bigger than Cortex-M core specific panic
* data. Including this into union in panic_data structure causes whole
* to grow by 28 bytes. In many boards EC RO is still obtaining pointer to
* beginning of panic data by subtracting its panic data structure size from
* the end of RAM. When EC RW saves panic data it will be corrupted by EC RO.
* Moreover, during next boot EC RW won't be able to find jump data (see
* b/165773837 for more details).
*
* This config allows boards to not include RV32I panic data if their EC RO
* doesn't include it to keep panic data structure in sync.
*/
#undef CONFIG_DO_NOT_INCLUDE_RV32I_PANIC_DATA
/*
* The board has volume up and volume down buttons. Note, these are *buttons*
* and not keys in the keyboard matrix.
*/
#undef CONFIG_VOLUME_BUTTONS
/*
* The board has buttons that are connected to ADC pins which pressed and
* released values are determined by the analog voltage
*/
#undef CONFIG_ADC_BUTTONS
/*
* Allow runtime configuration of the buttons[] array
*/
#undef CONFIG_BUTTONS_RUNTIME_CONFIG
/* Support simulation of a button press using EC tool command */
#undef CONFIG_HOSTCMD_BUTTON
/*
* Configuration for button simulation i.e. dependent on
* CONFIG_HOSTCMD_BUTTON or CONFIG_CMD_BUTTON config.
*/
#undef CONFIG_SIMULATED_BUTTON
/* Set the default button debounce time in us */
#define CONFIG_BUTTON_DEBOUNCE (30 * MSEC)
/*
* Capsense chip has buttons, too.
*/
#undef CONFIG_CAPSENSE
/*****************************************************************************/
/* Support CEC */
#undef CONFIG_CEC
#undef CONFIG_CEC_DEBUG
/* CEC drivers */
#undef CONFIG_CEC_BITBANG
#undef CONFIG_CEC_IT83XX
/*****************************************************************************/
/* Compile charge manager */
#undef CONFIG_CHARGE_MANAGER
/*
* Number of charge ports excluding type-c ports
*
* If defined, the board must define a macro DEDICATED_CHARGE_PORT indicates
* the dedicated port number.
*
* See include/charge_manager.h for more details about dedicated port.
*/
#define CONFIG_DEDICATED_CHARGE_PORT_COUNT 0
/* Allow charge manager to default to charging from dual-role partners */
#undef CONFIG_CHARGE_MANAGER_DRP_CHARGING
/* Handle the external power limit host command in charge manager */
#undef CONFIG_CHARGE_MANAGER_EXTERNAL_POWER_LIMIT
/* Initially enter safe mode, with relaxed port / current selection rules */
#define CONFIG_CHARGE_MANAGER_SAFE_MODE
/* Leave safe mode when battery pct meets or exceeds this value */
#define CONFIG_CHARGE_MANAGER_BAT_PCT_SAFE_MODE_EXIT 2
/* The hardware has some input current ramping/back-off mechanism */
#undef CONFIG_CHARGE_RAMP_HW
/* Compile input current ramping support using software control */
#undef CONFIG_CHARGE_RAMP_SW
/* Enable EC support for charging splashscreen */
#undef CONFIG_CHARGESPLASH
#undef CONFIG_CHARGESPLASH_PERIOD
#undef CONFIG_CHARGESPLASH_MAX_REQUESTS_PER_PERIOD
/*****************************************************************************/
/* Charger config */
#ifndef CONFIG_ZEPHYR
/* Compile common charge state code. */
#undef CONFIG_CHARGER
#endif
/* Compile charger-specific code for these chargers (pick at most one) */
#undef CONFIG_CHARGER_BD9995X
#undef CONFIG_CHARGER_BQ24715
#undef CONFIG_CHARGER_BQ24770
#undef CONFIG_CHARGER_BQ24773
#undef CONFIG_CHARGER_BQ25710
#undef CONFIG_CHARGER_BQ25720
#undef CONFIG_CHARGER_ISL9237
#undef CONFIG_CHARGER_ISL9238 /* For ISL9238 A/B */
#undef CONFIG_CHARGER_ISL9238C
#undef CONFIG_CHARGER_ISL9241
#undef CONFIG_CHARGER_MT6370
#undef CONFIG_CHARGER_RAA489000
#undef CONFIG_CHARGER_RAA489110
#undef CONFIG_CHARGER_RT9466
#undef CONFIG_CHARGER_RT9467
#undef CONFIG_CHARGER_RT9490
#undef CONFIG_CHARGER_SM5803
#undef CONFIG_CHARGER_SY21612
/* Allow run-time completion of the charger driver structure */
#undef CONFIG_CHARGER_RUNTIME_CONFIG
/*
* Board has only one charger chip (default, undef when board contains multiple
* charger chips
*/
#define CONFIG_CHARGER_SINGLE_CHIP
/*
* Enable the CHG_EN at initialization to turn-on the BGATE which allows voltage
* to be applied to the battery PACK & wakes the battery if it is in shipmode.
*/
#undef CONFIG_CHARGER_BD9995X_CHGEN
/*
* BD9995X Power Save Mode
*
* Which power save mode should the charger enter when VBUS is removed. Check
* driver/bd9995x.h for the power save settings. By default, no power save mode
* is enabled.
*/
#undef CONFIG_BD9995X_POWER_SAVE_MODE
/*
* If the battery temperature sense pin is connected to charger,
* get the battery temperature from the charger.
*/
#undef CONFIG_CHARGER_BATTERY_TSENSE
/*
* Board specific charging current limit, in mA. If defined, the charge state
* machine will not allow the battery to request more current than this.
*/
#undef CONFIG_CHARGER_CURRENT_LIMIT
/*
* MT6370 backlight control settings.
* If defined, Panel backlight power is controlled by MT6370.
*/
#undef CONFIG_CHARGER_MT6370_BACKLIGHT
/*
* MT6360/MT6370 BC1.2 USB-PHY control.
* If defined, USB-PHY connection is controlled by GPIO_BC12_DET_EN.
* Assert GPIO_BC12_DET_EN to detect BC1.2 device, and deassert
* GPIO_BC12_DET_EN to mux USB-PHY back.
*/
#undef CONFIG_MT6360_BC12_GPIO
#undef CONFIG_CHARGER_MT6370_BC12_GPIO
/*
* Enable/disable system power monitor PSYS function: this enables output
* from charger chip to SoC.
*/
#undef CONFIG_CHARGER_PSYS
/*
* Enable reading PSYS (system power) value, either via "psys" console command,
* or via charger_get_system_power function.
*/
#undef CONFIG_CHARGER_PSYS_READ
/*
* Board supports discharge mode. In this mode, the battery will discharge
* even if AC is present. Used for testing.
*/
#undef CONFIG_CHARGER_DISCHARGE_ON_AC
/* Board has a custom discharge mode. */
#undef CONFIG_CHARGER_DISCHARGE_ON_AC_CUSTOM
/*
* Board specific flag used to disable external ILIM pin used to determine input
* current limit. When defined, the input current limit is decided only by
* the software register value.
*/
#undef CONFIG_CHARGER_ILIM_PIN_DISABLED
/*
* Default input current for the board, in mA. Many boards also use this as the
* least maximum input current during transients.
*
* This value should depend on external power adapter, designed charging
* voltage, and the maximum power of the running system. For type-C chargers,
* this should be set to 512 mA in order to not brown-out low-current USB
* charge ports in accordance with USB-PD r3.0 Sec. 7.3
*/
#undef CONFIG_CHARGER_DEFAULT_CURRENT_LIMIT
/*
* Minimum current limit that will ever be set for chargers, even if a lower
* limit is requested. This will allow the charger to draw more power than
* the requested limit.
*
* If set, this should usually be set to no more than 2.5W divided by the
* maximum supported input voltage in order to satisfy USB-PD pSnkStdby
* requirements. Higher values may help devices stay alive under low-battery
* conditions at the cost of violating standby power limits.
*
* Many boards set this to large values, since historically this number was
* usually equal to CONFIG_CHARGER_DEFAULT_CURRENT_LIMIT. New boards should
* avoid doing so if possible.
*/
#undef CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT
/*
* Percentage derating factor applied to charger input current limits.
*
* Desired charger current is reduced by this many percent when programming
* chargers via the charge manager, which is usually used to account for
* chargers that draw slightly more current than the programmed limit or to
* provide some margin for accuracy. For example, if this value is set to 4
* and input current is limited to 1000 mA, the charger will be given a limit
* of 960 mA.
*
* The default value is set to prevent most overcurrent conditions during load
* transients, because power supplies vary in their tolerance to such
* short-lived overcurrent conditions and many chargers respond slowly to those
* transients.
*
* Projects SHOULD characterize system behavior to tune for system
* behavior and charger response in order to optimize this (allowing the
* derating to be reduced) and ensure transients do not exceed the range of
* acceptable current (which might require greater derating).
*
* Boards requiring more complex control over input current should leave this
* undefined and override board_set_charge_limit instead.
*/
#define CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT 5
/*
* This config option is used to enable IDCHG trigger for prochot. This macro
* should be set to the desired current limit to draw from the battery before
* triggering prochot. Note that is has a 512 mA granularity. The function that
* sets the limit will mask of the lower 10 bits. For this check to be active
* the bq25710 must be in performance mode and this config option is also used
* to keep the bq25710 in performance mode when the AP is in S0.
*/
#undef CONFIG_CHARGER_BQ25710_IDCHG_LIMIT_MA
/* Enable if CONFIG_CHARGER_BQ25720_VSYS_TH2_DV should be applied */
#undef CONFIG_CHARGER_BQ25720_VSYS_TH2_CUSTOM
/*
* This config option is used to set the charger's VSYS voltage
* threshold. When the voltage drops to this level, PROCHOT is asserted
* by the charger to request reduced system power demand and hopefully
* avoid a voltage droop leading to system instability. The voltage is
* specified in deci-volts, so a value of 80 would set the threshold to
* 8.0v.
*/
#undef CONFIG_CHARGER_BQ25720_VSYS_TH2_DV
/* Enable if CONFIG_CHARGER_BQ25720_VSYS_UVP should be applied */
#undef CONFIG_CHARGER_BQ25720_VSYS_UVP_CUSTOM
/*
* This config option is used to set the VSYS under voltage (VSYS_UVP)
* lockout threshold. This is a 3 bit field with default value 0. The
* actual voltage encoded is (0.8 * <value> + 2.4), allowing a threshold
* in the range of 2.4 V to 8.0 V to be specified.
*/
#undef CONFIG_CHARGER_BQ25720_VSYS_UVP
/* Enable if CONFIG_CHARGER_BQ25720_IDCHG_DEG2 should be applied */
#undef CONFIG_CHARGER_BQ25720_IDCHG_DEG2_CUSTOM
/*
* This config option is used to set the 2nd battery discharge current
* limit (IDCHG_TH2) deglitch time (IDCHG_DEG2). This is a 2 bit field
* with default value 1 (1.6 ms). The encoded value ranges from 100 us
* to 12 ms.
*/
#undef CONFIG_CHARGER_BQ25720_IDCHG_DEG2
/* Enable if CONFIG_CHARGER_BQ25720_IDCHG_TH2 should be applied */
#undef CONFIG_CHARGER_BQ25720_IDCHG_TH2_CUSTOM
/*
* This config option is used to set the charger's 2nd battery discharge
* current limit (IDCHG_TH2) as a percentage of IDCHG_TH1. This is a 3
* bit field with default value 1 (150%). The encoded value ranges from
* 125% to 400%.
*/
#undef CONFIG_CHARGER_BQ25720_IDCHG_TH2
/* Value of the bq25710 charge sense resistor, in mOhms */
#undef CONFIG_CHARGER_BQ25710_SENSE_RESISTOR
/* Value of the bq25710 input current sense resistor, in mOhms */
#undef CONFIG_CHARGER_BQ25710_SENSE_RESISTOR_AC
/*
* This config option is used to enable the PSYS sensing circuit on the
* BQ25710 and BQ25720 chargers. This is used for system power
* monitoring on board designs that support this capability. This
* circuit is disabled by default (reset) and needs to be explicitly
* enabled for meaningful results.
*/
#undef CONFIG_CHARGER_BQ25710_PSYS_SENSING
/*
* This config option is used to change the charger's internal
* comparator reference voltage to 1.2 V. The power-on default is 2.3
* V. This must be enabled if the board was designed for 1.2 V instead
* of 2.3 V.
*/
#undef CONFIG_CHARGER_BQ25710_CMP_REF_1P2
/*
* This config option is used to change the charger's independent comparator
* output polarity. The default setting is CMPIN is above internal threshold,
* CMPOUT is LOW (internal hysteresis).
*/
#undef CONFIG_CHARGER_BQ25710_CMP_POL_EXTERNAL
/* Enable if CONFIG_CHARGER_BQ25710_PKPWR_TOVLD_DEG should be applied */
#undef CONFIG_CHARGER_BQ25710_PKPWR_TOVLD_DEG_CUSTOM
/*
* Input overload time when in peak power mode (PKPWR_TOVLD_DEG). This
* limits how long the charger can draw ILIM2 from the adapter. This is
* a 2 bit field. On the bq25710 1 ms to 20 ms can be encoded. On the
* bq25720 1 ms to 10 ms can be encoded.
*/
#undef CONFIG_CHARGER_BQ25710_PKPWR_TOVLD_DEG
/*
* This config option is used to enable the charger's AC over-current
* protection. The converter turns off when the OC threshold is
* reached. The threshold is selected using the ACOC_VTH bit.
*/
#undef CONFIG_CHARGER_BQ25710_EN_ACOC
/*
* This config option selects which ACOC protection threshold is used
* with EN_ACOC. Enabling this option selects 133% of ILIM2. Otherwise,
* the default is 200% of ILIM2.
*/
#undef CONFIG_CHARGER_BQ25710_ACOC_VTH_1P33
/*
* This config option selects the minimum BATOC protection threshold to
* be used with EN_BATOC. The minimum threshold is 150% of PROCHOT IDCHG
* on the bq25710 and 133% of PROCHOT IDCHG_TH2 on the bq25720. The
* default threshold is 200% on both chips.
*/
#undef CONFIG_CHARGER_BQ25710_BATOC_VTH_MINIMUM
/*
* This config option sets the PP_INOM bit in Prochot Option 1
* register. This causes PROCHOT to be pulsed when the nominal adapter
* current threshold is reached. INOM is 110% of IDPM/IIN_DPM (input
* current setting).
*/
#undef CONFIG_CHARGER_BQ25710_PP_INOM
/*
* This config option sets the PP_BATPRES bit in Prochot Option 1
* register. This causes PROCHOT to be pulsed when the battery is
* removed.
*/
#undef CONFIG_CHARGER_BQ25710_PP_BATPRES
/*
* This config option sets the PP_ACOK in Prochot Option 1
* register. This causes PROCHOT to be pulsed when the AC adapter is
* removed.
*/
#undef CONFIG_CHARGER_BQ25710_PP_ACOK
/*
* This config option sets the PP_COMP in Prochot Option 1
* register. Need to use EN_PROCHOT_LPWR to enable independent comparator
* and its PROCHOT profile.
*/
#undef CONFIG_CHARGER_BQ25710_PP_COMP
/*
* This config option sets the PP_IDCHG2 bit in the Charge Option 4
* register. This causes PROCHOT to be pulsed when IDCHG_TH2 is reached.
*/
#undef CONFIG_CHARGER_BQ25720_PP_IDCHG2
/* Enable if CONFIG_CHARGER_BQ25710_VSYS_MIN_VOLTAGE_MV should be applied */
#undef CONFIG_CHARGER_BQ25710_VSYS_MIN_VOLTAGE_CUSTOM
/*
* This config option sets the minimum system voltage in
* milli-volts. The bq25710 uses 6 bits of resolution and can be
* configured from 1.024 V to 16.128 V in 256 mV increments. The bq25720
* uses 8 bits of resolution and can be set from 1.0 V to 19.2 V in 100
* mV increments. The default value depends on configured number of
* battery cells connected in series using the CELL_BATPRESZ strap.
*/
#undef CONFIG_CHARGER_BQ25710_VSYS_MIN_VOLTAGE_MV
/*
* Board specific maximum input current limit, in mA.
*/
#undef CONFIG_CHARGER_MAX_INPUT_CURRENT
/*
* Leave charger VBAT configured to battery-requested voltage under all
* conditions, even when AC is not present. This may be necessary to work
* around quirks of certain charger chips, such as the BD9995X.
*/
#undef CONFIG_CHARGER_MAINTAIN_VBAT
/*
* Power thresholds for AP boot
*
* If one of the following conditions is met, EC boots AP:
*
* 1. Battery charge >= CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON
* 2. AC power >= CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON
* 3. Battery charge >= CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON_WITH_AC
* and
* AC power >= CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON_WITH_BATT
*
* Note that CONFIG_CHARGER_LIMIT_POWER_THRESH_BAT_PCT/_CHG_MW are thresholds
* for the OS boot used by Depthcharge. The OS has higher power requirement
* but PD power is also available.
*
* WARNING: Locked RO firmware does not negotiate power greater than 15W via
* analog signaling. If the AP requires greater than 15W to boot, then see
* CONFIG_CHARGER_LIMIT_POWER_THRESH_CHG_MW.
*/
#define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON 2 /* Don't boot if soc < 2% */
#define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON_WITH_AC 1
/* Default: 15000 */
#undef CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON
/* Default: Disabled */
#undef CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON_WITH_BATT
/* Minimum battery percentage for power on with an imbalanced pack */
#undef CONFIG_CHARGER_MIN_BAT_PCT_IMBALANCED_POWER_ON
/*
* Maximum battery cell imbalance to accept before considering the pack to be
* imbalanced, in millivolts.
*/
#undef CONFIG_BATTERY_MAX_IMBALANCE_MV
/*
* Select this option if the charger will be used in a bypass mode in
* order to pass the input current from AC directly to the system
* power rail for efficiency.
*/
#undef CONFIG_CHARGER_BYPASS_MODE
/* Set this option when using a Narrow VDC (NVDC) charger, such as ISL9237/8. */
#undef CONFIG_CHARGER_NARROW_VDC
/*
* Low energy thresholds - when battery level is below BAT_PCT and an external
* charger provides less than CHG_MW of power, inform the AP of the situation
* through the LIMIT_POWER charge state parameter. Depthcharge will hold off on
* the boot for up to 3 seconds while waiting for either condition to clear
* before starting the kernel. This wait happens after sw sync in RW mode, so
* the firmware may set it high enough that PD negotiation is required to clear
* it.
*
* Default: Disabled. Depthcharge is immediately released to boot the kernel.
*
* Setting this value to 15001 will require PD negotiation to be complete prior
* to releasing depthcharge. During PD negotiation, the charger will be briefly
* reduced to about 2.5W for a few hundred ms.
*/
#undef CONFIG_CHARGER_LIMIT_POWER_THRESH_CHG_MW
/* Default: CHARGER_MIN_BAT_PCT_FOR_POWER_ON */
#undef CONFIG_CHARGER_LIMIT_POWER_THRESH_BAT_PCT
/*
* Enable charger's OTG functions, i.e. make it possible to supply output power
* from battery.
*/
#undef CONFIG_CHARGER_OTG
/*
* Charger should call battery_override_params() to limit/correct the voltage
* and current requested by the battery pack before acting on the request.
*/
#undef CONFIG_CHARGER_PROFILE_OVERRIDE
/*
* Common code for charger profile override. Should be used with
* CONFIG_CHARGER_PROFILE_OVERRIDE.
*/
#undef CONFIG_CHARGER_PROFILE_OVERRIDE_COMMON
/*
* Battery voltage threshold ranges for charge profile override.
* Override it in board.h if battery has multiple threshold ranges.
*/
#define CONFIG_CHARGER_PROFILE_VOLTAGE_RANGES 2
/* Value of the charge sense resistor, in mOhms */
#undef CONFIG_CHARGER_SENSE_RESISTOR
/* Value of the input current sense resistor, in mOhms */
#undef CONFIG_CHARGER_SENSE_RESISTOR_AC
/*
* Board has an GPIO pin to enable or disable charging.
*
* This GPIO should be named GPIO_CHARGER_EN, if active high. Or
* GPIO_CHARGER_EN_L if active low.
*/
#undef CONFIG_CHARGER_EN_GPIO
/* Charger enable GPIO is active low */
#undef CONFIG_CHARGER_EN_ACTIVE_LOW
/*
* OCPC - One Charger IC Per Type-C
*
* Define this if the board may have multiple charger ICs in the system. The
* assumption is that that primary charger is index 0 and is the charger IC
* connected to the battery FET. Additionally, `chgnum` is assumed to be the
* same as the charge port index.
*/
#undef CONFIG_OCPC
/*
* Boards using OCPC must define this value in order to seed the starting board
* battery and system resistance between the secondary charger IC and the
* battery. This should be at a minimum the Rds(on) resistance of the BFET plus
* the series sense resistor.
*/
#undef CONFIG_OCPC_DEF_RBATT_MOHMS
/* Set a default OCPC drive limit for legacy boards */
#define CONFIG_OCPC_DEF_DRIVELIMIT_MILLIVOLTS 10
/* Enable trickle charging */
#undef CONFIG_TRICKLE_CHARGING
/* Set trickle charge current by taking integer value */
#define CONFIG_RAA489000_TRICKLE_CHARGE_CURRENT 128
/* Set two level input current limit function */
#undef CONFIG_CHANGER_RAA489000_TWO_LEVEL_CURRENT_LIMIT
/* Wireless chargers */
#undef CONFIG_CPS8100
/*
* SM5803 PROCHOT configuration
* This follow the hardware default value.
*/
#define CONFIG_CHARGER_SM5803_PROCHOT_DURATION 2
#define CONFIG_CHARGER_SM5803_VBUS_MON_SEL 2
#define CONFIG_CHARGER_SM5803_VSYS_MON_SEL 10
#define CONFIG_CHARGER_SM5803_IBAT_PHOT_SEL IBAT_SEL_MAX
/*
* Precharge delay time to wait for the charger is stable
* to set charge current/voltage.
*/
#undef CONFIG_PRECHARGE_DELAY_MS
/*****************************************************************************/
/*
* The chip needs to define special SRAM memory regions as linker sections.
* Those regions are defined in the special-purpose preprocessed file in
* chip/<chip_name>/memory_regions.inc using the following macro:
* REGION(name, attributes, start_address, size)
*
* Note: these 'special' regions are NOT cleared at startup contrary to .bss.
*/
#undef CONFIG_CHIP_MEMORY_REGIONS
/*
* Chip needs to do pre-init very early in main(), and provides chip_pre_init()
* to do so.
*/
#undef CONFIG_CHIP_PRE_INIT
/*
* Set the caching attributes of one of the RAM regions to uncached.
*
* When defined, CONFIG_CHIP_UNCACHED_REGION must be equal to the name of one
* of the regions defined in memory_regions.inc for CONFIG_CHIP_MEMORY_REGIONS.
*/
#undef CONFIG_CHIP_UNCACHED_REGION
/*
* When defined, adds a new linker section to store objects that remain resident
* in ROM/flash. This is useful on ECs that execute all code from RAM and
* in which the RAM size is smaller than the flash size.
*
* Code can force objects into the .init_rom resident section using the
* __init_rom macro. Objects should accessed using the include/init_rom.h
* module.
*/
#undef CONFIG_CHIP_INIT_ROM_REGION
/*
* This is a convenience macro that causes the .data section to link into
* the ROM/flash resident section defined above.
*
* When enabled, the EC initialization code copies the .data section directly
* from flash into data RAM.
*
* When this is not defined, the bootloader copies the .data section from flash
* to code RAM. The EC initialization code copies .data from code RAM to data
* RAM.
*
* This is automatically enabled when both CONFIG_CHIP_INIT_ROM_REGION and
* CONFIG_MAPPED_STORAGE are enabled.
*/
#undef CONFIG_CHIP_DATA_IN_INIT_ROM
/*****************************************************************************/
/* Chipset config */
/* AP chipset support; pick at most one */
#undef CONFIG_CHIPSET_ALDERLAKE /* Intel Alderlake (x86) */
#ifndef CONFIG_ZEPHYR
#undef CONFIG_CHIPSET_ALDERLAKE_SLG4BD44540 /* Intel Alderlake (x86) \
* with power sequencer \
* chip \
*/
#endif /* CONFIG_ZEPHYR */
#undef CONFIG_CHIPSET_APOLLOLAKE /* Intel Apollolake (x86) */
#undef CONFIG_CHIPSET_CANNONLAKE /* Intel Cannonlake (x86) */
#undef CONFIG_CHIPSET_COMETLAKE /* Intel Cometlake (x86) */
#undef CONFIG_CHIPSET_COMETLAKE_DISCRETE /* Intel Cometlake (x86), \
* discrete EC control \
*/
#undef CONFIG_CHIPSET_ECDRIVEN /* Mock power module */
#undef CONFIG_CHIPSET_FALCONLITE /* Falcon-lite*/
#undef CONFIG_CHIPSET_GEMINILAKE /* Intel Geminilake (x86) */
#undef CONFIG_CHIPSET_ICELAKE /* Intel Icelake (x86) */
#undef CONFIG_CHIPSET_JASPERLAKE /* Intel Jasperlake (x86) */
#undef CONFIG_CHIPSET_MT817X /* MediaTek MT817x */
#undef CONFIG_CHIPSET_MT8183 /* MediaTek MT8183 */
#undef CONFIG_CHIPSET_MT8192 /* MediaTek MT8192 */
#undef CONFIG_CHIPSET_CEZANNE /* AMD Cezanne (x86) */
#undef CONFIG_CHIPSET_SKYLAKE /* Intel Skylake (x86) */
#undef CONFIG_CHIPSET_SC7180 /* Qualcomm SC7180 */
#undef CONFIG_CHIPSET_SC7280 /* Qualcomm SC7280 */
#undef CONFIG_CHIPSET_SDM845 /* Qualcomm SDM845 */
#undef CONFIG_CHIPSET_STONEY /* AMD Stoney (x86)*/
#undef CONFIG_CHIPSET_TIGERLAKE /* Intel Tigerlake (x86) */
/* Shared chipset support; automatically gets defined below. */
#undef CONFIG_CHIPSET_APL_GLK /* Apollolake & Geminilake */
/* Support chipset throttling */
#undef CONFIG_CHIPSET_CAN_THROTTLE
/* Enable additional chipset debugging */
#undef CONFIG_CHIPSET_DEBUG
/* Enable chipset reset hook, requires a deferrable function */
#undef CONFIG_CHIPSET_RESET_HOOK
/*
* Enable chipset resume init and suspend complete hooks. These hooks are
* usually used to initialize/disable the SPI driver, which goes to sleep
* on suspend. Require to initialize it first such that it can receive a
* host resume event, that notifies the normal resume hook.
*/
#undef CONFIG_CHIPSET_RESUME_INIT_HOOK
/*
* Enable turning on PP3300_A rail before PP5000_A rail on the Ice Lake
* and Tiger Lake chipsets. Enable this option if there is leakage from PP5000_A
* resources into PP3300_A resources.
*/
#undef CONFIG_CHIPSET_PP3300_RAIL_FIRST
/*
* Enable the EC to drive SLP_S3_L during the G3 to S3 transition. This is
* needed on TigerLake designs to prevent a glitch on the SLP_S3_L and PCH_PWROK
* signals during power on.
*/
#undef CONFIG_CHIPSET_SLP_S3_L_OVERRIDE
/*
* Enable if chipset requires delay between power signals going high
* and deasserting RSMRST to PCH.
*/
#undef CONFIG_CHIPSET_X86_RSMRST_DELAY
/* Passthrough RSMRST_L de-assertion after S5 */
#undef CONFIG_CHIPSET_X86_RSMRST_AFTER_S5
/* Support PMIC reset(using LDO_EN) in chipset */
#undef CONFIG_CHIPSET_HAS_PLATFORM_PMIC_RESET
/* Board requires chipset pre-init callback */
#undef CONFIG_CHIPSET_HAS_PRE_INIT_CALLBACK
/* Redefine when we need a different power-on sequence on the same chipset. */
#define CONFIG_CHIPSET_POWER_SEQ_VERSION 0
/*
* Allow fake control of the power states.
*
* Note: This should NOT be used on platforms which have an SoC present.
*/
#undef CONFIG_POWERSEQ_FAKE_CONTROL
/* AMD Side-Band Remote Management Interface (SB-RMI) support */
#undef CONFIG_AMD_SB_RMI
/*****************************************************************************/
/*
* Chip config for clock circuitry
* define = crystal / undef = oscillator
*/
#undef CONFIG_CLOCK_CRYSTAL
/*
* Indicate if a clock source is connected to stm32f4's high speed external
* clock signal (HSE) specific input
*/
#undef CONFIG_STM32_CLOCK_HSE_HZ
/*
* Indicate if a clock source is connected to low speed external (LSE) specific
* input
*/
#undef CONFIG_STM32_CLOCK_LSE
/*
* Chip config for clock source
* define = external crystal oscillator / undef = internal clock source
*/
#undef CONFIG_CLOCK_SRC_EXTERNAL
/*****************************************************************************/
/* Support curve25519 public key cryptography */
#undef CONFIG_CURVE25519
/*****************************************************************************/
/* PMIC config */
/* Support firmware long press power-off timer */
#undef CONFIG_PMIC_FW_LONG_PRESS_TIMER
/* Support PMIC power control */
#undef CONFIG_PMIC
/*****************************************************************************/
/*
* Example functionality that is used to test boards.
*/
/*
* Enable the blink example.
*
* LEDs are used to count in binary.
*
* Required Configuration:
* - CONFIG_BLINK_LEDS --> List of LEDs (gpio enum names) to use as bits
*/
#undef CONFIG_BLINK
#undef CONFIG_BLINK_LEDS /* Ex: GPIO_LED1, GPIO_LED2 */
/*****************************************************************************/
/*
* Optional console commands
*
* Defining these options will enable the corresponding command on the EC
* console.
*/
#undef CONFIG_CMD_ACCELS
#undef CONFIG_CMD_ACCEL_FIFO
#undef CONFIG_CMD_ACCEL_INFO
#define CONFIG_CMD_ACCELSPOOF
#define CONFIG_CMD_ADC
#undef CONFIG_CMD_ALS
#define CONFIG_CMD_APTHROTTLE
#undef CONFIG_CMD_BATDEBUG
#define CONFIG_CMD_BATTFAKE
#undef CONFIG_CMD_BATT_MFG_ACCESS
#undef CONFIG_CMD_BATTERY_CONFIG
#undef CONFIG_CMD_BUTTON
#define CONFIG_CMD_CBI
#undef CONFIG_CMD_PD_SRCCAPS_REDUCED_SIZE
#undef CONFIG_CMD_VBUS
/*
* HAS_TASK_CHIPSET implies the GSC presence.
* HAS_TASK_CONSOLE means UART console enabled.
* chargen command is needed for UART stress test.
*/
#if defined(HAS_TASK_CHIPSET) && defined(HAS_TASK_CONSOLE)
#define CONFIG_CMD_CHARGEN
#else
#undef CONFIG_CMD_CHARGEN
#endif
#define CONFIG_CMD_CHARGER
/* Extra debugging info for the charger */
#define CONFIG_CHARGE_DEBUG
#undef CONFIG_CMD_CHARGER_ADC_AMON_BMON
#undef CONFIG_CMD_CHARGER_DUMP
#undef CONFIG_CMD_CHARGER_PROFILE_OVERRIDE
#undef CONFIG_CMD_CHARGER_PROFILE_OVERRIDE_TEST
#define CONFIG_CMD_CHARGE_SUPPLIER_INFO
#undef CONFIG_CMD_CHGRAMP
#undef CONFIG_CMD_CLOCKGATES
#undef CONFIG_CMD_COMXTEST
#define CONFIG_CMD_CRASH
#define CONFIG_CMD_DEVICE_EVENT
#undef CONFIG_CMD_DLOG
#undef CONFIG_CMD_ECTEMP
#define CONFIG_CMD_FASTCHARGE
#undef CONFIG_CMD_FLASH
#define CONFIG_CMD_FLASHINFO
#undef CONFIG_CMD_FLASH_TRISTATE
#undef CONFIG_CMD_FORCETIME
#undef CONFIG_CMD_FPSENSOR_DEBUG
#define CONFIG_CMD_GETTIME
#undef CONFIG_CMD_GL3590
#undef CONFIG_CMD_GPIO_EXTENDED
#undef CONFIG_CMD_GT7288
#define CONFIG_CMD_HASH
#define CONFIG_CMD_HCDEBUG
#undef CONFIG_CMD_HOSTCMD
#undef CONFIG_CMD_I2CWEDGE
#undef CONFIG_CMD_I2C_PROTECT
#define CONFIG_CMD_I2C_SCAN
#undef CONFIG_CMD_I2C_SPEED
#undef CONFIG_CMD_I2C_STRESS_TEST
#undef CONFIG_CMD_I2C_STRESS_TEST_ACCEL
#undef CONFIG_CMD_I2C_STRESS_TEST_ALS
#undef CONFIG_CMD_I2C_STRESS_TEST_BATTERY
#undef CONFIG_CMD_I2C_STRESS_TEST_CHARGER
#undef CONFIG_CMD_I2C_STRESS_TEST_TCPC
#define CONFIG_CMD_I2C_XFER
#undef CONFIG_CMD_I2C_XFER_RAW
#define CONFIG_CMD_IDLE_STATS
#define CONFIG_CMD_INA
#undef CONFIG_CMD_JUMPTAGS
#define CONFIG_CMD_KEYBOARD
#undef CONFIG_CMD_LEDTEST
#undef CONFIG_CMD_MCDP
#define CONFIG_CMD_MD
#define CONFIG_CMD_MEM
#define CONFIG_CMD_MFALLOW
#define CONFIG_CMD_MMAPINFO
#define CONFIG_CMD_PD
#undef CONFIG_CMD_PD_DEV_DUMP_INFO
#undef CONFIG_CMD_PD_FLASH
#undef CONFIG_CMD_PD_TIMER
#define CONFIG_CMD_PECI
#undef CONFIG_CMD_PLL
#define CONFIG_CMD_POWERINDEBUG
#undef CONFIG_CMD_POWERLED
#define CONFIG_CMD_PWR_AVG
#define CONFIG_CMD_POWER_AP
#undef CONFIG_CMD_PPC_DUMP
#undef CONFIG_CMD_PS2
#undef CONFIG_CMD_RAND
#define CONFIG_CMD_REGULATOR
#undef CONFIG_CMD_RESET_FLAGS
#undef CONFIG_CMD_RETIMER
#undef CONFIG_CMD_RTC
#undef CONFIG_CMD_RTC_ALARM
#define CONFIG_CMD_RW
#undef CONFIG_CMD_S5_TIMEOUT
#undef CONFIG_CMD_SCRATCHPAD
#undef CONFIG_CMD_SEVEN_SEG_DISPLAY
#define CONFIG_CMD_SHMEM
#define CONFIG_CMD_SLEEPMASK
#define CONFIG_CMD_SLEEPMASK_SET
#undef CONFIG_CMD_SPI_FLASH
#undef CONFIG_CMD_SPI_NOR
#undef CONFIG_CMD_SPI_XFER
#define CONFIG_CMD_SYSINFO
#define CONFIG_CMD_SYSJUMP
#define CONFIG_CMD_SYSLOCK
#undef CONFIG_CMD_TASK_RESET
#undef CONFIG_CMD_TASKREADY
#undef CONFIG_CMD_TCPC_DUMP
#define CONFIG_CMD_TEMP_SENSOR
#define CONFIG_CMD_TIMERINFO
#define CONFIG_CMD_TYPEC
#undef CONFIG_CMD_USART_INFO
#undef CONFIG_CMD_USB_PD_CABLE
#undef CONFIG_CMD_USB_PD_PE
#define CONFIG_CMD_WAITMS
#undef CONFIG_CMD_AP_RESET_LOG
/*****************************************************************************/
/* Provide common core code to output panic information without interrupts. */
#define CONFIG_COMMON_PANIC_OUTPUT
/*
* Certain platforms(e.g. eve, poppy) cannot retain panic info in data ram since
* VCC is powered down on EC reset. On such platforms, panic data needs to be
* saved/restored to persistent storage by using chip specific
* implementations. This option can be enabled by those platforms that have and
* wish to use chip-implemented panic backup/restore functions.
*/
#undef CONFIG_CHIP_PANIC_BACKUP
/* Don't save General Purpose Registers during panic */
#undef CONFIG_PANIC_STRIP_GPR
/* Provide another output method of panic information by console channel */
#undef CONFIG_PANIC_CONSOLE_OUTPUT
/* When defined, it enables build assert for panic data structure size */
#undef CONFIG_RO_PANIC_DATA_SIZE
/*
* When defined, it enables system safe mode. System safe mode allows the AP to
* capture the EC state after a panic.
*/
#undef CONFIG_SYSTEM_SAFE_MODE
#define CONFIG_SYSTEM_SAFE_MODE_TIMEOUT_MSEC 4000
/*
* Prints the stack of the faulting task to the console buffer in system safe
* mode.
*/
#define CONFIG_SYSTEM_SAFE_MODE_PRINT_STACK
/*
* Enables fetching a memory dump using host commands. This is useful when
* debugging panics. May not dump all memory, e.g. sensitive memory will
* not be dumped.
*/
#undef CONFIG_HOST_COMMAND_MEMORY_DUMP
/*
* Panic on watchdog warning instead of waiting for a regular watchdog.
* Combined with with system safe mode, this allows for capturing
* extra debug information about the system state.
* WATCHDOG_PERIOD_MS should be lengthened when this option is enabled,
* since it is effectivley shortened by WATCHDOG_WARNING_LEADING_TIME_MS.
*/
#undef CONFIG_PANIC_ON_WATCHDOG_WARNING
/**
* Enables nesting for the `crash` console command.
* Calling the crash console command with multiple crash arguments
* will result in nested crashes in the order specified.
*/
#define CONFIG_CMD_CRASH_NESTED
/*
* Provide the default GPIO abstraction layer.
* You want this unless you are doing a really tiny firmware.
*/
#define CONFIG_COMMON_GPIO
/*
* Provides smaller GPIO names to reduce flash size. Instead of the 'name'
* field in GPIO macro it will concat 'port' and 'pin' to reduce flash size.
*/
#undef CONFIG_COMMON_GPIO_SHORTNAMES
/*
* Control the IO pins of IO expander via IO Expander APIs
*
* If defined, declare the IOEX pin with macro IOEX. For example:
* IOEX(IO_NAME, EXPIN(0, 0, 0), GPIO_OUT_HIGH)
* For more details, see gpio_list.h.
*
* WARNING: make sure none of IOEX IOs are accessed at interrupt level / with
* interrupts disabled. Doing so may hang the EC because IO expanders may rely
* on I2C interrupts.
*
* Some reasons that not unify the GPIO and IOEX APIs have been disscussed and
* filed in the crbug.com/985540.
*/
#undef CONFIG_IO_EXPANDER
/*
* Enable reading levels for whole IO expander port with one call.
* This adds 'get_port' function pointer to 'ioexpander_drv' structure.
* Most drivers don't implement this functionality.
*/
#undef CONFIG_IO_EXPANDER_SUPPORT_GET_PORT
/*
* EC's supporting powering down GPIO pins.
* Add flag GPIO_POWER_DOWN and additional API's.
*/
#undef CONFIG_GPIO_POWER_DOWN
/* Allow unaligned access */
#undef CONFIG_ALLOW_UNALIGNED_ACCESS
/*
* Provide common runtime layer code (tasks, hooks ...)
* You want this unless you are doing a really tiny firmware.
*/
#define CONFIG_COMMON_RUNTIME
/* Allow deferred (async) flash protect*/
#define CONFIG_FLASH_PROTECT_DEFERRED
/* Provide common core code to handle the operating system timers. */
#define CONFIG_COMMON_TIMER
/*****************************************************************************/
/*
* Make it possible for console to be output to different channels that can be
* turned on and off.
*
* This is useful as a developer convenience when the console is crowded with
* messages, to make it easier to use the interactive console.
* FAFT and servod also use this feature.
*
* Boards may #undef this to reduce image size.
*/
#define CONFIG_CONSOLE_CHANNEL
/*
* Provide additional help on console commands, such as the supported
* options/usage.
*
* Boards may #undef this to reduce image size.
*/
#define CONFIG_CONSOLE_CMDHELP
/*
* Add a .flags field to the console commands data structure, to distinguish
* some commands from others. The available flags bits are defined in
* include/console.h
*/
#undef CONFIG_CONSOLE_COMMAND_FLAGS
/*
* One use of the .flags field is to make some console commands restricted, so
* that they can be disabled or enabled at run time.
*/
#undef CONFIG_RESTRICTED_CONSOLE_COMMANDS
/* The default .flags field value is zero, unless overridden with this. */
#undef CONFIG_CONSOLE_COMMAND_FLAGS_DEFAULT
/*
* Enable EC_CMD_CONSOLE_READ V1. One could disable this config to prevent
* kernel from creating the `console_log` debugfs entry.
*/
#define CONFIG_CONSOLE_ENABLE_READ_V1
/*
* Number of entries in console history buffer.
*
* Boards may #undef this to reduce memory usage.
*/
#define CONFIG_CONSOLE_HISTORY 8
/* Max length of a single line of input */
#define CONFIG_CONSOLE_INPUT_LINE_SIZE 80
/* Amount of time to keep the console in use flag */
#define CONFIG_CONSOLE_IN_USE_ON_BOOT_TIME (15 * SECOND)
/* Enable verbose output to UART console and extra timestamp print precision. */
#define CONFIG_CONSOLE_VERBOSE
/*****************************************************************************/
/* Support for EC-EC communication */
/*
* Board is client or server in EC-EC communication.
*/
#undef CONFIG_EC_EC_COMM_CLIENT
#undef CONFIG_EC_EC_COMM_SERVER
/*
* Board support battery-related functions in EC-EC communication.
*/
#undef CONFIG_EC_EC_COMM_BATTERY
/*
* Enable the experimental console.
*
* NOTE: If you enable this experimental console, you will need to run the
* EC-3PO interactive console in the util directory! Otherwise, you won't be
* able to enter any commands.
*/
#undef CONFIG_EXPERIMENTAL_CONSOLE
/* Include CRC-8 utility function */
#undef CONFIG_CRC8
/*****************************************************************************/
/*
* Debugging config
*
* Note that these options are enabled by default, because they're really
* handy for debugging systems during bringup and even at factory time.
*
* A board may undefine any or all of these to reduce image size and RAM usage,
* at the cost of debuggability.
*/
/*
* ASSERT() macros are checked at runtime. See CONFIG_DEBUG_ASSERT_REBOOTS
* to see what happens if one fails.
*
* Boards may #undef this to reduce image size.
*/
#define CONFIG_DEBUG_ASSERT
/*
* Prints a message and reboots if an ASSERT() macro fails at runtime. When
* enabled, an ASSERT() which fails will produce a message of the form:
*
* ASSERTION FAILURE '<expr>' in function() at file:line
*
* If this is not defined, failing ASSERT() will trigger a BKPT instruction
* instead.
*
* Ignored if CONFIG_DEBUG_ASSERT is not defined.
*
* Boards may #undef this to reduce image size.
*/
#define CONFIG_DEBUG_ASSERT_REBOOTS
/*
* On assertion failure, prints only the file name and the line number.
*
* Ignored if CONFIG_DEBUG_ASSERT_REBOOTS is not defined.
*
* Boards may define this to reduce image size.
*/
#undef CONFIG_DEBUG_ASSERT_BRIEF
/*
* Disable the write buffer used for default memory map accesses.
* This turns "Imprecise data bus errors" into "Precise" errors
* in exception traces at the cost of some performance.
* This may help identify the offending instruction causing an
* exception. Supported on cortex-m.
*/
#undef CONFIG_DEBUG_DISABLE_WRITE_BUFFER
/*
* Print additional information when exceptions are triggered, such as the
* fault address, here shown as bfar. This shows the reason for the fault
* and may help to determine the cause.
*
* === EXCEPTION: 03 ====== xPSR: 01000000 ===========
* r0 :0000000b r1 :00000047 r2 :60000000 r3 :200013dd
* r4 :00000000 r5 :080053f4 r6 :200013d0 r7 :00000002
* r8 :00000000 r9 :200013de r10:00000000 r11:00000000
* r12:00000000 sp :200009a0 lr :08002b85 pc :08003a8a
* Precise data bus error, Forced hard fault, Vector catch, bfar = 60000000
* cfsr = 00008200, shcsr = 00000000, hfsr = 40000000, dfsr = 00000008
*
* If this is not defined, only a register dump will be printed.
*
* Boards may #undef this to reduce image size.
*/
#define CONFIG_DEBUG_EXCEPTIONS
/*
* Print orientation when device orientation changes
* (requires CONFIG_SENSOR_ORIENTATION)
*/
#undef CONFIG_DEBUG_ORIENTATION
/* Support Synchronous UART debug printf. */
#undef CONFIG_DEBUG_PRINTF
/* Check for stack overflows on every context switch */
#define CONFIG_DEBUG_STACK_OVERFLOW
/*****************************************************************************/
/* Support events from devices attached to the EC */
#undef CONFIG_DEVICE_EVENT
/* Monitor the states of other devices */
#undef CONFIG_DEVICE_STATE
/* Support DMA transfers inside the EC */
#undef CONFIG_DMA_CROS
/* Use the common interrupt handlers for DMA IRQs */
#define CONFIG_DMA_DEFAULT_HANDLERS
/* Compile extra debugging and tests for the DMA module */
#undef CONFIG_DMA_HELP
/*
* If the board supports DRAM, base DRAM address for the chip, where we want
* to load extra code/data (address from chip address space).
*/
#undef CONFIG_DRAM_BASE
/*
* If the board supports DRAM, base DRAM address to load the extra code/data
* (if loaded by AP, this is the AP physical address space).
*/
#undef CONFIG_DRAM_BASE_LOAD
/* DRAM size. */
#undef CONFIG_DRAM_SIZE
/* Usually, EC capable of sensor speeds up to 250 Hz */
#define CONFIG_EC_MAX_SENSOR_FREQ_DEFAULT_MILLIHZ 250000
/* Maximal EC sampling rate */
#undef CONFIG_EC_MAX_SENSOR_FREQ_MILLIHZ
#ifndef CONFIG_ZEPHYR
/* Support EC chip internal data EEPROM */
#undef CONFIG_EEPROM
#endif /* CONFIG_ZEPHYR */
/*
* Support for sending emulated sysrq events to AP (on designs with a keyboard,
* sysrq is passed as normal key presses).
*/
#undef CONFIG_EMULATED_SYSRQ
/* Include code for handling external power */
#define CONFIG_EXTPOWER
/* Support detecting external power presence via a GPIO */
#undef CONFIG_EXTPOWER_GPIO
/* Default debounce time for external power signal */
#define CONFIG_EXTPOWER_DEBOUNCE_MS 30
/* Enable fake shared memory buffer, which is used by emulators. */
#undef CONFIG_FAKE_SHMEM
/*****************************************************************************/
/* Number of cooling fans. Undef if none. */
#undef CONFIG_FANS
/* Percentage to which all fans are set at initiation */
#define CONFIG_FAN_INIT_SPEED 100
/* Allow board custom fan control */
#undef CONFIG_CUSTOM_FAN_CONTROL
/* Support fan control while in low-power idle */
#undef CONFIG_FAN_DSLEEP
/*
* Fans have non-const configuration.
*/
#undef CONFIG_FAN_DYNAMIC
/*
* Fan config have non-const configuration.
*/
#undef CONFIG_FAN_DYNAMIC_CONFIG
/*
* Replace the default fan_percent_to_rpm() function with a board-specific
* implementation in board.c
*/
#undef CONFIG_FAN_RPM_CUSTOM
/*
* We normally check and update the fans once per second (HOOK_SECOND). If this
* is #defined to a postive integer N, we will only update the fans every N
* seconds instead.
*/
#undef CONFIG_FAN_UPDATE_PERIOD
/*
* Enable fan slow response control mechanism.
* A specific type of fan needs a longer time to output the TACH
* signal to EC after EC outputs the PWM signal to the fan.
* During this period, the driver will read two consecutive RPM = 0.
* In this case, don't step the PWM duty too aggressively
*/
#undef CONFIG_FAN_BYPASS_SLOW_RESPONSE
/*****************************************************************************/
/* Flash configuration */
/* This enables console commands and higher-level features */
#define CONFIG_FLASH_CROS
/* This enables chip-specific access functions */
#define CONFIG_FLASH_PHYSICAL
#undef CONFIG_FLASH_BANK_SIZE
/* Provide event log stored in flash memory. */
#undef CONFIG_FLASH_LOG
#undef CONFIG_FLASH_LOG_BASE
#undef CONFIG_FLASH_LOG_SPACE
#undef CONFIG_FLASH_ERASED_VALUE32
#undef CONFIG_FLASH_ERASE_SIZE
/* Allow deferred (async) flash erase */
#undef CONFIG_FLASH_DEFERRED_ERASE
/* Flash must be selected for write/erase operations to succeed. */
#undef CONFIG_FLASH_SELECT_REQUIRED
/* Base address of program memory */
#undef CONFIG_PROGRAM_MEMORY_BASE
/* Base address of program memory (physical address of AP) */
#undef CONFIG_PROGRAM_MEMORY_BASE_LOAD
/* ec.bin image will be padded to match flash size. */
#define CONFIG_IMAGE_PADDING
/*
* EC code can reside on internal or external storage. Only one of these
* CONFIGs should be defined. CONFIG_INTERNAL_STORAGE implies XIP
* (eXecute-In-Place) semantics. i.e. code is being fetched directly from
* storage media.
*/
#undef CONFIG_EXTERNAL_STORAGE
#undef CONFIG_INTERNAL_STORAGE
/*
* Flash is directly mapped into the EC's address space. If this is not
* defined, the flash driver must implement flash_physical_read().
*/
#define CONFIG_MAPPED_STORAGE
/*
* Base address of memory-mapped flash storage, for platforms which define
* CONFIG_MAPPED_STORAGE.
*/
#undef CONFIG_MAPPED_STORAGE_BASE
#undef CONFIG_FLASH_PROTECT_NEXT_BOOT
/*
* Some platforms need to write protect RW independently of all flash.
*/
#undef CONFIG_FLASH_PROTECT_RW
/*
* Enable Flash Write Protect by default. Some platforms like Servo_v4
* development tools do not use write protection. This enables the feature
* to be removed to save flash space
*/
#define CONFIG_CMD_FLASH_WP
/*
* Store persistent write protect for the flash inside the flash data itself.
* This allows ECs with internal flash to emulate something closer to a SPI
* flash write protect register. If this is not defined, write protect state
* is maintained solely by the physical flash driver.
*/
#define CONFIG_FLASH_PSTATE
/*
* Store the pstate data in its own dedicated bank of flash. This allows
* disabling the protect-RO-at-boot flag without rewriting the RO firmware,
* but costs a bank of flash.
*
* If this is not defined, the pstate data is stored inside the RO firmware
* image itself. This is more space-efficient, but the only way to clear the
* flag once it's set is to rewrite the RO firmware (after removing the WP
* screw, of course).
*/
#define CONFIG_FLASH_PSTATE_BANK
/*
* Lock the PSTATE by default (currently only supported when
* CONFIG_FLASH_PSTATE_BANK is not defined).
*/
#undef CONFIG_FLASH_PSTATE_LOCKED
/*
* Enable readout protection.
*/
#undef CONFIG_FLASH_READOUT_PROTECTION
/*
* Use Read-out protection status as PSTATE, i.e. after RDP is enabled, we never
* allow RO protection to be disabled.
*
* This is used when we want to prevent read-back of some critical region (e.g.
* rollback), even in DFU/BOOT0 mode.
*
* Note that this significantly changes the behaviour or flash protection,
* as this tie EC_FLASH_PROTECT_RO_AT_BOOT with RDP status: it makes no
* sense to be able to unlock RO protection if RDP is enabled, as a custom RO
* could allow protected regions readback.
*
* TODO(crbug.com/888109): Implementation is currently only available on
* STM32H7 and STM32F4, and requires more documentation.
*/
#undef CONFIG_FLASH_READOUT_PROTECTION_AS_PSTATE
/*
* For flash that is segemented in different regions.
*/
#undef CONFIG_FLASH_MULTIPLE_REGION
/* Number of regions of different size/type */
#undef CONFIG_FLASH_REGION_TYPE_COUNT
/* Total size of writable flash */
#undef CONFIG_FLASH_SIZE_BYTES
/* Minimum flash write size (in bytes) */
#undef CONFIG_FLASH_WRITE_SIZE
/* Most efficient flash write size (in bytes) */
#undef CONFIG_FLASH_WRITE_IDEAL_SIZE
/* Protected region of storage belonging to EC */
#undef CONFIG_EC_PROTECTED_STORAGE_OFF
#undef CONFIG_EC_PROTECTED_STORAGE_SIZE
/* Writable region of storage belonging to EC */
#undef CONFIG_EC_WRITABLE_STORAGE_OFF
#undef CONFIG_EC_WRITABLE_STORAGE_SIZE
/*****************************************************************************/
/* Fingerprint Sensor Configuration */
#undef CONFIG_FINGERPRINT_MCU
#undef CONFIG_FP_SENSOR_FPC1025
#undef CONFIG_FP_SENSOR_FPC1035
#undef CONFIG_FP_SENSOR_FPC1145
#undef CONFIG_FP_SENSOR_ELAN80
#undef CONFIG_FP_SENSOR_ELAN80SG
#undef CONFIG_FP_SENSOR_ELAN515
/*****************************************************************************/
/* Include a flashmap in the compiled firmware image */
#define CONFIG_FMAP
/* Allow EC serial console input to wake up the EC from STOP mode */
#undef CONFIG_FORCE_CONSOLE_RESUME
#ifndef CONFIG_ZEPHYR
/* Enable support for floating point unit */
#undef CONFIG_FPU
#endif /* CONFIG_ZEPHYR */
/* Enable warnings on FPU exceptions */
#undef CONFIG_FPU_WARNINGS
/*****************************************************************************/
/* Firmware region configuration */
#undef CONFIG_FW_PSTATE_OFF
#undef CONFIG_FW_PSTATE_SIZE
/*
* Read-only / read-write image configuration.
* Images may reside on storage (ex. external or internal SPI) at a different
* offset than when copied to program memory. Hence, two sets of offsets,
* for STORAGE and for MEMORY.
*/
#undef CONFIG_RO_MEM_OFF
/* Offset relative to CONFIG_EC_PROTECTED_STORAGE_OFF */
#undef CONFIG_RO_STORAGE_OFF
#undef CONFIG_RO_SIZE
#undef CONFIG_RW_MEM_OFF
/* Some targets include two RW sections in the image. */
#undef CONFIG_RW_B
/* This is the offset of the second RW section into the flash. */
#undef CONFIG_RW_B_MEM_OFF
/* Offset relative to CONFIG_EC_WRITABLE_STORAGE_OFF */
#undef CONFIG_RW_STORAGE_OFF
#undef CONFIG_RW_SIZE
/*
* Offset relative to CONFIG_EC_PROTECTED_STORAGE_OFF
* These define a region of flash used to store ROM resident data objects
* for RO images. This is only possible when the program memory is smaller
* than CONFIG_EC_PROTECTED_STORAGE_SIZE.
*/
#undef CONFIG_RO_ROM_RESIDENT_MEM_OFF
#undef CONFIG_RO_ROM_RESIDENT_SIZE
/*
* Offset relative to CONFIG_EC_WRITABLE_STORAGE_OFF
* These define a region of flash used to store ROM resident data objects
* for RW images. This is only possible when the program memory is smaller
* than CONFIG_EC_WRITABLE_STORAGE_SIZE.
*/
#undef CONFIG_RW_ROM_RESIDENT_MEM_OFF
#undef CONFIG_RW_ROM_RESIDENT_SIZE
/*
* NPCX-specific bootheader geometry.
* TODO(crosbug.com/p/23796): Factor these CONFIGs out.
*/
#undef CONFIG_RO_HDR_MEM_OFF
#undef CONFIG_RO_HDR_SIZE
/*
* Support for saving extended reset flags in backup RAM.
*
* Please undefine it when RO firmware doesn't support extended reset flags.
* Otherwise, compatibility between RO and RW will be broken, because
* BKPDATA_INDEX_SAVED_RESET_FLAGS_2 was defined in the middle of bkpdata_index
* enum.
*/
#define CONFIG_STM32_EXTENDED_RESET_FLAGS
/*
* Write protect region offset / size. This region normally encompasses the
* RO image, but may also contain additional images or data.
*/
#undef CONFIG_WP_STORAGE_OFF
#undef CONFIG_WP_STORAGE_SIZE
/*
* Rollback protect region. If CONFIG_ROLLBACK is defined to enable the rollback
* protect region, CONFIG_ROLLBACK_OFF and CONFIG_ROLLBACK_SIZE must be defined
* too.
*/
#undef CONFIG_ROLLBACK
#undef CONFIG_ROLLBACK_OFF
#undef CONFIG_ROLLBACK_SIZE
/* If defined, add support for storing some entropy in the rollback region. */
#undef CONFIG_ROLLBACK_SECRET_SIZE
/* If defined, protect rollback region readback using MPU. */
#undef CONFIG_ROLLBACK_MPU_PROTECT
/*
* If defined, inject some locally generated entropy when secret is updated,
* using board_get_entropy function.
* Large values may take a long time to generate.
*
* This is only meant to add a little bit of extra entropy, when the hardware
* lacks a random number generator (otherwise, the strong entropy can be
* directly added to the secret, using rollback_add_entropy).
*/
#undef CONFIG_ROLLBACK_SECRET_LOCAL_ENTROPY_SIZE
/* If defined, we can update rollback information (RW can unset this). */
#define CONFIG_ROLLBACK_UPDATE
/*
* Current rollback version. Meaningless for RO (but provides the minimum value
* that will be written to the rollback protection at flash time).
*
* For RW, rollback version included in version structure, used by RO to
* determine if the RW image is recent enough and can be jumped to.
*
* Valid values are >= 0, <= INT32_MAX (positive, 32-bit signed integer).
*/
#define CONFIG_ROLLBACK_VERSION 0
/*
* Board Image ec.bin contains a RO firmware. If not defined, the image will
* only contain the RW firmware.
*/
#define CONFIG_FW_INCLUDE_RO
/* If defined, another image (RW) exists with more features */
#undef CONFIG_FW_LIMITED_IMAGE
/*
* If defined, we can use system_get_fw_reset_vector function to decide
* reset vector of RO/RW firmware for sysjump.
*/
#undef CONFIG_FW_RESET_VECTOR
/*****************************************************************************/
/* Motion sensor based gesture recognition information */
/* These all require HAS_TASK_MOTIONSENSE to work */
/* Do we want to detect gestures? */
#undef CONFIG_GESTURE_DETECTION
/* Mask of all sensors used for gesture dectections */
#undef CONFIG_GESTURE_DETECTION_MASK
/* some gesture recognition done in software */
#undef CONFIG_GESTURE_SW_DETECTION
/* enable gesture host interface */
#undef CONFIG_GESTURE_HOST_DETECTION
/* Sensor sampling interval for gesture recognition */
#undef CONFIG_GESTURE_SAMPLING_INTERVAL_MS
/* Enable double tap support. */
#undef CONFIG_GESTURE_SENSOR_DOUBLE_TAP
/*
* Double tap detection parameters
* Double tap works by looking for two isolated Z-axis accelerometer impulses
* preceded and followed by relatively calm periods of accelerometer motion.
*
* Define an outer and inner window. The inner window specifies how
* long the tap impulse is expected to last. The outer window specifies the
* period before the initial tap impluse and after the final tap impulse for
* which to check for relatively calm periods. In between the two impulses
* there is a minimum and maximum interstice time allowed.
*
* Define an acceleration threshold to detect a tap, in mg.
* Which sensor to look for double tap recognition.
* Use for waking up host.
*/
#undef CONFIG_GESTURE_TAP_OUTER_WINDOW_T
#undef CONFIG_GESTURE_TAP_INNER_WINDOW_T
#undef CONFIG_GESTURE_TAP_MIN_INTERSTICE_T
#undef CONFIG_GESTURE_TAP_MAX_INTERSTICE_T
#undef CONFIG_GESTURE_TAP_THRES_MG
#undef CONFIG_GESTURE_TAP_SENSOR
#undef CONFIG_GESTURE_TAP_FOR_HOST
/* Significant motion activity */
#undef CONFIG_GESTURE_SIGMO
/*
* Significant motion parameters
* Sigmo state machine looks for movement, waits skip milli-seconds,
* and check for movement again with proof milli-seconds.
*/
#undef CONFIG_GESTURE_SIGMO_PROOF_MS
#undef CONFIG_GESTURE_SIGMO_SENSOR
#undef CONFIG_GESTURE_SIGMO_SKIP_MS
#undef CONFIG_GESTURE_SIGMO_THRES_MG
/* Support getting gpio flags. */
#undef CONFIG_GPIO_GET_EXTENDED
/*
* GPU Drivers
*/
#undef CONFIG_GPU_NVIDIA
/* Do we want to detect the lid angle? */
#undef CONFIG_LID_ANGLE
/* Which sensor is located on the base? */
#undef CONFIG_LID_ANGLE_SENSOR_BASE
/* Which sensor is located on the lid? */
#undef CONFIG_LID_ANGLE_SENSOR_LID
/*
* Allows using the lid angle measurement to determine if peripheral devices
* should be enabled or disabled, like key scanning, trackpad interrupt.
*/
#undef CONFIG_LID_ANGLE_UPDATE
/*
* Defer the (re)configuration of motion sensors after the suspend event or
* resume event. Sensor power rails may be powered up or down asynchronously
* from the EC, so it may be necessary to wait some time period before
* reconfiguring after a transition.
*/
#define CONFIG_MOTION_SENSE_SUSPEND_DELAY_US 0
#define CONFIG_MOTION_SENSE_RESUME_DELAY_US 0
/* Define motion sensor count in board layer */
#undef CONFIG_DYNAMIC_MOTION_SENSOR_COUNT
/* Define when LPC memory space needs to be populated. */
#undef CONFIG_MOTION_FILL_LPC_SENSE_DATA
/******************************************************************************/
/* Host to RAM (H2RAM) Memory Mapping */
/* H2RAM Base memory address */
#undef CONFIG_H2RAM_BASE
/* H2RAM Size */
#undef CONFIG_H2RAM_SIZE
/* H2RAM Host LPC I/O base memory address */
#undef CONFIG_H2RAM_HOST_LPC_IO_BASE
/* ISH boot start address */
#undef CONFIG_ISH_BOOT_START
/*
* Define the minimal amount of time (in ms) betwen running motion sense task
* loop.
*/
#define CONFIG_MOTION_MIN_SENSE_WAIT_TIME 3
/*****************************************************************************/
/*
* Support the host asking the EC about the status of the most recent host
* command.
*
* When the AP is attached to the EC via a serialized bus such as I2C or SPI,
* it needs a way to minimize the length of time an EC command will tie up the
* bus (and the kernel driver on the AP). If this config is defined, the EC
* may return an in-progress result code for slow commands such as flash
* erase/write instead of stalling until the command finishes processing, and
* the AP may then inquire the status of the current command and/or the result
* of the previous command.
*/
#undef CONFIG_HOST_COMMAND_STATUS
/* clear bit(s) to mask reporting of an EC_HOST_EVENT_XXX event(s) */
#define CONFIG_HOST_EVENT_REPORT_MASK 0xffffffffffffffffULL
/*
* The host commands are sorted in the .rodata.hcmds section so use the binary
* search algorithm to match a command to its handler
*/
#undef CONFIG_HOSTCMD_SECTION_SORTED
/*
* Host command parameters and response are 32-bit aligned. This generates
* much more efficient code on ARM.
*/
#undef CONFIG_HOSTCMD_ALIGNED
/*
* Include host commands to fetch battery information from
* ec_response_battery_static/dynamic_info structures, only makes sense when
* CONFIG_BATTERY_V2 is enabled.
*/
#undef CONFIG_HOSTCMD_BATTERY_V2
/* Default hcdebug mode, e.g. HCDEBUG_OFF or HCDEBUG_NORMAL */
#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_NORMAL
/* If we have host command task, assume we also are using host events. */
#ifdef HAS_TASK_HOSTCMD
#define CONFIG_HOSTCMD_EVENTS
#else
#undef CONFIG_HOSTCMD_EVENTS
#endif
/*
* Board supports host command to get EC SPI flash info. This is typically
* only needed if the factory needs to determine which of several possible SPI
* flash chips is attached to the EC on a given board.
*/
#undef CONFIG_HOSTCMD_FLASH_SPI_INFO
/*
* For ECs where the host command interface is I2C, peripheral
* address which the EC will respond to.
*/
#undef CONFIG_HOSTCMD_I2C_ADDR_FLAGS
/*
* Accept EC host commands over the SPI host interface. The AP is SPI
* controller and the EC is the SPI peripheral for this configuration.
*/
#undef CONFIG_HOST_INTERFACE_SHI
/*
* Host command rate limiting assures EC will have time to process lower
* priority tasks even if the AP is hammering the EC with host commands.
* If there is less than CONFIG_HOSTCMD_RATE_LIMITING_MIN_REST between
* host commands for CONFIG_HOSTCMD_RATE_LIMITING_PERIOD, then a
* recess period of CONFIG_HOSTCMD_RATE_LIMITING_RECESS will be
* enforced.
*/
#define CONFIG_HOSTCMD_RATE_LIMITING_PERIOD (500 * MSEC)
#define CONFIG_HOSTCMD_RATE_LIMITING_MIN_REST (3 * MSEC)
#define CONFIG_HOSTCMD_RATE_LIMITING_RECESS (20 * MSEC)
/* PD MCU supports host commands */
#undef CONFIG_HOSTCMD_PD
/* EC supports EC_CMD_PD_CHIP_INFO */
#define CONFIG_HOSTCMD_PD_CHIP_INFO
/* EC supports EC_CMD_TYPEC_DISCOVERY */
#define CONFIG_HOSTCMD_TYPEC_DISCOVERY
/* EC supports EC_CMD_TYPEC_CONTROL
* Note: this gets undefined later if TCPMv1 is selected.
*/
#define CONFIG_HOSTCMD_TYPEC_CONTROL
/* EC supports EC_CMD_TYPEC_STATUS */
#define CONFIG_HOSTCMD_TYPEC_STATUS
/*
* Use if PD MCU controls charging (selecting charging port and input
* current limit).
*/
#undef CONFIG_HOSTCMD_PD_CHG_CTRL
/* Panic when status of PD MCU reflects that it has crashed */
#undef CONFIG_HOSTCMD_PD_PANIC
/* Board supports RTC host commands */
#undef CONFIG_HOSTCMD_RTC
/* EC controls the board's SKU ID and can report that to the AP */
#undef CONFIG_HOSTCMD_SKUID
/* Set SKU ID from AP */
#undef CONFIG_HOSTCMD_AP_SET_SKUID
/* Command to issue AP reset */
#undef CONFIG_HOSTCMD_AP_RESET
/*
* Support voltage regulator host command
* If defined, the board should also implement board functions defined in
* include/regulator.h
*/
#undef CONFIG_HOSTCMD_REGULATOR
/* Flash commands over PD */
#define CONFIG_HOSTCMD_FLASHPD
/* Host command to control USB-PD chip */
#undef CONFIG_HOSTCMD_PD_CONTROL
/* Set entry in PD MCU's device rw_hash table */
#define CONFIG_HOSTCMD_RWHASHPD
/* Enable EC_CMD_LOCATE_CHIP */
#define CONFIG_HOSTCMD_LOCATE_CHIP
/* Command to get the EC uptime (and optionally AP reset stats) */
#define CONFIG_HOSTCMD_GET_UPTIME_INFO
/* Include host command to control I2C busses (get, set speed, etc.) */
#undef CONFIG_HOSTCMD_I2C_CONTROL
/*
* List of host commands whose debug output will be suppressed
* By default remove periodic commands and commands called often (SENSE).
*/
#define CONFIG_SUPPRESSED_HOST_COMMANDS \
EC_CMD_CONSOLE_SNAPSHOT, EC_CMD_CONSOLE_READ, EC_CMD_USB_PD_DISCOVERY, \
EC_CMD_USB_PD_POWER_INFO, EC_CMD_PD_GET_LOG_ENTRY, \
EC_CMD_MOTION_SENSE_CMD, EC_CMD_GET_NEXT_EVENT, \
EC_CMD_GET_UPTIME_INFO
/*****************************************************************************/
/* Enable debugging and profiling statistics for hook functions */
#undef CONFIG_HOOK_DEBUG
/*****************************************************************************/
/* CRC configuration */
/* Enable the hardware accelerator for CRC computation */
#undef CONFIG_HW_CRC
/* Enable the software routine for CRC computation */
#undef CONFIG_SW_CRC
/*****************************************************************************/
/* Enable system hibernate */
#define CONFIG_HIBERNATE
/* Default delay after shutting down before hibernating */
#define CONFIG_HIBERNATE_DELAY_SEC 3600
/* For ECs with multiple wakeup pins, define enabled wakeup pins */
#undef CONFIG_HIBERNATE_WAKEUP_PINS
/*
* If defined, chip hibernation is used. Your board needs to define wake-up
* signals. Undefine this to use board hibernation capability.
*/
#define CONFIG_SUPPORT_CHIP_HIBERNATION
/*
* Use PSL (Power Switch Logic) for hibernating. It turns off VCC power rail
* for ultra-low power consumption and uses PSL inputs rely on VSBY power rail
* to wake up ec and the whole system.
*/
#undef CONFIG_HIBERNATE_PSL
/* Wake up pins have non-const configuration. */
#undef CONFIG_HIBERNATE_WAKE_PINS_DYNAMIC
/* In npcx9 and later chips, enhanced PSL features are supported including:
* (1) Pulse mode for PSL_OUT signal.
* (2) Open-drain for PSL_OUT signal (when Pulse mode is enabled.)
* These features can be enabled in board configuration file by adding
* the following bit masks to this flag:
* (1) NPCX_PSL_CFG_PSL_OUT_PULSE.
* (2) NPCX_PSL_CFG_PSL_OUT_OD.
* Ex: #define CONFIG_HIBERNATE_PSL_OUT_FLAGS \
(NPCX_PSL_CFG_PSL_OUT_PULSE | NPCX_PSL_CFG_PSL_OUT_OD)
*/
#undef CONFIG_HIBERNATE_PSL_OUT_FLAGS
/*
* Enable VCC1_RST pin as the input of PSL wakeup source. When Enabling this,
* the VCC1_RST pin must be connected to the VSBY supply via an external pull-up
* resistor of maximum 100K ohm .
* TODO: Remove this when NPCX9 A2 chip is available because A2
* chip will enable VCC1_RST to PSL wakeup source and lock it in
* the booter.
*/
#undef CONFIG_HIBERNATE_PSL_VCC1_RST_WAKEUP
/*
* Compensate the elapsed time for the RTC which couldn't work in hibernate PSL
* after hibernation wake-up. Currently, NPCX9 supports LCT to compensate the
* elapsed time for the RTC.
*/
#undef CONFIG_HIBERNATE_PSL_COMPENSATE_RTC
/*
* Chip supports a 64-bit hardware timer and implements
* __hw_clock_source_read64 and __hw_clock_source_set64.
*
* Chips with this config enabled may optionally define
* __hw_clock_source_read as a 32-bit set function for
* latency-sensitive situations.
*/
#undef CONFIG_HWTIMER_64BIT
/* Use a hardware specific udelay(). */
#undef CONFIG_HW_SPECIFIC_UDELAY
/*****************************************************************************/
/* I2C configuration */
#ifndef CONFIG_ZEPHYR
#undef CONFIG_I2C
#endif /* CONFIG_ZEPHYR */
#undef CONFIG_I2C_DEBUG
#undef CONFIG_I2C_DEBUG_PASSTHRU
#undef CONFIG_I2C_PASSTHRU_RESTRICTED
#undef CONFIG_I2C_VIRTUAL_BATTERY
/*
* Define this configuration to support smart battery MFG function
* for virtual battery.
*/
#undef CONFIG_SMART_BATTERY_OPTIONAL_MFG_FUNC
/*
* Define this option if an i2c bus may be unpowered at a certain point during
* runtime. An example could be, a sensor bus which is not needed in lower
* power states so the power rail for those sensors is completely disabled.
*
* If defined, your board must provide a board_is_i2c_port_powered() function.
*/
#undef CONFIG_I2C_BUS_MAY_BE_UNPOWERED
/*
* Conservative I2C transmission size per single transaction. For example,
* register of stm32f0 and stm32l4 are limited to be 8 bits for this field.
*/
#define CONFIG_I2C_CHIP_MAX_TRANSFER_SIZE 255
/*
* Enable i2c_xfer() for receiving request larger than
* CONFIG_I2C_CHIP_MAX_TRANSFER_SIZE.
*/
#undef CONFIG_I2C_XFER_LARGE_TRANSFER
/*
* If defined, makes i2c_xfer callback into board-provided functions before the
* start and after the end of every I2C transaction. This can be used by boards
* to implement any I2C device specific quirks e.g. requiring minimum bus-free
* time between every I2C transaction with a device.
*/
#undef CONFIG_I2C_XFER_BOARD_CALLBACK
/*
* EC uses an I2C controller interface.
* Note: if this is defined, i2c_init() will be called
* automatically at board boot.
*/
#undef CONFIG_I2C_CONTROLLER
/* EC uses an I2C peripheral interface */
#undef CONFIG_I2C_PERIPHERAL
/* Defines I2C operation retry count when slave nack'd(EC_ERROR_BUSY) */
#define CONFIG_I2C_NACK_RETRY_COUNT 0
/*
* I2C SCL gating.
*
* If CONFIG_I2C_SCL_GATE_ADDR/PORT is defined, whenever the defined address
* is addressed, CONFIG_I2C_SCL_GATE_GPIO is set to high. When the I2C
* transaction is done, the pin is set back to low.
*/
#undef CONFIG_I2C_SCL_GATE_PORT
#undef CONFIG_I2C_SCL_GATE_ADDR_FLAGS
#undef CONFIG_I2C_SCL_GATE_GPIO
/*
* Some chip supports two owned slave address. The second slave address is used
* for other purpose such as board specific i2c commands. This option can be
* set if user of the second slave address requires larger host packet buffer
* size.
*/
#define CONFIG_I2C_EXTRA_PACKET_SIZE 0
/*
* I2C multi-port controller.
*
* If CONFIG_I2C_MULTI_PORT_CONTROLLER is defined, a single on-chip I2C
* controller may have multiple I2C ports attached. Therefore, I2c operations
* must lock the controller (not just the port) to prevent hardware access
* conflicts.
*/
#undef CONFIG_I2C_MULTI_PORT_CONTROLLER
#ifndef CONFIG_ZEPHYR
/*
* Enable I2C bitbang driver.
*
* If defined, the board must define array i2c_bitbang_ports[] and
* i2c_bitbang_ports_count (same as i2c_ports/i2c_ports_count), but with
* port number starting from I2C_PORT_COUNT, and .drv=&bitbang_drv.
*
* For example:
* {"battery", 2, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA, .drv = &bitbang_drv},
*/
#undef CONFIG_I2C_BITBANG
#endif /* CONFIG_ZEPHYR */
/*
* If defined, reduce I2C traffic from update functions (i2c_update8/16
* and i2c_field_update8/16) by skipping the write if the new value is
* unchanged from the old value. This assumes no side effects from writing an
* unchanged value back out.
*/
#undef CONFIG_I2C_UPDATE_IF_CHANGED
/*
* Packet error checking support for SMBus.
*
* If defined, adds error checking support for i2c_readN, i2c_writeN,
* i2c_read_string and i2c_write_block. Where
* - write operation appends an error checking byte at end of transfer, and
* - read operatoin verifies the correctness of error checking byte from the
* slave.
* Set I2C_FLAG on addr_flags parameter to use this feature.
*
* This option also enables error checking function on smart batteries.
*/
#undef CONFIG_SMBUS_PEC
/* Support I2C HID touchpad interface. */
#undef CONFIG_I2C_HID_TOUCHPAD
/*
* Add hosts-side support for entering programming mode for I2C ITE ECs.
* Must define ite_dfu_config_t for configuration in board file.
*/
#undef CONFIG_ITE_FLASH_SUPPORT
/*****************************************************************************/
/* IPI configuration. Support mt_scp only for now. */
/* EC support Inter-Processor Interrupt. */
#undef CONFIG_IPI
/*
* IPC0/IPI shared object address. This is the starting address of the send
* object and the receive object. Each object contains a buffer.
*/
#undef CONFIG_IPC_SHARED_OBJ_ADDR
/* "buffer" size of ipc_shared_obj. */
#undef CONFIG_IPC_SHARED_OBJ_BUF_SIZE
/* EC support rpmsg name service over IPI. */
#undef CONFIG_RPMSG_NAME_SERVICE
/*****************************************************************************/
/* Current/Power monitor */
/*
* Compile driver for INA219 or INA231 or INA3221.
* Only one of these may be defined (if any).
*/
#ifndef CONFIG_ZEPHYR
/*
* These symbols also exist as Kconfigs in Zephyr. Zephyr based boards
* need to use the upstream driver, or these symbols need to be changed
* downstream to not conflict.
*/
#undef CONFIG_INA219
#undef CONFIG_INA3221
#endif /* CONFIG_ZEPHYR */
#undef CONFIG_INA231
/*****************************************************************************/
/* Inductive charging */
/* Enable inductive charging support */
#undef CONFIG_INDUCTIVE_CHARGING
/******************************************************************************/
/* Support CCGXXF I/O expander built inside PD chip */
#undef CONFIG_IO_EXPANDER_CCGXXF
/*
* Support IT8801 I/O expander.
*
* I2C address KB_DISCRETE_I2C_ADDR_FLAGS and I2C port
* I2C_PORT_KB_DISCRETE must be defined as well.
* Note: these values are only used when accessing the keyboard and PWM
* function of the IT8801 chip. I/O expander functions are accessed using
* the ioex_config[] array.
*/
#undef CONFIG_IO_EXPANDER_IT8801
/* Support Nuvoton NCT38xx I/O expander. */
#undef CONFIG_IO_EXPANDER_NCT38XX
/* Support NXP PCA9534 I/O expander. */
#undef CONFIG_IO_EXPANDER_PCA9534
/* Support NXP PCA9675 I/O expander. */
#undef CONFIG_IO_EXPANDER_PCA9675
/* Support NXP PCAL6408 I/O expander. */
#undef CONFIG_IO_EXPANDER_PCAL6408
/* Support TI TCA64xxA I/O expander. */
#undef CONFIG_IO_EXPANDER_TCA64XXA
/* Number of IO Expander ports */
#undef CONFIG_IO_EXPANDER_PORT_COUNT
/*****************************************************************************/
/* Number of IRQs supported on the EC chip */
#undef CONFIG_IRQ_COUNT
/* Enable LDN for KBC mouse */
#undef CONFIG_IT83XX_ENABLE_MOUSE_DEVICE
/*
* The IT8320 supports e-flash clock up to 48 MHz (IT8390 maximum is 32 MHz).
* Enable it if we want better performance of fetching instruction from e-flash.
*
* This is valid with PLL frequency equal to 48/96MHz only.
*/
#undef CONFIG_IT83XX_FLASH_CLOCK_48MHZ
/*
* If this option is enabled, EC will assert GPG1 pin to reset itself instead of
* triggering an internal reset while receiving a reset request.
*
* IMPORTANT:
* - Don't enable this option if board doesn't support the mechanism.
* - If this option is enabled, please don't declare GPG1 signal in gpio.inc to
* keep its output level is low after reset.
*/
#undef CONFIG_IT83XX_HARD_RESET_BY_GPG1
/*
* Use i2c command queue mode for a single i2c transaction.
* (Applied to port D, E, and F)
*/
#undef CONFIG_IT83XX_I2C_CMD_QUEUE
/*
* Enable it if EC's VBAT won't go low when system's power isn't
* presented (no battery and no AC)
* If EC's VSTBY and VBAT(power source of BRAM) aren't connected to the same
* power rail and VBAT doesn't go low immediately (eg: there is a larger
* capacitance on the rail) after all power off: PD contract recorded in BRAM
* won't get cleared (But actually we have unplugged type-c adaptor, so the
* contract should be cleared).
*/
#undef CONFIG_IT83XX_RESET_PD_CONTRACT_IN_BRAM
/* To define it, if I2C channel C and PECI used at the same time. */
#undef CONFIG_IT83XX_SMCLK2_ON_GPC7
/*
* Enable board to tune cc physical parameters (ex.rising, falling time).
* NOTE: board must define board_get_cc_tuning_parameter(enum usbpd_port port)
* function.
*/
#undef CONFIG_IT83XX_TUNE_CC_PHY
/*
* Enable the corresponding config option, according to EC's VCC is connected
* to 1.8V or 3.3V
*/
#undef CONFIG_IT83XX_VCC_1P8V
#undef CONFIG_IT83XX_VCC_3P3V
/*
* Overwrite integer multiplication and division arithmetic library routines
* with using hardware multiplication and division and nop instructions.
*/
#undef CONFIG_IT8XXX2_MUL_WORKAROUND
/*
* Support the standard integer multiplication and division instruction
* extension.
*/
#define CONFIG_RISCV_EXTENSION_M
/*
* If this is not defined, the firmware will revert the JTAG selection
* triggered by the hardware strap pin.
* Un-define this flag by default for all real platforms. see (b/129908668)
* If some boards (Ex:EVB) require JTAG function, they can define it in
* their board.h
*/
#undef CONFIG_ENABLE_JTAG_SELECTION
/*****************************************************************************/
/* Keyboard config */
/*
* The Silego reset chip sits in between the EC and the physical keyboard on
* column 2. To save power in low-power modes, some Silego variants require
* the signal to be inverted so that the open-drain output from the EC isn't
* costing power due to the pull-up resistor in the Silego.
*/
#undef CONFIG_KEYBOARD_COL2_INVERTED
/*
* Keyboards with the assistant key also move the refresh key matrix to row 3
* instead of row 2. This is used by the boot key detection code to determine
* if the refresh key is held down at boot.
*/
#undef CONFIG_KEYBOARD_REFRESH_ROW3
/*
* Config KSO to start from a different KSO pin. This is to allow some chips
* to use alternate functions on KSO pins.
*/
#define CONFIG_KEYBOARD_KSO_BASE 0
/*
* For certain board configurations, KSI2 or KSI3 will be stuck asserted for all
* scan columns if the power button is held. We must be aware of this case
* in order to correctly handle recovery mode key combinations.
*/
#undef CONFIG_KEYBOARD_PWRBTN_ASSERTS_KSI2
#undef CONFIG_KEYBOARD_PWRBTN_ASSERTS_KSI3
/* Enable extra debugging output from keyboard modules */
#undef CONFIG_KEYBOARD_DEBUG
/*
* Disables the directly connected keyboard pins and drivers on a particular
* chip. You might want this enabled if the keyboard is indirectly connected
* to the EC, perhaps through an I2C controller.
*/
#undef CONFIG_KEYBOARD_DISCRETE
/* The board uses a negative edge-triggered GPIO for keyboard interrupts. */
#undef CONFIG_KEYBOARD_IRQ_GPIO
/* Compile code for 8042 keyboard protocol */
#undef CONFIG_KEYBOARD_PROTOCOL_8042
/*
* Enable code for chromeos vivaldi keyboard (standard for new chromeos devices)
* This config only takes effect if CONFIG_KEYBOARD_PROTOCOL_8042 is selected. A
* chromeos device is Vivaldi compatible if the keyboard matrix complies with:
* go/vivaldi-matrix
* Vivaldi code enables:
* - A response to EC_CMD_GET_KEYBD_CONFIG command from coreboot
* - Boards can specify their custom layout for top keys.
*/
/* Keyboard features */
#define CONFIG_KEYBOARD_VIVALDI
/* Compile code for MKBP keyboard protocol */
#undef CONFIG_KEYBOARD_PROTOCOL_MKBP
/* Support keyboard factory test scanning */
#undef CONFIG_KEYBOARD_FACTORY_TEST
/*
* Support for boot key combinations (e.g. refresh key being held on boot to
* trigger recovery).
*/
#define CONFIG_KEYBOARD_BOOT_KEYS
/* Add support for the assistant key. */
#undef CONFIG_KEYBOARD_ASSISTANT_KEY
/* Add support for a switch that indicates if the device is in tablet mode. */
#undef CONFIG_KEYBOARD_TABLET_MODE_SWITCH
/*
* Minimum CPU clocks between scans. This ensures that keyboard scanning
* doesn't starve the other EC tasks of CPU when running at a decreased system
* clock.
*/
#undef CONFIG_KEYBOARD_POST_SCAN_CLOCKS
/* Print keyboard scan time intervals. */
#undef CONFIG_KEYBOARD_PRINT_SCAN_TIMES
/*
* Support for extra runtime key combinations (e.g. alt+volup+h/r for hibernate
* and warm reboot, respectively).
*/
#define CONFIG_KEYBOARD_RUNTIME_KEYS
/* Add support for ADC based antighost feature */
#undef CONFIG_KEYBOARD_SCAN_ADC
/*
* Allow the board layer keyboard customization. If define, the board layer
* needs to implement:
* 1. the function board_keyboard_drive_col() which is used to control
* the refresh key column.
* 2. the scancode_set2 and keycap_label array
* 3. keyboard_customization.h which is similar to keyboard_config.h
*
* Note that if your board has the standard chromeos keyboard layout other
* than the top row, and you are looking only for top row customization, then
* you should be looking at overriding board_vivaldi_keybd_config() instead.
*/
#undef CONFIG_KEYBOARD_CUSTOMIZATION
/*
* Allow support multiple keyboard matrix for speical key.
*/
#undef CONFIG_KEYBOARD_MULTIPLE
/*
* Allow board-specific 8042 keyboard callback when a key state is changed.
*/
#undef CONFIG_KEYBOARD_SCANCODE_CALLBACK
/*
* Enable keyboard testing functionality. This enables a message which receives
* a list of keyscan events from the AP and processes them. This will cause
* keypresses to appear on the AP through the same mechanism as a normal
* keyboard press.
*
* This can be used to spoof keyboard events, so is not normally defined,
* except during internal testing.
*/
#undef CONFIG_KEYBOARD_TEST
/*
* Enable quasi-bidirectional buffers for KSO pins. It has an open-drain output
* and a low-impedance pull-up. The low-impedance pull-up is active when ec
* changes the output data buffers from 0 to 1, thereby reducing the
* low-to-high transition time.
*/
#undef CONFIG_KEYBOARD_KSO_HIGH_DRIVE
/*
* Enable keypad (a palm-sized keyboard section usually placed on the far right)
*/
#undef CONFIG_KEYBOARD_KEYPAD
/*
* Enable strict debouncer. A strict debouncer waits until debounce is done
* before registering key up/down while a non-strict debouncer registers a key
* up/down as soon as a key is pressed or released.
*
* A strict debouncer is robust against unintentional key presses, caused by a
* device drop, for example. However, its latency isn't as fast as a non-strict
* debouncer.
*
* If a strict debouncer is used, it's recommended to set debounce_down_us and
* debounce_up_us to an equal value. This guarantees key events are registered
* in the order the keys are pressed.
*/
#undef CONFIG_KEYBOARD_STRICT_DEBOUNCE
/*
* Enable the 8042 AUX port. This is typically used for PS/2 mouse devices.
* You will need to implement send_aux_data_to_device and lpc_aux_put_char.
*/
#undef CONFIG_8042_AUX
/*
* Invert the IRQ1/IRQ12 interrupts that come from the NPCX keyboard controller
* such that they are active low.
*/
#undef CONFIG_NCPX_KBC_IRQ_ACTIVE_LOW
/*****************************************************************************/
/*
* Enable IT8801 pwm module.
*/
#undef CONFIG_IO_EXPANDER_IT8801_PWM
/*****************************************************************************/
/* Support common LED interface */
#undef CONFIG_LED_COMMON
#ifndef CONFIG_ZEPHYR
/*
* Support common PWM-controlled LEDs that conform to the Chrome OS LED
* behaviour specification.
*/
#undef CONFIG_LED_PWM
#endif /* CONFIG_ZEPHYR */
/*
* Support common PWM-controlled LEDs that do not conform to the Chrom OS LED
* behavior specification
*/
#undef CONFIG_LED_PWM_TASK_DISABLED
/*
* Here are some recommended color settings by default, but a board can change
* the colors to one of "enum ec_led_colors" as they see fit.
*/
#define CONFIG_LED_PWM_CHARGE_COLOR EC_LED_COLOR_AMBER
#define CONFIG_LED_PWM_NEAR_FULL_COLOR EC_LED_COLOR_GREEN
#define CONFIG_LED_PWM_CHARGE_ERROR_COLOR EC_LED_COLOR_RED
#define CONFIG_LED_PWM_SOC_ON_COLOR EC_LED_COLOR_GREEN
#define CONFIG_LED_PWM_SOC_SUSPEND_COLOR EC_LED_COLOR_GREEN
#define CONFIG_LED_PWM_LOW_BATT_COLOR EC_LED_COLOR_AMBER
/* By default, 500 ms period, 50% duty cycle. */
#define LED_CHARGER_ERROR_ON_TIME 1
#define LED_CHARGER_ERROR_PERIOD 2
/*
* By default the PWM LED behaviour is reflected on both LEDs and includes the
* chipset state, battery state, as well as the charging state. Enable
* this CONFIG_* option to show only the charging state on the LEDs.
*/
#undef CONFIG_LED_PWM_CHARGE_STATE_ONLY
/*
* By default the PWM LED behaviour is reflected on both LEDs and includes the
* chipset state, battery state, as well as the charging state. Enable
* this CONFIG_* option to show only the charging state, and only on the LED of
* the active charge port.
*/
#undef CONFIG_LED_PWM_ACTIVE_CHARGE_PORT_ONLY
/*
* How many PWM LEDs does the system have that will be controlled by the common
* PWM LED policy? Currently, this may be at most 2.
*/
#undef CONFIG_LED_PWM_COUNT
/*
* Support GPIO-controlled LEDs for common battery/power
* states through a board-defined lookup table.
*/
#undef CONFIG_LED_ONOFF_STATES
/*
* Set the battery charge percentage for optional STATE_DISCHARGE_S0_BAT_LOW
* provided by CONFIG_LED_ONOFF_STATES.
*/
#undef CONFIG_LED_ONOFF_STATES_BAT_LOW
/*
* LEDs for LED_POLICY STD may be inverted. In this case they are active low
* and the GPIO names will be GPIO_LED..._L.
*/
#undef CONFIG_LED_BAT_ACTIVE_LOW
#undef CONFIG_LED_POWER_ACTIVE_LOW
/* Support for LED driver chip(s) */
#undef CONFIG_LED_DRIVER_DS2413 /* Maxim DS2413, on one-wire interface */
#undef CONFIG_LED_DRIVER_LM3509 /* LM3509, on I2C interface */
#undef CONFIG_LED_DRIVER_LM3630A /* LM3630A, on I2C interface */
#undef CONFIG_LED_DRIVER_LP5562 /* LP5562, on I2C interface */
#undef CONFIG_LED_DRIVER_MP3385 /* MPS MP3385, on I2C */
#undef CONFIG_LED_DRIVER_OZ554 /* O2Micro OZ554, on I2C */
#undef CONFIG_LED_DRIVER_IS31FL3733B /* Lumissil IS31FL3733B on I2C */
#undef CONFIG_LED_DRIVER_IS31FL3743B /* Lumissil IS31FL3743B on SPI */
#undef CONFIG_LED_DRIVER_AW20198 /* Awinic AW20198 on I2C */
#undef CONFIG_LED_DRIVER_TLC59116F /* TLC59116F on I2C */
/* Enable late init for is31fl3743b. Work around b:232443638. */
#undef CONFIG_IS31FL3743B_LATE_INIT
/* Offset in flash where little firmware will live. */
#undef CONFIG_LFW_OFFSET
/*
* Compile lid switch support.
*
* This is enabled by default because all boards other than reference boards
* are for laptops with lid switchs. Reference boards #undef it.
*/
#define CONFIG_LID_SWITCH
/*
* GPIOs to use to detect that the lid is opened.
*
* This is a X-macro composed of a list of LID_OPEN(GPIO_xxx) elements defining
* all the GPIOs to check to find whether the lid is currently opened.
* If not defined, it is using GPIO_LID_OPEN.
*/
#undef CONFIG_LID_SWITCH_GPIO_LIST
/*
* Support for turning the lightbar power rails on briefly when the AP is off.
* Enabling this requires implementing the board-specific lb_power() function
* to do it (see lb_common.h).
*/
#undef CONFIG_LIGHTBAR_POWER_RAILS
/*
* For tap sequence, show the last segment in dim to give a better idea of
* battery percentage.
*/
#undef CONFIG_LIGHTBAR_TAP_DIM_LAST_SEGMENT
/*
* Adds a console command for testing the long long shift right ABI on Cortex-m4
* (Cr50).
*/
#undef CONFIG_LLSR_TEST
/* Program memory offset for little firmware loader. */
#undef CONFIG_LOADER_MEM_OFF
/* Size of little firmware loader. */
#undef CONFIG_LOADER_SIZE
/* Little firmware loader storage offset. */
#undef CONFIG_LOADER_STORAGE_OFF
/*
* Low power idle options. These are disabled by default and all boards that
* want to use low power idle must define it. When using the LFIOSC, the low
* frequency clock will be used to conserve even more power when possible.
*
* GPIOs which need to trigger interrupts in low power idle must specify the
* GPIO_INT_DSLEEP flag in gpio_list[].
*
* Note that for some processors (e.g. LM4), an active JTAG connection will
* prevent the EC from using low-power idle.
*/
#undef CONFIG_LOW_POWER_IDLE
#undef CONFIG_LOW_POWER_USE_LFIOSC
/* Allows us to enable/disable low power idle mode in runtime. */
#undef CONFIG_LOW_POWER_IDLE_LIMITED
/*
* Enable deep sleep during S0 (ignores SLEEP_MASK_AP_RUN).
*/
#undef CONFIG_LOW_POWER_S0
/* DMA paging between SRAM and DRAM */
#undef CONFIG_DMA_PAGING
/*
* Enable HID subsystem using HECI on Intel ISH (Integrated Sensor Hub)
*/
#undef CONFIG_HID_HECI
/* Support host command interface over HECI */
#undef CONFIG_HOST_INTERFACE_HECI
/*
* EC supports x86 host communication with AP. This can either be through LPC
* or eSPI. The CONFIG_HOSTCMD_X86 will get automatically defined if either
* CONFIG_HOST_INTERFACE_LPC or CONFIG_HOST_INTERFACE_ESPI are defined.
* LPC and eSPI are mutually exclusive.
*/
#undef CONFIG_HOSTCMD_X86
/* Support host command interface over LPC bus. */
#undef CONFIG_HOST_INTERFACE_LPC
/* Support host command interface over eSPI bus. */
#undef CONFIG_HOST_INTERFACE_ESPI
/* Support host command interface over USB. */
#undef CONFIG_HOST_INTERFACE_USB
/*
* SLP signals (SLP_S3, SLP_S4, and SLP_S5) use virtual wires instead of
* physical pins with eSPI interface.
*/
#undef CONFIG_HOST_INTERFACE_ESPI_VW_SLP_S3
#undef CONFIG_HOST_INTERFACE_ESPI_VW_SLP_S4
#undef CONFIG_HOST_INTERFACE_ESPI_VW_SLP_S5
/* MCHP next two items are EC eSPI slave configuration */
/* Maximum clock frequence eSPI EC slave advertises
* Values in MHz are 20, 25, 33, 50, and 66
*/
#undef CONFIG_HOST_INTERFACE_ESPI_EC_MAX_FREQ
/* EC eSPI slave advertises IO lanes
* 0 = Single
* 1 = Single and Dual
* 2 = Single and Quad
* 3 = Single, Dual, and Quad
*/
#undef CONFIG_HOST_INTERFACE_ESPI_EC_MODE
/* Bit map of eSPI channels EC advertises
* bit[0] = 1 Peripheral channel
* bit[1] = 1 Virtual Wire channel
* bit[2] = 1 OOB channel
* bit[3] = 1 Flash channel
*/
#undef CONFIG_HOST_INTERFACE_ESPI_EC_CHAN_BITMAP
/*
* Background information (from Intel eSPI Compatibility Specification):
* eSPI_Reset# may be asserted as part of:
* (1) a normal Deep-Sx entry:
* A normal eSPI_Reset# assertion is preceded by {Host,OOB}_Reset_Warn/Ack
* handshakes (using tunneled VWs) between the PCH/SoC and the EC/BMC.
* The eSPI Specification states that the SLP_* signals are reset based on
* eSPI_Reset#. However, for platforms that support Deep Sleep Well (DSW),
* the SLP_{S3,S4,S5,LAN,WLAN}# signals reside in the DSW power well and are
* reset by DSW_PWROK.
* In PCH/SoC, the states of these pins will be communicated to the EC/BMC
* as Virtual Wires over the eSPI interface. As a result, the EC/BMC needs
* to handle/maintain these pins' states during Deep-Sx.
*
* (2) a Global Reset event:
* It could happen in the middle of an on-going eSPI transaction, which is
* immediately truncated. All tunneled VWs, including
* SLP_{S3,S4,S5,LAN,WLAN}#, are returned to their default reset default
* state upon entry into Global Reset. Note that in the case of a Global
* Reset event, eSPI Virtual Wire messages deasserting the states of these
* wires will not be issued by the eSPI-MC. The eSPI Slave device is
* responsible for resetting the states of all its VWs at the appropriate
* platform reset events.
*
* Enable this config to reset SLP* VW when eSPI_RST is asserted for the Global
* Reset event case.
* Don't enable this config if the platform implements the Deep-Sx entry as EC
* needs to maintain these pins' states per request.
*/
#undef CONFIG_HOST_INTERFACE_ESPI_RESET_SLP_SX_VW_ON_ESPI_RST
/* Base address of low power RAM. */
#undef CONFIG_LPRAM_BASE
/* Size of low power RAM. */
#undef CONFIG_LPRAM_SIZE
#ifndef CONFIG_ZEPHYR
/* Use Link-Time Optimizations to try to reduce the firmware code size */
#undef CONFIG_LTO
#endif /* CONFIG_ZEPHYR */
/* Provide rudimentary malloc/free like services for shared memory. */
#undef CONFIG_SHARED_MALLOC
/* Need for a math library */
#undef CONFIG_MATH_UTIL
/* Include sensor online calibration (requires CONFIG_FPU) */
#undef CONFIG_ONLINE_CALIB
/*
* Spoof the data for online calibration. When this flag is enabled, every
* reading with the flag MOTIONSENSE_FLAG_IN_SPOOF_MODE will be treated as a
* new calibration point. This should be used in conjunction with
* CONFIG_ACCEL_SPOOF_MODE. To trigger an accelerometer calibration for
* example, enable both config flags, connect to the cr50 terminal and run:
* $ accelspoof id on X Y Z
* This will spoof a reading of (X, Y, Z) from the sensor and treat those
* values as the calibration result (bypassing the calibration for the given
* sensor ID).
*/
#undef CONFIG_ONLINE_CALIB_SPOOF_MODE
/*
* Duration after which an entry in the temperature cache is considered stale.
* Defaults to 5 minutes if not set.
*/
#undef CONFIG_TEMP_CACHE_STALE_THRES
/* Set minimum temperature for accelerometer calibration. */
#undef CONFIG_ACCEL_CAL_MIN_TEMP
/* Set maximum temperature for accelerometer calibration. */
#undef CONFIG_ACCEL_CAL_MAX_TEMP
/* Set threshold radius for using the Kasa algorithm in accelerometer bias
* calculation (g).
*/
#undef CONFIG_ACCEL_CAL_KASA_RADIUS_THRES
/* Set threshold radius for using the Newton fit algorithm in accelerometer
* bias calculation (g).
*/
#undef CONFIG_ACCEL_CAL_NEWTON_RADIUS_THRES
/* Include code to do online compass calibration */
#undef CONFIG_MAG_CALIBRATE
/* Microchip LPC enable debug messages */
#undef CONFIG_MCHP_DEBUG_LPC
/* Microchip I2C controller slave addresses */
#undef CONFIG_MCHP_I2C0_SLAVE_ADDRS
#undef CONFIG_MCHP_I2C1_SLAVE_ADDRS
#undef CONFIG_MCHP_I2C2_SLAVE_ADDRS
#undef CONFIG_MCHP_I2C3_SLAVE_ADDRS
/* Microchip EC SRAM start address */
#undef CONFIG_MEC_SRAM_BASE_START
/* Microchip EC SRAM end address */
#undef CONFIG_MEC_SRAM_BASE_END
/* Microchip EC SRAM size */
#undef CONFIG_MEC_SRAM_SIZE
/*
* Define Megachips DisplayPort to HDMI protocol converter/level shifter serial
* interface.
*/
#undef CONFIG_MCDP28X0
/* Minute-IA watchdog timer vector number. */
#define CONFIG_MIA_WDT_VEC 0xFF
/*
* ISL9241 Configures the switching frequency and overrides the default
* switching frequency set by PROG pin. The valid frequency settings are
* find in driver/charger/isl9241.h.
*/
#undef CONFIG_ISL9241_SWITCHING_FREQ
/*
* ISL9238C disable the CMOUT latch function.
*/
#undef CONFIG_ISL9238C_DISABLE_CMOUT_LATCH
/*
* ISL9238C input voltage setting.
* Set the input voltage for the ISL9238C charger. Setting -1 means use
* the default setting defined by the chip. The ISL9238C input voltage
* is configured using 341.3 mV steps. The value specified is rounded
* down.
*/
#define CONFIG_ISL9238C_INPUT_VOLTAGE_MV -1
/*
* ISL9238C enable Force Buck mode.
*/
#undef CONFIG_ISL9238C_ENABLE_BUCK_MODE
/* ISL9238C adjusts phase comparator threshold offset */
#define CONFIG_ISL9238C_BUCK_PHASE_VOLTAGE 0
/* Support MKBP event */
#undef CONFIG_MKBP_EVENT
/* MKBP events are sent by using host event */
#undef CONFIG_MKBP_USE_HOST_EVENT
/* MKBP events are sent by using GPIO */
#undef CONFIG_MKBP_USE_GPIO
/* MKBP events GPIO is active high */
#undef CONFIG_MKBP_USE_GPIO_ACTIVE_HIGH
/*
* MKBP events are notified by using both a GPIO and a host event.
*
* You should use this if you are using a GPIO to notify the AP of an MKBP
* event, and you need an MKBP event to wake the AP in suspend and the AP cannot
* wake from the GPIO. Since you are using both a GPIO and a hostevent for the
* notification, make sure that the S0 hostevent mask does NOT include MKBP
* events. Otherwise, you will have multiple consumers for a single event.
* However, make sure to configure the host event *sleep* mask in coreboot to
* include MKBP events. In order to prevent all MKBP events from waking the AP,
* use CONFIG_MKBP_EVENT_WAKEUP_MASK to filter the events.
*/
#undef CONFIG_MKBP_USE_GPIO_AND_HOST_EVENT
/* MKBP events are sent by using HECI on an ISH */
#undef CONFIG_MKBP_USE_HECI
/* MKBP events are sent by using custom method */
#undef CONFIG_MKBP_USE_CUSTOM
/*
* If using MKBP to send host events, with this option, we can define the host
* events that should wake the system in suspend. Some examples are:
*
* EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN)
* EC_HOST_EVENT_MASK(EC_HOST_EVENT_KEY_PRESSED)
*
* The only things that should be in this mask are:
* EC_HOST_EVENT_MASK(EC_HOST_EVENT_*)
*/
#undef CONFIG_MKBP_HOST_EVENT_WAKEUP_MASK
/*
* Define which MKBP events should wakeup the system in suspend. Some examples
* are:
*
* EC_MKBP_EVENT_KEY_MATRIX
* EC_MKBP_EVENT_SWITCH
*
* The only things that should be in this mask are EC_MKBP_EVENT_*.
*/
#undef CONFIG_MKBP_EVENT_WAKEUP_MASK
/*
* Send button, switch and sysrq events via MKBP protocol to the host.
*/
#undef CONFIG_MKBP_INPUT_DEVICES
#ifndef CONFIG_ZEPHYR
/* Support memory protection unit (MPU) */
#undef CONFIG_MPU
#endif /* CONFIG_ZEPHYR */
/* Do not try hold I/O pins at frozen level during deep sleep */
#undef CONFIG_NO_PINHOLD
/* Support one-wire interface */
#undef CONFIG_ONEWIRE
/* Support One Time Protection structure */
#undef CONFIG_OTP
/*
* Address to store persistent panic data at. By default, this will be
* at the end of RAM, and have a size of sizeof(struct panic_data)
*/
#undef CONFIG_PANIC_DATA_BASE
#undef CONFIG_PANIC_DATA_SIZE
#ifndef CONFIG_ZEPHYR
/* Support PECI interface to x86 processor */
#undef CONFIG_PECI
#endif /* CONFIG_ZEPHYR */
/* Common code for PECI interface to x86 processor */
#undef CONFIG_PECI_COMMON
/*
* Maximum operating temperature in degrees Celcius used on some x86
* processors. CPU chip temperature is reported relative to this value and
* is never reported greater than this value. Processor asserts PROCHOT#
* and starts throttling frequency and voltage at this temp. Operation may
* become unreliable if temperature exceeds this limit.
*/
#undef CONFIG_PECI_TJMAX
/*
* Enable peripheral charge manager (e.g. NFC/WLC, WPC Qi)
*/
#undef CONFIG_PERIPHERAL_CHARGER
/*
* Enable CTN730 driver
*
* CTN730 is NXP's NFC/WLC power transmitter (a.k.a. poller).
*/
#undef CONFIG_CTN730
/*****************************************************************************/
/* PMU config */
/*
* Enable hard-resetting the PMU from the EC. The implementation is rather
* hacky; it simply shorts out the 3.3V rail to force the PMIC to panic. We
* need this unfortunate hack because it's the only way to reset the I2C engine
* inside the PMU.
*/
#undef CONFIG_PMU_HARD_RESET
/*
* Enable this config to make console UART self sufficient (no other
* initialization required before uart_init(), no interrupts, uart_tx_char()
* does not exit until character finished transmitting).
*
* This is useful during early hardware bringup, each platform needs to
* implement its own code to support this.
*/
#undef CONFIG_POLLING_UART
/* Define length of history buffer for port80 messages. */
#define CONFIG_PORT80_HISTORY_LEN 128
/*
* Enable/Disable printing of port80 messages in interrupt context. By default,
* this is disabled.
*/
#define CONFIG_PORT80_PRINT_IN_INT 0
/*
* Allow Port80 common layer to dump 4-byte Port80 code. This is only supported
* on NPCX9 (and latter) chips.
*/
#undef CONFIG_PORT80_4_BYTE
/* MAX695x 7 segment driver */
#undef CONFIG_MAX695X_SEVEN_SEGMENT_DISPLAY
/* Config for power states and port80 message to be displayed on 7 -segment */
#undef CONFIG_SEVEN_SEG_DISPLAY
/* Compile common code to support power button debouncing */
#undef CONFIG_POWER_BUTTON
/* Configure power button. e.g. BUTTON_FLAG_ACTIVE_HIGH */
#undef CONFIG_POWER_BUTTON_FLAGS
/* Allow the power button to send events while the lid is closed */
#undef CONFIG_POWER_BUTTON_IGNORE_LID
/* Support sending the power button signal to x86 chipsets */
#undef CONFIG_POWER_BUTTON_X86
/* Set power button state idle at init. Implemented only for npcx. */
#undef CONFIG_POWER_BUTTON_INIT_IDLE
/* Timeout before power button task gives up starting system */
#define CONFIG_POWER_BUTTON_INIT_TIMEOUT 1
/*
* Enable delay between DSW_PWROK and PWRBTN assertion.
* If enabled, DSW_PWROK_TO_PWRBTN_US and get_time_dsw_pwrok must be defined
* as well.
*/
#undef CONFIG_DELAY_DSW_PWROK_TO_PWRBTN
/*
* The time in usec required for PMC to be ready to detect power button press.
* Refer to the timing diagram for G3 to S0 on PDG for details.
*/
#define CONFIG_DSW_PWROK_TO_PWRBTN_US (95 * MSEC)
/*
* Board provides board_pwrbtn_to_pch function instead of GPIO_PCH_PWRBTN_L
* as the means for asserting power button signal to PCH.
*/
#undef CONFIG_POWER_BUTTON_TO_PCH_CUSTOM
/* Compile common code for AP power state machine */
#undef CONFIG_POWER_COMMON
/* Enable a task-safe way to control the PP5000 rail. */
#undef CONFIG_POWER_PP5000_CONTROL
/* Support stopping in S5 on shutdown */
#undef CONFIG_POWER_SHUTDOWN_PAUSE_IN_S5
/*
* Detect power signal interrupt storms, defined as more than
* CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD occurences of a single
* power signal interrupt within one second.
*/
#undef CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD
/* Use part of the EC's data EEPROM to hold persistent storage for the AP. */
#undef CONFIG_PSTORE
/* Support S0ix */
#undef CONFIG_POWER_S0IX
/* Advertise S4 residency */
#undef CONFIG_POWER_S4_RESIDENCY
/* Support detecting failure to enter a sleep state (S0ix/S3) */
#undef CONFIG_POWER_SLEEP_FAILURE_DETECTION
/*
* Allow the host to self-report its sleep state, in case there is some delay
* between the host beginning to enter the sleep state and power signals
* actually reflecting the new state.
*/
#undef CONFIG_POWER_TRACK_HOST_SLEEP_STATE
/*
* Allow the use of the "long" printf length modifier ('l') to be in 32-bit
* systems along with any supported conversion specifiers. Note that this also
* reenables support for the 'i' printf format. This config will only take
* effect if sizeof(long) == sizeof(uint32_t).
*/
#undef CONFIG_PRINTF_LONG_IS_32BITS
/*
* On x86 systems, define this option if the CPU_PROCHOT signal is active low.
* This setting also applies to monitoring the PROCHOT input if provided by
* the board.
*/
#undef CONFIG_CPU_PROCHOT_ACTIVE_LOW
/*
* When the AP enters C10, the power rails VCCIO, VCCSTG, and VCCPLL_OC may be
* turned off by the board. If the PROCHOT# signal is pulled up by any of
* these rails, PROCHOT cannot be relied upon while C10 is active.
* Enable this option to gate PROCHOT detection when C10 is active.
*/
#undef CONFIG_CPU_PROCHOT_GATE_ON_C10
#ifndef CONFIG_ZEPHYR
/* Support PS/2 interface */
#undef CONFIG_PS2
#endif /* CONFIG_ZEPHYR */
/* Support Power Sourcing Equipment */
#undef CONFIG_PSE_LTC4291
/*
* Define this option to enable programmable voltage detector which will
* trigger an interrupt when the voltage drops below a threshold specified
* by the PVD_THRESHOLD which is a chip specific voltage threshold that
* must be defined in board.h.
*/
#undef CONFIG_PVD
/*****************************************************************************/
#ifndef CONFIG_ZEPHYR
/* Support PWM control */
#undef CONFIG_PWM
#endif /* CONFIG_ZEPHYR */
/* Define clock input to PWM module. */
#undef CONFIG_PWM_INPUT_LFCLK
/*****************************************************************************/
/* Support PWM output to display backlight */
#undef CONFIG_PWM_DISPLIGHT
/*
* Support keyboard backlight control
*
* You need to define board_kblight_init unless CONFIG_PWM_KBLIGHT is used.
* For example, lm3509 can be registered as a driver in board_kblight_init.
*/
#undef CONFIG_KEYBOARD_BACKLIGHT
/*
* Support PWM output to keyboard backlight
*
* This implies CONFIG_KEYBOARD_BACKLIGHT.
*/
#undef CONFIG_PWM_KBLIGHT
/*
* Support a GPIO enable pin (set as GPIO_EN_KEYBOARD_BACKLIGHT) for the
* keyboard backlight.
*/
#undef CONFIG_KBLIGHT_ENABLE_PIN
/*
* Call keyboard backlight init function during init hook instead of start-up
*/
#undef CONFIG_KBLIGHT_HOOK_INIT
/*
* RGB Keyboard
*/
#undef CONFIG_RGB_KEYBOARD
/*
* Enable debug messages from a RGB keyboard task.
*/
#undef CONFIG_RGB_KEYBOARD_DEBUG
/*
* Enable demo for RGB keyboard to run on reset.
*
* FLOW: In each iteration, a new color is placed in (0,0) and the rest of LEDs
* copy colors from adjacent LEDs.
*
* DOT: A red dot is placed on (0,0) and traverses the grid from top to bottom
* left to right. After the entire matrix is traversed, it's repeated with a
* new color.
*/
#undef CONFIG_RGBKBD_DEMO_FLOW
#undef CONFIG_RGBKBD_DEMO_DOT
#ifndef CONFIG_ZEPHYR
/* Support Real-Time Clock (RTC) */
#undef CONFIG_RTC
#endif /* CONFIG_ZEPHYR */
/* Size of each RAM bank in chip, default is CONFIG_RAM_SIZE */
#undef CONFIG_RAM_BANK_SIZE
/*
* Number of RAM banks in chip, default is
* CONFIG_RAM_SIZE / CONFIG_RAM_BANK_SIZE
*/
#undef CONFIG_RAM_BANKS
/* Base address of RAM for the chip */
#undef CONFIG_RAM_BASE
/*
* Base address of ROM for the chip. Only used in no physical flash case (
* !CONFIG_FLASH_PHYSICAL).
*/
#undef CONFIG_ROM_BASE
/*
* CONFIG_DATA_RAM_SIZE and CONFIG_RAM_SIZE indicate size of all data RAM
* available on the chip in bytes and size of data RAM available for EC in
* bytes, respectively.
* Usually, CONFIG_DATA_RAM_SIZE = CONFIG_RAM_SIZE but some chips need to
* allocate RAM for the mask ROM. Then CONFIG_DATA_RAM_SIZE > CONFIG_RAM_SIZE.
*
* CONFIG_CODE_RAM_SIZE indicates the size of all code RAM available on the chip
* in bytes. This is needed when a chip with external storage where stored with
* code section, or a chip without an internal flash but need to protect its
* code section by MPU.
* Usually, CONFIG_CODE_RAM_SIZE = CONFIG_RO_SIZE. However, some chips may
* have other value, e.g. mt_scp which doesn't have RO image, and the code RAM
* size is actually its CONFIG_ROM_SIZE plus a reserved memory space.
*
* CONFIG_ROM_SIZE indicates the size of ROM allocated by a linker script. This
* is only needed when no physical flash present (!CONFIG_FLASH_PHYSICAL). The
* ROM region will place common RO sections, e.g. .text, .rodata, .data LMA etc.
*/
#undef CONFIG_CODE_RAM_SIZE
#undef CONFIG_DATA_RAM_SIZE
#undef CONFIG_RAM_SIZE
#undef CONFIG_ROM_SIZE
/* Support IR357x Link voltage regulator debugging / reprogramming */
#undef CONFIG_REGULATOR_IR357X
/* Support RMA auth challenge-response */
#undef CONFIG_RMA_AUTH
/*
* Use the p256 curve for RMA challenge-response calculations (x21559 is used
* by default).
*/
#undef CONFIG_RMA_AUTH_USE_P256
/* Enable hardware Random Number generator support */
#undef CONFIG_RNG
/* Support verifying 2048-bit RSA signature */
#undef CONFIG_RSA
/* Define the RSA key size. */
#undef CONFIG_RSA_KEY_SIZE
/* Use RSA exponent 3 instead of F4 (65537) */
#undef CONFIG_RSA_EXPONENT_3
/*
* Adjust the compiler optimization flags for the RSA code to get a speed-up
* at the expense of a small code size delta.
*/
#undef CONFIG_RSA_OPTIMIZED
/*
* Verify the RW firmware using the RSA signature.
* (for accessories without software sync)
*/
#undef CONFIG_RWSIG
/*
* Disable rwsig jump when the reset source is hard pin-reset. This only work
* for the case where rwsig task is not used.
*/
#undef CONFIG_RWSIG_DONT_CHECK_ON_PIN_RESET
/*
* When RWSIG verification is performed as a task, time to wait from signature
* verification to an automatic jump to RW (if AP does not request the wait to
* be interrupted).
*/
#define CONFIG_RWSIG_JUMP_TIMEOUT (1000 * MSEC)
/*
* Defines what type of futility signature type should be used.
* RWSIG should be used for new designs.
* Old adapters use the USBPD1 futility signature type.
*/
#undef CONFIG_RWSIG_TYPE_RWSIG
#undef CONFIG_RWSIG_TYPE_USBPD1
/*
* By default the pubkey and sig are put at the end of the first and second
* half of the total flash, and take up the minimum space possible. You can
* override those defaults with these.
*/
#undef CONFIG_RO_PUBKEY_ADDR
#undef CONFIG_RO_PUBKEY_READ_ADDR
#undef CONFIG_RO_PUBKEY_SIZE
#undef CONFIG_RW_SIG_ADDR
#undef CONFIG_RW_SIG_SIZE
#undef CONFIG_RWSIG_READ_ADDR
/* Size of the serial number if needed */
#undef CONFIG_SERIALNO_LEN
/* Support programmable Mac address field. */
#undef CONFIG_MAC_ADDR
/* Size of the MAC address field if needed. */
#undef CONFIG_MAC_ADDR_LEN
/* Support programmable device poweron config. */
#undef CONFIG_POWERON_CONF
/* Size of the poweron config field if needed. */
#undef CONFIG_POWERON_CONF_LEN
/****************************************************************************/
/* Shared objects library. */
/* Support shared objects library between RO and RW. */
#undef CONFIG_SHAREDLIB
/* Size of shared objects library. */
#undef CONFIG_SHAREDLIB_SIZE
/* Program memory offset of shared objects library. */
#undef CONFIG_SHAREDLIB_MEM_OFF
/* Storage offset of sharedobjects library. */
#undef CONFIG_SHAREDLIB_STORAGE_OFF
/* Allow the board to use a GPIO for the SCI# signal. */
#undef CONFIG_SCI_GPIO
/* Support computing of other hash sizes (without the VBOOT code) */
#undef CONFIG_SHA256_SW
/* Compute SHA256 by using chip's hardware accelerator */
#undef CONFIG_SHA256_HW_ACCELERATE
/* Unroll some loops in SHA256_transform for better performance. */
#undef CONFIG_SHA256_UNROLLED
/* Emulate the CLZ (Count Leading Zeros) in software for CPU lacking support */
#undef CONFIG_SOFTWARE_CLZ
/* Emulate the CLZ (Count Trailing Zeros) in software for CPU lacking support */
#undef CONFIG_SOFTWARE_CTZ
/* Support smbus interface */
/*
* Deprecated in
* https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1704279
*
* It hasn't been used in over 2 years
* https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/452459/
* and was only used by one board (pyro).
*
* I2C and SMBus are compatible at the physical layer. The data transfer
* paradigm is different. Some of our batteries are using SMbus style
* transfers now, they are just using i2cxfer directly to accomplish it.
*
* I doubt the SMBus code will get revived, but we do have it in revision
* history if we ever need it.
*/
/* #undef CONFIG_SMBUS */
#ifndef CONFIG_ZEPHYR
/* Support SPI interfaces */
#undef CONFIG_SPI
#endif /* CONFIG_ZEPHYR */
/* Define the SPI port to use to access SPI accelerometer */
#undef CONFIG_SPI_ACCEL_PORT
/* Support SPI flash */
#undef CONFIG_SPI_FLASH
/* Support SPI flash protection register translation */
#undef CONFIG_SPI_FLASH_REGS
/* Define the SPI port to use to access the flash */
#undef CONFIG_SPI_FLASH_PORT
/* Select any of the following SPI flash configs that your board uses. */
#undef CONFIG_SPI_FLASH_GD25LQ40
#undef CONFIG_SPI_FLASH_GD25Q41B
#undef CONFIG_SPI_FLASH_W25Q128
#undef CONFIG_SPI_FLASH_W25Q40
#undef CONFIG_SPI_FLASH_W25Q64
#undef CONFIG_SPI_FLASH_W25Q80
#undef CONFIG_SPI_FLASH_W25X40
/* SPI flash part supports SR2 register */
#undef CONFIG_SPI_FLASH_HAS_SR2
/* Define the SPI port to use to access the fingerprint sensor */
#undef CONFIG_SPI_FP_PORT
#ifndef CONFIG_ZEPHYR
/* Support JEDEC SFDP based Serial NOR flash */
#undef CONFIG_SPI_NOR
#endif /* CONFIG_ZEPHYR */
/* Enable SPI_NOR debugging providing additional console output while
* initializing Serial NOR Flash devices including SFDP discovery. */
#undef CONFIG_SPI_NOR_DEBUG
/* Maximum Serial NOR flash command size, in Bytes */
#undef CONFIG_SPI_NOR_MAX_MESSAGE_SIZE
/* Maximum Serial NOR flash read size, in Bytes */
#undef CONFIG_SPI_NOR_MAX_READ_SIZE
/* Maximum Serial NOR flash write size, in Bytes. Note this must be a power of
* two. */
#undef CONFIG_SPI_NOR_MAX_WRITE_SIZE
/* If defined will enable block (64KiB) erase operations. */
#undef CONFIG_SPI_NOR_BLOCK_ERASE
/* If defined will read the sector/block to be erased first and only initiate
* the erase operation if not already in an erased state. The read operation
* (performed in CONFIG_SPI_NOR_MAX_READ_SIZE chunks) is aborted early if a
* non "0xff" byte is encountered.
* !! Make sure there is enough stack space to host a
* !! CONFIG_SPI_NOR_MAX_READ_SIZE sized buffer before enabling.
*/
#undef CONFIG_SPI_NOR_SMART_ERASE
/* SPI controller feature */
#undef CONFIG_SPI_CONTROLLER
/* SPI controller halfduplex/3-wire mode */
#undef CONFIG_SPI_HALFDUPLEX
/* Support STM32 SPI1 as controller. */
#undef CONFIG_STM32_SPI1_CONTROLLER
/* Support MCHP MEC family GP-SPI master(s)
* Define to 0x01 for GPSPI0 only.
* Define to 0x02 for GPSPI1 only.
* Define to 0x03 for both controllers.
*/
#undef CONFIG_MCHP_GPSPI
/*
* Configure SPI flash read wait time as 1ms
* Chip or board can redefine it per design
*/
#define CONFIG_SPI_FLASH_READ_WAIT_MS 1
/*
* Allow modification to e.g. clock divisor or other fields of spi_devices[].
*/
#undef CONFIG_SPI_MUTABLE_DEVICE_LIST
/* Default stack size to use for tasks, in bytes */
#undef CONFIG_STACK_SIZE
/* Compile charger detect for STM32 */
#undef CONFIG_STM32_CHARGER_DETECT
/* Fake hibernate mode */
#undef CONFIG_STM32L_FAKE_HIBERNATE
/*
* Compile common code to handle simple switch inputs such as the recovery
* button input from the servo debug interface.
*/
#undef CONFIG_SWITCH
/* Support dedicated recovery signal from servo board */
#undef CONFIG_SWITCH_DEDICATED_RECOVERY
/*
* System should remain unlocked even if write protect is enabled.
*
* NOTE: This should ONLY be defined during bringup, and should never be
* defined on a shipping / released platform.
*
* When defined, CBI allows ectool to reprogram all the fields. Once undefined,
* it refuses to change certain fields. (e.g. board version, OEM ID)
*
* Also, this will enable PD in RO for TCPMv2.
*/
#undef CONFIG_SYSTEM_UNLOCKED
/*
* Some systems decouple the CBI eeprom write protection from the
* H1_FLASH_WP_ODL via the hardware change. Adds this config to
* bypass the cbi eeprom write protection check.
*/
#undef CONFIG_BYPASS_CBI_EEPROM_WP_CHECK
/*
* Device can be a tablet as well as a clamshell.
*/
#undef CONFIG_TABLET_MODE
/*
* Add a virtual switch to indicate when we are in tablet mode.
*/
#undef CONFIG_TABLET_MODE_SWITCH
/*
* Config to identify what devices use GMR sensor to detect tablet mode. If a
* board selects this config, it also needs to provide GPIO_TABLET_MODE_L
* and direct its interrupt to gmr_tablet_switch_isr.
*/
#undef CONFIG_GMR_TABLET_MODE
/*
* Board provides board_sensor_at_360 method instead of GPIO_TABLET_MODE_L
* as the means for determining the state of the flipped-360-degree mode.
*/
#undef CONFIG_GMR_TABLET_MODE_CUSTOM
/*
* Add a virtual switch to indicate when detachable device has
* base attached.
*/
#undef CONFIG_BASE_ATTACHED_SWITCH
/*
* Add a virtual switch to indicate whether a nearby object is present in front
* of the device.
*/
#undef CONFIG_FRONT_PROXIMITY_SWITCH
/*
* Microchip Trace FIFO Debug Port
*/
#undef CONFIG_MCHP_TFDP
/*****************************************************************************/
/* Task config */
/*
* List of enabled tasks in ascending priority order. This is normally
* defined in each board's ec.tasklist file.
*
* For each task, use the macro TASK_ALWAYS(n, r, d, s) for base tasks and
* TASK_NOTEST(n, r, d, s) for tasks that can be excluded in test binaries,
* where:
* 'n' is the name of the task
* 'r' is the main routine of the task
* 'd' is an opaque parameter passed to the routine at startup
* 's' is the stack size in bytes; must be a multiple of 8
*
* Some cores use TASK_ALWAYS(n, r, d, s, f), where:
* 'f' is the bit flags for the platform specific information
* - MIA_TASK_FLAG_USE_FPU : bit 0, task uses FPU H/W
*
* For USB PD tasks, IDs must be in consecutive order and correspond to
* the port which they are for. See TASK_ID_TO_PD_PORT() macro.
*/
#undef CONFIG_TASK_LIST
/*
* List of test tasks. Same format as CONFIG_TASK_LIST, but used to define
* additional tasks for a unit test. Normally defined in
* test/{testname}.tasklist.
*/
#undef CONFIG_TEST_TASK_LIST
/*
* List of tasks used by CTS
*
* cts.tasklist contains tasks run only for CTS. These tasks are added to the
* tasks registered in ec.tasklist with higher priority.
*
* If a CTS suite does not define its own cts.tasklist, the common list is used
* (i.e. cts/cts.tasklist).
*/
#undef CONFIG_CTS_TASK_LIST
/*
* List of tasks that support reset. Tasks listed here must also be included in
* CONFIG_TASK_LIST.
*
* For each task, use macro ENABLE_RESET(n) to enable resets. The parameter n
* must match the value passed to TASK_{ALWAYS,NOTEST} in CONFIG_TASK_LIST.
*
* Tasks that enable resets *must* call task_reset_cleanup() once at the
* beginning of their main function, and perform task-specific cleanup if
* necessary.
*
* By default, tasks can be reset at any time. To change this behavior, call
* task_disable_resets() immediately after task_reset_cleanup(), and then enable
* resets where appropriate.
*
* Tasks that predominantly have resets disabled are expected to periodically
* enable resets, and should always ensure to do so before waiting for long
* periods (eg when waiting for an event to process).
*/
#undef CONFIG_TASK_RESET_LIST
/*
* Enable task profiling.
*
* Boards may #undef this to reduce image size and RAM usage.
*/
#define CONFIG_TASK_PROFILING
/*****************************************************************************/
/* Mock config */
/*
* List of mock implementations to pull into the build.
*
* This should contain a flat list of MOCK(the-mock-name) elements.
*
* This is defined in the following two files:
* test/{testname}.mocklist
* fuzz/{fuzzname}.mocklist
*/
#undef CONFIG_TEST_MOCK_LIST
/*****************************************************************************/
/* Temperature sensor config */
/* Compile common code for temperature sensor support */
#undef CONFIG_TEMP_SENSOR
/* Support particular temperature sensor chips */
#undef CONFIG_TEMP_SENSOR_ADT7481 /* ADT 7481 sensor, on I2C bus */
#undef CONFIG_TEMP_SENSOR_BD99992GW /* BD99992GW PMIC, on I2C bus */
#undef CONFIG_TEMP_SENSOR_EC_ADC /* Thermistors on EC's own ADC */
#undef CONFIG_TEMP_SENSOR_G753 /* G753 sensor, on I2C bus */
#undef CONFIG_TEMP_SENSOR_G781 /* G781 sensor, on I2C bus */
#undef CONFIG_TEMP_SENSOR_G782 /* G782 sensor, on I2C bus */
#undef CONFIG_TEMP_SENSOR_OTI502 /* OTI502 sensor, on I2C bus */
#undef CONFIG_TEMP_SENSOR_PCT2075 /* PCT2075 sensor, on I2C bus */
#undef CONFIG_TEMP_SENSOR_SB_TSI /* SB_TSI sensor, on I2C bus */
#undef CONFIG_TEMP_SENSOR_TMP006 /* TI TMP006 sensor, on I2C bus */
#undef CONFIG_TEMP_SENSOR_TMP112 /* TI TMP112 sensor, on I2C bus */
#undef CONFIG_TEMP_SENSOR_TMP411 /* TI TMP411 sensor, on I2C bus */
#undef CONFIG_TEMP_SENSOR_TMP432 /* TI TMP432 sensor, on I2C bus */
#undef CONFIG_TEMP_SENSOR_TMP468 /* TI TMP468 sensor, on I2C bus */
#undef CONFIG_TEMP_SENSOR_F75303 /* Fintek F75303 sensor, on I2C bus */
#undef CONFIG_TEMP_SENSOR_AMD_R19ME4070 /* AMD_R19ME4070 sensor, on I2C bus */
/* Compile common code for thermistor support */
#undef CONFIG_THERMISTOR
/* Support particular thermistors */
#undef CONFIG_THERMISTOR_NCP15WB /* NCP15WB thermistor */
/*
* If defined, image includes lookup tables and helper functions that convert
* thermistor ADC readings into degrees K based off of various circuit
* configurations.
*/
#undef CONFIG_STEINHART_HART_3V0_22K6_47K_4050B
#undef CONFIG_STEINHART_HART_3V3_13K7_47K_4050B
#undef CONFIG_STEINHART_HART_3V3_51K1_47K_4050B
#undef CONFIG_STEINHART_HART_6V0_51K1_47K_4050B
#undef CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
/*
* If defined, active-high GPIO which indicates temperature sensor chips are
* powered. The GPIO pin must be defined as GPIO_TEMP_SENSOR_POWER.
* If not defined, temperature sensors are assumed to be always
* powered.
*/
#undef CONFIG_TEMP_SENSOR_POWER
/* AMD STT (Skin Temperature Tracking) */
#undef CONFIG_AMD_STT
/* Compile common code for throttling the CPU based on the temp sensors */
#undef CONFIG_THROTTLE_AP
/*
* Throttle the CPU when battery discharge current is too high. When
* this feature is enabled, BAT_MAX_DISCHG_CURRENT must be defined in board.h.
*/
#undef CONFIG_THROTTLE_AP_ON_BAT_DISCHG_CURRENT
/*
* Throttle the CPU when battery voltage drops below a defined threshold
* where the board still boots but some components don't function perfectly.
* When this feature is enabled, BAT_LOW_VOLTAGE_THRESH must be defined in
* board.h.
*/
#undef CONFIG_THROTTLE_AP_ON_BAT_VOLTAGE
/*
* If defined, dptf is enabled to manage thermals.
*
* NOTE: This doesn't mean that thermal control is completely taken care by
* DPTF. We have some hybrid solutions where the EC still manages the fans.
*/
#undef CONFIG_DPTF
/* If defined, dptf debug prints will print to EC console */
#undef CONFIG_DPTF_DEBUG_PRINTS
/*
* If defined, this indicates to the motion lid driver that the board does not
* have any GMR sensor and hence DPTF profile selection is required to be done
* based on lid angle.
*/
#undef CONFIG_DPTF_MOTION_LID_NO_GMR_SENSOR
/*
* If defined, device supports multiple DPTF profiles depending upon device mode
* e.g. clamshell v/s 360-degree flipped mode or base detached v/s attached
* mode.
*
* This config can be used by any driver that does lid angle calculation or base
* state detection to determine if different profile numbers need to be
* indicated to the host.
*/
#undef CONFIG_DPTF_MULTI_PROFILE
/*
* Sometime EC was already driver thermal sensor power pin to high, but sensor
* power is still not ready. That cause the system will thermal shutdown when
* first boot EC.
*
* This config can be used to delay thermal sensor read in the first time.
*/
#undef CONFIG_TEMP_SENSOR_FIRST_READ_DELAY_MS
/*****************************************************************************/
/* Touchpad config */
/* Enable touchpad. (You must pick a driver from the options below.) */
#undef CONFIG_TOUCHPAD
/* Enable Elan driver */
#undef CONFIG_TOUCHPAD_ELAN
/* Enable Goodix GT7288 driver */
#undef CONFIG_TOUCHPAD_GT7288
/* Enable ST driver */
#undef CONFIG_TOUCHPAD_ST
/* Set I2C port and address (7-bit) */
#undef CONFIG_TOUCHPAD_I2C_PORT
#undef CONFIG_TOUCHPAD_I2C_ADDR_FLAGS
/*
* Enable touchpad FW update over USB update protocol, and define touchpad
* virtual address and size.
*/
#undef CONFIG_TOUCHPAD_VIRTUAL_OFF
#undef CONFIG_TOUCHPAD_VIRTUAL_SIZE
/*
* Include hashes of the touchpad FW in the EC image, passed as TOUCHPAD_FW
* parameter to make command.
*/
#undef CONFIG_TOUCHPAD_HASH_FW
/*****************************************************************************/
/* USART stream config */
#undef CONFIG_STREAM_USART
/*
* Each USART stream can be individually enabled and accessible using the
* stream interface provided in the usart_config struct.
*/
#undef CONFIG_STREAM_USART1
#undef CONFIG_STREAM_USART2
#undef CONFIG_STREAM_USART3
#undef CONFIG_STREAM_USART4
#undef CONFIG_STREAM_USART5
/*****************************************************************************/
/* USB stream config */
#undef CONFIG_STREAM_USB
/*****************************************************************************/
/* UART HOST COMMAND config */
/* Includes USART as host command interface */
#undef CONFIG_USART_HOST_COMMAND
/* Pointer to USART HW config of physical instance */
#undef CONFIG_UART_HOST_COMMAND_HW
/*
* USART baudrate for host command interface.
* Typically configured at 3000000 to handle use cases
* like firmware download and big packets in a reasonable time.
*/
#undef CONFIG_UART_HOST_COMMAND_BAUD_RATE
/*****************************************************************************/
/* UART config */
/* Baud rate for UARTs */
#define CONFIG_UART_BAUD_RATE 115200
#ifndef CONFIG_ZEPHYR
/* UART index (number) for EC console */
#undef CONFIG_UART_CONSOLE
#endif /* CONFIG_ZEPHYR */
/* UART index (number) for host UART, if present */
#undef CONFIG_UART_HOST
/* Use uart_input_filter() to filter UART input. See prototype in uart.h */
#undef CONFIG_UART_INPUT_FILTER
/*
* Allow switching the EC console UART to an alternate pad. This must be
* used for short transactions only, and EC is only able to receive data on
* that alternate pad after it has been explicitly switched.
*/
#undef CONFIG_UART_PAD_SWITCH
/**
* Preserve EC reset logs and console logs on SRAM/FLASH so that the logs will
* be preserved after EC shutting down or sysjumped. It will keep the contents
* across EC resets, so we have more information about system states. The
* contents on SRAM will be cleared when checksum or validity check fails.
*/
#undef CONFIG_PRESERVE_LOGS
/*
* UART receive buffer size in bytes. Must be a power of 2 for macros in
* common/uart_buffering.c to work properly. Must be larger than
* CONFIG_CONSOLE_INPUT_LINE_SIZE to copy and paste scripts.
*/
#define CONFIG_UART_RX_BUF_SIZE 128
/* Use DMA for UART input */
#undef CONFIG_UART_RX_DMA
/*
* On some platforms, UART receive DMA can't trigger an interrupt when a single
* character is received. Those platforms poll for characters every HOOK_TICK.
* When a character is received, make this many additional checks between then
* and the next HOOK_TICK, to increase responsiveness of the console to input.
*/
#define CONFIG_UART_RX_DMA_RECHECKS 5
/*
* UART transmit buffer size in bytes. Must be a power of 2 for macros in
* common/uart_buffering.c to work properly.
*/
#define CONFIG_UART_TX_BUF_SIZE 512
/* Use DMA for UART output */
#undef CONFIG_UART_TX_DMA
/* The DMA channel for UART. If not defined, default to UART1. */
#undef CONFIG_UART_TX_DMA_CH
#undef CONFIG_UART_RX_DMA_CH
/* The DMA peripheral request signal for UART TX. STM32 only. */
#undef CONFIG_UART_TX_DMA_PH
/* The DMA channel mapping config for stm32f4. */
#undef CONFIG_UART_TX_REQ_CH
#undef CONFIG_UART_RX_REQ_CH
/* Driver of LN9310 switchcap */
#undef CONFIG_LN9310
/* Use this to include support for MP4245 buck boost converter */
#undef CONFIG_MP4245
/* Use this to include support for MP2964 IMVP9.1 PMIC */
#undef CONFIG_MP2964
/*****************************************************************************/
/* USB PD config */
/* Config is enabled, if PD interrupt tasks are used. */
#undef CONFIG_HAS_TASK_PD_INT
/*
* Enables USB Power Delivery
*
* When this config option is enabled, one of the following must be enabled:
* CONFIG_USB_PD_TCPMV1 - legacy power delivery state machine
* CONFIG_USB_PD_TCPMV2 - current power delivery state machine
* CONFIG_USB_PD_CONTROLLER - power delivery controller state machine
*/
#undef CONFIG_USB_POWER_DELIVERY
/*
* Enables the Legacy power delivery state machine.
* NOTE: Should not be used for new designs.
*/
#undef CONFIG_USB_PD_TCPMV1
/*
* Enables PD protocol state names in the TPCMv1 console output.
* Disable to save ~900 bytes in flash space.
*/
#define CONFIG_USB_PD_TCPMV1_DEBUG
/*
* Enables Version 2 of the Power Delivery state machine
*
* Along with CONFIG_USB_PD_TCPMV2, you must ensure a device type is also
* enabled otherwise an error will be emitted.
*/
#undef CONFIG_USB_PD_TCPMV2
/*
* Enables the Power Delivery Controller state machine.
*/
#undef CONFIG_USB_PD_CONTROLLER
/*
* Enable dynamic PDO selection.
*
* DPS picks a power efficient voltage regarding to the battery configuration
* and the system loading. It monitors PIn (Power In), so VBUS/IBUS ADC
* should be supported on the platform.
*/
#undef CONFIG_USB_PD_DPS
/*
* Device Types for TCPMv2.
*
* Exactly one must be defined when CONFIG_USB_PD_TCPMV2 is defined.
*
* VPD - Vconn Powered Device
* CTVPD - Charge Through Vconn Powered Device
* DRP_ACC_TRYSRC - Dual Role Port, Audio Accessory, and Try.SRC Device
*/
#undef CONFIG_USB_VPD
#undef CONFIG_USB_CTVPD
#undef CONFIG_USB_DRP_ACC_TRYSRC
/*
* TCPMv2 statemachine layers
*
* All layers are defined by default. To opt-out, you must undef in your board.
* Also these defines don't take effect unless CONFIG_USB_PD_TCPMV2 is also
* defined.
*
* TYPEC_SM - Type-C deals with CC lines voltage level connections
* PRL_SM - Protocol handles flow and chunking TX and RX messages
* PE - Policy Engine handles PD communication flow
* DPM - Device Policy Manager layer is used to determine port policy
*/
#define CONFIG_USB_TYPEC_SM
#define CONFIG_USB_PRL_SM
#define CONFIG_USB_PE_SM
#define CONFIG_USB_DPM_SM
/* Enables PD Console commands */
#define CONFIG_USB_PD_CONSOLE_CMD
/* Enables PD Host commands */
#ifdef HAS_TASK_HOSTCMD
#define CONFIG_USB_PD_HOST_CMD
#endif
/* Support for USB PD alternate mode entry */
#undef CONFIG_USB_PD_ALT_MODE
/* Support for USB PD alternate mode entry by a Downward Facing Port */
#undef CONFIG_USB_PD_ALT_MODE_DFP
/* Support for USB PD alternate mode entry from an Upward Facing Port */
#undef CONFIG_USB_PD_ALT_MODE_UFP
/* Support for automatic USB PD Discovery VDM probing and storage */
#undef CONFIG_USB_PD_DISCOVERY
/*
* Do not enter USB PD alternate modes or USB4 automatically. Wait for the AP to
* direct the EC to enter a mode. This requires AP software support.
*/
#undef CONFIG_USB_PD_REQUIRE_AP_MODE_ENTRY
/* Allow the AP to compose VDMs for us to send */
#undef CONFIG_USB_PD_VDM_AP_CONTROL
/* Supports DP as UFP-D and requires HPD to DP_ATTEN converter */
#undef CONFIG_USB_PD_ALT_MODE_UFP_DP
/* HPD is sent to the GPU from the EC via a GPIO */
#undef CONFIG_USB_PD_DP_HPD_GPIO
/*
* HPD is sent to the GPU from the EC via a GPIO, and the HPD GPIO level has
* to be handled separately.
*/
#undef CONFIG_USB_PD_DP_HPD_GPIO_CUSTOM
/* Check if max voltage request is allowed before each request */
#undef CONFIG_USB_PD_CHECK_MAX_REQUEST_ALLOWED
/* Default state of PD communication disabled flag */
#undef CONFIG_USB_PD_COMM_DISABLED
/*
* Define this if a board needs custom SNK and/or SRC PDOs.
*
* The default SRC PDO is a fixed 5V/1.5A with PDO_FIXED_FLAGS indicating
* Dual-Role power, USB Communication Capable, and Dual-Role data.
*
* The default SNK PDOs are:
* - Fixed 5V/500mA with the same PDO_FIXED_FLAGS
* - Variable (non-battery) min 4.75V, max PD_MAX_VOLTAGE_MV, operational
* current 3A
* - Battery min 4.75V, max PD_MAX_VOLTAGE_MV, operational power 15W
*/
#undef CONFIG_USB_PD_CUSTOM_PDO
/*
* Do not enable PD communication in RO as a security measure.
* We don't want to allow communication to outside world until
* we jump to RW. This can by overridden with the removal of
* the write protect screw to allow for easier testing.
*
* Note: this is assumed for TCPMv2. See also CONFIG_BRINGUP for enabling PD in
* RO.
*/
#undef CONFIG_USB_PD_COMM_LOCKED
/* Default USB data role when a USB PD debug accessory is seen */
#define CONFIG_USB_PD_DEBUG_DR PD_ROLE_DFP
/*
* Define to have a fixed PD Task debug level.
* Undef to allow runtime change via console command.
*/
#undef CONFIG_USB_PD_DEBUG_LEVEL
/*
* Set to a nonzero value to delay PD task startup by the given
* amount of time.
*/
#define CONFIG_USB_PD_STARTUP_DELAY_MS 0
/*
* Define if this board is using runtime flags instead of build time configs
* to control USB PD properties.
*/
#define CONFIG_USB_PD_FLAGS
#undef CONFIG_USB_PD_RUNTIME_FLAGS
/*
* Define to enable the PD Data Reset Message. This is mandatory for
* USB4 and optional for USB 3.2
*/
#undef CONFIG_USB_PD_DATA_RESET_MSG
/*
* Define if this board can enable VBUS discharge (eg. through a GPIO-controlled
* discharge circuit, or through port controller registers) to discharge VBUS
* rapidly on disconnect. Will be defined automatically when one of the below
* options is defined.
*/
#undef CONFIG_USB_PD_DISCHARGE
/* Define if discharge circuit is EC GPIO-controlled. */
#undef CONFIG_USB_PD_DISCHARGE_GPIO
/* Define if discharge circuit is using PD discharge registers on TCPC. */
#undef CONFIG_USB_PD_DISCHARGE_TCPC
/* Define if discharge circuit is using PD discharge registers on PPC. */
#undef CONFIG_USB_PD_DISCHARGE_PPC
/* Define if this board can act as a dual-role PD port (source and sink) */
#undef CONFIG_USB_PD_DUAL_ROLE
/* Define if this board can used TCPC-controlled DRP toggle */
#undef CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
/* Define to reduces VBUS droop caused by inrush current during charging */
#undef CONFIG_BD9995X_DELAY_INPUT_PORT_SELECT
/* Initial DRP / toggle policy */
#define CONFIG_USB_PD_INITIAL_DRP_STATE PD_DRP_TOGGLE_OFF
/*
* Define if VBUS source GPIOs (GPIO_USB_C*_5V_EN) are active-low (and named
* (..._L) rather than default active-high.
*/
#undef CONFIG_USB_PD_5V_EN_ACTIVE_LOW
/* Ask charger if VBUS is enabled on a source port, instead of using GPIO */
#undef CONFIG_USB_PD_5V_CHARGER_CTRL
/*
* If defined, use a custom function to determine if VBUS is enabled on a
* source port. The custom function is board_is_sourcing_vbus(port).
*/
#undef CONFIG_USB_PD_5V_EN_CUSTOM
/* Enable Displayport 2.1 Capability */
#undef CONFIG_USB_PD_DP21_MODE
/* Dynamic USB PD source capability */
#undef CONFIG_USB_PD_DYNAMIC_SRC_CAP
/* Support USB PD flash. */
#undef CONFIG_USB_PD_FLASH
/* Check whether PD is the sole power source before flash erase operation */
#undef CONFIG_USB_PD_FLASH_ERASE_CHECK
/* Define if this board, operating as a sink, can give power back to a source */
#undef CONFIG_USB_PD_GIVE_BACK
/*
* PD Rev2.0 functionality is enabled by default. Defining this macro
* enables PD Rev3.0 functionality.
*/
#undef CONFIG_USB_PD_REV30
/* Defined automatically based on on maximum PD revision supported. */
#undef CONFIG_PD_RETRY_COUNT
/*
* Support USB PD 3.0 Extended Messages. This will only take effect if
* CONFIG_USB_PD_REV30 is also enabled. Note that Chromebooks disabling this
* config item are non-compliant with PD 3.0, because they have batteries but do
* not support Get_Battery_Cap or Get_Battery_Status.
*/
#define CONFIG_USB_PD_EXTENDED_MESSAGES
/* Major and Minor ChromeOS specific PD device Hardware IDs. */
#undef CONFIG_USB_PD_HW_DEV_ID_BOARD_MAJOR
#undef CONFIG_USB_PD_HW_DEV_ID_BOARD_MINOR
/* HW & SW version for alternate mode discover identity response (4bits each) */
#undef CONFIG_USB_PD_IDENTITY_HW_VERS
#undef CONFIG_USB_PD_IDENTITY_SW_VERS
/* USB PD MCU I2C address for host commands */
#define CONFIG_USB_PD_I2C_ADDR_FLAGS 0x1E
/* Define if using internal comparator for PD receive */
#undef CONFIG_USB_PD_INTERNAL_COMP
/* Record main PD events in a circular buffer */
#undef CONFIG_USB_PD_LOGGING
/*
* Record PRL state transitions in a ring buffer, readable via the `prllog`
* console command.
*/
#undef CONFIG_USB_PD_PRL_EVENT_LOG
/*
* Number of events that can be stored in the PRL log (after this many, the
* oldest entries will be replaced with new ones).
*/
#define CONFIG_USB_PD_PRL_EVENT_LOG_CAPACITY 128
/* The size in bytes of the FIFO used for event logging */
#define CONFIG_EVENT_LOG_SIZE 512
/* Save power by waking up on VBUS rather than polling CC */
#define CONFIG_USB_PD_LOW_POWER
/* Allow chip to go into low power idle even when a PD device is attached */
#undef CONFIG_USB_PD_LOW_POWER_IDLE_WHEN_CONNECTED
/* Number of USB PD ports */
#undef CONFIG_USB_PD_PORT_MAX_COUNT
/*
* Number of ITE USB PD active ports
* NOTE: The active port usage should follow the order of ITE TCPC port index.
*/
#undef CONFIG_USB_PD_ITE_ACTIVE_PORT_COUNT
/* Simple DFP, such as power adapter, will not send discovery VDM on connect */
#undef CONFIG_USB_PD_SIMPLE_DFP
/* Use comparator module for PD RX interrupt */
#define CONFIG_USB_PD_RX_COMP_IRQ
/* Use TCPC module (type-C port controller) */
#undef CONFIG_USB_PD_TCPC
/* Board provides specific TCPC init function */
#undef CONFIG_USB_PD_TCPC_BOARD_INIT
/* Enable TCPC to enter low power mode */
#undef CONFIG_USB_PD_TCPC_LOW_POWER
/*
* Default debounce when exiting low-power mode before checking CC status.
* Some TCPCs need additional time following a VBUS change to internally
* debounce the CC line status and updating the CC_STATUS register.
*/
#define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (25 * MSEC)
/* Define EC and TCPC modules are in one integrated chip */
#undef CONFIG_USB_PD_TCPC_ON_CHIP
/* If VCONN is enabled, the TCPC will provide VCONN */
#define CONFIG_USB_PD_TCPC_VCONN
/* Enable the encoding of msg SOP* in bits 31-28 of 32-bit msg header type */
#undef CONFIG_USB_PD_DECODE_SOP
/* Enable to support DisplayPort mode from the EC */
#undef CONFIG_USB_PD_DP_MODE
/*
* The USB4 specification defines compatibility support for USB4 products to
* interact with existing Thunderbolt 3 products. Enable this config to enter
* into Thunderbolt-compatible mode between two port partners.
*/
#undef CONFIG_USB_PD_TBT_COMPAT_MODE
/* Enable to enter into USB4 mode between two port partners */
#undef CONFIG_USB_PD_USB4
/* Enable if port is cable of operating as an USB4 device */
#undef CONFIG_USB_PD_USB4_DRD
/* Enable if port is cable of operating as an USB3.2 device */
#undef CONFIG_USB_PD_USB32_DRD
/* Enable if the board is Thunderbolt Gen 3 capable */
#undef CONFIG_USB_PD_TBT_GEN3_CAPABLE
/* Enable PCIE tunneling if Thunderbolt-Compatible mode is enabled*/
#undef CONFIG_USB_PD_PCIE_TUNNELING
/* Enable Power Path Control from PD */
#undef CONFIG_USB_PD_PPC
/*
* The following two macros are ASCII text strings that matches what appears
* in the USB-IF Product Registration form for this device. These macros are
* used during VIF generation and they form the product name in the
* USB Integrator’s List.
*/
#undef CONFIG_USB_PD_MODEL_PART_NUMBER
#undef CONFIG_USB_PD_PRODUCT_REVISION
/*
* Should be defined if the device is a TypeC Alt Mode Adapter. This macro
* is used during VIF generation.
*/
#undef CONFIG_USB_ALT_MODE_ADAPTER
/*
* A text string, provided by the USB-IF. This macro is used during VIF
* generation.
*/
#undef CONFIG_USB_PD_TID
/*
* An ASCII text string that must correspond with the port label given on the
* device picture submitted to USB-IF by the Vendor along with the VIF. This
* macro is used during VIF generation.
*/
#undef CONFIG_USB_PD_PORT_LABEL
/*
* Define if Get_Manufacturer_Info request PD message is supported.
* Used during VIF generation.
*/
#undef CONFIG_USB_PD_MANUFACTURER_INFO
/*
* Define if both Security_Request and Security_Response PD messages are
* supported. Used during VIF generation.
*/
#undef CONFIG_USB_PD_SECURITY_MSGS
/*
* The number of non-removable batteries in the device. Used duing VIF
* generation.
*/
#undef CONFIG_NUM_FIXED_BATTERIES
/*
* Track VBUS level in TCPC module. This will only be needed if we're acting
* as an external TCPC.
*/
#undef CONFIG_USB_PD_TCPC_TRACK_VBUS
/* Enable runtime config the TCPC */
#undef CONFIG_USB_PD_TCPC_RUNTIME_CONFIG
/*
* Choose one of the following TCPMs (type-C port manager) to manage TCPC. The
* TCPM stub is used to make direct function calls to TCPC when TCPC is on
* the same MCU. The TCPCI TCPM uses the standard TCPCI i2c interface to TCPC.
*/
#undef CONFIG_USB_PD_TCPM_STUB
#undef CONFIG_USB_PD_TCPM_TCPCI
#undef CONFIG_USB_PD_TCPM_FUSB302
#undef CONFIG_USB_PD_TCPM_ITE_ON_CHIP
#undef CONFIG_USB_PD_TCPM_ANX3429
#undef CONFIG_USB_PD_TCPM_ANX7406
#undef CONFIG_USB_PD_TCPM_ANX740X
#undef CONFIG_USB_PD_TCPM_ANX741X
#undef CONFIG_USB_PD_TCPM_ANX7447
#undef CONFIG_USB_PD_TCPM_ANX7688
#undef CONFIG_USB_PD_TCPM_NCT38XX
#undef CONFIG_USB_PD_TCPM_MT6370
#undef CONFIG_USB_PD_TCPM_TUSB422
#undef CONFIG_USB_PD_TCPM_RAA489000
#undef CONFIG_USB_PD_TCPM_RT1715
#undef CONFIG_USB_PD_TCPM_RT1718S
#undef CONFIG_USB_PD_TCPM_FUSB307
#undef CONFIG_USB_PD_TCPM_STM32GX
#undef CONFIG_USB_PD_TCPM_CCGXXF
/* PS8XXX series are all supported by a single driver with a build time config
* listed below (CONFIG_USB_PD_TCPM_PS*) defined to enable the specific product.
*
* If a board with the same EC FW is expected to support multiple products here
* then CONFIG_USB_PD_TCPM_MULTI_PS8XXX MUST be defined then we can enable more
* than one product config to support them in the runtime. In this case, board
* is responsible to override function of board_get_ps8xxx_product_id in order
* to provide the product id per port.
*/
#undef CONFIG_USB_PD_TCPM_MULTI_PS8XXX
#undef CONFIG_USB_PD_TCPM_PS8745
#undef CONFIG_USB_PD_TCPM_PS8751
#undef CONFIG_USB_PD_TCPM_PS8755
#undef CONFIG_USB_PD_TCPM_PS8705
#undef CONFIG_USB_PD_TCPM_PS8805
#undef CONFIG_USB_PD_TCPM_PS8815
/*
* Enable PS8751 custom mux driver. It was designed to make use of Low Power
* Mode on PS8751 TCPC/MUX chip when running as MUX only (CC lines are not
* connected, eg. Ampton).
*
* If your PS8751 is working in the ordinary way (as TCPC and MUX) or you don't
* need to take advantage of Low Power Mode when working as MUX only, standard
* TCPC MUX driver (CONFIG_USB_PD_TCPM_MUX) will work fine.
*/
#undef CONFIG_USB_PD_TCPM_PS8751_CUSTOM_MUX_DRIVER
/*
* Defined automatically by chip and depends on chip. This guards the onboard
* TCPM driver, but CONFIG_USB_PD_TCPM_ITE_ON_CHIP needs to be defined in
* board.h for either of these driver to actually be included in the final
* image.
*/
#undef CONFIG_USB_PD_TCPM_DRIVER_IT83XX
#undef CONFIG_USB_PD_TCPM_DRIVER_IT8XXX2
/*
* Type-C retimer drivers to be used.
*/
#undef CONFIG_USBC_RETIMER_ANX7483
#undef CONFIG_USBC_RETIMER_ANX7452
#undef CONFIG_USBC_RETIMER_INTEL_BB
#undef CONFIG_USBC_RETIMER_KB800X
#undef CONFIG_USBC_RETIMER_KB8010
#undef CONFIG_USBC_RETIMER_NB7V904M
#undef CONFIG_USBC_RETIMER_PI3DPX1207
#undef CONFIG_USBC_RETIMER_PI3HDX1204
#undef CONFIG_USBC_RETIMER_PS8802
#undef CONFIG_USBC_RETIMER_PS8811
#undef CONFIG_USBC_RETIMER_PS8818
#undef CONFIG_USBC_RETIMER_TUSB544
/*
* DP redriver drivers to be used.
*/
#undef CONFIG_DP_REDRIVER_TDP142
/*
* Define this to enable Type-C retimer firmware update. Each Type-C retimer
* indicates its capability of supporting firmware update in usb_mux_driver.
* This feature is available to TCPMv2 PD stack, also requires
* CONFIG_USBC_SS_MUX is enabled.
* This feature includes changes in EC, Coreboot and Kernel. During AP boot
* up, AP scans each PD port for retimers if no Type-C device attached;
* and firmware update can be performed on retimers showing up in AP
* thunderbolt device entries. If PD port has device attached, no retimer
* scan on that port.
*/
#undef CONFIG_USBC_RETIMER_FW_UPDATE
/* Prevent enabling LPM of NB7V904M */
#undef CONFIG_NB7V904M_LPM_OVERRIDE
/* Enable retimer TUSB544 tune EQ setting by register */
#undef CONFIG_TUSB544_EQ_BY_REGISTER
/* Allow run-time configuration of the Burnside Bridge driver structure */
#undef CONFIG_USBC_RETIMER_INTEL_BB_RUNTIME_CONFIG
/* Enable vPro support for Intel Burnside Bridge on vPro supported platform */
#undef CONFIG_USBC_RETIMER_INTEL_BB_VPRO_CAPABLE
/* Require manual configuration of the KB800x crossbar mapping. */
#undef CONFIG_KB800X_CUSTOM_XBAR
/* Enables debug console commands for the STM32 UCPD driver */
#undef CONFIG_STM32G4_UCPD_DEBUG
/*
* Adds an EC console command to erase the ANX7447 OCM flash.
* Note: this is intended to be a temporary option and
* won't be needed when ANX7447 are put on boards with OCM already erased
*/
#undef CONFIG_USB_PD_TCPM_ANX7447_OCM_ERASE_COMMAND
/*
* Use this config option to enable and internal pullup resistor on the AUX_N
* and internal pulldown resistor on the AUX_P line. Only use this config
* option if there are no external pu/pd resistors on these signals. This
* configuration should be used to avoid noise issues on the DDI1_AUX_N &
* DDI1_AUX_P signals (b/122873171)
*/
#undef CONFIG_USB_PD_TCPM_ANX7447_AUX_PU_PD
/*
* Use this to override the TCPCI Device ID value to be 0x0002 for
* chip rev A3. Early A3 firmware misreports the DID as 0x0001.
*/
#undef CONFIG_USB_PD_TCPM_PS8805_FORCE_DID
/*
* Use this to override the TCPCI Device ID value to be 0x0002 for
* chip rev A1. Early A1 firmware misreports the DID as 0x0001.
*/
#undef CONFIG_USB_PD_TCPM_PS8815_FORCE_DID
/*
* Use this option if the TCPC port controller supports the optional register
* 18h CONFIG_STANDARD_OUTPUT to steer the high-speed muxes.
*/
#undef CONFIG_USB_PD_TCPM_MUX
/*
* Some PD chips have integrated port protection for SBU lines.
* If the switches to enable those SBU lines are controlled by the PD
* chip, enable this config.
*/
#undef CONFIG_USB_PD_TCPM_SBU
/*
* The TCPM must know whether VBUS is present in order to make proper state
* transitions. In addition, charge_manager must know about VBUS presence in
* order to make charging decisions. VBUS state can be determined by various
* methods:
* - Some TCPCs can detect and report the presence of VBUS.
* - In some configurations, charger ICs can report the presence of VBUS.
* - On some boards, dedicated VBUS interrupt pins are available.
* - Some power path controllers (PPC) can report the presence of VBUS.
*
* Exactly one of these should be defined for all boards that run the PD
* state machine.
*/
#undef CONFIG_USB_PD_VBUS_DETECT_TCPC
#undef CONFIG_USB_PD_VBUS_DETECT_CHARGER
#undef CONFIG_USB_PD_VBUS_DETECT_GPIO
#undef CONFIG_USB_PD_VBUS_DETECT_PPC
#undef CONFIG_USB_PD_VBUS_DETECT_NONE
/* Define if the there is a separate ADC channel for each USB-C Vbus voltage */
#undef CONFIG_USB_PD_VBUS_MEASURE_ADC_EACH_PORT
/* Define if the there is no hardware to measure Vbus voltage */
#undef CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT
/* Define if charger on the board supports VBUS measurement */
#undef CONFIG_USB_PD_VBUS_MEASURE_CHARGER
/* Define if tcpc on the board supports VBUS measurement */
#undef CONFIG_USB_PD_VBUS_MEASURE_TCPC
/* Define if there is a specific method to measure Vbus voltage */
#undef CONFIG_USB_PD_VBUS_MEASURE_BY_BOARD
/* Define the type-c port controller I2C base address. */
#define CONFIG_TCPC_I2C_BASE_ADDR_FLAGS 0x4E
/* Use this option to enable Try.SRC mode for Dual Role devices */
#undef CONFIG_USB_PD_TRY_SRC
/* Set the default minimum battery percentage for Try.Src to be enabled */
#define CONFIG_USB_PD_TRY_SRC_MIN_BATT_SOC 5
/* Index for temperature sensor used in PD messages. Defaults to 0. */
#define CONFIG_USB_PD_TEMP_SENSOR 0
/*
* Time limit in ms for a USB PD power button press to be considered a short
* press
*/
#define CONFIG_USB_PD_SHORT_PRESS_MAX_MS 4000
/* Time limit in ms for a USB PD power button press to be considered valid. */
#define CONFIG_USB_PD_LONG_PRESS_MAX_MS 8000
/*
* Set the minimum battery percentage to allow a PD port to send resets as a
* sink (and risk a hard reset, losing Vbus). Note this may cause a high-power
* charger to appear as only a low-power 15W charger until a reset is sent to
* re-start PD negotiation.
*/
#undef CONFIG_USB_PD_RESET_MIN_BATT_SOC
/*
* Workaround for power_state:rec with cros_ec_softrec_power on chromeboxes.
* cros_ec_softrec works by running `reboot wait-ext ap-off-in-ro`. If a
* chromebox is powered by Type-C only, the EC reset will result in a PD hard
* reset and the device will brown out. When it boots again the ap-off and
* stay-in-ro flags are lost so recovery fails. To work around this, we preserve
* the flags across a PD reset.
*
* This doesn't affect manual recovery on user devices, since it uses the
* recovery signal from the GSC, not the reset flags.
*
* This should only be enabled on chromeboxes which don't have servo micro and
* therefore can't use cros_ec_hardrec_power. See b/293545949 and b/295363809.
*/
#undef CONFIG_USB_PD_RESET_PRESERVE_RECOVERY_FLAGS
/* Alternative configuration keeping only the TX part of PHY */
#undef CONFIG_USB_PD_TX_PHY_ONLY
/* Use DAC as reference for comparator at 850mV. */
#undef CONFIG_PD_USE_DAC_AS_REF
/*
* The Fast Role Swap trigger can be implemented in either the TCPC or PPC
* driver. If either CONFIG_USB_PD_FRS_TCPC or CONFIG_USB_PD_FRS_PPC is set,
* CONFIG_USB_FRS will be set automatically to enable the protocol-side of FRS.
*/
#undef CONFIG_USB_PD_FRS_TCPC
#undef CONFIG_USB_PD_FRS_PPC
#undef CONFIG_USB_PD_FRS
/*
* Enable USB-PD extended power range.
*/
#undef CONFIG_USB_PD_EPR
/*
* USB Product ID. Each platform (e.g. baseboard set) should have a single
* VID/PID combination. If there is a big enough change within a platform,
* then we can differentiate USB topologies by varying the HW version field
* in the Sink and Source Capabilities Extended messages.
*
* To reserve a new PID, use go/usb-pid.
*/
#undef CONFIG_USB_PID
/*
* USB Vendor ID used for USB endpoints.
*/
#define CONFIG_USB_VID USB_VID_GOOGLE
/*
* Track overcurrent events for sinking partners coming from some component on
* the board. Auto-enabled for drivers which contain support for this feature.
*/
#undef CONFIG_USBC_OCP
/* PPC needs to be informed of CC polarity */
#undef CONFIG_USBC_PPC_POLARITY
/*
* Disable charging from Default(USB) Rp as a type-c supplier. If your device
* can detect such a supplier by BC 1.2, define this to get more current
* from a BC 1.2 supplier.
*/
#undef CONFIG_USBC_DISABLE_CHARGE_FROM_RP_DEF
/* USB Type-C Power Path Controllers (PPC) */
#undef CONFIG_USBC_PPC_AOZ1380
#undef CONFIG_USBC_PPC_KTU1125
#undef CONFIG_USBC_PPC_NX20P3481
#ifndef CONFIG_ZEPHYR
#undef CONFIG_USBC_PPC_NX20P3483
#endif /* CONFIG_ZEPHYR */
#undef CONFIG_USBC_PPC_RT1718S
#undef CONFIG_USBC_PPC_SN5S330
#undef CONFIG_USBC_PPC_SYV682C
#undef CONFIG_USBC_PPC_SYV682X
#undef CONFIG_USBC_PPC_TCPCI
/*
* NX20P348x 5V SRC RCP trigger level at 10mV. Define to enable 5V SRC RCP
* mask for can't trigger interrupt signal.
*/
#undef CONFIG_USBC_NX20P348X_RCP_5VSRC_MASK_ENABLE
/*
* Setting SYV682X OVP to 15v power profile application
*/
#undef CONFIG_USBC_PPC_SYV682X_OVP_SET_15V
/*
* SYV682x PPC high voltage power path current limit. Default limit is
* 3.3A. See the syv682x header file for permissible values.
*/
#define CONFIG_SYV682X_HV_ILIM SYV682X_HV_ILIM_3_30
/* SYV682 does not pass through CC, instead it bypasses to the TCPC */
#undef CONFIG_USBC_PPC_SYV682X_NO_CC
/* Define to enable SYV682X VBUS smart discharge. */
#undef CONFIG_USBC_PPC_SYV682X_SMART_DISCHARGE
/* PPC is capable of gating the SBU lines. */
#undef CONFIG_USBC_PPC_SBU
/* PPC is capable of providing VCONN */
#undef CONFIG_USBC_PPC_VCONN
/* PPC has level interrupts and has a dedicated interrupt pin to check */
#undef CONFIG_USBC_PPC_DEDICATED_INT
/* Enable logging related to the PPC. Undefine to reduce EC image size */
#define CONFIG_USBC_PPC_LOGGING
/* Support for USB type-c superspeed mux */
#undef CONFIG_USBC_SS_MUX
/*
* Only configure USB type-c superspeed mux when DFP (for chipsets that
* don't support being a UFP)
*/
#undef CONFIG_USBC_SS_MUX_DFP_ONLY
/* Only configure USB type-c superspeed mux when UFP */
#undef CONFIG_USBC_SS_MUX_UFP_ONLY
/* Support v1.1 type-C connection state machine */
#undef CONFIG_USBC_BACKWARDS_COMPATIBLE_DFP
/* Support for USB type-c vconn. Not needed for captive cables. */
#undef CONFIG_USBC_VCONN
/* Support VCONN swap */
#undef CONFIG_USBC_VCONN_SWAP
/*
* The amount of time in microseconds that the board takes to turn VCONN on or
* off after being directed to do so. Typically a property of the PPC. Default
* to 5 ms.
*/
#define CONFIG_USBC_VCONN_SWAP_DELAY_US 5000
/* USB Binary device Object Store support */
#undef CONFIG_USB_BOS
/* USB Device version of product */
#undef CONFIG_USB_BCD_DEV
/*
* Intel Reference Validation Platform's (RVP) Modular Embedded Control
* Card (MECC) versions
*/
#undef CONFIG_INTEL_RVP_MECC_VERSION_1_0
#undef CONFIG_INTEL_RVP_MECC_VERSION_1_1
/*****************************************************************************/
/* Compile chip support for the USB device controller */
#undef CONFIG_USB
/* Support USB isochronous handler */
#undef CONFIG_USB_ISOCHRONOUS
/* Common USB / BC1.2 charger detection routines */
#undef CONFIG_USB_CHARGER
/* Only allow PI3USB9201 to advertise itself as BC1.2 client */
#undef CONFIG_BC12_CLIENT_MODE_ONLY_PI3USB9201
/*
* Used for bc1.2 chips that need to be triggered from data role swaps instead
* of just VBUS changes.
*/
#undef CONFIG_BC12_DETECT_DATA_ROLE_TRIGGER
/*
* Board only needs one bc12 driver. This includes the case that has multiple
* chips that use the same driver. Enabled by default.
*
* If undefined, board should define a bc12_ports array which associates
* each port to its bc12 driver.
*/
#define CONFIG_BC12_SINGLE_DRIVER
/* External BC1.2 charger detection devices. */
#undef CONFIG_BC12_DETECT_MAX14637
#undef CONFIG_BC12_DETECT_MT6360
#undef CONFIG_BC12_DETECT_PI3USB9201
#undef CONFIG_BC12_DETECT_PI3USB9281
#undef CONFIG_BC12_DETECT_RT1718S
/* Number of Pericom PI3USB9281 chips present in system */
#undef CONFIG_BC12_DETECT_PI3USB9281_CHIP_COUNT
/* The delay in ms from power off to power on for MAX14637 */
#define CONFIG_BC12_MAX14637_DELAY_FROM_OFF_TO_ON_MS 1
/* Enable USB serial console module. */
#undef CONFIG_USB_CONSOLE
/*
* Enable USB serial console module using usb stream config.
* NOTE: CONFIG_USB_CONSOLE and CONFIG_USB_CONSOLE_STREAM should be defined
* exclusively each other.
*/
#undef CONFIG_USB_CONSOLE_STREAM
/* USB serial console transmit buffer size in bytes. */
#define CONFIG_USB_CONSOLE_TX_BUF_SIZE 2048
/*
* Enable USB serial console crc32 computation.
* Also makes console output block on overrun.
*/
#undef CONFIG_USB_CONSOLE_CRC
/* Support USB HID interface. */
#undef CONFIG_USB_HID
/* Support USB HID keyboard interface. */
#undef CONFIG_USB_HID_KEYBOARD
/* Support USB HID keyboard backlight. */
#undef CONFIG_USB_HID_KEYBOARD_BACKLIGHT
/*
* Support vivaldi compatible HID keyboard.
* If defined, the board must implement a function board_vivaldi_keybd_config(),
* and define a macro CONFIG_USB_HID_KB_NUM_TOP_ROW_KEYS which is equal to
* board_vivaldi_keybd_config()->num_top_row_keys.
*/
#undef CONFIG_USB_HID_KEYBOARD_VIVALDI
#undef CONFIG_USB_HID_KB_NUM_TOP_ROW_KEYS
/* Support USB HID touchpad interface. */
#undef CONFIG_USB_HID_TOUCHPAD
/* HID touchpad logical dimensions */
#undef CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_X
#undef CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_Y
#undef CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_PRESSURE
/* HID touchpad physical dimensions (tenth of mm) */
#undef CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_X
#undef CONFIG_USB_HID_TOUCHPAD_PHYSICAL_MAX_Y
/* USB device buffers and descriptors */
#undef CONFIG_USB_RAM_ACCESS_SIZE
#undef CONFIG_USB_RAM_ACCESS_TYPE
#undef CONFIG_USB_RAM_BASE
#undef CONFIG_USB_RAM_SIZE
/* Disable automatic connection of USB peripheral */
#undef CONFIG_USB_INHIBIT_CONNECT
/* Disable automatic initialization of USB peripheral */
#undef CONFIG_USB_INHIBIT_INIT
/* Support simple control of power to the device's USB ports */
#undef CONFIG_USB_PORT_POWER_DUMB
/*
* Let board customize the timing to enable/disable usb port, instead
* of using the default S3 hook.
*/
#undef CONFIG_USB_PORT_POWER_DUMB_CUSTOM_HOOK
/*
* Support smart power control to the device's USB ports, using
* dedicated power control chips. This potentially enables automatic
* negotiation of supplying more power to peripherals.
*/
#undef CONFIG_USB_PORT_POWER_SMART
/*
* GPIOs to enable USB port power have non-const configuration.
*/
#undef CONFIG_USB_PORT_ENABLE_DYNAMIC
/*
* Support smart power control to the device's USB ports, however only CDP and
* SDP are supported. Usually this is the case if all the control lines to the
* charging port controller are hard-wired.
*/
#undef CONFIG_USB_PORT_POWER_SMART_CDP_SDP_ONLY
/*
* Override the default charging mode for USB smart power control.
* Value is selected from usb_charge_mode in include/usb_charge.h
*/
#undef CONFIG_USB_PORT_POWER_SMART_DEFAULT_MODE
/*
* Smart USB power control can use a full set of control signals to the USB
* port power chip, or a reduced set. If this is defined, use the reduced set.
*/
#undef CONFIG_USB_PORT_POWER_SMART_SIMPLE
/* Number of smart USB power ports. */
#define CONFIG_USB_PORT_POWER_SMART_PORT_COUNT 2
/*
* Smart USB power control current limit pins may be inverted. In this case
* they are active low and the GPIO names will be GPIO_USBn_ILIM_SEL_L.
*/
#undef CONFIG_USB_PORT_POWER_SMART_INVERTED
/*
* Support waking up host by setting the K-state on the data lines (requires
* CONFIG_USB_SUSPEND to be set as well).
*/
#undef CONFIG_USB_REMOTE_WAKEUP
/* Support programmable USB device iSerial field. */
#undef CONFIG_USB_SERIALNO
/* Support reporting of configuration bMaxPower in mA */
#define CONFIG_USB_MAXPOWER_MA 500
#ifndef CONFIG_ZEPHYR
/* Support reporting as self powered in USB configuration. */
#undef CONFIG_USB_SELF_POWERED
#endif /* CONFIG_ZEPHYR */
/* Support correct handling of USB suspend (host-initiated). */
#undef CONFIG_USB_SUSPEND
/*
* Enable this config for a USB-EP device that needs to interop properly with a
* MS Windows OS host machine. This config will enable a special string
* descriptor so Windows OS will know to retreieve an Extended Compat ID OS
* Feature descriptor.
*/
#undef CONFIG_USB_MS_EXTENDED_COMPAT_ID_DESCRIPTOR
/* Default pull-up value on the USB-C ports when they are used as source. */
#define CONFIG_USB_PD_PULLUP TYPEC_RP_1A5
/*
* Override the pull-up value when only zero or one port is actively sourcing
* current and we can advertise more current than what is defined by
* `CONFIG_USB_PD_PULLUP`.
* Should be defined with one of the tcpc_rp_value.
*/
#undef CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT
/*
* Ignore all non-fixed PDOs received from a src_caps message. Enable this for
* boards (like servo_v4) which only support FIXED PDO types.
*/
#undef CONFIG_USB_PD_ONLY_FIXED_PDOS
/*
* Total current in mA the board can supply to external devices through
* USB-C ports
*
* When a sink device is plugged or unplugged, source current redistribution
* occurs. If this macro is defined, redistribution occurs in such a way
* that there is no current drop (e.g. 3A -> 1.5A) on active source ports.
*/
#undef CONFIG_USB_PD_MAX_TOTAL_SOURCE_CURRENT
/******************************************************************************/
/* stm32f4 dwc usb configs. */
/* Set USB speed to FS rather than HS */
#undef CONFIG_USB_DWC_FS
/******************************************************************************/
/* USB port switch */
/* Allow run-time completion of the usb mux driver structure */
#undef CONFIG_USB_MUX_RUNTIME_CONFIG
/* Allow the AP to send commands for mux control */
#undef CONFIG_USB_MUX_AP_CONTROL
/* Support the AMD FP5 USB/DP Mux */
#undef CONFIG_USB_MUX_AMD_FP5
/* Support the AMD FP6 USB/DP Mux */
#undef CONFIG_USB_MUX_AMD_FP6
/*
* Support the Analogix ANX3443 USB Type-C Active mux (6x4) with
* Integrated Re-timers for USB3.2/DisplayPort.
*/
#undef CONFIG_USB_MUX_ANX3443
/*
* Support the Analogix ANX7440 USB Type-C Active mux with
* Integrated Re-timers for USB3.1/DisplayPort.
*/
#undef CONFIG_USB_MUX_ANX7440
/*
* Support the Analogix ANX7451 10G Active Mux (4x4) with
* Integrated Re-timers for USB3.2/DisplayPort
*/
#undef CONFIG_USB_MUX_ANX7451
/* Support the ITE IT5205 Type-C USB alternate mode mux. */
#undef CONFIG_USB_MUX_IT5205
/* Support the Pericom PI3USB30532 USB3.0/DP1.2 Matrix Switch */
#undef CONFIG_USB_MUX_PI3USB30532
/* Support the Pericom PI3USB31532 USB3.1/DP1.4 Matrix Switch */
#undef CONFIG_USB_MUX_PI3USB31532
/* Support the Parade PS8740 Type-C Redriving Switch */
#undef CONFIG_USB_MUX_PS8740
/* Support the Parade PS8742 Type-C Redriving Switch */
#undef CONFIG_USB_MUX_PS8742
/* Support the Parade PS8743 Type-C Redriving Switch */
#undef CONFIG_USB_MUX_PS8743
/* Config to enable TUSB1044 Type-c USB redriver */
#undef CONFIG_USB_MUX_TUSB1044
/* Support the Texas Instrument TUSB1064 Type-C Redriving Switch (UFP) */
#undef CONFIG_USB_MUX_TUSB1064
/*
* Support TI TUSB546 USB Type-C DP ALT Mode Linear Redriver Crosspoint
* Switch
*/
#undef CONFIG_USB_MUX_TUSB546
/* Support the Parade PS8822 Type-C Redriving Demux Switch */
#undef CONFIG_USB_MUX_PS8822
/* 'Virtual' USB mux under host (not EC) control */
#undef CONFIG_USB_MUX_VIRTUAL
/* Enable IT5205H SBU protection switch */
#undef CONFIG_USB_MUX_IT5205H_SBU_OVP
/*
* Enable to inform the AP that an ACK is needed on configuring the TCSS mux.
* The config is enabled automatically when the board has CONFIG_USB_MUX_VIRTUAL
* and CONFIG_USBC_RETIMER_INTEL_BB enabled.
*/
#undef CONFIG_USB_MUX_AP_ACK_REQUEST
/*****************************************************************************/
/* USB GPIO config */
#undef CONFIG_USB_GPIO
/*****************************************************************************/
/* USB SPI config */
#undef CONFIG_USB_SPI
/*
* Use when you want the SPI subsystem to be enabled even when the USB SPI
* endpoint is not enabled by the host. This means that when this firmware
* enables SPI, then the HW SPI module is enabled (i.e. SPE bit is set) until
* this firmware disables the SPI module; it ignores the host's enables state.
*/
#undef CONFIG_USB_SPI_IGNORE_HOST_SIDE_ENABLE
/*****************************************************************************/
/* USB I2C config */
#undef CONFIG_USB_I2C
/* Allowed read/write count for USB over I2C */
#define CONFIG_USB_I2C_MAX_WRITE_COUNT 60
#define CONFIG_USB_I2C_MAX_READ_COUNT 60
/*****************************************************************************/
/* USB Power monitoring interface config */
#undef CONFIG_USB_POWER
/*****************************************************************************/
/*
* USB stream signing config. This allows data read over UART or SPI
* to have a signature generated that can be used to validate the data
* offline based on H1's registered key. Used by mn50.
*/
#undef CONFIG_STREAM_SIGNATURE
/*****************************************************************************/
/*
* Support early firmware selection
*
* EFS1 is being deprecated. EFS2 is faster, doesn't need two slots, and
* supports rollback protection.
*
* EFS2 runs in the system task (a.k.a. main) and the hook task (for shutdown
* hook). Their stack sizes must be big enough for sha256.
*/
#undef CONFIG_VBOOT_EFS
#undef CONFIG_VBOOT_EFS2
/* Offset of RW-A image in writable storage when using EFS. */
#undef CONFIG_RW_A_STORAGE_OFF
/* Offset of RW-A signature. */
#undef CONFIG_RW_A_SIGN_STORAGE_OFF
/* Offset of RW-B image in writable storage when using EFS. */
#undef CONFIG_RW_B_STORAGE_OFF
/* Offset of RW-B signature. */
#undef CONFIG_RW_B_SIGN_STORAGE_OFF
/* Support computing hash of code for verified boot */
#undef CONFIG_VBOOT_HASH
/* Support for secure temporary storage for verified boot */
#undef CONFIG_VSTORE
/* Number of supported slots for secure temporary storage */
#undef CONFIG_VSTORE_SLOT_COUNT
/*****************************************************************************/
/* Watchdog config */
/*
* Compile watchdog timer support. The watchdog timer will reboot the system
* if the hook task (which is the lowest-priority task on the system) gets
* starved for CPU time and isn't able to fire its HOOK_TICK event.
*/
#ifndef CONFIG_ZEPHYR
#define CONFIG_WATCHDOG
#endif
/*
* Try to detect a watchdog that is about to fire, and print a trace. This is
* required on chips such as STM32 where the watchdog timer simply reboots the
* system without any early warning.
*/
#undef CONFIG_WATCHDOG_HELP
/*
* The maximum number of times that the watchdog timer may reset
* before halting the system (or taking some sort of other
* chip-dependent corrective action).
*/
#define CONFIG_WATCHDOG_MAX_RETRIES 4
/* Watchdog period in ms; see also AUX_TIMER_PERIOD_MS */
#define CONFIG_WATCHDOG_PERIOD_MS 1600
/* The leading time of watchdog warning timer. */
#define CONFIG_WATCHDOG_WARNING_LEADING_TIME_MS 500
/*
* Fire auxiliary timer before watchdog timer expires. This leaves some time for
* debug trace to be printed.
*/
#define CONFIG_AUX_TIMER_PERIOD_MS \
(CONFIG_WATCHDOG_PERIOD_MS - CONFIG_WATCHDOG_WARNING_LEADING_TIME_MS)
/*****************************************************************************/
/* WebUSB config */
/*
* Enable the WebUSB support and define its URL.
* Export a WebUSB Platform Descriptor in the Binary Object Store descriptor.
* The WebUSB landing page URL is equal to 'CONFIG_WEBUSB_URL' plus the
* https:// prefix.
* This requires CONFIG_USB_BOS.
*/
#undef CONFIG_WEBUSB_URL
/*****************************************************************************/
/*
* Support controlling power to WiFi, WWAN (3G/LTE), and/or bluetooth modules.
*/
#undef CONFIG_WIRELESS
/*
* Support for WiFi devices that must remain powered in suspend. Set to the
* combination of EC_WIRELESS_SWITCH flags (from ec_commands.h) which should
* be set in suspend.
*/
#undef CONFIG_WIRELESS_SUSPEND
/* WiFi power control signal is active-low. */
#undef CONFIG_WLAN_POWER_ACTIVE_LOW
/*
* Write protect signal is active-high. If this is defined, there must be a
* GPIO named GPIO_WP; if not defined, there must be a GPIO names GPIO_WP_L.
*/
#undef CONFIG_WP_ACTIVE_HIGH
/*
* The write protect signal is always asserted,
* independently of the GPIO existence or current value.
*/
#undef CONFIG_WP_ALWAYS
/* Firmware upgrade options. */
/* A different config for the same update. TODO(vbendeb): dedupe these */
#undef CONFIG_USB_UPDATE
/* Add support for pairing over the USB update interface. */
#undef CONFIG_USB_PAIRING
/* Add support for reading UART buffer from USB update interface. */
#undef CONFIG_USB_CONSOLE_READ
/* PDU size for fw update over USB (or TPM). */
#define CONFIG_UPDATE_PDU_SIZE 1024
/* DFU firmware upgrade options */
/*
* Enables DFU USB Runtime identifier.
*/
#undef CONFIG_DFU_RUNTIME
/*
* Indicates this region is a DFU Boot Manager and is a minimal runtime.
*/
#undef CONFIG_DFU_BOOTMANAGER_MAIN
/*
* Enables DFU Boot Manager reboot loop protection. When unexpected reboots
* occur, a counter is incremented which will enter DFU once it exceeds
* the value defined. This parameter should only be enabled on setups which
* can issue the command to exit DFU.
*/
#undef CONFIG_DFU_BOOTMANAGER_MAX_REBOOT_COUNT
/*
* Enables access to shared utilities required for the application
* and DFU Boot Manager. This allows the application to enter DFU.
*/
#undef CONFIG_DFU_BOOTMANAGER_SHARED
/*
* If defined, led_pwr_get_state returns a special status if battery is
* discharging and battery is nearly full.
*/
#undef CONFIG_PWR_STATE_DISCHARGE_FULL
/*
* Define this if a chip needs to add some information to the common 'version'
* command output.
*/
#undef CONFIG_EXTENDED_VERSION_INFO
/*
* Include CROS_FWID in version output.
*/
#define CONFIG_CROS_FWID_VERSION
/*
* Define this to support Cros Board Info from EEPROM. I2C_PORT_EEPROM
* and I2C_ADDR_EEPROM_FLAGS must be defined as well.
*/
#undef CONFIG_CBI_EEPROM
/*
* Define this if the EC has exclusive control over the CBI EEPROM WP signal.
* The accompanying hardware must ensure that the CBI WP gets latched and is
* only reset when EC_RST_ODL is asserted. GPIO_EC_CBI_WP must be set up for
* the board.
*/
#undef CONFIG_EEPROM_CBI_WP
/* Define this to support Cros Board Info from GPIO. */
#undef CONFIG_CBI_GPIO
/* Define this to support Cros Board Info from EC flash. */
#undef CONFIG_CBI_FLASH
/*****************************************************************************/
/*
* ISH config defaults
*/
/*
* This will be automatically defined below if the board supports power
* modes that will require the AONTASK functionality.
*/
#undef CONFIG_ISH_PM_AONTASK
/*
* Define the following if the power state support is required.
*/
#undef CONFIG_ISH_PM_D0I1
#undef CONFIG_ISH_PM_D0I2
#undef CONFIG_ISH_PM_D0I3
#undef CONFIG_ISH_PM_D3
/*
* Define the following if the ip accessible power gating is required.
*/
#undef CONFIG_ISH_IPAPG
/*
* Define the following to the number of uSeconds of elapsed time that is
* required to enter D0I2 and D0I3, if they are supported
*/
#undef CONFIG_ISH_D0I2_MIN_USEC
#undef CONFIG_ISH_D0I3_MIN_USEC
/*
* Define the following if the new specific power management processing
* after ISH 5.4 is used.
*/
#undef CONFIG_ISH_NEW_PM
/*
* Define the following in order to perform power management reset
* prep IRQ setup when entering a new state
*/
#undef CONFIG_ISH_PM_RESET_PREP
/*
* Define the following if combined ISR is required for ipc communication
* between host and ISH.
*/
#undef CONFIG_ISH_HOST2ISH_COMBINED_ISR
/*
* Define the following if there is need to clear ISH fabric error.
*/
#undef CONFIG_ISH_CLEAR_FABRIC_ERRORS
/*
* Define the following if the version of ISH uses Synopsys Designware uart.
*/
#undef CONFIG_ISH_DW_UART
/*
* TEST ONLY defines (CONFIG_TEST_*)
*
* Used to include files for unit and other builds tests.
*/
/* Define to enable Policy Engine State Machine. */
#undef CONFIG_TEST_USB_PE_SM
/* Define to enable USB State Machine framework. */
#undef CONFIG_TEST_SM
/*
* This build is not a complete platform/ec based EC, but instead
* using the platform/ec zephyr module.
*
* Note: this is here purely for stylistic purposes and documentation.
*/
#ifndef CONFIG_ZEPHYR
#undef CONFIG_ZEPHYR
#endif
/*
* Define the following to drive CCD_MODE_ODL when a DTS accessory is
* connected to the CCD USBC port.
*
* GPIO_CCD_MODE_ODL should be configured with GPIO_ODR_HIGH flag
*/
#undef CONFIG_ASSERT_CCD_MODE_ON_DTS_CONNECT
#ifndef CONFIG_ZEPHYR
/* Define this to enable system boot time logging */
#undef CONFIG_SYSTEM_BOOT_TIME_LOGGING
#endif /* CONFIG_ZEPHYR */
/*
* The USB port used for CCD. Defaults to 0/C0.
*/
#define CONFIG_CCD_USBC_PORT_NUMBER 0
/*
* The historical default SCI pulse width to the host is 65 microseconds, but
* some chipsets may require different widths.
*/
#define CONFIG_HOST_INTERFACE_ESPI_DEFAULT_VW_WIDTH_US 65
/*
* Build and link *test* images with googletest.
*/
#undef CONFIG_GOOGLETEST
/*
* When this option is enabled, some of the experimental features (aka finch)
* will be enabled for CROS_EC.
*/
#undef CONFIG_FEATURE_FINCH
/*****************************************************************************/
/*
* Include board and core configs, since those hold the CONFIG_ constants for a
* given configuration. This guarantees they get included everywhere, and
* fixes a fairly common bug where we gate out code with #ifndef
* CONFIG_SOMETHING and but forget to include both of these.
*
* Board is included after chip, so that chip defaults can be overridden on a
* per-board basis as needed.
*/
#ifdef __CROS_EC_CONFIG_CHIP_H
#error Include config.h instead of config_chip.h!
#endif
#ifdef __BOARD_H
#error Include config.h instead of board.h!
#endif
#include "config_chip.h"
#ifdef CONFIG_ZEPHYR
#include "zephyr_shim.h"
#else
#include "board.h"
#endif
/*
* Define CONFIG_HOST_ESPI_VW_POWER_SIGNAL if any power signals from the host
* are configured as virtual wires.
*/
#if defined(CONFIG_HOST_INTERFACE_ESPI_VW_SLP_S3) || \
defined(CONFIG_HOST_INTERFACE_ESPI_VW_SLP_S4) || \
defined(CONFIG_HOST_INTERFACE_ESPI_VW_SLP_S5)
#define CONFIG_HOST_ESPI_VW_POWER_SIGNAL
#endif
/*
* S4 residency works by observing SLP_S5 via virtual wire (as SLP_S5 has not
* traditionally been routed to the EC). If the board family wants S4 residency,
* they need to use ECs that support eSPI. Note that S4 residency is not
* strictly a requirement to support suspend-to-disk, except on Intel platforms
* with Key Locker support (TGL+).
*/
#if defined(CONFIG_POWER_S4_RESIDENCY) && \
!defined(CONFIG_HOST_INTERFACE_ESPI_VW_SLP_S5)
#error "S4_RESIDENCY needs eSPI support or SLP_S5 routed"
#endif
/*
* Note that in Zephyr OS, eSPI can be enabled for virtual wires
* without using eSPI for host commands.
*/
#if (!defined(CONFIG_ZEPHYR) && defined(CONFIG_HOST_ESPI_VW_POWER_SIGNAL) && \
!defined(CONFIG_HOST_INTERFACE_ESPI))
#error Must enable eSPI to enable virtual wires.
#endif
/******************************************************************************/
/*
* If CONFIG_USB_POWER_DELIVERY is enabled, make sure either
* CONFIG_USB_PD_TCPMV1 or CONFIG_USB_PD_TCPMV2 is enabled but not both. Also
* make sure CONFIG_USB_PD_DECODE_SOP is enabled with CONFIG_USB_PD_TCPMV2
*/
#ifdef CONFIG_USB_POWER_DELIVERY
#if defined(CONFIG_USB_PD_TCPMV1) && defined(CONFIG_USB_PD_TCPMV2)
#error Only one version of the USB PD State Machine can be enabled.
#endif
#if !defined(CONFIG_USB_PD_TCPMV1) && !defined(CONFIG_USB_PD_TCPMV2) && \
!defined(CONFIG_USB_PD_CONTROLLER)
#error Please enable CONFIG_USB_PD_TCPMV1 or CONFIG_USB_PD_TCPMV2 or CONFIG_USB_PD_CONTROLLER.
#endif
#if defined(CONFIG_USB_PD_TCPMV2) && !defined(CONFIG_USB_PD_DECODE_SOP)
#error CONFIG_USB_PD_DECODE_SOP must be enabled with the TCPMV2 PD state machine
#endif
#endif
/******************************************************************************/
/*
* If CONFIG_USB_PD_USB4 is enabled, make sure CONFIG_USBC_SS_MUX and
* CONFIG_USB_PD_ALT_MODE_DFP is enabled
*/
#ifdef CONFIG_USB_PD_USB4
#if !defined(CONFIG_USBC_SS_MUX)
#error CONFIG_USBC_SS_MUX must be enabled for USB4 mode support
#endif
#if !defined(CONFIG_ZEPHYR) && !defined(CONFIG_USB_PD_ALT_MODE_DFP)
#error CONFIG_USB_PD_ALT_MODE_DFP must be enabled for USB4 mode support
#endif
#endif
/******************************************************************************/
/*
* If CONFIG_USB_PD_ALT_MODE_DFP is set and this isn't a zephyr build (which
* already did its preprocessing earlier), then enable DP Mode by default and
* also enable discovery by default.
*/
#if defined(CONFIG_USB_PD_ALT_MODE_DFP) && !defined(CONFIG_ZEPHYR)
#define CONFIG_USB_PD_DP_MODE
#define CONFIG_USB_PD_DISCOVERY
#endif
/******************************************************************************/
/*
* If CONFIG_USBC_SS_MUX_DFP_ONLY is enabled, make sure
* CONFIG_USB_PD_ALT_MODE_UFP is not enabled
*/
#if defined(CONFIG_USBC_SS_MUX_DFP_ONLY) && defined(CONFIG_USB_PD_ALT_MODE_UFP)
#error port cannot be UFP when CONFIG_USBC_SS_MUX_DFP_ONLY is enabled
#endif
/******************************************************************************/
/*
* Automatically define CONFIG_USB_PD_FRS if FRS is enabled in the TCPC or PPC
*/
#if defined(CONFIG_USB_PD_FRS_PPC) || defined(CONFIG_USB_PD_FRS_TCPC)
#define CONFIG_USB_PD_FRS
#endif
/******************************************************************************/
/* Disable extended message support if PD 3.0 support is disabled. */
#ifndef CONFIG_USB_PD_REV30
#undef CONFIG_USB_PD_EXTENDED_MESSAGES
#endif
/******************************************************************************/
/*
* PD 3.0 only retries in TCPC hardware twice (for a total of 3 attempts), while
* PD 2.0 retires three times (for a total of 4 attempts).
*
* Note must be [0-3] since it must fit within 2 bits.
* TODO(b/175236718): Set retry count dynamically based on active spec revision.
*/
#ifdef CONFIG_USB_PD_REV30
#define CONFIG_PD_RETRY_COUNT 2
#else
#define CONFIG_PD_RETRY_COUNT 3
#endif
/******************************************************************************/
/*
* Ensure that CONFIG_USB_PD_TCPMV2 is being used with exactly one device type
*/
#ifdef CONFIG_USB_PD_TCPMV2
#if defined(CONFIG_USB_VPD) + defined(CONFIG_USB_CTVPD) + \
defined(CONFIG_USB_DRP_ACC_TRYSRC) != \
1
#error Must define exactly one CONFIG_USB_ device type.
#endif
#endif
/******************************************************************************/
/*
* Ensure that CONFIG_USB_PD_TCPMV2 is not being used with charge_manager source
* defines, and define a default number of 3.0 A ports if not selected. Note
* that the functionality of this default of 1 is equivalent to both previous
* defines, which only ever allocated one 3.0 A port.
*
* To turn off the TCPMv2 3.0 A current allocation from the DPM, set
* CONFIG_USB_PD_3A_PORTS to 0.
*/
#ifdef CONFIG_USB_PD_TCPMV2
#if defined(CONFIG_USB_PD_MAX_TOTAL_SOURCE_CURRENT) || \
defined(CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT)
#error Define CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT is limited to TCPMv1
#endif
#ifndef CONFIG_USB_PD_3A_PORTS
#define CONFIG_USB_PD_3A_PORTS 1
#endif
/* USB4 support requires at least one port providing 3.0 A */
#if defined(CONFIG_USB_PD_USB4) && CONFIG_USB_PD_3A_PORTS == 0
#error USB4 support requires at least one 3.0 A port
#endif
#endif
/******************************************************************************/
/*
* Ensure CONFIG_USB_PD_TCPMV2 or CONFIG_PLATFORM_EC_USB_PD_CONTROLLER, and
* CONFIG_USBC_SS_MUX both are defined. USBC retimer firmware update feature
* requires both.
*/
#if (defined(CONFIG_USBC_RETIMER_FW_UPDATE) && \
(!((defined(CONFIG_USB_PD_TCPMV2) || \
defined(CONFIG_PLATFORM_EC_USB_PD_CONTROLLER)) && \
defined(CONFIG_USBC_SS_MUX))))
#error "Retimer firmware update requires TCPMv2 or USB PD controller, and" \
"USBC_SS_MUX."
#endif
/******************************************************************************/
/*
* Automatically define CONFIG_HOSTCMD_X86 if either child option is defined.
* Ensure LPC and eSPI are mutually exclusive
*/
#if defined(CONFIG_HOST_INTERFACE_LPC) || defined(CONFIG_HOST_INTERFACE_ESPI)
#define CONFIG_HOSTCMD_X86
#endif
#if defined(CONFIG_HOST_INTERFACE_LPC) && defined(CONFIG_HOST_INTERFACE_ESPI)
#error Must select only one type of host communication bus.
#endif
#if defined(CONFIG_HOSTCMD_X86) && !defined(CONFIG_HOST_INTERFACE_LPC) && \
!defined(CONFIG_HOST_INTERFACE_ESPI)
#error Must select one type of host communication bus.
#endif
/******************************************************************************/
/*
* Set default code ram size unless it's customized by the chip.
*/
#ifndef CONFIG_CODE_RAM_SIZE
#define CONFIG_CODE_RAM_SIZE CONFIG_RO_SIZE
#endif
/******************************************************************************/
/*
* Set default data ram size unless it's customized by the chip.
*/
#ifndef CONFIG_DATA_RAM_SIZE
#define CONFIG_DATA_RAM_SIZE CONFIG_RAM_SIZE
#endif
/* Automatic configuration of RAM banks **************************************/
/* Assume one RAM bank if not specified, auto-compute number of banks */
#ifndef CONFIG_RAM_BANK_SIZE
#define CONFIG_RAM_BANK_SIZE CONFIG_RAM_SIZE
#endif
#ifndef CONFIG_RAM_BANKS
#define CONFIG_RAM_BANKS (CONFIG_RAM_SIZE / CONFIG_RAM_BANK_SIZE)
#endif
/******************************************************************************/
/*
* Store panic data at end of memory by default, unless otherwise
* configured. This is safe because we don't context switch away from
* the panic handler before rebooting, and stacks and data start at
* the beginning of RAM.
*/
#ifndef CONFIG_PANIC_DATA_SIZE
#define CONFIG_PANIC_DATA_SIZE sizeof(struct panic_data)
#endif
#ifndef CONFIG_PANIC_DATA_BASE
#define CONFIG_PANIC_DATA_BASE \
(CONFIG_RAM_BASE + CONFIG_RAM_SIZE - CONFIG_PANIC_DATA_SIZE)
#endif
/******************************************************************************/
/*
* Set minimum shared memory size, unless it is defined in board file.
*/
#ifndef CONFIG_SHAREDMEM_MINIMUM_SIZE
#ifdef CONFIG_COMMON_RUNTIME
/* If RWSIG is used, we may need more space. */
#if defined(CONFIG_RWSIG)
#define CONFIG_SHAREDMEM_MINIMUM_SIZE_RWSIG (CONFIG_RSA_KEY_SIZE / 8 * 3)
#else
#define CONFIG_SHAREDMEM_MINIMUM_SIZE_RWSIG 0
#endif
/*
* We can't use the "MAX" function here, as it is too smart and BUILD_ASSERT
* calls do not allow it as parameter. BUILD_MAX below works for both compiler
* and linker.
*/
#define BUILD_MAX(x, y) ((x) > (y) ? (x) : (y))
/* Minimum: 1kb */
#define CONFIG_SHAREDMEM_MINIMUM_SIZE \
BUILD_MAX(1024, CONFIG_SHAREDMEM_MINIMUM_SIZE_RWSIG)
#else /* !CONFIG_COMMON_RUNTIME */
/* Without common runtime, we do not have support for shared memory. */
#define CONFIG_SHAREDMEM_MINIMUM_SIZE 0
#endif
#endif /* !CONFIG_SHAREDMEM_MINIMUM_SIZE */
/******************************************************************************/
/*
* Disable the built-in console history if using the experimental console.
*
* The experimental console keeps its own session-persistent history which
* survives EC reboot. It also requires CRC8 for command integrity.
*/
#ifdef CONFIG_EXPERIMENTAL_CONSOLE
#undef CONFIG_CONSOLE_HISTORY
#define CONFIG_CRC8
#endif /* defined(CONFIG_EXPERIMENTAL_CONSOLE) */
/******************************************************************************/
/*
* Thermal throttling AP must have temperature sensor enabled to get
* the temperature readings.
*/
#if defined(CONFIG_THROTTLE_AP) && !defined(CONFIG_TEMP_SENSOR)
#define CONFIG_TEMP_SENSOR
#endif
/******************************************************************************/
/*
* DPTF must have temperature sensor enabled to get the readings for
* generating DPTF thresholds events.
*/
#if defined(CONFIG_DPTF) && !defined(CONFIG_TEMP_SENSOR)
#define CONFIG_TEMP_SENSOR
#endif
/******************************************************************************/
/* The Matrix Keyboard Protocol depends on MKBP input devices and events. */
#ifdef CONFIG_KEYBOARD_PROTOCOL_MKBP
#define CONFIG_MKBP_INPUT_DEVICES
#endif
#if defined(CONFIG_KEYBOARD_PROTOCOL_MKBP) || defined(CONFIG_MKBP_INPUT_DEVICES)
#define CONFIG_MKBP_EVENT
#endif
/******************************************************************************/
/* MKBP events delivery methods. */
#ifdef CONFIG_MKBP_EVENT
#if !defined(CONFIG_MKBP_USE_CUSTOM) && \
!defined(CONFIG_MKBP_USE_HOST_EVENT) && \
!defined(CONFIG_MKBP_USE_GPIO) && \
!defined(CONFIG_MKBP_USE_GPIO_AND_HOST_EVENT) && \
!defined(CONFIG_MKBP_USE_HECI)
#error Please define one of CONFIG_MKBP_USE_* macro.
#endif
#if defined(CONFIG_MKBP_USE_CUSTOM) + defined(CONFIG_MKBP_USE_GPIO) + \
defined(CONFIG_MKBP_USE_HOST_EVENT) + \
defined(CONFIG_MKBP_USE_HOST_HECI) > \
1
#error Must select only one type of MKBP event delivery method.
#endif
#endif /* CONFIG_MKBP_EVENT */
/******************************************************************************/
/* Set generic orientation config if a specific orientation config is set. */
#if defined(CONFIG_KX022_ORIENTATION_SENSOR) || \
defined(CONFIG_BMI_ORIENTATION_SENSOR)
#ifndef CONFIG_ACCEL_FIFO
#error CONFIG_ACCEL_FIFO must be defined to use hw orientation sensor support
#endif
#define CONFIG_ORIENTATION_SENSOR
#endif
/*****************************************************************************/
/* Define CONFIG_BATTERY if board has a battery. */
#if defined(CONFIG_BATTERY_BQ20Z453) || defined(CONFIG_BATTERY_BQ27541) || \
defined(CONFIG_BATTERY_BQ27621) || defined(CONFIG_BATTERY_BQ4050) || \
defined(CONFIG_BATTERY_MAX17055) || defined(CONFIG_BATTERY_MM8013) || \
defined(CONFIG_BATTERY_SMART)
#define CONFIG_BATTERY
#endif
#if defined(CONFIG_CBI_EEPROM) || defined(CONFIG_CBI_FLASH)
#if defined(CONFIG_BATTERY) && defined(CONFIG_BATTERY_FUEL_GAUGE)
#define CONFIG_BATTERY_CONFIG_IN_CBI
#endif
#endif
/******************************************************************************/
/*
* Ensure CONFIG_USB_PD_RESET_PRESERVE_RECOVERY_FLAGS is only used on
* chromeboxes.
*/
#if defined(CONFIG_USB_PD_RESET_PRESERVE_RECOVERY_FLAGS) && \
defined(CONFIG_BATTERY)
#error Only use CONFIG_USB_PD_RESET_PRESERVE_RECOVERY_FLAGS on chromeboxes.
#endif
/*****************************************************************************/
/* Define CONFIG_USBC_PPC if board has a USB Type-C Power Path Controller. */
#if defined(CONFIG_USBC_PPC_AOZ1380) || defined(CONFIG_USBC_PPC_NX20P3483) || \
defined(CONFIG_USBC_PPC_SN5S330) || defined(CONFIG_USBC_PPC_TCPCI)
#define CONFIG_USBC_PPC
#endif /* "has a PPC" */
/* Following chips use Power Path Control information from TCPC chip */
#if defined(CONFIG_USBC_PPC_AOZ1380) || defined(CONFIG_USBC_PPC_NX20P3481) || \
defined(CONFIG_USBC_PPC_NX20P3483) || defined(CONFIG_USBC_PPC_TCPCI)
#define CONFIG_USB_PD_PPC
#endif
/* The TI SN5S330 supports VCONN and needs to be informed of CC polarity */
#if defined(CONFIG_USBC_PPC_SN5S330)
#define CONFIG_USBC_PPC_POLARITY
#define CONFIG_USBC_PPC_SBU
#define CONFIG_USBC_PPC_VCONN
#endif
/*****************************************************************************/
/* PPC SYV682C is a subset of SYV682X. */
#if defined(CONFIG_USBC_PPC_SYV682C)
#define CONFIG_USBC_PPC_SYV682X
#endif
/*
* The SYV682X supports VCONN and needs to be informed of CC polarity.
* There is a 3.6V limit on the HOST_CC signals, so the TCPC should not source
* 5V VCONN.
*
* For the ITE integrated TCPC, it wants to be notified of VCONN but won't
* source VCONN itself, so is safe to keep enabled.
*/
#if defined(CONFIG_USBC_PPC_SYV682X)
#define CONFIG_USBC_PPC_POLARITY
#define CONFIG_USBC_PPC_VCONN
#if !defined(CONFIG_USB_PD_TCPM_ITE_ON_CHIP) && \
!defined(CONFIG_USBC_PPC_SYV682X_NO_CC)
#undef CONFIG_USB_PD_TCPC_VCONN
#endif
#endif
/* CCGXXF standard default defines */
#if defined(CONFIG_USB_PD_TCPM_CCGXXF)
#define CONFIG_USB_PD_DISCHARGE_TCPC
#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
#define CONFIG_USB_PD_PPC
#define CONFIG_USB_PD_TCPM_SBU
#define CONFIG_USB_PD_TCPC_LOW_POWER
#define CONFIG_USB_PD_TCPM_TCPCI
#define CONFIG_USB_PD_VBUS_DETECT_TCPC
#endif
/*****************************************************************************/
/* Define CONFIG_USBC_OCP if a component can detect overcurrent */
#if defined(CONFIG_USBC_PPC_AOZ1380) || defined(CONFIG_USBC_PPC_KTU1125) || \
defined(CONFIG_USBC_PPC_NX20P3481) || \
defined(CONFIG_USBC_PPC_NX20P3483) || \
defined(CONFIG_USBC_PPC_SN5S330) || \
defined(CONFIG_USBC_PPC_SYV682X) || defined(CONFIG_CHARGER_SM5803) || \
defined(CONFIG_USB_PD_TCPM_TCPCI) || \
defined(CONFIG_USB_PD_TCPM_ANX7406)
#define CONFIG_USBC_OCP
#endif
#ifndef CONFIG_ZEPHYR
/*****************************************************************************/
/*
* Define CONFIG_USB_PD_VBUS_MEASURE_CHARGER if the charger on the board
* supports VBUS measurement.
*/
#if defined(CONFIG_CHARGER_BD9995X) || defined(CONFIG_CHARGER_RT9466) || \
defined(CONFIG_CHARGER_RT9467) || defined(CONFIG_CHARGER_RT9490) || \
defined(CONFIG_CHARGER_MT6370) || defined(CONFIG_CHARGER_BQ25710) || \
defined(CONFIG_CHARGER_BQ25720) || defined(CONFIG_CHARGER_ISL9241) || \
defined(CONFIG_CHARGER_RAA489110)
#if !defined(CONFIG_USB_PD_VBUS_MEASURE_TCPC) && \
!defined(CONFIG_USB_PD_VBUS_MEASURE_ADC_EACH_PORT) && \
!defined(CONFIG_USB_PD_VBUS_MEASURE_BY_BOARD)
#define CONFIG_USB_PD_VBUS_MEASURE_CHARGER
#endif /* VBUS_MEASURE options */
#ifdef CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT
#error CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT defined, but charger can measure
#endif /* VBUS_NOT_PRESENT */
#endif /* Charger chips */
#endif /* CONFIG_ZEPHYR */
/*****************************************************************************/
/*
* Define CONFIG_USB_PD_VBUS_MEASURE_TCPC if the tcpc on the board supports
* VBUS measurement.
*/
#if defined(CONFIG_USB_PD_TCPM_FUSB302) && \
!defined(CONFIG_USB_PD_VBUS_MEASURE_CHARGER)
#define CONFIG_USB_PD_VBUS_MEASURE_TCPC
#endif
/*****************************************************************************/
/*
* Define CONFIG_USB_PD_TCPC_ON_CHIP if we use ITE series TCPM driver
* on the board.
*
* NOTE: If we don't use all the ITE pd ports on a board, then we need to
* start from port0 to use the ITE pd port. If we start from port1,
* then port1 HOOK function never works.
*/
#ifdef CONFIG_USB_PD_TCPM_ITE_ON_CHIP
#define CONFIG_USB_PD_TCPC_ON_CHIP
#if !defined(CONFIG_USB_PD_TCPM_DRIVER_IT8XXX2) && \
!defined(CONFIG_USB_PD_TCPM_DRIVER_IT83XX)
#error "No drivers for ITE ON CHIP"
#endif
#endif
/*****************************************************************************/
/*
* Define CONFIG_CHARGER_NARROW_VDC for chargers that use a Narrow VDC power
* architecture.
*/
#if defined(CONFIG_CHARGER_ISL9237) || defined(CONFIG_CHARGER_ISL9238) || \
defined(CONFIG_CHARGER_ISL9238C) || defined(CONFIG_CHARGER_ISL9241) || \
defined(CONFIG_CHARGER_RAA489000) || defined(CONFIG_CHARGER_SM5803) || \
defined(CONFIG_CHARGER_BQ25710) || defined(CONFIG_CHARGER_BQ25720) || \
defined(CONFIG_CHARGER_RAA489110) || defined(CONFIG_CHARGER_RT9490)
#define CONFIG_CHARGER_NARROW_VDC
#endif
/*****************************************************************************/
/*
* Define CONFIG_PRECHARGE_DELAY_MS 150ms which is the debounce
* time after VADP >3.2V for the first time adapter plugged in.
*/
#ifdef CONFIG_CHARGER_ISL9238
#ifndef CONFIG_PRECHARGE_DELAY_MS
#define CONFIG_PRECHARGE_DELAY_MS 150
#endif
#endif
/*****************************************************************************/
/*
* Define CONFIG_BUTTON_TRIGGERED_RECOVERY if a board has a dedicated recovery
* button.
*/
#ifdef CONFIG_DEDICATED_RECOVERY_BUTTON
#define CONFIG_BUTTON_TRIGGERED_RECOVERY
#endif /* defined(CONFIG_DEDICATED_RECOVERY_BUTTON) */
#ifndef CONFIG_ZEPHYR
#ifdef CONFIG_LED_PWM_COUNT
#define CONFIG_LED_PWM
#endif /* defined(CONFIG_LED_PWM_COUNT) */
#endif /* CONFIG_ZEPHYR */
#ifdef CONFIG_LED_PWM_ACTIVE_CHARGE_PORT_ONLY
#define CONFIG_LED_PWM_CHARGE_STATE_ONLY
#endif
/* Define for to turn off power LED in suspend for boards shipped after 2022 */
#undef CONFIG_LED_PWM_OFF_IN_SUSPEND
/*****************************************************************************/
/*
* Define derived configuration options for EC-EC communication
*/
#ifdef CONFIG_EC_EC_COMM_BATTERY
#ifdef CONFIG_EC_EC_COMM_CLIENT
#define CONFIG_EC_EC_COMM_BATTERY_CLIENT
#define CONFIG_BATTERY_V2
#define CONFIG_BATTERY_COUNT 2
#endif
#ifdef CONFIG_EC_EC_COMM_SERVER
#define CONFIG_EC_EC_COMM_BATTERY_SERVER
#define CONFIG_BATTERY_V2
#define CONFIG_BATTERY_COUNT 1
#endif
#endif /* CONFIG_EC_EC_COMM_BATTERY */
/*****************************************************************************/
/* If battery_v2 isn't used, it's v1. */
#if defined(CONFIG_BATTERY) && !defined(CONFIG_BATTERY_V2)
#define CONFIG_BATTERY_V1
#endif
/*
* Check the specific battery status to judge whether the battery is
* initialized and stable when the battery wakes up from ship mode.
* Use two MASKs to provide logical AND and logical OR options for different
* status. For example:
*
* Logical OR -- just check one of TCA/TDA mask:
* #define CONFIG_BATT_ALARM_MASK1 \
* (STATUS_TERMINATE_CHARGE_ALARM | STATUS_TERMINATE_DISCHARGE_ALARM)
* #define CONFIG_BATT_ALARM_MASK2 0xFFFF
*
* Logical AND -- check both TCA/TDA mask:
* #define CONFIG_BATT_ALARM_MASK1 STATUS_TERMINATE_CHARGE_ALARM
* #define CONFIG_BATT_ALARM_MASK2 STATUS_TERMINATE_DISCHARGE_ALARM
*
* The default configuration is logical OR.
*/
#ifdef CONFIG_BATTERY_STBL_STAT
#ifndef CONFIG_BATT_ALARM_MASK1
#define CONFIG_BATT_ALARM_MASK1 \
(STATUS_TERMINATE_CHARGE_ALARM | STATUS_TERMINATE_DISCHARGE_ALARM)
#endif
#ifndef CONFIG_BATT_ALARM_MASK2
#define CONFIG_BATT_ALARM_MASK2 0xFFFF
#endif
#endif
/*****************************************************************************/
/* Define derived USB PD Discharge common path */
#if defined(CONFIG_USB_PD_DISCHARGE_GPIO) || \
defined(CONFIG_USB_PD_DISCHARGE_TCPC) || \
defined(CONFIG_USB_PD_DISCHARGE_PPC)
#define CONFIG_USB_PD_DISCHARGE
#endif
/*****************************************************************************/
/* Define derived config options for DP HPD GPIO */
#ifdef CONFIG_USB_PD_DP_HPD_GPIO_CUSTOM
#define CONFIG_USB_PD_DP_HPD_GPIO
#endif
/*****************************************************************************/
/* Define derived thermistor common path */
#ifdef CONFIG_THERMISTOR_NCP15WB
#define CONFIG_THERMISTOR
#endif
/*****************************************************************************/
/* Define derived config options for BC1.2 detection */
#ifdef CONFIG_BC12_DETECT_PI3USB9201
#define CONFIG_BC12_DETECT_DATA_ROLE_TRIGGER
#undef CONFIG_BC12_CLIENT_MODE_ONLY_PI3USB9201
#endif
/*****************************************************************************/
/*
* Handle task-dependent configs.
*
* This prevent sub-modules from being compiled when the task and parent module
* are not present.
*/
#ifndef HAS_TASK_CHIPSET
#undef CONFIG_AP_HANG_DETECT
#undef CONFIG_CHIPSET_ALDERLAKE
#ifndef CONFIG_ZEPHYR
#undef CONFIG_CHIPSET_ALDERLAKE_SLG4BD44540
#endif /* CONFIG_ZEPHYR */
#undef CONFIG_CHIPSET_APOLLOLAKE
#undef CONFIG_CHIPSET_CANNONLAKE
#undef CONFIG_CHIPSET_COMETLAKE
#undef CONFIG_CHIPSET_GEMINILAKE
#undef CONFIG_CHIPSET_ICELAKE
#undef CONFIG_CHIPSET_JASPERLAKE
#undef CONFIG_CHIPSET_MT817X
#undef CONFIG_CHIPSET_MT8183
#undef CONFIG_CHIPSET_MT8192
#undef CONFIG_CHIPSET_CEZANNE
#undef CONFIG_CHIPSET_SDM845
#undef CONFIG_CHIPSET_SKYLAKE
#undef CONFIG_CHIPSET_STONEY
#undef CONFIG_CHIPSET_TIGERLAKE
#undef CONFIG_POWER_COMMON
#endif
/*
* If the chipset task is enabled, this implies there is an AP to manage power
* for. In Zephyr this can be implied by multiple options, so we provide the
* same symbol here instead of making code examine HAS_TASK_CHIPSET.
*/
#ifndef CONFIG_ZEPHYR
#ifndef CONFIG_AP_POWER_CONTROL
#ifdef HAS_TASK_CHIPSET
#define CONFIG_AP_POWER_CONTROL
#endif /* HAS_TASK_CHIPSET */
#endif /* CONFIG_AP_POWER_CONTROL */
#endif /* CONFIG_ZEPHYR */
/*
* If a board has a chipset task, set the minimum charger power required for
* powering on to 15W. This is also the highest power discovered over Type-C by
* analog signaling. The EC normally does not communicate using USB PD when the
* system is locked and in RO, so it would not be able to tell if higher power
* is available. However, if a 15W charger is discovered, it's likely that the
* charger does speak USB PD and we would be able to negotiate more power after
* booting the AP and jumping to EC RW.
*
* If a board needs more or less power to power on, they can re-define this
* value in their board.h file.
*/
#ifdef HAS_TASK_CHIPSET
#ifndef CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON
#define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON 15000
#endif /* !defined(CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON) */
#endif /* defined(HAS_TASK_CHIPSET) */
#ifdef CONFIG_CHARGER_LIMIT_POWER_THRESH_CHG_MW
#ifndef CONFIG_CHARGER_LIMIT_POWER_THRESH_BAT_PCT
#define CONFIG_CHARGER_LIMIT_POWER_THRESH_BAT_PCT \
(CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON)
#endif
#endif
#ifndef CONFIG_CHARGER_MIN_BAT_PCT_IMBALANCED_POWER_ON
/*
* The function of MEASURE_BATTERY_IMBALANCE and these variables is to prevent a
* battery brownout when the management IC reports a state of charge that is
* higher than CHARGER_MIN_BAT_PCT_FOR_POWER_ON, but an individual cell is lower
* than the rest of the pack. The critical term is MAX_IMBALANCE_MV, which must
* be small enough to ensure that the system can reliably boot even when the
* battery total state of charge barely passes the
* CHARGER_MIN_BAT_PCT_FOR_POWER_ON threshold.
*
* Lowering CHARGER_MIN_BAT_PCT_IMBALANCED_POWER_ON below
* CHARGER_MIN_BAT_PCT_FOR_POWER_ON disables this check. Raising it too high
* may needlessly prevent boot when the lowest cell can still support the
* system.
*
* As this term is lowered and BATTERY_MAX_IMBALANCE_MV is raised, the risk of
* cell-undervoltage brownout during startup increases. Raising this term and
* lowering MAX_IMBALANCE_MV increases the risk of poor UX when the user must
* wait longer to turn on their device.
*/
#define CONFIG_CHARGER_MIN_BAT_PCT_IMBALANCED_POWER_ON 5
#endif
#ifndef CONFIG_BATTERY_MAX_IMBALANCE_MV
/*
* WAG. Imbalanced battery packs in this situation appear to have balanced
* charge very quickly after beginning the charging cycle, since dV/dQ rapidly
* decreases as the cell is charged out of deep discharge. Increasing the value
* of CHARGER_MIN_BAT_PCT_IMBALANCED_POWER_ON will make a system tolerant of
* larger values of BATTERY_MAX_IMBALANCE_MV.
*/
#define CONFIG_BATTERY_MAX_IMBALANCE_MV 200
#endif
#ifndef HAS_TASK_KEYPROTO
#undef CONFIG_KEYBOARD_PROTOCOL_8042
/*
* Note that we don't undef CONFIG_KEYBOARD_PROTOCOL_MKBP, because it doesn't
* have its own task.
*/
#endif
#ifndef HAS_TASK_PDCMD
#undef CONFIG_HOSTCMD_PD
#endif
#if defined(HAS_TASK_PD_INT_C0) || defined(HAS_TASK_PD_INT_C1) || \
defined(HAS_TASK_PD_INT_C2) || defined(HAS_TASK_PD_INT_C3)
#define CONFIG_HAS_TASK_PD_INT
#endif
#if defined(HAS_TASK_PDCMD) && defined(CONFIG_HAS_TASK_PD_INT)
#error Should not use PDCMD task with PD INT tasks
#endif
/* Certain console cmds are irrelevant without parent modules. */
#ifndef CONFIG_BATTERY
#undef CONFIG_CMD_PWR_AVG
#endif
#ifndef CONFIG_ADC
#undef CONFIG_CMD_ADC
#endif
/*****************************************************************************/
/* Define derived Chipset configs */
#if defined(CONFIG_CHIPSET_APOLLOLAKE) || defined(CONFIG_CHIPSET_GEMINILAKE)
#define CONFIG_CHIPSET_APL_GLK
#endif
#if defined(CONFIG_CHIPSET_JASPERLAKE) || defined(CONFIG_CHIPSET_TIGERLAKE) || \
defined(CONFIG_CHIPSET_ALDERLAKE)
#define CONFIG_CHIPSET_ICELAKE
#endif
#if defined(CONFIG_CHIPSET_APL_GLK)
#define CONFIG_CHIPSET_HAS_PRE_INIT_CALLBACK
#define CONFIG_CHIPSET_X86_RSMRST_AFTER_S5
#endif
#if defined(CONFIG_CHIPSET_ALDERLAKE_SLG4BD44540) || \
defined(CONFIG_CHIPSET_APOLLOLAKE) || \
defined(CONFIG_CHIPSET_CANNONLAKE) || \
defined(CONFIG_CHIPSET_COMETLAKE) || \
defined(CONFIG_CHIPSET_COMETLAKE_DISCRETE) || \
defined(CONFIG_CHIPSET_GEMINILAKE) || \
defined(CONFIG_CHIPSET_ICELAKE) || defined(CONFIG_CHIPSET_SKYLAKE)
#define CONFIG_POWER_COMMON
#endif
#if defined(CONFIG_CHIPSET_ALDERLAKE_SLG4BD44540) || \
defined(CONFIG_CHIPSET_CANNONLAKE) || \
defined(CONFIG_CHIPSET_ICELAKE) || defined(CONFIG_CHIPSET_SKYLAKE)
#define CONFIG_CHIPSET_X86_RSMRST_DELAY
#endif
#if defined(CONFIG_HOST_INTERFACE_ESPI_VW_SLP_S3) && \
defined(CONFIG_CHIPSET_SLP_S3_L_OVERRIDE)
#error "Cannot use CONFIG_CHIPSET_SLP_S3_L_OVERRIDE if SLP_S3 is a virtual wire"
#endif
#if defined(CONFIG_POWER_S0IX) && !defined(CONFIG_POWER_TRACK_HOST_SLEEP_STATE)
#error "Must enable CONFIG_POWER_TRACK_HOST_SLEEP_STATE for S0ix"
#endif
#if defined(CONFIG_CHIPSET_SC7180) || defined(CONFIG_CHIPSET_SC7280)
#if defined(CONFIG_POWER_SLEEP_FAILURE_DETECTION) && \
!defined(CONFIG_CHIPSET_RESUME_INIT_HOOK)
#error "Require resume init hook to enable sleep failure detection"
#endif
#if !defined(CONFIG_POWER_SLEEP_FAILURE_DETECTION) && \
defined(CONFIG_CHIPSET_RESUME_INIT_HOOK)
#error "Don't enable resume init hook unless for sleep failure detection"
#endif
#endif
/*****************************************************************************/
/*
* Automatically define CONFIG_ACCEL_LIS2D_COMMON if a child option is defined.
*/
#if defined(CONFIG_ACCEL_LIS2DH) || defined(CONFIG_ACCEL_LIS2DE) || \
defined(CONFIG_ACCEL_LNG2DM)
#define CONFIG_ACCEL_LIS2D_COMMON
#endif
/*
* Automatically define CONFIG_ACCEL_LIS2DW_COMMON if a child option is defined.
*/
#if defined(CONFIG_ACCEL_LIS2DW12) || defined(CONFIG_ACCEL_LIS2DWL)
#define CONFIG_ACCEL_LIS2DW_COMMON
#endif
/*
* CONFIG_ACCEL_LIS2DW12 and CONFIG_ACCEL_LIS2DWL can't be defined at the same
* time.
*/
#if defined(CONFIG_ACCEL_LIS2DW12) && defined(CONFIG_ACCEL_LIS2DWL)
#error "Define only one of CONFIG_ACCEL_LIS2DW12 and CONFIG_ACCEL_LIS2DWL"
#endif
/*****************************************************************************/
/* Define derived seven segment display common path */
#ifdef CONFIG_MAX695X_SEVEN_SEGMENT_DISPLAY
#define CONFIG_SEVEN_SEG_DISPLAY
#endif /* CONFIG_MAX695X_SEVEN_SEGMENT_DISPLAY */
/*****************************************************************************/
/* Enable PCIE tunneling if the board supports Thunderbolt-Compatible mode */
#ifdef CONFIG_USB_PD_TBT_COMPAT_MODE
#define CONFIG_USB_PD_PCIE_TUNNELING
#define CONFIG_USB_PD_TBT_GEN3_CAPABLE
#endif /* CONFIG_USB_PD_TBT_COMPAT_MODE */
/*
* CONFIG_CHIP_INIT_ROM_REGION requires that the chip has defined a
* ROM resident region to store the .init_rom section.
*
* These sections must also not be zero bytes, which will happen if
* the program size is the same as the flash size.
*/
#ifdef CONFIG_CHIP_INIT_ROM_REGION
#ifndef CONFIG_FLASH_CROS
#error CONFIG_CHIP_INIT_ROM_REGION requires CONFIG_FLASH_CROS
#endif
#ifndef CONFIG_RO_ROM_RESIDENT_SIZE
#error CONFIG_CHIP_INIT_ROM_REGION requires CONFIG_RO_ROM_RESIDENT_SIZE
#endif
#ifndef CONFIG_RW_ROM_RESIDENT_SIZE
#error CONFIG_CHIP_INIT_ROM_REGION requires CONFIG_RW_ROM_RESIDENT_SIZE
#endif
#if (CONFIG_RO_ROM_RESIDENT_SIZE == 0)
#error CONFIG_RO_ROM_RESIDENT_SIZE is 0 with CONFIG_CHIP_INIT_ROM_REGION defined
#endif
#if (CONFIG_RW_ROM_RESIDENT_SIZE == 0)
#error CONFIG_RW_ROM_RESIDENT_SIZE is 0 with CONFIG_CHIP_INIT_ROM_REGION defined
#endif
/*
* By default, enable storing the .data section on the ROM resident area to
* save flash space.
*/
#ifdef CONFIG_MAPPED_STORAGE
#define CONFIG_CHIP_DATA_IN_INIT_ROM
#endif
#endif /* CONFIG_CHIP_INIT_ROM_REGION */
/*
* By default, enable a request for an ACK from AP, on setting the mux, if the
* board supports Intel retimer.
*/
#if (defined(CONFIG_USBC_RETIMER_INTEL_BB) || \
defined(CONFIG_USBC_RETIMER_INTEL_HB)) && \
defined(CONFIG_USB_MUX_VIRTUAL)
#define CONFIG_USB_MUX_AP_ACK_REQUEST
#endif /* CONFIG_USBC_RETIMER_INTEL_BB || CONFIG_USBC_RETIMER_INTEL_HB */
/* Enable retimer console command */
#if (defined(CONFIG_USBC_RETIMER_INTEL_BB) || \
defined(CONFIG_USBC_RETIMER_KB800X))
#define CONFIG_CMD_RETIMER
#endif
/**
* CONFIG_CMD_CRASH_NESTED depends on CONFIG_CMD_CRASH
*/
#if !defined(CONFIG_CMD_CRASH) && defined(CONFIG_CMD_CRASH_NESTED)
#error "CONFIG_CMD_CRASH_NESTED depends on CONFIG_CMD_CRASH"
#endif
/*****************************************************************************/
/*
* Apply fuzzer and test config overrides last, since fuzzers and tests need to
* override some of the config flags in non-standard ways to mock only parts of
* the system.
*/
#include "fuzz_config.h"
#ifdef TEST_BUILD
#include "test_config.h"
#endif
/*
* Validity checks to make sure some of the configs above make sense.
*/
/*
* Chromium ec uses hook tick to reload the watchdog. The interval between
* reloads of the watchdog timer should be less than half of the watchdog
* period.
*/
#ifdef CONFIG_WATCHDOG
#if (CONFIG_AUX_TIMER_PERIOD_MS) < ((HOOK_TICK_INTERVAL_MS) * 2)
#error "CONFIG_AUX_TIMER_PERIOD_MS must be at least 2x HOOK_TICK_INTERVAL_MS"
#endif
#endif
#ifdef CONFIG_USB_SERIALNO
#define CONFIG_SERIALNO_LEN 28
#endif
#ifdef CONFIG_MAC_ADDR
#define CONFIG_MAC_ADDR_LEN 20
#endif
#ifndef CONFIG_EC_MAX_SENSOR_FREQ_MILLIHZ
#define CONFIG_EC_MAX_SENSOR_FREQ_MILLIHZ \
CONFIG_EC_MAX_SENSOR_FREQ_DEFAULT_MILLIHZ
#endif
/* Enable BMI secondary port if needed. */
#if defined(CONFIG_MAG_BMI_BMM150) || defined(CONFIG_MAG_BMI_LIS2MDL)
#define CONFIG_BMI_SEC_I2C
#endif
/* Enable LSM2MDL secondary port if needed. */
#if defined(CONFIG_MAG_LSM6DSM_BMM150) || defined(CONFIG_MAG_LSM6DSM_LIS2MDL)
#define CONFIG_LSM6DSM_SEC_I2C
#endif
/* Load LIS2MDL driver if needed */
#if defined(CONFIG_MAG_BMI_LIS2MDL) || defined(CONFIG_MAG_LSM6DSM_LIS2MDL)
#define CONFIG_MAG_LIS2MDL
#ifndef CONFIG_ACCELGYRO_SEC_ADDR_FLAGS
#error "The i2c address of the magnetometer is not set."
#endif
#endif
/* Load BMM150 driver if needed */
#if defined(CONFIG_MAG_BMI_BMM150) || defined(CONFIG_MAG_LSM6DSM_BMM150)
#define CONFIG_MAG_BMM150
#ifndef CONFIG_ACCELGYRO_SEC_ADDR_FLAGS
#error "The i2c address of the magnetometer is not set."
#endif
#endif
/* Verify sensorhub is enabled */
#ifdef CONFIG_MAG_LSM6DSM_LIS2MDL
#ifndef CONFIG_SENSORHUB_LSM6DSM
#error "Enable SENSORHUB_LSM6DSM."
#endif
#endif
/* Fill LPC sense data on X86 architecture. */
#ifdef CONFIG_HOSTCMD_X86
#define CONFIG_MOTION_FILL_LPC_SENSE_DATA
#endif
/*
* TODO(crbug.com/888109): Makes sure RDP as PSTATE is only enabled where it
* makes sense.
*/
#ifdef CONFIG_FLASH_READOUT_PROTECTION_AS_PSTATE
#ifdef CONFIG_FLASH_PSTATE
#error "Flash readout protection and PSTATE may not work as intended."
#endif
#if !defined(CHIP_FAMILY_STM32H7) && !defined(CHIP_FAMILY_STM32F4) && \
!defined(CHIP_FAMILY_NPCX9)
#error "Flash readout protection only implemented on STM32H7, STM32F4 and NPCX9"
#endif
#endif /* CONFIG_FLASH_READOUT_PROTECTION_AS_PSTATE */
#if defined(CONFIG_USB_PD_TCPM_ANX3429) || \
defined(CONFIG_USB_PD_TCPM_ANX740X) || \
defined(CONFIG_USB_PD_TCPM_ANX7471)
/* Note: ANX7447 is handled by its own driver, not ANX74XX. */
#define CONFIG_USB_PD_TCPM_ANX74XX
#endif
#if defined(CONFIG_DPTF_MULTI_PROFILE) && !defined(CONFIG_DPTF)
#error "CONFIG_DPTF_MULTI_PROFILE can be set only when CONFIG_DPTF is set."
#endif /* CONFIG_DPTF_MULTI_PROFILE && !CONFIG_DPTF */
/*
* The EC monitors the AP suspend/resume process using:
* - EC_CMD_HOST_SLEEP_EVENT (0x00A9)
* - SLP_S0 signal
*
* When the AP starts the suspend process, it sends EC_CMD_HOST_SLEEP_EVENT to
* signal to the EC that a suspend has begun. This starts the EC's timer, which
* uses CONFIG_SLEEP_TIMEOUT_MS to determine how long to wait for the suspend to
* complete (by monitoring SLP_S0) before considering the AP "hung". Similarly,
* when a resume is begun, the EC starts a timer using the same
* CONFIG_SLEEP_TIMEOUT_MS value and waits for the AP to send
* EC_CMD_HOST_SLEEP_EVENT to indicate the resume has completed.
*
* For AMD Systems:
* If the EC hits the timeout value CONFIG_SLEEP_TIMEOUT_MS, the AP is
* considered "hung" and the EC begins the recovery process. If
* CONFIG_POWER_SLEEP_FAILURE_DETECTION is enabled for the board, the EC will
* send the Host Event EC_HOST_EVENT_HANG_DETECT, possibly triggering recovery
* within the AP, and then start a timer to wait CONFIG_HARD_SLEEP_HANG_TIMEOUT.
* If the AP fails to complete the sleep step within
* CONFIG_HARD_SLEEP_HANG_TIMEOUT, the EC will forcefully reset the AP to
* complete recovery.
*/
/*
* Define the timeout in milliseconds between when the EC receives a suspend
* command and when the EC times out and asserts wake because the sleep signal
* SLP_S0 did not assert.
*/
#ifndef CONFIG_SLEEP_TIMEOUT_MS
#define CONFIG_SLEEP_TIMEOUT_MS 10000
#endif
/*
* Define the timeout in milliseconds between when the EC |SysRq| to the AP
* and when the AP is forcibly reset because it didn't reboot on its own.
*/
#ifndef CONFIG_HARD_SLEEP_HANG_TIMEOUT
#define CONFIG_HARD_SLEEP_HANG_TIMEOUT 10000
#endif
#ifdef CONFIG_PWM_KBLIGHT
#define CONFIG_KEYBOARD_BACKLIGHT
#endif
/*****************************************************************************/
/* ISH power management related definitions */
#if defined(CONFIG_ISH_PM_D0I2) || defined(CONFIG_ISH_PM_D0I3) || \
defined(CONFIG_ISH_PM_D3) || defined(CONFIG_ISH_PM_RESET_PREP)
#ifndef CONFIG_LOW_POWER_IDLE
#error "Must define CONFIG_LOW_POWER_IDLE if enable ISH low power states"
#endif
#define CONFIG_ISH_PM_AONTASK
#endif
#ifdef CONFIG_ACCEL_FIFO
#if !defined(CONFIG_ACCEL_FIFO_SIZE) || !defined(CONFIG_ACCEL_FIFO_THRES)
#error "Using CONFIG_ACCEL_FIFO, must define _SIZE and _THRES"
#endif
#ifndef CONFIG_TEMP_CACHE_STALE_THRES
#ifdef CONFIG_ONLINE_CALIB
/*
* Boards may choose to leave this to default and just turn on online
* calibration, in which case we'll set the threshold to 5 minutes.
*/
#define CONFIG_TEMP_CACHE_STALE_THRES (5 * MINUTE)
#else
/*
* Boards that use the FIFO and not the online calibration can just leave this
* at 0.
*/
#define CONFIG_TEMP_CACHE_STALE_THRES 0
#endif /* CONFIG_ONLINE_CALIB */
#endif /* !CONFIG_TEMP_CACHE_STALE_THRES */
#endif /* CONFIG_ACCEL_FIFO */
/*
* If USB PD Discharge is enabled, verify that CONFIG_USB_PD_DISCHARGE_GPIO
* and CONFIG_USB_PD_PORT_MAX_COUNT, CONFIG_USB_PD_DISCHARGE_TCPC, or
* CONFIG_USB_PD_DISCHARGE_PPC is defined.
*/
#ifndef CONFIG_TEST_ENABLE_USB_PD_DISCHARGE
#ifdef CONFIG_USB_PD_DISCHARGE
#ifdef CONFIG_USB_PD_DISCHARGE_GPIO
#if !defined(CONFIG_USB_PD_PORT_MAX_COUNT)
#error "PD discharge port not defined"
#endif
#else
#if !defined(CONFIG_USB_PD_DISCHARGE_TCPC) && \
!defined(CONFIG_USB_PD_DISCHARGE_PPC)
#error "PD discharge implementation not defined"
#endif
#endif /* CONFIG_USB_PD_DISCHARGE_GPIO */
#endif /* CONFIG_USB_PD_DISCHARGE */
#endif /* CONFIG_TEST_ENABLE_USB_PD_DISCHARGE */
/* Chargesplash defaults */
#ifdef CONFIG_CHARGESPLASH
#ifndef CONFIG_CHARGESPLASH_PERIOD
#define CONFIG_CHARGESPLASH_PERIOD 900
#endif
#ifndef CONFIG_CHARGESPLASH_MAX_REQUESTS_PER_PERIOD
#define CONFIG_CHARGESPLASH_MAX_REQUESTS_PER_PERIOD 5
#endif
#endif
/* EC Codec Wake-on-Voice related definitions */
#ifdef CONFIG_AUDIO_CODEC_WOV
#define CONFIG_SHA256_SW
#endif
#ifdef CONFIG_SMBUS_PEC
#define CONFIG_CRC8
#endif
#if defined(CONFIG_ONLINE_CALIB) && !defined(CONFIG_FPU)
#error "Online calibration requires CONFIG_FPU"
#endif
/* Set default values for accelerometer calibration if not defined. */
#ifdef CONFIG_ONLINE_CALIB
#ifndef CONFIG_ACCEL_CAL_MIN_TEMP
#define CONFIG_ACCEL_CAL_MIN_TEMP 0.0f
#endif
#ifndef CONFIG_ACCEL_CAL_MAX_TEMP
#define CONFIG_ACCEL_CAL_MAX_TEMP 45.0f
#endif
#ifndef CONFIG_ACCEL_CAL_KASA_RADIUS_THRES
#define CONFIG_ACCEL_CAL_KASA_RADIUS_THRES 0.001f
#endif
#ifndef CONFIG_ACCEL_CAL_NEWTON_RADIUS_THRES
#define CONFIG_ACCEL_CAL_NEWTON_RADIUS_THRES 0.001f
#endif
#endif /* CONFIG_ONLINE_CALIB */
/*
* Vivaldi keyboard code to be enabled only if board has selected
* CONFIG_KEYBOARD_PROTOCOL_8042 and not disabled CONFIG_KEYBOARD_VIVALDI
* explicitly
*/
#ifndef CONFIG_KEYBOARD_PROTOCOL_8042
#undef CONFIG_KEYBOARD_VIVALDI
#endif
#if defined(CONFIG_USB_PD_TCPM_MULTI_PS8XXX)
#if defined(CONFIG_USB_PD_TCPM_PS8705) + defined(CONFIG_USB_PD_TCPM_PS8751) + \
defined(CONFIG_USB_PD_TCPM_PS8755) + \
defined(CONFIG_USB_PD_TCPM_PS8805) + \
defined(CONFIG_USB_PD_TCPM_PS8815) < \
2
#error "Must select 2 CONFIG_USB_PD_TCPM_PS8* or above if " \
"CONFIG_USB_PD_TCPM_MULTI_PS8XXX is defined."
#endif
#endif /* CONFIG_USB_PD_TCPM_MULTI_PS8XXX */
#if defined(CONFIG_USB_PD_TCPM_PS8705) + defined(CONFIG_USB_PD_TCPM_PS8751) + \
defined(CONFIG_USB_PD_TCPM_PS8755) + \
defined(CONFIG_USB_PD_TCPM_PS8805) + \
defined(CONFIG_USB_PD_TCPM_PS8815) > \
1
#if !defined(CONFIG_USB_PD_TCPM_MULTI_PS8XXX)
#error "CONFIG_USB_PD_TCPM_MULTI_PS8XXX MUST be defined if more than one " \
"CONFIG_USB_PD_TCPM_PS8* are intended to support in a board."
#endif
#endif /* defined(CONFIG_USB_PD_TCPM_PS8705) + ... */
/*
* CONFIG_HOSTCMD_TYPEC_CONTROL is not supported for TCPMv1, so disable it in
* that case.
*/
#ifdef CONFIG_USB_PD_TCPMV1
#undef CONFIG_HOSTCMD_TYPEC_CONTROL
#endif /* CONFIG_USB_PD_TCPMV1 */
/******************************************************************************/
/* Check body detection setup */
#if defined(CONFIG_BODY_DETECTION)
#ifndef CONFIG_BODY_DETECTION_SENSOR
#error CONFIG_BODY_DETECTION_SENSOR must be defined to use body detection
#endif /* ifndef(CONFIG_BODY_DETECTION_SENSOR) */
#ifndef CONFIG_BODY_DETECTION_MAX_WINDOW_SIZE
#define CONFIG_BODY_DETECTION_MAX_WINDOW_SIZE 250 /* max sensor odr (Hz) */
#endif
#ifndef CONFIG_BODY_DETECTION_VAR_THRESHOLD
#define CONFIG_BODY_DETECTION_VAR_THRESHOLD 550 /* (mm/s^2)^2 */
#endif
#ifndef CONFIG_BODY_DETECTION_CONFIDENCE_DELTA
#define CONFIG_BODY_DETECTION_CONFIDENCE_DELTA 525 /* (mm/s^2)^2 */
#endif
#ifndef CONFIG_BODY_DETECTION_VAR_NOISE_FACTOR
#define CONFIG_BODY_DETECTION_VAR_NOISE_FACTOR 120 /* % */
#endif
#ifndef CONFIG_BODY_DETECTION_ON_BODY_CON
#define CONFIG_BODY_DETECTION_ON_BODY_CON 50 /* % */
#endif
#ifndef CONFIG_BODY_DETECTION_OFF_BODY_CON
#define CONFIG_BODY_DETECTION_OFF_BODY_CON 10 /* % */
#endif
#ifndef CONFIG_BODY_DETECTION_STATIONARY_DURATION
#define CONFIG_BODY_DETECTION_STATIONARY_DURATION 15 /* second */
#endif
#else /* CONFIG_BODY_DETECTION */
#ifdef CONFIG_BODY_DETECTION_SENSOR
#error "Unexpected body detection property set"
#else
#define CONFIG_BODY_DETECTION_SENSOR 0
#endif
#endif /* CONFIG_BODY_DETECTION */
/*
* Set parameters to dummy values to use IS_ENABLED().
* If a parameter is already set, it will trigger a compilatin error.
*/
/* To be able to use IS_ENABLED(CONFIG_GESTURE_SENSOR_DOUBLE_TAP) */
#ifndef CONFIG_GESTURE_SENSOR_DOUBLE_TAP
#define CONFIG_GESTURE_TAP_THRES_MG 0
#define CONFIG_GESTURE_TAP_MAX_INTERSTICE_T 0
#define CONFIG_GESTURE_TAP_SENSOR 0
#endif /* CONFIG_GESTURE_SENSOR_DOUBLE_TAP */
#ifndef CONFIG_ACCEL_FIFO
#define CONFIG_ACCEL_FIFO_SIZE 0
#endif
#ifndef CONFIG_GESTURE_DETECTION
#define CONFIG_GESTURE_DETECTION_MASK 0
#endif /* CONFIG_GESTURE_DETECTION */
#ifndef CONFIG_GESTURE_SIGMO
#define CONFIG_GESTURE_SIGMO_SENSOR 0
#endif /* CONFIG_GESTURE_SIGMO */
#ifdef CONFIG_LID_ANGLE
#if !defined(CONFIG_LID_ANGLE_SENSOR_BASE) || \
!defined(CONFIG_LID_ANGLE_SENSOR_LID)
#error "Sensors must be identified for calculating lid angle."
#endif
#else /* CONFIG_LID_ANGLE */
#define CONFIG_LID_ANGLE_SENSOR_BASE 0
#define CONFIG_LID_ANGLE_SENSOR_LID 0
#endif /* CONFIG_LID_ANGLE */
#if defined(CONFIG_LID_ANGLE_UPDATE) && !defined(CONFIG_LID_ANGLE)
#error "CONFIG_LID_ANGLE is needed for CONFIG_LID_ANGLE_UPDATE."
#endif
#ifndef CONFIG_ALS
#define ALS_COUNT 0
#endif /* CONFIG_ALS */
/*
* If the EC has exclusive control over CBI EEPROM WP, don't consult the main
* flash WP.
*/
#ifdef CONFIG_EEPROM_CBI_WP
#define CONFIG_BYPASS_CBI_EEPROM_WP_CHECK
#endif
#if defined(CONFIG_EEPROM_CBI_WP) && !defined(CONFIG_CBI_EEPROM)
#error "CONFIG_EEPROM_CBI_WP requires CONFIG_CBI_EEPROM to be defined!"
#endif
#if defined(CONFIG_BYPASS_CBI_EEPROM_WP_CHECK) && \
!defined(CONFIG_SYSTEM_UNLOCKED) && !defined(CONFIG_EEPROM_CBI_WP)
#error "CONFIG_BYPASS_CBI_EEPROM_WP_CHECK is only permitted " \
"when CONFIG_SYSTEM_UNLOCK or CONFIG_EEPROM_CBI_WP is also enabled."
#endif /* CONFIG_BYPASS_CBI_EEPROM_WP_CHECK && !CONFIG_SYSTEM_UNLOCK */
#if defined(CONFIG_BOARD_VERSION_CBI) && defined(CONFIG_BOARD_VERSION_GPIO)
#error "CONFIG_BOARD_VERSION_CBI and CONFIG_BOARD_VERSION_GPIO " \
"are mutually exclusive. "
#endif /* CONFIG_BOARD_VERSION_CBI && CONFIG_BOARD_VERSION_GPIO */
#if defined(CONFIG_CBI_EEPROM) && defined(CONFIG_CBI_GPIO)
#error "CONFIG_CBI_EEPROM and CONFIG_CBI_GPIO are mutually exclusive."
#endif
#if defined(CONFIG_CBI_FLASH) && defined(CONFIG_CBI_GPIO)
#error "CONFIG_CBI_FLASH and CONFIG_CBI_GPIO are mutually exclusive."
#endif
#if !defined(CONFIG_ZEPHYR) && !defined(CONFIG_ACCELGYRO_ICM_COMM_SPI) && \
!defined(CONFIG_ACCELGYRO_ICM_COMM_I2C)
#ifdef I2C_PORT_ACCEL
#define CONFIG_ACCELGYRO_ICM_COMM_I2C
#else
#define CONFIG_ACCELGYRO_ICM_COMM_SPI
#endif
#endif /* !CONFIG_ZEPHYR && !CONFIG_ACCELGYRO_ICM_COMM_SPI && \
* !CONFIG_ACCELGYRO_ICM_COMM_I2C \
*/
#if !defined(CONFIG_ZEPHYR) && !defined(CONFIG_ACCELGYRO_BMI_COMM_SPI) && \
!defined(CONFIG_ACCELGYRO_BMI_COMM_I2C)
#ifdef I2C_PORT_ACCEL
#define CONFIG_ACCELGYRO_BMI_COMM_I2C
#else
#define CONFIG_ACCELGYRO_BMI_COMM_SPI
#endif
#endif /* !CONFIG_ZEPHYR && !CONFIG_ACCELGYRO_BMI_SPI && \
* !CONFIG_ACCELGYRO_BMI_I2C \
*/
/* AMD STT requires AMD SB-RMI to be enabled */
#if defined(CONFIG_AMD_STT) && !defined(CONFIG_AMD_SB_RMI)
#define CONFIG_AMD_SB_RMI
#endif
/*
* Default timeout value for which EC has to wait for system to exit from S5
* before performing RTC reset and moving the system to G3.
*/
#if defined(CONFIG_BOARD_HAS_RTC_RESET) && !defined(CONFIG_S5_EXIT_WAIT)
#define CONFIG_S5_EXIT_WAIT 4
#endif
/* HAS_GPU_DRIVER enables D-Notify and throttling. */
#if defined(CONFIG_GPU_NVIDIA)
#define HAS_GPU_DRIVER
#endif
/* Default to 1024 for end of ram data (panic and jump data) */
#ifndef CONFIG_PRESERVED_END_OF_RAM_SIZE
#define CONFIG_PRESERVED_END_OF_RAM_SIZE 1024
#endif
#ifdef HAVE_PRIVATE
#include "private_config.h"
#endif /* HAVE_PRIVATE */
#endif /* __CROS_EC_CONFIG_H */