| /* | 
 |  * Copyright (C) 2013 Marek Belisko <marek@goldelico.com> | 
 |  * | 
 |  * Based on omap3-beagle-xm.dts | 
 |  * | 
 |  * This program is free software; you can redistribute it and/or modify | 
 |  * it under the terms of the GNU General Public License version 2 as | 
 |  * published by the Free Software Foundation. | 
 |  */ | 
 | /dts-v1/; | 
 |  | 
 | #include "omap36xx.dtsi" | 
 |  | 
 | / { | 
 | 	model = "OMAP3 GTA04"; | 
 | 	compatible = "ti,omap3-gta04", "ti,omap36xx", "ti,omap3"; | 
 |  | 
 | 	cpus { | 
 | 		cpu@0 { | 
 | 			cpu0-supply = <&vcc>; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	memory { | 
 | 		device_type = "memory"; | 
 | 		reg = <0x80000000 0x20000000>; /* 512 MB */ | 
 | 	}; | 
 |  | 
 | 	aliases { | 
 | 		display0 = &lcd; | 
 | 	}; | 
 |  | 
 | 	gpio-keys { | 
 | 		compatible = "gpio-keys"; | 
 |  | 
 | 		aux-button { | 
 | 			label = "aux"; | 
 | 			linux,code = <169>; | 
 | 			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; | 
 | 			gpio-key,wakeup; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	sound { | 
 | 		compatible = "ti,omap-twl4030"; | 
 | 		ti,model = "gta04"; | 
 |  | 
 | 		ti,mcbsp = <&mcbsp2>; | 
 | 		ti,codec = <&twl_audio>; | 
 | 	}; | 
 |  | 
 | 	spi_lcd { | 
 | 		compatible = "spi-gpio"; | 
 | 		#address-cells = <0x1>; | 
 | 		#size-cells = <0x0>; | 
 | 		pinctrl-names = "default"; | 
 | 		pinctrl-0 = <&spi_gpio_pins>; | 
 |  | 
 | 		gpio-sck = <&gpio1 12 0>; | 
 | 		gpio-miso = <&gpio1 18 0>; | 
 | 		gpio-mosi = <&gpio1 20 0>; | 
 | 		cs-gpios = <&gpio1 19 0>; | 
 | 		num-chipselects = <1>; | 
 |  | 
 | 		/* lcd panel */ | 
 | 		lcd: td028ttec1@0 { | 
 | 			compatible = "toppoly,td028ttec1"; | 
 | 			reg = <0>; | 
 | 			spi-max-frequency = <100000>; | 
 | 			spi-cpol; | 
 | 			spi-cpha; | 
 |  | 
 | 			label = "lcd"; | 
 | 			port { | 
 | 				lcd_in: endpoint { | 
 | 					remote-endpoint = <&dpi_out>; | 
 | 				}; | 
 | 			}; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	hsusb2_phy: hsusb2_phy { | 
 | 		compatible = "usb-nop-xceiv"; | 
 | 		reset-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &omap3_pmx_core { | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = < | 
 | 			&hsusb2_pins | 
 | 	>; | 
 |  | 
 | 	hsusb2_pins: pinmux_hsusb2_pins { | 
 | 		pinctrl-single,pins = < | 
 | 			OMAP3_CORE1_IOPAD(0x21d4, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi1_cs3.hsusb2_data2 */ | 
 | 			OMAP3_CORE1_IOPAD(0x21d6, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_clk.hsusb2_data7 */ | 
 | 			OMAP3_CORE1_IOPAD(0x21d8, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_simo.hsusb2_data4 */ | 
 | 			OMAP3_CORE1_IOPAD(0x21da, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_somi.hsusb2_data5 */ | 
 | 			OMAP3_CORE1_IOPAD(0x21dc, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_cs0.hsusb2_data6 */ | 
 | 			OMAP3_CORE1_IOPAD(0x21de, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* mcspi2_cs1.hsusb2_data3 */ | 
 | 		>; | 
 | 	}; | 
 |  | 
 | 	uart1_pins: pinmux_uart1_pins { | 
 | 		pinctrl-single,pins = < | 
 | 			0x152 (PIN_INPUT | MUX_MODE0)		/* uart1_rx.uart1_rx */ | 
 | 			0x14c (PIN_OUTPUT |MUX_MODE0)		/* uart1_tx.uart1_tx */ | 
 | 		>; | 
 | 	}; | 
 |  | 
 | 	uart2_pins: pinmux_uart2_pins { | 
 | 		pinctrl-single,pins = < | 
 | 			0x14a (PIN_INPUT | MUX_MODE0)		/* uart2_rx.uart2_rx */ | 
 | 			0x148 (PIN_OUTPUT | MUX_MODE0)		/* uart2_tx.uart2_tx */ | 
 | 		>; | 
 | 	}; | 
 |  | 
 | 	uart3_pins: pinmux_uart3_pins { | 
 | 		pinctrl-single,pins = < | 
 | 			0x16e (PIN_INPUT | MUX_MODE0)		/* uart3_rx.uart3_rx */ | 
 | 			0x170 (PIN_OUTPUT | MUX_MODE0)		/* uart3_tx.uart3_tx */ | 
 | 		>; | 
 | 	}; | 
 |  | 
 | 	mmc1_pins: pinmux_mmc1_pins { | 
 | 		pinctrl-single,pins = < | 
 | 			0x114 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_clk.sdmmc1_clk */ | 
 | 			0x116 (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_cmd.sdmmc1_cmd */ | 
 | 			0x118 (PIN_INPUT_PULLUP | MUX_MODE0) 	/* sdmmc1_dat0.sdmmc1_dat0 */ | 
 | 			0x11a (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat1.sdmmc1_dat1 */ | 
 | 			0x11c (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat2.sdmmc1_dat2 */ | 
 | 			0x11e (PIN_INPUT_PULLUP | MUX_MODE0)	/* sdmmc1_dat3.sdmmc1_dat3 */ | 
 | 		>; | 
 | 	}; | 
 |  | 
 | 	dss_dpi_pins: pinmux_dss_dpi_pins { | 
 |                pinctrl-single,pins = < | 
 |                        0x0a4 (PIN_OUTPUT | MUX_MODE0)   /* dss_pclk.dss_pclk */ | 
 |                        0x0a6 (PIN_OUTPUT | MUX_MODE0)   /* dss_hsync.dss_hsync */ | 
 |                        0x0a8 (PIN_OUTPUT | MUX_MODE0)   /* dss_vsync.dss_vsync */ | 
 |                        0x0aa (PIN_OUTPUT | MUX_MODE0)   /* dss_acbias.dss_acbias */ | 
 |                        0x0ac (PIN_OUTPUT | MUX_MODE0)   /* dss_data0.dss_data0 */ | 
 |                        0x0ae (PIN_OUTPUT | MUX_MODE0)   /* dss_data1.dss_data1 */ | 
 |                        0x0b0 (PIN_OUTPUT | MUX_MODE0)   /* dss_data2.dss_data2 */ | 
 |                        0x0b2 (PIN_OUTPUT | MUX_MODE0)   /* dss_data3.dss_data3 */ | 
 |                        0x0b4 (PIN_OUTPUT | MUX_MODE0)   /* dss_data4.dss_data4 */ | 
 |                        0x0b6 (PIN_OUTPUT | MUX_MODE0)   /* dss_data5.dss_data5 */ | 
 |                        0x0b8 (PIN_OUTPUT | MUX_MODE0)   /* dss_data6.dss_data6 */ | 
 |                        0x0ba (PIN_OUTPUT | MUX_MODE0)   /* dss_data7.dss_data7 */ | 
 |                        0x0bc (PIN_OUTPUT | MUX_MODE0)   /* dss_data8.dss_data8 */ | 
 |                        0x0be (PIN_OUTPUT | MUX_MODE0)   /* dss_data9.dss_data9 */ | 
 |                        0x0c0 (PIN_OUTPUT | MUX_MODE0)   /* dss_data10.dss_data10 */ | 
 |                        0x0c2 (PIN_OUTPUT | MUX_MODE0)   /* dss_data11.dss_data11 */ | 
 |                        0x0c4 (PIN_OUTPUT | MUX_MODE0)   /* dss_data12.dss_data12 */ | 
 |                        0x0c6 (PIN_OUTPUT | MUX_MODE0)   /* dss_data13.dss_data13 */ | 
 |                        0x0c8 (PIN_OUTPUT | MUX_MODE0)   /* dss_data14.dss_data14 */ | 
 |                        0x0ca (PIN_OUTPUT | MUX_MODE0)   /* dss_data15.dss_data15 */ | 
 |                        0x0cc (PIN_OUTPUT | MUX_MODE0)   /* dss_data16.dss_data16 */ | 
 |                        0x0ce (PIN_OUTPUT | MUX_MODE0)   /* dss_data17.dss_data17 */ | 
 |                        0x0d0 (PIN_OUTPUT | MUX_MODE0)   /* dss_data18.dss_data18 */ | 
 |                        0x0d2 (PIN_OUTPUT | MUX_MODE0)   /* dss_data19.dss_data19 */ | 
 |                        0x0d4 (PIN_OUTPUT | MUX_MODE0)   /* dss_data20.dss_data20 */ | 
 |                        0x0d6 (PIN_OUTPUT | MUX_MODE0)   /* dss_data21.dss_data21 */ | 
 |                        0x0d8 (PIN_OUTPUT | MUX_MODE0)   /* dss_data22.dss_data22 */ | 
 |                        0x0da (PIN_OUTPUT | MUX_MODE0)   /* dss_data23.dss_data23 */ | 
 |                >; | 
 |        }; | 
 | }; | 
 |  | 
 | &omap3_pmx_core2 { | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = < | 
 | 			&hsusb2_2_pins | 
 | 	>; | 
 |  | 
 | 	hsusb2_2_pins: pinmux_hsusb2_2_pins { | 
 | 		pinctrl-single,pins = < | 
 | 			OMAP3630_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3)		/* etk_d10.hsusb2_clk */ | 
 | 			OMAP3630_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3)		/* etk_d11.hsusb2_stp */ | 
 | 			OMAP3630_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d12.hsusb2_dir */ | 
 | 			OMAP3630_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d13.hsusb2_nxt */ | 
 | 			OMAP3630_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d14.hsusb2_data0 */ | 
 | 			OMAP3630_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3)	/* etk_d15.hsusb2_data1 */ | 
 | 		>; | 
 | 	}; | 
 |  | 
 | 	spi_gpio_pins: spi_gpio_pinmux { | 
 | 		pinctrl-single,pins = < | 
 | 			OMAP3630_CORE2_IOPAD(0x25d8, PIN_OUTPUT | MUX_MODE4) /* clk */ | 
 | 			OMAP3630_CORE2_IOPAD(0x25e6, PIN_OUTPUT | MUX_MODE4) /* cs */ | 
 | 			OMAP3630_CORE2_IOPAD(0x25e8, PIN_OUTPUT | MUX_MODE4) /* tx */ | 
 | 			OMAP3630_CORE2_IOPAD(0x25e4, PIN_INPUT | MUX_MODE4) /* rx */ | 
 | 		>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &i2c1 { | 
 | 	clock-frequency = <2600000>; | 
 |  | 
 | 	twl: twl@48 { | 
 | 		reg = <0x48>; | 
 | 		interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | 
 | 		interrupt-parent = <&intc>; | 
 | 	}; | 
 |  | 
 | 	twl_audio: audio { | 
 | 		compatible = "ti,twl4030-audio"; | 
 | 		codec { | 
 | 		}; | 
 | 	}; | 
 | }; | 
 |  | 
 | #include "twl4030.dtsi" | 
 | #include "twl4030_omap3.dtsi" | 
 |  | 
 | &i2c2 { | 
 | 	clock-frequency = <400000>; | 
 |  | 
 | 	/* pressure sensor */ | 
 | 	bmp085@77 { | 
 | 		compatible = "bosch,bmp085"; | 
 | 		reg = <0x77>; | 
 | 		interrupt-parent = <&gpio4>; | 
 | 		interrupts = <17 IRQ_TYPE_EDGE_RISING>; | 
 | 	}; | 
 |  | 
 | 	/* accelerometer */ | 
 | 	bma180@41 { | 
 | 		compatible = "bosch,bma180"; | 
 | 		reg = <0x41>; | 
 | 		interrupt-parent = <&gpio3>; | 
 | 		interrupts = <19 IRQ_TYPE_LEVEL_HIGH>; | 
 | 	}; | 
 |  | 
 | 	/* leds */ | 
 | 	tca6507@45 { | 
 | 		compatible = "ti,tca6507"; | 
 | 		#address-cells = <1>; | 
 | 		#size-cells = <0>; | 
 | 		reg = <0x45>; | 
 |  | 
 | 		gpio-controller; | 
 | 		#gpio-cells = <2>; | 
 |  | 
 | 		gta04_led0: red_aux@0 { | 
 | 			label = "gta04:red:aux"; | 
 | 			reg = <0x0>; | 
 | 		}; | 
 |  | 
 | 		gta04_led1: green_aux@1 { | 
 | 			label = "gta04:green:aux"; | 
 | 			reg = <0x1>; | 
 | 		}; | 
 |  | 
 | 		gta04_led3: red_power@3 { | 
 | 			label = "gta04:red:power"; | 
 | 			reg = <0x3>; | 
 | 			linux,default-trigger = "default-on"; | 
 | 		}; | 
 |  | 
 | 		gta04_led4: green_power@4 { | 
 | 			label = "gta04:green:power"; | 
 | 			reg = <0x4>; | 
 | 		}; | 
 |  | 
 | 		wifi_reset: wifi_reset@6 { | 
 | 			reg = <0x6>; | 
 | 			compatible = "gpio"; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	/* compass aka magnetometer */ | 
 | 	hmc5843@1e { | 
 | 		compatible = "honeywell,hmc5883l"; | 
 | 		reg = <0x1e>; | 
 | 	}; | 
 |  | 
 | 	/* touchscreen */ | 
 | 	tsc2007@48 { | 
 | 		compatible = "ti,tsc2007"; | 
 | 		reg = <0x48>; | 
 | 		interrupt-parent = <&gpio6>; | 
 | 		interrupts = <0 IRQ_TYPE_EDGE_FALLING>; | 
 | 		gpios = <&gpio6 0 GPIO_ACTIVE_LOW>; | 
 | 		ti,x-plate-ohms = <600>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &i2c3 { | 
 | 	clock-frequency = <100000>; | 
 | }; | 
 |  | 
 | &usb_otg_hs { | 
 | 	interface-type = <0>; | 
 | 	usb-phy = <&usb2_phy>; | 
 | 	phys = <&usb2_phy>; | 
 | 	phy-names = "usb2-phy"; | 
 | 	mode = <3>; | 
 | 	power = <50>; | 
 | }; | 
 |  | 
 | &usbhshost { | 
 | 	port2-mode = "ehci-phy"; | 
 | }; | 
 |  | 
 | &usbhsehci { | 
 | 	phys = <0 &hsusb2_phy>; | 
 | }; | 
 |  | 
 | &mmc1 { | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = <&mmc1_pins>; | 
 | 	vmmc-supply = <&vmmc1>; | 
 | 	bus-width = <4>; | 
 | 	ti,non-removable; | 
 | }; | 
 |  | 
 | &mmc2 { | 
 | 	vmmc-supply = <&vaux4>; | 
 | 	bus-width = <4>; | 
 | 	ti,non-removable; | 
 | }; | 
 |  | 
 | &mmc3 { | 
 | 	status = "disabled"; | 
 | }; | 
 |  | 
 | &uart1 { | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = <&uart1_pins>; | 
 | }; | 
 |  | 
 | &uart2 { | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = <&uart2_pins>; | 
 | }; | 
 |  | 
 | &uart3 { | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = <&uart3_pins>; | 
 | }; | 
 |  | 
 | &charger { | 
 | 	bb_uvolt = <3200000>; | 
 | 	bb_uamp = <150>; | 
 | }; | 
 |  | 
 | /* spare */ | 
 | &vaux1 { | 
 | 	regulator-min-microvolt = <2500000>; | 
 | 	regulator-max-microvolt = <3000000>; | 
 | }; | 
 |  | 
 | /* sensors */ | 
 | &vaux2 { | 
 | 	regulator-min-microvolt = <2800000>; | 
 | 	regulator-max-microvolt = <2800000>; | 
 | 	regulator-always-on; | 
 | }; | 
 |  | 
 | /* camera */ | 
 | &vaux3 { | 
 | 	regulator-min-microvolt = <2500000>; | 
 | 	regulator-max-microvolt = <2500000>; | 
 | }; | 
 |  | 
 | /* WLAN/BT */ | 
 | &vaux4 { | 
 | 	regulator-min-microvolt = <2800000>; | 
 | 	regulator-max-microvolt = <3150000>; | 
 | }; | 
 |  | 
 | /* GPS LNA */ | 
 | &vsim { | 
 | 	regulator-min-microvolt = <2800000>; | 
 | 	regulator-max-microvolt = <3150000>; | 
 | }; | 
 |  | 
 | /* Needed to power the DPI pins */ | 
 | &vpll2 { | 
 | 	regulator-always-on; | 
 | }; | 
 |  | 
 | &dss { | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = < &dss_dpi_pins >; | 
 |  | 
 | 	status = "okay"; | 
 |  | 
 | 	port { | 
 | 		dpi_out: endpoint { | 
 | 			remote-endpoint = <&lcd_in>; | 
 | 			data-lines = <24>; | 
 | 		}; | 
 | 	}; | 
 | }; | 
 |  | 
 | &gpmc { | 
 | 	ranges = <0 0 0x30000000 0x04>; /* CS0: NAND */ | 
 |  | 
 | 	nand@0,0 { | 
 | 		reg = <0 0 0>; /* CS0, offset 0 */ | 
 | 		nand-bus-width = <16>; | 
 | 		ti,nand-ecc-opt = "bch8"; | 
 |  | 
 | 		gpmc,sync-clk-ps = <0>; | 
 | 		gpmc,cs-on-ns = <0>; | 
 | 		gpmc,cs-rd-off-ns = <44>; | 
 | 		gpmc,cs-wr-off-ns = <44>; | 
 | 		gpmc,adv-on-ns = <6>; | 
 | 		gpmc,adv-rd-off-ns = <34>; | 
 | 		gpmc,adv-wr-off-ns = <44>; | 
 | 		gpmc,we-off-ns = <40>; | 
 | 		gpmc,oe-off-ns = <54>; | 
 | 		gpmc,access-ns = <64>; | 
 | 		gpmc,rd-cycle-ns = <82>; | 
 | 		gpmc,wr-cycle-ns = <82>; | 
 | 		gpmc,wr-access-ns = <40>; | 
 | 		gpmc,wr-data-mux-bus-ns = <0>; | 
 | 		gpmc,device-width = <2>; | 
 |  | 
 | 		#address-cells = <1>; | 
 | 		#size-cells = <1>; | 
 |  | 
 | 		x-loader@0 { | 
 | 			label = "X-Loader"; | 
 | 			reg = <0 0x80000>; | 
 | 		}; | 
 |  | 
 | 		bootloaders@80000 { | 
 | 			label = "U-Boot"; | 
 | 			reg = <0x80000 0x1e0000>; | 
 | 		}; | 
 |  | 
 | 		bootloaders_env@260000 { | 
 | 			label = "U-Boot Env"; | 
 | 			reg = <0x260000 0x20000>; | 
 | 		}; | 
 |  | 
 | 		kernel@280000 { | 
 | 			label = "Kernel"; | 
 | 			reg = <0x280000 0x400000>; | 
 | 		}; | 
 |  | 
 | 		filesystem@680000 { | 
 | 			label = "File System"; | 
 | 			reg = <0x680000 0xf980000>; | 
 | 		}; | 
 | 	}; | 
 | }; |