Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/arm/boot/dts/ti/omap/am335x-mba335x.dts
38325 views
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2021-2025 TQ-Systems GmbH <[email protected]>, D-82229 Seefeld, Germany.
 * Authors: Gregor Herburger, Matthias Schiffer
 *
 * Based on:
 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
 */
/dts-v1/;

#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include "am335x-tqma335x.dtsi"

/ {
	model = "TQ-Systems TQMa335x[L] SoM on MBa335x carrier board";
	compatible = "tq,tqma3359-mba335x", "tq,tqma3359", "ti,am33xx";
	chassis-type = "embedded";

	chosen {
		stdout-path = &uart4;
	};

	backlight: backlight {
		compatible = "pwm-backlight";
		brightness-levels = <0 58 61 66 75 90 125 170 255>;
		default-brightness-level = <7>;
		enable-gpios = <&expander1 4 GPIO_ACTIVE_HIGH>;
		power-supply = <&reg_mba335x_12v>;
		status = "disabled";
	};

	gpio-keys {
		compatible = "gpio-keys";

		button-s5 {
			label = "S5";
			linux,code = <BTN_0>;
			gpios = <&expander2 0 GPIO_ACTIVE_LOW>;
		};

		button-s6 {
			label = "S6";
			linux,code = <BTN_1>;
			gpios = <&expander2 1 GPIO_ACTIVE_LOW>;
		};

		button-s7 {
			label = "S7";
			linux,code = <BTN_2>;
			gpios = <&expander2 2 GPIO_ACTIVE_LOW>;
		};
	};

	reg_mba335x_12v: regulator-12v {
		compatible = "regulator-fixed";
		regulator-name = "MBa335x-V12";
		regulator-min-microvolt = <12000000>;
		regulator-max-microvolt = <12000000>;
		regulator-always-on;
	};

	vcc3v3: regulator-vcc3v3 {
		compatible = "regulator-fixed";
		regulator-name = "VCC3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "tqm-tlv320aic32";
		simple-audio-card,widgets =
			"Headphone", "Headphone Jack",
			"Line", "Line In",
			"Line", "Line Out",
			"Microphone", "Mic Jack";
		simple-audio-card,routing =
			"Headphone Jack",	"HPL",
			"Headphone Jack",	"HPR",
			"Line Out",		"LOL",
			"Line Out",		"LOR",
			"IN3_L",		"Mic Jack",
			"Mic Jack",		"Mic Bias",
			"Line In",		"IN1_L",
			"Line In",		"IN1_R";
		simple-audio-card,format = "i2s";
		simple-audio-card,bitclock-master = <&sound_master>;
		simple-audio-card,frame-master = <&sound_master>;

		simple-audio-card,cpu {
			sound-dai = <&mcasp0>;
			#sound-dai-cells = <0>;
			system-clock-direction-out;
		};

		sound_master: simple-audio-card,codec {
			sound-dai = <&tlv320aic32x4>;
			system-clock-frequency = <24000000>;
			system-clock-direction-out;
		};
	};
};

