[PATCH 2/3] mfd: db8500-prcmu: Fetch the PRCMU TCDM base address from Device Tree
Arnd Bergmann
arnd at arndb.de
Mon Mar 25 11:40:50 EDT 2013
On Monday 25 March 2013, Lee Jones wrote:
> res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
> "prcmu-tcpm");
> if (!res) {
> - dev_err(&pdev->dev,
> - "Error: no prcmu tcpm memory region provided\n");
> - return;
> - }
> - tcpm_base = ioremap(res->start, resource_size(res));
> + if (np) {
> + tcpm_np = of_find_node_by_name(np->parent,
> + "prcmu-tcpm-per4");
> + if (!tcpm_np) {
> + dev_err(&pdev->dev,
> + "no prcmu tcpm mem region provided\n");
> + return;
> + }
> + tcpm_base = of_iomap(tcpm_np, 0);
> + }
> + } else
> + tcpm_base = ioremap(res->start, resource_size(res));
> +
Why don't you just add these extra registers to the prcmu node itself like
diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index 9de9309..6ee6c31 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -191,8 +191,8 @@
prcmu: prcmu at 80157000 {
compatible = "stericsson,db8500-prcmu";
- reg = <0x80157000 0x1000>;
- reg-names = "prcmu";
+ reg = <0x80157000 0x1000>, <0x801b0000 0x1000>, <0x801b8000 0x1000>;
+ reg-names = "prcmu", "prcmu-tcpm", "prcmu-tcdm-per4";
interrupts = <0 47 0x4>;
#address-cells = <1>;
#size-cells = <1>;
and document those in the prcmu binding?
That would keep the code simpler and the same for both cases.
Arnd
More information about the linux-arm-kernel
mailing list