diff options
Diffstat (limited to 'zephyr/program/nissa/joxer')
-rw-r--r-- | zephyr/program/nissa/joxer/cbi.dtsi | 32 | ||||
-rw-r--r-- | zephyr/program/nissa/joxer/generated.dtsi | 260 | ||||
-rw-r--r-- | zephyr/program/nissa/joxer/joxer_vif.xml | 346 | ||||
-rw-r--r-- | zephyr/program/nissa/joxer/keyboard.dtsi | 22 | ||||
-rw-r--r-- | zephyr/program/nissa/joxer/motionsense.dtsi | 148 | ||||
-rw-r--r-- | zephyr/program/nissa/joxer/overlay.dtsi | 459 | ||||
-rw-r--r-- | zephyr/program/nissa/joxer/power_signals.dtsi | 223 | ||||
-rw-r--r-- | zephyr/program/nissa/joxer/project.conf | 19 | ||||
-rw-r--r-- | zephyr/program/nissa/joxer/project.overlay | 14 | ||||
-rw-r--r-- | zephyr/program/nissa/joxer/pwm_leds.dtsi | 60 | ||||
-rw-r--r-- | zephyr/program/nissa/joxer/src/charger.c | 56 | ||||
-rw-r--r-- | zephyr/program/nissa/joxer/src/fan.c | 42 | ||||
-rw-r--r-- | zephyr/program/nissa/joxer/src/keyboard.c | 68 | ||||
-rw-r--r-- | zephyr/program/nissa/joxer/src/led.c | 181 | ||||
-rw-r--r-- | zephyr/program/nissa/joxer/src/usbc.c | 368 |
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, ®val)) { - 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; -} |