1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Device tree file for Phytec PCM-947 carrier board 4 * Copyright (C) 2017 PHYTEC Messtechnik GmbH 5 * Author: Wadim Egorov <w.egorov@phytec.de> 6 */ 7 8/dts-v1/; 9 10#include <dt-bindings/input/input.h> 11#include <dt-bindings/leds/leds-pca9532.h> 12#include "rk3288-phycore-som.dtsi" 13 14/ { 15 model = "Phytec RK3288 PCM-947"; 16 compatible = "phytec,rk3288-pcm-947", "phytec,rk3288-phycore-som", "rockchip,rk3288"; 17 18 user_buttons: user-buttons { 19 compatible = "gpio-keys"; 20 pinctrl-names = "default"; 21 pinctrl-0 = <&user_button_pins>; 22 23 button@0 { 24 label = "home"; 25 linux,code = <KEY_HOME>; 26 gpios = <&gpio8 0 GPIO_ACTIVE_HIGH>; 27 wakeup-source; 28 }; 29 30 button@1 { 31 label = "menu"; 32 linux,code = <KEY_MENU>; 33 gpios = <&gpio8 3 GPIO_ACTIVE_HIGH>; 34 wakeup-source; 35 }; 36 }; 37 38 vcc_host0_5v: usb-host0-regulator { 39 compatible = "regulator-fixed"; 40 gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>; 41 pinctrl-names = "default"; 42 pinctrl-0 = <&host0_vbus_drv>; 43 regulator-name = "vcc_host0_5v"; 44 regulator-min-microvolt = <5000000>; 45 regulator-max-microvolt = <5000000>; 46 regulator-always-on; 47 vin-supply = <&vdd_in_otg_out>; 48 }; 49 50 vcc_host1_5v: usb-host1-regulator { 51 compatible = "regulator-fixed"; 52 gpio = <&gpio2 0 GPIO_ACTIVE_HIGH>; 53 pinctrl-names = "default"; 54 pinctrl-0 = <&host1_vbus_drv>; 55 regulator-name = "vcc_host1_5v"; 56 regulator-min-microvolt = <5000000>; 57 regulator-max-microvolt = <5000000>; 58 regulator-always-on; 59 vin-supply = <&vdd_in_otg_out>; 60 }; 61 62 vcc_otg_5v: usb-otg-regulator { 63 compatible = "regulator-fixed"; 64 gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>; 65 pinctrl-names = "default"; 66 pinctrl-0 = <&otg_vbus_drv>; 67 regulator-name = "vcc_otg_5v"; 68 regulator-min-microvolt = <5000000>; 69 regulator-max-microvolt = <5000000>; 70 regulator-always-on; 71 vin-supply = <&vdd_in_otg_out>; 72 }; 73}; 74 75&gmac { 76 status = "okay"; 77}; 78 79&hdmi { 80 status = "okay"; 81}; 82 83&i2c1 { 84 status = "okay"; 85 86 touchscreen@44 { 87 compatible = "st,stmpe811"; 88 reg = <0x44>; 89 }; 90 91 adc@64 { 92 compatible = "maxim,max1037"; 93 reg = <0x64>; 94 }; 95 96 i2c_rtc: rtc@68 { 97 compatible = "rv4162"; 98 reg = <0x68>; 99 pinctrl-names = "default"; 100 pinctrl-0 = <&i2c_rtc_int>; 101 interrupt-parent = <&gpio5>; 102 interrupts = <10 0>; 103 }; 104}; 105 106&i2c3 { 107 status = "okay"; 108 109 i2c_eeprom_cb: eeprom@51 { 110 compatible = "atmel,24c32"; 111 reg = <0x51>; 112 pagesize = <32>; 113 }; 114}; 115 116&i2c4 { 117 status = "okay"; 118 119 /* PCA9533 - 4-bit LED dimmer */ 120 leddim: leddimmer@62 { 121 compatible = "nxp,pca9533"; 122 reg = <0x62>; 123 124 led1 { 125 label = "red:user1"; 126 linux,default-trigger = "none"; 127 type = <PCA9532_TYPE_LED>; 128 }; 129 130 led2 { 131 label = "green:user2"; 132 linux,default-trigger = "none"; 133 type = <PCA9532_TYPE_LED>; 134 }; 135 136 led3 { 137 label = "blue:user3"; 138 linux,default-trigger = "none"; 139 type = <PCA9532_TYPE_LED>; 140 }; 141 142 led4 { 143 label = "red:user4"; 144 linux,default-trigger = "none"; 145 type = <PCA9532_TYPE_LED>; 146 }; 147 }; 148}; 149 150&i2c5 { 151 status = "okay"; 152}; 153 154&pinctrl { 155 pcfg_pull_up_drv_12ma: pcfg-pull-up-drv-12ma { 156 bias-pull-up; 157 drive-strength = <12>; 158 }; 159 160 buttons { 161 user_button_pins: user-button-pins { 162 /* button 1 */ 163 rockchip,pins = <8 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>, 164 /* button 2 */ 165 <8 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; 166 }; 167 }; 168 169 rv4162 { 170 i2c_rtc_int: i2c-rtc-int { 171 rockchip,pins = <5 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>; 172 }; 173 }; 174 175 sdmmc { 176 /* 177 * Default drive strength isn't enough to achieve even 178 * high-speed mode on pcm-947 board so bump up to 12 mA. 179 */ 180 sdmmc_bus4: sdmmc-bus4 { 181 rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_12ma>, 182 <6 RK_PC1 1 &pcfg_pull_up_drv_12ma>, 183 <6 RK_PC2 1 &pcfg_pull_up_drv_12ma>, 184 <6 RK_PC3 1 &pcfg_pull_up_drv_12ma>; 185 }; 186 187 sdmmc_clk: sdmmc-clk { 188 rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_12ma>; 189 }; 190 191 sdmmc_cmd: sdmmc-cmd { 192 rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_12ma>; 193 }; 194 195 sdmmc_pwr: sdmmc-pwr { 196 rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 197 }; 198 }; 199 200 touchscreen { 201 ts_irq_pin: ts-irq-pin { 202 rockchip,pins = <5 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 203 }; 204 }; 205 206 usb_host { 207 host0_vbus_drv: host0-vbus-drv { 208 rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; 209 }; 210 211 host1_vbus_drv: host1-vbus-drv { 212 rockchip,pins = <2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; 213 }; 214 }; 215 216 usb_otg { 217 otg_vbus_drv: otg-vbus-drv { 218 rockchip,pins = <2 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; 219 }; 220 }; 221}; 222 223&sdmmc { 224 bus-width = <4>; 225 cap-mmc-highspeed; 226 cap-sd-highspeed; 227 card-detect-delay = <200>; 228 disable-wp; 229 pinctrl-names = "default"; 230 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; 231 sd-uhs-sdr12; 232 sd-uhs-sdr25; 233 sd-uhs-sdr50; 234 sd-uhs-sdr104; 235 vmmc-supply = <&vdd_sd>; 236 vqmmc-supply = <&vdd_io_sd>; 237 status = "okay"; 238}; 239 240&uart0 { 241 pinctrl-names = "default"; 242 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; 243 status = "okay"; 244}; 245 246&uart2 { 247 status = "okay"; 248}; 249 250&usbphy { 251 status = "okay"; 252}; 253 254&usb_host0_ehci { 255 status = "okay"; 256}; 257 258&usb_host1 { 259 status = "okay"; 260}; 261 262&usb_otg { 263 status = "okay"; 264}; 265