&am33xx_pinmux {
	codec_pins: codec-pins {
		pinctrl-single,pins = <
			/* xdma_event_intr0.clkout1 */
			AM33XX_PADCONF(AM335X_PIN_XDMA_EVENT_INTR0, PIN_OUTPUT, MUX_MODE3)
		>;
	};

	cpsw_default_pins: cpsw-default-pins {
		pinctrl-single,pins = <
			/* Port 1 */
			/* mii1_tx_en.rgmii1_tctl */
			AM33XX_PADCONF(AM335X_PIN_MII1_TX_EN, PIN_OUTPUT_PULLDOWN, MUX_MODE2)
			/* mii1_rx_dv.rgmii1_rctl */
			AM33XX_PADCONF(AM335X_PIN_MII1_RX_DV, PIN_INPUT_PULLDOWN, MUX_MODE2)
			/* mii1_txd3.rgmii1_td3 */
			AM33XX_PADCONF(AM335X_PIN_MII1_TXD3, PIN_OUTPUT_PULLDOWN, MUX_MODE2)
			/* mii1_txd2.rgmii1_td2 */
			AM33XX_PADCONF(AM335X_PIN_MII1_TXD2, PIN_OUTPUT_PULLDOWN, MUX_MODE2)
			/* mii1_txd1.rgmii1_td1 */
			AM33XX_PADCONF(AM335X_PIN_MII1_TXD1, PIN_OUTPUT_PULLDOWN, MUX_MODE2)
			/* mii1_txd0.rgmii1_td0 */
			AM33XX_PADCONF(AM335X_PIN_MII1_TXD0, PIN_OUTPUT_PULLDOWN, MUX_MODE2)
			/* mii1_tx_clk.rgmii1_tclk */
			AM33XX_PADCONF(AM335X_PIN_MII1_TX_CLK, PIN_OUTPUT_PULLDOWN, MUX_MODE2)
			/* mii1_rx_clk.rgmii1_rclk */
			AM33XX_PADCONF(AM335X_PIN_MII1_RX_CLK, PIN_INPUT_PULLDOWN, MUX_MODE2)
			/* mii1_rxd3.rgmii1_rd3 */
			AM33XX_PADCONF(AM335X_PIN_MII1_RXD3, PIN_INPUT_PULLDOWN, MUX_MODE2)
			/* mii1_rxd2.rgmii1_rd2 */
			AM33XX_PADCONF(AM335X_PIN_MII1_RXD2, PIN_INPUT_PULLDOWN, MUX_MODE2)
			/* mii1_rxd1.rgmii1_rd1 */
			AM33XX_PADCONF(AM335X_PIN_MII1_RXD1, PIN_INPUT_PULLDOWN, MUX_MODE2)
			/* mii1_rxd0.rgmii1_rd0 */
			AM33XX_PADCONF(AM335X_PIN_MII1_RXD0, PIN_INPUT_PULLDOWN, MUX_MODE2)

			/* Port 2 */
			/* gpmc_a0.rgmii2_tctl */
			AM33XX_PADCONF(AM335X_PIN_GPMC_A0, PIN_OUTPUT_PULLDOWN, MUX_MODE2)
			/* gpmc_a1.rgmii2_rctl */
			AM33XX_PADCONF(AM335X_PIN_GPMC_A1, PIN_INPUT_PULLDOWN, MUX_MODE2)
			/* gpmc_a2.rgmii2_td3 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_A2, PIN_OUTPUT_PULLDOWN, MUX_MODE2)
			/* gpmc_a3.rgmii2_td2 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_A3, PIN_OUTPUT_PULLDOWN, MUX_MODE2)
			/* gpmc_a4.rgmii2_td1 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_A4, PIN_OUTPUT_PULLDOWN, MUX_MODE2)
			/* gpmc_a5.rgmii2_td0 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_A5, PIN_OUTPUT_PULLDOWN, MUX_MODE2)
			/* gpmc_a6.rgmii2_tclk */
			AM33XX_PADCONF(AM335X_PIN_GPMC_A6, PIN_OUTPUT_PULLDOWN, MUX_MODE2)
			/* gpmc_a7.rgmii2_rclk */
			AM33XX_PADCONF(AM335X_PIN_GPMC_A7, PIN_INPUT_PULLDOWN, MUX_MODE2)
			/* gpmc_a8.rgmii2_rd3 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_A8, PIN_INPUT_PULLDOWN, MUX_MODE2)
			/* gpmc_a9.rgmii2_rd2 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_A9, PIN_INPUT_PULLDOWN, MUX_MODE2)
			/* gpmc_a10.rgmii2_rd1 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_A10, PIN_INPUT_PULLDOWN, MUX_MODE2)
			/* gpmc_a11.rgmii2_rd0 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_A11, PIN_INPUT_PULLDOWN, MUX_MODE2)
		>;
	};

	cpsw_sleep_pins: cpsw-sleep-pins {
		pinctrl-single,pins = <
			/* Port 1 */
			AM33XX_PADCONF(AM335X_PIN_MII1_TX_EN, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_MII1_RX_DV, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_MII1_TXD3, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_MII1_TXD2, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_MII1_TXD1, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_MII1_TXD0, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_MII1_TX_CLK, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_MII1_RX_CLK, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_MII1_RXD3, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_MII1_RXD2, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_MII1_RXD1, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_MII1_RXD0, PIN_INPUT_PULLDOWN, MUX_MODE7)

			/* Port 2 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_A0, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_GPMC_A1, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_GPMC_A2, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_GPMC_A3, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_GPMC_A4, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_GPMC_A5, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_GPMC_A6, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_GPMC_A7, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_GPMC_A8, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_GPMC_A9, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_GPMC_A10, PIN_INPUT_PULLDOWN, MUX_MODE7)
			AM33XX_PADCONF(AM335X_PIN_GPMC_A11, PIN_INPUT_PULLDOWN, MUX_MODE7)
		>;
	};

	davinci_mdio_default_pins: davinci_mdio-default-pins {
		pinctrl-single,pins = <
			/* mdio.mdio_data */
			AM33XX_PADCONF(AM335X_PIN_MDIO, PIN_INPUT_PULLUP | SLEWCTRL_FAST, MUX_MODE0)
			/* mdc.mdio_clk */
			AM33XX_PADCONF(AM335X_PIN_MDC, PIN_OUTPUT_PULLUP, MUX_MODE0)
		>;
	};

	davinci_mdio_sleep_pins: davinci_mdio-sleep-pins {
		pinctrl-single,pins = <
			/* mdio.mdio_data */
			AM33XX_PADCONF(AM335X_PIN_MDIO, PIN_INPUT_PULLUP, MUX_MODE7)
			/* mdc.mdio_clk */
			AM33XX_PADCONF(AM335X_PIN_MDC, PIN_INPUT_PULLUP, MUX_MODE7)
		>;
	};

	davinci_mdio_phy0_pins: davinci_mdio-phy0-pins {
		pinctrl-single,pins = <
			/* usb0_drvvbus.gpio0_18 - PHY interrupt */
			AM33XX_PADCONF(AM335X_PIN_USB0_DRVVBUS, PIN_INPUT, MUX_MODE7)
		>;
	};

	davinci_mdio_phy1_pins: davinci_mdio-phy1-pins {
		pinctrl-single,pins = <
			/* gpmc_csn0.gpio1_29 - PHY interrupt */
			AM33XX_PADCONF(AM335X_PIN_GPMC_CSN0, PIN_INPUT, MUX_MODE7)
		>;
	};

	dcan0_pins: dcan0-pins {
		pinctrl-single,pins = <
			/* uart1_ctsn.d_can0_tx */
			AM33XX_PADCONF(AM335X_PIN_UART1_CTSN, PIN_OUTPUT_PULLDOWN, MUX_MODE2)
			/* uart1_rtsn.d_can0_rx */
			AM33XX_PADCONF(AM335X_PIN_UART1_RTSN, PIN_INPUT_PULLUP, MUX_MODE2)
		>;
	};

	dcan1_pins: dcan1-pins {
		pinctrl-single,pins = <
			/* uart0_ctsn.d_can1_tx */
			AM33XX_PADCONF(AM335X_PIN_UART0_CTSN, PIN_OUTPUT_PULLDOWN, MUX_MODE2)
			/* uart0_rtsn.d_can1_rx */
			AM33XX_PADCONF(AM335X_PIN_UART0_RTSN, PIN_INPUT_PULLUP, MUX_MODE2)
		>;
	};

	ecap2_pins: ecap2-pins {
		pinctrl-single,pins = <
			/* mcasp0_ahclkr.ecap2_in_pwm2_out */
			AM33XX_PADCONF(AM335X_PIN_MCASP0_AHCLKR, PIN_OUTPUT, MUX_MODE4)
		>;
	};

	expander1_pins: expander1-pins {
		pinctrl-single,pins = <
			/* gpmc_csn3.gpio2_0 - interrupt */
			AM33XX_PADCONF(AM335X_PIN_GPMC_CSN3, PIN_INPUT_PULLUP, MUX_MODE7 )
		>;
	};

	expander2_pins: expander2-pins {
		pinctrl-single,pins = <
			/* gpmc_ben1.gpio1_28 - interrupt */
			AM33XX_PADCONF(AM335X_PIN_GPMC_BEN1, PIN_INPUT_PULLUP, MUX_MODE7)
		>;
	};

	i2c1_pins: i2c1-pins {
		pinctrl-single,pins = <
			/* uart1_rxd.i2c1_sda */
			AM33XX_PADCONF(AM335X_PIN_UART1_RXD, PIN_INPUT_PULLUP, MUX_MODE3)
			/* uart1_txd.i2c1_scl */
			AM33XX_PADCONF(AM335X_PIN_UART1_TXD, PIN_INPUT_PULLUP, MUX_MODE3)
		>;
	};

	lcd_pins: lcd-pins {
		pinctrl-single,pins = <
			/* gpmc_ad8.lcd_data23 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD8, PIN_OUTPUT, MUX_MODE1)
			/* gpmc_ad9.lcd_data22 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD9, PIN_OUTPUT, MUX_MODE1)
			/* gpmc_ad10.lcd_data21 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD10, PIN_OUTPUT, MUX_MODE1)
			/* gpmc_ad11.lcd_data20 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD11, PIN_OUTPUT, MUX_MODE1)
			/* gpmc_ad12.lcd_data19 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD12, PIN_OUTPUT, MUX_MODE1)
			/* gpmc_ad13.lcd_data18 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD13, PIN_OUTPUT, MUX_MODE1)
			/* gpmc_ad14.lcd_data17 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD14, PIN_OUTPUT, MUX_MODE1)
			/* gpmc_ad15.lcd_data16 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD15, PIN_OUTPUT, MUX_MODE1)
			/* lcd_data0.lcd_data0 */
			AM33XX_PADCONF(AM335X_PIN_LCD_DATA0, PIN_OUTPUT, MUX_MODE0)
			/* lcd_data1.lcd_data1 */
			AM33XX_PADCONF(AM335X_PIN_LCD_DATA1, PIN_OUTPUT, MUX_MODE0)
			/* lcd_data2.lcd_data2 */
			AM33XX_PADCONF(AM335X_PIN_LCD_DATA2, PIN_OUTPUT, MUX_MODE0)
			/* lcd_data3.lcd_data3 */
			AM33XX_PADCONF(AM335X_PIN_LCD_DATA3, PIN_OUTPUT, MUX_MODE0)
			/* lcd_data4.lcd_data4 */
			AM33XX_PADCONF(AM335X_PIN_LCD_DATA4, PIN_OUTPUT, MUX_MODE0)
			/* lcd_data5.lcd_data5 */
			AM33XX_PADCONF(AM335X_PIN_LCD_DATA5, PIN_OUTPUT, MUX_MODE0)
			/* lcd_data6.lcd_data6 */
			AM33XX_PADCONF(AM335X_PIN_LCD_DATA6, PIN_OUTPUT, MUX_MODE0)
			/* lcd_data7.lcd_data7 */
			AM33XX_PADCONF(AM335X_PIN_LCD_DATA7, PIN_OUTPUT, MUX_MODE0)
			/* lcd_data8.lcd_data8 */
			AM33XX_PADCONF(AM335X_PIN_LCD_DATA8, PIN_OUTPUT, MUX_MODE0)
			/* lcd_data9.lcd_data9 */
			AM33XX_PADCONF(AM335X_PIN_LCD_DATA9, PIN_OUTPUT, MUX_MODE0)
			/* lcd_data10.lcd_data10 */
			AM33XX_PADCONF(AM335X_PIN_LCD_DATA10, PIN_OUTPUT, MUX_MODE0)
			/* lcd_data11.lcd_data11 */
			AM33XX_PADCONF(AM335X_PIN_LCD_DATA11, PIN_OUTPUT, MUX_MODE0)
			/* lcd_data12.lcd_data12 */
			AM33XX_PADCONF(AM335X_PIN_LCD_DATA12, PIN_OUTPUT, MUX_MODE0)
			/* lcd_data13.lcd_data13 */
			AM33XX_PADCONF(AM335X_PIN_LCD_DATA13, PIN_OUTPUT, MUX_MODE0)
			/* lcd_data14.lcd_data14 */
			AM33XX_PADCONF(AM335X_PIN_LCD_DATA14, PIN_OUTPUT, MUX_MODE0)
			/* lcd_data15.lcd_data15 */
			AM33XX_PADCONF(AM335X_PIN_LCD_DATA15, PIN_OUTPUT, MUX_MODE0)
			/* lcd_vsync.lcd_vsync */
			AM33XX_PADCONF(AM335X_PIN_LCD_VSYNC, PIN_OUTPUT, MUX_MODE0)
			/* lcd_hsync.lcd_hsync */
			AM33XX_PADCONF(AM335X_PIN_LCD_HSYNC, PIN_OUTPUT, MUX_MODE0)
			/* lcd_pclk.lcd_pclk */
			AM33XX_PADCONF(AM335X_PIN_LCD_PCLK, PIN_OUTPUT, MUX_MODE0)
			/* lcd_ac_bias_en.lcd_ac_bias_en */
			AM33XX_PADCONF(AM335X_PIN_LCD_AC_BIAS_EN, PIN_OUTPUT, MUX_MODE0)
		>;
	};

	mcasp0_pins: mcasp0-pins {
		pinctrl-single,pins = <
			/* mcasp0_fsx.mcasp0_fsx */
			AM33XX_PADCONF(AM335X_PIN_MCASP0_FSX, PIN_INPUT_PULLDOWN, MUX_MODE0)
			/* mcasp0_aclkx.mcasp0_aclkx*/
			AM33XX_PADCONF(AM335X_PIN_MCASP0_ACLKX, PIN_INPUT_PULLDOWN, MUX_MODE0)
			/* mcasp0_axr0.mcasp0_axr0 */
			AM33XX_PADCONF(AM335X_PIN_MCASP0_AXR0, PIN_INPUT_PULLDOWN, MUX_MODE0)
			/* mcasp0_axr1.mcasp0_axr1 */
			AM33XX_PADCONF(AM335X_PIN_MCASP0_AXR1, PIN_INPUT_PULLDOWN, MUX_MODE0)
			/* mcasp0_aclkr.mcasp0_aclkr */
			AM33XX_PADCONF(AM335X_PIN_MCASP0_ACLKR, PIN_INPUT_PULLDOWN, MUX_MODE0)
			/* mcasp0_fsr.mcasp0_fsr */
			AM33XX_PADCONF(AM335X_PIN_MCASP0_FSR, PIN_INPUT_PULLDOWN, MUX_MODE0)
		>;
	};

	mmc1_pins: mmc1-pins {
		pinctrl-single,pins = <
			/* mmc0_dat3.mmc0_dat3 */
			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT3, PIN_INPUT_PULLUP, MUX_MODE0)
			/* mmc0_dat2.mmc0_dat2 */
			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT2, PIN_INPUT_PULLUP, MUX_MODE0)
			/* mmc0_dat1.mmc0_dat1 */
			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT1, PIN_INPUT_PULLUP, MUX_MODE0)
			/* mmc0_dat0.mmc0_dat0 */
			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT0, PIN_INPUT_PULLUP, MUX_MODE0)
			/* mmc0_clk.mmc0_clk */
			AM33XX_PADCONF(AM335X_PIN_MMC0_CLK, PIN_INPUT_PULLUP, MUX_MODE0)
			/* mmc0_cmd.mmc0_cmd */
			AM33XX_PADCONF(AM335X_PIN_MMC0_CMD, PIN_INPUT_PULLUP, MUX_MODE0)
		>;
	};

	polytouch_pins: polytouch-pins {
		pinctrl-single,pins = <
			/* gpmc_clk.gpio2_1 - touch interrupt */
			AM33XX_PADCONF(AM335X_PIN_GPMC_CLK, PIN_INPUT_PULLUP, MUX_MODE7)
		>;
	};

	uart0_pins: uart0-pins {
		pinctrl-single,pins = <
			/* uart0_rxd.uart0_rxd */
			AM33XX_PADCONF(AM335X_PIN_UART0_RXD, PIN_INPUT_PULLUP, MUX_MODE0)
			/* uart0_txd.uart0_txd */
			AM33XX_PADCONF(AM335X_PIN_UART0_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
		>;
	};

	uart3_pins: uart3-pins {
		pinctrl-single,pins = <
			/* spi0_cs1.uart3_rxd */
			AM33XX_PADCONF(AM335X_PIN_SPI0_CS1, PIN_INPUT_PULLUP, MUX_MODE1)
			/* ecap0_in_pwm0_out.uart3_txd */
			AM33XX_PADCONF(AM335X_PIN_ECAP0_IN_PWM0_OUT, PIN_OUTPUT_PULLDOWN, MUX_MODE1)
		>;
	};

	uart4_pins: uart4-pins {
		pinctrl-single,pins = <
			/* gpmc_wait0.uart4_rxd */
			AM33XX_PADCONF(AM335X_PIN_GPMC_WAIT0, PIN_INPUT_PULLUP, MUX_MODE6)
			/* gpmc_wpn.uart4_txd */
			AM33XX_PADCONF(AM335X_PIN_GPMC_WPN, PIN_OUTPUT_PULLDOWN, MUX_MODE6)
		>;
	};
};

