162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2011-2013 Texas Instruments Incorporated - https://www.ti.com/
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci#include <dt-bindings/input/input.h>
662306a36Sopenharmony_ci#include "elpida_ecb240abacn.dtsi"
762306a36Sopenharmony_ci#include "omap4-mcpdm.dtsi"
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci/ {
1062306a36Sopenharmony_ci	memory@80000000 {
1162306a36Sopenharmony_ci		device_type = "memory";
1262306a36Sopenharmony_ci		reg = <0x80000000 0x40000000>; /* 1 GB */
1362306a36Sopenharmony_ci	};
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci	reserved-memory {
1662306a36Sopenharmony_ci		#address-cells = <1>;
1762306a36Sopenharmony_ci		#size-cells = <1>;
1862306a36Sopenharmony_ci		ranges;
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci		dsp_memory_region: dsp-memory@98000000 {
2162306a36Sopenharmony_ci			compatible = "shared-dma-pool";
2262306a36Sopenharmony_ci			reg = <0x98000000 0x800000>;
2362306a36Sopenharmony_ci			reusable;
2462306a36Sopenharmony_ci			status = "okay";
2562306a36Sopenharmony_ci		};
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci		ipu_memory_region: ipu-memory@98800000 {
2862306a36Sopenharmony_ci			compatible = "shared-dma-pool";
2962306a36Sopenharmony_ci			reg = <0x98800000 0x7000000>;
3062306a36Sopenharmony_ci			reusable;
3162306a36Sopenharmony_ci			status = "okay";
3262306a36Sopenharmony_ci		};
3362306a36Sopenharmony_ci	};
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci	chosen {
3662306a36Sopenharmony_ci		stdout-path = &uart3;
3762306a36Sopenharmony_ci	};
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci	aliases {
4062306a36Sopenharmony_ci		display0 = &dvi0;
4162306a36Sopenharmony_ci		display1 = &hdmi0;
4262306a36Sopenharmony_ci		ethernet = &ethernet;
4362306a36Sopenharmony_ci	};
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci	leds: leds {
4662306a36Sopenharmony_ci		compatible = "gpio-leds";
4762306a36Sopenharmony_ci		pinctrl-names = "default";
4862306a36Sopenharmony_ci		pinctrl-0 = <
4962306a36Sopenharmony_ci			&led_wkgpio_pins
5062306a36Sopenharmony_ci		>;
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci		led-heartbeat {
5362306a36Sopenharmony_ci			label = "pandaboard::status1";
5462306a36Sopenharmony_ci			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
5562306a36Sopenharmony_ci			linux,default-trigger = "heartbeat";
5662306a36Sopenharmony_ci		};
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci		led-mmc {
5962306a36Sopenharmony_ci			label = "pandaboard::status2";
6062306a36Sopenharmony_ci			gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
6162306a36Sopenharmony_ci			linux,default-trigger = "mmc0";
6262306a36Sopenharmony_ci		};
6362306a36Sopenharmony_ci	};
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci	gpio_keys: gpio_keys {
6662306a36Sopenharmony_ci		compatible = "gpio-keys";
6762306a36Sopenharmony_ci		pinctrl-names = "default";
6862306a36Sopenharmony_ci		pinctrl-0 = <
6962306a36Sopenharmony_ci			&button_pins
7062306a36Sopenharmony_ci		>;
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci		buttonS2 {
7362306a36Sopenharmony_ci			label = "button S2";
7462306a36Sopenharmony_ci			gpios = <&gpio4 25 GPIO_ACTIVE_LOW>;	/* gpio_121 */
7562306a36Sopenharmony_ci			linux,code = <BTN_0>;
7662306a36Sopenharmony_ci			wakeup-source;
7762306a36Sopenharmony_ci		};
7862306a36Sopenharmony_ci	};
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci	sound: sound {
8162306a36Sopenharmony_ci		compatible = "ti,abe-twl6040";
8262306a36Sopenharmony_ci		ti,model = "PandaBoard";
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci		ti,mclk-freq = <38400000>;
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci		ti,mcpdm = <&mcpdm>;
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci		ti,twl6040 = <&twl6040>;
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci		/* Audio routing */
9162306a36Sopenharmony_ci		ti,audio-routing =
9262306a36Sopenharmony_ci			"Headset Stereophone", "HSOL",
9362306a36Sopenharmony_ci			"Headset Stereophone", "HSOR",
9462306a36Sopenharmony_ci			"Ext Spk", "HFL",
9562306a36Sopenharmony_ci			"Ext Spk", "HFR",
9662306a36Sopenharmony_ci			"Line Out", "AUXL",
9762306a36Sopenharmony_ci			"Line Out", "AUXR",
9862306a36Sopenharmony_ci			"HSMIC", "Headset Mic",
9962306a36Sopenharmony_ci			"Headset Mic", "Headset Mic Bias",
10062306a36Sopenharmony_ci			"AFML", "Line In",
10162306a36Sopenharmony_ci			"AFMR", "Line In";
10262306a36Sopenharmony_ci	};
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci	/* HS USB Port 1 Power */
10562306a36Sopenharmony_ci	hsusb1_power: hsusb1_power_reg {
10662306a36Sopenharmony_ci		compatible = "regulator-fixed";
10762306a36Sopenharmony_ci		regulator-name = "hsusb1_vbus";
10862306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
10962306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
11062306a36Sopenharmony_ci		gpio = <&gpio1 1 GPIO_ACTIVE_HIGH>;	/* gpio_1 */
11162306a36Sopenharmony_ci		startup-delay-us = <70000>;
11262306a36Sopenharmony_ci		enable-active-high;
11362306a36Sopenharmony_ci		/*
11462306a36Sopenharmony_ci		 * boot-on is required along with always-on as the
11562306a36Sopenharmony_ci		 * regulator framework doesn't enable the regulator
11662306a36Sopenharmony_ci		 * if boot-on is not there.
11762306a36Sopenharmony_ci		 */
11862306a36Sopenharmony_ci		regulator-always-on;
11962306a36Sopenharmony_ci		regulator-boot-on;
12062306a36Sopenharmony_ci	};
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci	/* HS USB Host PHY on PORT 1 */
12362306a36Sopenharmony_ci	hsusb1_phy: hsusb1_phy {
12462306a36Sopenharmony_ci		compatible = "usb-nop-xceiv";
12562306a36Sopenharmony_ci		reset-gpios = <&gpio2 30 GPIO_ACTIVE_LOW>;   /* gpio_62 */
12662306a36Sopenharmony_ci		#phy-cells = <0>;
12762306a36Sopenharmony_ci		vcc-supply = <&hsusb1_power>;
12862306a36Sopenharmony_ci		clocks = <&auxclk3_ck>;
12962306a36Sopenharmony_ci		clock-names = "main_clk";
13062306a36Sopenharmony_ci		clock-frequency = <19200000>;
13162306a36Sopenharmony_ci	};
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci	/* regulator for wl12xx on sdio5 */
13462306a36Sopenharmony_ci	wl12xx_vmmc: wl12xx_vmmc {
13562306a36Sopenharmony_ci		pinctrl-names = "default";
13662306a36Sopenharmony_ci		pinctrl-0 = <&wl12xx_gpio>;
13762306a36Sopenharmony_ci		compatible = "regulator-fixed";
13862306a36Sopenharmony_ci		regulator-name = "vwl1271";
13962306a36Sopenharmony_ci		regulator-min-microvolt = <1800000>;
14062306a36Sopenharmony_ci		regulator-max-microvolt = <1800000>;
14162306a36Sopenharmony_ci		gpio = <&gpio2 11 GPIO_ACTIVE_HIGH>;
14262306a36Sopenharmony_ci		startup-delay-us = <70000>;
14362306a36Sopenharmony_ci		enable-active-high;
14462306a36Sopenharmony_ci	};
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ci	tfp410: encoder0 {
14762306a36Sopenharmony_ci		compatible = "ti,tfp410";
14862306a36Sopenharmony_ci		powerdown-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;	/* gpio_0 */
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci		ports {
15162306a36Sopenharmony_ci			#address-cells = <1>;
15262306a36Sopenharmony_ci			#size-cells = <0>;
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ci			port@0 {
15562306a36Sopenharmony_ci				reg = <0>;
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci				tfp410_in: endpoint {
15862306a36Sopenharmony_ci					remote-endpoint = <&dpi_out>;
15962306a36Sopenharmony_ci				};
16062306a36Sopenharmony_ci			};
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ci			port@1 {
16362306a36Sopenharmony_ci				reg = <1>;
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_ci				tfp410_out: endpoint {
16662306a36Sopenharmony_ci					remote-endpoint = <&dvi_connector_in>;
16762306a36Sopenharmony_ci				};
16862306a36Sopenharmony_ci			};
16962306a36Sopenharmony_ci		};
17062306a36Sopenharmony_ci	};
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci	dvi0: connector0 {
17362306a36Sopenharmony_ci		compatible = "dvi-connector";
17462306a36Sopenharmony_ci		label = "dvi";
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ci		digital;
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ci		ddc-i2c-bus = <&i2c3>;
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ci		port {
18162306a36Sopenharmony_ci			dvi_connector_in: endpoint {
18262306a36Sopenharmony_ci				remote-endpoint = <&tfp410_out>;
18362306a36Sopenharmony_ci			};
18462306a36Sopenharmony_ci		};
18562306a36Sopenharmony_ci	};
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ci	tpd12s015: encoder1 {
18862306a36Sopenharmony_ci		compatible = "ti,tpd12s015";
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_ci		gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>,	/* 60, CT CP HPD */
19162306a36Sopenharmony_ci			<&gpio2 9 GPIO_ACTIVE_HIGH>,	/* 41, LS OE */
19262306a36Sopenharmony_ci			<&gpio2 31 GPIO_ACTIVE_HIGH>;	/* 63, HPD */
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ci		ports {
19562306a36Sopenharmony_ci			#address-cells = <1>;
19662306a36Sopenharmony_ci			#size-cells = <0>;
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ci			port@0 {
19962306a36Sopenharmony_ci				reg = <0>;
20062306a36Sopenharmony_ci
20162306a36Sopenharmony_ci				tpd12s015_in: endpoint {
20262306a36Sopenharmony_ci					remote-endpoint = <&hdmi_out>;
20362306a36Sopenharmony_ci				};
20462306a36Sopenharmony_ci			};
20562306a36Sopenharmony_ci
20662306a36Sopenharmony_ci			port@1 {
20762306a36Sopenharmony_ci				reg = <1>;
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ci				tpd12s015_out: endpoint {
21062306a36Sopenharmony_ci					remote-endpoint = <&hdmi_connector_in>;
21162306a36Sopenharmony_ci				};
21262306a36Sopenharmony_ci			};
21362306a36Sopenharmony_ci		};
21462306a36Sopenharmony_ci	};
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_ci	hdmi0: connector1 {
21762306a36Sopenharmony_ci		compatible = "hdmi-connector";
21862306a36Sopenharmony_ci		label = "hdmi";
21962306a36Sopenharmony_ci
22062306a36Sopenharmony_ci		type = "a";
22162306a36Sopenharmony_ci
22262306a36Sopenharmony_ci		port {
22362306a36Sopenharmony_ci			hdmi_connector_in: endpoint {
22462306a36Sopenharmony_ci				remote-endpoint = <&tpd12s015_out>;
22562306a36Sopenharmony_ci			};
22662306a36Sopenharmony_ci		};
22762306a36Sopenharmony_ci	};
22862306a36Sopenharmony_ci};
22962306a36Sopenharmony_ci
23062306a36Sopenharmony_ci&omap4_pmx_core {
23162306a36Sopenharmony_ci	pinctrl-names = "default";
23262306a36Sopenharmony_ci	pinctrl-0 = <
23362306a36Sopenharmony_ci			&dss_dpi_pins
23462306a36Sopenharmony_ci			&tfp410_pins
23562306a36Sopenharmony_ci			&dss_hdmi_pins
23662306a36Sopenharmony_ci			&tpd12s015_pins
23762306a36Sopenharmony_ci			&hsusbb1_pins
23862306a36Sopenharmony_ci	>;
23962306a36Sopenharmony_ci
24062306a36Sopenharmony_ci	twl6040_pins: twl6040-pins {
24162306a36Sopenharmony_ci		pinctrl-single,pins = <
24262306a36Sopenharmony_ci			OMAP4_IOPAD(0x120, PIN_OUTPUT | MUX_MODE3)	/* hdq_sio.gpio_127 */
24362306a36Sopenharmony_ci			OMAP4_IOPAD(0x1a0, PIN_INPUT | MUX_MODE0)	/* sys_nirq2.sys_nirq2 */
24462306a36Sopenharmony_ci		>;
24562306a36Sopenharmony_ci	};
24662306a36Sopenharmony_ci
24762306a36Sopenharmony_ci	mcbsp1_pins: mcbsp1-pins {
24862306a36Sopenharmony_ci		pinctrl-single,pins = <
24962306a36Sopenharmony_ci			OMAP4_IOPAD(0x0fe, PIN_INPUT | MUX_MODE0)		/* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
25062306a36Sopenharmony_ci			OMAP4_IOPAD(0x100, PIN_INPUT_PULLDOWN | MUX_MODE0)	/* abe_mcbsp1_dr.abe_mcbsp1_dr */
25162306a36Sopenharmony_ci			OMAP4_IOPAD(0x102, PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* abe_mcbsp1_dx.abe_mcbsp1_dx */
25262306a36Sopenharmony_ci			OMAP4_IOPAD(0x104, PIN_INPUT | MUX_MODE0)		/* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
25362306a36Sopenharmony_ci		>;
25462306a36Sopenharmony_ci	};
25562306a36Sopenharmony_ci
25662306a36Sopenharmony_ci	dss_dpi_pins: dss-dpi-pins {
25762306a36Sopenharmony_ci		pinctrl-single,pins = <
25862306a36Sopenharmony_ci			OMAP4_IOPAD(0x162, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data23 */
25962306a36Sopenharmony_ci			OMAP4_IOPAD(0x164, PIN_OUTPUT | MUX_MODE5) 	/* dispc2_data22 */
26062306a36Sopenharmony_ci			OMAP4_IOPAD(0x166, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data21 */
26162306a36Sopenharmony_ci			OMAP4_IOPAD(0x168, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data20 */
26262306a36Sopenharmony_ci			OMAP4_IOPAD(0x16a, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data19 */
26362306a36Sopenharmony_ci			OMAP4_IOPAD(0x16c, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data18 */
26462306a36Sopenharmony_ci			OMAP4_IOPAD(0x16e, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data15 */
26562306a36Sopenharmony_ci			OMAP4_IOPAD(0x170, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data14 */
26662306a36Sopenharmony_ci			OMAP4_IOPAD(0x172, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data13 */
26762306a36Sopenharmony_ci			OMAP4_IOPAD(0x174, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data12 */
26862306a36Sopenharmony_ci			OMAP4_IOPAD(0x176, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data11 */
26962306a36Sopenharmony_ci
27062306a36Sopenharmony_ci			OMAP4_IOPAD(0x1b4, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data10 */
27162306a36Sopenharmony_ci			OMAP4_IOPAD(0x1b6, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data9 */
27262306a36Sopenharmony_ci			OMAP4_IOPAD(0x1b8, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data16 */
27362306a36Sopenharmony_ci			OMAP4_IOPAD(0x1ba, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data17 */
27462306a36Sopenharmony_ci			OMAP4_IOPAD(0x1bc, PIN_OUTPUT | MUX_MODE5)	/* dispc2_hsync */
27562306a36Sopenharmony_ci			OMAP4_IOPAD(0x1be, PIN_OUTPUT | MUX_MODE5)	/* dispc2_pclk */
27662306a36Sopenharmony_ci			OMAP4_IOPAD(0x1c0, PIN_OUTPUT | MUX_MODE5)	/* dispc2_vsync */
27762306a36Sopenharmony_ci			OMAP4_IOPAD(0x1c2, PIN_OUTPUT | MUX_MODE5)	/* dispc2_de */
27862306a36Sopenharmony_ci			OMAP4_IOPAD(0x1c4, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data8 */
27962306a36Sopenharmony_ci			OMAP4_IOPAD(0x1c6, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data7 */
28062306a36Sopenharmony_ci			OMAP4_IOPAD(0x1c8, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data6 */
28162306a36Sopenharmony_ci			OMAP4_IOPAD(0x1ca, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data5 */
28262306a36Sopenharmony_ci			OMAP4_IOPAD(0x1cc, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data4 */
28362306a36Sopenharmony_ci			OMAP4_IOPAD(0x1ce, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data3 */
28462306a36Sopenharmony_ci
28562306a36Sopenharmony_ci			OMAP4_IOPAD(0x1d0, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data2 */
28662306a36Sopenharmony_ci			OMAP4_IOPAD(0x1d2, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data1 */
28762306a36Sopenharmony_ci			OMAP4_IOPAD(0x1d4, PIN_OUTPUT | MUX_MODE5)	/* dispc2_data0 */
28862306a36Sopenharmony_ci		>;
28962306a36Sopenharmony_ci	};
29062306a36Sopenharmony_ci
29162306a36Sopenharmony_ci	tfp410_pins: tfp410-pins {
29262306a36Sopenharmony_ci		pinctrl-single,pins = <
29362306a36Sopenharmony_ci			OMAP4_IOPAD(0x184, PIN_OUTPUT | MUX_MODE3)	/* gpio_0 */
29462306a36Sopenharmony_ci		>;
29562306a36Sopenharmony_ci	};
29662306a36Sopenharmony_ci
29762306a36Sopenharmony_ci	dss_hdmi_pins: dss-hdmi-pins {
29862306a36Sopenharmony_ci		pinctrl-single,pins = <
29962306a36Sopenharmony_ci			OMAP4_IOPAD(0x09a, PIN_INPUT | MUX_MODE0)		/* hdmi_cec.hdmi_cec */
30062306a36Sopenharmony_ci			OMAP4_IOPAD(0x09c, PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_scl.hdmi_scl */
30162306a36Sopenharmony_ci			OMAP4_IOPAD(0x09e, PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_sda.hdmi_sda */
30262306a36Sopenharmony_ci		>;
30362306a36Sopenharmony_ci	};
30462306a36Sopenharmony_ci
30562306a36Sopenharmony_ci	tpd12s015_pins: tpd12s015-pins {
30662306a36Sopenharmony_ci		pinctrl-single,pins = <
30762306a36Sopenharmony_ci			OMAP4_IOPAD(0x062, PIN_OUTPUT | MUX_MODE3)		/* gpmc_a17.gpio_41 */
30862306a36Sopenharmony_ci			OMAP4_IOPAD(0x088, PIN_OUTPUT | MUX_MODE3)		/* gpmc_nbe1.gpio_60 */
30962306a36Sopenharmony_ci			OMAP4_IOPAD(0x098, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* hdmi_hpd.gpio_63 */
31062306a36Sopenharmony_ci		>;
31162306a36Sopenharmony_ci	};
31262306a36Sopenharmony_ci
31362306a36Sopenharmony_ci	hsusbb1_pins: hsusbb1-pins {
31462306a36Sopenharmony_ci		pinctrl-single,pins = <
31562306a36Sopenharmony_ci			OMAP4_IOPAD(0x0c2, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */
31662306a36Sopenharmony_ci			OMAP4_IOPAD(0x0c4, PIN_OUTPUT | MUX_MODE4)		/* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */
31762306a36Sopenharmony_ci			OMAP4_IOPAD(0x0c6, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */
31862306a36Sopenharmony_ci			OMAP4_IOPAD(0x0c8, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */
31962306a36Sopenharmony_ci			OMAP4_IOPAD(0x0ca, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */
32062306a36Sopenharmony_ci			OMAP4_IOPAD(0x0cc, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */
32162306a36Sopenharmony_ci			OMAP4_IOPAD(0x0ce, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */
32262306a36Sopenharmony_ci			OMAP4_IOPAD(0x0d0, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */
32362306a36Sopenharmony_ci			OMAP4_IOPAD(0x0d2, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */
32462306a36Sopenharmony_ci			OMAP4_IOPAD(0x0d4, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */
32562306a36Sopenharmony_ci			OMAP4_IOPAD(0x0d6, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */
32662306a36Sopenharmony_ci			OMAP4_IOPAD(0x0d8, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */
32762306a36Sopenharmony_ci		>;
32862306a36Sopenharmony_ci	};
32962306a36Sopenharmony_ci
33062306a36Sopenharmony_ci	i2c1_pins: i2c1-pins {
33162306a36Sopenharmony_ci		pinctrl-single,pins = <
33262306a36Sopenharmony_ci			OMAP4_IOPAD(0x122, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c1_scl */
33362306a36Sopenharmony_ci			OMAP4_IOPAD(0x124, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c1_sda */
33462306a36Sopenharmony_ci		>;
33562306a36Sopenharmony_ci	};
33662306a36Sopenharmony_ci
33762306a36Sopenharmony_ci	i2c2_pins: i2c2-pins {
33862306a36Sopenharmony_ci		pinctrl-single,pins = <
33962306a36Sopenharmony_ci			OMAP4_IOPAD(0x126, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_scl */
34062306a36Sopenharmony_ci			OMAP4_IOPAD(0x128, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda */
34162306a36Sopenharmony_ci		>;
34262306a36Sopenharmony_ci	};
34362306a36Sopenharmony_ci
34462306a36Sopenharmony_ci	i2c3_pins: i2c3-pins {
34562306a36Sopenharmony_ci		pinctrl-single,pins = <
34662306a36Sopenharmony_ci			OMAP4_IOPAD(0x12a, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c3_scl */
34762306a36Sopenharmony_ci			OMAP4_IOPAD(0x12c, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c3_sda */
34862306a36Sopenharmony_ci		>;
34962306a36Sopenharmony_ci	};
35062306a36Sopenharmony_ci
35162306a36Sopenharmony_ci	i2c4_pins: i2c4-pins {
35262306a36Sopenharmony_ci		pinctrl-single,pins = <
35362306a36Sopenharmony_ci			OMAP4_IOPAD(0x12e, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c4_scl */
35462306a36Sopenharmony_ci			OMAP4_IOPAD(0x130, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c4_sda */
35562306a36Sopenharmony_ci		>;
35662306a36Sopenharmony_ci	};
35762306a36Sopenharmony_ci
35862306a36Sopenharmony_ci	/*
35962306a36Sopenharmony_ci	 * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP
36062306a36Sopenharmony_ci	 * REVISIT: Are the pull-ups needed for GPIO 48 and 49?
36162306a36Sopenharmony_ci	 */
36262306a36Sopenharmony_ci	wl12xx_gpio: wl12xx-gpio-pins {
36362306a36Sopenharmony_ci		pinctrl-single,pins = <
36462306a36Sopenharmony_ci			OMAP4_IOPAD(0x066, PIN_OUTPUT | MUX_MODE3)		/* gpmc_a19.gpio_43 */
36562306a36Sopenharmony_ci			OMAP4_IOPAD(0x06c, PIN_OUTPUT | MUX_MODE3)		/* gpmc_a22.gpio_46 */
36662306a36Sopenharmony_ci			OMAP4_IOPAD(0x070, PIN_OUTPUT_PULLUP | MUX_MODE3)	/* gpmc_a24.gpio_48 */
36762306a36Sopenharmony_ci			OMAP4_IOPAD(0x072, PIN_OUTPUT_PULLUP | MUX_MODE3)	/* gpmc_a25.gpio_49 */
36862306a36Sopenharmony_ci		>;
36962306a36Sopenharmony_ci	};
37062306a36Sopenharmony_ci
37162306a36Sopenharmony_ci	/* wl12xx GPIO inputs and SDIO pins */
37262306a36Sopenharmony_ci	wl12xx_pins: wl12xx-pins {
37362306a36Sopenharmony_ci		pinctrl-single,pins = <
37462306a36Sopenharmony_ci			OMAP4_IOPAD(0x078, PIN_INPUT | MUX_MODE3)		/* gpmc_ncs2.gpio_52 */
37562306a36Sopenharmony_ci			OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3)		/* gpmc_ncs3.gpio_53 */
37662306a36Sopenharmony_ci			OMAP4_IOPAD(0x148, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_clk.sdmmc5_clk */
37762306a36Sopenharmony_ci			OMAP4_IOPAD(0x14a, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_cmd.sdmmc5_cmd */
37862306a36Sopenharmony_ci			OMAP4_IOPAD(0x14c, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_dat0.sdmmc5_dat0 */
37962306a36Sopenharmony_ci			OMAP4_IOPAD(0x14e, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_dat1.sdmmc5_dat1 */
38062306a36Sopenharmony_ci			OMAP4_IOPAD(0x150, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_dat2.sdmmc5_dat2 */
38162306a36Sopenharmony_ci			OMAP4_IOPAD(0x152, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc5_dat3.sdmmc5_dat3 */
38262306a36Sopenharmony_ci		>;
38362306a36Sopenharmony_ci	};
38462306a36Sopenharmony_ci
38562306a36Sopenharmony_ci	button_pins: button-pins {
38662306a36Sopenharmony_ci		pinctrl-single,pins = <
38762306a36Sopenharmony_ci			OMAP4_IOPAD(0x114, PIN_INPUT_PULLUP | MUX_MODE3)	/* gpio_121 */
38862306a36Sopenharmony_ci		>;
38962306a36Sopenharmony_ci	};
39062306a36Sopenharmony_ci};
39162306a36Sopenharmony_ci
39262306a36Sopenharmony_ci&omap4_pmx_wkup {
39362306a36Sopenharmony_ci	led_wkgpio_pins: leds-wkpins-pins {
39462306a36Sopenharmony_ci		pinctrl-single,pins = <
39562306a36Sopenharmony_ci			OMAP4_IOPAD(0x05a, PIN_OUTPUT | MUX_MODE3)	/* gpio_wk7 */
39662306a36Sopenharmony_ci			OMAP4_IOPAD(0x05c, PIN_OUTPUT | MUX_MODE3)	/* gpio_wk8 */
39762306a36Sopenharmony_ci		>;
39862306a36Sopenharmony_ci	};
39962306a36Sopenharmony_ci};
40062306a36Sopenharmony_ci
40162306a36Sopenharmony_ci&i2c1 {
40262306a36Sopenharmony_ci	pinctrl-names = "default";
40362306a36Sopenharmony_ci	pinctrl-0 = <&i2c1_pins>;
40462306a36Sopenharmony_ci
40562306a36Sopenharmony_ci	clock-frequency = <400000>;
40662306a36Sopenharmony_ci
40762306a36Sopenharmony_ci	twl: twl@48 {
40862306a36Sopenharmony_ci		reg = <0x48>;
40962306a36Sopenharmony_ci		/* IRQ# = 7 */
41062306a36Sopenharmony_ci		interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
41162306a36Sopenharmony_ci	};
41262306a36Sopenharmony_ci
41362306a36Sopenharmony_ci	twl6040: twl@4b {
41462306a36Sopenharmony_ci		compatible = "ti,twl6040";
41562306a36Sopenharmony_ci		#clock-cells = <0>;
41662306a36Sopenharmony_ci		reg = <0x4b>;
41762306a36Sopenharmony_ci
41862306a36Sopenharmony_ci		pinctrl-names = "default";
41962306a36Sopenharmony_ci		pinctrl-0 = <&twl6040_pins>;
42062306a36Sopenharmony_ci
42162306a36Sopenharmony_ci		/* IRQ# = 119 */
42262306a36Sopenharmony_ci		interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
42362306a36Sopenharmony_ci		ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>;  /* gpio line 127 */
42462306a36Sopenharmony_ci
42562306a36Sopenharmony_ci		vio-supply = <&v1v8>;
42662306a36Sopenharmony_ci		v2v1-supply = <&v2v1>;
42762306a36Sopenharmony_ci		enable-active-high;
42862306a36Sopenharmony_ci	};
42962306a36Sopenharmony_ci};
43062306a36Sopenharmony_ci
43162306a36Sopenharmony_ci#include "twl6030.dtsi"
43262306a36Sopenharmony_ci#include "twl6030_omap4.dtsi"
43362306a36Sopenharmony_ci
43462306a36Sopenharmony_ci&i2c2 {
43562306a36Sopenharmony_ci	pinctrl-names = "default";
43662306a36Sopenharmony_ci	pinctrl-0 = <&i2c2_pins>;
43762306a36Sopenharmony_ci
43862306a36Sopenharmony_ci	clock-frequency = <400000>;
43962306a36Sopenharmony_ci};
44062306a36Sopenharmony_ci
44162306a36Sopenharmony_ci&i2c3 {
44262306a36Sopenharmony_ci	pinctrl-names = "default";
44362306a36Sopenharmony_ci	pinctrl-0 = <&i2c3_pins>;
44462306a36Sopenharmony_ci
44562306a36Sopenharmony_ci	clock-frequency = <100000>;
44662306a36Sopenharmony_ci
44762306a36Sopenharmony_ci	/*
44862306a36Sopenharmony_ci	 * Display monitor features are burnt in their EEPROM as EDID data.
44962306a36Sopenharmony_ci	 * The EEPROM is connected as I2C slave device.
45062306a36Sopenharmony_ci	 */
45162306a36Sopenharmony_ci	eeprom@50 {
45262306a36Sopenharmony_ci		compatible = "ti,eeprom";
45362306a36Sopenharmony_ci		reg = <0x50>;
45462306a36Sopenharmony_ci	};
45562306a36Sopenharmony_ci};
45662306a36Sopenharmony_ci
45762306a36Sopenharmony_ci&i2c4 {
45862306a36Sopenharmony_ci	pinctrl-names = "default";
45962306a36Sopenharmony_ci	pinctrl-0 = <&i2c4_pins>;
46062306a36Sopenharmony_ci
46162306a36Sopenharmony_ci	clock-frequency = <400000>;
46262306a36Sopenharmony_ci};
46362306a36Sopenharmony_ci
46462306a36Sopenharmony_ci&mmc1 {
46562306a36Sopenharmony_ci	vmmc-supply = <&vmmc>;
46662306a36Sopenharmony_ci	bus-width = <8>;
46762306a36Sopenharmony_ci};
46862306a36Sopenharmony_ci
46962306a36Sopenharmony_ci&mmc2 {
47062306a36Sopenharmony_ci	status = "disabled";
47162306a36Sopenharmony_ci};
47262306a36Sopenharmony_ci
47362306a36Sopenharmony_ci&mmc3 {
47462306a36Sopenharmony_ci	status = "disabled";
47562306a36Sopenharmony_ci};
47662306a36Sopenharmony_ci
47762306a36Sopenharmony_ci&mmc4 {
47862306a36Sopenharmony_ci	status = "disabled";
47962306a36Sopenharmony_ci};
48062306a36Sopenharmony_ci
48162306a36Sopenharmony_ci&mmc5 {
48262306a36Sopenharmony_ci	pinctrl-names = "default";
48362306a36Sopenharmony_ci	pinctrl-0 = <&wl12xx_pins>;
48462306a36Sopenharmony_ci	vmmc-supply = <&wl12xx_vmmc>;
48562306a36Sopenharmony_ci	interrupts-extended = <&wakeupgen GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH
48662306a36Sopenharmony_ci			       &omap4_pmx_core 0x10e>;
48762306a36Sopenharmony_ci	non-removable;
48862306a36Sopenharmony_ci	bus-width = <4>;
48962306a36Sopenharmony_ci	cap-power-off-card;
49062306a36Sopenharmony_ci
49162306a36Sopenharmony_ci	#address-cells = <1>;
49262306a36Sopenharmony_ci	#size-cells = <0>;
49362306a36Sopenharmony_ci	wlcore: wlcore@2 {
49462306a36Sopenharmony_ci		compatible = "ti,wl1271";
49562306a36Sopenharmony_ci		reg = <2>;
49662306a36Sopenharmony_ci		/* gpio_53 with gpmc_ncs3 pad as wakeup */
49762306a36Sopenharmony_ci		interrupts-extended = <&gpio2 21 IRQ_TYPE_LEVEL_HIGH>,
49862306a36Sopenharmony_ci				      <&omap4_pmx_core 0x3a>;
49962306a36Sopenharmony_ci		interrupt-names = "irq", "wakeup";
50062306a36Sopenharmony_ci		ref-clock-frequency = <38400000>;
50162306a36Sopenharmony_ci	};
50262306a36Sopenharmony_ci};
50362306a36Sopenharmony_ci
50462306a36Sopenharmony_ci&emif1 {
50562306a36Sopenharmony_ci	cs1-used;
50662306a36Sopenharmony_ci	device-handle = <&elpida_ECB240ABACN>;
50762306a36Sopenharmony_ci};
50862306a36Sopenharmony_ci
50962306a36Sopenharmony_ci&emif2 {
51062306a36Sopenharmony_ci	cs1-used;
51162306a36Sopenharmony_ci	device-handle = <&elpida_ECB240ABACN>;
51262306a36Sopenharmony_ci};
51362306a36Sopenharmony_ci
51462306a36Sopenharmony_ci&mcbsp1 {
51562306a36Sopenharmony_ci	pinctrl-names = "default";
51662306a36Sopenharmony_ci	pinctrl-0 = <&mcbsp1_pins>;
51762306a36Sopenharmony_ci	status = "okay";
51862306a36Sopenharmony_ci};
51962306a36Sopenharmony_ci
52062306a36Sopenharmony_ci&twl_usb_comparator {
52162306a36Sopenharmony_ci	usb-supply = <&vusb>;
52262306a36Sopenharmony_ci};
52362306a36Sopenharmony_ci
52462306a36Sopenharmony_ci&uart2 {
52562306a36Sopenharmony_ci	interrupts-extended = <&wakeupgen GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH
52662306a36Sopenharmony_ci			       &omap4_pmx_core OMAP4_UART2_RX>;
52762306a36Sopenharmony_ci};
52862306a36Sopenharmony_ci
52962306a36Sopenharmony_ci&uart3 {
53062306a36Sopenharmony_ci	interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
53162306a36Sopenharmony_ci			       &omap4_pmx_core OMAP4_UART3_RX>;
53262306a36Sopenharmony_ci};
53362306a36Sopenharmony_ci
53462306a36Sopenharmony_ci&uart4 {
53562306a36Sopenharmony_ci	interrupts-extended = <&wakeupgen GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH
53662306a36Sopenharmony_ci			       &omap4_pmx_core OMAP4_UART4_RX>;
53762306a36Sopenharmony_ci};
53862306a36Sopenharmony_ci
53962306a36Sopenharmony_ci&usb_otg_hs {
54062306a36Sopenharmony_ci	interface-type = <1>;
54162306a36Sopenharmony_ci	mode = <3>;
54262306a36Sopenharmony_ci	power = <50>;
54362306a36Sopenharmony_ci};
54462306a36Sopenharmony_ci
54562306a36Sopenharmony_ci&usbhshost {
54662306a36Sopenharmony_ci	port1-mode = "ehci-phy";
54762306a36Sopenharmony_ci};
54862306a36Sopenharmony_ci
54962306a36Sopenharmony_ci&usbhsehci {
55062306a36Sopenharmony_ci	phys = <&hsusb1_phy>;
55162306a36Sopenharmony_ci
55262306a36Sopenharmony_ci	#address-cells = <1>;
55362306a36Sopenharmony_ci	#size-cells = <0>;
55462306a36Sopenharmony_ci
55562306a36Sopenharmony_ci	hub@1 {
55662306a36Sopenharmony_ci		compatible = "usb424,9514";
55762306a36Sopenharmony_ci		reg = <1>;
55862306a36Sopenharmony_ci		#address-cells = <1>;
55962306a36Sopenharmony_ci		#size-cells = <0>;
56062306a36Sopenharmony_ci
56162306a36Sopenharmony_ci		ethernet: ethernet@1 {
56262306a36Sopenharmony_ci			compatible = "usb424,ec00";
56362306a36Sopenharmony_ci			reg = <1>;
56462306a36Sopenharmony_ci		};
56562306a36Sopenharmony_ci	};
56662306a36Sopenharmony_ci};
56762306a36Sopenharmony_ci
56862306a36Sopenharmony_ci&dss {
56962306a36Sopenharmony_ci	status = "okay";
57062306a36Sopenharmony_ci
57162306a36Sopenharmony_ci	port {
57262306a36Sopenharmony_ci		dpi_out: endpoint {
57362306a36Sopenharmony_ci			remote-endpoint = <&tfp410_in>;
57462306a36Sopenharmony_ci			data-lines = <24>;
57562306a36Sopenharmony_ci		};
57662306a36Sopenharmony_ci	};
57762306a36Sopenharmony_ci};
57862306a36Sopenharmony_ci
57962306a36Sopenharmony_ci&dsi2 {
58062306a36Sopenharmony_ci	status = "okay";
58162306a36Sopenharmony_ci	vdd-supply = <&vcxio>;
58262306a36Sopenharmony_ci};
58362306a36Sopenharmony_ci
58462306a36Sopenharmony_ci&hdmi {
58562306a36Sopenharmony_ci	status = "okay";
58662306a36Sopenharmony_ci	vdda-supply = <&vdac>;
58762306a36Sopenharmony_ci
58862306a36Sopenharmony_ci	port {
58962306a36Sopenharmony_ci		hdmi_out: endpoint {
59062306a36Sopenharmony_ci			remote-endpoint = <&tpd12s015_in>;
59162306a36Sopenharmony_ci		};
59262306a36Sopenharmony_ci	};
59362306a36Sopenharmony_ci};
59462306a36Sopenharmony_ci
59562306a36Sopenharmony_ci&dsp {
59662306a36Sopenharmony_ci	status = "okay";
59762306a36Sopenharmony_ci	memory-region = <&dsp_memory_region>;
59862306a36Sopenharmony_ci	ti,timers = <&timer5>;
59962306a36Sopenharmony_ci	ti,watchdog-timers = <&timer6>;
60062306a36Sopenharmony_ci};
60162306a36Sopenharmony_ci
60262306a36Sopenharmony_ci&ipu {
60362306a36Sopenharmony_ci	status = "okay";
60462306a36Sopenharmony_ci	memory-region = <&ipu_memory_region>;
60562306a36Sopenharmony_ci	ti,timers = <&timer3>;
60662306a36Sopenharmony_ci	ti,watchdog-timers = <&timer9>, <&timer11>;
60762306a36Sopenharmony_ci};
608