0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003 * Copyright (C) 2014-2017 Phytec Messtechnik GmbH
0004 * Author: Wadim Egorov <w.egorov@phytec.de>
0005 * Teresa Remmet <t.remmet@phytec.de>
0006 */
0007
0008 #include <dt-bindings/input/input.h>
0009
0010 / {
0011 model = "Phytec AM335x PCM-953";
0012 compatible = "phytec,am335x-pcm-953", "phytec,am335x-phycore-som", "ti,am33xx";
0013
0014 /* Power */
0015 regulators {
0016 vcc3v3: fixedregulator@1 {
0017 compatible = "regulator-fixed";
0018 regulator-name = "vcc3v3";
0019 regulator-min-microvolt = <3300000>;
0020 regulator-max-microvolt = <3300000>;
0021 regulator-boot-on;
0022 };
0023
0024 vcc1v8: fixedregulator@2 {
0025 compatible = "regulator-fixed";
0026 regulator-name = "vcc1v8";
0027 regulator-min-microvolt = <1800000>;
0028 regulator-max-microvolt = <1800000>;
0029 regulator-boot-on;
0030 };
0031 };
0032
0033 /* User IO */
0034 user_leds: user_leds {
0035 compatible = "gpio-leds";
0036 pinctrl-names = "default";
0037 pinctrl-0 = <&user_leds_pins>;
0038
0039 user-led0 {
0040 gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
0041 linux,default-trigger = "gpio";
0042 default-state = "on";
0043 };
0044
0045 user-led1 {
0046 gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
0047 linux,default-trigger = "gpio";
0048 default-state = "on";
0049 };
0050 };
0051
0052 user_buttons: user_buttons {
0053 compatible = "gpio-keys";
0054 pinctrl-names = "default";
0055 pinctrl-0 = <&user_buttons_pins>;
0056
0057 button-0 {
0058 label = "home";
0059 linux,code = <KEY_HOME>;
0060 gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
0061 wakeup-source;
0062 };
0063
0064 button-1 {
0065 label = "menu";
0066 linux,code = <KEY_MENU>;
0067 gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
0068 wakeup-source;
0069 };
0070
0071 };
0072 };
0073
0074 &am33xx_pinmux {
0075 user_buttons_pins: pinmux_user_buttons {
0076 pinctrl-single,pins = <
0077 AM33XX_PADCONF(AM335X_PIN_EMU0, PIN_INPUT_PULLDOWN, MUX_MODE7) /* emu0.gpio3_7 */
0078 AM33XX_PADCONF(AM335X_PIN_EMU1, PIN_INPUT_PULLDOWN, MUX_MODE7) /* emu1.gpio3_8 */
0079 >;
0080 };
0081
0082 user_leds_pins: pinmux_user_leds {
0083 pinctrl-single,pins = <
0084 AM33XX_PADCONF(AM335X_PIN_GPMC_CSN1, PIN_OUTPUT_PULLDOWN, MUX_MODE7) /* gpmc_csn1.gpio1_30 */
0085 AM33XX_PADCONF(AM335X_PIN_GPMC_CSN2, PIN_OUTPUT_PULLDOWN, MUX_MODE7) /* gpmc_csn2.gpio1_31 */
0086 >;
0087 };
0088 };
0089
0090 /* CAN */
0091 &am33xx_pinmux {
0092 dcan1_pins: pinmux_dcan1 {
0093 pinctrl-single,pins = <
0094 AM33XX_PADCONF(AM335X_PIN_UART1_RXD, PIN_OUTPUT_PULLUP, MUX_MODE2) /* uart1_rxd.dcan1_tx_mux2 */
0095 AM33XX_PADCONF(AM335X_PIN_UART1_TXD, PIN_INPUT_PULLUP, MUX_MODE2) /* uart1_txd.dcan1_rx_mux2 */
0096 >;
0097 };
0098 };
0099
0100 &dcan1 {
0101 pinctrl-names = "default";
0102 pinctrl-0 = <&dcan1_pins>;
0103 status = "okay";
0104 };
0105
0106 /* Ethernet */
0107 &am33xx_pinmux {
0108 ethernet1_pins: pinmux_ethernet1 {
0109 pinctrl-single,pins = <
0110 AM33XX_PADCONF(AM335X_PIN_GPMC_A0, PIN_OUTPUT_PULLDOWN, MUX_MODE2) /* gpmc_a0.rgmii2_tctl */
0111 AM33XX_PADCONF(AM335X_PIN_GPMC_A1, PIN_INPUT_PULLDOWN, MUX_MODE2) /* gpmc_a1.rgmii2_rctl */
0112 AM33XX_PADCONF(AM335X_PIN_GPMC_A2, PIN_OUTPUT_PULLDOWN, MUX_MODE2) /* gpmc_a2.rgmii2_td3 */
0113 AM33XX_PADCONF(AM335X_PIN_GPMC_A3, PIN_OUTPUT_PULLDOWN, MUX_MODE2) /* gpmc_a3.rgmii2_td2 */
0114 AM33XX_PADCONF(AM335X_PIN_GPMC_A4, PIN_OUTPUT_PULLDOWN, MUX_MODE2) /* gpmc_a4.rgmii2_td1 */
0115 AM33XX_PADCONF(AM335X_PIN_GPMC_A5, PIN_OUTPUT_PULLDOWN, MUX_MODE2) /* gpmc_a5.rgmii2_td0 */
0116 AM33XX_PADCONF(AM335X_PIN_GPMC_A6, PIN_OUTPUT_PULLDOWN, MUX_MODE2) /* gpmc_a6.rgmii2_tclk */
0117 AM33XX_PADCONF(AM335X_PIN_GPMC_A7, PIN_INPUT_PULLDOWN, MUX_MODE2) /* gpmc_a7.rgmii2_rclk */
0118 AM33XX_PADCONF(AM335X_PIN_GPMC_A8, PIN_INPUT_PULLDOWN, MUX_MODE2) /* gpmc_a8.rgmii2_rd3 */
0119 AM33XX_PADCONF(AM335X_PIN_GPMC_A9, PIN_INPUT_PULLDOWN, MUX_MODE2) /* gpmc_a9.rgmii2_rd2 */
0120 AM33XX_PADCONF(AM335X_PIN_GPMC_A10, PIN_INPUT_PULLDOWN, MUX_MODE2) /* gpmc_a10.rgmii2_rd1 */
0121 AM33XX_PADCONF(AM335X_PIN_GPMC_A11, PIN_INPUT_PULLDOWN, MUX_MODE2) /* gpmc_a11.rgmii2_rd0 */
0122 >;
0123 };
0124 };
0125
0126 &cpsw_port2 {
0127 phy-handle = <&phy1>;
0128 phy-mode = "rgmii-id";
0129 ti,dual-emac-pvid = <2>;
0130 status = "okay";
0131 };
0132
0133 &davinci_mdio_sw {
0134 phy1: ethernet-phy@2 {
0135 reg = <2>;
0136 };
0137 };
0138
0139 &mac_sw {
0140 pinctrl-names = "default";
0141 pinctrl-0 = <ðernet0_pins ðernet1_pins>;
0142 };
0143
0144 /* Misc */
0145 &am33xx_pinmux {
0146 pinctrl-names = "default";
0147 pinctrl-0 = <&cb_gpio_pins>;
0148
0149 cb_gpio_pins: pinmux_cb_gpio {
0150 pinctrl-single,pins = <
0151 AM33XX_PADCONF(AM335X_PIN_UART0_CTSN, PIN_OUTPUT_PULLDOWN, MUX_MODE7) /* uart0_ctsn.gpio1_8 */
0152 AM33XX_PADCONF(AM335X_PIN_UART0_RTSN, PIN_OUTPUT_PULLDOWN, MUX_MODE7) /* uart0_rtsn.gpio1_9 */
0153 >;
0154 };
0155 };
0156
0157 /* MMC */
0158 &am33xx_pinmux {
0159 mmc1_pins: pinmux_mmc1_pins {
0160 pinctrl-single,pins = <
0161 AM33XX_PADCONF(AM335X_PIN_MMC0_DAT3, PIN_INPUT_PULLUP, MUX_MODE0)
0162 AM33XX_PADCONF(AM335X_PIN_MMC0_DAT2, PIN_INPUT_PULLUP, MUX_MODE0)
0163 AM33XX_PADCONF(AM335X_PIN_MMC0_DAT1, PIN_INPUT_PULLUP, MUX_MODE0)
0164 AM33XX_PADCONF(AM335X_PIN_MMC0_DAT0, PIN_INPUT_PULLUP, MUX_MODE0)
0165 AM33XX_PADCONF(AM335X_PIN_MMC0_CLK, PIN_INPUT_PULLUP, MUX_MODE0)
0166 AM33XX_PADCONF(AM335X_PIN_MMC0_CMD, PIN_INPUT_PULLUP, MUX_MODE0)
0167 AM33XX_PADCONF(AM335X_PIN_SPI0_CS1, PIN_INPUT_PULLUP, MUX_MODE7) /* spi0_cs1.mmc0_sdcd */
0168 >;
0169 };
0170 };
0171
0172 &mmc1 {
0173 vmmc-supply = <&vcc3v3>;
0174 bus-width = <4>;
0175 pinctrl-names = "default";
0176 pinctrl-0 = <&mmc1_pins>;
0177 cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
0178 status = "okay";
0179 };
0180
0181 /* UARTs */
0182 &am33xx_pinmux {
0183 uart0_pins: pinmux_uart0 {
0184 pinctrl-single,pins = <
0185 AM33XX_PADCONF(AM335X_PIN_UART0_RXD, PIN_INPUT_PULLUP, MUX_MODE0)
0186 AM33XX_PADCONF(AM335X_PIN_UART0_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
0187 >;
0188 };
0189
0190 uart1_pins: pinmux_uart1 {
0191 pinctrl-single,pins = <
0192 AM33XX_PADCONF(AM335X_PIN_UART1_RXD, PIN_INPUT_PULLUP, MUX_MODE0)
0193 AM33XX_PADCONF(AM335X_PIN_UART1_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
0194 AM33XX_PADCONF(AM335X_PIN_UART1_CTSN, PIN_INPUT, MUX_MODE0)
0195 AM33XX_PADCONF(AM335X_PIN_UART1_RTSN, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
0196 >;
0197 };
0198
0199 uart2_pins: pinmux_uart2 {
0200 pinctrl-single,pins = <
0201 AM33XX_PADCONF(AM335X_PIN_MII1_TX_CLK, PIN_INPUT_PULLUP, MUX_MODE1) /* mii1_tx_clk.uart2_rxd */
0202 AM33XX_PADCONF(AM335X_PIN_MII1_RX_CLK, PIN_OUTPUT_PULLDOWN, MUX_MODE1) /* mii1_rx_clk.uart2_txd */
0203 >;
0204 };
0205
0206 uart3_pins: pinmux_uart3 {
0207 pinctrl-single,pins = <
0208 AM33XX_PADCONF(AM335X_PIN_MII1_RXD3, PIN_INPUT_PULLUP, MUX_MODE1) /* mii1_rxd3.uart3_rxd */
0209 AM33XX_PADCONF(AM335X_PIN_MII1_RXD2, PIN_OUTPUT_PULLDOWN, MUX_MODE1) /* mii1_rxd2.uart3_txd */
0210 >;
0211 };
0212 };
0213
0214 &uart0 {
0215 pinctrl-names = "default";
0216 pinctrl-0 = <&uart0_pins>;
0217 status = "okay";
0218 };
0219
0220 &uart1 {
0221 pinctrl-names = "default";
0222 pinctrl-0 = <&uart1_pins>;
0223 };
0224
0225 &uart2 {
0226 pinctrl-names = "default";
0227 pinctrl-0 = <&uart2_pins>;
0228 status = "okay";
0229 };
0230
0231 &uart3 {
0232 pinctrl-names = "default";
0233 pinctrl-0 = <&uart3_pins>;
0234 status = "okay";
0235 };
0236
0237 /* USB */
0238 &usb1 {
0239 dr_mode = "host";
0240 };