&cpsw_port1 {
	phy-handle = <&ethphy0>;
	phy-mode = "rgmii-id";
	ti,dual-emac-pvid = <1>;
};

&cpsw_port2 {
	phy-handle = <&ethphy1>;
	phy-mode = "rgmii-id";
	ti,dual-emac-pvid = <2>;
};

&davinci_mdio_sw {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&davinci_mdio_default_pins>;
	pinctrl-1 = <&davinci_mdio_sleep_pins>;
	status = "okay";

	ethphy0: ethernet-phy@0 {
		compatible = "ethernet-phy-ieee802.3-c22";
		reg = <0>;
		pinctrl-names = "default";
		pinctrl-0 = <&davinci_mdio_phy0_pins>;
		interrupt-parent = <&gpio0>;
		interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
		rxc-skew-ps = <1860>;
		rxd0-skew-ps = <0>;
		rxd1-skew-ps = <0>;
		rxd2-skew-ps = <0>;
		rxd3-skew-ps = <0>;
		rxdv-skew-ps = <0>;
		txc-skew-ps = <1860>;
		txd0-skew-ps = <0>;
		txd1-skew-ps = <0>;
		txd2-skew-ps = <0>;
		txd3-skew-ps = <0>;
		txen-skew-ps = <0>;
	};

	ethphy1: ethernet-phy@1 {
		compatible = "ethernet-phy-ieee802.3-c22";
		reg = <1>;
		pinctrl-names = "default";
		pinctrl-0 = <&davinci_mdio_phy1_pins>;
		interrupt-parent = <&gpio1>;
		interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
		rxc-skew-ps = <1860>;
		rxd0-skew-ps = <0>;
		rxd1-skew-ps = <0>;
		rxd2-skew-ps = <0>;
		rxd3-skew-ps = <0>;
		rxdv-skew-ps = <0>;
		txc-skew-ps = <1860>;
		txd0-skew-ps = <0>;
		txd1-skew-ps = <0>;
		txd2-skew-ps = <0>;
		txd3-skew-ps = <0>;
		txen-skew-ps = <0>;
	};
};

