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