1f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0 2f126890aSEmmanuel Vadot/* 3f126890aSEmmanuel Vadot * Copyright (C) 2019 Phytec Messtechnik GmbH 4f126890aSEmmanuel Vadot * Author: Teresa Remmet <t.remmet@phytec.de> 5f126890aSEmmanuel Vadot * 6f126890aSEmmanuel Vadot */ 7f126890aSEmmanuel Vadot 8*b2d2a78aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 9*b2d2a78aSEmmanuel Vadot#include <dt-bindings/pinctrl/am33xx.h> 10*b2d2a78aSEmmanuel Vadot 11f126890aSEmmanuel Vadot/ { 12f126890aSEmmanuel Vadot model = "Phytec AM335x phyBOARD-REGOR"; 13f126890aSEmmanuel Vadot compatible = "phytec,am335x-regor", "phytec,am335x-phycore-som", "ti,am33xx"; 14f126890aSEmmanuel Vadot 15f126890aSEmmanuel Vadot vcc3v3: fixedregulator@1 { 16f126890aSEmmanuel Vadot compatible = "regulator-fixed"; 17f126890aSEmmanuel Vadot regulator-name = "vcc3v3"; 18f126890aSEmmanuel Vadot regulator-min-microvolt = <3300000>; 19f126890aSEmmanuel Vadot regulator-max-microvolt = <3300000>; 20f126890aSEmmanuel Vadot regulator-boot-on; 21f126890aSEmmanuel Vadot }; 22f126890aSEmmanuel Vadot 23f126890aSEmmanuel Vadot /* User IO */ 24f126890aSEmmanuel Vadot user_leds: user-leds { 25f126890aSEmmanuel Vadot compatible = "gpio-leds"; 26f126890aSEmmanuel Vadot pinctrl-names = "default"; 27f126890aSEmmanuel Vadot pinctrl-0 = <&user_leds_pins>; 28f126890aSEmmanuel Vadot 29f126890aSEmmanuel Vadot run_stop-led { 30f126890aSEmmanuel Vadot gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; 31f126890aSEmmanuel Vadot linux,default-trigger = "gpio"; 32f126890aSEmmanuel Vadot default-state = "off"; 33f126890aSEmmanuel Vadot }; 34f126890aSEmmanuel Vadot 35f126890aSEmmanuel Vadot error-led { 36f126890aSEmmanuel Vadot gpios = <&gpio3 15 GPIO_ACTIVE_HIGH>; 37f126890aSEmmanuel Vadot linux,default-trigger = "gpio"; 38f126890aSEmmanuel Vadot default-state = "off"; 39f126890aSEmmanuel Vadot }; 40f126890aSEmmanuel Vadot }; 41f126890aSEmmanuel Vadot}; 42f126890aSEmmanuel Vadot 43f126890aSEmmanuel Vadot/* User Leds */ 44f126890aSEmmanuel Vadot&am33xx_pinmux { 45f126890aSEmmanuel Vadot user_leds_pins: pinmux-user-leds-pins { 46f126890aSEmmanuel Vadot pinctrl-single,pins = < 47f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_LCD_VSYNC, PIN_OUTPUT_PULLDOWN, MUX_MODE7) /* lcd_hsync.gpio2_22 */ 48f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_MCASP0_FSX, PIN_OUTPUT_PULLDOWN, MUX_MODE7) /* mcasp0_fsx.gpio3_15 */ 49f126890aSEmmanuel Vadot >; 50f126890aSEmmanuel Vadot }; 51f126890aSEmmanuel Vadot}; 52f126890aSEmmanuel Vadot 53f126890aSEmmanuel Vadot/* CAN Busses */ 54f126890aSEmmanuel Vadot&am33xx_pinmux { 55f126890aSEmmanuel Vadot dcan1_pins: pinmux-dcan1-pins { 56f126890aSEmmanuel Vadot pinctrl-single,pins = < 57f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_UART0_CTSN, PIN_OUTPUT_PULLUP, MUX_MODE2) /* uart0_ctsn.d_can1_tx */ 58f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_UART0_RTSN, PIN_INPUT_PULLUP, MUX_MODE2) /* uart0_rtsn.d_can1_rx */ 59f126890aSEmmanuel Vadot >; 60f126890aSEmmanuel Vadot }; 61f126890aSEmmanuel Vadot}; 62f126890aSEmmanuel Vadot 63f126890aSEmmanuel Vadot&dcan1 { 64f126890aSEmmanuel Vadot pinctrl-names = "default"; 65f126890aSEmmanuel Vadot pinctrl-0 = <&dcan1_pins>; 66f126890aSEmmanuel Vadot status = "okay"; 67f126890aSEmmanuel Vadot}; 68f126890aSEmmanuel Vadot 69f126890aSEmmanuel Vadot/* Ethernet */ 70f126890aSEmmanuel Vadot&am33xx_pinmux { 71f126890aSEmmanuel Vadot ethernet1_pins: pinmux-ethernet1-pins { 72f126890aSEmmanuel Vadot pinctrl-single,pins = < 73f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_A0, PIN_OUTPUT, MUX_MODE1) /* gpmc_a0.mii2_txen */ 74f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_A1, PIN_INPUT_PULLDOWN, MUX_MODE1) /* gpmc_a1.mii2_rxdv */ 75f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_A2, PIN_OUTPUT, MUX_MODE1) /* gpmc_a2.mii2_txd3 */ 76f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_A3, PIN_OUTPUT, MUX_MODE1) /* gpmc_a3.mii2_txd2 */ 77f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_A4, PIN_OUTPUT, MUX_MODE1) /* gpmc_a4.mii2_txd1 */ 78f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_A5, PIN_OUTPUT, MUX_MODE1) /* gpmc_a5.mii2_txd0 */ 79f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_A6, PIN_INPUT_PULLDOWN, MUX_MODE1) /* gpmc_a6.mii2_txclk */ 80f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_A7, PIN_INPUT_PULLDOWN, MUX_MODE1) /* gpmc_a7.mii2_rxclk */ 81f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_A8, PIN_INPUT_PULLDOWN, MUX_MODE1) /* gpmc_a8.mii2_rxd3 */ 82f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_A9, PIN_INPUT_PULLDOWN, MUX_MODE1) /* gpmc_a9.mii2_rxd2 */ 83f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_A10, PIN_INPUT_PULLDOWN, MUX_MODE1) /* gpmc_a10.mii2_rxd1 */ 84f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_A11, PIN_INPUT_PULLDOWN, MUX_MODE1) /* gpmc_a11.mii2_rxd0 */ 85f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_WPN, PIN_INPUT_PULLDOWN, MUX_MODE1) /* gpmc_wpn.mii2_rxerr */ 86f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_BEN1, PIN_INPUT_PULLDOWN, MUX_MODE1) /* gpmc_ben1.mii2_col */ 87f126890aSEmmanuel Vadot >; 88f126890aSEmmanuel Vadot }; 89f126890aSEmmanuel Vadot}; 90f126890aSEmmanuel Vadot 91f126890aSEmmanuel Vadot&cpsw_port2 { 92f126890aSEmmanuel Vadot status = "okay"; 93f126890aSEmmanuel Vadot phy-handle = <&phy1>; 94f126890aSEmmanuel Vadot phy-mode = "mii"; 95f126890aSEmmanuel Vadot ti,dual-emac-pvid = <2>; 96f126890aSEmmanuel Vadot}; 97f126890aSEmmanuel Vadot 98f126890aSEmmanuel Vadot&davinci_mdio_sw { 99f126890aSEmmanuel Vadot phy1: ethernet-phy@1 { 100f126890aSEmmanuel Vadot reg = <1>; 101f126890aSEmmanuel Vadot }; 102f126890aSEmmanuel Vadot}; 103f126890aSEmmanuel Vadot 104f126890aSEmmanuel Vadot&mac_sw { 105f126890aSEmmanuel Vadot pinctrl-names = "default"; 106f126890aSEmmanuel Vadot pinctrl-0 = <ðernet0_pins ðernet1_pins>; 107f126890aSEmmanuel Vadot}; 108f126890aSEmmanuel Vadot 109f126890aSEmmanuel Vadot/* GPIOs */ 110f126890aSEmmanuel Vadot&am33xx_pinmux { 111f126890aSEmmanuel Vadot pinctrl-names = "default"; 112f126890aSEmmanuel Vadot pinctrl-0 = <&user_gpios_pins>; 113f126890aSEmmanuel Vadot 114f126890aSEmmanuel Vadot user_gpios_pins: pinmux-user-gpios-pins { 115f126890aSEmmanuel Vadot pinctrl-single,pins = < 116f126890aSEmmanuel Vadot /* DIGIN 1-4 */ 117f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_AD11, PIN_INPUT, MUX_MODE7) /* gpmc_ad11.gpio0_27 */ 118f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_AD10, PIN_INPUT, MUX_MODE7) /* gpmc_ad10.gpio0_26 */ 119f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_AD9, PIN_INPUT, MUX_MODE7) /* gpmc_ad9.gpio0_23 */ 120f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_AD8, PIN_INPUT, MUX_MODE7) /* gpmc_ad8.gpio0_22 */ 121f126890aSEmmanuel Vadot /* DIGOUT 1-4 */ 122f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_AD15, PIN_OUTPUT, MUX_MODE7) /* gpmc_ad15.gpio1_15 */ 123f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_AD14, PIN_OUTPUT, MUX_MODE7) /* gpmc_ad14.gpio1_14 */ 124f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_AD13, PIN_OUTPUT, MUX_MODE7) /* gpmc_ad13.gpio1_13 */ 125f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_GPMC_AD12, PIN_OUTPUT, MUX_MODE7) /* gpmc_ad12.gpio1_12 */ 126f126890aSEmmanuel Vadot >; 127f126890aSEmmanuel Vadot }; 128f126890aSEmmanuel Vadot}; 129f126890aSEmmanuel Vadot 130f126890aSEmmanuel Vadot/* MMC */ 131f126890aSEmmanuel Vadot&am33xx_pinmux { 132f126890aSEmmanuel Vadot mmc1_pins: pinmux-mmc1-pins { 133f126890aSEmmanuel Vadot pinctrl-single,pins = < 134f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_MMC0_DAT3, PIN_INPUT_PULLUP, MUX_MODE0) 135f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_MMC0_DAT2, PIN_INPUT_PULLUP, MUX_MODE0) 136f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_MMC0_DAT1, PIN_INPUT_PULLUP, MUX_MODE0) 137f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_MMC0_DAT0, PIN_INPUT_PULLUP, MUX_MODE0) 138f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_MMC0_CLK, PIN_INPUT_PULLUP, MUX_MODE0) 139f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_MMC0_CMD, PIN_INPUT_PULLUP, MUX_MODE0) 140f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_SPI0_CS1, PIN_INPUT_PULLUP, MUX_MODE7) /* spi0_cs1.mmc0_sdcd */ 141f126890aSEmmanuel Vadot >; 142f126890aSEmmanuel Vadot }; 143f126890aSEmmanuel Vadot}; 144f126890aSEmmanuel Vadot 145f126890aSEmmanuel Vadot&mmc1 { 146f126890aSEmmanuel Vadot vmmc-supply = <&vcc3v3>; 147f126890aSEmmanuel Vadot bus-width = <4>; 148f126890aSEmmanuel Vadot pinctrl-names = "default"; 149f126890aSEmmanuel Vadot pinctrl-0 = <&mmc1_pins>; 150f126890aSEmmanuel Vadot cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>; 151f126890aSEmmanuel Vadot status = "okay"; 152f126890aSEmmanuel Vadot}; 153f126890aSEmmanuel Vadot 154f126890aSEmmanuel Vadot/* RTC */ 155f126890aSEmmanuel Vadot&i2c_rtc { 156f126890aSEmmanuel Vadot status = "okay"; 157f126890aSEmmanuel Vadot}; 158f126890aSEmmanuel Vadot 159f126890aSEmmanuel Vadot/* UARTs */ 160f126890aSEmmanuel Vadot&am33xx_pinmux { 161f126890aSEmmanuel Vadot uart0_pins: pinmux-uart0-pins { 162f126890aSEmmanuel Vadot pinctrl-single,pins = < 163f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_UART0_RXD, PIN_INPUT_PULLUP, MUX_MODE0) 164f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_UART0_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0) 165f126890aSEmmanuel Vadot >; 166f126890aSEmmanuel Vadot }; 167f126890aSEmmanuel Vadot 168f126890aSEmmanuel Vadot uart2_pins: pinmux-uart2-pins { 169f126890aSEmmanuel Vadot pinctrl-single,pins = < 170f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_MII1_TX_CLK, PIN_INPUT_PULLUP, MUX_MODE1) /* mii1_tx_clk.uart2_rxd */ 171f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_MII1_RX_CLK, PIN_OUTPUT_PULLDOWN, MUX_MODE1) /* mii1_rx_clk.uart2_txd */ 172f126890aSEmmanuel Vadot >; 173f126890aSEmmanuel Vadot }; 174f126890aSEmmanuel Vadot}; 175f126890aSEmmanuel Vadot 176f126890aSEmmanuel Vadot&uart0 { 177f126890aSEmmanuel Vadot pinctrl-names = "default"; 178f126890aSEmmanuel Vadot pinctrl-0 = <&uart0_pins>; 179f126890aSEmmanuel Vadot status = "okay"; 180f126890aSEmmanuel Vadot}; 181f126890aSEmmanuel Vadot 182f126890aSEmmanuel Vadot&uart2 { 183f126890aSEmmanuel Vadot pinctrl-names = "default"; 184f126890aSEmmanuel Vadot pinctrl-0 = <&uart2_pins>; 185f126890aSEmmanuel Vadot status = "okay"; 186f126890aSEmmanuel Vadot}; 187f126890aSEmmanuel Vadot 188f126890aSEmmanuel Vadot/* RS485 - UART1 */ 189f126890aSEmmanuel Vadot&am33xx_pinmux { 190f126890aSEmmanuel Vadot uart1_rs485_pins: pinmux-uart1-rs485-pins { 191f126890aSEmmanuel Vadot pinctrl-single,pins = < 192f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_UART1_RXD, PIN_INPUT_PULLUP, MUX_MODE0) 193f126890aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_UART1_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0) 194*b2d2a78aSEmmanuel Vadot AM33XX_PADCONF(AM335X_PIN_UART1_RTSN, PIN_OUTPUT_PULLDOWN, MUX_MODE0) 195f126890aSEmmanuel Vadot >; 196f126890aSEmmanuel Vadot }; 197f126890aSEmmanuel Vadot}; 198f126890aSEmmanuel Vadot 199f126890aSEmmanuel Vadot&uart1 { 200f126890aSEmmanuel Vadot pinctrl-names = "default"; 201f126890aSEmmanuel Vadot pinctrl-0 = <&uart1_rs485_pins>; 202f126890aSEmmanuel Vadot status = "okay"; 203f126890aSEmmanuel Vadot linux,rs485-enabled-at-boot-time; 204*b2d2a78aSEmmanuel Vadot /* 205*b2d2a78aSEmmanuel Vadot * un-intuitively, yet with the default (active-high), 206*b2d2a78aSEmmanuel Vadot * am335x RTS is high on idle and gets low on active ! 207*b2d2a78aSEmmanuel Vadot */ 208*b2d2a78aSEmmanuel Vadot rs485-rts-active-low; 209f126890aSEmmanuel Vadot}; 210