162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * AMD SoC Power Management Controller Driver 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (c) 2023, Advanced Micro Devices, Inc. 662306a36Sopenharmony_ci * All Rights Reserved. 762306a36Sopenharmony_ci * 862306a36Sopenharmony_ci * Author: Mario Limonciello <mario.limonciello@amd.com> 962306a36Sopenharmony_ci */ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#ifndef PMC_H 1262306a36Sopenharmony_ci#define PMC_H 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#include <linux/types.h> 1562306a36Sopenharmony_ci#include <linux/mutex.h> 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_cistruct amd_pmc_dev { 1862306a36Sopenharmony_ci void __iomem *regbase; 1962306a36Sopenharmony_ci void __iomem *smu_virt_addr; 2062306a36Sopenharmony_ci void __iomem *stb_virt_addr; 2162306a36Sopenharmony_ci void __iomem *fch_virt_addr; 2262306a36Sopenharmony_ci bool msg_port; 2362306a36Sopenharmony_ci u32 base_addr; 2462306a36Sopenharmony_ci u32 cpu_id; 2562306a36Sopenharmony_ci u32 active_ips; 2662306a36Sopenharmony_ci u32 dram_size; 2762306a36Sopenharmony_ci u32 num_ips; 2862306a36Sopenharmony_ci u32 s2d_msg_id; 2962306a36Sopenharmony_ci/* SMU version information */ 3062306a36Sopenharmony_ci u8 smu_program; 3162306a36Sopenharmony_ci u8 major; 3262306a36Sopenharmony_ci u8 minor; 3362306a36Sopenharmony_ci u8 rev; 3462306a36Sopenharmony_ci struct device *dev; 3562306a36Sopenharmony_ci struct pci_dev *rdev; 3662306a36Sopenharmony_ci struct mutex lock; /* generic mutex lock */ 3762306a36Sopenharmony_ci struct dentry *dbgfs_dir; 3862306a36Sopenharmony_ci struct quirk_entry *quirks; 3962306a36Sopenharmony_ci bool disable_8042_wakeup; 4062306a36Sopenharmony_ci}; 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_civoid amd_pmc_process_restore_quirks(struct amd_pmc_dev *dev); 4362306a36Sopenharmony_civoid amd_pmc_quirks_init(struct amd_pmc_dev *dev); 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci/* List of supported CPU ids */ 4662306a36Sopenharmony_ci#define AMD_CPU_ID_RV 0x15D0 4762306a36Sopenharmony_ci#define AMD_CPU_ID_RN 0x1630 4862306a36Sopenharmony_ci#define AMD_CPU_ID_PCO AMD_CPU_ID_RV 4962306a36Sopenharmony_ci#define AMD_CPU_ID_CZN AMD_CPU_ID_RN 5062306a36Sopenharmony_ci#define AMD_CPU_ID_YC 0x14B5 5162306a36Sopenharmony_ci#define AMD_CPU_ID_CB 0x14D8 5262306a36Sopenharmony_ci#define AMD_CPU_ID_PS 0x14E8 5362306a36Sopenharmony_ci#define AMD_CPU_ID_SP 0x14A4 5462306a36Sopenharmony_ci#define PCI_DEVICE_ID_AMD_1AH_M20H_ROOT 0x1507 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci#endif /* PMC_H */ 57