From mboxrd@z Thu Jan 1 00:00:00 1970 From: sebastian.hesselbarth@gmail.com (Sebastian Hesselbarth) Date: Mon, 14 Apr 2014 13:14:56 +0200 Subject: [PATCH 23/29] ARM: orion5x: use DT to describe NOR on edmini_v2 In-Reply-To: <1397400006-4315-24-git-send-email-thomas.petazzoni@free-electrons.com> References: <1397400006-4315-1-git-send-email-thomas.petazzoni@free-electrons.com> <1397400006-4315-24-git-send-email-thomas.petazzoni@free-electrons.com> Message-ID: <534BC330.90206@gmail.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 04/13/2014 04:40 PM, Thomas Petazzoni wrote: > 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 > --- > .../dts/orion5x-lacie-ethernet-disk-mini-v2.dts | 46 +++++++++++++++- > arch/arm/mach-orion5x/edmini_v2-setup.c | 62 ---------------------- > 2 files changed, 45 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 ff90b01..44cc36a 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 > @@ -27,7 +27,51 @@ > > soc { > ranges = , > - ; > + , > + ; > + > + devbus-bootcs { Node label reference? > + status = "okay"; > + > + /* Read parameters */ > + devbus,bus-width = <8>; > + devbus,turn-off-ps = <90000>; > + devbus,badr-skew-ps = <0>; > + devbus,acc-first-ps = <186000>; > + devbus,acc-next-ps = <186000>; > + > + /* Write parameters */ > + devbus,wr-high-ps = <90000>; > + devbus,wr-low-ps = <90000>; > + devbus,ale-wr-ps = <90000>; > + > + /* > + * Currently the MTD code does not recognize > + * the MX29LV400CBCT as a bottom-type > + * device. This could cause risks of > + * accidentally erasing critical flash > + * sectors. We thus define a single, > + * write-protected partition covering the > + * whole flash. TODO: once the flash part > + * TOP/BOTTOM detection issue is sorted out in > + * the MTD code, break this into at least > + * three partitions: 'u-boot code', 'u-boot > + * environment' and 'whatever is left'. > + */ > + nor at 0 { ePAPR suggests a generic node name. I talked to Olof on IRC, he prefers generic names all over. I confirmed that this means "flash" node name for both the controller _and_ the device. We have never been very strict about the node names, but if we add one, we should follow the suggestions. Sebastian > + compatible = "cfi-flash"; > + reg = <0 0x80000>; > + bank-width = <1>; > + #address-cells = <1>; > + #size-cells = <1>; > + > + partition at 0 { > + label = "Full512Kb"; > + reg = <0 0x80000>; > + read-only; > + }; > + }; > + }; > > internal-regs { > pinctrl at 10000 { > diff --git a/arch/arm/mach-orion5x/edmini_v2-setup.c b/arch/arm/mach-orion5x/edmini_v2-setup.c > index 2eebc0c..6bef2d5 100644 > --- a/arch/arm/mach-orion5x/edmini_v2-setup.c > +++ b/arch/arm/mach-orion5x/edmini_v2-setup.c > @@ -42,74 +42,12 @@ > * EDMINI_V2 Info > ****************************************************************************/ > > -/* > - * 512KB NOR flash Device bus boot chip select > - */ > - > -#define EDMINI_V2_NOR_BOOT_BASE 0xfff80000 > -#define EDMINI_V2_NOR_BOOT_SIZE SZ_512K > - > -/***************************************************************************** > - * 512KB NOR Flash on BOOT Device > - ****************************************************************************/ > - > -/* > - * Currently the MTD code does not recognize the MX29LV400CBCT as a bottom > - * -type device. This could cause risks of accidentally erasing critical > - * flash sectors. We thus define a single, write-protected partition covering > - * the whole flash. > - * TODO: once the flash part TOP/BOTTOM detection issue is sorted out in the MTD > - * code, break this into at least three partitions: 'u-boot code', 'u-boot > - * environment' and 'whatever is left'. > - */ > - > -static struct mtd_partition edmini_v2_partitions[] = { > - { > - .name = "Full512kb", > - .size = 0x00080000, > - .offset = 0x00000000, > - .mask_flags = MTD_WRITEABLE, > - }, > -}; > - > -static struct physmap_flash_data edmini_v2_nor_flash_data = { > - .width = 1, > - .parts = edmini_v2_partitions, > - .nr_parts = ARRAY_SIZE(edmini_v2_partitions), > -}; > - > -static struct resource edmini_v2_nor_flash_resource = { > - .flags = IORESOURCE_MEM, > - .start = EDMINI_V2_NOR_BOOT_BASE, > - .end = EDMINI_V2_NOR_BOOT_BASE > - + EDMINI_V2_NOR_BOOT_SIZE - 1, > -}; > - > -static struct platform_device edmini_v2_nor_flash = { > - .name = "physmap-flash", > - .id = 0, > - .dev = { > - .platform_data = &edmini_v2_nor_flash_data, > - }, > - .num_resources = 1, > - .resource = &edmini_v2_nor_flash_resource, > -}; > - > /***************************************************************************** > * General Setup > ****************************************************************************/ > > void __init edmini_v2_init(void) > { > - /* > - * Configure peripherals. > - */ > - mvebu_mbus_add_window_by_id(ORION_MBUS_DEVBUS_BOOT_TARGET, > - ORION_MBUS_DEVBUS_BOOT_ATTR, > - EDMINI_V2_NOR_BOOT_BASE, > - EDMINI_V2_NOR_BOOT_SIZE); > - platform_device_register(&edmini_v2_nor_flash); > - > pr_notice("edmini_v2: USB device port, flash write and power-off " > "are not yet supported.\n"); > } >