> Am 25.07.2018 um 10:20 schrieb Ladislav Michl <ladis@xxxxxxxxxxxxxx>: > > On Wed, Jul 25, 2018 at 08:59:04AM +0200, H. Nikolaus Schaller wrote: >> GTA04A5 has been produced with MCP chips either with >> 512MB RAM + 512MB NAND >> 512MB RAM + 1024MB NAND >> 1024MB RAM + 512MB OneNAND >> >> RAM setup is done by U-Boot (MLO/SPL) but OneNAND needs >> a different setup of the GPMC. So we need to derive a >> DTB variant that modifies the gpmc and nand setup. > > Just a suggestion... This way your user needs to know which variant is dealing > with. It is similar situation as with IGEPv2 with cames with various setup > either with NAND or OneNAND. Both NAND and OneNAND nodes are present in DTB > and enabled by U-Boot approriately. So single U-Boot binary and DTB is enough > to deal with all variants. Well, the standard U-Boot used on this type of devices just loads this or that .dtb. It does not modify it or enable/disable nodes. So we'd prefer to have it this way. > > ladis > >> Signed-off-by: H. Nikolaus Schaller <hns@xxxxxxxxxxxxx> >> --- >> arch/arm/boot/dts/omap3-gta04a5one.dts | 114 +++++++++++++++++++++++++++++++++ >> 1 file changed, 114 insertions(+) >> create mode 100644 arch/arm/boot/dts/omap3-gta04a5one.dts >> >> diff --git a/arch/arm/boot/dts/omap3-gta04a5one.dts b/arch/arm/boot/dts/omap3-gta04a5one.dts >> new file mode 100644 >> index 000000000000..9b7bbdc344b3 >> --- /dev/null >> +++ b/arch/arm/boot/dts/omap3-gta04a5one.dts >> @@ -0,0 +1,114 @@ >> +/* >> + * Copyright (C) 2014-18 H. Nikolaus Schaller <hns@xxxxxxxxxxxxx> >> + * >> + * This program is free software; you can redistribute it and/or modify >> + * it under the terms of the GNU General Public License version 2 as >> + * published by the Free Software Foundation. >> + */ >> + >> +#include "omap3-gta04a5.dts" >> + >> +&omap3_pmx_core { >> + model = "Goldelico GTA04A5/Letux 2804 with OneNAND"; >> + >> + gpmc_pins: pinmux_gpmc_pins { >> + pinctrl-single,pins = < >> + >> + /* address lines */ >> + OMAP3_CORE1_IOPAD(0x207a, PIN_OUTPUT | MUX_MODE0) /* gpmc_a1.gpmc_a1 */ >> + OMAP3_CORE1_IOPAD(0x207c, PIN_OUTPUT | MUX_MODE0) /* gpmc_a2.gpmc_a2 */ >> + OMAP3_CORE1_IOPAD(0x207e, PIN_OUTPUT | MUX_MODE0) /* gpmc_a3.gpmc_a3 */ >> + >> + /* data lines, gpmc_d0..d7 not muxable according to TRM */ >> + OMAP3_CORE1_IOPAD(0x209e, PIN_INPUT | MUX_MODE0) /* gpmc_d8.gpmc_d8 */ >> + OMAP3_CORE1_IOPAD(0x20a0, PIN_INPUT | MUX_MODE0) /* gpmc_d9.gpmc_d9 */ >> + OMAP3_CORE1_IOPAD(0x20a2, PIN_INPUT | MUX_MODE0) /* gpmc_d10.gpmc_d10 */ >> + OMAP3_CORE1_IOPAD(0x20a4, PIN_INPUT | MUX_MODE0) /* gpmc_d11.gpmc_d11 */ >> + OMAP3_CORE1_IOPAD(0x20a6, PIN_INPUT | MUX_MODE0) /* gpmc_d12.gpmc_d12 */ >> + OMAP3_CORE1_IOPAD(0x20a8, PIN_INPUT | MUX_MODE0) /* gpmc_d13.gpmc_d13 */ >> + OMAP3_CORE1_IOPAD(0x20aa, PIN_INPUT | MUX_MODE0) /* gpmc_d14.gpmc_d14 */ >> + OMAP3_CORE1_IOPAD(0x20ac, PIN_INPUT | MUX_MODE0) /* gpmc_d15.gpmc_d15 */ >> + >> + /* >> + * gpmc_ncs0, gpmc_nadv_ale, gpmc_noe, gpmc_nwe, gpmc_wait0 not muxable >> + * according to TRM. OneNAND seems to require PIN_INPUT on clock. >> + */ >> + OMAP3_CORE1_IOPAD(0x20b0, PIN_OUTPUT | MUX_MODE0) /* gpmc_ncs1.gpmc_ncs1 */ >> + OMAP3_CORE1_IOPAD(0x20be, PIN_INPUT | MUX_MODE0) /* gpmc_clk.gpmc_clk */ >> + >; >> + }; >> +}; >> + >> +&gpmc { >> + /* switch inherited setup to OneNAND */ >> + >> + ranges = <0 0 0x04000000 0x1000000>; /* CS0: 16MB for OneNAND */ >> + pinctrl-names = "default"; >> + pinctrl-0 = <&gpmc_pins>; >> + >> + /delete-node/ nand@0,0; >> + >> + onenand@0,0 { >> + >> + #address-cells = <1>; >> + #size-cells = <1>; >> + compatible = "ti,omap2-onenand"; >> + reg = <0 0 0x20000>; /* CS0, offset 0, IO size 128K */ >> + >> + gpmc,sync-read; >> + gpmc,sync-write; >> + gpmc,burst-length = <16>; >> + gpmc,burst-read; >> + gpmc,burst-wrap; >> + gpmc,burst-write; >> + gpmc,device-width = <2>; >> + gpmc,mux-add-data = <2>; >> + gpmc,cs-on-ns = <0>; >> + gpmc,cs-rd-off-ns = <87>; >> + gpmc,cs-wr-off-ns = <87>; >> + gpmc,adv-on-ns = <0>; >> + gpmc,adv-rd-off-ns = <10>; >> + gpmc,adv-wr-off-ns = <10>; >> + gpmc,oe-on-ns = <15>; >> + gpmc,oe-off-ns = <87>; >> + gpmc,we-on-ns = <0>; >> + gpmc,we-off-ns = <87>; >> + gpmc,rd-cycle-ns = <112>; >> + gpmc,wr-cycle-ns = <112>; >> + gpmc,access-ns = <81>; >> + gpmc,page-burst-access-ns = <15>; >> + gpmc,bus-turnaround-ns = <0>; >> + gpmc,cycle2cycle-delay-ns = <0>; >> + gpmc,wait-monitoring-ns = <0>; >> + gpmc,clk-activation-ns = <5>; >> + gpmc,wr-data-mux-bus-ns = <30>; >> + gpmc,wr-access-ns = <81>; >> + gpmc,sync-clk-ps = <15000>; >> + >> + x-loader@0 { >> + label = "X-Loader"; >> + reg = <0 0x80000>; >> + }; >> + >> + bootloaders@80000 { >> + label = "U-Boot"; >> + reg = <0x80000 0x1c0000>; >> + }; >> + >> + bootloaders_env@240000 { >> + label = "U-Boot Env"; >> + reg = <0x240000 0x40000>; >> + }; >> + >> + kernel@280000 { >> + label = "Kernel"; >> + reg = <0x280000 0x600000>; >> + }; >> + >> + filesystem@880000 { >> + label = "File System"; >> + reg = <0x880000 0>; /* 0 = MTDPART_SIZ_FULL */ >> + }; >> + >> + }; >> +}; >> -- >> 2.12.2 >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-omap" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html