summaryrefslogtreecommitdiff
path: root/zephyr/program/nissa/joxer
diff options
context:
space:
mode:
Diffstat (limited to 'zephyr/program/nissa/joxer')
-rw-r--r--zephyr/program/nissa/joxer/cbi.dtsi32
-rw-r--r--zephyr/program/nissa/joxer/generated.dtsi260
-rw-r--r--zephyr/program/nissa/joxer/joxer_vif.xml346
-rw-r--r--zephyr/program/nissa/joxer/keyboard.dtsi22
-rw-r--r--zephyr/program/nissa/joxer/motionsense.dtsi148
-rw-r--r--zephyr/program/nissa/joxer/overlay.dtsi459
-rw-r--r--zephyr/program/nissa/joxer/power_signals.dtsi223
-rw-r--r--zephyr/program/nissa/joxer/project.conf19
-rw-r--r--zephyr/program/nissa/joxer/project.overlay14
-rw-r--r--zephyr/program/nissa/joxer/pwm_leds.dtsi60
-rw-r--r--zephyr/program/nissa/joxer/src/charger.c56
-rw-r--r--zephyr/program/nissa/joxer/src/fan.c42
-rw-r--r--zephyr/program/nissa/joxer/src/keyboard.c68
-rw-r--r--zephyr/program/nissa/joxer/src/led.c181
-rw-r--r--zephyr/program/nissa/joxer/src/usbc.c368
15 files changed, 0 insertions, 2298 deletions
diff --git a/zephyr/program/nissa/joxer/cbi.dtsi b/zephyr/program/nissa/joxer/cbi.dtsi
deleted file mode 100644
index afbd125b32..0000000000
--- a/zephyr/program/nissa/joxer/cbi.dtsi
+++ /dev/null
@@ -1,32 +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.
- */
-
-/ {
- nissa-fw-config {
- compatible = "cros-ec,cbi-fw-config";
-
- /*
- * FW_CONFIG field to indicate which keyboard layout
- * should be used.
- */
- keyboard {
- enum-name = "FW_KB_LAYOUT";
- start = <3>;
- size = <2>;
-
- layout-1 {
- compatible = "cros-ec,cbi-fw-config-value";
- enum-name = "FW_KB_LAYOUT_DEFAULT";
- value = <0>;
- default;
- };
- layout-2 {
- compatible = "cros-ec,cbi-fw-config-value";
- enum-name = "FW_KB_LAYOUT_US2";
- value = <1>;
- };
- };
- };
-};
diff --git a/zephyr/program/nissa/joxer/generated.dtsi b/zephyr/program/nissa/joxer/generated.dtsi
deleted file mode 100644
index 22214b9726..0000000000
--- a/zephyr/program/nissa/joxer/generated.dtsi
+++ /dev/null
@@ -1,260 +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.
- *
- * This file is auto-generated - do not edit!
- */
-
-/ {
-
- named-adc-channels {
- compatible = "named-adc-channels";
-
- adc_ec_vsense_pp1050_proc: ec_vsense_pp1050_proc {
- enum-name = "ADC_PP1050_PROC";
- io-channels = <&adc0 14>;
- };
- adc_ec_vsense_pp3300_s5: ec_vsense_pp3300_s5 {
- enum-name = "ADC_PP3300_S5";
- io-channels = <&adc0 0>;
- };
- adc_temp_sensor_1: temp_sensor_1 {
- enum-name = "ADC_TEMP_SENSOR_1";
- io-channels = <&adc0 2>;
- };
- adc_temp_sensor_2: temp_sensor_2 {
- enum-name = "ADC_TEMP_SENSOR_2";
- io-channels = <&adc0 3>;
- };
- adc_temp_sensor_3: temp_sensor_3 {
- enum-name = "ADC_TEMP_SENSOR_3";
- io-channels = <&adc0 13>;
- };
- };
-
- named-gpios {
- compatible = "named-gpios";
-
- gpio_acc_int_l: acc_int_l {
- gpios = <&gpioc 0 GPIO_INPUT>;
- };
- gpio_all_sys_pwrgd: all_sys_pwrgd {
- gpios = <&gpiob 7 GPIO_INPUT>;
- };
- gpio_ccd_mode_odl: ccd_mode_odl {
- gpios = <&gpioh 5 GPIO_INPUT>;
- enum-name = "GPIO_CCD_MODE_ODL";
- };
- gpio_cpu_c10_gate_l: cpu_c10_gate_l {
- gpios = <&gpiog 1 GPIO_INPUT>;
- };
- gpio_ec_battery_pres_odl: ec_battery_pres_odl {
- gpios = <&gpioi 4 GPIO_INPUT>;
- enum-name = "GPIO_BATT_PRES_ODL";
- };
- gpio_ec_cbi_wp: ec_cbi_wp {
- gpios = <&gpioj 5 GPIO_OUTPUT>;
- };
- gpio_ec_edp_bl_en_od: ec_edp_bl_en_od {
- gpios = <&gpiok 4 GPIO_ODR_HIGH>;
- enum-name = "GPIO_ENABLE_BACKLIGHT";
- };
- gpio_ec_entering_rw: ec_entering_rw {
- gpios = <&gpioc 7 GPIO_OUTPUT>;
- enum-name = "GPIO_ENTERING_RW";
- };
- gpio_ec_gsc_packet_mode: ec_gsc_packet_mode {
- gpios = <&gpioh 1 GPIO_OUTPUT>;
- enum-name = "GPIO_PACKET_MODE_EN";
- };
- gpio_ec_pch_wake_odl: ec_pch_wake_odl {
- gpios = <&gpiob 2 GPIO_ODR_LOW>;
- };
- gpio_ec_prochot_odl: ec_prochot_odl {
- gpios = <&gpioi 1 GPIO_ODR_HIGH>;
- };
- gpio_ec_soc_dsw_pwrok: ec_soc_dsw_pwrok {
- gpios = <&gpiol 7 GPIO_OUTPUT>;
- };
- gpio_ec_soc_hdmi_hpd: ec_soc_hdmi_hpd {
- gpios = <&gpiok 7 GPIO_OUTPUT>;
- };
- gpio_ec_soc_int_odl: ec_soc_int_odl {
- gpios = <&gpiod 5 GPIO_ODR_HIGH>;
- enum-name = "GPIO_EC_INT_L";
- };
- gpio_ec_soc_pch_pwrok_od: ec_soc_pch_pwrok_od {
- gpios = <&gpiod 6 GPIO_ODR_HIGH>;
- };
- gpio_ec_soc_pwr_btn_odl: ec_soc_pwr_btn_odl {
- gpios = <&gpiob 6 GPIO_ODR_HIGH>;
- enum-name = "GPIO_PCH_PWRBTN_L";
- };
- gpio_ec_soc_rsmrst_l: ec_soc_rsmrst_l {
- gpios = <&gpioh 0 GPIO_OUTPUT>;
- };
- gpio_ec_soc_rtcrst: ec_soc_rtcrst {
- gpios = <&gpiok 2 GPIO_OUTPUT>;
- };
- gpio_ec_soc_sys_pwrok: ec_soc_sys_pwrok {
- gpios = <&gpiof 2 GPIO_OUTPUT>;
- };
- gpio_ec_soc_vccst_pwrgd_od: ec_soc_vccst_pwrgd_od {
- gpios = <&gpioe 5 GPIO_ODR_HIGH>;
- };
- gpio_ec_wp_odl: ec_wp_odl {
- gpios = <&gpioa 6 (GPIO_INPUT | GPIO_ACTIVE_LOW)>;
- };
- gpio_en_kb_bl: en_kb_bl {
- gpios = <&gpioj 3 GPIO_OUTPUT>;
- enum-name = "GPIO_EN_KEYBOARD_BACKLIGHT";
- };
- gpio_en_pp3300_s5: en_pp3300_s5 {
- gpios = <&gpioc 5 GPIO_OUTPUT>;
- enum-name = "GPIO_TEMP_SENSOR_POWER";
- };
- gpio_en_pp5000_pen_x: en_pp5000_pen_x {
- gpios = <&gpiob 5 GPIO_OUTPUT>;
- };
- gpio_en_pp5000_s5: en_pp5000_s5 {
- gpios = <&gpiok 5 GPIO_OUTPUT>;
- };
- gpio_en_slp_z: en_slp_z {
- gpios = <&gpiok 3 GPIO_OUTPUT>;
- };
- gpio_en_usb_a0_vbus: en_usb_a0_vbus {
- gpios = <&gpiol 6 GPIO_OUTPUT>;
- };
- gpio_en_usb_c0_cc1_vconn: en_usb_c0_cc1_vconn {
- gpios = <&gpioh 4 GPIO_OUTPUT>;
- };
- gpio_en_usb_c0_cc2_vconn: en_usb_c0_cc2_vconn {
- gpios = <&gpioh 6 GPIO_OUTPUT>;
- };
- gpio_gsc_ec_pwr_btn_odl: gsc_ec_pwr_btn_odl {
- gpios = <&gpioe 2 GPIO_INPUT_PULL_UP>;
- enum-name = "GPIO_POWER_BUTTON_L";
- };
- gpio_hdmi_sel: hdmi_sel {
- gpios = <&gpioc 6 GPIO_OUTPUT>;
- };
- gpio_imu_int_l: imu_int_l {
- gpios = <&gpioj 0 GPIO_INPUT>;
- };
- gpio_imvp91_vrrdy_od: imvp91_vrrdy_od {
- gpios = <&gpioj 4 GPIO_INPUT>;
- };
- gpio_lid_open: lid_open {
- gpios = <&gpiof 3 GPIO_INPUT>;
- enum-name = "GPIO_LID_OPEN";
- };
- gpio_pen_detect_odl: pen_detect_odl {
- gpios = <&gpioj 1 GPIO_INPUT_PULL_UP>;
- };
- gpio_pg_pp1050_mem_s3_od: pg_pp1050_mem_s3_od {
- gpios = <&gpiod 3 GPIO_INPUT>;
- };
- gpio_pg_pp5000_s5_od: pg_pp5000_s5_od {
- gpios = <&gpioe 3 GPIO_INPUT>;
- };
- gpio_rsmrst_pwrgd_l: rsmrst_pwrgd_l {
- gpios = <&gpioe 1 GPIO_INPUT_PULL_UP>;
- };
- gpio_slp_s0_l: slp_s0_l {
- gpios = <&gpioe 4 GPIO_INPUT>;
- };
- gpio_slp_s3_l: slp_s3_l {
- gpios = <&gpioh 3 GPIO_INPUT>;
- };
- gpio_slp_s4_l: slp_s4_l {
- gpios = <&gpioi 5 GPIO_INPUT>;
- };
- gpio_slp_sus_l: slp_sus_l {
- gpios = <&gpiog 2 GPIO_INPUT>;
- };
- gpio_sub_usb_a1_ilimit_sdp: sub_usb_a1_ilimit_sdp {
- gpios = <&gpiof 1 GPIO_OUTPUT>;
- enum-name = "GPIO_USB2_ILIM_SEL";
- };
- gpio_sys_rst_odl: sys_rst_odl {
- gpios = <&gpiod 1 GPIO_ODR_HIGH>;
- };
- gpio_tablet_mode_l: tablet_mode_l {
- gpios = <&gpioj 7 GPIO_INPUT>;
- enum-name = "GPIO_TABLET_MODE_L";
- };
- gpio_usb_a0_ilimit_sdp: usb_a0_ilimit_sdp {
- gpios = <&gpiol 5 GPIO_OUTPUT>;
- enum-name = "GPIO_USB1_ILIM_SEL";
- };
- gpio_usb_c0_frs: usb_c0_frs {
- gpios = <&gpioc 4 GPIO_OUTPUT>;
- };
- gpio_usb_c0_int_odl: usb_c0_int_odl {
- gpios = <&gpiok 0 GPIO_INPUT_PULL_UP>;
- };
- gpio_vccin_aux_vid0: vccin_aux_vid0 {
- gpios = <&gpiod 0 GPIO_INPUT>;
- };
- gpio_vccin_aux_vid1: vccin_aux_vid1 {
- gpios = <&gpiok 1 GPIO_INPUT>;
- };
- gpio_voldn_btn_odl: voldn_btn_odl {
- gpios = <&gpioi 6 GPIO_INPUT_PULL_UP>;
- enum-name = "GPIO_VOLUME_DOWN_L";
- };
- gpio_volup_btn_odl: volup_btn_odl {
- gpios = <&gpioi 7 GPIO_INPUT_PULL_UP>;
- enum-name = "GPIO_VOLUME_UP_L";
- };
- };
-
- named-i2c-ports {
- compatible = "named-i2c-ports";
-
- i2c_ec_i2c_eeprom: ec_i2c_eeprom {
- i2c-port = <&i2c0>;
- enum-names = "I2C_PORT_EEPROM";
- };
- i2c_ec_i2c_batt: ec_i2c_batt {
- i2c-port = <&i2c1>;
- enum-names = "I2C_PORT_BATTERY";
- };
- i2c_ec_i2c_sensor: ec_i2c_sensor {
- i2c-port = <&i2c2>;
- enum-names = "I2C_PORT_SENSOR";
- };
- i2c_ec_i2c_sub_usb_c1: ec_i2c_sub_usb_c1 {
- i2c-port = <&i2c4>;
- enum-names = "I2C_PORT_USB_C1_TCPC";
- };
- i2c_ec_i2c_usb_c0: ec_i2c_usb_c0 {
- i2c-port = <&i2c5>;
- enum-names = "I2C_PORT_USB_C0_TCPC";
- };
- };
-};
-
-&adc0 {
- status = "okay";
-};
-
-&i2c0 {
- status = "okay";
-};
-
-&i2c1 {
- status = "okay";
-};
-
-&i2c2 {
- status = "okay";
-};
-
-&i2c4 {
- status = "okay";
-};
-
-&i2c5 {
- status = "okay";
-};
diff --git a/zephyr/program/nissa/joxer/joxer_vif.xml b/zephyr/program/nissa/joxer/joxer_vif.xml
deleted file mode 100644
index cfbce5623a..0000000000
--- a/zephyr/program/nissa/joxer/joxer_vif.xml
+++ /dev/null
@@ -1,346 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<vif:VIF xmlns:opt="http://usb.org/VendorInfoFileOptionalContent.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vif="http://usb.org/VendorInfoFile.xsd">
- <vif:VIF_Specification>3.20</vif:VIF_Specification>
- <vif:VIF_App>
- <vif:Vendor>USB-IF</vif:Vendor>
- <vif:Name>VIF Editor</vif:Name>
- <vif:Version>3.3.0.0</vif:Version>
- </vif:VIF_App>
- <vif:Vendor_Name>Google</vif:Vendor_Name>
- <vif:Model_Part_Number>Joxer</vif:Model_Part_Number>
- <vif:Product_Revision>1</vif:Product_Revision>
- <vif:TID>0</vif:TID>
- <vif:VIF_Product_Type value="0">Port Product</vif:VIF_Product_Type>
- <vif:Certification_Type value="1">Reference Platform</vif:Certification_Type>
- <vif:Product>
- <!--Product Level Content:-->
- </vif:Product>
- <vif:Component>
- <!--Component 0: Port 0-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;Component-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:Port_Label>0</vif:Port_Label>
- <vif:Connector_Type value="2">Type-C®</vif:Connector_Type>
- <vif:USB4_Supported value="false" />
- <vif:USB_PD_Support value="true" />
- <vif:PD_Port_Type value="4">DRP</vif:PD_Port_Type>
- <vif:Type_C_State_Machine value="2">DRP</vif:Type_C_State_Machine>
- <vif:Port_Battery_Powered value="true" />
- <vif:BC_1_2_Support value="3">Both</vif:BC_1_2_Support>
- <vif:Captive_Cable value="false" />
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;General PD-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:PD_Spec_Revision_Major value="3" />
- <vif:PD_Spec_Revision_Minor value="1" />
- <vif:PD_Spec_Version_Major value="1" />
- <vif:PD_Spec_Version_Minor value="3" />
- <vif:PD_Specification_Revision value="2">Revision 3</vif:PD_Specification_Revision>
- <vif:SOP_Capable value="true" />
- <vif:SOP_P_Capable value="true" />
- <vif:SOP_PP_Capable value="true" />
- <vif:SOP_P_Debug_Capable value="false" />
- <vif:SOP_PP_Debug_Capable value="false" />
- <vif:Manufacturer_Info_Supported_Port value="false" />
- <vif:Chunking_Implemented_SOP value="true" />
- <vif:Unchunked_Extended_Messages_Supported value="false" />
- <vif:Security_Msgs_Supported_SOP value="false" />
- <vif:Unconstrained_Power value="false" />
- <vif:Num_Fixed_Batteries value="1" />
- <vif:Num_Swappable_Battery_Slots value="1" />
- <vif:ID_Header_Connector_Type_SOP value="2">USB Type-C® Receptacle</vif:ID_Header_Connector_Type_SOP>
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;PD Capabilities-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:USB_Comms_Capable value="true" />
- <vif:DR_Swap_To_DFP_Supported value="true" />
- <vif:DR_Swap_To_UFP_Supported value="false" />
- <vif:VCONN_Swap_To_On_Supported value="true" />
- <vif:VCONN_Swap_To_Off_Supported value="true" />
- <vif:Responds_To_Discov_SOP_UFP value="false" />
- <vif:Responds_To_Discov_SOP_DFP value="true" />
- <vif:Attempts_Discov_SOP value="true" />
- <vif:Power_Interruption_Available value="0">No Interruption Possible</vif:Power_Interruption_Available>
- <vif:Data_Reset_Supported value="false" />
- <vif:Enter_USB_Supported value="false" />
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;USB Type-C®-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:Type_C_Can_Act_As_Host value="true" />
- <vif:Type_C_Can_Act_As_Device value="false" />
- <vif:Type_C_Implements_Try_SRC value="true" />
- <vif:Type_C_Implements_Try_SNK value="false" />
- <vif:Type_C_Supports_Audio_Accessory value="false" />
- <vif:Type_C_Is_VCONN_Powered_Accessory value="false" />
- <vif:Type_C_Is_Debug_Target_SRC value="true" />
- <vif:Type_C_Is_Debug_Target_SNK value="true" />
- <vif:RP_Value value="1">1.5A</vif:RP_Value>
- <vif:Type_C_Port_On_Hub value="false" />
- <vif:Type_C_Power_Source value="2">Both</vif:Type_C_Power_Source>
- <vif:Type_C_Sources_VCONN value="true" />
- <vif:Type_C_Is_Alt_Mode_Controller value="true" />
- <vif:Type_C_Is_Alt_Mode_Adapter value="false" />
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;Product Power-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:Product_Total_Source_Power_mW value="15000">15000 mW</vif:Product_Total_Source_Power_mW>
- <vif:Port_Source_Power_Type value="0">Assured</vif:Port_Source_Power_Type>
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;USB Host-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:Host_Supports_USB_Data value="true" />
- <vif:Host_Speed value="1">USB 3.2 Gen 1x1</vif:Host_Speed>
- <vif:Host_Contains_Captive_Retimer value="false" />
- <vif:Host_Truncates_DP_For_tDHPResponse value="false" />
- <vif:Host_Is_Embedded value="false" />
- <vif:Host_Suspend_Supported value="true" />
- <vif:Is_DFP_On_Hub value="false" />
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;Battery Charging 1.2-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:BC_1_2_Charging_Port_Type value="1">CDP</vif:BC_1_2_Charging_Port_Type>
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;PD Source-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:PD_Power_As_Source value="15000">15000 mW</vif:PD_Power_As_Source>
- <vif:EPR_Supported_As_Src value="false" />
- <vif:USB_Suspend_May_Be_Cleared value="false" />
- <vif:Sends_Pings value="false" />
- <vif:FR_Swap_Type_C_Current_Capability_As_Initial_Sink value="0">FR_Swap not supported</vif:FR_Swap_Type_C_Current_Capability_As_Initial_Sink>
- <vif:Master_Port value="false" />
- <vif:Num_Src_PDOs value="1" />
- <vif:PD_OC_Protection value="true" />
- <vif:PD_OCP_Method value="0">Over-Current Response</vif:PD_OCP_Method>
- <!--Bundle: SrcPdoList-->
- <vif:SrcPdoList>
- <vif:SrcPDO>
- <!--Source PDO 1-->
- <vif:Src_PDO_Supply_Type value="0">Fixed</vif:Src_PDO_Supply_Type>
- <vif:Src_PDO_Peak_Current value="0">100% IOC</vif:Src_PDO_Peak_Current>
- <vif:Src_PDO_Voltage value="100">5000 mV</vif:Src_PDO_Voltage>
- <vif:Src_PDO_Max_Current value="300">3000 mA</vif:Src_PDO_Max_Current>
- <vif:Src_PD_OCP_OC_Debounce value="0">0 msec</vif:Src_PD_OCP_OC_Debounce>
- <vif:Src_PD_OCP_OC_Threshold value="300">3000 mA</vif:Src_PD_OCP_OC_Threshold>
- </vif:SrcPDO>
- </vif:SrcPdoList>
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;PD Sink-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:PD_Power_As_Sink value="45000">45000 mW</vif:PD_Power_As_Sink>
- <vif:EPR_Supported_As_Snk value="false" />
- <vif:No_USB_Suspend_May_Be_Set value="true" />
- <vif:GiveBack_May_Be_Set value="false" />
- <vif:Higher_Capability_Set value="false" />
- <vif:FR_Swap_Reqd_Type_C_Current_As_Initial_Source value="0">FR_Swap not supported</vif:FR_Swap_Reqd_Type_C_Current_As_Initial_Source>
- <vif:Num_Snk_PDOs value="3" />
- <!--Bundle: SnkPdoList-->
- <vif:SnkPdoList>
- <vif:SnkPDO>
- <!--Sink PDO 1-->
- <vif:Snk_PDO_Supply_Type value="0">Fixed</vif:Snk_PDO_Supply_Type>
- <vif:Snk_PDO_Voltage value="100">5000 mV</vif:Snk_PDO_Voltage>
- <vif:Snk_PDO_Op_Current value="300">3000 mA</vif:Snk_PDO_Op_Current>
- </vif:SnkPDO>
- <vif:SnkPDO>
- <!--Sink PDO 2-->
- <vif:Snk_PDO_Supply_Type value="1">Battery</vif:Snk_PDO_Supply_Type>
- <vif:Snk_PDO_Op_Power value="60">15000 mW</vif:Snk_PDO_Op_Power>
- <vif:Snk_PDO_Min_Voltage value="95">4750 mV</vif:Snk_PDO_Min_Voltage>
- <vif:Snk_PDO_Max_Voltage value="300">15000 mV</vif:Snk_PDO_Max_Voltage>
- </vif:SnkPDO>
- <vif:SnkPDO>
- <!--Sink PDO 3-->
- <vif:Snk_PDO_Supply_Type value="2">Variable</vif:Snk_PDO_Supply_Type>
- <vif:Snk_PDO_Min_Voltage value="95">4750 mV</vif:Snk_PDO_Min_Voltage>
- <vif:Snk_PDO_Max_Voltage value="300">15000 mV</vif:Snk_PDO_Max_Voltage>
- <vif:Snk_PDO_Op_Current value="300">3000 mA</vif:Snk_PDO_Op_Current>
- </vif:SnkPDO>
- </vif:SnkPdoList>
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;Dual Role-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:Accepts_PR_Swap_As_Src value="true" />
- <vif:Accepts_PR_Swap_As_Snk value="true" />
- <vif:Requests_PR_Swap_As_Src value="true" />
- <vif:Requests_PR_Swap_As_Snk value="true" />
- <vif:FR_Swap_Supported_As_Initial_Sink value="false" />
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;SOP Discover ID-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:XID_SOP value="0" />
- <vif:Data_Capable_As_USB_Host_SOP value="true" />
- <vif:Data_Capable_As_USB_Device_SOP value="false" />
- <vif:Product_Type_UFP_SOP value="0">Undefined</vif:Product_Type_UFP_SOP>
- <vif:Product_Type_DFP_SOP value="2">PDUSB Host</vif:Product_Type_DFP_SOP>
- <vif:DFP_VDO_Port_Number value="0" />
- <vif:Modal_Operation_Supported_SOP value="false" />
- <vif:USB_VID_SOP value="6353">18D1</vif:USB_VID_SOP>
- <vif:PID_SOP value="20570">505A</vif:PID_SOP>
- <vif:bcdDevice_SOP value="0">0000</vif:bcdDevice_SOP>
- </vif:Component>
- <vif:Component>
- <!--Component 1: Port 1-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;Component-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:Port_Label>1</vif:Port_Label>
- <vif:Connector_Type value="2">Type-C®</vif:Connector_Type>
- <vif:USB4_Supported value="false" />
- <vif:USB_PD_Support value="true" />
- <vif:PD_Port_Type value="4">DRP</vif:PD_Port_Type>
- <vif:Type_C_State_Machine value="2">DRP</vif:Type_C_State_Machine>
- <vif:Port_Battery_Powered value="true" />
- <vif:BC_1_2_Support value="3">Both</vif:BC_1_2_Support>
- <vif:Captive_Cable value="false" />
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;General PD-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:PD_Spec_Revision_Major value="3" />
- <vif:PD_Spec_Revision_Minor value="1" />
- <vif:PD_Spec_Version_Major value="1" />
- <vif:PD_Spec_Version_Minor value="3" />
- <vif:PD_Specification_Revision value="2">Revision 3</vif:PD_Specification_Revision>
- <vif:SOP_Capable value="true" />
- <vif:SOP_P_Capable value="true" />
- <vif:SOP_PP_Capable value="true" />
- <vif:SOP_P_Debug_Capable value="false" />
- <vif:SOP_PP_Debug_Capable value="false" />
- <vif:Manufacturer_Info_Supported_Port value="false" />
- <vif:Chunking_Implemented_SOP value="true" />
- <vif:Unchunked_Extended_Messages_Supported value="false" />
- <vif:Security_Msgs_Supported_SOP value="false" />
- <vif:Unconstrained_Power value="false" />
- <vif:Num_Fixed_Batteries value="1" />
- <vif:Num_Swappable_Battery_Slots value="1" />
- <vif:ID_Header_Connector_Type_SOP value="2">USB Type-C® Receptacle</vif:ID_Header_Connector_Type_SOP>
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;PD Capabilities-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:USB_Comms_Capable value="true" />
- <vif:DR_Swap_To_DFP_Supported value="true" />
- <vif:DR_Swap_To_UFP_Supported value="false" />
- <vif:VCONN_Swap_To_On_Supported value="true" />
- <vif:VCONN_Swap_To_Off_Supported value="true" />
- <vif:Responds_To_Discov_SOP_UFP value="false" />
- <vif:Responds_To_Discov_SOP_DFP value="true" />
- <vif:Attempts_Discov_SOP value="true" />
- <vif:Power_Interruption_Available value="0">No Interruption Possible</vif:Power_Interruption_Available>
- <vif:Data_Reset_Supported value="false" />
- <vif:Enter_USB_Supported value="false" />
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;USB Type-C®-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:Type_C_Can_Act_As_Host value="true" />
- <vif:Type_C_Can_Act_As_Device value="false" />
- <vif:Type_C_Implements_Try_SRC value="true" />
- <vif:Type_C_Implements_Try_SNK value="false" />
- <vif:Type_C_Supports_Audio_Accessory value="false" />
- <vif:Type_C_Is_VCONN_Powered_Accessory value="false" />
- <vif:Type_C_Is_Debug_Target_SRC value="true" />
- <vif:Type_C_Is_Debug_Target_SNK value="true" />
- <vif:RP_Value value="1">1.5A</vif:RP_Value>
- <vif:Type_C_Port_On_Hub value="false" />
- <vif:Type_C_Power_Source value="2">Both</vif:Type_C_Power_Source>
- <vif:Type_C_Sources_VCONN value="true" />
- <vif:Type_C_Is_Alt_Mode_Controller value="true" />
- <vif:Type_C_Is_Alt_Mode_Adapter value="false" />
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;Product Power-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:Product_Total_Source_Power_mW value="15000">15000 mW</vif:Product_Total_Source_Power_mW>
- <vif:Port_Source_Power_Type value="0">Assured</vif:Port_Source_Power_Type>
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;USB Host-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:Host_Supports_USB_Data value="true" />
- <vif:Host_Speed value="1">USB 3.2 Gen 1x1</vif:Host_Speed>
- <vif:Host_Contains_Captive_Retimer value="true" />
- <vif:Host_Truncates_DP_For_tDHPResponse value="false" />
- <vif:Host_Is_Embedded value="false" />
- <vif:Host_Suspend_Supported value="true" />
- <vif:Is_DFP_On_Hub value="false" />
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;Battery Charging 1.2-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:BC_1_2_Charging_Port_Type value="1">CDP</vif:BC_1_2_Charging_Port_Type>
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;PD Source-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:PD_Power_As_Source value="15000">15000 mW</vif:PD_Power_As_Source>
- <vif:EPR_Supported_As_Src value="false" />
- <vif:USB_Suspend_May_Be_Cleared value="false" />
- <vif:Sends_Pings value="false" />
- <vif:FR_Swap_Type_C_Current_Capability_As_Initial_Sink value="0">FR_Swap not supported</vif:FR_Swap_Type_C_Current_Capability_As_Initial_Sink>
- <vif:Master_Port value="false" />
- <vif:Num_Src_PDOs value="1" />
- <vif:PD_OC_Protection value="true" />
- <vif:PD_OCP_Method value="0">Over-Current Response</vif:PD_OCP_Method>
- <!--Bundle: SrcPdoList-->
- <vif:SrcPdoList>
- <vif:SrcPDO>
- <!--Source PDO 1-->
- <vif:Src_PDO_Supply_Type value="0">Fixed</vif:Src_PDO_Supply_Type>
- <vif:Src_PDO_Peak_Current value="0">100% IOC</vif:Src_PDO_Peak_Current>
- <vif:Src_PDO_Voltage value="100">5000 mV</vif:Src_PDO_Voltage>
- <vif:Src_PDO_Max_Current value="300">3000 mA</vif:Src_PDO_Max_Current>
- <vif:Src_PD_OCP_OC_Debounce value="0">0 msec</vif:Src_PD_OCP_OC_Debounce>
- <vif:Src_PD_OCP_OC_Threshold value="300">3000 mA</vif:Src_PD_OCP_OC_Threshold>
- </vif:SrcPDO>
- </vif:SrcPdoList>
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;PD Sink-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:PD_Power_As_Sink value="45000">45000 mW</vif:PD_Power_As_Sink>
- <vif:EPR_Supported_As_Snk value="false" />
- <vif:No_USB_Suspend_May_Be_Set value="true" />
- <vif:GiveBack_May_Be_Set value="false" />
- <vif:Higher_Capability_Set value="false" />
- <vif:FR_Swap_Reqd_Type_C_Current_As_Initial_Source value="0">FR_Swap not supported</vif:FR_Swap_Reqd_Type_C_Current_As_Initial_Source>
- <vif:Num_Snk_PDOs value="3" />
- <!--Bundle: SnkPdoList-->
- <vif:SnkPdoList>
- <vif:SnkPDO>
- <!--Sink PDO 1-->
- <vif:Snk_PDO_Supply_Type value="0">Fixed</vif:Snk_PDO_Supply_Type>
- <vif:Snk_PDO_Voltage value="100">5000 mV</vif:Snk_PDO_Voltage>
- <vif:Snk_PDO_Op_Current value="300">3000 mA</vif:Snk_PDO_Op_Current>
- </vif:SnkPDO>
- <vif:SnkPDO>
- <!--Sink PDO 2-->
- <vif:Snk_PDO_Supply_Type value="1">Battery</vif:Snk_PDO_Supply_Type>
- <vif:Snk_PDO_Op_Power value="60">15000 mW</vif:Snk_PDO_Op_Power>
- <vif:Snk_PDO_Min_Voltage value="95">4750 mV</vif:Snk_PDO_Min_Voltage>
- <vif:Snk_PDO_Max_Voltage value="300">15000 mV</vif:Snk_PDO_Max_Voltage>
- </vif:SnkPDO>
- <vif:SnkPDO>
- <!--Sink PDO 3-->
- <vif:Snk_PDO_Supply_Type value="2">Variable</vif:Snk_PDO_Supply_Type>
- <vif:Snk_PDO_Min_Voltage value="95">4750 mV</vif:Snk_PDO_Min_Voltage>
- <vif:Snk_PDO_Max_Voltage value="300">15000 mV</vif:Snk_PDO_Max_Voltage>
- <vif:Snk_PDO_Op_Current value="300">3000 mA</vif:Snk_PDO_Op_Current>
- </vif:SnkPDO>
- </vif:SnkPdoList>
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;Dual Role-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:Accepts_PR_Swap_As_Src value="true" />
- <vif:Accepts_PR_Swap_As_Snk value="true" />
- <vif:Requests_PR_Swap_As_Src value="true" />
- <vif:Requests_PR_Swap_As_Snk value="true" />
- <vif:FR_Swap_Supported_As_Initial_Sink value="false" />
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <!--;SOP Discover ID-->
- <!--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-->
- <vif:XID_SOP value="0" />
- <vif:Data_Capable_As_USB_Host_SOP value="true" />
- <vif:Data_Capable_As_USB_Device_SOP value="false" />
- <vif:Product_Type_UFP_SOP value="0">Undefined</vif:Product_Type_UFP_SOP>
- <vif:Product_Type_DFP_SOP value="2">PDUSB Host</vif:Product_Type_DFP_SOP>
- <vif:DFP_VDO_Port_Number value="1" />
- <vif:Modal_Operation_Supported_SOP value="false" />
- <vif:USB_VID_SOP value="6353">18D1</vif:USB_VID_SOP>
- <vif:PID_SOP value="20570">505A</vif:PID_SOP>
- <vif:bcdDevice_SOP value="0">0000</vif:bcdDevice_SOP>
- </vif:Component>
-</vif:VIF> \ No newline at end of file
diff --git a/zephyr/program/nissa/joxer/keyboard.dtsi b/zephyr/program/nissa/joxer/keyboard.dtsi
deleted file mode 100644
index 04a620767a..0000000000
--- a/zephyr/program/nissa/joxer/keyboard.dtsi
+++ /dev/null
@@ -1,22 +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.
- */
-
-/ {
- kblight {
- compatible = "cros-ec,kblight-pwm";
- /*
- * Use 324 Hz so that 32Khz clock source is used,
- * which is not gated in power saving mode.
- */
- pwms = <&pwm0 0 PWM_HZ(324) PWM_POLARITY_NORMAL>;
- };
-};
-
-&pwm0 {
- status = "okay";
- prescaler-cx = <PWM_PRESCALER_C4>;
- pinctrl-0 = <&pwm0_gpa0_default>;
- pinctrl-names = "default";
-};
diff --git a/zephyr/program/nissa/joxer/motionsense.dtsi b/zephyr/program/nissa/joxer/motionsense.dtsi
deleted file mode 100644
index e9c46a849a..0000000000
--- a/zephyr/program/nissa/joxer/motionsense.dtsi
+++ /dev/null
@@ -1,148 +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 <dt-bindings/motionsense/utils.h>
-
-
-/ {
- aliases {
- /*
- * Interrupt bindings for sensor devices.
- */
- bmi3xx-int = &base_accel;
- bma4xx-int = &lid_accel;
- };
-
- /*
- * 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";
- lid_mutex: lid-mutex {
- };
-
- base_mutex: base-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 {
- bmi323_data: bmi323-drv-data {
- compatible = "cros-ec,drvdata-bmi3xx";
- status = "okay";
- };
-
- bma422_data: bma422-drv-data {
- compatible = "cros-ec,drvdata-bma4xx";
- status = "okay";
- };
- };
-
- /*
- * List of motion sensors that creates motion_sensors array.
- * The nodelabel "lid_accel" and "base_accel" are used to indicate
- * motion sensor IDs for lid angle calculation.
- * TODO(b/238139272): The first entries of the array must be
- * accelerometers,then gyroscope. Fix this dependency in the DTS
- * processing which makes the devicetree entries independent.
- */
- motionsense-sensor {
- lid_accel: lid-accel {
- compatible = "cros-ec,bma4xx";
- status = "okay";
-
- active-mask = "SENSOR_ACTIVE_S0_S3";
- location = "MOTIONSENSE_LOC_LID";
- mutex = <&lid_mutex>;
- port = <&i2c_ec_i2c_sensor>;
- rot-standard-ref = <&lid_rot_ref>;
- default-range = <2>;
- drv-data = <&bma422_data>;
- i2c-spi-addr-flags = "BMA4_I2C_ADDR_SECONDARY";
- configs {
- compatible =
- "cros-ec,motionsense-sensor-config";
- ec-s0 {
- odr = <(10000 | ROUND_UP_FLAG)>;
- };
- ec-s3 {
- odr = <(10000 | ROUND_UP_FLAG)>;
- };
- };
- };
-
- base_accel: base-accel {
- compatible = "cros-ec,bmi3xx-accel";
- status = "okay";
-
- active-mask = "SENSOR_ACTIVE_S0_S3";
- location = "MOTIONSENSE_LOC_BASE";
- mutex = <&base_mutex>;
- port = <&i2c_ec_i2c_sensor>;
- rot-standard-ref = <&base_rot_ref>;
- drv-data = <&bmi323_data>;
- configs {
- compatible =
- "cros-ec,motionsense-sensor-config";
- ec-s0 {
- odr = <(10000 | ROUND_UP_FLAG)>;
- };
- ec-s3 {
- odr = <(10000 | ROUND_UP_FLAG)>;
- };
- };
- };
-
- base_gyro: base-gyro {
- compatible = "cros-ec,bmi3xx-gyro";
- status = "okay";
-
- active-mask = "SENSOR_ACTIVE_S0_S3";
- location = "MOTIONSENSE_LOC_BASE";
- mutex = <&base_mutex>;
- port = <&i2c_ec_i2c_sensor>;
- rot-standard-ref = <&base_rot_ref>;
- drv-data = <&bmi323_data>;
- };
- };
-
- motionsense-sensor-info {
- compatible = "cros-ec,motionsense-sensor-info";
-
- /*
- * list of GPIO interrupts that have to
- * be enabled at initial stage
- */
- sensor-irqs = <&int_imu &int_lid_accel>;
- };
-};
diff --git a/zephyr/program/nissa/joxer/overlay.dtsi b/zephyr/program/nissa/joxer/overlay.dtsi
deleted file mode 100644
index 56f1d928cf..0000000000
--- a/zephyr/program/nissa/joxer/overlay.dtsi
+++ /dev/null
@@ -1,459 +0,0 @@
-/* Copyright 2021 The ChromiumOS Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include <cros/thermistor/thermistor.dtsi>
-#include <dt-bindings/usb_pd_tcpm.h>
-
-/ {
- aliases {
- gpio-cbi-wp = &gpio_ec_cbi_wp;
- gpio-wp = &gpio_ec_wp_odl;
- int-wp = &int_wp_l;
- /*
- * USB-C: interrupt input.
- * I2C pins are on i2c_ec_i2c_sub_usb_c1
- */
- gpio-usb-c1-int-odl = &gpio_sb_1;
- /*
- * USB-A: VBUS enable output
- * LTE: power enable output
- */
- gpio-en-usb-a1-vbus = &gpio_sb_2;
- /*
- * HDMI: power enable output, HDMI enable output,
- * and HPD input
- */
- gpio-en-rails-odl = &gpio_sb_1;
- gpio-hdmi-en-odl = &gpio_sb_4;
- gpio-hpd-odl = &gpio_sb_3;
- /*
- * Enable S5 rails for LTE sub-board
- */
- gpio-en-sub-s5-rails = &gpio_sb_2;
- };
-
- ec-console {
- compatible = "ec-console";
- disabled = "events", "lpc", "hostcmd";
- };
-
- batteries {
- default_battery: cosmx {
- compatible = "cosmx,gh02047xl", "battery-smart";
- };
- dynapack_atl_gh02047xl {
- compatible = "dynapack,atl_gh02047xl", "battery-smart";
- };
- dynapack_cosmx_gh02047xl {
- compatible = "dynapack,cosmx_gh02047xl", "battery-smart";
- };
- smp_coslight_gh02047xl {
- compatible = "smp,coslight_gh02047xl", "battery-smart";
- };
- smp_highpower_gh02047xl {
- compatible = "smp,highpower_gh02047xl", "battery-smart";
- };
- };
-
- hibernate-wake-pins {
- compatible = "cros-ec,hibernate-wake-pins";
- wakeup-irqs = <
- &int_power_button
- &int_lid_open
- >;
- };
-
- gpio-interrupts {
- compatible = "cros-ec,gpio-interrupts";
-
- int_power_button: power_button {
- irq-pin = <&gpio_gsc_ec_pwr_btn_odl>;
- flags = <GPIO_INT_EDGE_BOTH>;
- handler = "power_button_interrupt";
- };
- int_vol_down: vol_down {
- irq-pin = <&gpio_voldn_btn_odl>;
- flags = <GPIO_INT_EDGE_BOTH>;
- handler = "button_interrupt";
- };
- int_vol_up: vol_up {
- irq-pin = <&gpio_volup_btn_odl>;
- flags = <GPIO_INT_EDGE_BOTH>;
- handler = "button_interrupt";
- };
- int_wp_l: wp_l {
- irq-pin = <&gpio_ec_wp_odl>;
- flags = <GPIO_INT_EDGE_BOTH>;
- handler = "switch_interrupt";
- };
- int_lid_open: lid_open {
- irq-pin = <&gpio_lid_open>;
- flags = <GPIO_INT_EDGE_BOTH>;
- handler = "lid_interrupt";
- };
- int_tablet_mode: tablet_mode {
- irq-pin = <&gpio_tablet_mode_l>;
- flags = <GPIO_INT_EDGE_BOTH>;
- handler = "gmr_tablet_switch_isr";
- };
- int_imu: ec_imu {
- irq-pin = <&gpio_imu_int_l>;
- flags = <GPIO_INT_EDGE_FALLING>;
- handler = "bmi3xx_interrupt";
- };
- int_lid_accel: ec_lid_accel {
- irq-pin = <&gpio_acc_int_l>;
- flags = <GPIO_INT_EDGE_FALLING>;
- handler = "bma4xx_interrupt";
- };
- int_usb_c0: usb_c0 {
- irq-pin = <&gpio_usb_c0_int_odl>;
- flags = <GPIO_INT_EDGE_FALLING>;
- handler = "usb_c0_interrupt";
- };
- int_usb_c1: usb_c1 {
- irq-pin = <&gpio_sb_1>;
- flags = <GPIO_INT_EDGE_FALLING>;
- handler = "usb_c1_interrupt";
- };
- };
-
- unused-pins {
- compatible = "unused-gpios";
- unused-gpios = <&gpioc 3 0>,
- <&gpiod 4 0>,
- <&gpioh 2 0>,
- <&gpiol 4 0>;
- };
-
- named-gpios {
- /*
- * EC doesn't take any specific action on CC/SBU disconnect due to
- * fault, but this definition is useful for hardware testing.
- */
- gpio_usb_c0_prot_fault_odl: usb_c0_prot_fault_odl {
- gpios = <&gpiok 6 GPIO_INPUT_PULL_UP>;
- };
-
- gpio_sb_1: sb_1 {
- gpios = <&gpioe 6 0>;
- no-auto-init;
- };
- gpio_sb_2: sb_2 {
- gpios = <&gpiof 0 0>;
- no-auto-init;
- };
-
- gpio_sb_3: sb_3 {
- gpios = <&gpioe 7 0>;
- no-auto-init;
- };
- gpio_sb_4: sb_4 {
- gpios = <&gpioe 0 0>;
- no-auto-init;
- };
- gpio_fan_enable: fan-enable {
- gpios = <&gpiol 4 GPIO_OUTPUT>;
- no-auto-init;
- };
- gpio_power_led_gate: power_led_gate {
- gpios = <&gpiof 1 GPIO_OUTPUT_LOW>;
- };
- gpio_led_1_odl: led_1_odl {
- gpios = <&gpioa 1 GPIO_OUTPUT_HIGH>;
- };
- gpio_led_2_odl: led_2_odl {
- gpios = <&gpioa 2 GPIO_OUTPUT_HIGH>;
- };
- gpio_led_3_l: led_3_l {
- gpios = <&gpiol 2 GPIO_OUTPUT_HIGH>;
- };
- gpio_led_4_l: led_4_l {
- gpios = <&gpiol 3 GPIO_OUTPUT_HIGH>;
- };
- };
-
- temp_memory: memory {
- compatible = "cros-ec,temp-sensor-thermistor";
- thermistor = <&thermistor_3V3_51K1_47K_4050B>;
- adc = <&adc_temp_sensor_1>;
- };
- temp_charger: charger {
- compatible = "cros-ec,temp-sensor-thermistor";
- thermistor = <&thermistor_3V3_51K1_47K_4050B>;
- adc = <&adc_temp_sensor_2>;
- };
- temp_ambient: ambient {
- compatible = "cros-ec,temp-sensor-thermistor";
- thermistor = <&thermistor_3V3_51K1_47K_4050B>;
- adc = <&adc_temp_sensor_3>;
- };
-
- named-temp-sensors {
- compatible = "cros-ec,temp-sensors";
- memory {
- temp_fan_off = <35>;
- temp_fan_max = <60>;
- temp_host_high = <85>;
- temp_host_halt = <90>;
- temp_host_release_high = <80>;
- power-good-pin = <&gpio_ec_soc_dsw_pwrok>;
- sensor = <&temp_memory>;
- };
- charger {
- temp_fan_off = <35>;
- temp_fan_max = <60>;
- temp_host_high = <85>;
- temp_host_halt = <90>;
- temp_host_release_high = <80>;
- power-good-pin = <&gpio_ec_soc_dsw_pwrok>;
- sensor = <&temp_charger>;
- };
- ambient {
- temp_fan_off = <35>;
- temp_fan_max = <60>;
- temp_host_high = <85>;
- temp_host_halt = <90>;
- temp_host_release_high = <80>;
- power-good-pin = <&gpio_ec_soc_dsw_pwrok>;
- sensor = <&temp_ambient>;
- };
- };
-
- usba {
- compatible = "cros-ec,usba-port-enable-pins";
- /*
- * sb_2 is only configured as GPIO when USB-A1 is present,
- * but it's still safe to control when disabled.
- *
- * ILIM_SEL pins are referred to by legacy enum name,
- * GPIO_USB*_ILIM_SEL. The one for port A1 is unused on
- * sub-boards that don't have USB-A so is safe to control
- * regardless of system configuration.
- */
- enable-pins = <&gpio_en_usb_a0_vbus &gpio_sb_2>;
- status = "okay";
- };
-
- usbc {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port0@0 {
- compatible = "named-usbc-port";
- reg = <0>;
- bc12 = <&bc12_port0>;
- chg = <&chg_port0>;
- tcpc = <&usbpd0>;
- usb-mux-chain-0 {
- compatible = "cros-ec,usb-mux-chain";
- usb-muxes = <&virtual_mux_0>;
- };
- };
- port0-muxes {
- virtual_mux_0: virtual-mux-0 {
- compatible = "cros-ec,usbc-mux-virtual";
- };
- };
- port1@1 {
- compatible = "named-usbc-port";
- reg = <1>;
- bc12 = <&bc12_port1>;
- chg = <&chg_port1>;
- tcpc = <&tcpc_port1>;
- usb-mux-chain-1 {
- compatible = "cros-ec,usb-mux-chain";
- usb-muxes = <&virtual_mux_1 &tcpci_mux_1>;
- };
- usb_mux_chain_1_no_mux: usb-mux-chain-1-no-mux {
- compatible = "cros-ec,usb-mux-chain";
- alternative-chain;
- usb-muxes = <&virtual_mux_1>;
- };
- };
- port1-muxes {
- virtual_mux_1: virtual-mux-1 {
- compatible = "cros-ec,usbc-mux-virtual";
- };
- tcpci_mux_1: tcpci-mux-1 {
- compatible = "parade,usbc-mux-ps8xxx";
- };
- };
- };
- fans {
- compatible = "cros-ec,fans";
-
- fan_0 {
- pwms = <&pwm7 PWM_CHANNEL_7 PWM_KHZ(30) PWM_POLARITY_NORMAL>;
- tach = <&tach1>;
- rpm_min = <1500>;
- rpm_start = <1500>;
- rpm_max = <6500>;
- enable_gpio = <&gpio_fan_enable>;
- };
- };
-};
-
-&gpio_acc_int_l {
- gpios = <&gpioc 0 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
-};
-&gpio_imu_int_l {
- gpios = <&gpioj 0 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
-};
-&gpio_vccin_aux_vid0 {
- gpios = <&gpiod 0 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
-};
-&gpio_vccin_aux_vid1 {
- gpios = <&gpiok 1 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
-};
-
-&gpio_ec_prochot_odl {
- gpios = <&gpioi 1 (GPIO_ODR_HIGH | GPIO_VOLTAGE_1P8)>;
-};
-
-&thermistor_3V3_51K1_47K_4050B {
- status = "okay";
-};
-
-&adc_ec_vsense_pp3300_s5 {
- /*
- * Voltage divider on input has 47k upper and 220k lower legs with 3 V
- * full-scale reading on the ADC. Apply the largest possible multiplier
- * (without overflowing int32) to get the best possible approximation
- * of the actual ratio, but derate by a factor of two to ensure
- * unexpectedly high values won't overflow.
- */
- mul = <(715828 / 2)>;
- div = <(589820 / 2)>;
-};
-
-&adc0 {
- pinctrl-0 = <&adc0_ch0_gpi0_default
- &adc0_ch2_gpi2_default
- &adc0_ch3_gpi3_default
- &adc0_ch13_gpl0_default
- &adc0_ch14_gpl1_default>;
- pinctrl-names = "default";
-};
-
-&pinctrl {
- i2c2_clk_gpf6_default: i2c2_clk_gpf6_default {
- gpio-voltage = "1v8";
- };
- i2c2_data_gpf7_default: i2c2_data_gpf7_default {
- gpio-voltage = "1v8";
- };
-};
-
-
-&i2c0 {
- label = "I2C_EEPROM";
- clock-frequency = <I2C_BITRATE_FAST>;
-
- cbi_eeprom: eeprom@50 {
- compatible = "atmel,at24";
- reg = <0x50>;
- size = <2048>;
- pagesize = <16>;
- address-width = <8>;
- timeout = <5>;
- };
- pinctrl-0 = <&i2c0_clk_gpb3_default
- &i2c0_data_gpb4_default>;
- pinctrl-names = "default";
-};
-
-&i2c1 {
- label = "I2C_BATTERY";
- clock-frequency = <50000>;
- pinctrl-0 = <&i2c1_clk_gpc1_default
- &i2c1_data_gpc2_default>;
- pinctrl-names = "default";
-};
-
-&i2c2 {
- label = "I2C_SENSOR";
- clock-frequency = <I2C_BITRATE_FAST>;
- pinctrl-0 = <&i2c2_clk_gpf6_default
- &i2c2_data_gpf7_default>;
- pinctrl-names = "default";
-};
-
-&i2c4 {
- label = "I2C_SUB_C1_TCPC";
- clock-frequency = <I2C_BITRATE_FAST_PLUS>;
- pinctrl-0 = <&i2c4_clk_gpe0_default
- &i2c4_data_gpe7_default>;
- pinctrl-names = "default";
-
- bc12_port1: pi3usb9201@5f {
- compatible = "pericom,pi3usb9201";
- status = "okay";
- reg = <0x5f>;
- };
-
- chg_port1: sm5803@32 {
- compatible = "siliconmitus,sm5803";
- status = "okay";
- reg = <0x32>;
- };
-
- tcpc_port1: ps8745@b {
- compatible = "parade,ps8xxx";
- reg = <0xb>;
- tcpc-flags = <(TCPC_FLAGS_TCPCI_REV2_0)>;
- };
-};
-
-&i2c_ec_i2c_sub_usb_c1 {
- /*
- * Dynamic speed setting is used for AP-controlled firmware update
- * of PS8745 TCPC/redriver: the AP lowers speed to 400 kHz in order
- * to use more efficient window programming, then sets it back when
- * done.
- */
- dynamic-speed;
-};
-
-&i2c5 {
- label = "I2C_USB_C0_TCPC";
- clock-frequency = <I2C_BITRATE_FAST_PLUS>;
- pinctrl-0 = <&i2c5_clk_gpa4_default
- &i2c5_data_gpa5_default>;
- pinctrl-names = "default";
-
- bc12_port0: pi3usb9201@5f {
- compatible = "pericom,pi3usb9201";
- status = "okay";
- reg = <0x5f>;
- };
-
- chg_port0: sm5803@32 {
- compatible = "siliconmitus,sm5803";
- status = "okay";
- reg = <0x32>;
- };
-};
-
-/* pwm for fan */
-&pwm7 {
- status = "okay";
- prescaler-cx = <PWM_PRESCALER_C6>;
- pinctrl-0 = <&pwm7_gpa7_default>;
- pinctrl-names = "default";
-};
-
-/* fan tachometer sensor */
-&tach1 {
- status = "okay";
- channel = <IT8XXX2_TACH_CHANNEL_A>;
- pulses-per-round = <2>;
- pinctrl-0 = <&tach1a_gpd7_default>;
- pinctrl-names = "default";
-};
-
-&usbpd0 {
- status = "okay";
-};
diff --git a/zephyr/program/nissa/joxer/power_signals.dtsi b/zephyr/program/nissa/joxer/power_signals.dtsi
deleted file mode 100644
index 8affae03b1..0000000000
--- a/zephyr/program/nissa/joxer/power_signals.dtsi
+++ /dev/null
@@ -1,223 +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.
- */
-
-/ {
- chosen {
- intel-ap-pwrseq,espi = &espi0;
- };
-
- common-pwrseq {
- compatible = "intel,ap-pwrseq";
-
- sys-pwrok-delay = <10>;
- all-sys-pwrgd-timeout = <20>;
- };
-
- pwr-en-pp5000-s5 {
- compatible = "intel,ap-pwrseq-gpio";
- dbg-label = "PP5000_S5 enable output to regulator";
- enum-name = "PWR_EN_PP5000_A";
- gpios = <&gpiok 5 0>;
- output;
- };
- pwr-en-pp3300-s5 {
- compatible = "intel,ap-pwrseq-gpio";
- dbg-label = "PP3300_S5 enable output to LS";
- enum-name = "PWR_EN_PP3300_A";
- gpios = <&gpioc 5 0>;
- output;
- };
- pwr-pg-ec-rsmrst-odl {
- compatible = "intel,ap-pwrseq-gpio";
- dbg-label = "RSMRST power good from regulator";
- enum-name = "PWR_RSMRST";
- gpios = <&gpioe 1 0>;
- interrupt-flags = <GPIO_INT_EDGE_BOTH>;
- };
- pwr-ec-pch-rsmrst-odl {
- compatible = "intel,ap-pwrseq-gpio";
- dbg-label = "RSMRST output to PCH";
- enum-name = "PWR_EC_PCH_RSMRST";
- gpios = <&gpioh 0 0>;
- output;
- };
- pwr-slp-s0-l {
- compatible = "intel,ap-pwrseq-gpio";
- dbg-label = "SLP_S0_L input from PCH";
- enum-name = "PWR_SLP_S0";
- gpios = <&gpioe 4 GPIO_ACTIVE_LOW>;
- interrupt-flags = <GPIO_INT_EDGE_BOTH>;
- };
- pwr-slp-s3-l {
- compatible = "intel,ap-pwrseq-gpio";
- dbg-label = "SLP_S3_L input from PCH";
- enum-name = "PWR_SLP_S3";
- gpios = <&gpioh 3 GPIO_ACTIVE_LOW>;
- interrupt-flags = <GPIO_INT_EDGE_BOTH>;
- };
- pwr-slp-sus-l {
- compatible = "intel,ap-pwrseq-gpio";
- dbg-label = "SLP_SUS_L input from PCH";
- enum-name = "PWR_SLP_SUS";
- gpios = <&gpiog 2 GPIO_ACTIVE_LOW>;
- interrupt-flags = <GPIO_INT_EDGE_BOTH>;
- };
- pwr-ec-soc-dsw-pwrok {
- compatible = "intel,ap-pwrseq-gpio";
- dbg-label = "DSW_PWROK output to PCH";
- enum-name = "PWR_EC_SOC_DSW_PWROK";
- gpios = <&gpiol 7 0>;
- output;
- };
- pwr-vccst-pwrgd-od {
- compatible = "intel,ap-pwrseq-gpio";
- dbg-label = "VCCST_PWRGD output to PCH";
- enum-name = "PWR_VCCST_PWRGD";
- gpios = <&gpioe 5 (GPIO_OPEN_DRAIN | GPIO_VOLTAGE_1P8)>;
- output;
- };
- pwr-imvp9-vrrdy-od {
- compatible = "intel,ap-pwrseq-gpio";
- dbg-label = "VRRDY input from IMVP9";
- enum-name = "PWR_IMVP9_VRRDY";
- gpios = <&gpioj 4 0>;
- };
- pwr-pch-pwrok {
- compatible = "intel,ap-pwrseq-gpio";
- dbg-label = "PCH_PWROK output to PCH";
- enum-name = "PWR_PCH_PWROK";
- gpios = <&gpiod 6 GPIO_OPEN_DRAIN>;
- output;
- };
- pwr-ec-pch-sys-pwrok {
- compatible = "intel,ap-pwrseq-gpio";
- dbg-label = "SYS_PWROK output to PCH";
- enum-name = "PWR_EC_PCH_SYS_PWROK";
- gpios = <&gpiof 2 0>;
- output;
- };
- pwr-sys-rst-l {
- compatible = "intel,ap-pwrseq-gpio";
- dbg-label = "SYS_RESET# output to PCH";
- enum-name = "PWR_SYS_RST";
- gpios = <&gpiod 1 (GPIO_ACTIVE_LOW|GPIO_OPEN_DRAIN)>;
- output;
- };
- pwr-slp-s4 {
- compatible = "intel,ap-pwrseq-vw";
- dbg-label = "SLP_S4 virtual wire input from PCH";
- enum-name = "PWR_SLP_S4";
- virtual-wire = "ESPI_VWIRE_SIGNAL_SLP_S4";
- vw-invert;
- };
- pwr-slp-s5 {
- compatible = "intel,ap-pwrseq-vw";
- dbg-label = "SLP_S5 virtual wire input from PCH";
- enum-name = "PWR_SLP_S5";
- virtual-wire = "ESPI_VWIRE_SIGNAL_SLP_S5";
- vw-invert;
- };
- pwr-all-sys-pwrgd {
- /*
- * This is a board level signal, since this
- * signal needs some special processing.
- */
- compatible = "intel,ap-pwrseq-external";
- dbg-label = "Combined all power good";
- enum-name = "PWR_ALL_SYS_PWRGD";
- };
- pwr-adc-pp3300 {
- compatible = "intel,ap-pwrseq-adc";
- dbg-label = "PP3300_PROC";
- enum-name = "PWR_DSW_PWROK";
- trigger-high = <&vcmp0>;
- trigger-low = <&vcmp1>;
- };
- pwr-adc-pp1p05 {
- compatible = "intel,ap-pwrseq-adc";
- dbg-label = "PP1P05_PROC";
- enum-name = "PWR_PG_PP1P05";
- trigger-high = <&vcmp2>;
- trigger-low = <&vcmp3>;
- };
-
-};
-
-/*
- * Because the power signals directly reference the GPIOs,
- * the correspinding named-gpios need to have no-auto-init set.
- */
-&gpio_ec_soc_dsw_pwrok {
- no-auto-init;
-};
-&gpio_ec_soc_pch_pwrok_od {
- no-auto-init;
-};
-&gpio_ec_soc_rsmrst_l {
- no-auto-init;
-};
-&gpio_ec_soc_sys_pwrok {
- no-auto-init;
-};
-&gpio_ec_soc_vccst_pwrgd_od {
- no-auto-init;
-};
-&gpio_en_pp3300_s5 {
- no-auto-init;
-};
-&gpio_en_pp5000_s5 {
- no-auto-init;
-};
-&gpio_imvp91_vrrdy_od {
- no-auto-init;
-};
-&gpio_rsmrst_pwrgd_l {
- no-auto-init;
-};
-&gpio_slp_s0_l {
- no-auto-init;
-};
-&gpio_slp_s3_l {
- no-auto-init;
-};
-&gpio_slp_sus_l {
- no-auto-init;
-};
-&gpio_sys_rst_odl {
- no-auto-init;
-};
-&vcmp0 {
- status = "okay";
- scan-period = <IT8XXX2_VCMP_SCAN_PERIOD_600US>;
- comparison = <IT8XXX2_VCMP_GREATER>;
- /*
- * This is 90% of nominal voltage considering voltage
- * divider on ADC input.
- */
- threshold-mv = <2448>;
- io-channels = <&adc0 0>;
-};
-&vcmp1 {
- status = "okay";
- scan-period = <IT8XXX2_VCMP_SCAN_PERIOD_600US>;
- comparison = <IT8XXX2_VCMP_LESS_OR_EQUAL>;
- threshold-mv = <2448>;
- io-channels = <&adc0 0>;
-};
-&vcmp2 {
- status = "okay";
- scan-period = <IT8XXX2_VCMP_SCAN_PERIOD_600US>;
- comparison = <IT8XXX2_VCMP_GREATER>;
- /* Setting at 90% of nominal voltage */
- threshold-mv = <945>;
- io-channels = <&adc0 14>;
-};
-&vcmp3 {
- status = "okay";
- scan-period = <IT8XXX2_VCMP_SCAN_PERIOD_600US>;
- comparison = <IT8XXX2_VCMP_LESS_OR_EQUAL>;
- threshold-mv = <945>;
- io-channels = <&adc0 14>;
-};
diff --git a/zephyr/program/nissa/joxer/project.conf b/zephyr/program/nissa/joxer/project.conf
deleted file mode 100644
index a0de72294c..0000000000
--- a/zephyr/program/nissa/joxer/project.conf
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2021 The ChromiumOS Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-CONFIG_BOARD_JOXER=y
-
-# Ensure recovery key combination (esc+refresh+power) is reliable: b/236580049
-CONFIG_PLATFORM_EC_KEYBOARD_PWRBTN_ASSERTS_KSI3=y
-CONFIG_PLATFORM_EC_KEYBOARD_REFRESH_ROW3=y
-
-# Sensor drivers
-CONFIG_PLATFORM_EC_ACCELGYRO_BMI_COMM_I2C=y
-CONFIG_PLATFORM_EC_ACCELGYRO_BMI3XX=y
-CONFIG_PLATFORM_EC_ACCEL_BMA4XX=y
-CONFIG_PLATFORM_EC_MAX_SENSOR_FREQ_MILLIHZ=100000
-
-# LED
-CONFIG_PLATFORM_EC_LED_PWM=n
-CONFIG_PLATFORM_EC_LED_COMMON=y
diff --git a/zephyr/program/nissa/joxer/project.overlay b/zephyr/program/nissa/joxer/project.overlay
deleted file mode 100644
index 9ca681d979..0000000000
--- a/zephyr/program/nissa/joxer/project.overlay
+++ /dev/null
@@ -1,14 +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 "../cbi.dtsi"
-
-#include "cbi.dtsi"
-#include "generated.dtsi"
-#include "keyboard.dtsi"
-#include "motionsense.dtsi"
-#include "overlay.dtsi"
-#include "power_signals.dtsi"
-#include "pwm_leds.dtsi"
diff --git a/zephyr/program/nissa/joxer/pwm_leds.dtsi b/zephyr/program/nissa/joxer/pwm_leds.dtsi
deleted file mode 100644
index aa4a76b271..0000000000
--- a/zephyr/program/nissa/joxer/pwm_leds.dtsi
+++ /dev/null
@@ -1,60 +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.
- */
-
-/ {
- pwmleds {
- compatible = "pwm-leds";
- pwm_led0: pwm_led_0 {
- pwms = <&pwm1 1 PWM_HZ(1296) PWM_POLARITY_INVERTED>,
- <&pwm2 2 PWM_HZ(1296) PWM_POLARITY_INVERTED>,
- <&pwm3 3 PWM_HZ(1296) PWM_POLARITY_INVERTED>;
- };
- };
-
- cros-pwmleds {
- compatible = "cros-ec,pwm-leds";
-
- leds = <&pwm_led0>;
-
- /*<red green blue>*/
- color-map-red = <100 0 0>;
- color-map-green = < 0 100 0>;
- color-map-blue = < 0 0 100>;
- color-map-yellow = < 0 50 50>;
- color-map-white = <100 100 100>;
- color-map-amber = <100 15 0>;
-
- brightness-range = <100 100 100 0 0 0>;
-
- #address-cells = <1>;
- #size-cells = <0>;
-
- pwm_led_0@0 {
- reg = <0>;
- ec-led-name = "EC_LED_ID_BATTERY_LED";
- };
- };
-};
-
-&pwm1 {
- status = "okay";
- prescaler-cx = <PWM_PRESCALER_C4>;
- pinctrl-0 = <&pwm1_gpa1_default>;
- pinctrl-names = "default";
-};
-
-&pwm2 {
- status = "okay";
- prescaler-cx = <PWM_PRESCALER_C4>;
- pinctrl-0 = <&pwm2_gpa2_default>;
- pinctrl-names = "default";
-};
-
-&pwm3 {
- status = "okay";
- prescaler-cx = <PWM_PRESCALER_C4>;
- pinctrl-0 = <&pwm3_gpa3_default>;
- pinctrl-names = "default";
-};
diff --git a/zephyr/program/nissa/joxer/src/charger.c b/zephyr/program/nissa/joxer/src/charger.c
deleted file mode 100644
index 4bb7de7ecb..0000000000
--- a/zephyr/program/nissa/joxer/src/charger.c
+++ /dev/null
@@ -1,56 +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 "battery.h"
-#include "charger.h"
-#include "console.h"
-#include "driver/charger/sm5803.h"
-#include "extpower.h"
-#include "nissa_common.h"
-#include "usb_pd.h"
-
-#include <zephyr/logging/log.h>
-
-LOG_MODULE_DECLARE(nissa, CONFIG_NISSA_LOG_LEVEL);
-
-int extpower_is_present(void)
-{
- int port;
- int rv;
- bool acok;
-
- for (port = 0; port < board_get_usb_pd_port_count(); port++) {
- rv = sm5803_is_acok(port, &acok);
- if ((rv == EC_SUCCESS) && acok)
- return 1;
- }
-
- return 0;
-}
-
-/*
- * Joxer not have a GPIO indicating whether extpower is present,
- * so detect using the charger(s).
- */
-__override void board_check_extpower(void)
-{
- static int last_extpower_present;
- int extpower_present = extpower_is_present();
-
- if (last_extpower_present ^ extpower_present)
- extpower_handle_update(extpower_present);
-
- last_extpower_present = extpower_present;
-}
-
-__override void board_hibernate(void)
-{
- /* Shut down the chargers */
- if (board_get_usb_pd_port_count() == 2)
- sm5803_hibernate(CHARGER_SECONDARY);
- sm5803_hibernate(CHARGER_PRIMARY);
- LOG_INF("Charger(s) hibernated");
- cflush();
-}
diff --git a/zephyr/program/nissa/joxer/src/fan.c b/zephyr/program/nissa/joxer/src/fan.c
deleted file mode 100644
index 82be341da5..0000000000
--- a/zephyr/program/nissa/joxer/src/fan.c
+++ /dev/null
@@ -1,42 +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_cbi.h"
-#include "fan.h"
-#include "gpio/gpio.h"
-#include "hooks.h"
-#include "nissa_common.h"
-
-#include <zephyr/devicetree.h>
-#include <zephyr/drivers/gpio.h>
-#include <zephyr/logging/log.h>
-
-LOG_MODULE_DECLARE(nissa, CONFIG_NISSA_LOG_LEVEL);
-
-/*
- * Joxer fan support
- */
-static void fan_init(void)
-{
- int ret;
- uint32_t val;
- /*
- * 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;
- }
- if (val != FW_FAN_PRESENT) {
- /* Disable the fan */
- fan_set_count(0);
- } else {
- /* Configure the fan enable GPIO */
- gpio_pin_configure_dt(GPIO_DT_FROM_NODELABEL(gpio_fan_enable),
- GPIO_OUTPUT);
- }
-}
-DECLARE_HOOK(HOOK_INIT, fan_init, HOOK_PRIO_POST_FIRST);
diff --git a/zephyr/program/nissa/joxer/src/keyboard.c b/zephyr/program/nissa/joxer/src/keyboard.c
deleted file mode 100644
index e9e20194f0..0000000000
--- a/zephyr/program/nissa/joxer/src/keyboard.c
+++ /dev/null
@@ -1,68 +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_cbi.h"
-#include "ec_commands.h"
-#include "gpio/gpio.h"
-#include "hooks.h"
-#include "keyboard_8042_sharedlib.h"
-#include "nissa_common.h"
-
-#include <zephyr/devicetree.h>
-#include <zephyr/drivers/gpio.h>
-#include <zephyr/logging/log.h>
-
-LOG_MODULE_DECLARE(nissa, CONFIG_NISSA_LOG_LEVEL);
-
-static const struct ec_response_keybd_config joxer_kb_legacy = {
- .num_top_row_keys = 13,
- .action_keys = {
- TK_BACK, /* T1 */
- TK_REFRESH, /* T2 */
- TK_FULLSCREEN, /* T3 */
- TK_OVERVIEW, /* T4 */
- TK_SNAPSHOT, /* T5 */
- TK_BRIGHTNESS_DOWN, /* T6 */
- TK_BRIGHTNESS_UP, /* T7 */
- TK_KBD_BKLIGHT_TOGGLE, /* T8 */
- TK_PLAY_PAUSE, /* T9 */
- TK_MICMUTE, /* T10 */
- TK_VOL_MUTE, /* T11 */
- TK_VOL_DOWN, /* T12 */
- TK_VOL_UP, /* T13 */
- },
- .capabilities = KEYBD_CAP_SCRNLOCK_KEY,
-};
-
-__override const struct ec_response_keybd_config *
-board_vivaldi_keybd_config(void)
-{
- return &joxer_kb_legacy;
-}
-
-/*
- * Keyboard layout decided by FW config.
- */
-static void kb_layout_init(void)
-{
- int ret;
- uint32_t val;
- /*
- * Retrieve the kb layout config.
- */
- ret = cros_cbi_get_fw_config(FW_KB_LAYOUT, &val);
- if (ret != 0) {
- LOG_ERR("Error retrieving CBI FW_CONFIG field %d",
- FW_KB_LAYOUT);
- return;
- }
- /*
- * If keyboard is US2(FW_KB_LAYOUT_US2), we need translate right ctrl
- * to backslash(\|) key.
- */
- if (val == FW_KB_LAYOUT_US2)
- set_scancode_set2(4, 0, get_scancode_set2(2, 7));
-}
-DECLARE_HOOK(HOOK_INIT, kb_layout_init, HOOK_PRIO_POST_FIRST);
diff --git a/zephyr/program/nissa/joxer/src/led.c b/zephyr/program/nissa/joxer/src/led.c
deleted file mode 100644
index c617ee9507..0000000000
--- a/zephyr/program/nissa/joxer/src/led.c
+++ /dev/null
@@ -1,181 +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.
- *
- * Battery LED control for nissa
- */
-#include "charge_manager.h"
-#include "common.h"
-#include "compile_time_macros.h"
-#include "ec_commands.h"
-#include "gpio.h"
-#include "led_common.h"
-#include "led_onoff_states.h"
-#include "pwm.h"
-#include "util.h"
-
-#include <stdint.h>
-
-#define BAT_LED_ON_LVL 0
-#define BAT_LED_OFF_LVL 1
-
-#define PWR_LED_ON_LVL 1
-#define PWR_LED_OFF_LVL 0
-
-#define LED_SIDESEL_MB_PORT 0
-#define LED_SIDESEL_DB_PORT 1
-
-__override const int led_charge_lvl_1 = 5;
-__override const int led_charge_lvl_2 = 95;
-
-__override struct led_descriptor
- led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = {
- [STATE_CHARGING_LVL_1] = { { EC_LED_COLOR_AMBER,
- LED_INDEFINITE } },
- [STATE_CHARGING_LVL_2] = { { EC_LED_COLOR_AMBER,
- LED_INDEFINITE } },
- [STATE_CHARGING_FULL_CHARGE] = { { EC_LED_COLOR_WHITE,
- LED_INDEFINITE } },
- [STATE_DISCHARGE_S0] = { { LED_OFF, LED_INDEFINITE } },
- [STATE_DISCHARGE_S0_BAT_LOW] = { { EC_LED_COLOR_AMBER,
- 1 * LED_ONE_SEC },
- { LED_OFF, 1 * LED_ONE_SEC } },
- [STATE_DISCHARGE_S3] = { { LED_OFF, LED_INDEFINITE } },
- [STATE_DISCHARGE_S5] = { { LED_OFF, LED_INDEFINITE } },
- [STATE_BATTERY_ERROR] = { { EC_LED_COLOR_AMBER,
- 0.5 * LED_ONE_SEC },
- { LED_OFF, 0.5 * LED_ONE_SEC } },
- [STATE_FACTORY_TEST] = { { EC_LED_COLOR_WHITE,
- 1 * LED_ONE_SEC },
- { LED_OFF, 1 * LED_ONE_SEC } },
- };
-
-__override const struct led_descriptor
- led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = {
- [PWR_LED_STATE_ON] = { { EC_LED_COLOR_WHITE, LED_INDEFINITE } },
- [PWR_LED_STATE_SUSPEND_AC] = { { EC_LED_COLOR_WHITE,
- 1 * LED_ONE_SEC },
- { LED_OFF, 1 * LED_ONE_SEC } },
- [PWR_LED_STATE_SUSPEND_NO_AC] = { { EC_LED_COLOR_WHITE,
- 1 * LED_ONE_SEC },
- { LED_OFF,
- 1 * LED_ONE_SEC } },
- [PWR_LED_STATE_OFF] = { { LED_OFF, LED_INDEFINITE } },
- };
-
-const enum ec_led_id supported_led_ids[] = {
- EC_LED_ID_BATTERY_LED,
- EC_LED_ID_POWER_LED,
-};
-
-const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-
-__override void led_set_color_battery(enum ec_led_colors color)
-{
- int port;
-
- /* There are four battery leds, LED1/LED2 are on MB side and
- * LED3/LED4 are on DB side. All leds are OFF by default.
- */
- int led1, led2, led3, led4;
-
- led1 = led2 = led3 = led4 = BAT_LED_OFF_LVL;
-
- /* Check which port is the charging port,
- * and turn on the corresponding led.
- */
- if (led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED)) {
- port = charge_manager_get_active_charge_port();
- switch (port) {
- case LED_SIDESEL_MB_PORT:
- switch (color) {
- case EC_LED_COLOR_AMBER:
- led1 = BAT_LED_ON_LVL;
- break;
- case EC_LED_COLOR_WHITE:
- led2 = BAT_LED_ON_LVL;
- break;
- default: /* LED_OFF and other unsupported colors */
- break;
- }
- break;
- case LED_SIDESEL_DB_PORT:
- switch (color) {
- case EC_LED_COLOR_AMBER:
- led3 = BAT_LED_ON_LVL;
- break;
- case EC_LED_COLOR_WHITE:
- led4 = BAT_LED_ON_LVL;
- break;
- default: /* LED_OFF and other unsupported colors */
- break;
- }
- break;
- default: /* Unknown charging port */
- break;
- }
- } else {
- switch (color) {
- case EC_LED_COLOR_AMBER:
- led1 = BAT_LED_ON_LVL;
- led3 = BAT_LED_ON_LVL;
- break;
- case EC_LED_COLOR_WHITE:
- led2 = BAT_LED_ON_LVL;
- led4 = BAT_LED_ON_LVL;
- break;
- default: /* LED_OFF and other unsupported colors */
- break;
- }
- }
-
- gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_led_1_odl), led1);
- gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_led_2_odl), led2);
- gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_led_3_l), led3);
- gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_led_4_l), led4);
-}
-
-__override void led_set_color_power(enum ec_led_colors color)
-{
- if (color == EC_LED_COLOR_WHITE)
- gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_power_led_gate),
- PWR_LED_ON_LVL);
- else
- /* LED_OFF and unsupported colors */
- gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_power_led_gate),
- PWR_LED_OFF_LVL);
-}
-
-void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- brightness_range[EC_LED_COLOR_AMBER] = 1;
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- } else if (led_id == EC_LED_ID_POWER_LED) {
- brightness_range[EC_LED_COLOR_WHITE] = 1;
- }
-}
-
-int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
-{
- if (led_id == EC_LED_ID_BATTERY_LED) {
- led_auto_control(led_id, 0);
- if (brightness[EC_LED_COLOR_AMBER] != 0)
- led_set_color_battery(EC_LED_COLOR_AMBER);
- else if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_battery(EC_LED_COLOR_WHITE);
- else if (brightness[LED_OFF] != 0)
- led_set_color_battery(LED_OFF);
- else {
- led_auto_control(led_id, 1);
- led_set_color_battery(LED_OFF);
- }
- } else if (led_id == EC_LED_ID_POWER_LED) {
- if (brightness[EC_LED_COLOR_WHITE] != 0)
- led_set_color_power(EC_LED_COLOR_WHITE);
- else
- led_set_color_power(LED_OFF);
- }
-
- return EC_SUCCESS;
-}
diff --git a/zephyr/program/nissa/joxer/src/usbc.c b/zephyr/program/nissa/joxer/src/usbc.c
deleted file mode 100644
index 8e576c5673..0000000000
--- a/zephyr/program/nissa/joxer/src/usbc.c
+++ /dev/null
@@ -1,368 +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 "charge_state_v2.h"
-#include "chipset.h"
-#include "driver/charger/sm5803.h"
-#include "driver/tcpm/it83xx_pd.h"
-#include "driver/tcpm/ps8xxx_public.h"
-#include "driver/tcpm/tcpci.h"
-#include "hooks.h"
-#include "nissa_common.h"
-#include "system.h"
-#include "usb_mux.h"
-
-#include <zephyr/logging/log.h>
-
-#include <ap_power/ap_power.h>
-
-LOG_MODULE_DECLARE(nissa, CONFIG_NISSA_LOG_LEVEL);
-
-/* Vconn control for integrated ITE TCPC */
-void board_pd_vconn_ctrl(int port, enum usbpd_cc_pin cc_pin, int enabled)
-{
- /* Vconn control is only for port 0 */
- if (port)
- return;
-
- if (cc_pin == USBPD_CC_PIN_1)
- gpio_pin_set_dt(
- GPIO_DT_FROM_NODELABEL(gpio_en_usb_c0_cc1_vconn),
- !!enabled);
- else
- gpio_pin_set_dt(
- GPIO_DT_FROM_NODELABEL(gpio_en_usb_c0_cc2_vconn),
- !!enabled);
-}
-
-__override bool pd_check_vbus_level(int port, enum vbus_level level)
-{
- return sm5803_check_vbus_level(port, level);
-}
-
-/*
- * Putting chargers into LPM when in suspend reduces power draw by about 8mW
- * per charger, but also seems critical to correct operation in source mode:
- * if chargers are not in LPM when a sink is first connected, VBUS sourcing
- * works even if the partner is later removed (causing LPM entry) and
- * reconnected (causing LPM exit). If in LPM initially, sourcing VBUS
- * consistently causes the charger to report (apparently spurious) overcurrent
- * failures.
- *
- * In short, this is important to making things work correctly but we don't
- * understand why.
- */
-static void board_chargers_suspend(struct ap_power_ev_callback *const cb,
- const struct ap_power_ev_data data)
-{
- void (*fn)(int chgnum);
-
- switch (data.event) {
- case AP_POWER_SUSPEND:
- fn = sm5803_enable_low_power_mode;
- break;
- case AP_POWER_RESUME:
- fn = sm5803_disable_low_power_mode;
- break;
- default:
- LOG_WRN("%s: power event %d is not recognized", __func__,
- data.event);
- return;
- }
-
- fn(CHARGER_PRIMARY);
- if (board_get_charger_chip_count() > 1)
- fn(CHARGER_SECONDARY);
-}
-
-static int board_chargers_suspend_init(const struct device *unused)
-{
- static struct ap_power_ev_callback cb = {
- .handler = board_chargers_suspend,
- .events = AP_POWER_SUSPEND | AP_POWER_RESUME,
- };
- ap_power_ev_add_callback(&cb);
- return 0;
-}
-SYS_INIT(board_chargers_suspend_init, APPLICATION, 0);
-
-int board_set_active_charge_port(int port)
-{
- int is_real_port = (port >= 0 && port < board_get_usb_pd_port_count());
- int i;
- int old_port;
- int rv;
-
- if (!is_real_port && port != CHARGE_PORT_NONE)
- return EC_ERROR_INVAL;
-
- old_port = charge_manager_get_active_charge_port();
- LOG_INF("Charge update: p%d -> p%d", old_port, port);
-
- /* Check if port is sourcing VBUS. */
- if (port != CHARGE_PORT_NONE && charger_is_sourcing_otg_power(port)) {
- LOG_WRN("Skip enable p%d: already sourcing", port);
- return EC_ERROR_INVAL;
- }
-
- /* Disable sinking on all ports except the desired one */
- for (i = 0; i < board_get_usb_pd_port_count(); i++) {
- if (i == port)
- continue;
-
- if (sm5803_vbus_sink_enable(i, 0))
- /*
- * Do not early-return because this can fail during
- * power-on which would put us into a loop.
- */
- LOG_WRN("p%d: sink path disable failed.", i);
- }
-
- /* Don't enable anything (stop here) if no ports were requested */
- if ((port == CHARGE_PORT_NONE) || (old_port == port))
- return EC_SUCCESS;
-
- /*
- * Stop the charger IC from switching while changing ports. Otherwise,
- * we can overcurrent the adapter we're switching to. (crbug.com/926056)
- */
- if (old_port != CHARGE_PORT_NONE)
- charger_discharge_on_ac(1);
-
- /* Enable requested charge port. */
- rv = sm5803_vbus_sink_enable(port, 1);
- if (rv)
- LOG_WRN("p%d: sink path enable failed: code %d", port, rv);
-
- /* Allow the charger IC to begin/continue switching. */
- charger_discharge_on_ac(0);
-
- return rv;
-}
-
-uint16_t tcpc_get_alert_status(void)
-{
- /*
- * TCPC 0 is embedded in the EC and processes interrupts in the chip
- * code (it83xx/intc.c). This function only needs to poll port C1 if
- * present.
- */
- uint16_t status = 0;
- int regval;
-
- /* Is the C1 port present and its IRQ line asserted? */
- if (board_get_usb_pd_port_count() == 2 &&
- !gpio_pin_get_dt(GPIO_DT_FROM_ALIAS(gpio_usb_c1_int_odl))) {
- /*
- * C1 IRQ is shared between BC1.2 and TCPC; poll TCPC to see if
- * it asserted the IRQ.
- */
- if (!tcpc_read16(1, TCPC_REG_ALERT, &regval)) {
- if (regval)
- status = PD_STATUS_TCPC_ALERT_1;
- }
- }
-
- return status;
-}
-
-void pd_power_supply_reset(int port)
-{
- int prev_en;
-
- if (port < 0 || port >= board_get_usb_pd_port_count())
- return;
-
- prev_en = charger_is_sourcing_otg_power(port);
-
- /* Disable Vbus */
- charger_enable_otg_power(port, 0);
-
- /* Discharge Vbus if previously enabled */
- if (prev_en)
- sm5803_set_vbus_disch(port, 1);
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-}
-
-int pd_set_power_supply_ready(int port)
-{
- enum ec_error_list rv;
-
- if (port < 0 || port > board_get_usb_pd_port_count()) {
- LOG_WRN("Port C%d does not exist, cannot enable VBUS", port);
- return EC_ERROR_INVAL;
- }
-
- /* Disable sinking */
- rv = sm5803_vbus_sink_enable(port, 0);
- if (rv) {
- LOG_WRN("C%d failed to disable sinking: %d", port, rv);
- return rv;
- }
-
- /* Disable Vbus discharge */
- rv = sm5803_set_vbus_disch(port, 0);
- if (rv) {
- LOG_WRN("C%d failed to clear VBUS discharge: %d", port, rv);
- return rv;
- }
-
- /* Provide Vbus */
- rv = charger_enable_otg_power(port, 1);
- if (rv) {
- LOG_WRN("C%d failed to enable VBUS sourcing: %d", port, rv);
- return rv;
- }
-
- /* Notify host of power info change. */
- pd_send_host_event(PD_EVENT_POWER_CHANGE);
-
- return EC_SUCCESS;
-}
-
-__override void typec_set_source_current_limit(int port, enum tcpc_rp_value rp)
-{
- int rv;
- const int current = rp == TYPEC_RP_3A0 ? 3000 : 1500;
-
- rv = charger_set_otg_current_voltage(port, current, 5000);
- if (rv != EC_SUCCESS) {
- LOG_WRN("Failed to set source ilimit on port %d to %d: %d",
- port, current, rv);
- }
-}
-
-void board_reset_pd_mcu(void)
-{
- /*
- * Do nothing. The integrated TCPC for C0 lacks a dedicated reset
- * command, and C1 (if present) doesn't have a reset pin connected
- * to the EC.
- */
-}
-
-#define INT_RECHECK_US 5000
-
-/* C0 interrupt line shared by BC 1.2 and charger */
-
-static void check_c0_line(void);
-DECLARE_DEFERRED(check_c0_line);
-
-static void notify_c0_chips(void)
-{
- usb_charger_task_set_event(0, USB_CHG_EVENT_BC12);
- sm5803_interrupt(0);
-}
-
-static void check_c0_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips
- */
- if (!gpio_pin_get_dt(GPIO_DT_FROM_NODELABEL(gpio_usb_c0_int_odl))) {
- notify_c0_chips();
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
- }
-}
-
-void usb_c0_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c0_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c0_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c0_line_data, INT_RECHECK_US);
-}
-
-/* C1 interrupt line shared by BC 1.2, TCPC, and charger */
-static void check_c1_line(void);
-DECLARE_DEFERRED(check_c1_line);
-
-static void notify_c1_chips(void)
-{
- schedule_deferred_pd_interrupt(1);
- usb_charger_task_set_event(1, USB_CHG_EVENT_BC12);
- /* Charger is handled in board_process_pd_alert */
-}
-
-static void check_c1_line(void)
-{
- /*
- * If line is still being held low, see if there's more to process from
- * one of the chips.
- */
- if (!gpio_pin_get_dt(GPIO_DT_FROM_ALIAS(gpio_usb_c1_int_odl))) {
- notify_c1_chips();
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
- }
-}
-
-void usb_c1_interrupt(enum gpio_signal s)
-{
- /* Cancel any previous calls to check the interrupt line */
- hook_call_deferred(&check_c1_line_data, -1);
-
- /* Notify all chips using this line that an interrupt came in */
- notify_c1_chips();
-
- /* Check the line again in 5ms */
- hook_call_deferred(&check_c1_line_data, INT_RECHECK_US);
-}
-
-/*
- * Check state of IRQ lines at startup, ensuring an IRQ that happened before
- * the EC started up won't get lost (leaving the IRQ line asserted and blocking
- * any further interrupts on the port).
- *
- * Although the PD task will check for pending TCPC interrupts on startup,
- * the charger sharing the IRQ will not be polled automatically.
- */
-void board_handle_initial_typec_irq(void)
-{
- check_c0_line();
- check_c1_line();
-}
-/*
- * This must run after sub-board detection (which happens in EC main()),
- * but isn't depended on by anything else either.
- */
-DECLARE_HOOK(HOOK_INIT, board_handle_initial_typec_irq, HOOK_PRIO_LAST);
-
-/*
- * Handle charger interrupts in the PD task. Not doing so can lead to a priority
- * inversion where we fail to respond to TCPC alerts quickly enough because we
- * don't get another edge on a shared IRQ until the charger interrupt is cleared
- * (or the IRQ is polled again), which happens in the low-priority charger task:
- * the high-priority type-C handler is thus blocked on the lower-priority
- * charger.
- *
- * To avoid that, we run charger interrupts at the same priority.
- */
-void board_process_pd_alert(int port)
-{
- /*
- * Port 0 doesn't use an external TCPC, so its interrupts don't need
- * this special handling.
- */
- if (port == 1 &&
- !gpio_pin_get_dt(GPIO_DT_FROM_ALIAS(gpio_usb_c1_int_odl))) {
- sm5803_handle_interrupt(port);
- }
-}
-
-int pd_snk_is_vbus_provided(int port)
-{
- int chg_det = 0;
-
- sm5803_get_chg_det(port, &chg_det);
-
- return chg_det;
-}