1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- // SPDX-License-Identifier: BSD-2-Clause
- /*
- * fdt_pmu.c - Flat Device Tree PMU helper routines
- *
- * Copyright (c) 2021 Western Digital Corporation or its affiliates.
- *
- * Authors:
- * Atish Patra <atish.patra@wdc.com>
- */
- #ifndef __FDT_PMU_H__
- #define __FDT_PMU_H__
- #include <sbi/sbi_types.h>
- #ifdef CONFIG_FDT_PMU
- /**
- * Fix up the PMU node in the device tree
- *
- * This routine:
- * 1. Disables opensbi specific properties from the DT
- *
- * It is recommended that platform support call this function in
- * their final_init() platform operation.
- *
- * @param fdt device tree blob
- */
- void fdt_pmu_fixup(void *fdt);
- /**
- * Setup PMU data from device tree
- *
- * @param fdt device tree blob
- *
- * @return 0 on success and negative error code on failure
- */
- int fdt_pmu_setup(void *fdt);
- /**
- * Get the mhpmevent select value read from DT for a given event
- * @param event_idx Event ID of the given event
- *
- * @return The select value read from DT or 0 if given index was not found
- */
- uint64_t fdt_pmu_get_select_value(uint32_t event_idx);
- #else
- static inline void fdt_pmu_fixup(void *fdt) { }
- static inline int fdt_pmu_setup(void *fdt) { return 0; }
- static inline uint64_t fdt_pmu_get_select_value(uint32_t event_idx) { return 0; }
- #endif
- #endif
|