# SPDX-License-Identifier: GPL-2.0-or-later fw_config field AUDIO_AMP 35 option AUDIO_AMP_I2C_MODE 0 option AUDIO_AMP_AUTO_MODE 1 end end chip soc/amd/picasso # Start : OPN Performance Configuration # See devhub #56670 Chapter 5 for documentation # For the below fields, 0 indicates use SOC default # System config index register "system_config" = "1" # Set STAPM confiuration. All of these fields must be set >0 to take affect register "slow_ppt_limit_mW" = "6000" register "fast_ppt_limit_mW" = "9000" register "slow_ppt_time_constant_s" = "5" register "stapm_time_constant_s" = "1400" register "sustained_power_limit_mW" = "4800" # End : OPN Performance Configuration register "telemetry_vddcr_vdd_slope_mA" = "27225" register "telemetry_vddcr_vdd_offset" = "187" register "telemetry_vddcr_soc_slope_mA" = "26559" register "telemetry_vddcr_soc_offset" = "89" # eDP power sequence. all pwr sequence numbers below are in uint of 4ms, # and "0" as default value register "edp_pwr_adjust_enable" = "1" register "pwron_digon_to_de" = "0" register "pwron_de_to_varybl" = "0" register "pwrdown_varybloff_to_de" = "0" register "pwrdown_de_to_digoff" = "0" register "pwroff_delay" = "0" register "pwron_varybl_to_blon" = "5" register "pwrdown_bloff_to_varybloff" = "5" register "min_allowed_bl_level" = "0" # USB OC pin mapping register "usb_port_overcurrent_pin[1]" = "USB_OC_NONE" # LTE instead of USB C1 # Controller0 Port0 register "usb_2_port_tune_params[0]" = "{ .com_pds_tune = 0x07, .sq_rx_tune = 0x3, .tx_fsls_tune = 0x3, .tx_pre_emp_amp_tune = 0x03, .tx_pre_emp_pulse_tune = 0x0, .tx_rise_tune = 0x1, .tx_vref_tune = 0x6, .tx_hsxv_tune = 0x3, .tx_res_tune = 0x01, }" # Controller0 Port1 register "usb_2_port_tune_params[1]" = "{ .com_pds_tune = 0x07, .sq_rx_tune = 0x3, .tx_fsls_tune = 0x3, .tx_pre_emp_amp_tune = 0x03, .tx_pre_emp_pulse_tune = 0x0, .tx_rise_tune = 0x1, .tx_vref_tune = 0x6, .tx_hsxv_tune = 0x3, .tx_res_tune = 0x01, }" # Controller0 Port2 register "usb_2_port_tune_params[2]" = "{ .com_pds_tune = 0x07, .sq_rx_tune = 0x3, .tx_fsls_tune = 0x3, .tx_pre_emp_amp_tune = 0x03, .tx_pre_emp_pulse_tune = 0x0, .tx_rise_tune = 0x1, .tx_vref_tune = 0x6, .tx_hsxv_tune = 0x3, .tx_res_tune = 0x01, }" # Controller0 Port3 register "usb_2_port_tune_params[3]" = "{ .com_pds_tune = 0x07, .sq_rx_tune = 0x3, .tx_fsls_tune = 0x3, .tx_pre_emp_amp_tune = 0x03, .tx_pre_emp_pulse_tune = 0x0, .tx_rise_tune = 0x1, .tx_vref_tune = 0x6, .tx_hsxv_tune = 0x3, .tx_res_tune = 0x01, }" # Controller1 Port0 register "usb_2_port_tune_params[4]" = "{ .com_pds_tune = 0x07, .sq_rx_tune = 0x3, .tx_fsls_tune = 0x3, .tx_pre_emp_amp_tune = 0x03, .tx_pre_emp_pulse_tune = 0x0, .tx_rise_tune = 0x1, .tx_vref_tune = 0x6, .tx_hsxv_tune = 0x3, .tx_res_tune = 0x01, }" # Controller1 Port1 register "usb_2_port_tune_params[5]" = "{ .com_pds_tune = 0x07, .sq_rx_tune = 0x3, .tx_fsls_tune = 0x3, .tx_pre_emp_amp_tune = 0x03, .tx_pre_emp_pulse_tune = 0x0, .tx_rise_tune = 0x1, .tx_vref_tune = 0x6, .tx_hsxv_tune = 0x3, .tx_res_tune = 0x01, }" # I2C2 for touchscreen and trackpad register "i2c[2]" = "{ .speed = I2C_SPEED_FAST, .rise_time_ns = 18, /* 0 to 2.31 (3.3 * .7) */ .fall_time_ns = 57, /* 2.31 to 0 */ }" # I2C3 for H1 register "i2c[3]" = "{ .speed = I2C_SPEED_FAST, .rise_time_ns = 110, .fall_time_ns = 5, .early_init = true, }" register "emmc_config" = "{ .timing = SD_EMMC_EMMC_HS400, .sdr104_hs400_driver_strength = SD_EMMC_DRIVE_STRENGTH_A, .init_khz_preset = 400, }" # See AMD 55570-B1 Table 13: PCI Device ID Assignments. device domain 0 on subsystemid 0x1022 0x1510 inherit device pci 1.3 on chip drivers/generic/bayhub_lv2 register "enable_power_saving" = "1" device pci 00.0 on end end end # GPP Bridge 2 - SD device pci 8.1 on device pci 0.5 on chip drivers/amd/i2s_machine_dev register "hid" = ""AMDI1015"" # DMIC select GPIO for ACP machine device # This GPIO is used to select DMIC0 or DMIC1 by the # kernel driver. It does not really have a polarity # since low and high control the selection of DMIC and # hence does not have an active polarity. # Kernel driver does not use the polarity field and # instead treats the GPIO selection as follows: # Set low (0) = Select DMIC0 # Set high (1) = Select DMIC1 register "dmic_select_gpio" = "ACPI_GPIO_OUTPUT(GPIO_67)" device generic 0.0 on probe AUDIO_AMP AUDIO_AMP_I2C_MODE end end chip drivers/amd/i2s_machine_dev register "hid" = ""10021015"" # DMIC select GPIO for ACP machine device # This GPIO is used to select DMIC0 or DMIC1 by the # kernel driver. It does not really have a polarity # since low and high control the selection of DMIC and # hence does not have an active polarity. # Kernel driver does not use the polarity field and # instead treats the GPIO selection as follows: # Set low (0) = Select DMIC0 # Set high (1) = Select DMIC1 register "dmic_select_gpio" = "ACPI_GPIO_OUTPUT(GPIO_67)" device generic 1.0 on probe AUDIO_AMP AUDIO_AMP_AUTO_MODE end end chip drivers/generic/alc1015 register "sdb" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_91)" device generic 1.1 on probe AUDIO_AMP AUDIO_AMP_AUTO_MODE end end end # Audio end device pci 14.3 on # - D14F3 bridge chip ec/google/chromeec device pnp 0c09.0 on chip ec/google/chromeec/i2c_tunnel register "uid" = "1" register "remote_bus" = "8" device generic 0.1 on chip drivers/i2c/generic register "hid" = ""10EC1015"" register "desc" = ""RT1015 Tweeter Left Speaker Amp"" register "uid" = "0" register "name" = ""TL"" device i2c 28 on end end chip drivers/i2c/generic register "hid" = ""10EC1015"" register "desc" = ""RT1015 Tweeter Right Speaker Amp"" register "uid" = "1" register "name" = ""TR"" device i2c 29 on end end probe AUDIO_AMP AUDIO_AMP_I2C_MODE end end end end end end # domain device mmio 0xfedc4000 on # APU_I2C2_BASE chip drivers/i2c/hid register "generic.hid" = ""GDIX0000"" register "generic.desc" = ""Goodix Touchscreen"" register "generic.irq_gpio" = "ACPI_GPIO_IRQ_LEVEL_LOW(GPIO_12)" register "generic.probed" = "1" register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_32)" register "generic.enable_delay_ms" = "10" register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPIO_140)" register "generic.reset_off_delay_ms" = "2" register "generic.reset_delay_ms" = "20" register "generic.stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPIO_144)" register "generic.stop_delay_ms" = "160" register "generic.stop_off_delay_ms" = "2" register "generic.has_power_resource" = "1" register "hid_desc_reg_offset" = "0x01" device i2c 5d on end end chip drivers/i2c/generic register "hid" = ""ELAN0001"" register "desc" = ""ELAN Touchscreen"" register "probed" = "1" register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_12)" register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_32)" register "enable_delay_ms" = "1" register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPIO_140)" register "reset_delay_ms" = "20" register "reset_off_delay_ms" = "2" register "stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPIO_144)" register "stop_off_delay_ms" = "2" register "has_power_resource" = "1" register "disable_gpio_export_in_crs" = "1" device i2c 10 on end end chip drivers/generic/gpio_keys register "name" = ""PENH"" register "gpio" = "ACPI_GPIO_INPUT_ACTIVE_LOW(GPIO_4)" register "key.dev_name" = ""EJCT"" register "key.wakeup_event_action" = "EV_ACT_DEASSERTED" register "key.linux_code" = "SW_PEN_INSERTED" register "key.linux_input_type" = "EV_SW" register "key.label" = ""pen_eject"" register "key.debounce_interval" = "100" register "key.wakeup_route" = "WAKEUP_ROUTE_GPIO_IRQ" device generic 0 on end end chip drivers/i2c/generic register "hid" = ""ELAN0000"" register "desc" = ""ELAN Touchpad"" register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_LOW(GPIO_9)" register "wake" = "GEVENT_22" register "probed" = "1" device i2c 15 on end end chip drivers/i2c/hid register "generic.hid" = ""PNP0C50"" register "generic.desc" = ""Synaptics Touchpad"" register "generic.irq_gpio" = "ACPI_GPIO_IRQ_LEVEL_LOW(GPIO_9)" register "generic.wake" = "GEVENT_22" register "generic.probed" = "1" register "hid_desc_reg_offset" = "0x20" device i2c 2c on end end chip drivers/i2c/sx9324 register "desc" = ""SAR Proximity Sensor"" register "irq_gpio" = "ACPI_GPIO_IRQ_LEVEL_LOW(GPIO_40)" register "uid" = "2" register "reg_irq_msk" = "0x67" register "reg_irq_cfg0" = "0x00" register "reg_irq_cfg1" = "0x80" register "reg_irq_cfg2" = "0x00" register "reg_gnrl_ctrl0" = "0x16" register "reg_gnrl_ctrl1" = "0x21" register "reg_afe_ctrl0" = "0x00" register "reg_afe_ctrl1" = "0x10" register "reg_afe_ctrl2" = "0x00" register "reg_afe_ctrl3" = "0x00" register "reg_afe_ctrl4" = "0x07" register "reg_afe_ctrl5" = "0x00" register "reg_afe_ctrl6" = "0x00" register "reg_afe_ctrl7" = "0x07" register "reg_afe_ctrl8" = "0x12" register "reg_afe_ctrl9" = "0x0b" register "reg_afe_ph0" = "0x29" register "reg_afe_ph1" = "0x26" register "reg_afe_ph2" = "0x1a" register "reg_afe_ph3" = "0x16" register "reg_prox_ctrl0" = "0x10" register "reg_prox_ctrl1" = "0x12" register "reg_prox_ctrl2" = "0x20" register "reg_prox_ctrl3" = "0x20" register "reg_prox_ctrl4" = "0x0c" register "reg_prox_ctrl5" = "0x00" register "reg_prox_ctrl6" = "0x18" register "reg_prox_ctrl7" = "0x58" register "reg_adv_ctrl0" = "0x00" register "reg_adv_ctrl1" = "0x00" register "reg_adv_ctrl2" = "0x00" register "reg_adv_ctrl3" = "0x00" register "reg_adv_ctrl4" = "0x00" register "reg_adv_ctrl5" = "0x05" register "reg_adv_ctrl6" = "0x00" register "reg_adv_ctrl7" = "0x00" register "reg_adv_ctrl8" = "0x00" register "reg_adv_ctrl9" = "0x00" register "reg_adv_ctrl10" = "0x0c" register "reg_adv_ctrl11" = "0x00" register "reg_adv_ctrl12" = "0xb5" register "reg_adv_ctrl13" = "0x00" register "reg_adv_ctrl14" = "0x80" register "reg_adv_ctrl15" = "0x0c" register "reg_adv_ctrl16" = "0x08" register "reg_adv_ctrl17" = "0x56" register "reg_adv_ctrl18" = "0x33" register "reg_adv_ctrl19" = "0xf0" register "reg_adv_ctrl20" = "0xf0" device i2c 28 on end end end end # chip soc/amd/picasso