1c04cf9e1SMario Limonciello /* SPDX-License-Identifier: GPL-2.0-only */ 2c04cf9e1SMario Limonciello /* 3c04cf9e1SMario Limonciello * AMD Platform Security Processor (PSP) Dynamic Boost Control support 4c04cf9e1SMario Limonciello * 5c04cf9e1SMario Limonciello * Copyright (C) 2023 Advanced Micro Devices, Inc. 6c04cf9e1SMario Limonciello * 7c04cf9e1SMario Limonciello * Author: Mario Limonciello <mario.limonciello@amd.com> 8c04cf9e1SMario Limonciello */ 9c04cf9e1SMario Limonciello 10c04cf9e1SMario Limonciello #ifndef __DBC_H__ 11c04cf9e1SMario Limonciello #define __DBC_H__ 12c04cf9e1SMario Limonciello 13c04cf9e1SMario Limonciello #include <uapi/linux/psp-dbc.h> 14c04cf9e1SMario Limonciello 15c04cf9e1SMario Limonciello #include <linux/device.h> 16c04cf9e1SMario Limonciello #include <linux/miscdevice.h> 17c04cf9e1SMario Limonciello #include <linux/psp-platform-access.h> 18c04cf9e1SMario Limonciello 19c04cf9e1SMario Limonciello #include "psp-dev.h" 20c04cf9e1SMario Limonciello 21c04cf9e1SMario Limonciello struct psp_dbc_device { 22c04cf9e1SMario Limonciello struct device *dev; 23c04cf9e1SMario Limonciello 24c04cf9e1SMario Limonciello union dbc_buffer *mbox; 25c04cf9e1SMario Limonciello 26c04cf9e1SMario Limonciello struct mutex ioctl_mutex; 27c04cf9e1SMario Limonciello 28c04cf9e1SMario Limonciello struct miscdevice char_dev; 29*2ac85e22SMario Limonciello 30*2ac85e22SMario Limonciello /* used to abstract communication path */ 31*2ac85e22SMario Limonciello bool use_ext; 32*2ac85e22SMario Limonciello u32 header_size; 33*2ac85e22SMario Limonciello u32 *payload_size; 34*2ac85e22SMario Limonciello u32 *result; 35*2ac85e22SMario Limonciello void *payload; 36c04cf9e1SMario Limonciello }; 37c04cf9e1SMario Limonciello 38c04cf9e1SMario Limonciello union dbc_buffer { 39*2ac85e22SMario Limonciello struct psp_request pa_req; 40c04cf9e1SMario Limonciello }; 41c04cf9e1SMario Limonciello 42c04cf9e1SMario Limonciello void dbc_dev_destroy(struct psp_device *psp); 43c04cf9e1SMario Limonciello int dbc_dev_init(struct psp_device *psp); 44c04cf9e1SMario Limonciello 45c04cf9e1SMario Limonciello #endif /* __DBC_H */ 46