summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeila Lin <leilacy_lin@compal.corp-partner.google.com>2023-03-23 15:09:12 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-03-24 19:02:52 +0000
commit39b2604d7b8d1280342a075cbad13ab93a783d64 (patch)
treee61bd5831c601deb8e9f1391268ac3fc2f79a091
parent1fd29477c93f71545dbf53be29f7484887809f80 (diff)
downloadchrome-ec-39b2604d7b8d1280342a075cbad13ab93a783d64.tar.gz
markarth: Modify fw config structure
Add keyboard backlight fw config in cbi and add the override ec feature function. Also remove the unused fw config and function. BUG=b:270880660, b:273834148 BRANCH=none TEST=zmake build markarth Change-Id: I4488d473ee2b073a3df96f72926110395c0fc9b4 Signed-off-by: Leila Lin <leilacy_lin@compal.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4362352 Tested-by: LeilaCY Lin <leilacy_lin@compal.corp-partner.google.com.test-google-a.com> Reviewed-by: Chao Gui <chaogui@google.com> Commit-Queue: Chao Gui <chaogui@google.com> (cherry picked from commit 6f1231f6b42bbc723747e733a825672e6c661d72) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4369169
-rw-r--r--zephyr/program/skyrim/markarth/CMakeLists.txt2
-rw-r--r--zephyr/program/skyrim/markarth/project.conf3
-rw-r--r--zephyr/program/skyrim/markarth/project.overlay51
-rw-r--r--zephyr/program/skyrim/markarth/src/fan.c62
-rw-r--r--zephyr/program/skyrim/markarth/src/form_factor.c35
-rw-r--r--zephyr/program/skyrim/markarth/src/kb_backlight.c34
-rw-r--r--zephyr/program/skyrim/markarth/src/usb_mux_config.c72
-rw-r--r--zephyr/test/skyrim/testcase.yaml5
8 files changed, 71 insertions, 193 deletions
diff --git a/zephyr/program/skyrim/markarth/CMakeLists.txt b/zephyr/program/skyrim/markarth/CMakeLists.txt
index de0269c5f0..7075b650cc 100644
--- a/zephyr/program/skyrim/markarth/CMakeLists.txt
+++ b/zephyr/program/skyrim/markarth/CMakeLists.txt
@@ -8,8 +8,8 @@ zephyr_library_sources(
"src/ppc_config.c"
"src/form_factor.c"
"src/keyboard.c"
+ "src/kb_backlight.c"
)
-zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_FAN "src/fan.c")
zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_KEYBOARD_CUSTOMIZATION
"src/keyboard.c"
"src/keyboard_customization.c"
diff --git a/zephyr/program/skyrim/markarth/project.conf b/zephyr/program/skyrim/markarth/project.conf
index cf6c391ffc..8c2c204f2b 100644
--- a/zephyr/program/skyrim/markarth/project.conf
+++ b/zephyr/program/skyrim/markarth/project.conf
@@ -21,3 +21,6 @@ CONFIG_PLATFORM_EC_USB_CHARGER=n
# Keyboard
CONFIG_PLATFORM_EC_KEYBOARD_CUSTOMIZATION=y
+
+# Sensors
+CONFIG_PLATFORM_EC_DYNAMIC_MOTION_SENSOR_COUNT=y
diff --git a/zephyr/program/skyrim/markarth/project.overlay b/zephyr/program/skyrim/markarth/project.overlay
index 3f5aaf47c8..0678eae9a5 100644
--- a/zephyr/program/skyrim/markarth/project.overlay
+++ b/zephyr/program/skyrim/markarth/project.overlay
@@ -93,46 +93,24 @@
default;
};
};
- io-db {
- enum-name = "FW_IO_DB";
- start = <6>;
- size = <2>;
-
- io-db-ps8811-ps8818 {
- compatible = "cros-ec,cbi-fw-config-value";
- enum-name = "FW_IO_DB_PS8811_PS8818";
- value = <0>;
- };
- io-db-none-anx7483 {
- compatible = "cros-ec,cbi-fw-config-value";
- enum-name = "FW_IO_DB_NONE_ANX7483";
- value = <1>;
- default;
- };
- };
/*
- * FW_CONFIG field to enable fan or not.
+ * FW_CONFIG field to enable KB back light or not.
*/
- fan {
- enum-name = "FW_FAN";
- start = <10>;
+ kb-bl {
+ enum-name = "FW_KB_BL";
+ start = <1>;
size = <1>;
- no-fan {
+ no-kb-bl {
compatible = "cros-ec,cbi-fw-config-value";
- enum-name = "FW_FAN_NOT_PRESENT";
+ enum-name = "FW_KB_BL_NOT_PRESENT";
value = <0>;
};
- fan-present {
+ kb-bl-present {
compatible = "cros-ec,cbi-fw-config-value";
- enum-name = "FW_FAN_PRESENT";
+ enum-name = "FW_KB_BL_PRESENT";
value = <1>;
- /*
- * Set as default so that unprovisioned
- * configs will run the fan regardless.
- */
- default;
};
};
};
@@ -146,12 +124,6 @@
0 0 1>;
};
- lid_rot_ref1: lid-rotation-ref1 {
- mat33 = <0 1 0
- (-1) 0 0
- 0 0 1>;
- };
-
base_rot_ref: base-rotation-ref {
mat33 = <0 1 0
(-1) 0 0
@@ -178,6 +150,7 @@
&i2c1_0 {
/delete-node/ pi3usb9201@5f;
+ /delete-node/ anx7483@3e;
};
&i2c4_1 {
@@ -195,6 +168,12 @@
&usbc_port1 {
/delete-property/ bc12;
+ /delete-node/ usb-mux-chain-1-anx;
+ /delete-node/ usb-mux-chain-1-ps;
+ usb-mux-chain-1-ps8818 {
+ compatible = "cros-ec,usb-mux-chain";
+ usb-muxes = <&amd_fp6_port1 &ps8818_port1>;
+ };
};
&i2c6_1 {
diff --git a/zephyr/program/skyrim/markarth/src/fan.c b/zephyr/program/skyrim/markarth/src/fan.c
deleted file mode 100644
index 7dc667a6fc..0000000000
--- a/zephyr/program/skyrim/markarth/src/fan.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright 2022 The ChromiumOS Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "cros_board_info.h"
-#include "cros_cbi.h"
-#include "fan.h"
-#include "gpio/gpio.h"
-#include "hooks.h"
-
-#include <zephyr/devicetree.h>
-#include <zephyr/drivers/gpio.h>
-#include <zephyr/logging/log.h>
-
-LOG_MODULE_DECLARE(markarth, CONFIG_SKYRIM_LOG_LEVEL);
-
-/*
- * Skyrim fan support
- */
-test_export_static void fan_init(void)
-{
- int ret;
- uint32_t val;
- uint32_t board_version;
- /*
- * Retrieve the fan config.
- */
- ret = cros_cbi_get_fw_config(FW_FAN, &val);
- if (ret != 0) {
- LOG_ERR("Error retrieving CBI FW_CONFIG field %d", FW_FAN);
- return;
- }
-
- ret = cbi_get_board_version(&board_version);
- if (ret != EC_SUCCESS) {
- LOG_ERR("Error retrieving CBI board version");
- return;
- }
-
- if ((board_version >= 3) && (val != FW_FAN_PRESENT)) {
- /* Disable the fan */
- fan_set_count(0);
- }
-}
-DECLARE_HOOK(HOOK_INIT, fan_init, HOOK_PRIO_POST_FIRST);
-
-/*
- * Pcore OCP support
- * Note: early boards should note enable this interrupt as they are not
- * correctly configured for it.
- */
-__override bool board_supports_pcore_ocp(void)
-{
- uint32_t board_version;
-
- if (cbi_get_board_version(&board_version) == EC_SUCCESS &&
- board_version > 3)
- return true;
-
- return false;
-}
diff --git a/zephyr/program/skyrim/markarth/src/form_factor.c b/zephyr/program/skyrim/markarth/src/form_factor.c
index 1399648e80..5b8b27663d 100644
--- a/zephyr/program/skyrim/markarth/src/form_factor.c
+++ b/zephyr/program/skyrim/markarth/src/form_factor.c
@@ -6,33 +6,34 @@
#include "accelgyro.h"
#include "common.h"
#include "cros_board_info.h"
+#include "cros_cbi.h"
+#include "gpio/gpio_int.h"
#include "hooks.h"
#include "motionsense_sensors.h"
+#include "tablet_mode.h"
#include <zephyr/devicetree.h>
#include <zephyr/logging/log.h>
LOG_MODULE_DECLARE(markarth, CONFIG_SKYRIM_LOG_LEVEL);
-/*
- * Mainboard orientation support.
- */
-
-#define ALT_MAT SENSOR_ROT_STD_REF_NAME(DT_NODELABEL(lid_rot_ref1))
-#define LID_ACCEL SENSOR_ID(DT_NODELABEL(lid_accel))
-
-static void form_factor_init(void)
+static void clamshell_init(void)
{
int ret;
uint32_t val;
- /*
- * If the board version >=4
- * use ver1 rotation matrix.
- */
- ret = cbi_get_board_version(&val);
- if (ret == EC_SUCCESS && val >= 4) {
- LOG_INF("Switching to ver1 lid");
- motion_sensors[LID_ACCEL].rot_standard_ref = &ALT_MAT;
+
+ /* Check the form factor from CBI */
+ ret = cros_cbi_get_fw_config(FW_FORM_FACTOR, &val);
+ if (ret != 0) {
+ LOG_ERR("Cannot get FW_FORM_FACTOR");
+ return;
+ }
+
+ if (val == FW_FF_CLAMSHELL) {
+ motion_sensor_count = 0;
+ gpio_disable_dt_interrupt(
+ GPIO_INT_FROM_NODELABEL(int_accel_gyro));
+ gmr_tablet_switch_disable();
}
}
-DECLARE_HOOK(HOOK_INIT, form_factor_init, HOOK_PRIO_POST_I2C);
+DECLARE_HOOK(HOOK_INIT, clamshell_init, HOOK_PRIO_POST_DEFAULT);
diff --git a/zephyr/program/skyrim/markarth/src/kb_backlight.c b/zephyr/program/skyrim/markarth/src/kb_backlight.c
new file mode 100644
index 0000000000..4f394bd79a
--- /dev/null
+++ b/zephyr/program/skyrim/markarth/src/kb_backlight.c
@@ -0,0 +1,34 @@
+/* Copyright 2023 The ChromiumOS Authors
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "board_config.h"
+#include "common.h"
+#include "cros_board_info.h"
+#include "cros_cbi.h"
+
+#include <zephyr/devicetree.h>
+#include <zephyr/logging/log.h>
+
+LOG_MODULE_DECLARE(markarth, CONFIG_SKYRIM_LOG_LEVEL);
+
+__override uint32_t board_override_feature_flags0(uint32_t flags0)
+{
+ int ret;
+ uint32_t val;
+
+ /*
+ * Remove keyboard backlight feature for devices that don't support it.
+ */
+ ret = cros_cbi_get_fw_config(FW_KB_BL, &val);
+ if (ret != 0) {
+ LOG_ERR("Error retrieving CBI FW_CONFIG field %d", FW_KB_BL);
+ return flags0;
+ }
+
+ if (val == FW_KB_BL_NOT_PRESENT)
+ return (flags0 & ~EC_FEATURE_MASK_0(EC_FEATURE_PWM_KEYB));
+ else
+ return flags0;
+}
diff --git a/zephyr/program/skyrim/markarth/src/usb_mux_config.c b/zephyr/program/skyrim/markarth/src/usb_mux_config.c
index 95b4524b16..b87174f35c 100644
--- a/zephyr/program/skyrim/markarth/src/usb_mux_config.c
+++ b/zephyr/program/skyrim/markarth/src/usb_mux_config.c
@@ -56,59 +56,6 @@ int board_c0_amd_fp6_mux_set(const struct usb_mux *me, mux_state_t mux_state)
return EC_SUCCESS;
}
-int board_anx7483_c1_mux_set(const struct usb_mux *me, mux_state_t mux_state)
-{
- bool flipped = mux_state & USB_PD_MUX_POLARITY_INVERTED;
-
- /* Set the SBU polarity mux */
- RETURN_ERROR(ioex_set_flip(me->usb_port, mux_state));
-
- /* Remove flipped from the state for easier compraisons */
- mux_state = mux_state & ~USB_PD_MUX_POLARITY_INVERTED;
-
- RETURN_ERROR(anx7483_set_default_tuning(me, mux_state));
-
- if (mux_state == USB_PD_MUX_USB_ENABLED) {
- RETURN_ERROR(anx7483_set_eq(me, ANX7483_PIN_URX1,
- ANX7483_EQ_SETTING_12_5DB));
- RETURN_ERROR(anx7483_set_eq(me, ANX7483_PIN_URX2,
- ANX7483_EQ_SETTING_12_5DB));
- RETURN_ERROR(anx7483_set_eq(me, ANX7483_PIN_DRX1,
- ANX7483_EQ_SETTING_12_5DB));
- RETURN_ERROR(anx7483_set_eq(me, ANX7483_PIN_DRX2,
- ANX7483_EQ_SETTING_12_5DB));
- } else if (mux_state == USB_PD_MUX_DP_ENABLED) {
- RETURN_ERROR(anx7483_set_eq(me, ANX7483_PIN_URX1,
- ANX7483_EQ_SETTING_12_5DB));
- RETURN_ERROR(anx7483_set_eq(me, ANX7483_PIN_URX2,
- ANX7483_EQ_SETTING_12_5DB));
- RETURN_ERROR(anx7483_set_eq(me, ANX7483_PIN_UTX1,
- ANX7483_EQ_SETTING_12_5DB));
- RETURN_ERROR(anx7483_set_eq(me, ANX7483_PIN_UTX2,
- ANX7483_EQ_SETTING_12_5DB));
- } else if (mux_state == USB_PD_MUX_DOCK && !flipped) {
- RETURN_ERROR(anx7483_set_eq(me, ANX7483_PIN_URX1,
- ANX7483_EQ_SETTING_12_5DB));
- RETURN_ERROR(anx7483_set_eq(me, ANX7483_PIN_URX2,
- ANX7483_EQ_SETTING_12_5DB));
- RETURN_ERROR(anx7483_set_eq(me, ANX7483_PIN_DRX1,
- ANX7483_EQ_SETTING_12_5DB));
- RETURN_ERROR(anx7483_set_eq(me, ANX7483_PIN_UTX2,
- ANX7483_EQ_SETTING_12_5DB));
- } else if (mux_state == USB_PD_MUX_DOCK && flipped) {
- RETURN_ERROR(anx7483_set_eq(me, ANX7483_PIN_URX1,
- ANX7483_EQ_SETTING_12_5DB));
- RETURN_ERROR(anx7483_set_eq(me, ANX7483_PIN_URX2,
- ANX7483_EQ_SETTING_12_5DB));
- RETURN_ERROR(anx7483_set_eq(me, ANX7483_PIN_UTX1,
- ANX7483_EQ_SETTING_12_5DB));
- RETURN_ERROR(anx7483_set_eq(me, ANX7483_PIN_DRX2,
- ANX7483_EQ_SETTING_12_5DB));
- }
-
- return EC_SUCCESS;
-}
-
int board_c1_ps8818_mux_set(const struct usb_mux *me, mux_state_t mux_state)
{
CPRINTSUSB("C1: PS8818 mux using default tuning");
@@ -121,22 +68,3 @@ int board_c1_ps8818_mux_set(const struct usb_mux *me, mux_state_t mux_state)
return 0;
}
-
-static void setup_mux(void)
-{
- uint32_t val;
-
- if (cros_cbi_get_fw_config(FW_IO_DB, &val) != 0)
- CPRINTSUSB("Error finding FW_DB_IO in CBI FW_CONFIG");
- /* Val will have our dts default on error, so continue setup */
-
- if (val == FW_IO_DB_PS8811_PS8818) {
- CPRINTSUSB("C1: Setting PS8818 mux");
- USB_MUX_ENABLE_ALTERNATIVE(usb_mux_chain_ps8818_port1);
- } else if (val == FW_IO_DB_NONE_ANX7483) {
- CPRINTSUSB("C1: Setting ANX7483 mux");
- } else {
- CPRINTSUSB("Unexpected DB_IO board: %d", val);
- }
-}
-DECLARE_HOOK(HOOK_INIT, setup_mux, HOOK_PRIO_INIT_I2C);
diff --git a/zephyr/test/skyrim/testcase.yaml b/zephyr/test/skyrim/testcase.yaml
index a59ba79371..43ea40da6f 100644
--- a/zephyr/test/skyrim/testcase.yaml
+++ b/zephyr/test/skyrim/testcase.yaml
@@ -56,11 +56,6 @@ tests:
extra_configs:
- CONFIG_TEST_BOARD_MARKARTH=y
- skyrim.markarth.fan:
- extra_configs:
- - CONFIG_TEST_BOARD_MARKARTH=y
- - CONFIG_TEST_BOARD_FAN=y
-
skyrim.markarth.ppc_config:
extra_configs:
- CONFIG_TEST_BOARD_MARKARTH=y