Pavel Machek | a4d4b15 | 2013-08-13 15:36:36 +0200 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz> |
| 3 | * Copyright 2013 Aaro Koskinen <aaro.koskinen@iki.fi> |
| 4 | * |
| 5 | * This program is free software; you can redistribute it and/or modify |
| 6 | * it under the terms of the GNU General Public License version 2 (or later) as |
| 7 | * published by the Free Software Foundation. |
| 8 | */ |
| 9 | |
| 10 | /dts-v1/; |
| 11 | |
| 12 | #include "omap34xx.dtsi" |
| 13 | |
| 14 | / { |
| 15 | model = "Nokia N900"; |
| 16 | compatible = "nokia,omap3-n900", "ti,omap3"; |
| 17 | |
| 18 | cpus { |
| 19 | cpu@0 { |
| 20 | cpu0-supply = <&vcc>; |
| 21 | }; |
| 22 | }; |
| 23 | |
| 24 | memory { |
| 25 | device_type = "memory"; |
| 26 | reg = <0x80000000 0x10000000>; /* 256 MB */ |
| 27 | }; |
| 28 | |
Sebastian Reichel | 3931c839 | 2013-10-23 00:49:34 +0200 | [diff] [blame^] | 29 | gpio_keys { |
| 30 | compatible = "gpio-keys"; |
| 31 | |
| 32 | camera_lens_cover { |
| 33 | label = "Camera Lens Cover"; |
| 34 | gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* 110 */ |
| 35 | linux,input-type = <5>; /* EV_SW */ |
| 36 | linux,code = <0x09>; /* SW_CAMERA_LENS_COVER */ |
| 37 | gpio-key,wakeup; |
| 38 | }; |
| 39 | |
| 40 | camera_focus { |
| 41 | label = "Camera Focus"; |
| 42 | gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; /* 68 */ |
| 43 | linux,code = <0x210>; /* KEY_CAMERA_FOCUS */ |
| 44 | gpio-key,wakeup; |
| 45 | }; |
| 46 | |
| 47 | camera_capture { |
| 48 | label = "Camera Capture"; |
| 49 | gpios = <&gpio3 5 GPIO_ACTIVE_LOW>; /* 69 */ |
| 50 | linux,code = <0xd4>; /* KEY_CAMERA */ |
| 51 | gpio-key,wakeup; |
| 52 | }; |
| 53 | |
| 54 | lock_button { |
| 55 | label = "Lock Button"; |
| 56 | gpios = <&gpio4 17 GPIO_ACTIVE_LOW>; /* 113 */ |
| 57 | linux,code = <0x98>; /* KEY_SCREENLOCK */ |
| 58 | gpio-key,wakeup; |
| 59 | }; |
| 60 | |
| 61 | keypad_slide { |
| 62 | label = "Keypad Slide"; |
| 63 | gpios = <&gpio3 7 GPIO_ACTIVE_LOW>; /* 71 */ |
| 64 | linux,input-type = <5>; /* EV_SW */ |
| 65 | linux,code = <0x0a>; /* SW_KEYPAD_SLIDE */ |
| 66 | gpio-key,wakeup; |
| 67 | }; |
| 68 | |
| 69 | proximity_sensor { |
| 70 | label = "Proximity Sensor"; |
| 71 | gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>; /* 89 */ |
| 72 | linux,input-type = <5>; /* EV_SW */ |
| 73 | linux,code = <0x0b>; /* SW_FRONT_PROXIMITY */ |
| 74 | }; |
| 75 | }; |
| 76 | |
Pavel Machek | a4d4b15 | 2013-08-13 15:36:36 +0200 | [diff] [blame] | 77 | }; |
| 78 | |
Sebastian Reichel | ac888a8 | 2013-10-23 00:49:30 +0200 | [diff] [blame] | 79 | &omap3_pmx_core { |
| 80 | pinctrl-names = "default"; |
| 81 | |
Sebastian Reichel | 7a89eec | 2013-10-23 00:49:32 +0200 | [diff] [blame] | 82 | uart2_pins: pinmux_uart2_pins { |
| 83 | pinctrl-single,pins = < |
| 84 | 0x14a (PIN_INPUT | MUX_MODE0) /* uart2_rx */ |
| 85 | 0x148 (PIN_OUTPUT | MUX_MODE0) /* uart2_tx */ |
| 86 | >; |
| 87 | }; |
| 88 | |
| 89 | uart3_pins: pinmux_uart3_pins { |
| 90 | pinctrl-single,pins = < |
| 91 | 0x16e (PIN_INPUT | MUX_MODE0) /* uart3_rx */ |
| 92 | 0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx */ |
| 93 | >; |
| 94 | }; |
| 95 | |
Sebastian Reichel | ac888a8 | 2013-10-23 00:49:30 +0200 | [diff] [blame] | 96 | i2c1_pins: pinmux_i2c1_pins { |
| 97 | pinctrl-single,pins = < |
| 98 | 0x18a (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */ |
| 99 | 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */ |
| 100 | >; |
| 101 | }; |
| 102 | |
| 103 | i2c2_pins: pinmux_i2c2_pins { |
| 104 | pinctrl-single,pins = < |
| 105 | 0x18e (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */ |
| 106 | 0x190 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */ |
| 107 | >; |
| 108 | }; |
| 109 | |
| 110 | i2c3_pins: pinmux_i2c3_pins { |
| 111 | pinctrl-single,pins = < |
| 112 | 0x192 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */ |
| 113 | 0x194 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */ |
| 114 | >; |
| 115 | }; |
Sebastian Reichel | f1751cf | 2013-10-23 00:49:33 +0200 | [diff] [blame] | 116 | |
| 117 | mmc1_pins: pinmux_mmc1_pins { |
| 118 | pinctrl-single,pins = < |
| 119 | 0x114 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk */ |
| 120 | 0x116 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd */ |
| 121 | 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0 */ |
| 122 | 0x11a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1 */ |
| 123 | 0x11c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2 */ |
| 124 | 0x11e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3 */ |
| 125 | >; |
| 126 | }; |
Sebastian Reichel | ac888a8 | 2013-10-23 00:49:30 +0200 | [diff] [blame] | 127 | }; |
| 128 | |
Pavel Machek | a4d4b15 | 2013-08-13 15:36:36 +0200 | [diff] [blame] | 129 | &i2c1 { |
Sebastian Reichel | ac888a8 | 2013-10-23 00:49:30 +0200 | [diff] [blame] | 130 | pinctrl-names = "default"; |
| 131 | pinctrl-0 = <&i2c1_pins>; |
| 132 | |
Pavel Machek | a4d4b15 | 2013-08-13 15:36:36 +0200 | [diff] [blame] | 133 | clock-frequency = <2200000>; |
| 134 | |
| 135 | twl: twl@48 { |
| 136 | reg = <0x48>; |
| 137 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ |
| 138 | interrupt-parent = <&intc>; |
| 139 | }; |
| 140 | }; |
| 141 | |
| 142 | #include "twl4030.dtsi" |
Sebastian Reichel | ac888a8 | 2013-10-23 00:49:30 +0200 | [diff] [blame] | 143 | #include "twl4030_omap3.dtsi" |
Pavel Machek | a4d4b15 | 2013-08-13 15:36:36 +0200 | [diff] [blame] | 144 | |
| 145 | &twl_gpio { |
| 146 | ti,pullups = <0x0>; |
| 147 | ti,pulldowns = <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */ |
| 148 | }; |
| 149 | |
| 150 | &i2c2 { |
Sebastian Reichel | ac888a8 | 2013-10-23 00:49:30 +0200 | [diff] [blame] | 151 | pinctrl-names = "default"; |
| 152 | pinctrl-0 = <&i2c2_pins>; |
| 153 | |
Sebastian Reichel | 48fc986 | 2013-10-23 00:49:31 +0200 | [diff] [blame] | 154 | clock-frequency = <100000>; |
Pavel Machek | a4d4b15 | 2013-08-13 15:36:36 +0200 | [diff] [blame] | 155 | }; |
| 156 | |
| 157 | &i2c3 { |
Sebastian Reichel | ac888a8 | 2013-10-23 00:49:30 +0200 | [diff] [blame] | 158 | pinctrl-names = "default"; |
| 159 | pinctrl-0 = <&i2c3_pins>; |
| 160 | |
Sebastian Reichel | 48fc986 | 2013-10-23 00:49:31 +0200 | [diff] [blame] | 161 | clock-frequency = <400000>; |
Pavel Machek | a4d4b15 | 2013-08-13 15:36:36 +0200 | [diff] [blame] | 162 | }; |
| 163 | |
| 164 | &mmc1 { |
Sebastian Reichel | f1751cf | 2013-10-23 00:49:33 +0200 | [diff] [blame] | 165 | pinctrl-names = "default"; |
| 166 | pinctrl-0 = <&mmc1_pins>; |
| 167 | vmmc-supply = <&vmmc1>; |
| 168 | bus-width = <4>; |
| 169 | cd-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* 160 */ |
Pavel Machek | a4d4b15 | 2013-08-13 15:36:36 +0200 | [diff] [blame] | 170 | }; |
| 171 | |
| 172 | &mmc2 { |
| 173 | status = "disabled"; |
| 174 | }; |
| 175 | |
| 176 | &mmc3 { |
| 177 | status = "disabled"; |
| 178 | }; |
| 179 | |
| 180 | &mcspi1 { |
| 181 | /* |
| 182 | * For some reason, touchscreen is necessary for screen to work at |
| 183 | * all on real hw. It works well without it on emulator. |
| 184 | * |
| 185 | * Also... order in the device tree actually matters here. |
| 186 | */ |
| 187 | tsc2005@0 { |
| 188 | compatible = "tsc2005"; |
| 189 | spi-max-frequency = <6000000>; |
| 190 | reg = <0>; |
| 191 | }; |
| 192 | mipid@2 { |
| 193 | compatible = "acx565akm"; |
| 194 | spi-max-frequency = <6000000>; |
| 195 | reg = <2>; |
| 196 | }; |
| 197 | }; |
| 198 | |
| 199 | &usb_otg_hs { |
| 200 | interface-type = <0>; |
| 201 | usb-phy = <&usb2_phy>; |
Roger Quadros | d2afcf0 | 2013-10-07 16:28:13 +0300 | [diff] [blame] | 202 | phys = <&usb2_phy>; |
| 203 | phy-names = "usb2-phy"; |
Pavel Machek | a4d4b15 | 2013-08-13 15:36:36 +0200 | [diff] [blame] | 204 | mode = <2>; |
| 205 | power = <50>; |
| 206 | }; |
Sebastian Reichel | 7a89eec | 2013-10-23 00:49:32 +0200 | [diff] [blame] | 207 | |
| 208 | &uart1 { |
| 209 | status = "disabled"; |
| 210 | }; |
| 211 | |
| 212 | &uart2 { |
| 213 | pinctrl-names = "default"; |
| 214 | pinctrl-0 = <&uart2_pins>; |
| 215 | }; |
| 216 | |
| 217 | &uart3 { |
| 218 | pinctrl-names = "default"; |
| 219 | pinctrl-0 = <&uart3_pins>; |
| 220 | }; |