159d8bf5dSNishad Kamdar /* SPDX-License-Identifier: GPL-2.0 */ 259d8bf5dSNishad Kamdar /* 3b47b79d8SRamesh Shanmugasundaram * Maxim Integrated MAX2175 RF to Bits tuner driver 4b47b79d8SRamesh Shanmugasundaram * 5b47b79d8SRamesh Shanmugasundaram * This driver & most of the hard coded values are based on the reference 6b47b79d8SRamesh Shanmugasundaram * application delivered by Maxim for this device. 7b47b79d8SRamesh Shanmugasundaram * 8b47b79d8SRamesh Shanmugasundaram * Copyright (C) 2016 Maxim Integrated Products 9b47b79d8SRamesh Shanmugasundaram * Copyright (C) 2017 Renesas Electronics Corporation 10b47b79d8SRamesh Shanmugasundaram */ 11b47b79d8SRamesh Shanmugasundaram 12b47b79d8SRamesh Shanmugasundaram #ifndef __MAX2175_H__ 13b47b79d8SRamesh Shanmugasundaram #define __MAX2175_H__ 14b47b79d8SRamesh Shanmugasundaram 15b47b79d8SRamesh Shanmugasundaram #define MAX2175_EU_XTAL_FREQ 36864000 /* In Hz */ 16b47b79d8SRamesh Shanmugasundaram #define MAX2175_NA_XTAL_FREQ 40186125 /* In Hz */ 17b47b79d8SRamesh Shanmugasundaram 18b47b79d8SRamesh Shanmugasundaram enum max2175_region { 19b47b79d8SRamesh Shanmugasundaram MAX2175_REGION_EU = 0, /* Europe */ 20b47b79d8SRamesh Shanmugasundaram MAX2175_REGION_NA, /* North America */ 21b47b79d8SRamesh Shanmugasundaram }; 22b47b79d8SRamesh Shanmugasundaram 23b47b79d8SRamesh Shanmugasundaram enum max2175_band { 24b47b79d8SRamesh Shanmugasundaram MAX2175_BAND_AM = 0, 25b47b79d8SRamesh Shanmugasundaram MAX2175_BAND_FM, 26b47b79d8SRamesh Shanmugasundaram MAX2175_BAND_VHF, 27b47b79d8SRamesh Shanmugasundaram MAX2175_BAND_L, 28b47b79d8SRamesh Shanmugasundaram }; 29b47b79d8SRamesh Shanmugasundaram 30b47b79d8SRamesh Shanmugasundaram enum max2175_eu_mode { 31b47b79d8SRamesh Shanmugasundaram /* EU modes */ 32b47b79d8SRamesh Shanmugasundaram MAX2175_EU_FM_1_2 = 0, 33b47b79d8SRamesh Shanmugasundaram MAX2175_DAB_1_2, 34b47b79d8SRamesh Shanmugasundaram 35b47b79d8SRamesh Shanmugasundaram /* 36b47b79d8SRamesh Shanmugasundaram * Other possible modes to add in future 37b47b79d8SRamesh Shanmugasundaram * MAX2175_DAB_1_0, 38b47b79d8SRamesh Shanmugasundaram * MAX2175_DAB_1_3, 39b47b79d8SRamesh Shanmugasundaram * MAX2175_EU_FM_2_2, 40b47b79d8SRamesh Shanmugasundaram * MAX2175_EU_FMHD_4_0, 41b47b79d8SRamesh Shanmugasundaram * MAX2175_EU_AM_1_0, 42b47b79d8SRamesh Shanmugasundaram * MAX2175_EU_AM_2_2, 43b47b79d8SRamesh Shanmugasundaram */ 44b47b79d8SRamesh Shanmugasundaram }; 45b47b79d8SRamesh Shanmugasundaram 46b47b79d8SRamesh Shanmugasundaram enum max2175_na_mode { 47b47b79d8SRamesh Shanmugasundaram /* NA modes */ 48b47b79d8SRamesh Shanmugasundaram MAX2175_NA_FM_1_0 = 0, 49b47b79d8SRamesh Shanmugasundaram MAX2175_NA_FM_2_0, 50b47b79d8SRamesh Shanmugasundaram 51b47b79d8SRamesh Shanmugasundaram /* 52b47b79d8SRamesh Shanmugasundaram * Other possible modes to add in future 53b47b79d8SRamesh Shanmugasundaram * MAX2175_NA_FMHD_1_0, 54b47b79d8SRamesh Shanmugasundaram * MAX2175_NA_FMHD_1_2, 55b47b79d8SRamesh Shanmugasundaram * MAX2175_NA_AM_1_0, 56b47b79d8SRamesh Shanmugasundaram * MAX2175_NA_AM_1_2, 57b47b79d8SRamesh Shanmugasundaram */ 58b47b79d8SRamesh Shanmugasundaram }; 59b47b79d8SRamesh Shanmugasundaram 60b47b79d8SRamesh Shanmugasundaram /* Supported I2S modes */ 61b47b79d8SRamesh Shanmugasundaram enum { 62b47b79d8SRamesh Shanmugasundaram MAX2175_I2S_MODE0 = 0, 63b47b79d8SRamesh Shanmugasundaram MAX2175_I2S_MODE1, 64b47b79d8SRamesh Shanmugasundaram MAX2175_I2S_MODE2, 65b47b79d8SRamesh Shanmugasundaram MAX2175_I2S_MODE3, 66b47b79d8SRamesh Shanmugasundaram MAX2175_I2S_MODE4, 67b47b79d8SRamesh Shanmugasundaram }; 68b47b79d8SRamesh Shanmugasundaram 69b47b79d8SRamesh Shanmugasundaram /* Coefficient table groups */ 70b47b79d8SRamesh Shanmugasundaram enum { 71b47b79d8SRamesh Shanmugasundaram MAX2175_CH_MSEL = 0, 72b47b79d8SRamesh Shanmugasundaram MAX2175_EQ_MSEL, 73b47b79d8SRamesh Shanmugasundaram MAX2175_AA_MSEL, 74b47b79d8SRamesh Shanmugasundaram }; 75b47b79d8SRamesh Shanmugasundaram 76b47b79d8SRamesh Shanmugasundaram /* HSLS LO injection polarity */ 77b47b79d8SRamesh Shanmugasundaram enum { 78b47b79d8SRamesh Shanmugasundaram MAX2175_LO_BELOW_DESIRED = 0, 79b47b79d8SRamesh Shanmugasundaram MAX2175_LO_ABOVE_DESIRED, 80b47b79d8SRamesh Shanmugasundaram }; 81b47b79d8SRamesh Shanmugasundaram 82b47b79d8SRamesh Shanmugasundaram /* Channel FSM modes */ 83b47b79d8SRamesh Shanmugasundaram enum max2175_csm_mode { 84b47b79d8SRamesh Shanmugasundaram MAX2175_LOAD_TO_BUFFER = 0, 85b47b79d8SRamesh Shanmugasundaram MAX2175_PRESET_TUNE, 86b47b79d8SRamesh Shanmugasundaram MAX2175_SEARCH, 87b47b79d8SRamesh Shanmugasundaram MAX2175_AF_UPDATE, 88b47b79d8SRamesh Shanmugasundaram MAX2175_JUMP_FAST_TUNE, 89b47b79d8SRamesh Shanmugasundaram MAX2175_CHECK, 90b47b79d8SRamesh Shanmugasundaram MAX2175_LOAD_AND_SWAP, 91b47b79d8SRamesh Shanmugasundaram MAX2175_END, 92b47b79d8SRamesh Shanmugasundaram MAX2175_BUFFER_PLUS_PRESET_TUNE, 93b47b79d8SRamesh Shanmugasundaram MAX2175_BUFFER_PLUS_SEARCH, 94b47b79d8SRamesh Shanmugasundaram MAX2175_BUFFER_PLUS_AF_UPDATE, 95b47b79d8SRamesh Shanmugasundaram MAX2175_BUFFER_PLUS_JUMP_FAST_TUNE, 96b47b79d8SRamesh Shanmugasundaram MAX2175_BUFFER_PLUS_CHECK, 97b47b79d8SRamesh Shanmugasundaram MAX2175_BUFFER_PLUS_LOAD_AND_SWAP, 98b47b79d8SRamesh Shanmugasundaram MAX2175_NO_ACTION 99b47b79d8SRamesh Shanmugasundaram }; 100b47b79d8SRamesh Shanmugasundaram 101b47b79d8SRamesh Shanmugasundaram #endif /* __MAX2175_H__ */ 102