1bafcf2dbSWadim Egorov/* 2bafcf2dbSWadim Egorov * Device tree file for Phytec PCM-947 carrier board 3bafcf2dbSWadim Egorov * Copyright (C) 2017 PHYTEC Messtechnik GmbH 4bafcf2dbSWadim Egorov * Author: Wadim Egorov <w.egorov@phytec.de> 5bafcf2dbSWadim Egorov * 6bafcf2dbSWadim Egorov * This file is dual-licensed: you can use it either under the terms 7bafcf2dbSWadim Egorov * of the GPL or the X11 license, at your option. Note that this dual 8bafcf2dbSWadim Egorov * licensing only applies to this file, and not this project as a 9bafcf2dbSWadim Egorov * whole. 10bafcf2dbSWadim Egorov * 11bafcf2dbSWadim Egorov * a) This file is free software; you can redistribute it and/or 12bafcf2dbSWadim Egorov * modify it under the terms of the GNU General Public License as 13bafcf2dbSWadim Egorov * published by the Free Software Foundation; either version 2 of the 14bafcf2dbSWadim Egorov * License, or (at your option) any later version. 15bafcf2dbSWadim Egorov * 16bafcf2dbSWadim Egorov * This file is distributed in the hope that it will be useful, 17bafcf2dbSWadim Egorov * but WITHOUT ANY WARRANTY; without even the implied warranty of 18bafcf2dbSWadim Egorov * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19bafcf2dbSWadim Egorov * GNU General Public License for more details. 20bafcf2dbSWadim Egorov * 21bafcf2dbSWadim Egorov * Or, alternatively, 22bafcf2dbSWadim Egorov * 23bafcf2dbSWadim Egorov * b) Permission is hereby granted, free of charge, to any person 24bafcf2dbSWadim Egorov * obtaining a copy of this software and associated documentation 25bafcf2dbSWadim Egorov * files (the "Software"), to deal in the Software without 26bafcf2dbSWadim Egorov * restriction, including without limitation the rights to use, 27bafcf2dbSWadim Egorov * copy, modify, merge, publish, distribute, sublicense, and/or 28bafcf2dbSWadim Egorov * sell copies of the Software, and to permit persons to whom the 29bafcf2dbSWadim Egorov * Software is furnished to do so, subject to the following 30bafcf2dbSWadim Egorov * conditions: 31bafcf2dbSWadim Egorov * 32bafcf2dbSWadim Egorov * The above copyright notice and this permission notice shall be 33bafcf2dbSWadim Egorov * included in all copies or substantial portions of the Software. 34bafcf2dbSWadim Egorov * 35bafcf2dbSWadim Egorov * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 36bafcf2dbSWadim Egorov * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37bafcf2dbSWadim Egorov * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38bafcf2dbSWadim Egorov * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39bafcf2dbSWadim Egorov * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 40bafcf2dbSWadim Egorov * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41bafcf2dbSWadim Egorov * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42bafcf2dbSWadim Egorov * OTHER DEALINGS IN THE SOFTWARE. 43bafcf2dbSWadim Egorov */ 44bafcf2dbSWadim Egorov 45bafcf2dbSWadim Egorov/dts-v1/; 46bafcf2dbSWadim Egorov 47bafcf2dbSWadim Egorov#include <dt-bindings/input/input.h> 48bafcf2dbSWadim Egorov#include "rk3288-phycore-som.dtsi" 49bafcf2dbSWadim Egorov 50bafcf2dbSWadim Egorov/ { 51bafcf2dbSWadim Egorov model = "Phytec RK3288 PCM-947"; 52bafcf2dbSWadim Egorov compatible = "phytec,rk3288-pcm-947", "phytec,rk3288-phycore-som", "rockchip,rk3288"; 53bafcf2dbSWadim Egorov 54bafcf2dbSWadim Egorov chosen { 55bafcf2dbSWadim Egorov stdout-path = &uart2; 56*26ceaeeeSKever Yang u-boot,spl-boot-order = &emmc; 57bafcf2dbSWadim Egorov }; 58bafcf2dbSWadim Egorov 59bafcf2dbSWadim Egorov user_buttons: user-buttons { 60bafcf2dbSWadim Egorov compatible = "gpio-keys"; 61bafcf2dbSWadim Egorov pinctrl-names = "default"; 62bafcf2dbSWadim Egorov pinctrl-0 = <&user_button_pins>; 63bafcf2dbSWadim Egorov 64bafcf2dbSWadim Egorov button@0 { 65bafcf2dbSWadim Egorov label = "home"; 66bafcf2dbSWadim Egorov linux,code = <KEY_HOME>; 67bafcf2dbSWadim Egorov gpios = <&gpio8 0 GPIO_ACTIVE_HIGH>; 68bafcf2dbSWadim Egorov wakeup-source; 69bafcf2dbSWadim Egorov }; 70bafcf2dbSWadim Egorov 71bafcf2dbSWadim Egorov button@1 { 72bafcf2dbSWadim Egorov label = "menu"; 73bafcf2dbSWadim Egorov linux,code = <KEY_MENU>; 74bafcf2dbSWadim Egorov gpios = <&gpio8 3 GPIO_ACTIVE_HIGH>; 75bafcf2dbSWadim Egorov wakeup-source; 76bafcf2dbSWadim Egorov }; 77bafcf2dbSWadim Egorov }; 78bafcf2dbSWadim Egorov 79bafcf2dbSWadim Egorov vcc_host0_5v: usb-host0-regulator { 80bafcf2dbSWadim Egorov compatible = "regulator-fixed"; 81bafcf2dbSWadim Egorov gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>; 82bafcf2dbSWadim Egorov pinctrl-names = "default"; 83bafcf2dbSWadim Egorov pinctrl-0 = <&host0_vbus_drv>; 84bafcf2dbSWadim Egorov regulator-name = "vcc_host0_5v"; 85bafcf2dbSWadim Egorov regulator-min-microvolt = <5000000>; 86bafcf2dbSWadim Egorov regulator-max-microvolt = <5000000>; 87bafcf2dbSWadim Egorov regulator-always-on; 88bafcf2dbSWadim Egorov vin-supply = <&vdd_in_otg_out>; 89bafcf2dbSWadim Egorov }; 90bafcf2dbSWadim Egorov 91bafcf2dbSWadim Egorov vcc_host1_5v: usb-host1-regulator { 92bafcf2dbSWadim Egorov compatible = "regulator-fixed"; 93bafcf2dbSWadim Egorov gpio = <&gpio2 0 GPIO_ACTIVE_HIGH>; 94bafcf2dbSWadim Egorov pinctrl-names = "default"; 95bafcf2dbSWadim Egorov pinctrl-0 = <&host1_vbus_drv>; 96bafcf2dbSWadim Egorov regulator-name = "vcc_host1_5v"; 97bafcf2dbSWadim Egorov regulator-min-microvolt = <5000000>; 98bafcf2dbSWadim Egorov regulator-max-microvolt = <5000000>; 99bafcf2dbSWadim Egorov regulator-always-on; 100bafcf2dbSWadim Egorov vin-supply = <&vdd_in_otg_out>; 101bafcf2dbSWadim Egorov }; 102bafcf2dbSWadim Egorov 103bafcf2dbSWadim Egorov vcc_otg_5v: usb-otg-regulator { 104bafcf2dbSWadim Egorov compatible = "regulator-fixed"; 105bafcf2dbSWadim Egorov gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>; 106bafcf2dbSWadim Egorov pinctrl-names = "default"; 107bafcf2dbSWadim Egorov pinctrl-0 = <&otg_vbus_drv>; 108bafcf2dbSWadim Egorov regulator-name = "vcc_otg_5v"; 109bafcf2dbSWadim Egorov regulator-min-microvolt = <5000000>; 110bafcf2dbSWadim Egorov regulator-max-microvolt = <5000000>; 111bafcf2dbSWadim Egorov regulator-always-on; 112bafcf2dbSWadim Egorov vin-supply = <&vdd_in_otg_out>; 113bafcf2dbSWadim Egorov }; 114bafcf2dbSWadim Egorov}; 115bafcf2dbSWadim Egorov 116bafcf2dbSWadim Egorov&dmc { 117bafcf2dbSWadim Egorov rockchip,num-channels = <2>; 118bafcf2dbSWadim Egorov rockchip,pctl-timing = <0x29a 0xc8 0x1f8 0x42 0x4e 0x4 0xea 0xa 119bafcf2dbSWadim Egorov 0x5 0x0 0xa 0x7 0x19 0x24 0xa 0x7 120bafcf2dbSWadim Egorov 0x5 0xa 0x5 0x200 0x5 0x10 0x40 0x0 121bafcf2dbSWadim Egorov 0x1 0x7 0x7 0x4 0xc 0x43 0x100 0x0 122bafcf2dbSWadim Egorov 0x5 0x0>; 123bafcf2dbSWadim Egorov rockchip,phy-timing = <0x48f9aab4 0xea0910 0x1002c200 124bafcf2dbSWadim Egorov 0xa60 0x40 0x10 0x0>; 125bafcf2dbSWadim Egorov rockchip,sdram-channel = /bits/ 8 <0x1 0xa 0x3 0x2 0x1 0x0 0xe 0xe>; 126bafcf2dbSWadim Egorov rockchip,sdram-params = <0x30B25564 0x627 3 666000000 3 5 1>; 127bafcf2dbSWadim Egorov}; 128bafcf2dbSWadim Egorov 129bafcf2dbSWadim Egorov&gmac { 130bafcf2dbSWadim Egorov status = "okay"; 131bafcf2dbSWadim Egorov}; 132bafcf2dbSWadim Egorov 133bafcf2dbSWadim Egorov&hdmi { 134bafcf2dbSWadim Egorov status = "okay"; 135bafcf2dbSWadim Egorov}; 136bafcf2dbSWadim Egorov 137bafcf2dbSWadim Egorov&i2c1 { 138bafcf2dbSWadim Egorov status = "okay"; 139bafcf2dbSWadim Egorov 140bafcf2dbSWadim Egorov touchscreen@44 { 141bafcf2dbSWadim Egorov compatible = "st,stmpe811"; 142bafcf2dbSWadim Egorov reg = <0x44>; 143bafcf2dbSWadim Egorov }; 144bafcf2dbSWadim Egorov 145bafcf2dbSWadim Egorov adc@64 { 146bafcf2dbSWadim Egorov compatible = "maxim,max1037"; 147bafcf2dbSWadim Egorov reg = <0x64>; 148bafcf2dbSWadim Egorov }; 149bafcf2dbSWadim Egorov 150bafcf2dbSWadim Egorov i2c_rtc: rtc@68 { 151bafcf2dbSWadim Egorov compatible = "rv4162"; 152bafcf2dbSWadim Egorov reg = <0x68>; 153bafcf2dbSWadim Egorov pinctrl-names = "default"; 154bafcf2dbSWadim Egorov pinctrl-0 = <&i2c_rtc_int>; 155bafcf2dbSWadim Egorov interrupt-parent = <&gpio5>; 156bafcf2dbSWadim Egorov interrupts = <10 0>; 157bafcf2dbSWadim Egorov }; 158bafcf2dbSWadim Egorov}; 159bafcf2dbSWadim Egorov 160bafcf2dbSWadim Egorov&i2c3 { 161bafcf2dbSWadim Egorov status = "okay"; 162bafcf2dbSWadim Egorov 163bafcf2dbSWadim Egorov i2c_eeprom_cb: eeprom@51 { 164bafcf2dbSWadim Egorov compatible = "atmel,24c32"; 165bafcf2dbSWadim Egorov reg = <0x51>; 166bafcf2dbSWadim Egorov pagesize = <32>; 167bafcf2dbSWadim Egorov }; 168bafcf2dbSWadim Egorov}; 169bafcf2dbSWadim Egorov 170bafcf2dbSWadim Egorov&i2c4 { 171bafcf2dbSWadim Egorov status = "okay"; 172bafcf2dbSWadim Egorov}; 173bafcf2dbSWadim Egorov 174bafcf2dbSWadim Egorov&i2c5 { 175bafcf2dbSWadim Egorov status = "okay"; 176bafcf2dbSWadim Egorov}; 177bafcf2dbSWadim Egorov 178bafcf2dbSWadim Egorov&pinctrl { 179bafcf2dbSWadim Egorov u-boot,dm-pre-reloc; 180bafcf2dbSWadim Egorov 181bafcf2dbSWadim Egorov pcfg_pull_up_drv_12ma: pcfg-pull-up-drv-12ma { 182bafcf2dbSWadim Egorov bias-pull-up; 183bafcf2dbSWadim Egorov drive-strength = <12>; 184bafcf2dbSWadim Egorov }; 185bafcf2dbSWadim Egorov 186bafcf2dbSWadim Egorov buttons { 187bafcf2dbSWadim Egorov user_button_pins: user-button-pins { 188bafcf2dbSWadim Egorov /* button 1 */ 189bafcf2dbSWadim Egorov rockchip,pins = <8 3 RK_FUNC_GPIO &pcfg_pull_up>, 190bafcf2dbSWadim Egorov /* button 2 */ 191bafcf2dbSWadim Egorov <8 0 RK_FUNC_GPIO &pcfg_pull_up>; 192bafcf2dbSWadim Egorov }; 193bafcf2dbSWadim Egorov }; 194bafcf2dbSWadim Egorov 195bafcf2dbSWadim Egorov rv4162 { 196bafcf2dbSWadim Egorov i2c_rtc_int: i2c-rtc-int { 197bafcf2dbSWadim Egorov rockchip,pins = <5 10 RK_FUNC_GPIO &pcfg_pull_up>; 198bafcf2dbSWadim Egorov }; 199bafcf2dbSWadim Egorov }; 200bafcf2dbSWadim Egorov 201bafcf2dbSWadim Egorov sdmmc { 202bafcf2dbSWadim Egorov /* 203bafcf2dbSWadim Egorov * Default drive strength isn't enough to achieve even 204bafcf2dbSWadim Egorov * high-speed mode on pcm-947 board so bump up to 12 mA. 205bafcf2dbSWadim Egorov */ 206bafcf2dbSWadim Egorov sdmmc_bus4: sdmmc-bus4 { 207bafcf2dbSWadim Egorov rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_12ma>, 208bafcf2dbSWadim Egorov <6 17 RK_FUNC_1 &pcfg_pull_up_drv_12ma>, 209bafcf2dbSWadim Egorov <6 18 RK_FUNC_1 &pcfg_pull_up_drv_12ma>, 210bafcf2dbSWadim Egorov <6 19 RK_FUNC_1 &pcfg_pull_up_drv_12ma>; 211bafcf2dbSWadim Egorov }; 212bafcf2dbSWadim Egorov 213bafcf2dbSWadim Egorov sdmmc_clk: sdmmc-clk { 214bafcf2dbSWadim Egorov rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_12ma>; 215bafcf2dbSWadim Egorov }; 216bafcf2dbSWadim Egorov 217bafcf2dbSWadim Egorov sdmmc_cmd: sdmmc-cmd { 218bafcf2dbSWadim Egorov rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_12ma>; 219bafcf2dbSWadim Egorov }; 220bafcf2dbSWadim Egorov 221bafcf2dbSWadim Egorov sdmmc_pwr: sdmmc-pwr { 222bafcf2dbSWadim Egorov rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>; 223bafcf2dbSWadim Egorov }; 224bafcf2dbSWadim Egorov }; 225bafcf2dbSWadim Egorov 226bafcf2dbSWadim Egorov touchscreen { 227bafcf2dbSWadim Egorov ts_irq_pin: ts-irq-pin { 228bafcf2dbSWadim Egorov rockchip,pins = <5 15 RK_FUNC_GPIO &pcfg_pull_none>; 229bafcf2dbSWadim Egorov }; 230bafcf2dbSWadim Egorov }; 231bafcf2dbSWadim Egorov 232bafcf2dbSWadim Egorov usb_host { 233bafcf2dbSWadim Egorov host0_vbus_drv: host0-vbus-drv { 234bafcf2dbSWadim Egorov rockchip,pins = <2 13 RK_FUNC_GPIO &pcfg_pull_none>; 235bafcf2dbSWadim Egorov }; 236bafcf2dbSWadim Egorov 237bafcf2dbSWadim Egorov host1_vbus_drv: host1-vbus-drv { 238bafcf2dbSWadim Egorov rockchip,pins = <2 0 RK_FUNC_GPIO &pcfg_pull_none>; 239bafcf2dbSWadim Egorov }; 240bafcf2dbSWadim Egorov }; 241bafcf2dbSWadim Egorov 242bafcf2dbSWadim Egorov usb_otg { 243bafcf2dbSWadim Egorov otg_vbus_drv: otg-vbus-drv { 244bafcf2dbSWadim Egorov rockchip,pins = <2 12 RK_FUNC_GPIO &pcfg_pull_none>; 245bafcf2dbSWadim Egorov }; 246bafcf2dbSWadim Egorov }; 247bafcf2dbSWadim Egorov}; 248bafcf2dbSWadim Egorov 249bafcf2dbSWadim Egorov&sdmmc { 250bafcf2dbSWadim Egorov u-boot,dm-pre-reloc; 251bafcf2dbSWadim Egorov 252bafcf2dbSWadim Egorov bus-width = <4>; 253bafcf2dbSWadim Egorov cap-mmc-highspeed; 254bafcf2dbSWadim Egorov cap-sd-highspeed; 255bafcf2dbSWadim Egorov card-detect-delay = <200>; 256bafcf2dbSWadim Egorov disable-wp; 257bafcf2dbSWadim Egorov num-slots = <1>; 258bafcf2dbSWadim Egorov pinctrl-names = "default"; 259bafcf2dbSWadim Egorov pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; 260bafcf2dbSWadim Egorov vmmc-supply = <&vdd_io_sd>; 261bafcf2dbSWadim Egorov vqmmc-supply = <&vdd_io_sd>; 262bafcf2dbSWadim Egorov status = "okay"; 263bafcf2dbSWadim Egorov}; 264bafcf2dbSWadim Egorov 265bafcf2dbSWadim Egorov&uart0 { 266bafcf2dbSWadim Egorov pinctrl-names = "default"; 267bafcf2dbSWadim Egorov pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; 268bafcf2dbSWadim Egorov status = "okay"; 269bafcf2dbSWadim Egorov}; 270bafcf2dbSWadim Egorov 271bafcf2dbSWadim Egorov&uart2 { 272bafcf2dbSWadim Egorov u-boot,dm-pre-reloc; 273bafcf2dbSWadim Egorov status = "okay"; 274bafcf2dbSWadim Egorov}; 275bafcf2dbSWadim Egorov 276bafcf2dbSWadim Egorov&usbphy { 277bafcf2dbSWadim Egorov status = "okay"; 278bafcf2dbSWadim Egorov}; 279bafcf2dbSWadim Egorov 280bafcf2dbSWadim Egorov&usb_host0_ehci { 281bafcf2dbSWadim Egorov status = "okay"; 282bafcf2dbSWadim Egorov}; 283bafcf2dbSWadim Egorov 284bafcf2dbSWadim Egorov&usb_host1 { 285bafcf2dbSWadim Egorov status = "okay"; 286bafcf2dbSWadim Egorov}; 287bafcf2dbSWadim Egorov 288bafcf2dbSWadim Egorov&usb_otg { 289bafcf2dbSWadim Egorov status = "okay"; 290bafcf2dbSWadim Egorov}; 291