2 * Utility functions for parsing Tegra CVB voltage tables
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
8 * This program is distributed in the hope that it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15 #ifndef __DRIVERS_CLK_TEGRA_CVB_H
16 #define __DRIVERS_CLK_TEGRA_CVB_H
18 #include <linux/types.h>
22 #define MAX_DVFS_FREQS 40
24 struct rail_alignment
{
29 struct cvb_coefficients
{
35 struct cvb_table_freq_entry
{
37 struct cvb_coefficients coefficients
;
40 struct cvb_cpu_dfll_data
{
52 struct rail_alignment alignment
;
56 struct cvb_table_freq_entry entries
[MAX_DVFS_FREQS
];
57 struct cvb_cpu_dfll_data cpu_dfll_data
;
60 const struct cvb_table
*
61 tegra_cvb_add_opp_table(struct device
*dev
, const struct cvb_table
*cvb_tables
,
62 size_t count
, int process_id
, int speedo_id
,
63 int speedo_value
, unsigned long max_freq
);
64 void tegra_cvb_remove_opp_table(struct device
*dev
,
65 const struct cvb_table
*table
,
66 unsigned long max_freq
);