[PATCH 1/2] lite5200: add dts descriptions for onboard I2C eeprom and flash

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE5896d

2 messages, 1 author, 2010-06-11 · open the first message on its own page

[PATCH 1/2] lite5200: add dts descriptions for onboard I2C eeprom and flash

From: Dmitry Eremin-Solenikov <hidden>
Date: 2010-06-11 11:52:38

Add dts descriptions for onboard 256 byte I2C eeprom (pcf8582C-2)
and 16MB NOR flash (am29lv652d).

Signed-off-by: Dmitry Eremin-Solenikov <redacted>
Cc: Grant Likely <redacted>
---
 arch/powerpc/boot/dts/lite5200.dts |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/arch/powerpc/boot/dts/lite5200.dts b/arch/powerpc/boot/dts/lite5200.dts
index 2b64d8e..da1dafb 100644
--- a/arch/powerpc/boot/dts/lite5200.dts
+++ b/arch/powerpc/boot/dts/lite5200.dts
@@ -255,6 +255,12 @@
 			compatible = "fsl,mpc5200-i2c","fsl-i2c";
 			reg = <0x3d40 0x40>;
 			interrupts = <2 16 0>;
+
+			eeprom@50 {
+				compatible = "nxp,pcf8582c", "at24,24c02";
+				reg = <0x50>;
+			};
+
 		};
 		sram@8000 {
 			compatible = "fsl,mpc5200-sram";
@@ -281,4 +287,22 @@
 			  0x02000000 0 0xa0000000 0xa0000000 0 0x10000000
 			  0x01000000 0 0x00000000 0xb0000000 0 0x01000000>;
 	};
+
+	localbus {
+		compatible = "fsl,mpc5200b-lpb","fsl,mpc5200-lpb","simple-bus";
+
+		#address-cells = <2>;
+		#size-cells = <1>;
+
+		ranges = <0 0 0xff000000 0x00000000>;
+
+		flash@0,00000000 {
+			compatible = "amd,am29lv652d", "cfi-flash";
+			reg = <0 0x00000000 0x01000000>;
+			bank-width = <1>;
+			#size-cells = <1>;
+			#address-cells = <1>;
+		};
+	};
+
 };
-- 
1.7.1

[PATCH 2/2] mpc52xx: fix oops during going to standby

From: Dmitry Eremin-Solenikov <hidden>
Date: 2010-06-11 11:52:39

When going to standby mode mpc code maps the whole soc5200 node
to access warious MBAR registers. However as of_iomap uses 'reg'
property of device node, only small part of MBAR is getting mapped.
Thus pm code gets oops when trying to access high parts of MBAR.
As a way to overcome this, make mpc52xx_pm_prepare() explicitly
map whole MBAR (0xc0000).

Signed-off-by: Dmitry Eremin-Solenikov <redacted>
Cc: Grant Likely <redacted>
---
 arch/powerpc/platforms/52xx/mpc52xx_pm.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pm.c b/arch/powerpc/platforms/52xx/mpc52xx_pm.c
index a55b0b6..7672253 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_pm.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_pm.c
@@ -64,10 +64,19 @@ int mpc52xx_pm_prepare(void)
 		{ .type = "builtin", .compatible = "mpc5200", }, /* efika */
 		{}
 	};
+	struct resource res;
 
 	/* map the whole register space */
 	np = of_find_matching_node(NULL, immr_ids);
-	mbar = of_iomap(np, 0);
+
+	if (of_address_to_resource(np, 0, &res)) {
+		pr_err("mpc52xx_pm_prepare(): could not get IMMR address\n");
+		of_node_put(np);
+		return -ENOSYS;
+	}
+
+	mbar = ioremap(res.start, 0xc000); /* we should map whole region including SRAM */
+
 	of_node_put(np);
 	if (!mbar) {
 		pr_err("mpc52xx_pm_prepare(): could not map registers\n");
-- 
1.7.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help