&dcan0 {
	pinctrl-names = "default";
	pinctrl-0 = <&dcan0_pins>;
	status = "okay";
};

&dcan1 {
	pinctrl-names = "default";
	pinctrl-0 = <&dcan1_pins>;
	status = "okay";
};

&ds1339 {
	interrupt-parent = <&expander2>;
	interrupts = <3 IRQ_TYPE_EDGE_RISING>;
};

&ecap2 {
	pinctrl-names = "default";
	pinctrl-0 = <&ecap2_pins>;
};

&i2c0 {
	tlv320aic32x4: audio-codec@18 {
		compatible = "ti,tlv320aic32x4";
		reg = <0x18>;
		pinctrl-names = "default";
		pinctrl-0 = <&codec_pins>;
		clocks = <&clk_24mhz>;
		clock-names = "mclk";
		iov-supply = <&vcc3v3>;
		ldoin-supply = <&vcc3v3>;
		#sound-dai-cells = <0>;
	};

	jc42_2: temperature-sensor@19 {
		compatible = "nxp,se97b", "jedec,jc-42.4-temp";
		reg = <0x19>;
	};

	expander1: gpio@20 {
		compatible = "nxp,pca9554";
		reg = <0x20>;
		pinctrl-names = "default";
		pinctrl-0 = <&expander1_pins>;
		vcc-supply = <&vcc3v3>;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-controller;
		#interrupt-cells = <2>;
		interrupt-parent = <&gpio2>;
		interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
	};

	expander2: gpio@21 {
		compatible = "nxp,pca9554";
		reg = <0x21>;
		pinctrl-names = "default";
		pinctrl-0 = <&expander2_pins>;
		vcc-supply = <&vcc3v3>;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-controller;
		#interrupt-cells = <2>;
		interrupt-parent = <&gpio1>;
		interrupts = <28 IRQ_TYPE_EDGE_FALLING>;
	};

	eeprom3: eeprom@51 {
		compatible = "nxp,se97b", "atmel,24c02";
		reg = <0x51>;
		pagesize = <16>;
		vcc-supply = <&vcc3v3>;
	};
};

