Skip to content

Commit bfa2bdd

Browse files
cristibirsannoglitch
authored andcommitted
clk: at91: add ACR in all PLL settings
Add the ACR register to all PLL settings and provide the correct ACR value for each PLL used in different SoCs. Suggested-by: Mihai Sain <mihai.sain@microchip.com> Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com> [nicolas.ferre@microchip.com: add sama7d65 and review commit message] Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
1 parent 94a1274 commit bfa2bdd

5 files changed

Lines changed: 14 additions & 0 deletions

File tree

drivers/clk/at91/pmc.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ struct clk_pll_characteristics {
8080
u16 *icpll;
8181
u8 *out;
8282
u8 upll : 1;
83+
u32 acr;
8384
};
8485

8586
struct clk_programmable_layout {

drivers/clk/at91/sam9x60.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ static const struct clk_pll_characteristics plla_characteristics = {
3636
.num_output = ARRAY_SIZE(plla_outputs),
3737
.output = plla_outputs,
3838
.core_output = core_outputs,
39+
.acr = UL(0x00020010),
3940
};
4041

4142
static const struct clk_range upll_outputs[] = {
@@ -48,6 +49,7 @@ static const struct clk_pll_characteristics upll_characteristics = {
4849
.output = upll_outputs,
4950
.core_output = core_outputs,
5051
.upll = true,
52+
.acr = UL(0x12023010), /* fIN = [18 MHz, 32 MHz]*/
5153
};
5254

5355
static const struct clk_pll_layout pll_frac_layout = {

drivers/clk/at91/sam9x7.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ static const struct clk_pll_characteristics plla_characteristics = {
107107
.num_output = ARRAY_SIZE(plla_outputs),
108108
.output = plla_outputs,
109109
.core_output = plla_core_outputs,
110+
.acr = UL(0x00020010), /* Old ACR_DEFAULT_PLLA value */
110111
};
111112

112113
static const struct clk_pll_characteristics upll_characteristics = {
@@ -115,27 +116,31 @@ static const struct clk_pll_characteristics upll_characteristics = {
115116
.output = upll_outputs,
116117
.core_output = upll_core_outputs,
117118
.upll = true,
119+
.acr = UL(0x12023010), /* fIN=[20 MHz, 32 MHz] */
118120
};
119121

120122
static const struct clk_pll_characteristics lvdspll_characteristics = {
121123
.input = { .min = 20000000, .max = 50000000 },
122124
.num_output = ARRAY_SIZE(lvdspll_outputs),
123125
.output = lvdspll_outputs,
124126
.core_output = lvdspll_core_outputs,
127+
.acr = UL(0x12023010), /* fIN=[20 MHz, 32 MHz] */
125128
};
126129

127130
static const struct clk_pll_characteristics audiopll_characteristics = {
128131
.input = { .min = 20000000, .max = 50000000 },
129132
.num_output = ARRAY_SIZE(audiopll_outputs),
130133
.output = audiopll_outputs,
131134
.core_output = audiopll_core_outputs,
135+
.acr = UL(0x12023010), /* fIN=[20 MHz, 32 MHz] */
132136
};
133137

134138
static const struct clk_pll_characteristics plladiv2_characteristics = {
135139
.input = { .min = 20000000, .max = 50000000 },
136140
.num_output = ARRAY_SIZE(plladiv2_outputs),
137141
.output = plladiv2_outputs,
138142
.core_output = plladiv2_core_outputs,
143+
.acr = UL(0x00020010), /* Old ACR_DEFAULT_PLLA value */
139144
};
140145

141146
/* Layout for fractional PLL ID PLLA. */

drivers/clk/at91/sama7d65.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ static const struct clk_pll_characteristics cpu_pll_characteristics = {
138138
.num_output = ARRAY_SIZE(cpu_pll_outputs),
139139
.output = cpu_pll_outputs,
140140
.core_output = core_outputs,
141+
.acr = UL(0x00070010),
141142
};
142143

143144
/* PLL characteristics. */
@@ -146,20 +147,23 @@ static const struct clk_pll_characteristics pll_characteristics = {
146147
.num_output = ARRAY_SIZE(pll_outputs),
147148
.output = pll_outputs,
148149
.core_output = core_outputs,
150+
.acr = UL(0x00070010),
149151
};
150152

151153
static const struct clk_pll_characteristics lvdspll_characteristics = {
152154
.input = { .min = 12000000, .max = 50000000 },
153155
.num_output = ARRAY_SIZE(lvdspll_outputs),
154156
.output = lvdspll_outputs,
155157
.core_output = lvdspll_core_outputs,
158+
.acr = UL(0x00070010),
156159
};
157160

158161
static const struct clk_pll_characteristics upll_characteristics = {
159162
.input = { .min = 20000000, .max = 50000000 },
160163
.num_output = ARRAY_SIZE(upll_outputs),
161164
.output = upll_outputs,
162165
.core_output = upll_core_outputs,
166+
.acr = UL(0x12020010),
163167
.upll = true,
164168
};
165169

drivers/clk/at91/sama7g5.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ static const struct clk_pll_characteristics cpu_pll_characteristics = {
113113
.num_output = ARRAY_SIZE(cpu_pll_outputs),
114114
.output = cpu_pll_outputs,
115115
.core_output = core_outputs,
116+
.acr = UL(0x00070010),
116117
};
117118

118119
/* PLL characteristics. */
@@ -121,6 +122,7 @@ static const struct clk_pll_characteristics pll_characteristics = {
121122
.num_output = ARRAY_SIZE(pll_outputs),
122123
.output = pll_outputs,
123124
.core_output = core_outputs,
125+
.acr = UL(0x00070010),
124126
};
125127

126128
/*

0 commit comments

Comments
 (0)