1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef CS2000_H_INCLUDED 3*4882a593Smuzhiyun #define CS2000_H_INCLUDED 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #define CS2000_DEV_ID 0x01 6*4882a593Smuzhiyun #define CS2000_DEV_CTRL 0x02 7*4882a593Smuzhiyun #define CS2000_DEV_CFG_1 0x03 8*4882a593Smuzhiyun #define CS2000_DEV_CFG_2 0x04 9*4882a593Smuzhiyun #define CS2000_GLOBAL_CFG 0x05 10*4882a593Smuzhiyun #define CS2000_RATIO_0 0x06 /* 32 bits, big endian */ 11*4882a593Smuzhiyun #define CS2000_RATIO_1 0x0a 12*4882a593Smuzhiyun #define CS2000_RATIO_2 0x0e 13*4882a593Smuzhiyun #define CS2000_RATIO_3 0x12 14*4882a593Smuzhiyun #define CS2000_FUN_CFG_1 0x16 15*4882a593Smuzhiyun #define CS2000_FUN_CFG_2 0x17 16*4882a593Smuzhiyun #define CS2000_FUN_CFG_3 0x1e 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun /* DEV_ID */ 19*4882a593Smuzhiyun #define CS2000_DEVICE_MASK 0xf8 20*4882a593Smuzhiyun #define CS2000_REVISION_MASK 0x07 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun /* DEV_CTRL */ 23*4882a593Smuzhiyun #define CS2000_UNLOCK 0x80 24*4882a593Smuzhiyun #define CS2000_AUX_OUT_DIS 0x02 25*4882a593Smuzhiyun #define CS2000_CLK_OUT_DIS 0x01 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun /* DEV_CFG_1 */ 28*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_MASK 0xe0 29*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_1 0x00 30*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_2 0x20 31*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_4 0x40 32*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_8 0x60 33*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_1_2 0x80 34*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_1_4 0xa0 35*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_1_8 0xc0 36*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_1_16 0xe0 37*4882a593Smuzhiyun #define CS2000_R_SEL_MASK 0x18 38*4882a593Smuzhiyun #define CS2000_R_SEL_SHIFT 3 39*4882a593Smuzhiyun #define CS2000_AUX_OUT_SRC_MASK 0x06 40*4882a593Smuzhiyun #define CS2000_AUX_OUT_SRC_REF_CLK 0x00 41*4882a593Smuzhiyun #define CS2000_AUX_OUT_SRC_CLK_IN 0x02 42*4882a593Smuzhiyun #define CS2000_AUX_OUT_SRC_CLK_OUT 0x04 43*4882a593Smuzhiyun #define CS2000_AUX_OUT_SRC_PLL_LOCK 0x06 44*4882a593Smuzhiyun #define CS2000_EN_DEV_CFG_1 0x01 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun /* DEV_CFG_2 */ 47*4882a593Smuzhiyun #define CS2000_LOCK_CLK_MASK 0x06 48*4882a593Smuzhiyun #define CS2000_LOCK_CLK_SHIFT 1 49*4882a593Smuzhiyun #define CS2000_FRAC_N_SRC_MASK 0x01 50*4882a593Smuzhiyun #define CS2000_FRAC_N_SRC_STATIC 0x00 51*4882a593Smuzhiyun #define CS2000_FRAC_N_SRC_DYNAMIC 0x01 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun /* GLOBAL_CFG */ 54*4882a593Smuzhiyun #define CS2000_FREEZE 0x08 55*4882a593Smuzhiyun #define CS2000_EN_DEV_CFG_2 0x01 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun /* FUN_CFG_1 */ 58*4882a593Smuzhiyun #define CS2000_CLK_SKIP_EN 0x80 59*4882a593Smuzhiyun #define CS2000_AUX_LOCK_CFG_MASK 0x40 60*4882a593Smuzhiyun #define CS2000_AUX_LOCK_CFG_PP_HIGH 0x00 61*4882a593Smuzhiyun #define CS2000_AUX_LOCK_CFG_OD_LOW 0x40 62*4882a593Smuzhiyun #define CS2000_REF_CLK_DIV_MASK 0x18 63*4882a593Smuzhiyun #define CS2000_REF_CLK_DIV_4 0x00 64*4882a593Smuzhiyun #define CS2000_REF_CLK_DIV_2 0x08 65*4882a593Smuzhiyun #define CS2000_REF_CLK_DIV_1 0x10 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun /* FUN_CFG_2 */ 68*4882a593Smuzhiyun #define CS2000_CLK_OUT_UNL 0x10 69*4882a593Smuzhiyun #define CS2000_L_F_RATIO_CFG_MASK 0x08 70*4882a593Smuzhiyun #define CS2000_L_F_RATIO_CFG_20_12 0x00 71*4882a593Smuzhiyun #define CS2000_L_F_RATIO_CFG_12_20 0x08 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun /* FUN_CFG_3 */ 74*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_MASK 0x70 75*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_1 0x00 76*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_2 0x10 77*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_4 0x20 78*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_8 0x30 79*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_16 0x40 80*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_32 0x50 81*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_64 0x60 82*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_128 0x70 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun #endif 85