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