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