This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM4378: wake up from standby via GPIO issue

Part Number: AM4378

Tool/software: Linux

Hi,

We have a custom motherboard using an AM4378 processor and TI processor-sdk-linux-02.00.02.  We are able to wake up from standby by sending anything over the UART, but not over GPIO. I've attached our dts and config files (had to add txt extension to upload). Electrically, we have a momentary push button connected to pin H20 that sends it positive pulses.

I use screen to view kernel messages over the TTL UART connection to the processor.

Upon entering the command 'echo standby > /sys/power/state', nothing happens when 3.3V pulses are issued to the GPIO H20 pin.

We also have the following file installed: /usr/lib/firmware/am335x-pm-firmware.elf

I have attempted the following, but to not have write access to create the standby_gpio_pad_conf under /debugfs/omap_mux/board

mkdir -p /debugfs
mount -t debugfs debugfs /debugfs
cd /debugfs/omap_mux/board/
echo uart0_rxd.gpio1_10=0x27,rising > standby_gpio_pad_conf
echo standby > /sys/power/state

Thanks for your help. Please let me know if you require any other information.

Kind Regards,

Sam

CONFIG_IIO=y
CONFIG_TI_AM335X_ADC=y
CONFIG_TI_AM437X_ADC=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=16
CONFIG_CGROUPS=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y
CONFIG_KALLSYMS_ALL=y
CONFIG_SLAB=y
CONFIG_PROFILING=y
CONFIG_OPROFILE=y
CONFIG_KPROBES=y
CONFIG_JUMP_LABEL=y
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_PARTITION_ADVANCED=y
CONFIG_GPIO_PCA953X=y
CONFIG_OMAP_RESET_CLOCKS=y
CONFIG_OMAP_MUX_DEBUG=y
CONFIG_SOC_AM43XX=y
CONFIG_SOC_HAS_OMAP2_SDRC=y
CONFIG_ARM_THUMBEE=y
CONFIG_SWP_EMULATE=y
CONFIG_PL310_ERRATA_588369=y
CONFIG_ARM_ERRATA_720789=y
CONFIG_PL310_ERRATA_727915=y
CONFIG_ARM_ERRATA_754322=y
CONFIG_ARM_ERRATA_775420=y
CONFIG_PCI=y
CONFIG_PCI_DRA7XX=y
CONFIG_HAVE_ARM_ARCH_TIMER=y
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_CMA=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ATAG_DTB_COMPAT=y
CONFIG_CMDLINE="root=/dev/mmcblk0p2 rootwait console=ttyO2,115200"
CONFIG_KEXEC=y
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_STAT_DETAILS=y
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=m
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
CONFIG_GENERIC_CPUFREQ_CPU0=y
# CONFIG_ARM_OMAP2PLUS_CPUFREQ is not set
CONFIG_CPU_IDLE=y
CONFIG_BINFMT_MISC=y
CONFIG_PM_DEBUG=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_XFRM_USER=y
CONFIG_NET_KEY=y
CONFIG_NET_KEY_MIGRATE=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
# CONFIG_INET_LRO is not set
# CONFIG_IPV6 is not set
CONFIG_NETFILTER=y
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_FILTER=m
CONFIG_NF_NAT_IPV4=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_BRIDGE=m
CONFIG_RFKILL=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_DMA_CMA=y
CONFIG_CMA_SIZE_MBYTES=24
CONFIG_OMAP_OCP2SCP=y
CONFIG_OMAP_INTERCONNECT=y
CONFIG_CONNECTOR=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=16384
CONFIG_TI_ST=y
CONFIG_ST_HCI=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=m
CONFIG_CHR_DEV_OSST=m
CONFIG_BLK_DEV_SR=y
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_SCH=m
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y
CONFIG_SCSI_SCAN_ASYNC=y
CONFIG_NETDEVICES=y
CONFIG_TIGON3=m
CONFIG_E1000=m
CONFIG_E1000E=m
CONFIG_SKGE=m
CONFIG_KS8851=y
CONFIG_KS8851_MLL=y
CONFIG_SMC91X=y
CONFIG_SMSC911X=y
CONFIG_AT803X_PHY=y
CONFIG_SMSC_PHY=y
CONFIG_DP83848_PHY=y
CONFIG_USB_RTL8152=y
CONFIG_USB_USBNET=y
CONFIG_USB_NET_SMSC95XX=y
CONFIG_USB_ALI_M5632=y
CONFIG_USB_AN2720=y
CONFIG_USB_EPSON2888=y
CONFIG_USB_KC2190=y
CONFIG_USB_MOREPORK_FOLEY=m
CONFIG_INPUT_POLLDEV=m
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_JOYDEV=y
CONFIG_INPUT_EVDEV=y
CONFIG_KEYBOARD_GPIO=y
CONFIG_KEYBOARD_MATRIX=m
CONFIG_KEYBOARD_TWL4030=y
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_ADS7846=y
CONFIG_TOUCHSCREEN_ATMEL_MXT=y
CONFIG_TOUCHSCREEN_EDT_FT5X06=m
CONFIG_TOUCHSCREEN_TI_AM335X_TSC=y
CONFIG_TOUCHSCREEN_PIXCIR=m
# CONFIG_LEGACY_PTYS is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
# CONFIG_SERIAL_8250_DMA is not set
CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_RUNTIME_UARTS=10
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_DETECT_IRQ=y
CONFIG_SERIAL_8250_RSA=y
CONFIG_SERIAL_8250_OMAP=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_HW_RANDOM=y
CONFIG_I2C_CHARDEV=y
CONFIG_SPI=y
CONFIG_SPI_OMAP24XX=y
CONFIG_SPI_TI_QSPI=y
CONFIG_SPI_SPIDEV=y
CONFIG_PINCTRL_TI_IODELAY=y
CONFIG_PINCTRL_SINGLE=y
CONFIG_DEBUG_GPIO=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_PCF857X=y
CONFIG_GPIO_TWL4030=y
CONFIG_GPIO_PALMAS=y
CONFIG_I2C_GPIO=m
CONFIG_POWER_SUPPLY=y
CONFIG_POWER_AVS=y
CONFIG_VOLTAGE_DOMAIN_OMAP=y
CONFIG_SENSORS_GPIO_FAN=y
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_TMP102=y
CONFIG_THERMAL=y
CONFIG_THERMAL_GOV_FAIR_SHARE=y
CONFIG_THERMAL_GOV_USER_SPACE=y
CONFIG_CPU_THERMAL=y
CONFIG_TI_SOC_THERMAL=y
CONFIG_TI_THERMAL=y
CONFIG_WATCHDOG=y
CONFIG_OMAP_WATCHDOG=y
CONFIG_TWL4030_WATCHDOG=y
CONFIG_MFD_SYSCON=y
CONFIG_MFD_TI_AM335X_TSCADC=y
CONFIG_MFD_PALMAS=y
CONFIG_MFD_TPS65217=y
CONFIG_MFD_TPS65218=y
CONFIG_MFD_TPS65910=y
CONFIG_TWL4030_CORE=y
CONFIG_TWL4030_POWER=y
CONFIG_TWL6040_CORE=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_GPIO=y
CONFIG_REGULATOR_MB_TH_CONSUMER=y
CONFIG_REGULATOR_PALMAS=y
CONFIG_REGULATOR_PBIAS=y
CONFIG_REGULATOR_TI_ABB=y
CONFIG_REGULATOR_TPS65023=y
CONFIG_REGULATOR_TPS6507X=y
CONFIG_REGULATOR_TPS65217=y
CONFIG_REGULATOR_TPS65218=y
CONFIG_REGULATOR_TPS65910=y
CONFIG_REGULATOR_TWL4030=y
CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_USB_VIDEO_CLASS=m
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_VIDEO_AM437X_VPFE=m
CONFIG_V4L_MEM2MEM_DRIVERS=y
# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
CONFIG_VIDEO_OV2659=m
CONFIG_VIDEO_MT9T11X=m
# CONFIG_VGA_ARB is not set
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
CONFIG_OMAP2_DSS=y
# CONFIG_OMAP2_DSS_VENC is not set
# CONFIG_OMAP4_DSS_HDMI is not set
CONFIG_FB_OMAP2=y
CONFIG_DISPLAY_PANEL_DPI=y
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=y
CONFIG_LCD_PLATFORM=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
CONFIG_BACKLIGHT_PWM=y
CONFIG_BACKLIGHT_GPIO=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
# CONFIG_LOGO_LINUX_CLUT224 is not set
# CONFIG_LOGO_SOMBRERO_CLUT224 is not set
CONFIG_LOGO_METHOD_CLUT224=y
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_VERBOSE_PRINTK=y
CONFIG_SND_DEBUG=y
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_SOC=y
CONFIG_SND_EDMA_SOC=y
CONFIG_SND_DAVINCI_SOC_MCASP=m
CONFIG_SND_OMAP_SOC=y
CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m
CONFIG_SND_SOC_HDMI_CODEC=y
CONFIG_SND_SOC_TLV320AIC31XX=m
CONFIG_SND_SOC_TLV320AIC3X=m
CONFIG_SND_SIMPLE_CARD=y
CONFIG_USB=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
CONFIG_USB_OTG=y
# CONFIG_USB_OTG_WHITELIST is not set
CONFIG_USB_MON=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_ACM=m
CONFIG_USB_PRINTER=m
CONFIG_USB_WDM=y
CONFIG_USB_STORAGE=y
CONFIG_USB_MUSB_HDRC=m
CONFIG_USB_MUSB_OMAP2PLUS=m
CONFIG_USB_MUSB_DSPS=m
CONFIG_USB_TI_CPPI41_DMA=y
CONFIG_USB_DWC3=y
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_PL2303=m
CONFIG_USB_TEST=m
CONFIG_AM335X_PHY_USB=y
CONFIG_TWL6030_USB=m
CONFIG_USB_GADGET=y
CONFIG_USB_GADGET_DEBUG=y
CONFIG_USB_GADGET_DEBUG_FILES=y
CONFIG_USB_GADGET_DEBUG_FS=y
CONFIG_USB_ZERO=m
CONFIG_USB_AUDIO=m
CONFIG_USB_ETH=m
CONFIG_USB_G_NCM=m
CONFIG_USB_GADGETFS=m
CONFIG_USB_FUNCTIONFS=m
CONFIG_USB_FUNCTIONFS_ETH=y
CONFIG_USB_FUNCTIONFS_RNDIS=y
CONFIG_USB_FUNCTIONFS_GENERIC=y
CONFIG_USB_MASS_STORAGE=m
CONFIG_USB_G_SERIAL=m
CONFIG_USB_MIDI_GADGET=m
CONFIG_USB_G_PRINTER=m
CONFIG_USB_G_3DPRINTER=m
CONFIG_USB_CDC_COMPOSITE=m
CONFIG_USB_G_ACM_MS=m
CONFIG_USB_G_MULTI=m
CONFIG_USB_G_MULTI_CDC=y
CONFIG_USB_G_HID=m
CONFIG_USB_G_DBGP=m
CONFIG_USB_G_WEBCAM=m
CONFIG_NETDEVICES=y
CONFIG_MII=y
CONFIG_NET_CORE=y
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_TI=y
CONFIG_TI_CPSW_PHY_SEL=y
CONFIG_TI_CPSW=y
CONFIG_TI_CPSW_ALE=y
CONFIG_TI_CPTS=y
CONFIG_TI_DAVINCI_MDIO=y
CONFIG_TI_DAVINCI_CPDMA=y
CONFIG_PHYLIB=y
CONFIG_MMC=y
CONFIG_MMC_UNSAFE_RESUME=y
CONFIG_SDIO_UART=y
CONFIG_MMC_OMAP=y
CONFIG_MMC_OMAP_HS=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_DS1307=y
CONFIG_RTC_DRV_PALMAS=y
CONFIG_RTC_DRV_TWL4030=y
CONFIG_RTC_DRV_OMAP=y
CONFIG_DMADEVICES=y
CONFIG_TI_EDMA=y
CONFIG_DMA_OMAP=y
CONFIG_HWSPINLOCK_OMAP=y
CONFIG_OMAP_IOMMU=y
CONFIG_OMAP_IOVMM=y
CONFIG_OMAP_IOMMU_DEBUG=y
CONFIG_PRUSS_REMOTEPROC=m
CONFIG_RPMSG_PRU=m
CONFIG_EXTCON=y
CONFIG_EXTCON_PALMAS=y
CONFIG_EXTCON_USB_GPIO=y
CONFIG_PWM=y
CONFIG_PWM_TIECAP=y
CONFIG_PWM_TIEHRPWM=y
CONFIG_OMAP_USB2=y
CONFIG_TI_PIPE3=y
CONFIG_TWL4030_USB=m
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
# CONFIG_EXT3_FS_XATTR is not set
CONFIG_EXT4_FS=y
CONFIG_QUOTA=y
CONFIG_QFMT_V2=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_PRINTK_TIME=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_FS=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_SCHED_DEBUG is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_FTRACE is not set
# CONFIG_ARM_UNWIND is not set
CONFIG_SECURITY=y
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_CCM=y
CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_MICHAEL_MIC=y
CONFIG_CRYPTO_ARC4=y
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_LZO=y
# CONFIG_CRYPTO_ANSI_CPRNG is not set
CONFIG_CRYPTO_USER_API_HASH=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_DEV_OMAP_SHAM=y
CONFIG_CRYPTO_DEV_OMAP_AES=y
CONFIG_CRYPTO_DEV_OMAP_DES=y
CONFIG_CRC_CCITT=y
CONFIG_CRC_T10DIF=y
CONFIG_CRC_ITU_T=y
CONFIG_CRC7=y
CONFIG_LIBCRC32C=y
CONFIG_AVERAGE=y
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_PRUSS_REMOTEPROC=m
CONFIG_RPMSG_PRU=m
# RTC configuration
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_PCF8523=y
CONFIG_RTC_INTF_SYSFS=y
CONFIG_CFG80211=m
CONFIG_MAC80211=m
CONFIG_NL80211=y
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"
CONFIG_WL_TI=y
CONFIG_WL18XX=m
CONFIG_WLCORE=m
CONFIG_WEXT_CORE=y
CONFIG_WEXT_PROC=y
CONFIG_WEXT_SPY=y
CONFIG_WLCORE_SDIO=m
CONFIG_WILINK_PLATFORM_DATA=y
CONFIG_WLAN=y
CONFIG_WIRELESS=y
CONFIG_WIRELESS_EXT=y
CONFIG_WKUP_M3_RPROC=m
CONFIG_SOC_TI=y
CONFIG_WKUP_M3_IPC=m
CONFIG_SRAM=y
CONFIG_TI_EMIF_SRAM=y
CONFIG_AMX3_PM=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_TLC591XX=y

