aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/acpi_lpss.c39
1 files changed, 2 insertions, 37 deletions
diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
index b693098f2160..bcbdbd224c10 100644
--- a/drivers/acpi/acpi_lpss.c
+++ b/drivers/acpi/acpi_lpss.c
@@ -61,19 +61,12 @@ ACPI_MODULE_NAME("acpi_lpss");
61#define LPSS_LTR BIT(3) 61#define LPSS_LTR BIT(3)
62#define LPSS_SAVE_CTX BIT(4) 62#define LPSS_SAVE_CTX BIT(4)
63 63
64struct lpss_shared_clock {
65 const char *name;
66 unsigned long rate;
67 struct clk *clk;
68};
69
70struct lpss_private_data; 64struct lpss_private_data;
71 65
72struct lpss_device_desc { 66struct lpss_device_desc {
73 unsigned int flags; 67 unsigned int flags;
74 unsigned int prv_offset; 68 unsigned int prv_offset;
75 size_t prv_size_override; 69 size_t prv_size_override;
76 struct lpss_shared_clock *shared_clock;
77 void (*setup)(struct lpss_private_data *pdata); 70 void (*setup)(struct lpss_private_data *pdata);
78}; 71};
79 72
@@ -140,14 +133,8 @@ static struct lpss_device_desc lpt_sdio_dev_desc = {
140 .prv_size_override = 0x1018, 133 .prv_size_override = 0x1018,
141}; 134};
142 135
143static struct lpss_shared_clock pwm_clock = {
144 .name = "pwm_clk",
145 .rate = 25000000,
146};
147
148static struct lpss_device_desc byt_pwm_dev_desc = { 136static struct lpss_device_desc byt_pwm_dev_desc = {
149 .flags = LPSS_CLK | LPSS_SAVE_CTX, 137 .flags = LPSS_SAVE_CTX,
150 .shared_clock = &pwm_clock,
151}; 138};
152 139
153static struct lpss_device_desc byt_uart_dev_desc = { 140static struct lpss_device_desc byt_uart_dev_desc = {
@@ -171,16 +158,6 @@ static struct lpss_device_desc byt_i2c_dev_desc = {
171 .setup = byt_i2c_setup, 158 .setup = byt_i2c_setup,
172}; 159};
173 160
174static struct lpss_shared_clock bsw_pwm_clock = {
175 .name = "pwm_clk",
176 .rate = 19200000,
177};
178
179static struct lpss_device_desc bsw_pwm_dev_desc = {
180 .flags = LPSS_CLK | LPSS_SAVE_CTX,
181 .shared_clock = &bsw_pwm_clock,
182};
183
184#else 161#else
185 162
186#define LPSS_ADDR(desc) (0UL) 163#define LPSS_ADDR(desc) (0UL)
@@ -211,7 +188,7 @@ static const struct acpi_device_id acpi_lpss_device_ids[] = {
211 { "INT33FC", }, 188 { "INT33FC", },
212 189
213 /* Braswell LPSS devices */ 190 /* Braswell LPSS devices */
214 { "80862288", LPSS_ADDR(bsw_pwm_dev_desc) }, 191 { "80862288", LPSS_ADDR(byt_pwm_dev_desc) },
215 { "8086228A", LPSS_ADDR(byt_uart_dev_desc) }, 192 { "8086228A", LPSS_ADDR(byt_uart_dev_desc) },
216 { "8086228E", LPSS_ADDR(byt_spi_dev_desc) }, 193 { "8086228E", LPSS_ADDR(byt_spi_dev_desc) },
217 { "808622C1", LPSS_ADDR(byt_i2c_dev_desc) }, 194 { "808622C1", LPSS_ADDR(byt_i2c_dev_desc) },
@@ -251,7 +228,6 @@ static int register_device_clock(struct acpi_device *adev,
251 struct lpss_private_data *pdata) 228 struct lpss_private_data *pdata)
252{ 229{
253 const struct lpss_device_desc *dev_desc = pdata->dev_desc; 230 const struct lpss_device_desc *dev_desc = pdata->dev_desc;
254 struct lpss_shared_clock *shared_clock = dev_desc->shared_clock;
255 const char *devname = dev_name(&adev->dev); 231 const char *devname = dev_name(&adev->dev);
256 struct clk *clk = ERR_PTR(-ENODEV); 232 struct clk *clk = ERR_PTR(-ENODEV);
257 struct lpss_clk_data *clk_data; 233 struct lpss_clk_data *clk_data;
@@ -273,17 +249,6 @@ static int register_device_clock(struct acpi_device *adev,
273 parent = clk_data->name; 249 parent = clk_data->name;
274 prv_base = pdata->mmio_base + dev_desc->prv_offset; 250 prv_base = pdata->mmio_base + dev_desc->prv_offset;
275 251
276 if (shared_clock) {
277 clk = shared_clock->clk;
278 if (!clk) {
279 clk = clk_register_fixed_rate(NULL, shared_clock->name,
280 "lpss_clk", 0,
281 shared_clock->rate);
282 shared_clock->clk = clk;
283 }
284 parent = shared_clock->name;
285 }
286
287 if (pdata->fixed_clk_rate) { 252 if (pdata->fixed_clk_rate) {
288 clk = clk_register_fixed_rate(NULL, devname, parent, 0, 253 clk = clk_register_fixed_rate(NULL, devname, parent, 0,
289 pdata->fixed_clk_rate); 254 pdata->fixed_clk_rate);