&i2c1 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c1_pins>;
	clock-frequency = <100000>;
	status = "okay";
};

&lcdc {
	pinctrl-names = "default";
	pinctrl-0 = <&lcd_pins>;
	blue-and-red-wiring = "crossed";
};

&mac_sw {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&cpsw_default_pins>;
	pinctrl-1 = <&cpsw_sleep_pins>;
	status = "okay";
};

&mcasp0 {
	pinctrl-names = "default";
	pinctrl-0 = <&mcasp0_pins>;
	#sound-dai-cells = <0>;
	op-mode = <0>;
	tdm-slots = <2>;
	/* 16 serializer */
	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
		2 1 0 0
		0 0 0 0
		0 0 0 0
		0 0 0 0
	>;
	tx-num-evt = <32>;
	rx-num-evt = <32>;
	status = "okay";
};

&mmc1 {
	pinctrl-names = "default";
	pinctrl-0 = <&mmc1_pins>;
	vmmc-supply = <&vcc3v3>;
	bus-width = <4>;
	no-1-8-v;
	no-mmc;
	no-sdio;
	status = "okay";
};

&tps {
	interrupt-parent = <&expander2>;
	interrupts = <4 IRQ_TYPE_EDGE_RISING>;
};

&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_pins>;
	status = "okay";
};

&uart3 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart3_pins>;
	status = "okay";
};

&uart4 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart4_pins>;
	status = "okay";
};

&usb0 {
	dr_mode = "host";
};

&usb1 {
	/* Should be "otg", but role switching currently doesn't work */
	dr_mode = "peripheral";
};

/* SOM supply */
&vcc3v3in {
	vin-supply = <&vcc3v3>;
};