diff options
Diffstat (limited to 'zephyr/projects/brya/brya')
-rw-r--r-- | zephyr/projects/brya/brya/BUILD.py | 8 | ||||
-rw-r--r-- | zephyr/projects/brya/brya/CMakeLists.txt | 9 | ||||
-rw-r--r-- | zephyr/projects/brya/brya/cbi_eeprom.dts | 17 | ||||
-rw-r--r-- | zephyr/projects/brya/brya/fan.dts | 29 | ||||
-rw-r--r-- | zephyr/projects/brya/brya/gpio.dts | 61 | ||||
-rw-r--r-- | zephyr/projects/brya/brya/include/gpio_map.h | 36 | ||||
-rw-r--r-- | zephyr/projects/brya/brya/motionsense.dts | 265 | ||||
-rw-r--r-- | zephyr/projects/brya/brya/prj.conf | 73 | ||||
-rw-r--r-- | zephyr/projects/brya/brya/pwm.dts | 74 |
9 files changed, 534 insertions, 38 deletions
diff --git a/zephyr/projects/brya/brya/BUILD.py b/zephyr/projects/brya/brya/BUILD.py index 70696c1f3f..45d6dca977 100644 --- a/zephyr/projects/brya/brya/BUILD.py +++ b/zephyr/projects/brya/brya/BUILD.py @@ -5,5 +5,11 @@ register_npcx_project( project_name="brya", zephyr_board="brya", - dts_overlays=["gpio.dts"], + dts_overlays=[ + "cbi_eeprom.dts", + "fan.dts", + "gpio.dts", + "motionsense.dts", + "pwm.dts", + ], ) diff --git a/zephyr/projects/brya/brya/CMakeLists.txt b/zephyr/projects/brya/brya/CMakeLists.txt index 59af20ebfe..c5f11ebf5f 100644 --- a/zephyr/projects/brya/brya/CMakeLists.txt +++ b/zephyr/projects/brya/brya/CMakeLists.txt @@ -7,4 +7,11 @@ cmake_minimum_required(VERSION 3.13.1) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(brya) -zephyr_include_directories(include) +set(PLATFORM_EC_BASEBOARD "${PLATFORM_EC}/baseboard/brya" CACHE PATH + "Path to the platform/ec baseboard directory") + +zephyr_include_directories(include + "${PLATFORM_EC_BASEBOARD}") + +zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_CBI_EEPROM + "${PLATFORM_EC_BASEBOARD}/cbi.c") diff --git a/zephyr/projects/brya/brya/cbi_eeprom.dts b/zephyr/projects/brya/brya/cbi_eeprom.dts new file mode 100644 index 0000000000..f584c56afd --- /dev/null +++ b/zephyr/projects/brya/brya/cbi_eeprom.dts @@ -0,0 +1,17 @@ +/* Copyright 2021 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +&i2c7_0 { + cbi_eeprom: eeprom@50 { + compatible = "atmel,at24"; + reg = <0x50>; + label = "EEPROM_CBI"; + size = <2048>; + pagesize = <16>; + address-width = <8>; + timeout = <5>; + wp-gpios = <&gpio_ec_wp_l>; + }; +}; diff --git a/zephyr/projects/brya/brya/fan.dts b/zephyr/projects/brya/brya/fan.dts new file mode 100644 index 0000000000..cccd6315bf --- /dev/null +++ b/zephyr/projects/brya/brya/fan.dts @@ -0,0 +1,29 @@ +/* Copyright 2022 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +/ { + named-fans { + compatible = "named-fans"; + + fan_0 { + label = "FAN_0"; + pwm = <&pwm_fan>; + rpm_min = <2200>; + rpm_start = <2200>; + rpm_max = <4200>; + tach = <&tach1>; + enable_gpio = <&gpio_en_pp5000_fan>; + }; + }; +}; + +/* Tachemeter for fan speed measurement */ +&tach1 { + status = "okay"; + pinctrl-0 = <&alt3_ta1_sl1>; /* Use TA1 as input pin */ + port = <NPCX_TACH_PORT_A>; /* port-A is selected */ + sample-clk = <NPCX_TACH_FREQ_LFCLK>; /* Use LFCLK as sampling clock */ + pulses-per-round = <2>; /* number of pulses per round of encoder */ +}; diff --git a/zephyr/projects/brya/brya/gpio.dts b/zephyr/projects/brya/brya/gpio.dts index 9ec2af0a12..68549c7b68 100644 --- a/zephyr/projects/brya/brya/gpio.dts +++ b/zephyr/projects/brya/brya/gpio.dts @@ -10,137 +10,136 @@ lid_open: lid_open { gpios = <&gpiod 2 GPIO_INPUT>; enum-name = "GPIO_LID_OPEN"; - label = "LID_OPEN"; }; - gsc_ec_pwr_btn_odl: power_btn { + gsc_ec_pwr_btn_odl: gsc_ec_pwr_btn_odl { gpios = <&gpio0 1 GPIO_INPUT>; enum-name = "GPIO_POWER_BUTTON_L"; - label = "GSC_EC_PWR_BTN_ODL"; }; - wp_l { + gpio_ec_wp_l: ec_wp_odl { + #gpio-cells = <0>; gpios = <&gpioa 1 GPIO_INPUT>; enum-name = "GPIO_WP_L"; - label = "EC_WP_ODL"; }; ec_chg_led_y_c1 { gpios = <&gpioc 3 GPIO_OUT_LOW>; enum-name = "GPIO_EC_CHG_LED_Y_C1"; - label = "EC_CHG_LED_Y_C1"; }; ec_chg_led_b_c1 { gpios = <&gpioc 4 GPIO_OUT_LOW>; enum-name = "GPIO_EC_CHG_LED_B_C1"; - label = "EC_CHG_LED_B_C1"; }; - packet_mode_en { + ec_gsc_packet_mode { gpios = <&gpio7 5 GPIO_OUT_LOW>; enum-name = "GPIO_PACKET_MODE_EN"; - label = "EC_GSC_PACKET_MODE"; + }; + gpio_ec_accel_int_l: ec_accel_int_l { + gpios = <&gpio8 1 GPIO_INPUT>; + enum-name = "GPIO_EC_ACCEL_INT"; + }; + gpio_ec_imu_int_l: gpio_ec_imu_int_l { + gpios = <&gpio5 6 GPIO_INPUT>; + enum-name = "GPIO_EC_IMU_INT_L"; + }; + gpio_ec_als_rgb_int_l: gpio_ec_als_rgb_int_l { + gpios = <&gpiod 4 GPIO_INPUT>; + enum-name = "GPIO_EC_ALS_RGB_INT_L"; + }; + tablet_mode_l { + gpios = <&gpio9 5 GPIO_INPUT>; + enum-name = "GPIO_TABLET_MODE_L"; }; acok_od: acok_od { gpios = <&gpio0 0 GPIO_INPUT>; enum-name = "GPIO_AC_PRESENT"; - label = "ACOK_OD"; }; ec_kso_02_inv { gpios = <&gpio1 7 GPIO_OUT_LOW>; enum-name = "GPIO_KBD_KSO2"; - label = "EC_KSO_02_INV"; }; - pch_wake_odl { + ec_pch_wake_r_odl { gpios = <&gpioc 0 GPIO_ODR_HIGH>; enum-name = "GPIO_EC_PCH_WAKE_ODL"; - label = "EC_PCH_WAKE_R_ODL"; }; - pch_int_odl { + ec_pch_int_odl { gpios = <&gpiob 0 GPIO_ODR_HIGH>; enum-name = "GPIO_EC_INT_L"; - label = "EC_PCH_INT_ODL"; }; pg_ec_dsw_pwrok { gpios = <&gpioc 7 GPIO_INPUT>; enum-name = "GPIO_PG_EC_DSW_PWROK"; - label = "PG_EC_DSW_PWROK"; }; en_s5_rails { gpios = <&gpiob 6 GPIO_OUT_LOW>; enum-name = "GPIO_EN_S5_RAILS"; - label = "EN_S5_RAILS"; }; sys_rst_odl { gpios = <&gpioc 5 GPIO_ODR_HIGH>; enum-name = "GPIO_SYS_RESET_L"; - label = "SYS_RST_ODL"; }; pg_ec_rsmrst_odl { gpios = <&gpioe 2 GPIO_INPUT>; enum-name = "GPIO_PG_EC_RSMRST_ODL"; - label = "PG_EC_RSMRST_ODL"; }; ec_pch_rsmrst_odl { gpios = <&gpioa 6 GPIO_OUT_LOW>; enum-name = "GPIO_PCH_RSMRST_L"; - label = "EC_PCH_RSMRST_ODL"; }; pg_ec_all_sys_pwrgd { gpios = <&gpiof 4 GPIO_INPUT>; enum-name = "GPIO_PG_EC_ALL_SYS_PWRGD"; - label = "PG_EC_ALL_SYS_PWRGD"; }; slp_s0_l { gpios = <&gpiod 5 GPIO_INPUT>; enum-name = "GPIO_PCH_SLP_S0_L"; - label = "SLP_S0_L"; }; slp_s3_l { gpios = <&gpioa 5 GPIO_INPUT>; enum-name = "GPIO_PCH_SLP_S3_L"; - label = "SLP_S3_L"; }; vccst_pwrgd_od { gpios = <&gpioa 4 GPIO_ODR_LOW>; enum-name = "GPIO_VCCST_PWRGD_OD"; - label = "VCCST_PWRGD_OD"; }; ec_prochot_odl { gpios = <&gpio6 3 GPIO_ODR_HIGH>; enum-name = "GPIO_CPU_PROCHOT"; - label = "EC_PROCHOT_ODL"; }; ec_pch_pwr_btn_odl { gpios = <&gpioc 1 GPIO_ODR_HIGH>; enum-name = "GPIO_PCH_PWRBTN_L"; - label = "EC_PCH_PWR_BTN_ODL"; }; slp_sus_l { gpios = <&gpiof 1 GPIO_INPUT>; enum-name = "GPIO_SLP_SUS_L"; - label = "SLP_SUS_L"; }; pch_pwrok { gpios = <&gpio7 2 GPIO_OUT_LOW>; enum-name = "GPIO_PCH_PWROK"; - label = "PCH_PWROK"; }; ec_pch_sys_pwrok { gpios = <&gpio3 7 GPIO_OUT_LOW>; enum-name = "GPIO_EC_PCH_SYS_PWROK"; - label = "EC_PCH_SYS_PWROK"; }; imvp9_vrrdy_od { gpios = <&gpio4 3 GPIO_INPUT>; enum-name = "GPIO_IMVP9_VRRDY_OD"; - label = "IMVP9_VRRDY_OD"; }; ec_edp_bl_en { gpios = <&gpiod 3 GPIO_OUT_HIGH>; enum-name = "GPIO_ENABLE_BACKLIGHT"; - label = "EC_EDP_BL_EN"; + }; + ec_prochot_in_l { + gpios = <&gpiof 0 GPIO_INPUT>; + enum-name = "GPIO_EC_PROCHOT_IN_L"; + }; + gpio_en_pp5000_fan: en_pp5000_fan { + gpios = <&gpio6 1 GPIO_OUT_HIGH>; + enum-name = "GPIO_EN_PP5000_FAN"; }; }; diff --git a/zephyr/projects/brya/brya/include/gpio_map.h b/zephyr/projects/brya/brya/include/gpio_map.h index 978b0a921c..953d0d453a 100644 --- a/zephyr/projects/brya/brya/include/gpio_map.h +++ b/zephyr/projects/brya/brya/include/gpio_map.h @@ -12,6 +12,32 @@ #define GPIO_ENTERING_RW GPIO_UNIMPLEMENTED #define GPIO_WP_L GPIO_UNIMPLEMENTED +#ifdef CONFIG_PLATFORM_EC_ALS_TCS3400 +#define TCS3400_INT(gpio, edge) GPIO_INT(gpio, edge, tcs3400_interrupt) +#else +#define TCS3400_INT(gpio, edge) +#endif + +#ifdef CONFIG_PLATFORM_EC_ACCELGYRO_LSM6DSO +#define LSM6DSO_INT(gpio, edge) GPIO_INT(gpio, edge, lsm6dso_interrupt) +#else +#define LSM6DSO_INT(gpio, edge) +#endif + +#ifdef CONFIG_PLATFORM_EC_ACCEL_LIS2DW12 +#define LIS2DW12_INT(gpio, edge) GPIO_INT(gpio, edge, lis2dw12_interrupt) +#else +#define LIS2DW12_INT(gpio, edge) +#endif + +#ifdef CONFIG_PLATFORM_EC_GMR_TABLET_MODE +#define GMR_TABLET_MODE_INT(gpio, edge) GPIO_INT(gpio, edge, \ + gmr_tablet_switch_isr) +#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L +#else +#define GMR_TABLET_MODE_INT(gpio, edge) +#endif + /* * Set EC_CROS_GPIO_INTERRUPTS to a space-separated list of GPIO_INT items. * @@ -31,21 +57,29 @@ #ifdef CONFIG_PLATFORM_EC_POWERSEQ #define POWER_SIGNAL_INT(gpio, edge) \ GPIO_INT(gpio, edge, power_signal_interrupt) +#define AP_PROCHOT_INT(gpio, edge) \ + GPIO_INT(gpio, edge, throttle_ap_prochot_input_interrupt) #else #define POWER_SIGNAL_INT(gpio, edge) +#define AP_PROCHOT_INT(gpio, edge) #endif #define EC_CROS_GPIO_INTERRUPTS \ + GMR_TABLET_MODE_INT(GPIO_TABLET_MODE_L, GPIO_INT_EDGE_BOTH) \ GPIO_INT(GPIO_LID_OPEN, GPIO_INT_EDGE_BOTH, lid_interrupt) \ GPIO_INT(GPIO_POWER_BUTTON_L, GPIO_INT_EDGE_BOTH, \ power_button_interrupt) \ GPIO_INT(GPIO_WP_L, GPIO_INT_EDGE_BOTH, switch_interrupt) \ GPIO_INT(GPIO_AC_PRESENT, GPIO_INT_EDGE_BOTH, extpower_interrupt) \ + LIS2DW12_INT(GPIO_EC_ACCEL_INT, GPIO_INT_EDGE_FALLING) \ + LSM6DSO_INT(GPIO_EC_IMU_INT_L, GPIO_INT_EDGE_FALLING) \ POWER_SIGNAL_INT(GPIO_PCH_SLP_S0_L, GPIO_INT_EDGE_BOTH) \ POWER_SIGNAL_INT(GPIO_PCH_SLP_S3_L, GPIO_INT_EDGE_BOTH) \ POWER_SIGNAL_INT(GPIO_SLP_SUS_L, GPIO_INT_EDGE_BOTH) \ POWER_SIGNAL_INT(GPIO_PG_EC_DSW_PWROK, GPIO_INT_EDGE_BOTH) \ POWER_SIGNAL_INT(GPIO_PG_EC_RSMRST_ODL, GPIO_INT_EDGE_BOTH) \ - POWER_SIGNAL_INT(GPIO_PG_EC_ALL_SYS_PWRGD, GPIO_INT_EDGE_BOTH) + POWER_SIGNAL_INT(GPIO_PG_EC_ALL_SYS_PWRGD, GPIO_INT_EDGE_BOTH) \ + TCS3400_INT(GPIO_EC_ALS_RGB_INT_L, GPIO_INT_EDGE_FALLING) \ + AP_PROCHOT_INT(GPIO_EC_PROCHOT_IN_L, GPIO_INT_EDGE_BOTH) #endif /* __ZEPHYR_GPIO_MAP_H */ diff --git a/zephyr/projects/brya/brya/motionsense.dts b/zephyr/projects/brya/brya/motionsense.dts new file mode 100644 index 0000000000..a4276c3255 --- /dev/null +++ b/zephyr/projects/brya/brya/motionsense.dts @@ -0,0 +1,265 @@ +/* + * Copyright (c) 2022 The Chromium OS Authors + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include <dt-bindings/motionsense/utils.h> + + +/ { + aliases { + /* + * motion sense's <>_INT_EVENT is handled + * by alias. Using the alias, each driver creates + * its own <>_INT_EVENT. + */ + lsm6dso-int = &base_accel; + lis2dw12-int = &lid_accel; + tcs3400-int = &als_clear; + }; + + /* + * Declare mutexes used by sensor drivers. + * A mutex node is used to create an instance of mutex_t. + * A mutex node is referenced by a sensor node if the + * corresponding sensor driver needs to use the + * instance of the mutex. + */ + motionsense-mutex { + compatible = "cros-ec,motionsense-mutex"; + mutex_lis2dw12: lis2dw12-mutex { + label = "LIS2DW12_MUTEX"; + }; + + mutex_lsm6dso: lsm6dso-mutex { + label = "LSM6DSO_MUTEX"; + }; + }; + + /* Rotation matrix used by drivers. */ + motionsense-rotation-ref { + compatible = "cros-ec,motionsense-rotation-ref"; + lid_rot_ref: lid-rotation-ref { + mat33 = <0 1 0 + 1 0 0 + 0 0 (-1)>; + }; + base_rot_ref: base-rotation-ref { + mat33 = <1 0 0 + 0 (-1) 0 + 0 0 (-1)>; + }; + }; + + /* + * Driver specific data. A driver-specific data can be shared with + * different motion sensors while they are using the same driver. + * + * If a node's compatible starts with "cros-ec,accelgyro-", it is for + * a common structure defined in accelgyro.h. + * e.g) compatible = "cros-ec,accelgyro-als-drv-data" is for + * "struct als_drv_data_t" in accelgyro.h + */ + motionsense-sensor-data { + lis2dw12_data: lis2dw12-drv-data { + compatible = "cros-ec,drvdata-lis2dw12"; + status = "okay"; + }; + + lsm6dso_data: lsm6dso-drv-data { + compatible = "cros-ec,drvdata-lsm6dso"; + status = "okay"; + }; + + tcs_clear_data: tcs3400-clear-drv-data { + compatible = "cros-ec,drvdata-tcs3400-clear"; + status = "okay"; + + als-drv-data { + compatible = "cros-ec,accelgyro-als-drv-data"; + als-cal { + scale = <1>; + uscale = <0>; + offset = <0>; + als-channel-scale { + compatible = + "cros-ec,accelgyro-als-channel-scale"; + k-channel-scale = <1>; + cover-scale = <1>; + }; + }; + }; + }; + + tcs_rgb_data: tcs3400-rgb-drv-data { + compatible = "cros-ec,drvdata-tcs3400-rgb"; + status = "okay"; + + /* node for rgb_calibration_t defined in accelgyro.h */ + rgb_calibration { + compatible = + "cros-ec,accelgyro-rgb-calibration"; + + irt = <1>; + + rgb-cal-x { + offset = <0>; + coeff = <0 0 0 1>; + als-channel-scale { + compatible = + "cros-ec,accelgyro-als-channel-scale"; + k-channel-scale = <1>; + cover-scale = <1>; + }; + }; + rgb-cal-y { + offset = <0>; + coeff = <0 0 0 1>; + als-channel-scale { + compatible = + "cros-ec,accelgyro-als-channel-scale"; + k-channel-scale = <1>; + cover-scale = <1>; + }; + }; + rgb-cal-z { + offset = <0>; + coeff = <0 0 0 1>; + als-channel-scale { + compatible = + "cros-ec,accelgyro-als-channel-scale"; + k-channel-scale = <1>; + cover-scale = <1>; + }; + }; + }; + }; + }; + + /* + * List of motion sensors that creates motion_sensors array. + * The label "lid_accel" and "base_accel" are used to indicate + * motion sensor IDs for lid angle calculation. + */ + motionsense-sensor { + lid_accel: lid-accel { + compatible = "cros-ec,lis2dw12"; + status = "okay"; + + label = "Lid Accel"; + active-mask = "SENSOR_ACTIVE_S0_S3"; + location = "MOTIONSENSE_LOC_LID"; + mutex = <&mutex_lis2dw12>; + port = <&i2c_sensor>; + rot-standard-ref = <&lid_rot_ref>; + default-range = <2>; + drv-data = <&lis2dw12_data>; + i2c-spi-addr-flags = "LIS2DWL_ADDR0_FLAGS"; + configs { + compatible = + "cros-ec,motionsense-sensor-config"; + ec-s0 { + label = "SENSOR_CONFIG_EC_S0"; + odr = <(10000 | ROUND_UP_FLAG)>; + }; + ec-s3 { + label = "SENSOR_CONFIG_EC_S3"; + odr = <(10000 | ROUND_UP_FLAG)>; + }; + }; + }; + + base_accel: base-accel { + compatible = "cros-ec,lsm6dso-accel"; + status = "okay"; + + label = "Base Accel"; + active-mask = "SENSOR_ACTIVE_S0_S3"; + location = "MOTIONSENSE_LOC_BASE"; + mutex = <&mutex_lsm6dso>; + port = <&i2c_sensor>; + rot-standard-ref = <&base_rot_ref>; + default-range = <4>; + drv-data = <&lsm6dso_data>; + i2c-spi-addr-flags = "LSM6DSO_ADDR0_FLAGS"; + configs { + compatible = + "cros-ec,motionsense-sensor-config"; + ec-s0 { + label = "SENSOR_CONFIG_EC_S0"; + odr = <(13000 | ROUND_UP_FLAG)>; + ec-rate = <(100 * USEC_PER_MSEC)>; + }; + ec-s3 { + label = "SENSOR_CONFIG_EC_S3"; + odr = <(10000 | ROUND_UP_FLAG)>; + ec-rate = <(100 * USEC_PER_MSEC)>; + }; + }; + }; + + base-gyro { + compatible = "cros-ec,lsm6dso-gyro"; + status = "okay"; + + label = "Base Gyro"; + active-mask = "SENSOR_ACTIVE_S0_S3"; + location = "MOTIONSENSE_LOC_BASE"; + mutex = <&mutex_lsm6dso>; + port = <&i2c_sensor>; + rot-standard-ref = <&base_rot_ref>; + default-range = <(1000 | ROUND_UP_FLAG)>; /* dps */ + drv-data = <&lsm6dso_data>; + i2c-spi-addr-flags = "LSM6DSO_ADDR0_FLAGS"; + }; + + als_clear: base-als-clear { + compatible = "cros-ec,tcs3400-clear"; + status = "okay"; + + label = "Clear Light"; + active-mask = "SENSOR_ACTIVE_S0_S3"; + location = "MOTIONSENSE_LOC_CAMERA"; + port = <&i2c_sensor>; + default-range = <0x10000>; + drv-data = <&tcs_clear_data>; + i2c-spi-addr-flags = "TCS3400_I2C_ADDR_FLAGS"; + configs { + compatible = + "cros-ec,motionsense-sensor-config"; + ec-s0 { + /* Run ALS sensor in S0 */ + label = "SENSOR_CONFIG_EC_S0"; + odr = <1000>; + }; + }; + }; + + base-als-rgb { + compatible = "cros-ec,tcs3400-rgb"; + status = "okay"; + + label = "RGB Light"; + active-mask = "SENSOR_ACTIVE_S0_S3"; + location = "MOTIONSENSE_LOC_CAMERA"; + default-range = <0x10000>; /* scale = 1x, uscale = 0 */ + drv-data = <&tcs_rgb_data>; + }; + }; + + motionsense-sensor-info { + compatible = "cros-ec,motionsense-sensor-info"; + + /* list of entries for motion_als_sensors */ + als-sensors = <&als_clear>; + /* + * list of GPIO interrupts that have to + * be enabled at initial stage + */ + sensor-irqs = <&gpio_ec_imu_int_l &gpio_ec_als_rgb_int_l + &gpio_ec_accel_int_l>; + /* list of sensors in force mode */ + accel-force-mode-sensors = <&lid_accel &als_clear>; + }; +}; diff --git a/zephyr/projects/brya/brya/prj.conf b/zephyr/projects/brya/brya/prj.conf index 13ef01133f..1bfd3ce95b 100644 --- a/zephyr/projects/brya/brya/prj.conf +++ b/zephyr/projects/brya/brya/prj.conf @@ -7,6 +7,7 @@ CONFIG_PLATFORM_EC=y CONFIG_PLATFORM_EC_BRINGUP=y CONFIG_SHIMMED_TASKS=y CONFIG_PLATFORM_EC_POWER_BUTTON=y +CONFIG_PLATFORM_EC_CBI_EEPROM=y CONFIG_PLATFORM_EC_LID_SWITCH=y CONFIG_PLATFORM_EC_SWITCH=y CONFIG_LTO=y @@ -17,7 +18,8 @@ CONFIG_PLATFORM_EC_VBOOT_HASH=y CONFIG_PLATFORM_EC_EXTPOWER_GPIO=y CONFIG_PLATFORM_EC_CONSOLE_CMD_SYSINFO=y CONFIG_PLATFORM_EC_I2C=y -CONFIG_PLATFORM_EC_BACKLIGHT_LID=y + +CONFIG_PLATFORM_EC_ADC_CHANNELS_RUNTIME_CONFIG=y # SoC configuration CONFIG_AP=y @@ -25,17 +27,73 @@ CONFIG_AP_X86_INTEL_ADL=y CONFIG_FPU=y CONFIG_ARM_MPU=y +# eSPI CONFIG_ESPI=y -CONFIG_PLATFORM_EC_ESPI=y CONFIG_PLATFORM_EC_ESPI_VW_SLP_S4=y +CONFIG_PLATFORM_EC_ESPI_VW_SLP_S5=y + +# Power Sequencing +CONFIG_PLATFORM_EC_POWERSEQ=y +CONFIG_PLATFORM_EC_POWERSEQ_RTC_RESET=y +CONFIG_PLATFORM_EC_POWERSEQ_S0IX=y +CONFIG_PLATFORM_EC_POWERSEQ_S4=y +CONFIG_PLATFORM_EC_POWER_SLEEP_FAILURE_DETECTION=y +CONFIG_PLATFORM_EC_THROTTLE_AP=y # Host command CONFIG_PLATFORM_EC_HOSTCMD=y +# Console command +CONFIG_PLATFORM_EC_CONSOLE_CMD_ACCELS=y +CONFIG_PLATFORM_EC_CONSOLE_CMD_ACCEL_INFO=y + +# Sensors +CONFIG_PLATFORM_EC_MOTIONSENSE=y +CONFIG_PLATFORM_EC_ACCEL_FIFO=y +CONFIG_PLATFORM_EC_ACCEL_INTERRUPTS=y +CONFIG_PLATFORM_EC_ALS=y +CONFIG_PLATFORM_EC_DYNAMIC_MOTION_SENSOR_COUNT=y +CONFIG_PLATFORM_EC_GMR_TABLET_MODE=y +CONFIG_PLATFORM_EC_LID_ANGLE=y +CONFIG_PLATFORM_EC_LID_ANGLE_UPDATE=y +CONFIG_PLATFORM_EC_SENSOR_TIGHT_TIMESTAMPS=y +CONFIG_PLATFORM_EC_TABLET_MODE=y +CONFIG_PLATFORM_EC_TABLET_MODE_SWITCH=y + +# Sensor Drivers +CONFIG_PLATFORM_EC_ACCELGYRO_BMI_COMM_SPI=y +CONFIG_PLATFORM_EC_ACCELGYRO_ICM_COMM_SPI=y +CONFIG_PLATFORM_EC_ACCELGYRO_LSM6DSO=y +CONFIG_PLATFORM_EC_ACCEL_LIS2DW12=y +CONFIG_PLATFORM_EC_ACCEL_LIS2DW12_AS_BASE=y +CONFIG_PLATFORM_EC_ALS_TCS3400=y + +# Fan +CONFIG_PLATFORM_EC_FAN=y +CONFIG_SENSOR=y +CONFIG_SENSOR_SHELL=n +CONFIG_TACH_NPCX=y + # Temperature sensors CONFIG_PLATFORM_EC_TEMP_SENSOR=y CONFIG_PLATFORM_EC_THERMISTOR=y +# Miscellaneous configs +CONFIG_PLATFORM_EC_HIBERNATE_PSL=y + +# MKBP event +CONFIG_PLATFORM_EC_MKBP_EVENT=y +CONFIG_PLATFORM_EC_MKBP_INPUT_DEVICES=y +CONFIG_PLATFORM_EC_MKBP_USE_HOST_EVENT=y + +# MKBP event mask +CONFIG_PLATFORM_EC_MKBP_EVENT_WAKEUP_MASK=y +CONFIG_PLATFORM_EC_MKBP_HOST_EVENT_WAKEUP_MASK=y + +# PMIC +CONFIG_PLATFORM_EC_PMIC=y +CONFIG_PLATFORM_EC_MP2964=y + # Keyboard CONFIG_PLATFORM_EC_KEYBOARD=y CONFIG_PLATFORM_EC_KEYBOARD_PROTOCOL_8042=y @@ -48,9 +106,12 @@ CONFIG_PLATFORM_EC_WORKAROUND_FLASH_DOWNLOAD_API=y CONFIG_SYSCON=y +# PWM +CONFIG_PWM=y +CONFIG_PWM_SHELL=n +CONFIG_PLATFORM_EC_PWM=y + # TODO(b/188605676): bring these features up -CONFIG_PLATFORM_EC_BACKLIGHT_LID=n -CONFIG_PLATFORM_EC_BOARD_VERSION_CBI=n CONFIG_PLATFORM_EC_BOARD_VERSION_GPIO=n # Power Sequencing @@ -62,3 +123,7 @@ CONFIG_PLATFORM_EC_POWERSEQ_S0IX=y CONFIG_PLATFORM_EC_POWER_SLEEP_FAILURE_DETECTION=y # Treat 2nd reset from H1 as Power-On CONFIG_PLATFORM_EC_BOARD_RESET_AFTER_POWER_ON=y +CONFIG_PLATFORM_EC_THROTTLE_AP=y + +# RTC +CONFIG_PLATFORM_EC_RTC=y diff --git a/zephyr/projects/brya/brya/pwm.dts b/zephyr/projects/brya/brya/pwm.dts new file mode 100644 index 0000000000..4b71b235ba --- /dev/null +++ b/zephyr/projects/brya/brya/pwm.dts @@ -0,0 +1,74 @@ +/* Copyright 2022 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +/ { + named-pwms { + compatible = "named-pwms"; + + led1: led1 { + #pwm-cells = <0>; + pwms = <&pwm2 0 PWM_POLARITY_INVERTED>; + frequency = <4800>; + }; + led2: led2 { + #pwm-cells = <0>; + pwms = <&pwm0 0 PWM_POLARITY_INVERTED>; + frequency = <4800>; + }; + led3: led3 { + #pwm-cells = <0>; + pwms = <&pwm1 0 PWM_POLARITY_INVERTED>; + frequency = <4800>; + }; + led4: led4 { + #pwm-cells = <0>; + pwms = <&pwm7 0 PWM_POLARITY_INVERTED>; + frequency = <4800>; + }; + kblight: kblight { + pwms = <&pwm3 0 0>; + frequency = <2400>; + }; + pwm_fan: fan { + pwms = <&pwm5 0 0>; + frequency = <1000>; + }; + }; +}; + +/* LED2 */ +&pwm0 { + status = "okay"; + clock-bus = "NPCX_CLOCK_BUS_LFCLK"; +}; + +/* LED3 */ +&pwm1 { + status = "okay"; + clock-bus = "NPCX_CLOCK_BUS_LFCLK"; +}; + +/* LED1 */ +&pwm2 { + status = "okay"; + clock-bus = "NPCX_CLOCK_BUS_LFCLK"; +}; + +/* Keyboard backlight */ +&pwm3 { + status = "okay"; +}; + +/* Fan control */ +&pwm5 { + status = "okay"; + drive-open-drain; +}; + +/* LED4 */ +&pwm7 { + status = "okay"; + clock-bus = "NPCX_CLOCK_BUS_LFCLK"; +}; |