162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2014-18 H. Nikolaus Schaller <hns@goldelico.com>
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include "omap3-gta04a5.dts"
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci/ {
962306a36Sopenharmony_ci	model = "Goldelico GTA04A5/Letux 2804 with OneNAND";
1062306a36Sopenharmony_ci};
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci&omap3_pmx_core {
1362306a36Sopenharmony_ci	gpmc_pins: gpmc-pins {
1462306a36Sopenharmony_ci		pinctrl-single,pins = <
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci			/* address lines */
1762306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x207a, PIN_OUTPUT | MUX_MODE0)       /* gpmc_a1.gpmc_a1 */
1862306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x207c, PIN_OUTPUT | MUX_MODE0)       /* gpmc_a2.gpmc_a2 */
1962306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x207e, PIN_OUTPUT | MUX_MODE0)       /* gpmc_a3.gpmc_a3 */
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci			/* data lines, gpmc_d0..d7 not muxable according to TRM */
2262306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x209e, PIN_INPUT | MUX_MODE0)        /* gpmc_d8.gpmc_d8 */
2362306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20a0, PIN_INPUT | MUX_MODE0)        /* gpmc_d9.gpmc_d9 */
2462306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20a2, PIN_INPUT | MUX_MODE0)        /* gpmc_d10.gpmc_d10 */
2562306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20a4, PIN_INPUT | MUX_MODE0)        /* gpmc_d11.gpmc_d11 */
2662306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20a6, PIN_INPUT | MUX_MODE0)        /* gpmc_d12.gpmc_d12 */
2762306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20a8, PIN_INPUT | MUX_MODE0)        /* gpmc_d13.gpmc_d13 */
2862306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20aa, PIN_INPUT | MUX_MODE0)        /* gpmc_d14.gpmc_d14 */
2962306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20ac, PIN_INPUT | MUX_MODE0)        /* gpmc_d15.gpmc_d15 */
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci			/*
3262306a36Sopenharmony_ci			 * gpmc_ncs0, gpmc_nadv_ale, gpmc_noe, gpmc_nwe, gpmc_wait0 not muxable
3362306a36Sopenharmony_ci			 * according to TRM. OneNAND seems to require PIN_INPUT on clock.
3462306a36Sopenharmony_ci			 */
3562306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20b0, PIN_OUTPUT | MUX_MODE0)       /* gpmc_ncs1.gpmc_ncs1 */
3662306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20be, PIN_INPUT | MUX_MODE0)        /* gpmc_clk.gpmc_clk */
3762306a36Sopenharmony_ci		>;
3862306a36Sopenharmony_ci	};
3962306a36Sopenharmony_ci};
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci&gpmc {
4262306a36Sopenharmony_ci	/* switch inherited setup to OneNAND */
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci	ranges = <0 0 0x04000000 0x1000000>;	/* CS0: 16MB for OneNAND */
4562306a36Sopenharmony_ci	pinctrl-names = "default";
4662306a36Sopenharmony_ci	pinctrl-0 = <&gpmc_pins>;
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci	/delete-node/ nand@0,0;
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci	onenand@0,0 {
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci		#address-cells = <1>;
5362306a36Sopenharmony_ci		#size-cells = <1>;
5462306a36Sopenharmony_ci		compatible = "ti,omap2-onenand";
5562306a36Sopenharmony_ci		reg = <0 0 0x20000>;	/* CS0, offset 0, IO size 128K */
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci		gpmc,sync-read;
5862306a36Sopenharmony_ci		gpmc,sync-write;
5962306a36Sopenharmony_ci		gpmc,burst-length = <16>;
6062306a36Sopenharmony_ci		gpmc,burst-read;
6162306a36Sopenharmony_ci		gpmc,burst-wrap;
6262306a36Sopenharmony_ci		gpmc,burst-write;
6362306a36Sopenharmony_ci		gpmc,device-width = <2>;
6462306a36Sopenharmony_ci		gpmc,mux-add-data = <2>;
6562306a36Sopenharmony_ci		gpmc,cs-on-ns = <0>;
6662306a36Sopenharmony_ci		gpmc,cs-rd-off-ns = <87>;
6762306a36Sopenharmony_ci		gpmc,cs-wr-off-ns = <87>;
6862306a36Sopenharmony_ci		gpmc,adv-on-ns = <0>;
6962306a36Sopenharmony_ci		gpmc,adv-rd-off-ns = <10>;
7062306a36Sopenharmony_ci		gpmc,adv-wr-off-ns = <10>;
7162306a36Sopenharmony_ci		gpmc,oe-on-ns = <15>;
7262306a36Sopenharmony_ci		gpmc,oe-off-ns = <87>;
7362306a36Sopenharmony_ci		gpmc,we-on-ns = <0>;
7462306a36Sopenharmony_ci		gpmc,we-off-ns = <87>;
7562306a36Sopenharmony_ci		gpmc,rd-cycle-ns = <112>;
7662306a36Sopenharmony_ci		gpmc,wr-cycle-ns = <112>;
7762306a36Sopenharmony_ci		gpmc,access-ns = <81>;
7862306a36Sopenharmony_ci		gpmc,page-burst-access-ns = <15>;
7962306a36Sopenharmony_ci		gpmc,bus-turnaround-ns = <0>;
8062306a36Sopenharmony_ci		gpmc,cycle2cycle-delay-ns = <0>;
8162306a36Sopenharmony_ci		gpmc,wait-monitoring-ns = <0>;
8262306a36Sopenharmony_ci		gpmc,clk-activation-ns = <5>;
8362306a36Sopenharmony_ci		gpmc,wr-data-mux-bus-ns = <30>;
8462306a36Sopenharmony_ci		gpmc,wr-access-ns = <81>;
8562306a36Sopenharmony_ci		gpmc,sync-clk-ps = <15000>;
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci		x-loader@0 {
8862306a36Sopenharmony_ci			label = "X-Loader";
8962306a36Sopenharmony_ci			reg = <0 0x80000>;
9062306a36Sopenharmony_ci		};
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci		bootloaders@80000 {
9362306a36Sopenharmony_ci			label = "U-Boot";
9462306a36Sopenharmony_ci			reg = <0x80000 0x1c0000>;
9562306a36Sopenharmony_ci		};
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci		bootloaders_env@240000 {
9862306a36Sopenharmony_ci			label = "U-Boot Env";
9962306a36Sopenharmony_ci			reg = <0x240000 0x40000>;
10062306a36Sopenharmony_ci		};
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci		kernel@280000 {
10362306a36Sopenharmony_ci			label = "Kernel";
10462306a36Sopenharmony_ci			reg = <0x280000 0x600000>;
10562306a36Sopenharmony_ci		};
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci		filesystem@880000 {
10862306a36Sopenharmony_ci			label = "File System";
10962306a36Sopenharmony_ci			reg = <0x880000 0>;	/* 0 = MTDPART_SIZ_FULL */
11062306a36Sopenharmony_ci		};
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci	};
11362306a36Sopenharmony_ci};
114