diff options
-rw-r--r-- | drivers/acpi/acpi_lpss.c | 39 |
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 | ||
64 | struct lpss_shared_clock { | ||
65 | const char *name; | ||
66 | unsigned long rate; | ||
67 | struct clk *clk; | ||
68 | }; | ||
69 | |||
70 | struct lpss_private_data; | 64 | struct lpss_private_data; |
71 | 65 | ||
72 | struct lpss_device_desc { | 66 | struct 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 | ||
143 | static struct lpss_shared_clock pwm_clock = { | ||
144 | .name = "pwm_clk", | ||
145 | .rate = 25000000, | ||
146 | }; | ||
147 | |||
148 | static struct lpss_device_desc byt_pwm_dev_desc = { | 136 | static 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 | ||
153 | static struct lpss_device_desc byt_uart_dev_desc = { | 140 | static 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 | ||
174 | static struct lpss_shared_clock bsw_pwm_clock = { | ||
175 | .name = "pwm_clk", | ||
176 | .rate = 19200000, | ||
177 | }; | ||
178 | |||
179 | static 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); |