blob: 93fe607b97380158274f6b350d4131fbce306b42 [file] [log] [blame]
# 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_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" = "0x0f"
register "reg_prox_ctrl0" = "0x12"
register "reg_prox_ctrl1" = "0x12"
register "reg_prox_ctrl2" = "0x90"
register "reg_prox_ctrl3" = "0x60"
register "reg_prox_ctrl4" = "0x0c"
register "reg_prox_ctrl5" = "0x12"
register "reg_prox_ctrl6" = "0x3c"
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" = "0x5c"
register "reg_adv_ctrl11" = "0x52"
register "reg_adv_ctrl12" = "0xb5"
register "reg_adv_ctrl13" = "0x00"
register "reg_adv_ctrl14" = "0x80"
register "reg_adv_ctrl15" = "0x0c"
register "reg_adv_ctrl16" = "0x38"
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