/*
 * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

/* AM437x GP EVM */

/dts-v1/;

#include "am4372.dtsi"
#include <dt-bindings/pinctrl/am43xx.h>
#include <dt-bindings/pwm/pwm.h>
#include <dt-bindings/gpio/gpio.h>

// For Pin Mux Modes, refer to the TI AM437x Processors Datasheet (am4376.pdf)

/ {
	model = "MakerBot Macho Man RevD";
	compatible = "makerbot,macho-man-revd","ti,am4372","ti,am43", "ti,cpsw";

	aliases {};

	/* Not clear if we need this... */
	v3_3_sb: fixedregulator-v3_3_sb {
		compatible = "regulator-fixed";
		regulator-name = "v3_3_sb";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		enable-active-high;
	};

	/* Hi voltage enable line to the psu */
	vpsu_hiv: fixedregulator-vpsu_hiv {
		compatible = "regulator-fixed";
		regulator-name = "vpsu_hiv";
		regulator-min-microvolt = <36000000>;
		regulator-max-microvolt = <36000000>;
		gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>; /* (A7) gpmc_ad5 PWR-MAIN-ON */
		enable-active-high;
		regulator-always-on;
	};

	/* The main 36V supply */
	v36_main: fixedregulator-v36_main {
		compatible = "regulator-fixed";
		regulator-name = "v36_main";
		regulator-min-microvolt = <36000000>;
		regulator-max-microvolt = <36000000>;
		vin-supply = <&vpsu_hiv>;
		gpio = <&gpio2 2 GPIO_ACTIVE_HIGH>; /* (A9) gpmc_advn_ale 36V-EN */
		enable-active-high;
		regulator-always-on;
	};

	/* The main 12V supply */
	v12_main: fixedregulator-v12_main {
		compatible = "regulator-fixed";
		regulator-name = "v12_main";
		regulator-min-microvolt = <12000000>;
		regulator-max-microvolt = <12000000>;
		vin-supply = <&v36_main>;
		gpio = <&gpio1 29 GPIO_ACTIVE_HIGH>; /* (A8) gpmc_csn0 12V-EN */
		enable-active-high;
		regulator-always-on;
	};

	/* The main 3.3V supply */
	v3_3_main: fixedregulator-v3_3_main {
		compatible = "regulator-fixed";
		regulator-name = "v3_3_main";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&v36_main>;
		gpio = <&gpio2 1 GPIO_ACTIVE_HIGH>; /* (A16) rmii1_ref_clk BUCK-3V3-EN */
		enable-active-high;
		regulator-always-on;
	};

	/* The chamber heater 3.3V supply */
	v3_3_ch: fixedregulator-v3_3_ch {
		compatible = "regulator-fixed";
		regulator-name = "v3_3_ch";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&v3_3_main>;
		gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>; /* (B7) gpmc_ad4 3V3-CH-EN */
		enable-active-high;
	};

	v3_3_ch_consumer: mb-v3_3_ch-consumer {
		compatible = "mb,reg-th-consumer";
		regulator-name = "mb-v3_3_ch-regulator";
		regulator-boot-on;
		regulator-supplies = "v3_3_ch";
	};

	/* The chamber heater 12V supply */
	v12_ch: fixedregulator-v12_ch {
		compatible = "regulator-fixed";
		regulator-name = "v12_ch";
		regulator-min-microvolt = <12000000>;
		regulator-max-microvolt = <12000000>;
		vin-supply = <&v12_main>;
		gpio = <&gpio4 1 GPIO_ACTIVE_HIGH>; /* (AD18) cam0_vd 12V-CH-EN */
		enable-active-high;
	};

	v12_ch_consumer: mb-v12_ch-consumer {
		compatible = "mb,reg-th-consumer";
		regulator-name = "mb-v12_ch-regulator";
		regulator-boot-on;
		regulator-supplies = "v12_ch";
	};

	/* The 36V supply to The Rock */
	v36_if: fixedregulator-v36_if {
		compatible = "regulator-fixed";
		regulator-name = "v36_if";
		regulator-min-microvolt = <36000000>;
		regulator-max-microvolt = <36000000>;
		vin-supply = <&v36_main>;
		gpio = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* (C10) gpmc_be0n_cle 36V-IF-EN */
		enable-active-high;
	};

	/* The 12V supply to The Rock */
	v12_if: fixedregulator-v12_if {
		compatible = "regulator-fixed";
		regulator-name = "v12_if";
		regulator-min-microvolt = <12000000>;
		regulator-max-microvolt = <12000000>;
		vin-supply = <&v12_main>;
		gpio = <&gpio4 0 GPIO_ACTIVE_HIGH>; /* (AE17) cam0_hd 12V-IF-EN */
		enable-active-high;
	};

	/* The 3.3V supply to The Rock, also known as the Top Bunk Enable */
	v3_3_if: fixedregulator-v3_3_if {
		compatible = "regulator-fixed";
		regulator-name = "v3_3_if";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&v3_3_main>;
		gpio = <&gpio5 12 GPIO_ACTIVE_HIGH>; /* (E25) gpio5_12 3V3-IF-EN */
		enable-active-high;
	};

	v3_3_if_consumer: mb-v3_3_if-consumer {
		compatible = "mb,reg-th-consumer";
		regulator-name = "mb-v3_3_if-regulator";
		regulator-boot-on;
		regulator-supplies = "v3_3_if";
	};

	/* The 36V supply to Mick Foley */
	v36_th: fixedregulator-v36_th {
		compatible = "regulator-fixed";
		regulator-name = "v36_th";
		regulator-min-microvolt = <36000000>;
		regulator-max-microvolt = <36000000>;
		vin-supply = <&v36_main>;
		gpio = <&gpio1 6 GPIO_ACTIVE_HIGH>; /* (C8) gpmc_ad6 36V-TH-EN */
		enable-active-high;
	};

	/* The 12V supply to Mick Foley */
	v12_th: fixedregulator-v12_th {
		compatible = "regulator-fixed";
		regulator-name = "v12_th";
		regulator-min-microvolt = <12000000>;
		regulator-max-microvolt = <12000000>;
		vin-supply = <&v12_main>;
		gpio = <&gpio5 9 GPIO_ACTIVE_HIGH>; /* (F24) gpio5_9 12V-TH-EN */
		enable-active-high;
	};

	th_consumer: mb-th-consumer {
		compatible = "mb,reg-th-consumer";
		regulator-name = "mb-th-regulator";
		regulator-boot-on;
		regulator-supplies = "v12_th", "v36_th";
	};

	v12_if_consumer: mb-v12_if-consumer {
		compatible = "mb,reg-th-consumer";
		regulator-name = "mb-v12_if-regulator";
		regulator-boot-on;
		regulator-supplies = "v12_if";
	};

	v36_if_consumer: mb-v36_if-consumer {
		compatible = "mb,reg-th-consumer";
		regulator-name = "mb-v36_if-regulator";
		regulator-boot-on;
		regulator-supplies = "v36_if";
	};

	/* The 3.3V supply to filament bay aa */
	v3_3_aa: fixedregulator-v3_3_aa {
		compatible = "regulator-fixed";
		regulator-name = "v3_3_aa";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&v3_3_main>;
		gpio = <&gpio2 4 GPIO_ACTIVE_LOW>; /* (D10) gpmc_wen 3V3-AA-ENn */
		enable-active-low;
	};

	v3_3_aa_consumer: mb-v3_3_aa-consumer {
		compatible = "mb,reg-th-consumer";
		regulator-name = "mb-v3_3_aa-regulator";
		regulator-boot-on;
		regulator-supplies = "v3_3_aa";
	};

	/* The 3.3V supply to filament bay bb */
	v3_3_bb: fixedregulator-v3_3_bb {
		compatible = "regulator-fixed";
		regulator-name = "v3_3_bb";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&v3_3_main>;
		gpio = <&gpio2 3 GPIO_ACTIVE_LOW>; /* (E10) gpmc_oen_ren 3V3-BB-ENn */
		enable-active-low;
	};

	v3_3_bb_consumer: mb-v3_3_bb-consumer {
		compatible = "mb,reg-th-consumer";
		regulator-name = "mb-v3_3_bb-regulator";
		regulator-boot-on;
		regulator-supplies = "v3_3_bb";
	};

	/* Not actually a power supply but convenient to treat as one */
	vmmcwl: fixedregulator-mmcwl {
		compatible = "regulator-fixed";
		regulator-name = "vmmcwl";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		startup-delay-us = <70000>;
		/* (D14) mii1_tx_clk.gpio0_8 WIFI-EN_1V8 (gpio3_9 0x7, gpio0_8 0x9) */
		gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	/* Power button */
	gpio_keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;

		button@1 {
			debounce_interval = <50>;
			linux,wakeup;
			linux,code = <116>;
			label = "POWER";
			gpios = <&gpio0 24 GPIO_ACTIVE_HIGH>; /* (H20) clkreq BUTTON-PWRn */
		};
	};
};

