0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 /*
0003 * Device tree file for Phytec PCM-947 carrier board
0004 * Copyright (C) 2017 PHYTEC Messtechnik GmbH
0005 * Author: Wadim Egorov <w.egorov@phytec.de>
0006 */
0007
0008 /dts-v1/;
0009
0010 #include <dt-bindings/input/input.h>
0011 #include <dt-bindings/leds/leds-pca9532.h>
0012 #include "rk3288-phycore-som.dtsi"
0013
0014 / {
0015 model = "Phytec RK3288 PCM-947";
0016 compatible = "phytec,rk3288-pcm-947", "phytec,rk3288-phycore-som", "rockchip,rk3288";
0017
0018 user_buttons: user-buttons {
0019 compatible = "gpio-keys";
0020 pinctrl-names = "default";
0021 pinctrl-0 = <&user_button_pins>;
0022
0023 button-0 {
0024 label = "home";
0025 linux,code = <KEY_HOME>;
0026 gpios = <&gpio8 0 GPIO_ACTIVE_HIGH>;
0027 wakeup-source;
0028 };
0029
0030 button-1 {
0031 label = "menu";
0032 linux,code = <KEY_MENU>;
0033 gpios = <&gpio8 3 GPIO_ACTIVE_HIGH>;
0034 wakeup-source;
0035 };
0036 };
0037
0038 vcc_host0_5v: usb-host0-regulator {
0039 compatible = "regulator-fixed";
0040 gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>;
0041 pinctrl-names = "default";
0042 pinctrl-0 = <&host0_vbus_drv>;
0043 regulator-name = "vcc_host0_5v";
0044 regulator-min-microvolt = <5000000>;
0045 regulator-max-microvolt = <5000000>;
0046 regulator-always-on;
0047 vin-supply = <&vdd_in_otg_out>;
0048 };
0049
0050 vcc_host1_5v: usb-host1-regulator {
0051 compatible = "regulator-fixed";
0052 gpio = <&gpio2 0 GPIO_ACTIVE_HIGH>;
0053 pinctrl-names = "default";
0054 pinctrl-0 = <&host1_vbus_drv>;
0055 regulator-name = "vcc_host1_5v";
0056 regulator-min-microvolt = <5000000>;
0057 regulator-max-microvolt = <5000000>;
0058 regulator-always-on;
0059 vin-supply = <&vdd_in_otg_out>;
0060 };
0061
0062 vcc_otg_5v: usb-otg-regulator {
0063 compatible = "regulator-fixed";
0064 gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>;
0065 pinctrl-names = "default";
0066 pinctrl-0 = <&otg_vbus_drv>;
0067 regulator-name = "vcc_otg_5v";
0068 regulator-min-microvolt = <5000000>;
0069 regulator-max-microvolt = <5000000>;
0070 regulator-always-on;
0071 vin-supply = <&vdd_in_otg_out>;
0072 };
0073 };
0074
0075 &gmac {
0076 status = "okay";
0077 };
0078
0079 &hdmi {
0080 status = "okay";
0081 };
0082
0083 &i2c1 {
0084 status = "okay";
0085
0086 touchscreen@44 {
0087 compatible = "st,stmpe811";
0088 reg = <0x44>;
0089 };
0090
0091 adc@64 {
0092 compatible = "maxim,max1037";
0093 reg = <0x64>;
0094 };
0095
0096 i2c_rtc: rtc@68 {
0097 compatible = "rv4162";
0098 reg = <0x68>;
0099 pinctrl-names = "default";
0100 pinctrl-0 = <&i2c_rtc_int>;
0101 interrupt-parent = <&gpio5>;
0102 interrupts = <10 0>;
0103 };
0104 };
0105
0106 &i2c3 {
0107 status = "okay";
0108
0109 i2c_eeprom_cb: eeprom@51 {
0110 compatible = "atmel,24c32";
0111 reg = <0x51>;
0112 pagesize = <32>;
0113 };
0114 };
0115
0116 &i2c4 {
0117 status = "okay";
0118
0119 /* PCA9533 - 4-bit LED dimmer */
0120 leddim: leddimmer@62 {
0121 compatible = "nxp,pca9533";
0122 reg = <0x62>;
0123
0124 led1 {
0125 label = "red:user1";
0126 linux,default-trigger = "none";
0127 type = <PCA9532_TYPE_LED>;
0128 };
0129
0130 led2 {
0131 label = "green:user2";
0132 linux,default-trigger = "none";
0133 type = <PCA9532_TYPE_LED>;
0134 };
0135
0136 led3 {
0137 label = "blue:user3";
0138 linux,default-trigger = "none";
0139 type = <PCA9532_TYPE_LED>;
0140 };
0141
0142 led4 {
0143 label = "red:user4";
0144 linux,default-trigger = "none";
0145 type = <PCA9532_TYPE_LED>;
0146 };
0147 };
0148 };
0149
0150 &i2c5 {
0151 status = "okay";
0152 };
0153
0154 &pinctrl {
0155 pcfg_pull_up_drv_12ma: pcfg-pull-up-drv-12ma {
0156 bias-pull-up;
0157 drive-strength = <12>;
0158 };
0159
0160 buttons {
0161 user_button_pins: user-button-pins {
0162 /* button 1 */
0163 rockchip,pins = <8 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
0164 /* button 2 */
0165 <8 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
0166 };
0167 };
0168
0169 rv4162 {
0170 i2c_rtc_int: i2c-rtc-int {
0171 rockchip,pins = <5 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
0172 };
0173 };
0174
0175 sdmmc {
0176 /*
0177 * Default drive strength isn't enough to achieve even
0178 * high-speed mode on pcm-947 board so bump up to 12 mA.
0179 */
0180 sdmmc_bus4: sdmmc-bus4 {
0181 rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_12ma>,
0182 <6 RK_PC1 1 &pcfg_pull_up_drv_12ma>,
0183 <6 RK_PC2 1 &pcfg_pull_up_drv_12ma>,
0184 <6 RK_PC3 1 &pcfg_pull_up_drv_12ma>;
0185 };
0186
0187 sdmmc_clk: sdmmc-clk {
0188 rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_12ma>;
0189 };
0190
0191 sdmmc_cmd: sdmmc-cmd {
0192 rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_12ma>;
0193 };
0194
0195 sdmmc_pwr: sdmmc-pwr {
0196 rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
0197 };
0198 };
0199
0200 touchscreen {
0201 ts_irq_pin: ts-irq-pin {
0202 rockchip,pins = <5 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
0203 };
0204 };
0205
0206 usb_host {
0207 host0_vbus_drv: host0-vbus-drv {
0208 rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
0209 };
0210
0211 host1_vbus_drv: host1-vbus-drv {
0212 rockchip,pins = <2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
0213 };
0214 };
0215
0216 usb_otg {
0217 otg_vbus_drv: otg-vbus-drv {
0218 rockchip,pins = <2 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
0219 };
0220 };
0221 };
0222
0223 &sdmmc {
0224 bus-width = <4>;
0225 cap-mmc-highspeed;
0226 cap-sd-highspeed;
0227 card-detect-delay = <200>;
0228 disable-wp;
0229 pinctrl-names = "default";
0230 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
0231 sd-uhs-sdr12;
0232 sd-uhs-sdr25;
0233 sd-uhs-sdr50;
0234 sd-uhs-sdr104;
0235 vmmc-supply = <&vdd_sd>;
0236 vqmmc-supply = <&vdd_io_sd>;
0237 status = "okay";
0238 };
0239
0240 &uart0 {
0241 pinctrl-names = "default";
0242 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
0243 status = "okay";
0244 };
0245
0246 &uart2 {
0247 status = "okay";
0248 };
0249
0250 &usbphy {
0251 status = "okay";
0252 };
0253
0254 &usb_host0_ehci {
0255 status = "okay";
0256 };
0257
0258 &usb_host1 {
0259 status = "okay";
0260 };
0261
0262 &usb_otg {
0263 status = "okay";
0264 };