aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2014-04-22 17:26:35 -0400
committerJason Cooper <jason@lakedaemon.net>2014-04-26 15:45:18 -0400
commita54cd73b842b615f1e98bb2aa1b963e17d0ca127 (patch)
treec285067388c1d6dff550613e127b8acdfa0165f9 /arch
parenta665fce3e7fe1c7d1a77e99293257f2d008b1488 (diff)
ARM: orion5x: use DT to describe NOR on edmini_v2
This commit converts the already partially DT-converted edmini_v2 platform to use the Device Tree for NOR flash, using the Device Bus. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> Link: https://lkml.kernel.org/r/1398202002-28530-32-git-send-email-thomas.petazzoni@free-electrons.com Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts43
-rw-r--r--arch/arm/mach-orion5x/edmini_v2-setup.c62
2 files changed, 42 insertions, 63 deletions
diff --git a/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts b/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts
index f0f2bcc68150..1ecddbe655e1 100644
--- a/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts
+++ b/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts
@@ -28,7 +28,8 @@
28 28
29 soc { 29 soc {
30 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>, 30 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>,
31 <MBUS_ID(0x09, 0x00) 0 0xf2200000 0x800>; 31 <MBUS_ID(0x09, 0x00) 0 0xf2200000 0x800>,
32 <MBUS_ID(0x01, 0x0f) 0 0xfff80000 0x80000>;
32 }; 33 };
33 34
34 gpio-keys { 35 gpio-keys {
@@ -56,6 +57,46 @@
56 }; 57 };
57}; 58};
58 59
60&devbus_bootcs {
61 status = "okay";
62
63 /* Read parameters */
64 devbus,bus-width = <8>;
65 devbus,turn-off-ps = <90000>;
66 devbus,badr-skew-ps = <0>;
67 devbus,acc-first-ps = <186000>;
68 devbus,acc-next-ps = <186000>;
69
70 /* Write parameters */
71 devbus,wr-high-ps = <90000>;
72 devbus,wr-low-ps = <90000>;
73 devbus,ale-wr-ps = <90000>;
74
75 /*
76 * Currently the MTD code does not recognize the MX29LV400CBCT
77 * as a bottom-type device. This could cause risks of
78 * accidentally erasing critical flash sectors. We thus define
79 * a single, write-protected partition covering the whole
80 * flash. TODO: once the flash part TOP/BOTTOM detection
81 * issue is sorted out in the MTD code, break this into at
82 * least three partitions: 'u-boot code', 'u-boot environment'
83 * and 'whatever is left'.
84 */
85 flash@0 {
86 compatible = "cfi-flash";
87 reg = <0 0x80000>;
88 bank-width = <1>;
89 #address-cells = <1>;
90 #size-cells = <1>;
91
92 partition@0 {
93 label = "Full512Kb";
94 reg = <0 0x80000>;
95 read-only;
96 };
97 };
98};
99
59&ehci0 { 100&ehci0 {
60 status = "okay"; 101 status = "okay";
61}; 102};
diff --git a/arch/arm/mach-orion5x/edmini_v2-setup.c b/arch/arm/mach-orion5x/edmini_v2-setup.c
index 2eebc0c345d8..6bef2d50e16d 100644
--- a/arch/arm/mach-orion5x/edmini_v2-setup.c
+++ b/arch/arm/mach-orion5x/edmini_v2-setup.c
@@ -42,74 +42,12 @@
42 * EDMINI_V2 Info 42 * EDMINI_V2 Info
43 ****************************************************************************/ 43 ****************************************************************************/
44 44
45/*
46 * 512KB NOR flash Device bus boot chip select
47 */
48
49#define EDMINI_V2_NOR_BOOT_BASE 0xfff80000
50#define EDMINI_V2_NOR_BOOT_SIZE SZ_512K
51
52/*****************************************************************************
53 * 512KB NOR Flash on BOOT Device
54 ****************************************************************************/
55
56/*
57 * Currently the MTD code does not recognize the MX29LV400CBCT as a bottom
58 * -type device. This could cause risks of accidentally erasing critical
59 * flash sectors. We thus define a single, write-protected partition covering
60 * the whole flash.
61 * TODO: once the flash part TOP/BOTTOM detection issue is sorted out in the MTD
62 * code, break this into at least three partitions: 'u-boot code', 'u-boot
63 * environment' and 'whatever is left'.
64 */
65
66static struct mtd_partition edmini_v2_partitions[] = {
67 {
68 .name = "Full512kb",
69 .size = 0x00080000,
70 .offset = 0x00000000,
71 .mask_flags = MTD_WRITEABLE,
72 },
73};
74
75static struct physmap_flash_data edmini_v2_nor_flash_data = {
76 .width = 1,
77 .parts = edmini_v2_partitions,
78 .nr_parts = ARRAY_SIZE(edmini_v2_partitions),
79};
80
81static struct resource edmini_v2_nor_flash_resource = {
82 .flags = IORESOURCE_MEM,
83 .start = EDMINI_V2_NOR_BOOT_BASE,
84 .end = EDMINI_V2_NOR_BOOT_BASE
85 + EDMINI_V2_NOR_BOOT_SIZE - 1,
86};
87
88static struct platform_device edmini_v2_nor_flash = {
89 .name = "physmap-flash",
90 .id = 0,
91 .dev = {
92 .platform_data = &edmini_v2_nor_flash_data,
93 },
94 .num_resources = 1,
95 .resource = &edmini_v2_nor_flash_resource,
96};
97
98/***************************************************************************** 45/*****************************************************************************
99 * General Setup 46 * General Setup
100 ****************************************************************************/ 47 ****************************************************************************/
101 48
102void __init edmini_v2_init(void) 49void __init edmini_v2_init(void)
103{ 50{
104 /*
105 * Configure peripherals.
106 */
107 mvebu_mbus_add_window_by_id(ORION_MBUS_DEVBUS_BOOT_TARGET,
108 ORION_MBUS_DEVBUS_BOOT_ATTR,
109 EDMINI_V2_NOR_BOOT_BASE,
110 EDMINI_V2_NOR_BOOT_SIZE);
111 platform_device_register(&edmini_v2_nor_flash);
112
113 pr_notice("edmini_v2: USB device port, flash write and power-off " 51 pr_notice("edmini_v2: USB device port, flash write and power-off "
114 "are not yet supported.\n"); 52 "are not yet supported.\n");
115} 53}