// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2012 Texas Instruments Incorporated - https://www.ti.com/
 *
 * Author: Robert Nelson <robertcnelson@gmail.com>
 */
/dts-v1/;

#include "am33xx.dtsi"
#include "am335x-osd335x-common.dtsi"

/ {
	model = "TI AM335x PocketBeagle";
	compatible = "ti,am335x-pocketbeagle", "ti,am335x-bone", "ti,am33xx";

	chosen {
		stdout-path = &uart0;
	};

	leds {
		pinctrl-names = "default";
		pinctrl-0 = <&usr_leds_pins>;

		compatible = "gpio-leds";

		usr0 {
			label = "beaglebone:green:usr0";
			gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
			default-state = "off";
		};

		usr1 {
			label = "beaglebone:green:usr1";
			gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "mmc0";
			default-state = "off";
		};

		usr2 {
			label = "beaglebone:green:usr2";
			gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "cpu0";
			default-state = "off";
		};

		usr3 {
			label = "beaglebone:green:usr3";
			gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};
	};

	vmmcsd_fixed: fixedregulator0 {
		compatible = "regulator-fixed";
		regulator-name = "vmmcsd_fixed";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};
};

&gpio0 {
	gpio-line-names =
		"NC",
		"NC",
		"P1.08 [SPI0_CLK]",
		"P1.10 [SPI0_MISO]",
		"P1.12 [SPI0_MOSI]",
		"P1.06 [SPI0_CS]",
		"[MMC0_CD]",
		"P2.29 [SPI1_CLK]",
		"[SYSBOOT 12]",
		"[SYSBOOT 13]",
		"[SYSBOOT 14]",
		"[SYSBOOT 15]",
		"P1.26 [I2C2_SDA]",
		"P1.28 [I2C2_SCL]",
		"P2.11 [I2C1_SDA]",
		"P2.09 [I2C1_SCL]",
		"NC",
		"NC",
		"NC",
		"P2.31 [SPI1_CS]",
		"P1.20 [PRU0.16]",
		"NC",
		"NC",
		"P2.03",
		"NC",
		"NC",
		"P1.34",
		"P2.19",
		"NC",
		"NC",
		"P2.05 [UART4_RX]",
		"P2.07 [UART4_TX]";
};

&gpio1 {
	gpio-line-names =
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"P2.25 [SPI1_MOSI]",
		"P1.32 [UART0_RX]",
		"P1.30 [UART0_TX]",
		"P2.24",
		"P2.33",
		"P2.22",
		"P2.18",
		"NC",
		"NC",
		"P2.01 [PWM1A]",
		"NC",
		"P2.10",
		"[USR LED 0]",
		"[USR LED 1]",
		"[USR LED 2]",
		"[USR LED 3]",
		"P2.06",
		"P2.04",
		"P2.02",
		"P2.08",
		"NC",
		"NC",
		"NC";
};

&gpio2 {
	gpio-line-names =
		"P2.20",
		"P2.17",
		"NC",
		"NC",
		"NC",
		"[EEPROM_WP]",
		"[SYSBOOT 0]",
		"[SYSBOOT 1]",
		"[SYSBOOT 2]",
		"[SYSBOOT 3]",
		"[SYSBOOT 4]",
		"[SYSBOOT 5]",
		"[SYSBOOT 6]",
		"[SYSBOOT 7]",
		"[SYSBOOT 8]",
		"[SYSBOOT 9]",
		"[SYSBOOT 10]",
		"[SYSBOOT 11]",
		"NC",
		"NC",
		"NC",
		"NC",
		"P2.35 [AIN5]",
		"P1.02 [AIN6]",
		"P1.35 [PRU1.10]",
		"P1.04 [PRU1.11]",
		"[MMC0_DAT3]",
		"[MMC0_DAT2]",
		"[MMC0_DAT1]",
		"[MMC0_DAT0]",
		"[MMC0_CLK]",
		"[MMC0_CMD]";
};