&am43xx_pinmux {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&debugss_pins &power_pins &unused_pins>;
	pinctrl-1 = <>;

	/* i2c0 pins used for the pcf8523 hardware RTC */
	i2c0_pins: i2c0_pins {
		pinctrl-single,pins = <
			0x188 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)  /* (AB24) i2c0_sda.i2c0_sda */
			0x18C (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)  /* (Y22) i2c0_scl.i2c0_scl */
		>;
	};

	i2c1_pins: i2c1_pins {
		pinctrl-single,pins = <
			0x208 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE3)  /* (AE18) cam0_data0.i2c1_sda */
			0x20C (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE3)  /* (AB18) cam0_data1.i2c1_scl */
		>;
	};

	i2c2_pins: i2c2_pins {
		pinctrl-single,pins = <
			0x1E8 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE3)  /* (AB20) cam1_data0.i2c2_sda */
			0x1EC (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE3)  /* (AC21) cam1_data1.i2c2_scl */
		>;
	};

	/* eMMC */
	emmc_pins_default: emmc_pins_default {
		pinctrl-single,pins = <
			0x020 (PIN_INPUT_PULLUP | MUX_MODE2)  /* (B10) gpmc_ad8.mmc1_dat0 */
			0x024 (PIN_INPUT_PULLUP | MUX_MODE2)  /* (A10) gpmc_ad9.mmc1_dat1 */
			0x028 (PIN_INPUT_PULLUP | MUX_MODE2)  /* (F11) gpmc_ad10.mmc1_dat2 */
			0x02C (PIN_INPUT_PULLUP | MUX_MODE2)  /* (D11) gpmc_ad11.mmc1_dat3 */
			0x030 (PIN_INPUT_PULLUP | MUX_MODE2)  /* (E11) gpmc_ad12.mmc1_dat4 */
			0x034 (PIN_INPUT_PULLUP | MUX_MODE2)  /* (C11) gpmc_ad13.mmc1_dat5 */
			0x038 (PIN_INPUT_PULLUP | MUX_MODE2)  /* (B11) gpmc_ad14.mmc1_dat6 */
			0x03C (PIN_INPUT_PULLUP | MUX_MODE2)  /* (A11) gpmc_ad15.mmc1_dat7 */
			0x080 (PIN_INPUT_PULLUP | MUX_MODE2)  /* (???) gpmc_csn1.mmc1_clk */
			0x084 (PIN_INPUT_PULLUP | MUX_MODE2)  /* (???) gpmc_csn2.mmc1_cmd */
		>;
	};

	/* eMMC sleep */
	emmc_pins_sleep: emmc_pins_sleep {
		pinctrl-single,pins = <
			0x020 (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* (B10) gpmc_ad8.gpio0_22 */
			0x024 (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* (A10) gpmc_ad9.gpio0_23 */
			0x028 (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* (F11) gpmc_ad10.gpio0_26 */
			0x02C (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* (D11) gpmc_ad11.gpio0_27 */
			0x030 (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* (E11) gpmc_ad12.gpio1_12 */
			0x034 (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* (C11) gpmc_ad13.gpio1_13 */
			0x038 (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* (B11) gpmc_ad14.gpio1_14 */
			0x03C (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* (A11) gpmc_ad15.gpio1_15 */
			0x080 (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* (???) gpmc_csn1.gpio1_30 */
			0x084 (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* (???) gpmc_csn2.gpio1_31 */
		>;
	};

	/* WIFI-MMC */
	mmc3_pins_default: pinmux_mmc3_pins_default {
		pinctrl-single,pins = <
			0x13C (PIN_INPUT | MUX_MODE6) /* (B16) mii1_rxd1.mmc2_clk WL_SDIO_CLK */
			0x114 (PIN_INPUT | MUX_MODE6) /* (A13) mii1_txen.mmc2_cmd WL_SDIO_CMD */
			0x118 (PIN_INPUT_PULLUP | MUX_MODE5 | INPUT_EN) /* (A15) mii1_rxdv.mmc2_dat0 WL_SDIO_D0 */
			0x11C (PIN_INPUT_PULLUP | MUX_MODE5 | INPUT_EN) /* (C16) mii1_txd3.mmc2_dat1 WL_SDIO_D1 */
			0x120 (PIN_INPUT_PULLUP | MUX_MODE5 | INPUT_EN) /* (C13) mii1_txd2.mmc2_dat2 WL_SDIO_D2 */
			0x108 (PIN_INPUT_PULLUP | MUX_MODE5 | INPUT_EN) /* (D16) mii1_col.mmc2_dat3 WL_SDIO_D3 */
		>;
	};

	/* WIFI-MMC sleep */
	mmc3_pins_sleep: pinmux_mmc3_pins_sleep {
		pinctrl-single,pins = <
			0x13C (PIN_INPUT | MUX_MODE6 | INPUT_EN) /* (B16) mii1_rxd1.gpio2_20 WL_SDIO_CLK */
			0x114 (PIN_INPUT | MUX_MODE6 | INPUT_EN) /* (A13) mii1_txen.gpio3_3 WL_SDIO_CMD */
			0x118 (PIN_INPUT_PULLUP | MUX_MODE5 | INPUT_EN) /* (A15) mii1_rxdv.gpio3_4 WL_SDIO_D0 */
			0x11C (PIN_INPUT_PULLUP | MUX_MODE5 | INPUT_EN) /* (C16) mii1_txd3.gpio0_16 WL_SDIO_D1 */
			0x120 (PIN_INPUT_PULLUP | MUX_MODE5 | INPUT_EN) /* (C13) mii1_txd2.gpio0_17 WL_SDIO_D2 */
			0x108 (PIN_INPUT_PULLUP | MUX_MODE5 | INPUT_EN) /* (D16) mii1_col.gpio3_0 WL_SDIO_D3 */
		>;
	};

	/* WIFI-EN, WIFI-IRQ, BT-EN */
	wlan_pins_default: pinmux_wlan_pins_default {
		pinctrl-single,pins = <
			0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (B15) mii1_txd0.gpio0_28 BT-EN_1V8 */
			0x12C (PIN_OUTPUT_PULLDOWN | MUX_MODE9) /* (D14) mii1_tx_clk.gpio0_8 WIFI-EN_1V8 (gpio3_9 0x7, gpio0_8 0x9)*/
			0x138 (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE9) /* (E16) mii1_rxd2.gpio0_11 WIFI-IRQ_1V8 (gpio2_19 0x7, gpio0_11 0x9)*/
		>;
	};

	/* WIFI-EN, WIFI-IRQ, BT-EN sleep */
	wlan_pins_sleep: pinmux_wlan_pins_sleep {
		pinctrl-single,pins = <
			0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (B15) mii1_txd0.gpio0_28 BT-EN_1V8 */
			0x12C (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (D14) mii1_tx_clk.gpio3_9 WIFI-EN_1V8 */
			0x138 (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7) /* (E16) mii1_rxd2.gpio2_19 WIFI-IRQ_1V8 */
		>;
	};

	/* Ethernet-MII */
	cpsw_default: cpsw_default {
		pinctrl-single,pins = <
			0x000 (PIN_OUTPUT_PULLUP | MUX_MODE7)  /* TODO verify : (B5) gpmc_ad0.gpio1_0 */
			0x040 (PIN_OUTPUT | MUX_MODE1) /* (C3) gpmc_a0.gmii2_txen MII-TXEN */
			0x044 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* (C5) gpmc_a1.gmii2_rxdv MII-RXDV */
			0x048 (PIN_OUTPUT | MUX_MODE1) /* (C6) gpmc_a2.gmii2_txd3 MII-TXD3 */
			0x04C (PIN_OUTPUT | MUX_MODE1) /* (A4) gpmc_a3.gmii2_txd2 MII-TXD2 */
			0x050 (PIN_OUTPUT | MUX_MODE1) /* (D7) gpmc_a4.gmii2_txd1 MII-TXD1 */
			0x054 (PIN_OUTPUT | MUX_MODE1) /* (E7) gpmc_a5.gmii2_txd0 MII-TXD0 */
			0x058 (PIN_INPUT | MUX_MODE1)  /* (E8) gpmc_a6.gmii2_txclk MII-TXCLK */
			0x05C (PIN_INPUT | MUX_MODE1) /* (F6) gpmc_a7.gmii2_rxclk MII-RXCLK */
			0x060 (PIN_INPUT | MUX_MODE1) /* (F7) gpmc_a8.gmii2_rxd3 MII-RXD3 */
			0x064 (PIN_INPUT | MUX_MODE1) /* (B4) gpmc_a9.gmii2_rxd2 MII-RXD2 */
			0x068 (PIN_INPUT | MUX_MODE1) /* (G8) gpmc_a10.gmii2_rxd1 MII-RXD1 */
			0x06C (PIN_INPUT | MUX_MODE1) /* (D8) gpmc_a11.gmii2_rxd0 MII-RXD0 */
			0x070 (PIN_INPUT | MUX_MODE1) /* (A2) gpmc_wait0.gmii2_crs MII-CRS */
			0x074 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* (B3) gpmc_wpn.gmii2_rxer MII-RXER */
			0x078 (PIN_INPUT | MUX_MODE1) /* (A3) gpmc_be1n.gmii2_col MII-COL */
			0x270 (PIN_OUTPUT | MUX_MODE3) /* TODO verify : (D24) xdma_event_intr0.clkout1 PHY-25MHz */
		>;
	};

	/* Ethernet-MII sleep */
	cpsw_sleep: cpsw_sleep {
		pinctrl-single,pins = <
			0x000 (PIN_OUTPUT_PULLUP | MUX_MODE7)
			0x040 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (C3) gpmc_a0.gpio1_16 MII-TXEN */
			0x044 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (C5) gpmc_a1.gpio1_17 MII-RXDV */
			0x048 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (C6) gpmc_a2.gpio1_18 MII-TXD3 */
			0x04C (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (A4) gpmc_a3.gpio1_19 MII-TXD2 */
			0x050 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (D7) gpmc_a4.gpio1_20 MII-TXD1 */
			0x054 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (E7) gpmc_a5.gpio1_21 MII-TXD0 */
			0x058 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (E8) gpmc_a6.gpio1_22 MII-TXCLK */
			0x05C (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (F6) gpmc_a7.gpio1_23 MII-RXCLK */
			0x060 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (F7) gpmc_a8.gpio1_24 MII-RXD3 */
			0x064 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (B4) gpmc_a9.gpio1_25 MII-RXD2 */
			0x068 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (G8) gpmc_a10.gpio1_26 MII-RXD1 */
			0x06C (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (D8) gpmc_a11.gpio1_27 MII-RXD0 */
			0x070 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (A2) gpmc_wait0.gpio0_30 MII-CRS */
			0x074 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (B3) gpmc_wpn.gpio0_31 MII-RXER */
			0x078 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (A3) gpmc_be1n.gpio1_28 MII-COL */
			0x270 (PIN_OUTPUT | MUX_MODE3)
		>;
	};

	/* MDIO */
	davinci_mdio_default: davinci_mdio_default {
		pinctrl-single,pins = <
			0x148 (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0)  /* (A17) mdio_data.mdio_data MDIO-DATA */
			0x14C (PIN_OUTPUT | MUX_MODE0) /* (B17) mdio_clk.mdio_clk MDIO-CLK */
		>;
	};

	/* MDIO sleep */
	davinci_mdio_sleep: davinci_mdio_sleep {
		pinctrl-single,pins = <
			0x148 (PIN_INPUT | PULL_DISABLE | MUX_MODE7) /* (A17) mdio_data.gpio0_0 MDIO-DATA */
			0x14C (PIN_INPUT | PULL_DISABLE | MUX_MODE7) /* (B17) mdio_clk.gpio0_1 MDIO-CLK */
		>;
	};

	/* Console Output (TTL) UART-DEBUG */
	uart0_pins_default: uart0_pins_default {
		pinctrl-single,pins = <
			0x168 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE0)  /* (L25) uart0_ctsn.uart0_ctsn */
			0x16C (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE0)  /* (J25) uart0_rtsn.uart0_rtsn */
			0x170 (PIN_INPUT_PULLUP | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* (K25) uart0_rxd.uart0_rxd */
			0x174 (PIN_INPUT | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* (J24) uart0_txd.uart0_txd */
		>;
	};

	uart0_pins_sleep: uart0_pins_sleep {
		pinctrl-single,pins = <
			0x168 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)  /* (L25) uart0_ctsn.gpio1_8 */
			0x16C (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)  /* (J25) uart0_rtsn.gpio1_9 */
			0x170 (PIN_INPUT_PULLUP | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* (K25) uart0_rxd.uart0_rxd */
			0x174 (PIN_INPUT_PULLDOWN | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* (J24) uart0_txd.uart0_txd */
		>;
	};

	/* UART-BT */
	uart1_pins_default: pinmux_uart1_pins_default {
		pinctrl-single,pins = <
			0x178 (PIN_INPUT | MUX_MODE0) /* (K22) uart1_ctsn.uart1_ctsn */
			0x17C (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (L22) uart1_rtsn.uart1_rtsn */
			0x180 (PIN_INPUT_PULLUP | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* (K21) uart1_rxd.uart1_rxd */
			0x184 (PIN_INPUT | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* (L21) uart1_txd.uart1_txd */
		>;
	};

	uart1_pins_sleep: pinmux_uart1_pins_sleep {
		pinctrl-single,pins = <
			0x178 (PIN_INPUT_PULLUP | MUX_MODE7) /* (K22) uart1_ctsn.gpio0_12 */
			0x17C (PIN_INPUT_PULLUP | MUX_MODE7) /* (L22) uart1_rtsn.gpio0_13 */
			0x180 (PIN_INPUT_PULLUP | MUX_MODE7) /* (K21) uart1_rxd.gpio0_14 */
			0x184 (PIN_INPUT_PULLUP | MUX_MODE7) /* (L21) uart1_txd.gpio0_15 */
		>;
	};

	/* UART-DRAWER-BB */
	uart2_pins_default: uart2_pins_default {
		pinctrl-single,pins = <
			0x150 (PIN_INPUT_PULLUP | DS0_PULL_UP_DOWN_EN | MUX_MODE1) /* (P23) spi0_sclk.uart2_rxd */
			0x154 (PIN_INPUT | DS0_PULL_UP_DOWN_EN | MUX_MODE1) /* (T22) spi0_d0.uart2_txd */
		>;
	};

	uart2_pins_sleep: uart2_pins_sleep {
		pinctrl-single,pins = <
			0x150 (PIN_INPUT_PULLUP | MUX_MODE7) /* (P23) spi0_sclk */
			0x154 (PIN_INPUT_PULLUP | MUX_MODE7) /* (T22) spi0_d0 */
		>;
	};

	/* UART-DRAWER-AA */
	uart3_pins_default: uart3_pins_default {
		pinctrl-single,pins = <
			0x160 (PIN_INPUT_PULLUP | DS0_PULL_UP_DOWN_EN | MUX_MODE1) /* (R25) spi0_cs1.uart3_rxd */
			0x164 (PIN_INPUT | DS0_PULL_UP_DOWN_EN | MUX_MODE1) /* (G24) eCAP0_in_PWM0_out.uart3_txd */
		>;
	};

	uart3_pins_sleep: uart3_pins_sleep {
		pinctrl-single,pins = <
			0x160 (PIN_INPUT_PULLUP | MUX_MODE7) /* (R25) spi0_cs1 */
			0x164 (PIN_INPUT_PULLUP | MUX_MODE7) /* (G24) eCAP0_in_PWM0_out */
		>;
	};

	/* JTAG */
	debugss_pins: pinmux_debugss_pins {
		pinctrl-single,pins = <
			0x290 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* (Y24) TMS.TMS JTAG-TMS */
			0x294 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* (Y20) TDI.TDI JTAG-TDI */
			0x298 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* (AA24) TDO.TDO JTAG-TDO */
			0x29C (PIN_INPUT_PULLDOWN | MUX_MODE0) /* (AA25) TCK.TCK JTAG-TCK */
			0x2A0 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* (Y25) nTRST.nTRST JTAG-TRSTn CTRL_CONF_NTRST */
			0x2A4 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* (N23) EMU0.EMU0 JTAG-EMU0 */
			0x2A8 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* (T24) EMU1.EMU1 JTAG-EMU1 */
		>;
	};

	pruss_pins: pruss_pins {
		pinctrl-single,pins = <
			0x0F0 (PIN_OUTPUT | MUX_MODE5) /* (B1) mmc0_dat3.pr0_pru0_gpo8 MOT-B-STEP */
			0x0F4 (PIN_OUTPUT | MUX_MODE5) /* (B2) mmc0_dat2.pr0_pru0_gpo9 MOT-B-DIR */
			0x0F8 (PIN_OUTPUT | MUX_MODE5) /* (C2) mmc0_dat1.pr0_pru0_gpo10 MOT-AA-STEP */
			0x0FC (PIN_OUTPUT | MUX_MODE5) /* (C1) mmc0_dat0.pr0_pru0_gpo11 MOT-AA-DIR */
			0x100 (PIN_OUTPUT | MUX_MODE5) /* (D1) mmc0_clk.pr0_pru0_gpo12 MOT-BB-STEP */
			0x104 (PIN_OUTPUT | MUX_MODE5) /* (D2) mmc0_cmd.pr0_pru0_gpo13 MOT-BB-DIR */
			0x190 (PIN_OUTPUT | MUX_MODE5) /* (N24) mcasp0_aclkx.pr0_pru0_gpo0 MOT-X-STEP */
			0x194 (PIN_OUTPUT | MUX_MODE5) /* (N22) mcasp0_fsx.pr0_pru0_gpo1 MOT-X-DIR */
			0x198 (PIN_OUTPUT | MUX_MODE5) /* (H23) mcasp0_axr0.pr0_pru0_gpo2 MOT-Y-STEP */
			0x19C (PIN_OUTPUT | MUX_MODE5) /* (M24) mcasp0_ahclkr.pr0_pru0_gpo3 MOT-Y-DIR */
			0x1A0 (PIN_OUTPUT | MUX_MODE5) /* (L23) mcasp0_aclkr.pr0_pru0_gpo4 MOT-Z-STEP */
			0x1A4 (PIN_OUTPUT | MUX_MODE5) /* (K23) mcasp0_fsr.pr0_pru0_gpo5 MOT-Z-DIR */
			0x1A8 (PIN_OUTPUT | MUX_MODE5) /* (M25) mcasp0_axr1.pr0_pru0_gpo6 MOT-A-DIR */
			0x1AC (PIN_OUTPUT | MUX_MODE5) /* (L24) mcasp0_ahclkx.pr0_pru0_gpo7 MOT-A-STEP */
			0x1C0 (PIN_OUTPUT | MUX_MODE3) /* (AC20) cam0_pclk.pr0_pru0_gpo14 TH-SYNC-OUT */
			0x1C4 (PIN_INPUT | MUX_MODE5) /* (AB19) cam0_data8.pr0_pru0_gpi15 TH-SYNC-IN */
			0x1C8 (PIN_INPUT_PULLUP | MUX_MODE5)   /* (AA19) cam0_data9.pr0_pru0_gpi16 ENDSTOP-X */
			0x1CC (PIN_INPUT_PULLUP | MUX_MODE5) /* (AC24) cam1_data9.pr0_pru0_gpi17 ENDSTOP-Y */
			0x228 (PIN_INPUT_PULLUP | MUX_MODE5) /* (H25) uart3_rxd.pr0_pru0_gpi18 ENDSTOP-Z */
			0x22C (PIN_INPUT_PULLUP | MUX_MODE7) /* (H24) uart3_txd.pr0_pru0_gpi19 LID-OR-DOOR */
		>;
	};

	dss_pins_default: dss_pins_default {
		pinctrl-single,pins = <
			0x0A0 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (B22) dss_data0.dss_data0 */
			0x0A4 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (A21) dss_data1.dss_data1 */
			0x0A8 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (B21) dss_data2.dss_data2 */
			0x0AC (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (C21) dss_data3.dss_data3 */
			0x0B0 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (A20) dss_data4.dss_data4 */
			0x0B4 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (B20) dss_data5.dss_data5 */
			0x0B8 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (C20) dss_data6.dss_data6 */
			0x0BC (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (E19) dss_data7.dss_data7 */
			0x0C0 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (A19) dss_data8.dss_data8 */
			0x0C4 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (B19) dss_data9.dss_data9 */
			0x0C8 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (A18) dss_data10.dss_data10 */
			0x0CC (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (B18) dss_data11.dss_data11 */
			0x0D0 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (C19) dss_data12.dss_data12 */
			0x0D4 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (D19) dss_data13.dss_data13 */
			0x0D8 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (C17) dss_data14.dss_data14 */
			0x0DC (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (D17) dss_data15.dss_data15 */
			0x0E0 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (B23) dss_vsync.dss_vsync */
			0x0E4 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (A23) dss_hsync.dss_hsync */
			0x0E8 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (A22) dss_pclk.dss_pclk */
			0x0EC (PIN_OUTPUT_PULLUP | MUX_MODE0) /* (A24) dss_ac_bias_en.dss_ac_bias_en */
			0x224 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (AD20) cam0_data7.gpio4_29 LCD-BKLIGHT */
		>;
	};

	dss_pins_sleep: dss_pins_sleep { /* TODO: Why are these configured as INPUTS? */
		pinctrl-single,pins = <
			0x0A0 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (B22) dss_data0.gpio2_6 */
			0x0A4 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (A21) dss_data1.gpio2_7 */
			0x0A8 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (B21) dss_data2.gpio2_8 */
			0x0AC (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (C21) dss_data3.gpio2_9 */
			0x0B0 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (A20) dss_data4.gpio2_10 */
			0x0B4 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (B20) dss_data5.gpio2_11 */
			0x0B8 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (C20) dss_data6.gpio2_12 */
			0x0BC (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (E19) dss_data7.gpio2_13 */
			0x0C0 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (A19) dss_data8.gpio2_14 */
			0x0C4 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (B19) dss_data9.gpio2_15 */
			0x0C8 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (A18) dss_data10.gpio2_16 */
			0x0CC (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (B18) dss_data11.gpio2_17 */
			0x0D0 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (C19) dss_data12.gpio0_8 */
			0x0D4 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (D19) dss_data13.gpio0_9 */
			0x0D8 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (C17) dss_data14.gpio0_10 */
			0x0DC (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (D17) dss_data15.gpio0_11 */
			0x0E0 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (B23) dss_vsync.gpio2_22 */
			0x0E4 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (A23) dss_hsync.gpio2_23 */
			0x0E8 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (A22) dss_pclk.gpio2_24 */
			0x0EC (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (A24) dss_ac_bias_en.gpio2_25 */
			0x224 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AD20) cam0_data7.gpio4_29 LCD-BKLIGHT */
		>;
	};

	edt_ft5xx6_ts_pins: edt_ft5xx6_ts_pins {
		pinctrl-single,pins = <
			0x264 (PIN_INPUT | MUX_MODE7) /* (P22) spi2_d0.gpio3_22 CAP-INTn */
		>;
	};

	ehrpwm3_pins: ehrpwm3_pins {
		pinctrl-single,pins = <
			0x218 (PIN_OUTPUT | MUX_MODE6) /* (AE19) cam0_data4.ehrpwm3A CH-PWM-A */
			0x21C (PIN_OUTPUT | MUX_MODE6) /* (AD19) cam0_data5.ehrpwm3B CH-PWM-B */
		>;
	};

	power_pins: power_pins {
		pinctrl-single,pins = <
			0x010 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (B7) gpmc_ad4.gpio1_4 3V3-CH-EN */
			0x014 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (A7) gpmc_ad5.gpio1_5 PWR-MAIN-ON */
			0x018 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (C8) gpmc_ad6.gpio1_6 36V-TH-EN */
			0x07C (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (A8) gpmc_csn0.gpio1_29 12V-EN */
			0x08C (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (A12) gpmc_clk.gpio2_1 BUCK-3V3-EN*/
			0x090 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (A9) gpmc_advn_ale.gpio2_2 36V-EN */
			0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (E10) gpmc_oen_ren.gpio2_3 3V3-BB-ENn */
			0x098 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (D10) gpmc_wen.gpio2_4 3V3-AA-ENn */
			0x09C (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (C10) gpmc_be0n_cle.gpio2_5 36V-IF-EN */
			0x1B0 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (AE17) cam0_hd.gpio4_0 12V-IF-EN */
			0x1B4 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (AD18) cam0_vd.gpio4_1 12V-CH-EN */
			0x23C (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (F24) gpio5_9.gpio5_9 12V-TH-EN */
			0x248 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)  /* (E25) gpio5_12.gpio5_12 3V3-IF-EN */
			0x26C (PIN_OUTPUT_PULLUP | MUX_MODE7) /* (T23) spi2_cs0.gpio3_25 PWR-EN */
		>;
	};

	unused_pins: unused_pins {
		pinctrl-single,pins = <
			/* A lot of these are not unused... */
			/* for all GOOD and OCn: pulled low if there is a fault) */
			0x004 (PIN_INPUT_PULLUP | MUX_MODE7) /* (A5) gpmc_ad1.gpio1_1 PWR-GOOD */
			0x008 (PIN_INPUT_PULLUP | MUX_MODE7) /* (B6) gpmc_ad2.gpio1_2 BUCK-5V-PGOOD */
			0x01C (PIN_INPUT_PULLUP | MUX_MODE7) /* (B8) gpmc_ad7.gpio1_7 3V3-CH-OCn */
			0x088 (PIN_INPUT_PULLUP | MUX_MODE7) /* (B12) gpmc_csn3.gpio2_0 */
			0x10C (PIN_INPUT_PULLUP | MUX_MODE7) /* (B14) mii1_crs */
			0x110 (PIN_INPUT_PULLUP | MUX_MODE7) /* (B13) mii1_rx_er */
			0x124 (PIN_INPUT_PULLUP | MUX_MODE7) /* (A14) mii1_txd1 */
			0x130 (PIN_INPUT_PULLUP | MUX_MODE7) /* (D13) mii1_rx_clk */
			0x134 (PIN_INPUT_PULLUP | MUX_MODE7) /* (C14) mii1_rxd3 */
			0x140 (PIN_INPUT_PULLUP | MUX_MODE7) /* (F17) mii1_rxd0.gpio2_21 */
			0x144 (PIN_INPUT_PULLUP | MUX_MODE7) /* (A16) rmii1_ref_clk.gpio0_29 */
			0x158 (PIN_INPUT_PULLUP | MUX_MODE7) /* (T21) spi0_d1 PMIC-WAKEUPn */
			0x15C (PIN_INPUT_PULLUP | MUX_MODE7) /* (T20) spi0_cs0 PMIC-PFOn */
			0x1B8 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AC18) cam0_field.gpio4_2 */
			0x1BC (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AD17) cam0_wen.gpio4_3 */
			0x1D0 (PIN_INPUT_PULLUP | MUX_MODE7) /* (AD24) cam1_data8 */
			0x1D4 (PIN_INPUT_PULLUP | MUX_MODE7) /* (AD25) cam1_hd */
			0x1D8 (PIN_INPUT_PULLUP | MUX_MODE7) /* (AC23) cam1_vd */
			0x1DC (PIN_INPUT_PULLUP | MUX_MODE7) /* (AE21) cam1_pclk */
			0x1E0 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AC25) cam1_field.gpio4_12 */
			0x1E4 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AB25) cam1_wen.gpio4_13 */
			0x1F0 (PIN_INPUT_PULLUP | MUX_MODE7) /* (AD21) cam1_data2 */
			0x1F4 (PIN_INPUT_PULLUP | MUX_MODE7) /* (AE22) cam1_data3 */
			0x1F8 (PIN_INPUT_PULLUP | MUX_MODE7) /* (AD22) cam1_data4 */
			0x1FC (PIN_INPUT_PULLUP | MUX_MODE7) /* (AE23) cam1_data5 */
			0x200 (PIN_INPUT_PULLUP | MUX_MODE7) /* (AD23) cam1_data6 */
			0x204 (PIN_INPUT_PULLUP | MUX_MODE7) /* (AE24) cam1_data7 */
			0x210 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (Y18) cam0_data2.gpio4_24 */
			0x214 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AA18) cam0_data3.gpio4_25 */
			0x230 (PIN_INPUT_PULLUP | MUX_MODE7) /* (H22) uart3_ctsn */
			0x234 (PIN_INPUT_PULLUP | MUX_MODE7) /* (K24) uart3_rtsn */
			0x238 (PIN_INPUT_PULLUP | MUX_MODE7) /* (D25) gpio5_8.gpio5_8 3V3-AA-OCn */
			0x240 (PIN_INPUT_PULLUP | MUX_MODE7) /* (G20) gpio5_10.gpio5_10 12V-IF-OCn */
			0x244 (PIN_INPUT_PULLUP | MUX_MODE7) /* (F23) gpio5_11.gpio5_11 12V-TH-OCn */
			0x24C (PIN_INPUT_PULLUP | MUX_MODE7) /* (E24) gpio5_13.gpio5_13 3V3-BB-OCn */
			0x250 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (P25) spi4_sclk.gpio5_4 */
			0x254 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (R24) spi4_d0.gpio5_5 */
			0x258 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (P24) spi4_d1.gpio5_6 */
			0x25C (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (N25) spi4_cs0.gpio5_7 */
			0x27C (PIN_INPUT)  /* (G22) WARMRSTn.nRESETIN_OUT RESETOUTn */
			0x2AC (PIN_INPUT_PULLDOWN | MUX_MODE0) /* (AE5) RTC_XTALIN.OSC1_IN */
			0x2B0 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (AE4) RTC_XTALOUT.OSC1_OUT */
			0x2BC (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (AD6) RTC_PMIC_EN.RTC_PMIC_EN */
			/* 0x00C PIN_INPUT (A6) gpmc_ad3 MUX-STAT revc-new - (pulled low if on standby power, pulled high for 36V power) */
			/* 0x17C (L22) uart1_rtsn RTC-INTn revc-new - (interrupt output from the RTC) */
			/* 0x220 (AE20) cam0_data6 AUX-PWM revc-new */
			/* 0x260 (N20) spi2_sclk MII-PWDN-INTn revc-new */
			/* 0x268 (P20) spi2_d1 CH-12C-INTn revc-new */
			/* 0x274 (C24) xdma_event_intr1 CLKOUT2 revc-new */
			/* 0x284 CTRL_CONF_NNMI (G25) EXTINTn PMIC-INTn revc-new */
			/* 0x2B4 CTRL_CONF_RTC_PORZ (AE6) RTC_PWRONRSTn -> tied to ground revc-new */
			/* 0x2B8 CTRL_CONF_EXT_WAKEUP0 (AE3) RTC_WAKEUP -> tied to ground revc-new */
		>;
	};

	usb1_pins_default: usb1_pins_default {
		pinctrl-single,pins = <
			0x2C0 (DS0_PULL_UP_DOWN_EN | PIN_INPUT_PULLDOWN | MUX_MODE7) /* (G21) USB0_DRVVBUS. */
		>;
	};

	usb1_pins_sleep: usb1_pins_sleep {
		pinctrl-single,pins = <
			0x2C0 (DS0_PULL_UP_DOWN_EN | PIN_INPUT_PULLDOWN | MUX_MODE7) /* (G21) USB0_DRVVBUS */
		>;
	};

	usb2_pins_default: usb2_pins_default {
		pinctrl-single,pins = <
			0x2C4 (DS0_PULL_UP_DOWN_EN | PIN_INPUT_PULLDOWN | MUX_MODE0) /* (F25) USB1_DRVVBUS */
		>;
	};

	usb2_pins_sleep: usb2_pins_sleep {
		pinctrl-single,pins = <
			0x2C4 (DS0_PULL_UP_DOWN_EN | PIN_INPUT_PULLDOWN | MUX_MODE7) /* (F25) USB1_DRVVBUS */
		>;
	};
};

&i2c0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&i2c0_pins>;
	clock-frequency = <100000>;

	rtc_sys: pcf8523 {
		compatible = "nxp,pcf8523";
		status = "okay";
		reg = <0x68>;
	};
};

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

&i2c2 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&i2c2_pins>;
	clock-frequency = <100000>;

	ioexp_top_0: ioexp@27 {
		status = "okay";
		compatible = "ti,tca9555";
		reg = <0x27>;
	};

	edt-ft5306@38 {
		status = "okay";
		compatible = "edt,edt-ft5306", "edt,edt-ft5x06";
		pinctrl-names = "default";
		pinctrl-0 = <&edt_ft5xx6_ts_pins>;
		reg = <0x38>;

		/* This is what am437x-sk-evm.dts does but the device driver
		 * code seems to be looking for irq-gpios...
		 */
		interrupt-parent = <&gpio3>;
		interrupts = <22 0>;

		/* Should just match the screen resolution */
		touchscreen-size-x = <800>;
		touchscreen-size-y = <480>;
	};

	tlc59108: tlc59116@40 {
		#address-cells = <1>;
		#size-cells = <0>;
		status = "okay";
		compatible = "ti,tlc59108";
		reg = <0x40>;
	};
};

&epwmss3 {
	status = "okay";
	ehrpwm3: pwm@48306200 {
		status = "okay";
		pinctrl-names = "default";
		pinctrl-0 = <&ehrpwm3_pins>;
	};
};

&gpio0 {
	status = "okay";
};

&gpio1 {
	status = "okay";
};

&gpio2 {
	status = "okay";
};

&gpio3 {
	status = "okay";
};

&gpio4 {
	status = "okay";
};

&gpio5 {
	status = "okay";
};

/* mmc channels are named 1/2/3 here instead of 0/1/2 :( */
&mmc2 {
	status = "okay";
	ti,non-removable;
	vmmc-supply = <&v3_3_sb>;
	bus-width = <8>;
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&emmc_pins_default>;
	pinctrl-1 = <&emmc_pins_sleep>;
};

&mmc3 {
	status = "okay";
	vmmc-supply = <&vmmcwl>;
	bus-width = <4>;
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&mmc3_pins_default &wlan_pins_default>;
	pinctrl-1 = <&mmc3_pins_sleep &wlan_pins_sleep>;
	ti,non-removable;  /* non-removable slot; assume always present */
	/* ti,needs-special-hs-handling; HSMMC IP needs special setting for handling High Speed */
	cap-power-off-card;  /* powering off the card is safe */
	keep-power-in-suspend;  /* preserve card power during a suspend/resume cycle */
	/* These DMAs are normally assigned within the dtsi file (am4372.dtsi), but are missing for mmc3) */
	dmas = <&edma_xbar 30 0 1>, <&edma_xbar 31 0 2>;
	dma-names = "tx", "rx";
	#address-cells = <1>;
	#size-cells = <0>;
	wlcore: wlcore@0 {
		compatible = "ti,wl1837";
		reg = <2>;
		interrupt-parent = <&gpio0>;
		interrupts = <11 IRQ_TYPE_EDGE_RISING>;
	};
};

&usb2_phy1 {
	status = "okay";
};

&usb1 {
	dr_mode = "otg";
	status = "okay";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&usb1_pins_default>;
	pinctrl-1 = <&usb1_pins_sleep>;
};

&usb2_phy2 {
	status = "okay";
};

&usb2 {
	dr_mode = "host";
	status = "okay";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&usb2_pins_default>;
	pinctrl-1 = <&usb2_pins_sleep>;
};

&mac {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&cpsw_default>;
	pinctrl-1 = <&cpsw_sleep>;
	active_slave = <1>;
	status = "okay";
};

&davinci_mdio {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&davinci_mdio_default>;
	pinctrl-1 = <&davinci_mdio_sleep>;
	status = "okay";
};

/* we're not using this but let's avoid boot time complaints */
&cpsw_emac0 {
	phy_id = <&davinci_mdio>, <0>;
	phy-mode = "mii";
};

&cpsw_emac1 {
	phy_id = <&davinci_mdio>, <1>;
	phy-mode = "mii";
};

&uart0 {
	status = "okay";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&uart0_pins_default>;
	pinctrl-1 = <&uart0_pins_sleep>;
};

&uart1 {
	status = "okay";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&uart1_pins_default>;
	pinctrl-1 = <&uart1_pins_sleep>;
};

&uart2 {
	status = "okay";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&uart2_pins_default>;
	pinctrl-1 = <&uart2_pins_sleep>;
};

&uart3 {
	status = "okay";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&uart3_pins_default>;
	pinctrl-1 = <&uart3_pins_sleep>;
};

&wkup_m3_ipc {
	ti,set-io-isolation;
	ti,scale-data-fw = "am43x-evm-scale-data.bin";
};

/* &rtc { */
/*   status = "okay"; */
/*   ext-clk-src; */
/* }; */

&pruss0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pruss_pins>;
};

&dss {
	status = "okay";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&dss_pins_default>;
	pinctrl-1 = <&dss_pins_sleep>;

	port {
		dpi_out: endpoint@0 {
			remote-endpoint = <&lcd_in>;
			data-lines = <16>;
		};
	};
};

&sgx {
	status = "okay";
	compatible = "ti,am4376-sgx530", "ti,sgx";
};

&tscadc {
	status = "okay";
	adc {
		ti,adc-channels = <0 1 2 3 4 5 6 7>;
	};
};

&magadc {
	status = "okay";
  mag {
    ti,tracks = <0>;
  };
	adc {
		ti,adc-channels = <0  2  4  6 >;
	};
};

/* TODO: This clearly belongs in dss and not in the root node.
 *     But the dss is poorly written so this cannot go there.
 */
/ {
	lcd0: display@0 {
		compatible = "omapdss,panel-dpi", "panel-dpi";
		label = "lcd";
		status = "okay";
		/* This is the backlight, not really an enable... */
		enable-gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;

		port {
			lcd_in: endpoint {
				remote-endpoint = <&dpi_out>;
			};
		};

		/* Mostly from the panel-dpi example */
		panel-timing {
			clock-frequency = <33000000>;
			hactive = <800>;
			vactive = <480>;
			hfront-porch = <40>;
			hback-porch = <40>;
			hsync-len = <48>;
			vback-porch = <29>;
			vfront-porch = <13>;
			vsync-len = <3>;

			hsync-active = <0>;
			vsync-active = <0>;
			de-active = <1>;
			pixelclk-active = <0>;
		};
	};
};