drivers/intel/dptf: Add support for Battery participant
As per Intel Dynamic Tuning revision 1.3.13 (Doc no: 541817) add support for TBAT device under \_SB.DPTF BUG=b:205928013 TEST=Build, boot brya0 and dump SSDT to check TBAT device Device (TBAT) { Name (_HID, "INTC1061") // _HID: Hardware ID Name (_UID, "TBAT") // _UID: Unique ID Name (_STR, "Battery Participant") // _STR: Description String Name (PTYP, 0xC) Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } } Signed-off-by: Varshit B Pandya <varshit.b.pandya@intel.com> Change-Id: I9104318fd838f30253ab1eeac4e212b3b917f516 Reviewed-on: https://review.coreboot.org/c/coreboot/+/63315 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com> Reviewed-by: Sumeet R Pawnikar <sumeet.r.pawnikar@intel.com>
This commit is contained in:
parent
1e124b94fc
commit
170a76caa7
|
@ -76,6 +76,8 @@ static const char *namestring_of(enum dptf_participant participant)
|
||||||
return "TPCH";
|
return "TPCH";
|
||||||
case DPTF_POWER:
|
case DPTF_POWER:
|
||||||
return "TPWR";
|
return "TPWR";
|
||||||
|
case DPTF_BATTERY:
|
||||||
|
return "TBAT";
|
||||||
default:
|
default:
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,3 +19,10 @@ config DRIVERS_INTEL_DPTF_SUPPORTS_TPWR
|
||||||
help
|
help
|
||||||
When enabled, chip driver/intel/dptf will publish information to the
|
When enabled, chip driver/intel/dptf will publish information to the
|
||||||
SSDT for TPWR device.
|
SSDT for TPWR device.
|
||||||
|
|
||||||
|
config DRIVERS_INTEL_DPTF_SUPPORTS_TBAT
|
||||||
|
def_bool n
|
||||||
|
depends on DRIVERS_INTEL_DPTF
|
||||||
|
help
|
||||||
|
When enabled, chip driver/intel/dptf will publish information to the
|
||||||
|
SSDT for TBAT device.
|
||||||
|
|
|
@ -14,12 +14,14 @@ enum dptf_generic_participant_type {
|
||||||
DPTF_GENERIC_PARTICIPANT_TYPE_TSR = 0x3,
|
DPTF_GENERIC_PARTICIPANT_TYPE_TSR = 0x3,
|
||||||
DPTF_GENERIC_PARTICIPANT_TYPE_TPCH = 0x5,
|
DPTF_GENERIC_PARTICIPANT_TYPE_TPCH = 0x5,
|
||||||
DPTF_GENERIC_PARTICIPANT_TYPE_CHARGER = 0xB,
|
DPTF_GENERIC_PARTICIPANT_TYPE_CHARGER = 0xB,
|
||||||
|
DPTF_GENERIC_PARTICIPANT_TYPE_BATTERY = 0xC,
|
||||||
DPTF_GENERIC_PARTICIPANT_TYPE_POWER = 0x11,
|
DPTF_GENERIC_PARTICIPANT_TYPE_POWER = 0x11,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DEFAULT_CHARGER_STR "Battery Charger"
|
#define DEFAULT_CHARGER_STR "Battery Charger"
|
||||||
#define DEFAULT_TPCH_STR "Intel PCH FIVR Participant"
|
#define DEFAULT_TPCH_STR "Intel PCH FIVR Participant"
|
||||||
#define DEFAULT_POWER_STR "Power Participant"
|
#define DEFAULT_POWER_STR "Power Participant"
|
||||||
|
#define DEFAULT_BATTERY_STR "Battery Participant"
|
||||||
|
|
||||||
#define PMC_IPC_COMMAND_FIVR_SIZE 0x8
|
#define PMC_IPC_COMMAND_FIVR_SIZE 0x8
|
||||||
|
|
||||||
|
@ -388,6 +390,26 @@ static void write_tpwr_methods(const struct dptf_platform_info *platform_info)
|
||||||
write_create_tpwr(platform_info);
|
write_create_tpwr(platform_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void write_create_tbat(const struct dptf_platform_info *platform_info)
|
||||||
|
{
|
||||||
|
acpigen_write_device("TBAT");
|
||||||
|
acpigen_write_name("_HID");
|
||||||
|
if (platform_info->tbat_device_hid != NULL)
|
||||||
|
dptf_write_hid(platform_info->use_eisa_hids, platform_info->tbat_device_hid);
|
||||||
|
acpigen_write_name_string("_UID", "TBAT");
|
||||||
|
acpigen_write_name_string("_STR", DEFAULT_BATTERY_STR);
|
||||||
|
acpigen_write_name_integer("PTYP", DPTF_GENERIC_PARTICIPANT_TYPE_BATTERY);
|
||||||
|
acpigen_write_STA(ACPI_STATUS_DEVICE_ALL_ON);
|
||||||
|
acpigen_write_device_end(); /* TBAT Battery Participant Device */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void write_tbat_methods(const struct dptf_platform_info *platform_info)
|
||||||
|
{
|
||||||
|
write_create_tbat(platform_info);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* \_SB.DPTF - note: leaves the Scope open for child devices */
|
/* \_SB.DPTF - note: leaves the Scope open for child devices */
|
||||||
static void write_open_dptf_device(const struct device *dev,
|
static void write_open_dptf_device(const struct device *dev,
|
||||||
const struct dptf_platform_info *platform_info)
|
const struct dptf_platform_info *platform_info)
|
||||||
|
@ -429,6 +451,9 @@ static void write_device_definitions(const struct device *dev)
|
||||||
if (CONFIG(DRIVERS_INTEL_DPTF_SUPPORTS_TPWR))
|
if (CONFIG(DRIVERS_INTEL_DPTF_SUPPORTS_TPWR))
|
||||||
write_tpwr_methods(platform_info);
|
write_tpwr_methods(platform_info);
|
||||||
|
|
||||||
|
if (CONFIG(DRIVERS_INTEL_DPTF_SUPPORTS_TBAT))
|
||||||
|
write_tbat_methods(platform_info);
|
||||||
|
|
||||||
acpigen_pop_len(); /* DPTF Device (write_open_dptf_device) */
|
acpigen_pop_len(); /* DPTF Device (write_open_dptf_device) */
|
||||||
acpigen_pop_len(); /* Scope */
|
acpigen_pop_len(); /* Scope */
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ struct dptf_platform_info {
|
||||||
const char *fan_hid;
|
const char *fan_hid;
|
||||||
const char *tpch_device_hid;
|
const char *tpch_device_hid;
|
||||||
const char *tpwr_device_hid;
|
const char *tpwr_device_hid;
|
||||||
|
const char *tbat_device_hid;
|
||||||
struct {
|
struct {
|
||||||
const char *set_fivr_low_clock_method;
|
const char *set_fivr_low_clock_method;
|
||||||
const char *set_fivr_high_clock_method;
|
const char *set_fivr_high_clock_method;
|
||||||
|
|
|
@ -27,6 +27,7 @@ enum dptf_participant {
|
||||||
DPTF_TEMP_SENSOR_4,
|
DPTF_TEMP_SENSOR_4,
|
||||||
DPTF_TPCH,
|
DPTF_TPCH,
|
||||||
DPTF_POWER,
|
DPTF_POWER,
|
||||||
|
DPTF_BATTERY,
|
||||||
DPTF_PARTICIPANT_COUNT,
|
DPTF_PARTICIPANT_COUNT,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue