36 lines
826 B
C
36 lines
826 B
C
/*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*
|
|
* Copyright (c) 2023 Ventana Micro Systems Inc.
|
|
*
|
|
*/
|
|
|
|
#ifndef __SBI_CPPC_H__
|
|
#define __SBI_CPPC_H__
|
|
|
|
#include <sbi/sbi_types.h>
|
|
|
|
/** CPPC device */
|
|
struct sbi_cppc_device {
|
|
/** Name of the CPPC device */
|
|
char name[32];
|
|
|
|
/** probe - returns register width if implemented, 0 otherwise */
|
|
int (*cppc_probe)(unsigned long reg);
|
|
|
|
/** read the cppc register*/
|
|
int (*cppc_read)(unsigned long reg, uint64_t *val);
|
|
|
|
/** write to the cppc register*/
|
|
int (*cppc_write)(unsigned long reg, uint64_t val);
|
|
};
|
|
|
|
int sbi_cppc_probe(unsigned long reg);
|
|
int sbi_cppc_read(unsigned long reg, uint64_t *val);
|
|
int sbi_cppc_write(unsigned long reg, uint64_t val);
|
|
|
|
const struct sbi_cppc_device *sbi_cppc_get_device(void);
|
|
void sbi_cppc_set_device(const struct sbi_cppc_device *dev);
|
|
|
|
#endif
|