diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-06-26 14:54:29 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-06-26 14:54:29 -0400 |
commit | f5dcb68086ba2e033b2af32b0da0c7a7c7872a09 (patch) | |
tree | 89c41089b492f8d8d411185bd7cb07538802e837 /drivers/pinctrl/berlin | |
parent | 3d9f96d850e4bbfae24dc9aee03033dd77c81596 (diff) | |
parent | 4af34b572a85c44c55491a10693535a79627c478 (diff) |
Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC driver updates from Kevin Hilman:
"Some of these are for drivers/soc, where we're now putting
SoC-specific drivers these days. Some are for other driver subsystems
where we have received acks from the appropriate maintainers.
Some highlights:
- simple-mfd: document DT bindings and misc updates
- migrate mach-berlin to simple-mfd for clock, pinctrl and reset
- memory: support for Tegra132 SoC
- memory: introduce tegra EMC driver for scaling memory frequency
- misc. updates for ARM CCI and CCN busses"
* tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (48 commits)
drivers: soc: sunxi: Introduce SoC driver to map SRAMs
arm-cci: Add aliases for PMU events
arm-cci: Add CCI-500 PMU support
arm-cci: Sanitise CCI400 PMU driver specific code
arm-cci: Abstract handling for CCI events
arm-cci: Abstract out the PMU counter details
arm-cci: Cleanup PMU driver code
arm-cci: Do not enable CCI-400 PMU by default
firmware: qcom: scm: Add HDCP Support
ARM: berlin: add an ADC node for the BG2Q
ARM: berlin: remove useless chip and system ctrl compatibles
clk: berlin: drop direct of_iomap of nodes reg property
ARM: berlin: move BG2Q clock node
ARM: berlin: move BG2CD clock node
ARM: berlin: move BG2 clock node
clk: berlin: prepare simple-mfd conversion
pinctrl: berlin: drop SoC stub provided regmap
ARM: berlin: move pinctrl to simple-mfd nodes
pinctrl: berlin: prepare to use regmap provided by syscon
reset: berlin: drop arch_initcall initialization
...
Diffstat (limited to 'drivers/pinctrl/berlin')
-rw-r--r-- | drivers/pinctrl/berlin/berlin-bg2.c | 26 | ||||
-rw-r--r-- | drivers/pinctrl/berlin/berlin-bg2cd.c | 26 | ||||
-rw-r--r-- | drivers/pinctrl/berlin/berlin-bg2q.c | 26 | ||||
-rw-r--r-- | drivers/pinctrl/berlin/berlin.c | 9 |
4 files changed, 12 insertions, 75 deletions
diff --git a/drivers/pinctrl/berlin/berlin-bg2.c b/drivers/pinctrl/berlin/berlin-bg2.c index b467e6e14f8a..274c5535b531 100644 --- a/drivers/pinctrl/berlin/berlin-bg2.c +++ b/drivers/pinctrl/berlin/berlin-bg2.c | |||
@@ -218,11 +218,11 @@ static const struct berlin_pinctrl_desc berlin2_sysmgr_pinctrl_data = { | |||
218 | 218 | ||
219 | static const struct of_device_id berlin2_pinctrl_match[] = { | 219 | static const struct of_device_id berlin2_pinctrl_match[] = { |
220 | { | 220 | { |
221 | .compatible = "marvell,berlin2-chip-ctrl", | 221 | .compatible = "marvell,berlin2-soc-pinctrl", |
222 | .data = &berlin2_soc_pinctrl_data | 222 | .data = &berlin2_soc_pinctrl_data |
223 | }, | 223 | }, |
224 | { | 224 | { |
225 | .compatible = "marvell,berlin2-system-ctrl", | 225 | .compatible = "marvell,berlin2-system-pinctrl", |
226 | .data = &berlin2_sysmgr_pinctrl_data | 226 | .data = &berlin2_sysmgr_pinctrl_data |
227 | }, | 227 | }, |
228 | {} | 228 | {} |
@@ -233,28 +233,6 @@ static int berlin2_pinctrl_probe(struct platform_device *pdev) | |||
233 | { | 233 | { |
234 | const struct of_device_id *match = | 234 | const struct of_device_id *match = |
235 | of_match_device(berlin2_pinctrl_match, &pdev->dev); | 235 | of_match_device(berlin2_pinctrl_match, &pdev->dev); |
236 | struct regmap_config *rmconfig; | ||
237 | struct regmap *regmap; | ||
238 | struct resource *res; | ||
239 | void __iomem *base; | ||
240 | |||
241 | rmconfig = devm_kzalloc(&pdev->dev, sizeof(*rmconfig), GFP_KERNEL); | ||
242 | if (!rmconfig) | ||
243 | return -ENOMEM; | ||
244 | |||
245 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
246 | base = devm_ioremap_resource(&pdev->dev, res); | ||
247 | if (IS_ERR(base)) | ||
248 | return PTR_ERR(base); | ||
249 | |||
250 | rmconfig->reg_bits = 32, | ||
251 | rmconfig->val_bits = 32, | ||
252 | rmconfig->reg_stride = 4, | ||
253 | rmconfig->max_register = resource_size(res); | ||
254 | |||
255 | regmap = devm_regmap_init_mmio(&pdev->dev, base, rmconfig); | ||
256 | if (IS_ERR(regmap)) | ||
257 | return PTR_ERR(regmap); | ||
258 | 236 | ||
259 | return berlin_pinctrl_probe(pdev, match->data); | 237 | return berlin_pinctrl_probe(pdev, match->data); |
260 | } | 238 | } |
diff --git a/drivers/pinctrl/berlin/berlin-bg2cd.c b/drivers/pinctrl/berlin/berlin-bg2cd.c index a8b98083a031..0cb793a3552a 100644 --- a/drivers/pinctrl/berlin/berlin-bg2cd.c +++ b/drivers/pinctrl/berlin/berlin-bg2cd.c | |||
@@ -161,11 +161,11 @@ static const struct berlin_pinctrl_desc berlin2cd_sysmgr_pinctrl_data = { | |||
161 | 161 | ||
162 | static const struct of_device_id berlin2cd_pinctrl_match[] = { | 162 | static const struct of_device_id berlin2cd_pinctrl_match[] = { |
163 | { | 163 | { |
164 | .compatible = "marvell,berlin2cd-chip-ctrl", | 164 | .compatible = "marvell,berlin2cd-soc-pinctrl", |
165 | .data = &berlin2cd_soc_pinctrl_data | 165 | .data = &berlin2cd_soc_pinctrl_data |
166 | }, | 166 | }, |
167 | { | 167 | { |
168 | .compatible = "marvell,berlin2cd-system-ctrl", | 168 | .compatible = "marvell,berlin2cd-system-pinctrl", |
169 | .data = &berlin2cd_sysmgr_pinctrl_data | 169 | .data = &berlin2cd_sysmgr_pinctrl_data |
170 | }, | 170 | }, |
171 | {} | 171 | {} |
@@ -176,28 +176,6 @@ static int berlin2cd_pinctrl_probe(struct platform_device *pdev) | |||
176 | { | 176 | { |
177 | const struct of_device_id *match = | 177 | const struct of_device_id *match = |
178 | of_match_device(berlin2cd_pinctrl_match, &pdev->dev); | 178 | of_match_device(berlin2cd_pinctrl_match, &pdev->dev); |
179 | struct regmap_config *rmconfig; | ||
180 | struct regmap *regmap; | ||
181 | struct resource *res; | ||
182 | void __iomem *base; | ||
183 | |||
184 | rmconfig = devm_kzalloc(&pdev->dev, sizeof(*rmconfig), GFP_KERNEL); | ||
185 | if (!rmconfig) | ||
186 | return -ENOMEM; | ||
187 | |||
188 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
189 | base = devm_ioremap_resource(&pdev->dev, res); | ||
190 | if (IS_ERR(base)) | ||
191 | return PTR_ERR(base); | ||
192 | |||
193 | rmconfig->reg_bits = 32, | ||
194 | rmconfig->val_bits = 32, | ||
195 | rmconfig->reg_stride = 4, | ||
196 | rmconfig->max_register = resource_size(res); | ||
197 | |||
198 | regmap = devm_regmap_init_mmio(&pdev->dev, base, rmconfig); | ||
199 | if (IS_ERR(regmap)) | ||
200 | return PTR_ERR(regmap); | ||
201 | 179 | ||
202 | return berlin_pinctrl_probe(pdev, match->data); | 180 | return berlin_pinctrl_probe(pdev, match->data); |
203 | } | 181 | } |
diff --git a/drivers/pinctrl/berlin/berlin-bg2q.c b/drivers/pinctrl/berlin/berlin-bg2q.c index 65fb8711a42f..a466054a8206 100644 --- a/drivers/pinctrl/berlin/berlin-bg2q.c +++ b/drivers/pinctrl/berlin/berlin-bg2q.c | |||
@@ -380,11 +380,11 @@ static const struct berlin_pinctrl_desc berlin2q_sysmgr_pinctrl_data = { | |||
380 | 380 | ||
381 | static const struct of_device_id berlin2q_pinctrl_match[] = { | 381 | static const struct of_device_id berlin2q_pinctrl_match[] = { |
382 | { | 382 | { |
383 | .compatible = "marvell,berlin2q-chip-ctrl", | 383 | .compatible = "marvell,berlin2q-soc-pinctrl", |
384 | .data = &berlin2q_soc_pinctrl_data, | 384 | .data = &berlin2q_soc_pinctrl_data, |
385 | }, | 385 | }, |
386 | { | 386 | { |
387 | .compatible = "marvell,berlin2q-system-ctrl", | 387 | .compatible = "marvell,berlin2q-system-pinctrl", |
388 | .data = &berlin2q_sysmgr_pinctrl_data, | 388 | .data = &berlin2q_sysmgr_pinctrl_data, |
389 | }, | 389 | }, |
390 | {} | 390 | {} |
@@ -395,28 +395,6 @@ static int berlin2q_pinctrl_probe(struct platform_device *pdev) | |||
395 | { | 395 | { |
396 | const struct of_device_id *match = | 396 | const struct of_device_id *match = |
397 | of_match_device(berlin2q_pinctrl_match, &pdev->dev); | 397 | of_match_device(berlin2q_pinctrl_match, &pdev->dev); |
398 | struct regmap_config *rmconfig; | ||
399 | struct regmap *regmap; | ||
400 | struct resource *res; | ||
401 | void __iomem *base; | ||
402 | |||
403 | rmconfig = devm_kzalloc(&pdev->dev, sizeof(*rmconfig), GFP_KERNEL); | ||
404 | if (!rmconfig) | ||
405 | return -ENOMEM; | ||
406 | |||
407 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
408 | base = devm_ioremap_resource(&pdev->dev, res); | ||
409 | if (IS_ERR(base)) | ||
410 | return PTR_ERR(base); | ||
411 | |||
412 | rmconfig->reg_bits = 32, | ||
413 | rmconfig->val_bits = 32, | ||
414 | rmconfig->reg_stride = 4, | ||
415 | rmconfig->max_register = resource_size(res); | ||
416 | |||
417 | regmap = devm_regmap_init_mmio(&pdev->dev, base, rmconfig); | ||
418 | if (IS_ERR(regmap)) | ||
419 | return PTR_ERR(regmap); | ||
420 | 398 | ||
421 | return berlin_pinctrl_probe(pdev, match->data); | 399 | return berlin_pinctrl_probe(pdev, match->data); |
422 | } | 400 | } |
diff --git a/drivers/pinctrl/berlin/berlin.c b/drivers/pinctrl/berlin/berlin.c index ddbcd1d7de52..f49580617055 100644 --- a/drivers/pinctrl/berlin/berlin.c +++ b/drivers/pinctrl/berlin/berlin.c | |||
@@ -11,6 +11,7 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/io.h> | 13 | #include <linux/io.h> |
14 | #include <linux/mfd/syscon.h> | ||
14 | #include <linux/module.h> | 15 | #include <linux/module.h> |
15 | #include <linux/of.h> | 16 | #include <linux/of.h> |
16 | #include <linux/of_address.h> | 17 | #include <linux/of_address.h> |
@@ -295,13 +296,15 @@ int berlin_pinctrl_probe(struct platform_device *pdev, | |||
295 | const struct berlin_pinctrl_desc *desc) | 296 | const struct berlin_pinctrl_desc *desc) |
296 | { | 297 | { |
297 | struct device *dev = &pdev->dev; | 298 | struct device *dev = &pdev->dev; |
299 | struct device_node *parent_np = of_get_parent(dev->of_node); | ||
298 | struct berlin_pinctrl *pctrl; | 300 | struct berlin_pinctrl *pctrl; |
299 | struct regmap *regmap; | 301 | struct regmap *regmap; |
300 | int ret; | 302 | int ret; |
301 | 303 | ||
302 | regmap = dev_get_regmap(&pdev->dev, NULL); | 304 | regmap = syscon_node_to_regmap(parent_np); |
303 | if (!regmap) | 305 | of_node_put(parent_np); |
304 | return -ENODEV; | 306 | if (IS_ERR(regmap)) |
307 | return PTR_ERR(regmap); | ||
305 | 308 | ||
306 | pctrl = devm_kzalloc(dev, sizeof(*pctrl), GFP_KERNEL); | 309 | pctrl = devm_kzalloc(dev, sizeof(*pctrl), GFP_KERNEL); |
307 | if (!pctrl) | 310 | if (!pctrl) |