162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz>
462306a36Sopenharmony_ci * Copyright (C) 2013-2014 Aaro Koskinen <aaro.koskinen@iki.fi>
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci/dts-v1/;
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include "omap34xx.dtsi"
1062306a36Sopenharmony_ci#include <dt-bindings/input/input.h>
1162306a36Sopenharmony_ci#include <dt-bindings/leds/common.h>
1262306a36Sopenharmony_ci#include <dt-bindings/media/video-interfaces.h>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci/*
1562306a36Sopenharmony_ci * Default secure signed bootloader (Nokia X-Loader) does not enable L3 firewall
1662306a36Sopenharmony_ci * for omap AES HW crypto support. When linux kernel try to access memory of AES
1762306a36Sopenharmony_ci * blocks then kernel receive "Unhandled fault: external abort on non-linefetch"
1862306a36Sopenharmony_ci * and crash. Until somebody fix omap-aes.c and omap_hwmod_3xxx_data.c code (no
1962306a36Sopenharmony_ci * crash anymore) omap AES support will be disabled for all Nokia N900 devices.
2062306a36Sopenharmony_ci * There is "unofficial" version of bootloader which enables AES in L3 firewall
2162306a36Sopenharmony_ci * but it is not widely used and to prevent kernel crash rather AES is disabled.
2262306a36Sopenharmony_ci * There is also no runtime detection code if AES is disabled in L3 firewall...
2362306a36Sopenharmony_ci */
2462306a36Sopenharmony_ci&aes1_target {
2562306a36Sopenharmony_ci	status = "disabled";
2662306a36Sopenharmony_ci};
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci&aes2_target {
2962306a36Sopenharmony_ci	status = "disabled";
3062306a36Sopenharmony_ci};
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci/ {
3362306a36Sopenharmony_ci	model = "Nokia N900";
3462306a36Sopenharmony_ci	compatible = "nokia,omap3-n900", "ti,omap3430", "ti,omap3";
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci	aliases {
3762306a36Sopenharmony_ci		i2c0;
3862306a36Sopenharmony_ci		i2c1 = &i2c1;
3962306a36Sopenharmony_ci		i2c2 = &i2c2;
4062306a36Sopenharmony_ci		i2c3 = &i2c3;
4162306a36Sopenharmony_ci		display0 = &lcd;
4262306a36Sopenharmony_ci		display1 = &tv;
4362306a36Sopenharmony_ci	};
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci	cpus {
4662306a36Sopenharmony_ci		cpu@0 {
4762306a36Sopenharmony_ci			cpu0-supply = <&vcc>;
4862306a36Sopenharmony_ci		};
4962306a36Sopenharmony_ci	};
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci	leds {
5262306a36Sopenharmony_ci		compatible = "gpio-leds";
5362306a36Sopenharmony_ci		led-heartbeat {
5462306a36Sopenharmony_ci			label = "debug::sleep";
5562306a36Sopenharmony_ci			gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>;  /* 162 */
5662306a36Sopenharmony_ci			linux,default-trigger = "default-on";
5762306a36Sopenharmony_ci			pinctrl-names = "default";
5862306a36Sopenharmony_ci			pinctrl-0 = <&debug_leds>;
5962306a36Sopenharmony_ci		};
6062306a36Sopenharmony_ci	};
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci	memory@80000000 {
6362306a36Sopenharmony_ci		device_type = "memory";
6462306a36Sopenharmony_ci		reg = <0x80000000 0x10000000>; /* 256 MB */
6562306a36Sopenharmony_ci	};
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci	gpio_keys {
6862306a36Sopenharmony_ci		compatible = "gpio-keys";
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci		camera_lens_cover {
7162306a36Sopenharmony_ci			label = "Camera Lens Cover";
7262306a36Sopenharmony_ci			gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* 110 */
7362306a36Sopenharmony_ci			linux,input-type = <EV_SW>;
7462306a36Sopenharmony_ci			linux,code = <SW_CAMERA_LENS_COVER>;
7562306a36Sopenharmony_ci			linux,can-disable;
7662306a36Sopenharmony_ci		};
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci		camera_focus {
7962306a36Sopenharmony_ci			label = "Camera Focus";
8062306a36Sopenharmony_ci			gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; /* 68 */
8162306a36Sopenharmony_ci			linux,code = <KEY_CAMERA_FOCUS>;
8262306a36Sopenharmony_ci			linux,can-disable;
8362306a36Sopenharmony_ci		};
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci		camera_capture {
8662306a36Sopenharmony_ci			label = "Camera Capture";
8762306a36Sopenharmony_ci			gpios = <&gpio3 5 GPIO_ACTIVE_LOW>; /* 69 */
8862306a36Sopenharmony_ci			linux,code = <KEY_CAMERA>;
8962306a36Sopenharmony_ci			linux,can-disable;
9062306a36Sopenharmony_ci		};
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci		lock_button {
9362306a36Sopenharmony_ci			label = "Lock Button";
9462306a36Sopenharmony_ci			gpios = <&gpio4 17 GPIO_ACTIVE_LOW>; /* 113 */
9562306a36Sopenharmony_ci			linux,code = <KEY_SCREENLOCK>;
9662306a36Sopenharmony_ci			linux,can-disable;
9762306a36Sopenharmony_ci		};
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci		keypad_slide {
10062306a36Sopenharmony_ci			label = "Keypad Slide";
10162306a36Sopenharmony_ci			gpios = <&gpio3 7 GPIO_ACTIVE_LOW>; /* 71 */
10262306a36Sopenharmony_ci			linux,input-type = <EV_SW>;
10362306a36Sopenharmony_ci			linux,code = <SW_KEYPAD_SLIDE>;
10462306a36Sopenharmony_ci			linux,can-disable;
10562306a36Sopenharmony_ci		};
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci		proximity_sensor {
10862306a36Sopenharmony_ci			label = "Proximity Sensor";
10962306a36Sopenharmony_ci			gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>; /* 89 */
11062306a36Sopenharmony_ci			linux,input-type = <EV_SW>;
11162306a36Sopenharmony_ci			linux,code = <SW_FRONT_PROXIMITY>;
11262306a36Sopenharmony_ci			linux,can-disable;
11362306a36Sopenharmony_ci		};
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci		machine_cover {
11662306a36Sopenharmony_ci			label = "Machine Cover";
11762306a36Sopenharmony_ci			gpios = <&gpio6 0 GPIO_ACTIVE_LOW>; /* 160 */
11862306a36Sopenharmony_ci			linux,input-type = <EV_SW>;
11962306a36Sopenharmony_ci			linux,code = <SW_MACHINE_COVER>;
12062306a36Sopenharmony_ci			linux,can-disable;
12162306a36Sopenharmony_ci		};
12262306a36Sopenharmony_ci	};
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci	isp1707: isp1707 {
12562306a36Sopenharmony_ci		compatible = "nxp,isp1707";
12662306a36Sopenharmony_ci		nxp,enable-gpio = <&gpio3 3 GPIO_ACTIVE_HIGH>;
12762306a36Sopenharmony_ci		usb-phy = <&usb2_phy>;
12862306a36Sopenharmony_ci	};
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci	tv: connector {
13162306a36Sopenharmony_ci		compatible = "composite-video-connector";
13262306a36Sopenharmony_ci		label = "tv";
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci		port {
13562306a36Sopenharmony_ci			tv_connector_in: endpoint {
13662306a36Sopenharmony_ci				remote-endpoint = <&venc_out>;
13762306a36Sopenharmony_ci			};
13862306a36Sopenharmony_ci		};
13962306a36Sopenharmony_ci	};
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci	sound: n900-audio {
14262306a36Sopenharmony_ci		compatible = "nokia,n900-audio";
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci		nokia,cpu-dai = <&mcbsp2>;
14562306a36Sopenharmony_ci		nokia,audio-codec = <&tlv320aic3x>, <&tlv320aic3x_aux>;
14662306a36Sopenharmony_ci		nokia,headphone-amplifier = <&tpa6130a2>;
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ci		tvout-selection-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>; /* 40 */
14962306a36Sopenharmony_ci		jack-detection-gpios = <&gpio6 17 GPIO_ACTIVE_HIGH>; /* 177 */
15062306a36Sopenharmony_ci		eci-switch-gpios = <&gpio6 22 GPIO_ACTIVE_HIGH>; /* 182 */
15162306a36Sopenharmony_ci		speaker-amplifier-gpios = <&twl_gpio 7 GPIO_ACTIVE_HIGH>;
15262306a36Sopenharmony_ci	};
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ci	battery: n900-battery {
15562306a36Sopenharmony_ci		compatible = "nokia,n900-battery";
15662306a36Sopenharmony_ci		io-channels = <&twl_madc 0>, <&twl_madc 4>, <&twl_madc 12>;
15762306a36Sopenharmony_ci		io-channel-names = "temp", "bsi", "vbat";
15862306a36Sopenharmony_ci	};
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ci	pwm9: pwm-9 {
16162306a36Sopenharmony_ci		compatible = "ti,omap-dmtimer-pwm";
16262306a36Sopenharmony_ci		#pwm-cells = <3>;
16362306a36Sopenharmony_ci		ti,timers = <&timer9>;
16462306a36Sopenharmony_ci		ti,clock-source = <0x00>; /* timer_sys_ck */
16562306a36Sopenharmony_ci	};
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ci	ir: n900-ir {
16862306a36Sopenharmony_ci		compatible = "nokia,n900-ir";
16962306a36Sopenharmony_ci		pwms = <&pwm9 0 26316 0>; /* 38000 Hz */
17062306a36Sopenharmony_ci	};
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci	rom_rng: rng {
17362306a36Sopenharmony_ci		compatible = "nokia,n900-rom-rng";
17462306a36Sopenharmony_ci		clocks = <&rng_ick>;
17562306a36Sopenharmony_ci		clock-names = "ick";
17662306a36Sopenharmony_ci	};
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ci	/* controlled (enabled/disabled) directly by bcm2048 and wl1251 */
17962306a36Sopenharmony_ci	vctcxo: vctcxo {
18062306a36Sopenharmony_ci		compatible = "fixed-clock";
18162306a36Sopenharmony_ci		#clock-cells = <0>;
18262306a36Sopenharmony_ci		clock-frequency = <38400000>;
18362306a36Sopenharmony_ci	};
18462306a36Sopenharmony_ci};
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_ci&isp {
18762306a36Sopenharmony_ci	vdds_csib-supply = <&vaux2>;
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ci	pinctrl-names = "default";
19062306a36Sopenharmony_ci	pinctrl-0 = <&camera_pins>;
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ci	ports {
19362306a36Sopenharmony_ci		port@1 {
19462306a36Sopenharmony_ci			reg = <1>;
19562306a36Sopenharmony_ci
19662306a36Sopenharmony_ci			csi_isp: endpoint {
19762306a36Sopenharmony_ci				remote-endpoint = <&csi_cam1>;
19862306a36Sopenharmony_ci				bus-type = <MEDIA_BUS_TYPE_CCP2>;
19962306a36Sopenharmony_ci				clock-lanes = <1>;
20062306a36Sopenharmony_ci				data-lanes = <0>;
20162306a36Sopenharmony_ci				lane-polarity = <0 0>;
20262306a36Sopenharmony_ci				/* Select strobe = <1> for back camera, <0> for front camera */
20362306a36Sopenharmony_ci				strobe = <1>;
20462306a36Sopenharmony_ci			};
20562306a36Sopenharmony_ci		};
20662306a36Sopenharmony_ci	};
20762306a36Sopenharmony_ci};
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ci&omap3_pmx_core {
21062306a36Sopenharmony_ci	pinctrl-names = "default";
21162306a36Sopenharmony_ci
21262306a36Sopenharmony_ci	uart2_pins: uart2-pins {
21362306a36Sopenharmony_ci		pinctrl-single,pins = <
21462306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2174, PIN_INPUT_PULLUP | MUX_MODE0)		/* uart2_cts */
21562306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT | MUX_MODE0)		/* uart2_rts */
21662306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0)		/* uart2_tx */
21762306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0)		/* uart2_rx */
21862306a36Sopenharmony_ci		>;
21962306a36Sopenharmony_ci	};
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_ci	uart3_pins: uart3-pins {
22262306a36Sopenharmony_ci		pinctrl-single,pins = <
22362306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0)		/* uart3_rx */
22462306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0)		/* uart3_tx */
22562306a36Sopenharmony_ci		>;
22662306a36Sopenharmony_ci	};
22762306a36Sopenharmony_ci
22862306a36Sopenharmony_ci	ethernet_pins: ethernet-pins {
22962306a36Sopenharmony_ci		pinctrl-single,pins = <
23062306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20b4, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* gpmc_ncs3.gpio_54 */
23162306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE4)		/* dss_data16.gpio_86 */
23262306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x219c, PIN_OUTPUT | MUX_MODE4)		/* uart3_rts_sd.gpio_164 */
23362306a36Sopenharmony_ci		>;
23462306a36Sopenharmony_ci	};
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ci	gpmc_pins: gpmc-pins {
23762306a36Sopenharmony_ci		pinctrl-single,pins = <
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_ci			/* address lines */
24062306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x207a, PIN_OUTPUT | MUX_MODE0)       /* gpmc_a1.gpmc_a1 */
24162306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x207c, PIN_OUTPUT | MUX_MODE0)       /* gpmc_a2.gpmc_a2 */
24262306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x207e, PIN_OUTPUT | MUX_MODE0)       /* gpmc_a3.gpmc_a3 */
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_ci			/* data lines, gpmc_d0..d7 not muxable according to TRM */
24562306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x209e, PIN_INPUT | MUX_MODE0)        /* gpmc_d8.gpmc_d8 */
24662306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20a0, PIN_INPUT | MUX_MODE0)        /* gpmc_d9.gpmc_d9 */
24762306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20a2, PIN_INPUT | MUX_MODE0)        /* gpmc_d10.gpmc_d10 */
24862306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20a4, PIN_INPUT | MUX_MODE0)        /* gpmc_d11.gpmc_d11 */
24962306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20a6, PIN_INPUT | MUX_MODE0)        /* gpmc_d12.gpmc_d12 */
25062306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20a8, PIN_INPUT | MUX_MODE0)        /* gpmc_d13.gpmc_d13 */
25162306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20aa, PIN_INPUT | MUX_MODE0)        /* gpmc_d14.gpmc_d14 */
25262306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20ac, PIN_INPUT | MUX_MODE0)        /* gpmc_d15.gpmc_d15 */
25362306a36Sopenharmony_ci
25462306a36Sopenharmony_ci			/*
25562306a36Sopenharmony_ci			 * gpmc_ncs0, gpmc_nadv_ale, gpmc_noe, gpmc_nwe, gpmc_wait0 not muxable
25662306a36Sopenharmony_ci			 * according to TRM. OneNAND seems to require PIN_INPUT on clock.
25762306a36Sopenharmony_ci			 */
25862306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20b0, PIN_OUTPUT | MUX_MODE0)       /* gpmc_ncs1.gpmc_ncs1 */
25962306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20be, PIN_INPUT | MUX_MODE0)        /* gpmc_clk.gpmc_clk */
26062306a36Sopenharmony_ci			>;
26162306a36Sopenharmony_ci	};
26262306a36Sopenharmony_ci
26362306a36Sopenharmony_ci	i2c1_pins: i2c1-pins {
26462306a36Sopenharmony_ci		pinctrl-single,pins = <
26562306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT | MUX_MODE0)		/* i2c1_scl */
26662306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT | MUX_MODE0)		/* i2c1_sda */
26762306a36Sopenharmony_ci		>;
26862306a36Sopenharmony_ci	};
26962306a36Sopenharmony_ci
27062306a36Sopenharmony_ci	i2c2_pins: i2c2-pins {
27162306a36Sopenharmony_ci		pinctrl-single,pins = <
27262306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x21be, PIN_INPUT | MUX_MODE0)		/* i2c2_scl */
27362306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x21c0, PIN_INPUT | MUX_MODE0)		/* i2c2_sda */
27462306a36Sopenharmony_ci		>;
27562306a36Sopenharmony_ci	};
27662306a36Sopenharmony_ci
27762306a36Sopenharmony_ci	i2c3_pins: i2c3-pins {
27862306a36Sopenharmony_ci		pinctrl-single,pins = <
27962306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT | MUX_MODE0)		/* i2c3_scl */
28062306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT | MUX_MODE0)		/* i2c3_sda */
28162306a36Sopenharmony_ci		>;
28262306a36Sopenharmony_ci	};
28362306a36Sopenharmony_ci
28462306a36Sopenharmony_ci	debug_leds: debug-led-pins {
28562306a36Sopenharmony_ci		pinctrl-single,pins = <
28662306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2198, PIN_OUTPUT | MUX_MODE4)	/* mcbsp1_clkx.gpio_162 */
28762306a36Sopenharmony_ci		>;
28862306a36Sopenharmony_ci	};
28962306a36Sopenharmony_ci
29062306a36Sopenharmony_ci	mcspi4_pins: mcspi4-pins {
29162306a36Sopenharmony_ci		pinctrl-single,pins = <
29262306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x218c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_clk */
29362306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_somi */
29462306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE1) /* mcspi4_simo */
29562306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2196, PIN_OUTPUT | MUX_MODE1) /* mcspi4_cs0 */
29662306a36Sopenharmony_ci		>;
29762306a36Sopenharmony_ci	};
29862306a36Sopenharmony_ci
29962306a36Sopenharmony_ci	mmc1_pins: mmc1-pins {
30062306a36Sopenharmony_ci		pinctrl-single,pins = <
30162306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_clk */
30262306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_cmd */
30362306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) 	/* sdmmc1_dat0 */
30462306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat1 */
30562306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat2 */
30662306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat3 */
30762306a36Sopenharmony_ci		>;
30862306a36Sopenharmony_ci	};
30962306a36Sopenharmony_ci
31062306a36Sopenharmony_ci	mmc2_pins: mmc2-pins {
31162306a36Sopenharmony_ci		pinctrl-single,pins = <
31262306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_clk */
31362306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_cmd */
31462306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) 	/* sdmmc2_dat0 */
31562306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat1 */
31662306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat2 */
31762306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat3 */
31862306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2164, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat4 */
31962306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2166, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat5 */
32062306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2168, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat6 */
32162306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc2_dat7 */
32262306a36Sopenharmony_ci		>;
32362306a36Sopenharmony_ci	};
32462306a36Sopenharmony_ci
32562306a36Sopenharmony_ci	acx565akm_pins: acx565akm-pins {
32662306a36Sopenharmony_ci		pinctrl-single,pins = <
32762306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE4)		/* RX51_LCD_RESET_GPIO */
32862306a36Sopenharmony_ci		>;
32962306a36Sopenharmony_ci	};
33062306a36Sopenharmony_ci
33162306a36Sopenharmony_ci	dss_sdi_pins: dss-sdi-pins {
33262306a36Sopenharmony_ci		pinctrl-single,pins = <
33362306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE1)   /* dss_data10.sdi_dat1n */
33462306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE1)   /* dss_data11.sdi_dat1p */
33562306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE1)   /* dss_data12.sdi_dat2n */
33662306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE1)   /* dss_data13.sdi_dat2p */
33762306a36Sopenharmony_ci
33862306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE1)   /* dss_data22.sdi_clkp */
33962306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE1)   /* dss_data23.sdi_clkn */
34062306a36Sopenharmony_ci		>;
34162306a36Sopenharmony_ci	};
34262306a36Sopenharmony_ci
34362306a36Sopenharmony_ci	wl1251_pins: wl1251-pins {
34462306a36Sopenharmony_ci		pinctrl-single,pins = <
34562306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE4)		/* gpio 87 => wl1251 enable */
34662306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x208a, PIN_INPUT | MUX_MODE4)		/* gpio 42 => wl1251 irq */
34762306a36Sopenharmony_ci		>;
34862306a36Sopenharmony_ci	};
34962306a36Sopenharmony_ci
35062306a36Sopenharmony_ci	ssi_pins: ssi-pins {
35162306a36Sopenharmony_ci		pinctrl-single,pins = <
35262306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2180, PIN_INPUT_PULLUP | MUX_MODE1)	/* ssi1_rdy_tx */
35362306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x217e, PIN_OUTPUT | MUX_MODE1)		/* ssi1_flag_tx */
35462306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2182, PIN_INPUT | MUX_MODE4)		/* ssi1_wake_tx (cawake) */
35562306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x217c, PIN_OUTPUT | MUX_MODE1)		/* ssi1_dat_tx */
35662306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2184, PIN_INPUT | MUX_MODE1)		/* ssi1_dat_rx */
35762306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2186, PIN_INPUT | MUX_MODE1)		/* ssi1_flag_rx */
35862306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2188, PIN_OUTPUT | MUX_MODE1)		/* ssi1_rdy_rx */
35962306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x218a, PIN_OUTPUT | MUX_MODE1)		/* ssi1_wake */
36062306a36Sopenharmony_ci		>;
36162306a36Sopenharmony_ci	};
36262306a36Sopenharmony_ci
36362306a36Sopenharmony_ci	modem_pins: modem-pins {
36462306a36Sopenharmony_ci		pinctrl-single,pins = <
36562306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE4)		/* gpio 70 => cmt_apeslpx */
36662306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20e0, PIN_INPUT | MUX_MODE4)		/* gpio 72 => ape_rst_rq */
36762306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE4)		/* gpio 73 => cmt_rst_rq */
36862306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE4)		/* gpio 74 => cmt_en */
36962306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE4)		/* gpio 75 => cmt_rst */
37062306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4)		/* gpio 157 => cmt_bsi */
37162306a36Sopenharmony_ci		>;
37262306a36Sopenharmony_ci	};
37362306a36Sopenharmony_ci
37462306a36Sopenharmony_ci	camera_pins: camera-pins {
37562306a36Sopenharmony_ci		pinctrl-single,pins = <
37662306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x210c, PIN_OUTPUT | MUX_MODE7)       /* cam_hs */
37762306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x210e, PIN_OUTPUT | MUX_MODE7)       /* cam_vs */
37862306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2110, PIN_OUTPUT | MUX_MODE0)       /* cam_xclka */
37962306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x211e, PIN_OUTPUT | MUX_MODE7)       /* cam_d4 */
38062306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE0)        /* cam_d6 */
38162306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE0)        /* cam_d7 */
38262306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT | MUX_MODE0)        /* cam_d8 */
38362306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT | MUX_MODE0)        /* cam_d9 */
38462306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x212a, PIN_OUTPUT | MUX_MODE7)       /* cam_d10 */
38562306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x212e, PIN_OUTPUT | MUX_MODE7)       /* cam_xclkb */
38662306a36Sopenharmony_ci			OMAP3_CORE1_IOPAD(0x2132, PIN_OUTPUT | MUX_MODE0)       /* cam_strobe */
38762306a36Sopenharmony_ci		>;
38862306a36Sopenharmony_ci	};
38962306a36Sopenharmony_ci};
39062306a36Sopenharmony_ci
39162306a36Sopenharmony_ci&i2c1 {
39262306a36Sopenharmony_ci	pinctrl-names = "default";
39362306a36Sopenharmony_ci	pinctrl-0 = <&i2c1_pins>;
39462306a36Sopenharmony_ci
39562306a36Sopenharmony_ci	clock-frequency = <2200000>;
39662306a36Sopenharmony_ci
39762306a36Sopenharmony_ci	twl: twl@48 {
39862306a36Sopenharmony_ci		reg = <0x48>;
39962306a36Sopenharmony_ci		interrupts = <7>; /* SYS_NIRQ cascaded to intc */
40062306a36Sopenharmony_ci		interrupt-parent = <&intc>;
40162306a36Sopenharmony_ci	};
40262306a36Sopenharmony_ci};
40362306a36Sopenharmony_ci
40462306a36Sopenharmony_ci#include "twl4030.dtsi"
40562306a36Sopenharmony_ci#include "twl4030_omap3.dtsi"
40662306a36Sopenharmony_ci
40762306a36Sopenharmony_ci&vaux1 {
40862306a36Sopenharmony_ci	regulator-name = "V28";
40962306a36Sopenharmony_ci	regulator-min-microvolt = <2800000>;
41062306a36Sopenharmony_ci	regulator-max-microvolt = <2800000>;
41162306a36Sopenharmony_ci	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
41262306a36Sopenharmony_ci	regulator-always-on; /* due to battery cover sensor */
41362306a36Sopenharmony_ci};
41462306a36Sopenharmony_ci
41562306a36Sopenharmony_ci&vaux2 {
41662306a36Sopenharmony_ci	regulator-name = "VCSI";
41762306a36Sopenharmony_ci	regulator-min-microvolt = <1800000>;
41862306a36Sopenharmony_ci	regulator-max-microvolt = <1800000>;
41962306a36Sopenharmony_ci	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
42062306a36Sopenharmony_ci};
42162306a36Sopenharmony_ci
42262306a36Sopenharmony_ci&vaux3 {
42362306a36Sopenharmony_ci	regulator-name = "VMMC2_30";
42462306a36Sopenharmony_ci	regulator-min-microvolt = <2800000>;
42562306a36Sopenharmony_ci	regulator-max-microvolt = <3000000>;
42662306a36Sopenharmony_ci	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
42762306a36Sopenharmony_ci};
42862306a36Sopenharmony_ci
42962306a36Sopenharmony_ci&vaux4 {
43062306a36Sopenharmony_ci	regulator-name = "VCAM_ANA_28";
43162306a36Sopenharmony_ci	regulator-min-microvolt = <2800000>;
43262306a36Sopenharmony_ci	regulator-max-microvolt = <2800000>;
43362306a36Sopenharmony_ci	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
43462306a36Sopenharmony_ci};
43562306a36Sopenharmony_ci
43662306a36Sopenharmony_ci&vmmc1 {
43762306a36Sopenharmony_ci	regulator-name = "VMMC1";
43862306a36Sopenharmony_ci	regulator-min-microvolt = <1850000>;
43962306a36Sopenharmony_ci	regulator-max-microvolt = <3150000>;
44062306a36Sopenharmony_ci	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
44162306a36Sopenharmony_ci};
44262306a36Sopenharmony_ci
44362306a36Sopenharmony_ci&vmmc2 {
44462306a36Sopenharmony_ci	regulator-name = "V28_A";
44562306a36Sopenharmony_ci	regulator-min-microvolt = <2800000>;
44662306a36Sopenharmony_ci	regulator-max-microvolt = <3000000>;
44762306a36Sopenharmony_ci	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
44862306a36Sopenharmony_ci	regulator-always-on; /* due VIO leak to AIC34 VDDs */
44962306a36Sopenharmony_ci};
45062306a36Sopenharmony_ci
45162306a36Sopenharmony_ci&vpll1 {
45262306a36Sopenharmony_ci	regulator-name = "VPLL";
45362306a36Sopenharmony_ci	regulator-min-microvolt = <1800000>;
45462306a36Sopenharmony_ci	regulator-max-microvolt = <1800000>;
45562306a36Sopenharmony_ci	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
45662306a36Sopenharmony_ci	regulator-always-on;
45762306a36Sopenharmony_ci};
45862306a36Sopenharmony_ci
45962306a36Sopenharmony_ci&vpll2 {
46062306a36Sopenharmony_ci	regulator-name = "VSDI_CSI";
46162306a36Sopenharmony_ci	regulator-min-microvolt = <1800000>;
46262306a36Sopenharmony_ci	regulator-max-microvolt = <1800000>;
46362306a36Sopenharmony_ci	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
46462306a36Sopenharmony_ci	regulator-always-on;
46562306a36Sopenharmony_ci};
46662306a36Sopenharmony_ci
46762306a36Sopenharmony_ci&vsim {
46862306a36Sopenharmony_ci	regulator-name = "VMMC2_IO_18";
46962306a36Sopenharmony_ci	regulator-min-microvolt = <1800000>;
47062306a36Sopenharmony_ci	regulator-max-microvolt = <1800000>;
47162306a36Sopenharmony_ci	regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
47262306a36Sopenharmony_ci};
47362306a36Sopenharmony_ci
47462306a36Sopenharmony_ci&vio {
47562306a36Sopenharmony_ci	regulator-name = "VIO";
47662306a36Sopenharmony_ci	regulator-min-microvolt = <1800000>;
47762306a36Sopenharmony_ci	regulator-max-microvolt = <1800000>;
47862306a36Sopenharmony_ci};
47962306a36Sopenharmony_ci
48062306a36Sopenharmony_ci&vintana1 {
48162306a36Sopenharmony_ci	regulator-name = "VINTANA1";
48262306a36Sopenharmony_ci	/* fixed to 1500000 */
48362306a36Sopenharmony_ci	regulator-always-on;
48462306a36Sopenharmony_ci};
48562306a36Sopenharmony_ci
48662306a36Sopenharmony_ci&vintana2 {
48762306a36Sopenharmony_ci	regulator-name = "VINTANA2";
48862306a36Sopenharmony_ci	regulator-min-microvolt = <2750000>;
48962306a36Sopenharmony_ci	regulator-max-microvolt = <2750000>;
49062306a36Sopenharmony_ci	regulator-always-on;
49162306a36Sopenharmony_ci};
49262306a36Sopenharmony_ci
49362306a36Sopenharmony_ci&vintdig {
49462306a36Sopenharmony_ci	regulator-name = "VINTDIG";
49562306a36Sopenharmony_ci	/* fixed to 1500000 */
49662306a36Sopenharmony_ci	regulator-always-on;
49762306a36Sopenharmony_ci};
49862306a36Sopenharmony_ci
49962306a36Sopenharmony_ci/* First two dma channels are reserved on secure omap3 */
50062306a36Sopenharmony_ci&sdma {
50162306a36Sopenharmony_ci	dma-channel-mask = <0xfffffffc>;
50262306a36Sopenharmony_ci};
50362306a36Sopenharmony_ci
50462306a36Sopenharmony_ci&twl {
50562306a36Sopenharmony_ci	twl_audio: audio {
50662306a36Sopenharmony_ci		compatible = "ti,twl4030-audio";
50762306a36Sopenharmony_ci		ti,enable-vibra = <1>;
50862306a36Sopenharmony_ci	};
50962306a36Sopenharmony_ci
51062306a36Sopenharmony_ci	twl_power: power {
51162306a36Sopenharmony_ci		compatible = "ti,twl4030-power-n900", "ti,twl4030-power-idle-osc-off";
51262306a36Sopenharmony_ci		ti,use_poweroff;
51362306a36Sopenharmony_ci	};
51462306a36Sopenharmony_ci};
51562306a36Sopenharmony_ci
51662306a36Sopenharmony_ci&twl_keypad {
51762306a36Sopenharmony_ci	linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_Q)
51862306a36Sopenharmony_ci			 MATRIX_KEY(0x00, 0x01, KEY_O)
51962306a36Sopenharmony_ci			 MATRIX_KEY(0x00, 0x02, KEY_P)
52062306a36Sopenharmony_ci			 MATRIX_KEY(0x00, 0x03, KEY_COMMA)
52162306a36Sopenharmony_ci			 MATRIX_KEY(0x00, 0x04, KEY_BACKSPACE)
52262306a36Sopenharmony_ci			 MATRIX_KEY(0x00, 0x06, KEY_A)
52362306a36Sopenharmony_ci			 MATRIX_KEY(0x00, 0x07, KEY_S)
52462306a36Sopenharmony_ci
52562306a36Sopenharmony_ci			 MATRIX_KEY(0x01, 0x00, KEY_W)
52662306a36Sopenharmony_ci			 MATRIX_KEY(0x01, 0x01, KEY_D)
52762306a36Sopenharmony_ci			 MATRIX_KEY(0x01, 0x02, KEY_F)
52862306a36Sopenharmony_ci			 MATRIX_KEY(0x01, 0x03, KEY_G)
52962306a36Sopenharmony_ci			 MATRIX_KEY(0x01, 0x04, KEY_H)
53062306a36Sopenharmony_ci			 MATRIX_KEY(0x01, 0x05, KEY_J)
53162306a36Sopenharmony_ci			 MATRIX_KEY(0x01, 0x06, KEY_K)
53262306a36Sopenharmony_ci			 MATRIX_KEY(0x01, 0x07, KEY_L)
53362306a36Sopenharmony_ci
53462306a36Sopenharmony_ci			 MATRIX_KEY(0x02, 0x00, KEY_E)
53562306a36Sopenharmony_ci			 MATRIX_KEY(0x02, 0x01, KEY_DOT)
53662306a36Sopenharmony_ci			 MATRIX_KEY(0x02, 0x02, KEY_UP)
53762306a36Sopenharmony_ci			 MATRIX_KEY(0x02, 0x03, KEY_ENTER)
53862306a36Sopenharmony_ci			 MATRIX_KEY(0x02, 0x05, KEY_Z)
53962306a36Sopenharmony_ci			 MATRIX_KEY(0x02, 0x06, KEY_X)
54062306a36Sopenharmony_ci			 MATRIX_KEY(0x02, 0x07, KEY_C)
54162306a36Sopenharmony_ci			 MATRIX_KEY(0x02, 0x08, KEY_F9)
54262306a36Sopenharmony_ci
54362306a36Sopenharmony_ci			 MATRIX_KEY(0x03, 0x00, KEY_R)
54462306a36Sopenharmony_ci			 MATRIX_KEY(0x03, 0x01, KEY_V)
54562306a36Sopenharmony_ci			 MATRIX_KEY(0x03, 0x02, KEY_B)
54662306a36Sopenharmony_ci			 MATRIX_KEY(0x03, 0x03, KEY_N)
54762306a36Sopenharmony_ci			 MATRIX_KEY(0x03, 0x04, KEY_M)
54862306a36Sopenharmony_ci			 MATRIX_KEY(0x03, 0x05, KEY_SPACE)
54962306a36Sopenharmony_ci			 MATRIX_KEY(0x03, 0x06, KEY_SPACE)
55062306a36Sopenharmony_ci			 MATRIX_KEY(0x03, 0x07, KEY_LEFT)
55162306a36Sopenharmony_ci
55262306a36Sopenharmony_ci			 MATRIX_KEY(0x04, 0x00, KEY_T)
55362306a36Sopenharmony_ci			 MATRIX_KEY(0x04, 0x01, KEY_DOWN)
55462306a36Sopenharmony_ci			 MATRIX_KEY(0x04, 0x02, KEY_RIGHT)
55562306a36Sopenharmony_ci			 MATRIX_KEY(0x04, 0x04, KEY_LEFTCTRL)
55662306a36Sopenharmony_ci			 MATRIX_KEY(0x04, 0x05, KEY_RIGHTALT)
55762306a36Sopenharmony_ci			 MATRIX_KEY(0x04, 0x06, KEY_LEFTSHIFT)
55862306a36Sopenharmony_ci			 MATRIX_KEY(0x04, 0x08, KEY_F10)
55962306a36Sopenharmony_ci
56062306a36Sopenharmony_ci			 MATRIX_KEY(0x05, 0x00, KEY_Y)
56162306a36Sopenharmony_ci			 MATRIX_KEY(0x05, 0x08, KEY_F11)
56262306a36Sopenharmony_ci
56362306a36Sopenharmony_ci			 MATRIX_KEY(0x06, 0x00, KEY_U)
56462306a36Sopenharmony_ci
56562306a36Sopenharmony_ci			 MATRIX_KEY(0x07, 0x00, KEY_I)
56662306a36Sopenharmony_ci			 MATRIX_KEY(0x07, 0x01, KEY_F7)
56762306a36Sopenharmony_ci			 MATRIX_KEY(0x07, 0x02, KEY_F8)
56862306a36Sopenharmony_ci			 >;
56962306a36Sopenharmony_ci};
57062306a36Sopenharmony_ci
57162306a36Sopenharmony_ci&twl_gpio {
57262306a36Sopenharmony_ci	ti,pullups = <0x0>;
57362306a36Sopenharmony_ci	ti,pulldowns = <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */
57462306a36Sopenharmony_ci};
57562306a36Sopenharmony_ci
57662306a36Sopenharmony_ci&i2c2 {
57762306a36Sopenharmony_ci	pinctrl-names = "default";
57862306a36Sopenharmony_ci	pinctrl-0 = <&i2c2_pins>;
57962306a36Sopenharmony_ci
58062306a36Sopenharmony_ci	clock-frequency = <100000>;
58162306a36Sopenharmony_ci
58262306a36Sopenharmony_ci	tlv320aic3x: tlv320aic3x@18 {
58362306a36Sopenharmony_ci		compatible = "ti,tlv320aic3x";
58462306a36Sopenharmony_ci		reg = <0x18>;
58562306a36Sopenharmony_ci		reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* 60 */
58662306a36Sopenharmony_ci		ai3x-gpio-func = <
58762306a36Sopenharmony_ci			0 /* AIC3X_GPIO1_FUNC_DISABLED */
58862306a36Sopenharmony_ci			5 /* AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT */
58962306a36Sopenharmony_ci		>;
59062306a36Sopenharmony_ci
59162306a36Sopenharmony_ci		AVDD-supply = <&vmmc2>;
59262306a36Sopenharmony_ci		DRVDD-supply = <&vmmc2>;
59362306a36Sopenharmony_ci		IOVDD-supply = <&vio>;
59462306a36Sopenharmony_ci		DVDD-supply = <&vio>;
59562306a36Sopenharmony_ci
59662306a36Sopenharmony_ci		ai3x-micbias-vg = <1>;
59762306a36Sopenharmony_ci	};
59862306a36Sopenharmony_ci
59962306a36Sopenharmony_ci	tlv320aic3x_aux: tlv320aic3x@19 {
60062306a36Sopenharmony_ci		compatible = "ti,tlv320aic3x";
60162306a36Sopenharmony_ci		reg = <0x19>;
60262306a36Sopenharmony_ci		reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* 60 */
60362306a36Sopenharmony_ci
60462306a36Sopenharmony_ci		AVDD-supply = <&vmmc2>;
60562306a36Sopenharmony_ci		DRVDD-supply = <&vmmc2>;
60662306a36Sopenharmony_ci		IOVDD-supply = <&vio>;
60762306a36Sopenharmony_ci		DVDD-supply = <&vio>;
60862306a36Sopenharmony_ci
60962306a36Sopenharmony_ci		ai3x-micbias-vg = <2>;
61062306a36Sopenharmony_ci	};
61162306a36Sopenharmony_ci
61262306a36Sopenharmony_ci	tsl2563: tsl2563@29 {
61362306a36Sopenharmony_ci		compatible = "amstaos,tsl2563";
61462306a36Sopenharmony_ci		reg = <0x29>;
61562306a36Sopenharmony_ci
61662306a36Sopenharmony_ci		amstaos,cover-comp-gain = <16>;
61762306a36Sopenharmony_ci	};
61862306a36Sopenharmony_ci
61962306a36Sopenharmony_ci	adp1653: led-controller@30 {
62062306a36Sopenharmony_ci		compatible = "adi,adp1653";
62162306a36Sopenharmony_ci		reg = <0x30>;
62262306a36Sopenharmony_ci		enable-gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>; /* 88 */
62362306a36Sopenharmony_ci
62462306a36Sopenharmony_ci		flash {
62562306a36Sopenharmony_ci			flash-timeout-us = <500000>;
62662306a36Sopenharmony_ci			flash-max-microamp = <320000>;
62762306a36Sopenharmony_ci			led-max-microamp = <50000>;
62862306a36Sopenharmony_ci		};
62962306a36Sopenharmony_ci		indicator {
63062306a36Sopenharmony_ci			led-max-microamp = <17500>;
63162306a36Sopenharmony_ci		};
63262306a36Sopenharmony_ci	};
63362306a36Sopenharmony_ci
63462306a36Sopenharmony_ci	lp5523: lp5523@32 {
63562306a36Sopenharmony_ci		#address-cells = <1>;
63662306a36Sopenharmony_ci		#size-cells = <0>;
63762306a36Sopenharmony_ci		compatible = "national,lp5523";
63862306a36Sopenharmony_ci		reg = <0x32>;
63962306a36Sopenharmony_ci		clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */
64062306a36Sopenharmony_ci		enable-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */
64162306a36Sopenharmony_ci
64262306a36Sopenharmony_ci		led@0 {
64362306a36Sopenharmony_ci			reg = <0>;
64462306a36Sopenharmony_ci			chan-name = "lp5523:kb1";
64562306a36Sopenharmony_ci			led-cur = /bits/ 8 <50>;
64662306a36Sopenharmony_ci			max-cur = /bits/ 8 <100>;
64762306a36Sopenharmony_ci			color = <LED_COLOR_ID_WHITE>;
64862306a36Sopenharmony_ci			function = LED_FUNCTION_KBD_BACKLIGHT;
64962306a36Sopenharmony_ci		};
65062306a36Sopenharmony_ci
65162306a36Sopenharmony_ci		led@1 {
65262306a36Sopenharmony_ci			reg = <1>;
65362306a36Sopenharmony_ci			chan-name = "lp5523:kb2";
65462306a36Sopenharmony_ci			led-cur = /bits/ 8 <50>;
65562306a36Sopenharmony_ci			max-cur = /bits/ 8 <100>;
65662306a36Sopenharmony_ci			color = <LED_COLOR_ID_WHITE>;
65762306a36Sopenharmony_ci			function = LED_FUNCTION_KBD_BACKLIGHT;
65862306a36Sopenharmony_ci		};
65962306a36Sopenharmony_ci
66062306a36Sopenharmony_ci		led@2 {
66162306a36Sopenharmony_ci			reg = <2>;
66262306a36Sopenharmony_ci			chan-name = "lp5523:kb3";
66362306a36Sopenharmony_ci			led-cur = /bits/ 8 <50>;
66462306a36Sopenharmony_ci			max-cur = /bits/ 8 <100>;
66562306a36Sopenharmony_ci			color = <LED_COLOR_ID_WHITE>;
66662306a36Sopenharmony_ci			function = LED_FUNCTION_KBD_BACKLIGHT;
66762306a36Sopenharmony_ci		};
66862306a36Sopenharmony_ci
66962306a36Sopenharmony_ci		led@3 {
67062306a36Sopenharmony_ci			reg = <3>;
67162306a36Sopenharmony_ci			chan-name = "lp5523:kb4";
67262306a36Sopenharmony_ci			led-cur = /bits/ 8 <50>;
67362306a36Sopenharmony_ci			max-cur = /bits/ 8 <100>;
67462306a36Sopenharmony_ci			color = <LED_COLOR_ID_WHITE>;
67562306a36Sopenharmony_ci			function = LED_FUNCTION_KBD_BACKLIGHT;
67662306a36Sopenharmony_ci		};
67762306a36Sopenharmony_ci
67862306a36Sopenharmony_ci		led@4 {
67962306a36Sopenharmony_ci			reg = <4>;
68062306a36Sopenharmony_ci			chan-name = "lp5523:b";
68162306a36Sopenharmony_ci			led-cur = /bits/ 8 <50>;
68262306a36Sopenharmony_ci			max-cur = /bits/ 8 <100>;
68362306a36Sopenharmony_ci			color = <LED_COLOR_ID_BLUE>;
68462306a36Sopenharmony_ci			function = LED_FUNCTION_STATUS;
68562306a36Sopenharmony_ci		};
68662306a36Sopenharmony_ci
68762306a36Sopenharmony_ci		led@5 {
68862306a36Sopenharmony_ci			reg = <5>;
68962306a36Sopenharmony_ci			chan-name = "lp5523:g";
69062306a36Sopenharmony_ci			led-cur = /bits/ 8 <50>;
69162306a36Sopenharmony_ci			max-cur = /bits/ 8 <100>;
69262306a36Sopenharmony_ci			color = <LED_COLOR_ID_GREEN>;
69362306a36Sopenharmony_ci			function = LED_FUNCTION_STATUS;
69462306a36Sopenharmony_ci		};
69562306a36Sopenharmony_ci
69662306a36Sopenharmony_ci		led@6 {
69762306a36Sopenharmony_ci			reg = <6>;
69862306a36Sopenharmony_ci			chan-name = "lp5523:r";
69962306a36Sopenharmony_ci			led-cur = /bits/ 8 <50>;
70062306a36Sopenharmony_ci			max-cur = /bits/ 8 <100>;
70162306a36Sopenharmony_ci			color = <LED_COLOR_ID_RED>;
70262306a36Sopenharmony_ci			function = LED_FUNCTION_STATUS;
70362306a36Sopenharmony_ci		};
70462306a36Sopenharmony_ci
70562306a36Sopenharmony_ci		led@7 {
70662306a36Sopenharmony_ci			reg = <7>;
70762306a36Sopenharmony_ci			chan-name = "lp5523:kb5";
70862306a36Sopenharmony_ci			led-cur = /bits/ 8 <50>;
70962306a36Sopenharmony_ci			max-cur = /bits/ 8 <100>;
71062306a36Sopenharmony_ci			color = <LED_COLOR_ID_WHITE>;
71162306a36Sopenharmony_ci			function = LED_FUNCTION_KBD_BACKLIGHT;
71262306a36Sopenharmony_ci		};
71362306a36Sopenharmony_ci
71462306a36Sopenharmony_ci		led@8 {
71562306a36Sopenharmony_ci			reg = <8>;
71662306a36Sopenharmony_ci			chan-name = "lp5523:kb6";
71762306a36Sopenharmony_ci			led-cur = /bits/ 8 <50>;
71862306a36Sopenharmony_ci			max-cur = /bits/ 8 <100>;
71962306a36Sopenharmony_ci			color = <LED_COLOR_ID_WHITE>;
72062306a36Sopenharmony_ci			function = LED_FUNCTION_KBD_BACKLIGHT;
72162306a36Sopenharmony_ci		};
72262306a36Sopenharmony_ci	};
72362306a36Sopenharmony_ci
72462306a36Sopenharmony_ci	bq27200: bq27200@55 {
72562306a36Sopenharmony_ci		compatible = "ti,bq27200";
72662306a36Sopenharmony_ci		reg = <0x55>;
72762306a36Sopenharmony_ci		power-supplies = <&bq24150a>;
72862306a36Sopenharmony_ci	};
72962306a36Sopenharmony_ci
73062306a36Sopenharmony_ci	/* Stereo headphone amplifier */
73162306a36Sopenharmony_ci	tpa6130a2: tpa6130a2@60 {
73262306a36Sopenharmony_ci		compatible = "ti,tpa6130a2";
73362306a36Sopenharmony_ci		reg = <0x60>;
73462306a36Sopenharmony_ci
73562306a36Sopenharmony_ci		Vdd-supply = <&vmmc2>;
73662306a36Sopenharmony_ci
73762306a36Sopenharmony_ci		power-gpio = <&gpio4 2 GPIO_ACTIVE_HIGH>; /* 98 */
73862306a36Sopenharmony_ci	};
73962306a36Sopenharmony_ci
74062306a36Sopenharmony_ci	si4713: si4713@63 {
74162306a36Sopenharmony_ci		compatible = "silabs,si4713";
74262306a36Sopenharmony_ci		reg = <0x63>;
74362306a36Sopenharmony_ci
74462306a36Sopenharmony_ci		interrupts-extended = <&gpio2 21 IRQ_TYPE_EDGE_FALLING>; /* 53 */
74562306a36Sopenharmony_ci		reset-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>; /* 163 */
74662306a36Sopenharmony_ci		vio-supply = <&vio>;
74762306a36Sopenharmony_ci		vdd-supply = <&vaux1>;
74862306a36Sopenharmony_ci	};
74962306a36Sopenharmony_ci
75062306a36Sopenharmony_ci	bq24150a: bq24150a@6b {
75162306a36Sopenharmony_ci		compatible = "ti,bq24150a";
75262306a36Sopenharmony_ci		reg = <0x6b>;
75362306a36Sopenharmony_ci
75462306a36Sopenharmony_ci		ti,current-limit = <100>;
75562306a36Sopenharmony_ci		ti,weak-battery-voltage = <3400>;
75662306a36Sopenharmony_ci		ti,battery-regulation-voltage = <4200>;
75762306a36Sopenharmony_ci		ti,charge-current = <650>;
75862306a36Sopenharmony_ci		ti,termination-current = <100>;
75962306a36Sopenharmony_ci		ti,resistor-sense = <68>;
76062306a36Sopenharmony_ci
76162306a36Sopenharmony_ci		ti,usb-charger-detection = <&isp1707>;
76262306a36Sopenharmony_ci	};
76362306a36Sopenharmony_ci};
76462306a36Sopenharmony_ci
76562306a36Sopenharmony_ci&i2c3 {
76662306a36Sopenharmony_ci	pinctrl-names = "default";
76762306a36Sopenharmony_ci	pinctrl-0 = <&i2c3_pins>;
76862306a36Sopenharmony_ci
76962306a36Sopenharmony_ci	clock-frequency = <400000>;
77062306a36Sopenharmony_ci
77162306a36Sopenharmony_ci	accelerometer@1d {
77262306a36Sopenharmony_ci		compatible = "st,lis302dl";
77362306a36Sopenharmony_ci		reg = <0x1d>;
77462306a36Sopenharmony_ci
77562306a36Sopenharmony_ci		vdd-supply = <&vaux1>;
77662306a36Sopenharmony_ci		vddio-supply = <&vio>;
77762306a36Sopenharmony_ci
77862306a36Sopenharmony_ci		interrupt-parent = <&gpio6>;
77962306a36Sopenharmony_ci		interrupts = <21 IRQ_TYPE_EDGE_RISING>,
78062306a36Sopenharmony_ci			     <20 IRQ_TYPE_EDGE_RISING>; /* 181 and 180 */
78162306a36Sopenharmony_ci
78262306a36Sopenharmony_ci		mount-matrix =	 "-1",  "0",  "0",
78362306a36Sopenharmony_ci				  "0",  "1",  "0",
78462306a36Sopenharmony_ci				  "0",  "0",  "1";
78562306a36Sopenharmony_ci	};
78662306a36Sopenharmony_ci
78762306a36Sopenharmony_ci	cam1: camera@3e {
78862306a36Sopenharmony_ci		compatible = "toshiba,et8ek8";
78962306a36Sopenharmony_ci		reg = <0x3e>;
79062306a36Sopenharmony_ci
79162306a36Sopenharmony_ci		vana-supply = <&vaux4>;
79262306a36Sopenharmony_ci
79362306a36Sopenharmony_ci		clocks = <&isp 0>;
79462306a36Sopenharmony_ci		clock-names = "extclk";
79562306a36Sopenharmony_ci		clock-frequency = <9600000>;
79662306a36Sopenharmony_ci
79762306a36Sopenharmony_ci		reset-gpio = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 */
79862306a36Sopenharmony_ci
79962306a36Sopenharmony_ci		lens-focus = <&ad5820>;
80062306a36Sopenharmony_ci
80162306a36Sopenharmony_ci		port {
80262306a36Sopenharmony_ci			csi_cam1: endpoint {
80362306a36Sopenharmony_ci				bus-type = <MEDIA_BUS_TYPE_CCP2>;
80462306a36Sopenharmony_ci				strobe = <1>;
80562306a36Sopenharmony_ci				clock-inv = <0>;
80662306a36Sopenharmony_ci				crc = <1>;
80762306a36Sopenharmony_ci
80862306a36Sopenharmony_ci				remote-endpoint = <&csi_isp>;
80962306a36Sopenharmony_ci			};
81062306a36Sopenharmony_ci		};
81162306a36Sopenharmony_ci	};
81262306a36Sopenharmony_ci
81362306a36Sopenharmony_ci	/* D/A converter for auto-focus */
81462306a36Sopenharmony_ci	ad5820: dac@c {
81562306a36Sopenharmony_ci		compatible = "adi,ad5820";
81662306a36Sopenharmony_ci		reg = <0x0c>;
81762306a36Sopenharmony_ci
81862306a36Sopenharmony_ci		VANA-supply = <&vaux4>;
81962306a36Sopenharmony_ci
82062306a36Sopenharmony_ci		#io-channel-cells = <0>;
82162306a36Sopenharmony_ci	};
82262306a36Sopenharmony_ci};
82362306a36Sopenharmony_ci
82462306a36Sopenharmony_ci&mmc1 {
82562306a36Sopenharmony_ci	pinctrl-names = "default";
82662306a36Sopenharmony_ci	pinctrl-0 = <&mmc1_pins>;
82762306a36Sopenharmony_ci	vmmc-supply = <&vmmc1>;
82862306a36Sopenharmony_ci	bus-width = <4>;
82962306a36Sopenharmony_ci};
83062306a36Sopenharmony_ci
83162306a36Sopenharmony_ci/* most boards use vaux3, only some old versions use vmmc2 instead */
83262306a36Sopenharmony_ci&mmc2 {
83362306a36Sopenharmony_ci	pinctrl-names = "default";
83462306a36Sopenharmony_ci	pinctrl-0 = <&mmc2_pins>;
83562306a36Sopenharmony_ci	vmmc-supply = <&vaux3>;
83662306a36Sopenharmony_ci	vqmmc-supply = <&vsim>;
83762306a36Sopenharmony_ci	bus-width = <8>;
83862306a36Sopenharmony_ci	non-removable;
83962306a36Sopenharmony_ci	no-sdio;
84062306a36Sopenharmony_ci	no-sd;
84162306a36Sopenharmony_ci};
84262306a36Sopenharmony_ci
84362306a36Sopenharmony_ci&mmc3 {
84462306a36Sopenharmony_ci	status = "disabled";
84562306a36Sopenharmony_ci};
84662306a36Sopenharmony_ci
84762306a36Sopenharmony_ci&gpmc {
84862306a36Sopenharmony_ci	ranges = <0 0 0x01000000 0x01000000>,	/* 16 MB for OneNAND */
84962306a36Sopenharmony_ci		 <1 0 0x02000000 0x01000000>;	/* 16 MB for smc91c96 */
85062306a36Sopenharmony_ci	pinctrl-names = "default";
85162306a36Sopenharmony_ci	pinctrl-0 = <&gpmc_pins>;
85262306a36Sopenharmony_ci
85362306a36Sopenharmony_ci	/* sys_ndmareq1 could be used by the driver, not as gpio65 though */
85462306a36Sopenharmony_ci	onenand@0,0 {
85562306a36Sopenharmony_ci		#address-cells = <1>;
85662306a36Sopenharmony_ci		#size-cells = <1>;
85762306a36Sopenharmony_ci		compatible = "ti,omap2-onenand";
85862306a36Sopenharmony_ci		reg = <0 0 0x20000>;	/* CS0, offset 0, IO size 128K */
85962306a36Sopenharmony_ci
86062306a36Sopenharmony_ci		/*
86162306a36Sopenharmony_ci		 * These timings are based on CONFIG_OMAP_GPMC_DEBUG=y reported
86262306a36Sopenharmony_ci		 * bootloader set values when booted with v5.1
86362306a36Sopenharmony_ci		 * (OneNAND Manufacturer: Samsung):
86462306a36Sopenharmony_ci		 *
86562306a36Sopenharmony_ci		 *   cs0 GPMC_CS_CONFIG1: 0xfb001202
86662306a36Sopenharmony_ci		 *   cs0 GPMC_CS_CONFIG2: 0x00111100
86762306a36Sopenharmony_ci		 *   cs0 GPMC_CS_CONFIG3: 0x00020200
86862306a36Sopenharmony_ci		 *   cs0 GPMC_CS_CONFIG4: 0x11001102
86962306a36Sopenharmony_ci		 *   cs0 GPMC_CS_CONFIG5: 0x03101616
87062306a36Sopenharmony_ci		 *   cs0 GPMC_CS_CONFIG6: 0x90060000
87162306a36Sopenharmony_ci		 */
87262306a36Sopenharmony_ci		gpmc,sync-read;
87362306a36Sopenharmony_ci		gpmc,sync-write;
87462306a36Sopenharmony_ci		gpmc,burst-length = <16>;
87562306a36Sopenharmony_ci		gpmc,burst-read;
87662306a36Sopenharmony_ci		gpmc,burst-wrap;
87762306a36Sopenharmony_ci		gpmc,burst-write;
87862306a36Sopenharmony_ci		gpmc,device-width = <2>;
87962306a36Sopenharmony_ci		gpmc,mux-add-data = <2>;
88062306a36Sopenharmony_ci		gpmc,cs-on-ns = <0>;
88162306a36Sopenharmony_ci		gpmc,cs-rd-off-ns = <102>;
88262306a36Sopenharmony_ci		gpmc,cs-wr-off-ns = <102>;
88362306a36Sopenharmony_ci		gpmc,adv-on-ns = <0>;
88462306a36Sopenharmony_ci		gpmc,adv-rd-off-ns = <12>;
88562306a36Sopenharmony_ci		gpmc,adv-wr-off-ns = <12>;
88662306a36Sopenharmony_ci		gpmc,oe-on-ns = <12>;
88762306a36Sopenharmony_ci		gpmc,oe-off-ns = <102>;
88862306a36Sopenharmony_ci		gpmc,we-on-ns = <0>;
88962306a36Sopenharmony_ci		gpmc,we-off-ns = <102>;
89062306a36Sopenharmony_ci		gpmc,rd-cycle-ns = <132>;
89162306a36Sopenharmony_ci		gpmc,wr-cycle-ns = <132>;
89262306a36Sopenharmony_ci		gpmc,access-ns = <96>;
89362306a36Sopenharmony_ci		gpmc,page-burst-access-ns = <18>;
89462306a36Sopenharmony_ci		gpmc,bus-turnaround-ns = <0>;
89562306a36Sopenharmony_ci		gpmc,cycle2cycle-delay-ns = <0>;
89662306a36Sopenharmony_ci		gpmc,wait-monitoring-ns = <0>;
89762306a36Sopenharmony_ci		gpmc,clk-activation-ns = <6>;
89862306a36Sopenharmony_ci		gpmc,wr-data-mux-bus-ns = <36>;
89962306a36Sopenharmony_ci		gpmc,wr-access-ns = <96>;
90062306a36Sopenharmony_ci		gpmc,sync-clk-ps = <15000>;
90162306a36Sopenharmony_ci
90262306a36Sopenharmony_ci		/*
90362306a36Sopenharmony_ci		 * MTD partition table corresponding to Nokia's
90462306a36Sopenharmony_ci		 * Maemo 5 (Fremantle) release.
90562306a36Sopenharmony_ci		 */
90662306a36Sopenharmony_ci		partition@0 {
90762306a36Sopenharmony_ci			label = "bootloader";
90862306a36Sopenharmony_ci			reg = <0x00000000 0x00020000>;
90962306a36Sopenharmony_ci			read-only;
91062306a36Sopenharmony_ci		};
91162306a36Sopenharmony_ci		partition@1 {
91262306a36Sopenharmony_ci			label = "config";
91362306a36Sopenharmony_ci			reg = <0x00020000 0x00060000>;
91462306a36Sopenharmony_ci		};
91562306a36Sopenharmony_ci		partition@2 {
91662306a36Sopenharmony_ci			label = "log";
91762306a36Sopenharmony_ci			reg = <0x00080000 0x00040000>;
91862306a36Sopenharmony_ci		};
91962306a36Sopenharmony_ci		partition@3 {
92062306a36Sopenharmony_ci			label = "kernel";
92162306a36Sopenharmony_ci			reg = <0x000c0000 0x00200000>;
92262306a36Sopenharmony_ci		};
92362306a36Sopenharmony_ci		partition@4 {
92462306a36Sopenharmony_ci			label = "initfs";
92562306a36Sopenharmony_ci			reg = <0x002c0000 0x00200000>;
92662306a36Sopenharmony_ci		};
92762306a36Sopenharmony_ci		partition@5 {
92862306a36Sopenharmony_ci			label = "rootfs";
92962306a36Sopenharmony_ci			reg = <0x004c0000 0x0fb40000>;
93062306a36Sopenharmony_ci		};
93162306a36Sopenharmony_ci	};
93262306a36Sopenharmony_ci
93362306a36Sopenharmony_ci	/* Ethernet is on some early development boards and qemu */
93462306a36Sopenharmony_ci	ethernet@gpmc {
93562306a36Sopenharmony_ci		compatible = "smsc,lan91c94";
93662306a36Sopenharmony_ci		interrupt-parent = <&gpio2>;
93762306a36Sopenharmony_ci		interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;	/* gpio54 */
93862306a36Sopenharmony_ci		reg = <1 0 0xf>;		/* 16 byte IO range */
93962306a36Sopenharmony_ci		bank-width = <2>;
94062306a36Sopenharmony_ci		pinctrl-names = "default";
94162306a36Sopenharmony_ci		pinctrl-0 = <&ethernet_pins>;
94262306a36Sopenharmony_ci		power-gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>;	/* gpio86 */
94362306a36Sopenharmony_ci		reset-gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>;	/* gpio164 */
94462306a36Sopenharmony_ci		gpmc,device-width = <2>;
94562306a36Sopenharmony_ci		gpmc,sync-clk-ps = <0>;
94662306a36Sopenharmony_ci		gpmc,cs-on-ns = <0>;
94762306a36Sopenharmony_ci		gpmc,cs-rd-off-ns = <48>;
94862306a36Sopenharmony_ci		gpmc,cs-wr-off-ns = <24>;
94962306a36Sopenharmony_ci		gpmc,adv-on-ns = <0>;
95062306a36Sopenharmony_ci		gpmc,adv-rd-off-ns = <0>;
95162306a36Sopenharmony_ci		gpmc,adv-wr-off-ns = <0>;
95262306a36Sopenharmony_ci		gpmc,we-on-ns = <12>;
95362306a36Sopenharmony_ci		gpmc,we-off-ns = <18>;
95462306a36Sopenharmony_ci		gpmc,oe-on-ns = <12>;
95562306a36Sopenharmony_ci		gpmc,oe-off-ns = <48>;
95662306a36Sopenharmony_ci		gpmc,page-burst-access-ns = <0>;
95762306a36Sopenharmony_ci		gpmc,access-ns = <42>;
95862306a36Sopenharmony_ci		gpmc,rd-cycle-ns = <180>;
95962306a36Sopenharmony_ci		gpmc,wr-cycle-ns = <180>;
96062306a36Sopenharmony_ci		gpmc,bus-turnaround-ns = <0>;
96162306a36Sopenharmony_ci		gpmc,cycle2cycle-delay-ns = <0>;
96262306a36Sopenharmony_ci		gpmc,wait-monitoring-ns = <0>;
96362306a36Sopenharmony_ci		gpmc,clk-activation-ns = <0>;
96462306a36Sopenharmony_ci		gpmc,wr-access-ns = <0>;
96562306a36Sopenharmony_ci		gpmc,wr-data-mux-bus-ns = <12>;
96662306a36Sopenharmony_ci	};
96762306a36Sopenharmony_ci};
96862306a36Sopenharmony_ci
96962306a36Sopenharmony_ci&mcspi1 {
97062306a36Sopenharmony_ci	/*
97162306a36Sopenharmony_ci	 * For some reason, touchscreen is necessary for screen to work at
97262306a36Sopenharmony_ci	 * all on real hw. It works well without it on emulator.
97362306a36Sopenharmony_ci	 *
97462306a36Sopenharmony_ci	 * Also... order in the device tree actually matters here.
97562306a36Sopenharmony_ci	 */
97662306a36Sopenharmony_ci	tsc2005@0 {
97762306a36Sopenharmony_ci		compatible = "ti,tsc2005";
97862306a36Sopenharmony_ci		spi-max-frequency = <6000000>;
97962306a36Sopenharmony_ci		reg = <0>;
98062306a36Sopenharmony_ci
98162306a36Sopenharmony_ci		vio-supply = <&vio>;
98262306a36Sopenharmony_ci
98362306a36Sopenharmony_ci		reset-gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* 104 */
98462306a36Sopenharmony_ci		interrupts-extended = <&gpio4 4 IRQ_TYPE_EDGE_RISING>; /* 100 */
98562306a36Sopenharmony_ci
98662306a36Sopenharmony_ci		touchscreen-fuzz-x = <4>;
98762306a36Sopenharmony_ci		touchscreen-fuzz-y = <7>;
98862306a36Sopenharmony_ci		touchscreen-fuzz-pressure = <2>;
98962306a36Sopenharmony_ci		touchscreen-size-x = <4096>;
99062306a36Sopenharmony_ci		touchscreen-size-y = <4096>;
99162306a36Sopenharmony_ci		touchscreen-max-pressure = <2048>;
99262306a36Sopenharmony_ci
99362306a36Sopenharmony_ci		ti,x-plate-ohms = <280>;
99462306a36Sopenharmony_ci		ti,esd-recovery-timeout-ms = <8000>;
99562306a36Sopenharmony_ci	};
99662306a36Sopenharmony_ci
99762306a36Sopenharmony_ci	lcd: acx565akm@2 {
99862306a36Sopenharmony_ci		compatible = "sony,acx565akm";
99962306a36Sopenharmony_ci		spi-max-frequency = <6000000>;
100062306a36Sopenharmony_ci		reg = <2>;
100162306a36Sopenharmony_ci
100262306a36Sopenharmony_ci		pinctrl-names = "default";
100362306a36Sopenharmony_ci		pinctrl-0 = <&acx565akm_pins>;
100462306a36Sopenharmony_ci
100562306a36Sopenharmony_ci		label = "lcd";
100662306a36Sopenharmony_ci		reset-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>; /* 90 */
100762306a36Sopenharmony_ci
100862306a36Sopenharmony_ci		port {
100962306a36Sopenharmony_ci			lcd_in: endpoint {
101062306a36Sopenharmony_ci				remote-endpoint = <&sdi_out>;
101162306a36Sopenharmony_ci			};
101262306a36Sopenharmony_ci		};
101362306a36Sopenharmony_ci	};
101462306a36Sopenharmony_ci};
101562306a36Sopenharmony_ci
101662306a36Sopenharmony_ci&mcspi4 {
101762306a36Sopenharmony_ci	pinctrl-names = "default";
101862306a36Sopenharmony_ci	pinctrl-0 = <&mcspi4_pins>;
101962306a36Sopenharmony_ci
102062306a36Sopenharmony_ci	wl1251@0 {
102162306a36Sopenharmony_ci		pinctrl-names = "default";
102262306a36Sopenharmony_ci		pinctrl-0 = <&wl1251_pins>;
102362306a36Sopenharmony_ci
102462306a36Sopenharmony_ci		vio-supply = <&vio>;
102562306a36Sopenharmony_ci
102662306a36Sopenharmony_ci		compatible = "ti,wl1251";
102762306a36Sopenharmony_ci		reg = <0>;
102862306a36Sopenharmony_ci		spi-max-frequency = <48000000>;
102962306a36Sopenharmony_ci
103062306a36Sopenharmony_ci		spi-cpol;
103162306a36Sopenharmony_ci		spi-cpha;
103262306a36Sopenharmony_ci
103362306a36Sopenharmony_ci		ti,power-gpio = <&gpio3 23 GPIO_ACTIVE_HIGH>; /* 87 */
103462306a36Sopenharmony_ci
103562306a36Sopenharmony_ci		interrupt-parent = <&gpio2>;
103662306a36Sopenharmony_ci		interrupts = <10 IRQ_TYPE_NONE>; /* gpio line 42 */
103762306a36Sopenharmony_ci
103862306a36Sopenharmony_ci		clocks = <&vctcxo>;
103962306a36Sopenharmony_ci	};
104062306a36Sopenharmony_ci};
104162306a36Sopenharmony_ci
104262306a36Sopenharmony_ci/* RNG not directly accessible on n900, see omap3-rom-rng instead */
104362306a36Sopenharmony_ci&rng_target {
104462306a36Sopenharmony_ci	status = "disabled";
104562306a36Sopenharmony_ci};
104662306a36Sopenharmony_ci
104762306a36Sopenharmony_ci&usb_otg_hs {
104862306a36Sopenharmony_ci	interface-type = <0>;
104962306a36Sopenharmony_ci	usb-phy = <&usb2_phy>;
105062306a36Sopenharmony_ci	phys = <&usb2_phy>;
105162306a36Sopenharmony_ci	phy-names = "usb2-phy";
105262306a36Sopenharmony_ci	mode = <2>;
105362306a36Sopenharmony_ci	power = <50>;
105462306a36Sopenharmony_ci};
105562306a36Sopenharmony_ci
105662306a36Sopenharmony_ci&uart1 {
105762306a36Sopenharmony_ci	status = "disabled";
105862306a36Sopenharmony_ci};
105962306a36Sopenharmony_ci
106062306a36Sopenharmony_ci&uart2 {
106162306a36Sopenharmony_ci	pinctrl-names = "default";
106262306a36Sopenharmony_ci	pinctrl-0 = <&uart2_pins>;
106362306a36Sopenharmony_ci
106462306a36Sopenharmony_ci	bcm2048: bluetooth {
106562306a36Sopenharmony_ci		compatible = "brcm,bcm2048-nokia", "nokia,h4p-bluetooth";
106662306a36Sopenharmony_ci		reset-gpios = <&gpio3 27 GPIO_ACTIVE_LOW>; /* 91 */
106762306a36Sopenharmony_ci		host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* 101 */
106862306a36Sopenharmony_ci		bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* 37 */
106962306a36Sopenharmony_ci		clocks = <&vctcxo>;
107062306a36Sopenharmony_ci		clock-names = "sysclk";
107162306a36Sopenharmony_ci	};
107262306a36Sopenharmony_ci};
107362306a36Sopenharmony_ci
107462306a36Sopenharmony_ci&uart3 {
107562306a36Sopenharmony_ci	interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
107662306a36Sopenharmony_ci	pinctrl-names = "default";
107762306a36Sopenharmony_ci	pinctrl-0 = <&uart3_pins>;
107862306a36Sopenharmony_ci};
107962306a36Sopenharmony_ci
108062306a36Sopenharmony_ci&dss {
108162306a36Sopenharmony_ci	status = "okay";
108262306a36Sopenharmony_ci
108362306a36Sopenharmony_ci	pinctrl-names = "default";
108462306a36Sopenharmony_ci	pinctrl-0 = <&dss_sdi_pins>;
108562306a36Sopenharmony_ci
108662306a36Sopenharmony_ci	vdds_sdi-supply = <&vaux1>;
108762306a36Sopenharmony_ci
108862306a36Sopenharmony_ci	ports {
108962306a36Sopenharmony_ci		#address-cells = <1>;
109062306a36Sopenharmony_ci		#size-cells = <0>;
109162306a36Sopenharmony_ci
109262306a36Sopenharmony_ci		port@1 {
109362306a36Sopenharmony_ci			reg = <1>;
109462306a36Sopenharmony_ci
109562306a36Sopenharmony_ci			sdi_out: endpoint {
109662306a36Sopenharmony_ci				remote-endpoint = <&lcd_in>;
109762306a36Sopenharmony_ci				datapairs = <2>;
109862306a36Sopenharmony_ci			};
109962306a36Sopenharmony_ci		};
110062306a36Sopenharmony_ci	};
110162306a36Sopenharmony_ci};
110262306a36Sopenharmony_ci
110362306a36Sopenharmony_ci&venc {
110462306a36Sopenharmony_ci	status = "okay";
110562306a36Sopenharmony_ci
110662306a36Sopenharmony_ci	vdda-supply = <&vdac>;
110762306a36Sopenharmony_ci
110862306a36Sopenharmony_ci	port {
110962306a36Sopenharmony_ci		venc_out: endpoint {
111062306a36Sopenharmony_ci			remote-endpoint = <&tv_connector_in>;
111162306a36Sopenharmony_ci			ti,channels = <1>;
111262306a36Sopenharmony_ci		};
111362306a36Sopenharmony_ci	};
111462306a36Sopenharmony_ci};
111562306a36Sopenharmony_ci
111662306a36Sopenharmony_ci&mcbsp2 {
111762306a36Sopenharmony_ci	status = "okay";
111862306a36Sopenharmony_ci};
111962306a36Sopenharmony_ci
112062306a36Sopenharmony_ci&ssi_port1 {
112162306a36Sopenharmony_ci	pinctrl-names = "default";
112262306a36Sopenharmony_ci	pinctrl-0 = <&ssi_pins>;
112362306a36Sopenharmony_ci
112462306a36Sopenharmony_ci	ti,ssi-cawake-gpio = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* 151 */
112562306a36Sopenharmony_ci
112662306a36Sopenharmony_ci	modem: hsi-client {
112762306a36Sopenharmony_ci		compatible = "nokia,n900-modem";
112862306a36Sopenharmony_ci
112962306a36Sopenharmony_ci		pinctrl-names = "default";
113062306a36Sopenharmony_ci		pinctrl-0 = <&modem_pins>;
113162306a36Sopenharmony_ci
113262306a36Sopenharmony_ci		hsi-channel-ids = <0>, <1>, <2>, <3>;
113362306a36Sopenharmony_ci		hsi-channel-names = "mcsaab-control",
113462306a36Sopenharmony_ci				    "speech-control",
113562306a36Sopenharmony_ci				    "speech-data",
113662306a36Sopenharmony_ci				    "mcsaab-data";
113762306a36Sopenharmony_ci		hsi-speed-kbps = <55000>;
113862306a36Sopenharmony_ci		hsi-mode = "frame";
113962306a36Sopenharmony_ci		hsi-flow = "synchronized";
114062306a36Sopenharmony_ci		hsi-arb-mode = "round-robin";
114162306a36Sopenharmony_ci
114262306a36Sopenharmony_ci		interrupts-extended = <&gpio3 8 IRQ_TYPE_EDGE_FALLING>; /* 72 */
114362306a36Sopenharmony_ci
114462306a36Sopenharmony_ci		gpios = <&gpio3  6 GPIO_ACTIVE_HIGH>, /* 70 */
114562306a36Sopenharmony_ci			<&gpio3  9 GPIO_ACTIVE_HIGH>, /* 73 */
114662306a36Sopenharmony_ci			<&gpio3 10 GPIO_ACTIVE_HIGH>, /* 74 */
114762306a36Sopenharmony_ci			<&gpio3 11 GPIO_ACTIVE_HIGH>, /* 75 */
114862306a36Sopenharmony_ci			<&gpio5 29 GPIO_ACTIVE_HIGH>; /* 157 */
114962306a36Sopenharmony_ci		gpio-names = "cmt_apeslpx",
115062306a36Sopenharmony_ci			     "cmt_rst_rq",
115162306a36Sopenharmony_ci			     "cmt_en",
115262306a36Sopenharmony_ci			     "cmt_rst",
115362306a36Sopenharmony_ci			     "cmt_bsi";
115462306a36Sopenharmony_ci	};
115562306a36Sopenharmony_ci};
115662306a36Sopenharmony_ci
115762306a36Sopenharmony_ci&ssi_port2 {
115862306a36Sopenharmony_ci	status = "disabled";
115962306a36Sopenharmony_ci};
1160