12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- // SPDX-License-Identifier: GPL-2.0
- /*
- * Copyright (c) Samsung Electronics Co., Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
- #ifndef __ADAPTIVE_MIPI_V2_H__
- #define __ADAPTIVE_MIPI_V2_H__
- /* Adaptive MIPI v2 interfaces for display drivers */
- #define MAX_MIPI_FREQ_CNT (4)
- #define INV_OSC_CLK (0)
- enum {
- DEFAULT_OSC_ID = 0,
- ALTERNATIVE_OSC_ID,
- MAX_OSC_FREQ_CNT,
- };
- enum {
- BANDWIDTH_10M_IDX = 0,
- BANDWIDTH_20M_IDX,
- MAX_BANDWIDTH_IDX,
- };
- struct adaptive_mipi_v2_table_element {
- int rat;
- int band;
- int from_ch;
- int end_ch;
- union {
- int mipi_clocks_rating[MAX_MIPI_FREQ_CNT];
- int osc_idx;
- };
- };
- struct adaptive_mipi_v2_adapter_funcs {
- int (*apply_freq)(int mipi_clk_kbps, int osc_clk_khz, void *ctx);
- };
- struct adaptive_mipi_v2_info {
- void *ctx;
- int mipi_clocks_kbps[MAX_MIPI_FREQ_CNT];
- int mipi_clocks_size;
- int osc_clocks_khz[MAX_OSC_FREQ_CNT];
- int osc_clocks_size;
- struct adaptive_mipi_v2_table_element *mipi_table[MAX_BANDWIDTH_IDX];
- int mipi_table_size[MAX_BANDWIDTH_IDX];
- struct adaptive_mipi_v2_table_element *osc_table;
- int osc_table_size;
- struct adaptive_mipi_v2_adapter_funcs *funcs;
- struct notifier_block ril_nb;
- };
- extern int sdp_init_adaptive_mipi_v2(struct adaptive_mipi_v2_info *info);
- extern int sdp_cleanup_adaptive_mipi_v2(struct adaptive_mipi_v2_info *info);
- #endif /* __ADAPTIVE_MIPI_V2_H__ */
|