blob: 48e62a67f56e9a0a001bc1813f6adc7931cf8f13 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Si5324 clock driver
*
* Copyright (C) 2017-2018 Xilinx, Inc.
*
* Authors: Leon Woestenberg <leon@sidebranch.com>
* Venkateshwar Rao <vgannava@xilinx.com>
*/
#ifndef _CLK_SI5324_H_
#define _CLK_SI5324_H_
#define SI5324_BUS_BASE_ADDR 0x68
#define SI5324_CONTROL 0
#define SI5324_CONTROL_FREE_RUN BIT(6)
#define SI5324_FREE_RUN_EN 0x54
#define SI5324_INCK_PRIOR 1
#define SI5324_INCK_PRIOR_1_MASK 0xC
#define SI5324_INCK_PRIOI_2_MASK 0x3
#define SI5324_BWSEL 2
#define SI5324_BWSEL_MASK 0xF0
#define SI5324_BWSEL_SHIFT 4
#define SI5324_BWSEL_DEF_VAL 2
#define SI5324_CKSEL 3
#define SI5324_CKSEL_SQL_ICAL BIT(4)
#define SI5324_CKSEL_SHIFT 6
#define SI5324_CK_SEL 3
#define SI3324_AUTOSEL 4
#define SI5324_AUTOSEL_DEF 0x12
#define SI5324_ICMOS 5
#define SI5324_OUTPUT_SIGFMT 6
#define SI5324_OUTPUT_SF1_DEFAULT 0xF
#define SI5324_REFFRE_FOS 7
#define SI5324_HLOG 8
#define SI5324_AVG_HIST 9
#define SI5324_DSBL_CLKOUT 10
#define SI5324_DSBL_CLKOUT2 BIT(3)
#define SI5324_POWERDOWN 11
#define SI5324_PD_CK1 BIT(0)
#define SI5324_PD_CK2 BIT(1)
#define SI5324_PD_CK1_DIS 0x41
#define SI5324_PD_CK2_DIS 0x42
#define SI5324_FOS_LOCKT 19
#define SI5324_FOS_DEFAULT 0x23
#define SI5324_CK_ACTV_SEL 21
#define SI5324_CK_DEFAULT 0xFC
#define SI5324_CK_ACTV BIT(1)
#define SI5324_CK_SELPIN BIT(1)
#define SI5324_LOS_MSK 23
#define SI5324_FOS_L0L_MASK 24
/* output clock dividers */
#define SI5324_N1_HS 25
#define SI5324_N1_HS_VAL_SHIFT 5
#define SI5324_HSHIFT 16
#define SI5324_LSHIFT 8
#define SI5324_NC1_LS_H 31
#define SI5324_NC1_LS_M 32
#define SI5324_NC1_LS_L 33
#define SI5324_DIV_LS_MASK 0x0F
#define SI5324_DIV_HS_MASK 0xF0
#define SI5324_NC2_LS_H 34
#define SI5324_NC2_LS_M 35
#define SI5324_NC2_LS_L 36
#define SI5324_N2_HS_LS_H 40
#define SI5324_N2_HS_LS_H_VAL_SHIFT 5
#define SI5324_N2_LS_H 41
#define SI5324_N2_LS_L 42
#define SI5324_N31_CLKIN_H 43
#define SI5324_N31_CLKIN_M 44
#define SI5324_N31_CLKIN_L 45
#define SI5324_N32_CLKIN_H 46
#define SI5324_N32_CLKIN_M 47
#define SI5324_N32_CLKIN_L 48
#define SI5324_FOS_CLKIN_RATE 55
#define SI5324_PLL_ACTV_CLK 128
#define SI5324_LOS_STATUS 129
#define SI5324_CLKIN_LOL_STATUS 130
#define SI5324_LOS_FLG 131
#define SI5324_FOS_FLG 132
#define SI5324_PARTNO_H 134
#define SI5324_PARTNO_L 135
#define SI5324_RESET_CALIB 136
#define SI5324_RST_ALL BIT(7)
#define SI5324_CALIB_EN BIT(6)
#define SI5324_FASTLOCK 137
#define SI5324_FASTLOCK_EN BIT(0)
#define SI5324_LOS1_LOS2_EN 138
#define SI5324_SKEW1 142
#define SI5324_SKEW2 143
/* selects 2kHz to 710 MHz */
#define SI5324_CLKIN_MIN_FREQ 2000
#define SI5324_CLKIN_MAX_FREQ (710 * 1000 * 1000)
/* generates 2kHz to 945 MHz */
#define SI5324_CLKOUT_MIN_FREQ 2000
#define SI5324_CLKOUT_MAX_FREQ (945 * 1000 * 1000)
/* The following constants define the limits of the divider settings. */
#define SI5324_N1_HS_MIN 6
#define SI5324_N1_HS_MAX 11
#define SI5324_NC_LS_MIN 1
#define SI5324_NC_LS_MAX 0x100000
#define SI5324_N2_HS_MIN 4
#define SI5324_N2_HS_MAX 11
#define SI5324_N2_LS_MIN 2
#define SI5324_N2_LS_MAX 0x100000
#define SI5324_N3_MIN 1
#define SI5324_N3_MAX 0x080000
#define SI5324_SRC_XTAL 0
#define SI5324_SRC_CLKIN1 1
#define SI5324_SRC_CLKIN2 2
#define SI5324_SRC_CLKS 3
#define SI5324_CLKIN1 0
#define SI5324_CLKIN2 1
#define SI5324_MAX_CLKOUTS 2
#define NUM_NAME_IDS 6 /* 3 clkin, 1 pll, 2 clkout */
#define MAX_NAME_LEN 11
#define SI5324_PARAM_LEN 24
#define SI5324_NC_PARAM_LEN 6
#define SI5324_OUT_REGS 14
#define SI5324_N1_PARAM_LEN 1
#define SI5324_N2_PARAM_LEN 9
#define SI5324_REF_CLOCK 114285000UL
#define SI5324_RESET_DELAY_MS 20
#endif
|