162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Common device tree for IGEP boards based on AM/DM37x
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (C) 2012 Javier Martinez Canillas <javier@dowhile0.org>
662306a36Sopenharmony_ci * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.com>
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci/dts-v1/;
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#include "omap36xx.dtsi"
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci/ {
1362306a36Sopenharmony_ci	memory@80000000 {
1462306a36Sopenharmony_ci		device_type = "memory";
1562306a36Sopenharmony_ci		reg = <0x80000000 0x20000000>; /* 512 MB */
1662306a36Sopenharmony_ci	};
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci	chosen {
1962306a36Sopenharmony_ci		stdout-path = &uart3;
2062306a36Sopenharmony_ci	};
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci	sound {
2362306a36Sopenharmony_ci		compatible = "ti,omap-twl4030";
2462306a36Sopenharmony_ci		ti,model = "igep2";
2562306a36Sopenharmony_ci		ti,mcbsp = <&mcbsp2>;
2662306a36Sopenharmony_ci	};
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci	vdd33: regulator-vdd33 {
2962306a36Sopenharmony_ci		compatible = "regulator-fixed";
3062306a36Sopenharmony_ci		regulator-name = "vdd33";
3162306a36Sopenharmony_ci		regulator-always-on;
3262306a36Sopenharmony_ci	};
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci};
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci&omap3_pmx_core {
3762306a36Sopenharmony_ci	gpmc_pins: gpmc-pins {
3862306a36Sopenharmony_ci		pinctrl-single,pins = <
3962306a36Sopenharmony_ci			/* OneNAND seems to require PIN_INPUT on clock. */
4062306a36Sopenharmony_ci                        OMAP3_CORE1_IOPAD(0x20be, PIN_INPUT | MUX_MODE0)        /* gpmc_clk.gpmc_clk */
4162306a36Sopenharmony_ci		>;
4262306a36Sopenharmony_ci	};
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci	uart1_pins: uart1-pins {
4562306a36Sopenharmony_ci		pinctrl-single,pins = <
4662306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2182, PIN_INPUT | MUX_MODE0)	/* uart1_rx.uart1_rx */
4762306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x217c, PIN_OUTPUT | MUX_MODE0)	/* uart1_tx.uart1_tx */
4862306a36Sopenharmony_ci		>;
4962306a36Sopenharmony_ci	};
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci	uart3_pins: uart3-pins {
5262306a36Sopenharmony_ci		pinctrl-single,pins = <
5362306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0)	/* uart3_rx.uart3_rx */
5462306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0)	/* uart3_tx.uart3_tx */
5562306a36Sopenharmony_ci		>;
5662306a36Sopenharmony_ci	};
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci	mcbsp2_pins: mcbsp2-pins {
5962306a36Sopenharmony_ci		pinctrl-single,pins = <
6062306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x213c, PIN_INPUT | MUX_MODE0)	/* mcbsp2_fsx.mcbsp2_fsx */
6162306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x213e, PIN_INPUT | MUX_MODE0)	/* mcbsp2_clkx.mcbsp2_clkx */
6262306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2140, PIN_INPUT | MUX_MODE0)	/* mcbsp2_dr.mcbsp2.dr */
6362306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2142, PIN_OUTPUT | MUX_MODE0)	/* mcbsp2_dx.mcbsp2_dx */
6462306a36Sopenharmony_ci		>;
6562306a36Sopenharmony_ci	};
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci	mmc1_pins: mmc1-pins {
6862306a36Sopenharmony_ci		pinctrl-single,pins = <
6962306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_clk.sdmmc1_clk */
7062306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_cmd.sdmmc1_cmd */
7162306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */
7262306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat1.sdmmc1_dat1 */
7362306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat2.sdmmc1_dat2 */
7462306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat3.sdmmc1_dat3 */
7562306a36Sopenharmony_ci		>;
7662306a36Sopenharmony_ci	};
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci	mmc2_pins: mmc2-pins {
7962306a36Sopenharmony_ci		pinctrl-single,pins = <
8062306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_clk.sdmmc2_clk */
8162306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_cmd.sdmmc2_cmd */
8262306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0.sdmmc2_dat0 */
8362306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat1.sdmmc2_dat1 */
8462306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat2.sdmmc2_dat2 */
8562306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat3.sdmmc2_dat3 */
8662306a36Sopenharmony_ci		>;
8762306a36Sopenharmony_ci	};
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci	i2c1_pins: i2c1-pins {
9062306a36Sopenharmony_ci		pinctrl-single,pins = <
9162306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT | MUX_MODE0)	/* i2c1_scl.i2c1_scl */
9262306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT | MUX_MODE0)	/* i2c1_sda.i2c1_sda */
9362306a36Sopenharmony_ci		>;
9462306a36Sopenharmony_ci	};
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci	i2c3_pins: i2c3-pins {
9762306a36Sopenharmony_ci		pinctrl-single,pins = <
9862306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT | MUX_MODE0)	/* i2c3_scl.i2c3_scl */
9962306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT | MUX_MODE0)	/* i2c3_sda.i2c3_sda */
10062306a36Sopenharmony_ci		>;
10162306a36Sopenharmony_ci	};
10262306a36Sopenharmony_ci};
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci&gpmc {
10562306a36Sopenharmony_ci	pinctrl-names = "default";
10662306a36Sopenharmony_ci	pinctrl-0 = <&gpmc_pins>;
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci	nand@0,0 {
10962306a36Sopenharmony_ci		compatible = "ti,omap2-nand";
11062306a36Sopenharmony_ci		reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
11162306a36Sopenharmony_ci		interrupt-parent = <&gpmc>;
11262306a36Sopenharmony_ci		interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
11362306a36Sopenharmony_ci			     <1 IRQ_TYPE_NONE>;	/* termcount */
11462306a36Sopenharmony_ci		linux,mtd-name = "micron,mt29c4g96maz";
11562306a36Sopenharmony_ci		nand-bus-width = <16>;
11662306a36Sopenharmony_ci		gpmc,device-width = <2>;
11762306a36Sopenharmony_ci		ti,nand-ecc-opt = "bch8";
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci		gpmc,sync-clk-ps = <0>;
12062306a36Sopenharmony_ci		gpmc,cs-on-ns = <0>;
12162306a36Sopenharmony_ci		gpmc,cs-rd-off-ns = <44>;
12262306a36Sopenharmony_ci		gpmc,cs-wr-off-ns = <44>;
12362306a36Sopenharmony_ci		gpmc,adv-on-ns = <6>;
12462306a36Sopenharmony_ci		gpmc,adv-rd-off-ns = <34>;
12562306a36Sopenharmony_ci		gpmc,adv-wr-off-ns = <44>;
12662306a36Sopenharmony_ci		gpmc,we-off-ns = <40>;
12762306a36Sopenharmony_ci		gpmc,oe-off-ns = <54>;
12862306a36Sopenharmony_ci		gpmc,access-ns = <64>;
12962306a36Sopenharmony_ci		gpmc,rd-cycle-ns = <82>;
13062306a36Sopenharmony_ci		gpmc,wr-cycle-ns = <82>;
13162306a36Sopenharmony_ci		gpmc,wr-access-ns = <40>;
13262306a36Sopenharmony_ci		gpmc,wr-data-mux-bus-ns = <0>;
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci		#address-cells = <1>;
13562306a36Sopenharmony_ci		#size-cells = <1>;
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ci		status = "okay";
13862306a36Sopenharmony_ci	};
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci	onenand@0,0 {
14162306a36Sopenharmony_ci		compatible = "ti,omap2-onenand";
14262306a36Sopenharmony_ci		reg = <0 0 0x20000>;	/* CS0, offset 0, IO size 128K */
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci		gpmc,sync-read;
14562306a36Sopenharmony_ci		gpmc,sync-write;
14662306a36Sopenharmony_ci		gpmc,burst-length = <16>;
14762306a36Sopenharmony_ci		gpmc,burst-wrap;
14862306a36Sopenharmony_ci		gpmc,burst-read;
14962306a36Sopenharmony_ci		gpmc,burst-write;
15062306a36Sopenharmony_ci		gpmc,device-width = <2>; /* GPMC_DEVWIDTH_16BIT */
15162306a36Sopenharmony_ci		gpmc,mux-add-data = <2>; /* GPMC_MUX_AD */
15262306a36Sopenharmony_ci		gpmc,cs-on-ns = <0>;
15362306a36Sopenharmony_ci		gpmc,cs-rd-off-ns = <96>;
15462306a36Sopenharmony_ci		gpmc,cs-wr-off-ns = <96>;
15562306a36Sopenharmony_ci		gpmc,adv-on-ns = <0>;
15662306a36Sopenharmony_ci		gpmc,adv-rd-off-ns = <12>;
15762306a36Sopenharmony_ci		gpmc,adv-wr-off-ns = <12>;
15862306a36Sopenharmony_ci		gpmc,oe-on-ns = <18>;
15962306a36Sopenharmony_ci		gpmc,oe-off-ns = <96>;
16062306a36Sopenharmony_ci		gpmc,we-on-ns = <0>;
16162306a36Sopenharmony_ci		gpmc,we-off-ns = <96>;
16262306a36Sopenharmony_ci		gpmc,rd-cycle-ns = <114>;
16362306a36Sopenharmony_ci		gpmc,wr-cycle-ns = <114>;
16462306a36Sopenharmony_ci		gpmc,access-ns = <90>;
16562306a36Sopenharmony_ci		gpmc,page-burst-access-ns = <12>;
16662306a36Sopenharmony_ci		gpmc,bus-turnaround-ns = <0>;
16762306a36Sopenharmony_ci		gpmc,cycle2cycle-delay-ns = <0>;
16862306a36Sopenharmony_ci		gpmc,wait-monitoring-ns = <0>;
16962306a36Sopenharmony_ci		gpmc,clk-activation-ns = <6>;
17062306a36Sopenharmony_ci		gpmc,wr-data-mux-bus-ns = <30>;
17162306a36Sopenharmony_ci		gpmc,wr-access-ns = <90>;
17262306a36Sopenharmony_ci		gpmc,sync-clk-ps = <12000>;
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ci		#address-cells = <1>;
17562306a36Sopenharmony_ci		#size-cells = <1>;
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_ci		status = "disabled";
17862306a36Sopenharmony_ci	};
17962306a36Sopenharmony_ci};
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_ci&i2c1 {
18262306a36Sopenharmony_ci	pinctrl-names = "default";
18362306a36Sopenharmony_ci	pinctrl-0 = <&i2c1_pins>;
18462306a36Sopenharmony_ci	clock-frequency = <2600000>;
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_ci	twl: twl@48 {
18762306a36Sopenharmony_ci		reg = <0x48>;
18862306a36Sopenharmony_ci		interrupts = <7>; /* SYS_NIRQ cascaded to intc */
18962306a36Sopenharmony_ci		interrupt-parent = <&intc>;
19062306a36Sopenharmony_ci
19162306a36Sopenharmony_ci		twl_audio: audio {
19262306a36Sopenharmony_ci			compatible = "ti,twl4030-audio";
19362306a36Sopenharmony_ci			codec {
19462306a36Sopenharmony_ci			};
19562306a36Sopenharmony_ci		};
19662306a36Sopenharmony_ci	};
19762306a36Sopenharmony_ci};
19862306a36Sopenharmony_ci
19962306a36Sopenharmony_ci#include "twl4030.dtsi"
20062306a36Sopenharmony_ci#include "twl4030_omap3.dtsi"
20162306a36Sopenharmony_ci
20262306a36Sopenharmony_ci&i2c3 {
20362306a36Sopenharmony_ci	pinctrl-names = "default";
20462306a36Sopenharmony_ci	pinctrl-0 = <&i2c3_pins>;
20562306a36Sopenharmony_ci};
20662306a36Sopenharmony_ci
20762306a36Sopenharmony_ci&mcbsp2 {
20862306a36Sopenharmony_ci	pinctrl-names = "default";
20962306a36Sopenharmony_ci	pinctrl-0 = <&mcbsp2_pins>;
21062306a36Sopenharmony_ci	status = "okay";
21162306a36Sopenharmony_ci};
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_ci&mmc1 {
21462306a36Sopenharmony_ci	pinctrl-names = "default";
21562306a36Sopenharmony_ci	pinctrl-0 = <&mmc1_pins>;
21662306a36Sopenharmony_ci	vmmc-supply = <&vmmc1>;
21762306a36Sopenharmony_ci	vmmc_aux-supply = <&vsim>;
21862306a36Sopenharmony_ci	bus-width = <4>;
21962306a36Sopenharmony_ci	cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>;
22062306a36Sopenharmony_ci};
22162306a36Sopenharmony_ci
22262306a36Sopenharmony_ci&mmc3 {
22362306a36Sopenharmony_ci	status = "disabled";
22462306a36Sopenharmony_ci};
22562306a36Sopenharmony_ci
22662306a36Sopenharmony_ci&uart1 {
22762306a36Sopenharmony_ci	pinctrl-names = "default";
22862306a36Sopenharmony_ci	pinctrl-0 = <&uart1_pins>;
22962306a36Sopenharmony_ci};
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_ci&uart3 {
23262306a36Sopenharmony_ci	pinctrl-names = "default";
23362306a36Sopenharmony_ci	pinctrl-0 = <&uart3_pins>;
23462306a36Sopenharmony_ci};
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ci&twl_gpio {
23762306a36Sopenharmony_ci	ti,use-leds;
23862306a36Sopenharmony_ci};
23962306a36Sopenharmony_ci
24062306a36Sopenharmony_ci&usb_otg_hs {
24162306a36Sopenharmony_ci	interface-type = <0>;
24262306a36Sopenharmony_ci	usb-phy = <&usb2_phy>;
24362306a36Sopenharmony_ci	phys = <&usb2_phy>;
24462306a36Sopenharmony_ci	phy-names = "usb2-phy";
24562306a36Sopenharmony_ci	mode = <3>;
24662306a36Sopenharmony_ci	power = <50>;
24762306a36Sopenharmony_ci};
248