&gpio3 {
	gpio-line-names =
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"[I2C0_SDA]",
		"[I2C0_SCL]",
		"[JTAG EMU0]",
		"[JTAG EMU1]",
		"NC",
		"NC",
		"NC",
		"NC",
		"P1.03 [USB1]",
		"P1.36 [PWM0A]",
		"P1.33 [PRU0.1]",
		"P2.32 [PRU0.2]",
		"P2.30 [PRU0.3]",
		"P1.31 [PRU0.4]",
		"P2.34 [PRU0.5]",
		"P2.28 [PRU0.6]",
		"P1.29 [PRU0.7]",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC";
};

&am33xx_pinmux {

	pinctrl-names = "default";

	pinctrl-0 =   < &P2_03_gpio &P1_34_gpio &P2_19_gpio &P2_24_gpio
			&P2_33_gpio &P2_22_gpio &P2_18_gpio &P2_10_gpio
			&P2_06_gpio &P2_04_gpio &P2_02_gpio &P2_08_gpio
			&P2_17_gpio >;

	/* P2_03 (ZCZ ball T10) gpio0_23 0x824 PIN 9 */
	P2_03_gpio: pinmux_P2_03_gpio {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD9, PIN_INPUT_PULLUP, MUX_MODE7)
		>;
		pinctrl-single,bias-pullup   =   < 0x10  0x10  0x00  0x18>;
		pinctrl-single,bias-pulldown   = < 0x10  0x00  0x10  0x18>;
	};

	/* P1_34 (ZCZ ball T11) gpio0_26 0x828 PIN 10 */
	P1_34_gpio: pinmux_P1_34_gpio {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD10, PIN_INPUT_PULLUP, MUX_MODE7)
		>;
		pinctrl-single,bias-pullup   =   < 0x10  0x10  0x00  0x18>;
		pinctrl-single,bias-pulldown   = < 0x10  0x00  0x10  0x18>;
	};

	/* P2_19 (ZCZ ball U12) gpio0_27 0x82c PIN 11 */
	P2_19_gpio: pinmux_P2_19_gpio {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD11, PIN_INPUT_PULLUP, MUX_MODE7)
		>;
		pinctrl-single,bias-pullup   =   < 0x10  0x10  0x00  0x18>;
		pinctrl-single,bias-pulldown   = < 0x10  0x00  0x10  0x18>;
	};

	/* P2_24 (ZCZ ball T12) gpio1_12 0x830 PIN 12 */
	P2_24_gpio: pinmux_P2_24_gpio {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD12, PIN_INPUT_PULLUP, MUX_MODE7)
		>;
		pinctrl-single,bias-pullup   =   < 0x10  0x10  0x00  0x18>;
		pinctrl-single,bias-pulldown   = < 0x10  0x00  0x10  0x18>;
	};

	/* P2_33 (ZCZ ball R12) gpio1_13 0x834 PIN 13 */
	P2_33_gpio: pinmux_P2_33_gpio {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD13, PIN_INPUT_PULLUP, MUX_MODE7)
		>;
		pinctrl-single,bias-pullup   =   < 0x10  0x10  0x00  0x18>;
		pinctrl-single,bias-pulldown   = < 0x10  0x00  0x10  0x18>;
	};

	/* P2_22 (ZCZ ball V13) gpio1_14 0x838 PIN 14 */
	P2_22_gpio: pinmux_P2_22_gpio {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD14, PIN_INPUT_PULLUP, MUX_MODE7)
		>;
		pinctrl-single,bias-pullup   =   < 0x10  0x10  0x00  0x18>;
		pinctrl-single,bias-pulldown   = < 0x10  0x00  0x10  0x18>;
	};

	/* P2_18 (ZCZ ball U13) gpio1_15 0x83c PIN 15 */
	P2_18_gpio: pinmux_P2_18_gpio {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_GPMC_AD15, PIN_INPUT_PULLUP, MUX_MODE7)
		>;
		pinctrl-single,bias-pullup   =   < 0x10  0x10  0x00  0x18>;
		pinctrl-single,bias-pulldown   = < 0x10  0x00  0x10  0x18>;
	};

	/* P2_10 (ZCZ ball R14) gpio1_20 0x850 PIN 20 */
	P2_10_gpio: pinmux_P2_10_gpio {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_GPMC_A4, PIN_INPUT_PULLUP, MUX_MODE7)
		>;
		pinctrl-single,bias-pullup   =   < 0x10  0x10  0x00  0x18>;
		pinctrl-single,bias-pulldown   = < 0x10  0x00  0x10  0x18>;
	};

	/* P2_06 (ZCZ ball U16) gpio1_25 0x864 PIN 25 */
	P2_06_gpio: pinmux_P2_06_gpio {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_GPMC_A9, PIN_INPUT_PULLUP, MUX_MODE7)
		>;
		pinctrl-single,bias-pullup   =   < 0x10  0x10  0x00  0x18>;
		pinctrl-single,bias-pulldown   = < 0x10  0x00  0x10  0x18>;
	};

	/* P2_04 (ZCZ ball T16) gpio1_26 0x868 PIN 26 */
	P2_04_gpio: pinmux_P2_04_gpio {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_GPMC_A10, PIN_INPUT_PULLUP, MUX_MODE7)
		>;
		pinctrl-single,bias-pullup   =   < 0x10  0x10  0x00  0x18>;
		pinctrl-single,bias-pulldown   = < 0x10  0x00  0x10  0x18>;
	};

	/* P2_02 (ZCZ ball V17) gpio1_27 0x86c PIN 27 */
	P2_02_gpio: pinmux_P2_02_gpio {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_GPMC_A11, PIN_INPUT_PULLUP, MUX_MODE7)
		>;
		pinctrl-single,bias-pullup   =   < 0x10  0x10  0x00  0x18>;
		pinctrl-single,bias-pulldown   = < 0x10  0x00  0x10  0x18>;
	};

	/* P2_08 (ZCZ ball U18) gpio1_28 0x878 PIN 30 */
	P2_08_gpio: pinmux_P2_08_gpio {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_GPMC_BEN1, PIN_INPUT_PULLDOWN, MUX_MODE7)
		>;
		pinctrl-single,bias-pullup   =   < 0x00  0x10  0x00  0x18>;
		pinctrl-single,bias-pulldown   = < 0x00  0x00  0x10  0x18>;
	};

	/* P2_17 (ZCZ ball V12) gpio2_1 0x88c PIN 35 */
	P2_17_gpio: pinmux_P2_17_gpio {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_GPMC_CLK, PIN_INPUT_PULLUP, MUX_MODE7)
		>;
		pinctrl-single,bias-pullup   =   < 0x10  0x10  0x00  0x18>;
		pinctrl-single,bias-pulldown   = < 0x10  0x00  0x10  0x18>;
	};

	i2c2_pins: pinmux-i2c2-pins {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_UART1_RTSN, PIN_INPUT_PULLUP, MUX_MODE3)	/* (D17) uart1_rtsn.I2C2_SCL */
			AM33XX_PADCONF(AM335X_PIN_UART1_CTSN, PIN_INPUT_PULLUP, MUX_MODE3)	/* (D18) uart1_ctsn.I2C2_SDA */
		>;
	};

	ehrpwm0_pins: pinmux-ehrpwm0-pins {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_MCASP0_ACLKX, PIN_OUTPUT_PULLDOWN, MUX_MODE1)	/* (A13) mcasp0_aclkx.ehrpwm0A */
		>;
	};

	ehrpwm1_pins: pinmux-ehrpwm1-pins {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_GPMC_A2, PIN_OUTPUT_PULLDOWN, MUX_MODE6)	/* (U14) gpmc_a2.ehrpwm1A */
		>;
	};

	mmc0_pins: pinmux-mmc0-pins {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_SPI0_CS1, PIN_INPUT, MUX_MODE7)		/* (C15) spi0_cs1.gpio0[6] */
			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT0, PIN_INPUT_PULLUP, MUX_MODE0)
			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT1, PIN_INPUT_PULLUP, MUX_MODE0)
			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT2, PIN_INPUT_PULLUP, MUX_MODE0)
			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT3, PIN_INPUT_PULLUP, MUX_MODE0)
			AM33XX_PADCONF(AM335X_PIN_MMC0_CMD, PIN_INPUT_PULLUP, MUX_MODE0)
			AM33XX_PADCONF(AM335X_PIN_MMC0_CLK, PIN_INPUT_PULLUP, MUX_MODE0)
		>;
	};

	spi0_pins: pinmux-spi0-pins {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_SPI0_SCLK, PIN_INPUT_PULLUP, MUX_MODE0)
			AM33XX_PADCONF(AM335X_PIN_SPI0_D0, PIN_INPUT_PULLUP, MUX_MODE0)
			AM33XX_PADCONF(AM335X_PIN_SPI0_D1, PIN_INPUT_PULLUP, MUX_MODE0)
			AM33XX_PADCONF(AM335X_PIN_SPI0_CS0, PIN_INPUT_PULLUP, MUX_MODE0)
		>;
	};

	spi1_pins: pinmux-spi1-pins {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_ECAP0_IN_PWM0_OUT, PIN_INPUT_PULLUP, MUX_MODE4)	/* (C18) eCAP0_in_PWM0_out.spi1_sclk */
			AM33XX_PADCONF(AM335X_PIN_UART0_CTSN, PIN_INPUT_PULLUP, MUX_MODE4)	/* (E18) uart0_ctsn.spi1_d0 */
			AM33XX_PADCONF(AM335X_PIN_UART0_RTSN, PIN_INPUT_PULLUP, MUX_MODE4)	/* (E17) uart0_rtsn.spi1_d1 */
			AM33XX_PADCONF(AM335X_PIN_XDMA_EVENT_INTR0, PIN_INPUT_PULLUP, MUX_MODE4)	/* (A15) xdma_event_intr0.spi1_cs1 */
		>;
	};

	usr_leds_pins: pinmux-usr-leds-pins {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_GPMC_A5, PIN_OUTPUT, MUX_MODE7)		/* (V15) gpmc_a5.gpio1[21] - USR_LED_0 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_A6, PIN_OUTPUT, MUX_MODE7)		/* (U15) gpmc_a6.gpio1[22] - USR_LED_1 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_A7, PIN_OUTPUT, MUX_MODE7)		/* (T15) gpmc_a7.gpio1[23] - USR_LED_2 */
			AM33XX_PADCONF(AM335X_PIN_GPMC_A8, PIN_OUTPUT, MUX_MODE7)		/* (V16) gpmc_a8.gpio1[24] - USR_LED_3 */
		>;
	};

	uart0_pins: pinmux-uart0-pins {
		pinctrl-single,pins = <
			AM33XX_PADCONF(AM335X_PIN_UART0_RXD, PIN_INPUT_PULLUP, MUX_MODE0)
			AM33XX_PADCONF(AM335X_PIN_UART0_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
		>;
	};

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

&epwmss0 {
	status = "okay";
};

&ehrpwm0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&ehrpwm0_pins>;
};

&epwmss1 {
	status = "okay";
};

&ehrpwm1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&ehrpwm1_pins>;
};

&i2c0 {
	eeprom: eeprom@50 {
		compatible = "atmel,24c256";
		reg = <0x50>;
	};
};

&i2c2 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c2_pins>;

	status = "okay";
	clock-frequency = <400000>;
};

&mmc1 {
	status = "okay";
	vmmc-supply = <&vmmcsd_fixed>;
	bus-width = <4>;
	pinctrl-names = "default";
	pinctrl-0 = <&mmc0_pins>;
	cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
};

&rtc {
	system-power-controller;
};

&tscadc {
	status = "okay";
	adc {
		ti,adc-channels = <0 1 2 3 4 5 6 7>;
		ti,chan-step-avg = <16 16 16 16 16 16 16 16>;
		ti,chan-step-opendelay = <0x98 0x98 0x98 0x98 0x98 0x98 0x98 0x98>;
		ti,chan-step-sampledelay = <0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
	};
};

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

	status = "okay";
};

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

	status = "okay";
};

&usb0 {
	dr_mode = "otg";
};

&usb1 {
	dr_mode = "host";
};
