brintos

brintos / linux-shallow public Read only

0
0
Text · 1.1 KiB · 750095f Raw
61 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Utility functions for parsing Tegra CVB voltage tables4 */5 6#ifndef __DRIVERS_CLK_TEGRA_CVB_H7#define __DRIVERS_CLK_TEGRA_CVB_H8 9#include <linux/types.h>10 11struct device;12 13#define MAX_DVFS_FREQS	4014 15struct rail_alignment {16	int offset_uv;17	int step_uv;18};19 20struct cvb_coefficients {21	int c0;22	int c1;23	int c2;24};25 26struct cvb_table_freq_entry {27	unsigned long freq;28	struct cvb_coefficients coefficients;29};30 31struct cvb_cpu_dfll_data {32	u32 tune0_low;33	u32 tune0_high;34	u32 tune1;35	unsigned int tune_high_min_millivolts;36};37 38struct cvb_table {39	int speedo_id;40	int process_id;41 42	int min_millivolts;43	int max_millivolts;44 45	int speedo_scale;46	int voltage_scale;47	struct cvb_table_freq_entry entries[MAX_DVFS_FREQS];48	struct cvb_cpu_dfll_data cpu_dfll_data;49};50 51const struct cvb_table *52tegra_cvb_add_opp_table(struct device *dev, const struct cvb_table *cvb_tables,53			size_t count, struct rail_alignment *align,54			int process_id, int speedo_id, int speedo_value,55			unsigned long max_freq);56void tegra_cvb_remove_opp_table(struct device *dev,57				const struct cvb_table *table,58				unsigned long max_freq);59 60#endif61