Skip to contentSkip to conversation

ARM: dts: Add am335x-pocketbeagle

PATCH Superseded Robert Nelson 3 participants 4 messages Apr 16, 2018 – Apr 18, 2018

Subsystems (2)

v2 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 ARM: dts: Add am335x-pocketbeagle

PocketBeagle is an ultra-tiny-yet-complete open-source USB-key-fob computer.

This board can be indentified by the BPxx value after A335BNLT (BBB) in the at24 eeprom:
BPxx [aa 55 33 ee 41 33 33 35 42 4e 4c 54 42 50 30 30 |.U3.A335BNLTBP00|]

http://beagleboard.org/pocket
https://github.com/beagleboard/pocketbeagle

CC Tony Lindgren <[email protected]>
CC Jason Kridner <[email protected]>
CC Drew Fustini <[email protected]>
CC Peter Robinson <[email protected]>

---
Changes in v2:
- Use SPDX tags.
- Use eeprom at 50, remove repeated node and fix and remove '_' to fix node_name_chars_strict Warning
- Fix: PocketBeagle Name in Subject (not PocketBeagle Blue)
- Fix: leds remove '_' to fix node_name_chars_strict warning
- Fix: node_name_chars_strict pinmux_*_pins label's.

---
 arch/arm/boot/dts/Makefile                   |   1 +
 arch/arm/boot/dts/am335x-osd335x-common.dtsi | 124 ++++++++++
 arch/arm/boot/dts/am335x-pocketbeagle.dts    | 237 +++++++++++++++++++
 3 files changed, 362 insertions(+)
 create mode 100644 arch/arm/boot/dts/am335x-osd335x-common.dtsi
 create mode 100644 arch/arm/boot/dts/am335x-pocketbeagle.dts
arch/arm/boot/dts/Makefile +1 -0
index 7e2424957809..5a09ff15743b 100644
@@ -688,6 +688,7 @@ dtb-$(CONFIG_SOC_AM33XX) += \
 	am335x-pdu001.dtb \
 	am335x-pepper.dtb \
 	am335x-phycore-rdk.dtb \
+	am335x-pocketbeagle.dtb \
 	am335x-shc.dtb \
 	am335x-sbc-t335.dtb \
 	am335x-sl50.dtb \
arch/arm/boot/dts/am335x-osd335x-common.dtsi new file +124 -0

124 lines not on this page · raw message

arch/arm/boot/dts/am335x-pocketbeagle.dts new file +237 -0

237 lines not on this page · raw message

Signature · 1 line
2.17.0
#1 lore raw

PATCH v2 1/1 ARM: dts: Add am335x-pocketbeagle

Quoted 9 lines · Robert Nelson

PocketBeagle is an ultra-tiny-yet-complete open-source USB-key-fob computer.

This board can be indentified by the BPxx value after A335BNLT (BBB) in the at24 eeprom:
BPxx [aa 55 33 ee 41 33 33 35 42 4e 4c 54 42 50 30 30 |.U3.A335BNLTBP00|]

The EEPROM value isn?t right. We made it PBGL instead of using BNLT.

Quoted 399 lines

http://beagleboard.org/pocket
https://github.com/beagleboard/pocketbeagle

CC Tony Lindgren <[email protected]>
CC Jason Kridner <[email protected]>
CC Drew Fustini <[email protected]>
CC Peter Robinson <[email protected]>

---
Changes in v2:
- Use SPDX tags.
- Use eeprom at 50, remove repeated node and fix and remove '_' to fix node_name_chars_strict Warning
- Fix: PocketBeagle Name in Subject (not PocketBeagle Blue)
- Fix: leds remove '_' to fix node_name_chars_strict warning
- Fix: node_name_chars_strict pinmux_*_pins label's.
---

arch/arm/boot/dts/Makefile                   |   1 +
arch/arm/boot/dts/am335x-osd335x-common.dtsi | 124 ++++++++++
arch/arm/boot/dts/am335x-pocketbeagle.dts    | 237 +++++++++++++++++++
3 files changed, 362 insertions(+)

create mode 100644 arch/arm/boot/dts/am335x-osd335x-common.dtsi create mode 100644 arch/arm/boot/dts/am335x-pocketbeagle.dts

arch/arm/boot/dts/Makefile +1 -0
index 7e2424957809..5a09ff15743b 100644
@@ -688,6 +688,7 @@ dtb-$(CONFIG_SOC_AM33XX) += \
   am335x-pdu001.dtb \
   am335x-pepper.dtb \
   am335x-phycore-rdk.dtb \
+    am335x-pocketbeagle.dtb \
   am335x-shc.dtb \
   am335x-sbc-t335.dtb \
   am335x-sl50.dtb \
arch/arm/boot/dts/am335x-osd335x-common.dtsi new file +124 -0
new file mode 100644
index 000000000000..d2150d207b7a
@@ -0,0 +1,124 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Author: Robert Nelson <[email protected]>
+ */
+
+/ {
+    cpus {
+        cpu at 0 {
+            cpu0-supply = <&dcdc2_reg>;
+        };
+    };
+
+    memory at 80000000 {
+        device_type = "memory";
+        reg = <0x80000000 0x20000000>; /* 512 MB */
+    };
+};
+
+&cpu0_opp_table {
+    /*
+    * Octavo Systems:
+    * The EFUSE_SMA register is not programmed for any of the AM335x wafers
+    * we get and we are not programming them during our production test.
+    * Therefore, from a DEVICE_ID revision point of view, the silicon looks
+    * like it is Revision 2.1.  However, from an EFUSE_SMA point of view for
+    * the HW OPP table, the silicon looks like it is Revision 1.0 (ie the 
+    * EFUSE_SMA register reads as all zeros).
+    */
+    oppnitro-1000000000 {
+        opp-supported-hw = <0x06 0x0100>;
+    };
+};
+
+&am33xx_pinmux {
+    i2c0_pins: pinmux-i2c0-pins {
+        pinctrl-single,pins = <
+            AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0)    /* (C17) I2C0_SDA.I2C0_SDA */
+            AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0)    /* (C16) I2C0_SCL.I2C0_SCL */
+        >;
+    };
+};
+
+&i2c0 {
+    pinctrl-names = "default";
+    pinctrl-0 = <&i2c0_pins>;
+
+    status = "okay";
+    clock-frequency = <400000>;
+
+    tps: tps at 24 {
+        reg = <0x24>;
+    };
+};
+
+/include/ "tps65217.dtsi"
+
+&tps {
+    interrupts = <7>; /* NMI */
+    interrupt-parent = <&intc>;
+
+    ti,pmic-shutdown-controller;
+
+    pwrbutton {
+        interrupts = <2>;
+        status = "okay";
+    };
+
+    regulators {
+        dcdc1_reg: regulator at 0 {
+            regulator-name = "vdds_dpr";
+            regulator-always-on;
+        };
+
+        dcdc2_reg: regulator at 1 {
+            /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
+            regulator-name = "vdd_mpu";
+            regulator-min-microvolt = <925000>;
+            regulator-max-microvolt = <1351500>;
+            regulator-boot-on;
+            regulator-always-on;
+        };
+
+        dcdc3_reg: regulator at 2 {
+            /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
+            regulator-name = "vdd_core";
+            regulator-min-microvolt = <925000>;
+            regulator-max-microvolt = <1150000>;
+            regulator-boot-on;
+            regulator-always-on;
+        };
+
+        ldo1_reg: regulator at 3 {
+            regulator-name = "vio,vrtc,vdds";
+            regulator-always-on;
+        };
+
+        ldo2_reg: regulator at 4 {
+            regulator-name = "vdd_3v3aux";
+            regulator-always-on;
+        };
+
+        ldo3_reg: regulator at 5 {
+            regulator-name = "vdd_1v8";
+            regulator-min-microvolt = <1800000>;
+            regulator-max-microvolt = <1800000>;
+            regulator-always-on;
+        };
+
+        ldo4_reg: regulator at 6 {
+            regulator-name = "vdd_3v3a";
+            regulator-always-on;
+        };
+    };
+};
+
+&aes {
+    status = "okay";
+};
+
+&sham {
+    status = "okay";
+};
arch/arm/boot/dts/am335x-pocketbeagle.dts new file +227 -0
new file mode 100644
index 000000000000..62fe5cab9fae
@@ -0,0 +1,237 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Author: Robert Nelson <[email protected]>
+ */
+/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>;
+    };
+};
+
+&am33xx_pinmux {
+    i2c2_pins: pinmux-i2c2-pins {
+        pinctrl-single,pins = <
+            AM33XX_IOPAD(0x97c, PIN_INPUT_PULLUP | MUX_MODE3)    /* (D17) uart1_rtsn.I2C2_SCL */
+            AM33XX_IOPAD(0x978, PIN_INPUT_PULLUP | MUX_MODE3)    /* (D18) uart1_ctsn.I2C2_SDA */
+        >;
+    };
+
+    ehrpwm0_pins: pinmux-ehrpwm0-pins {
+        pinctrl-single,pins = <
+            AM33XX_IOPAD(0x990, PIN_OUTPUT_PULLDOWN | MUX_MODE1)    /* (A13) mcasp0_aclkx.ehrpwm0A */
+        >;
+    };
+
+    ehrpwm1_pins: pinmux-ehrpwm1-pins {
+        pinctrl-single,pins = <
+            AM33XX_IOPAD(0x848, PIN_OUTPUT_PULLDOWN | MUX_MODE6)    /* (U14) gpmc_a2.ehrpwm1A */
+        >;
+    };
+
+    mmc0_pins: pinmux-mmc0-pins {
+        pinctrl-single,pins = <
+            AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE7)        /* (C15) spi0_cs1.gpio0[6] */
+            AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0)    /* (G16) mmc0_dat0.mmc0_dat0 */
+            AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0)    /* (G15) mmc0_dat1.mmc0_dat1 */
+            AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0)    /* (F18) mmc0_dat2.mmc0_dat2 */
+            AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0)    /* (F17) mmc0_dat3.mmc0_dat3 */
+            AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0)    /* (G18) mmc0_cmd.mmc0_cmd */
+            AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0)    /* (G17) mmc0_clk.mmc0_clk */
+            AM33XX_IOPAD(0x9a0, PIN_INPUT | MUX_MODE4)        /* (B12) mcasp0_aclkr.mmc0_sdwp */
+        >;
+    };
+
+    spi0_pins: pinmux-spi0-pins {
+        pinctrl-single,pins = <
+            AM33XX_IOPAD(0x950, PIN_INPUT_PULLUP | MUX_MODE0)    /* (A17) spi0_sclk.spi0_sclk */
+            AM33XX_IOPAD(0x954, PIN_INPUT_PULLUP | MUX_MODE0)    /* (B17) spi0_d0.spi0_d0 */
+            AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE0)    /* (B16) spi0_d1.spi0_d1 */
+            AM33XX_IOPAD(0x95c, PIN_INPUT_PULLUP | MUX_MODE0)    /* (A16) spi0_cs0.spi0_cs0 */
+        >;
+    };
+
+    spi1_pins: pinmux-spi1-pins {
+        pinctrl-single,pins = <
+            AM33XX_IOPAD(0x964, PIN_INPUT_PULLUP | MUX_MODE4)    /* (C18) eCAP0_in_PWM0_out.spi1_sclk */
+            AM33XX_IOPAD(0x968, PIN_INPUT_PULLUP | MUX_MODE4)    /* (E18) uart0_ctsn.spi1_d0 */
+            AM33XX_IOPAD(0x96c, PIN_INPUT_PULLUP | MUX_MODE4)    /* (E17) uart0_rtsn.spi1_d1 */
+            AM33XX_IOPAD(0x9b0, PIN_INPUT_PULLUP | MUX_MODE4)    /* (A15) xdma_event_intr0.spi1_cs1 */
+        >;
+    };
+
+    usr_leds_pins: pinmux-usr-leds-pins {
+        pinctrl-single,pins = <
+            AM33XX_IOPAD(0x854, PIN_OUTPUT | MUX_MODE7)        /* (V15) gpmc_a5.gpio1[21] - USR_LED_0 */
+            AM33XX_IOPAD(0x858, PIN_OUTPUT | MUX_MODE7)        /* (U15) gpmc_a6.gpio1[22] - USR_LED_1 */
+            AM33XX_IOPAD(0x85c, PIN_OUTPUT | MUX_MODE7)        /* (T15) gpmc_a7.gpio1[23] - USR_LED_2 */
+            AM33XX_IOPAD(0x860, PIN_OUTPUT | MUX_MODE7)        /* (V16) gpmc_a8.gpio1[24] - USR_LED_3 */
+        >;
+    };
+
+    uart0_pins: pinmux-uart0-pins {
+        pinctrl-single,pins = <
+            AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0)    /* (E15) uart0_rxd.uart0_rxd */
+            AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0)    /* (E16) uart0_txd.uart0_txd */
+        >;
+    };
+
+    uart4_pins: pinmux-uart4-pins {
+        pinctrl-single,pins = <
+            AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE6)    /* (T17) gpmc_wait0.uart4_rxd */
+            AM33XX_IOPAD(0x874, 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 at 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";
+};
+
+&usb {
+    status = "okay";
+};
+
+&usb_ctrl_mod {
+    status = "okay";
+};
+
+&usb0_phy {
+    status = "okay";
+};
+
+&usb0 {
+    status = "okay";
+    dr_mode = "otg";
+};
+
+&usb1_phy {
+    status = "okay";

arch/arm/boot/dts/am335x-pocketbeagle.dts line 237

Quoted 10 lines
arch/arm/boot/dts/am335x-pocketbeagle.dts new file +10 -0
+};
+
+&usb1 {
+    status = "okay";
+    dr_mode = "host";
+};
+
+&cppi41dma  {
+    status = "okay";
+};

Is there anything preventing the PRU and GPIO pins from being defined? I guess the GPIO pins might not be exposed through SYSFS due to lack of upstream drivers, but could the pinmux at least be set?

Quoted 7 lines
Signature · 6 lines
2.17.0

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#2 lore raw

PATCH v2 1/1 ARM: dts: Add am335x-pocketbeagle

Quoted 11 lines · Jason Kridner
Quoted 9 lines · Robert Nelson

PocketBeagle is an ultra-tiny-yet-complete open-source USB-key-fob computer.

This board can be indentified by the BPxx value after A335BNLT (BBB) in the at24 eeprom:
BPxx [aa 55 33 ee 41 33 33 35 42 4e 4c 54 42 50 30 30 |.U3.A335BNLTBP00|]

The EEPROM value isn?t right. We made it PBGL instead of using BNLT.

Thanks Jason,

Yeah I must have got distracted and coped the one off "PocketBone" value, in v3 i have it changed to:

+This board family can be indentified by the A335PBGL in the at24 eeprom:
+A2: [aa 55 33 ee 41 33 33 35 50 42 47 4c 30 30 41 32 |.U3.A335PBGL00A2|]

Quoted 1 line

Is there anything preventing the PRU and GPIO pins from being defined? I guess the GPIO pins might not be exposed through SYSFS due to lack of upstream drivers, but could the pinmux at least be set?

Yeah, we could add those default pinmux's too like I did for spi, (we use a spidev node, but that can't go mainline)

Regards,

Signature · 2 lines
Robert Nelson
https://rcn-ee.com/
#3 lore raw

PATCH v2 1/1 ARM: dts: Add am335x-pocketbeagle

In reply to Robert Nelson
Quoted 6 lines · On Mon, 16 Apr 2018 17:08:28 -0500 Robert Nelson <[email protected]>…

PocketBeagle is an ultra-tiny-yet-complete open-source USB-key-fob computer.

This board can be indentified by the BPxx value after A335BNLT (BBB) in the at24 eeprom:
BPxx [aa 55 33 ee 41 33 33 35 42 4e 4c 54 42 50 30 30 |.U3.A335BNLTBP00|]

Quoted 8 lines

http://beagleboard.org/pocket
https://github.com/beagleboard/pocketbeagle

CC Tony Lindgren <[email protected]>
CC Jason Kridner <[email protected]>
CC Drew Fustini <[email protected]>
CC Peter Robinson <[email protected]>

Hi Robert,

Great to see this. One small comment, the copyright notices for 2012 seem a little unlikely to be 'complete'. I guess a lot is copied from files dating back that far, but not everything so do we not want to reflect more recent work on these?

Jonathan

Quoted 33 lines

---
Changes in v2:
- Use SPDX tags.
- Use eeprom at 50, remove repeated node and fix and remove '_' to fix node_name_chars_strict Warning
- Fix: PocketBeagle Name in Subject (not PocketBeagle Blue)
- Fix: leds remove '_' to fix node_name_chars_strict warning
- Fix: node_name_chars_strict pinmux_*_pins label's.

---
 arch/arm/boot/dts/Makefile                   |   1 +
 arch/arm/boot/dts/am335x-osd335x-common.dtsi | 124 ++++++++++
 arch/arm/boot/dts/am335x-pocketbeagle.dts    | 237 +++++++++++++++++++
 3 files changed, 362 insertions(+)
 create mode 100644 arch/arm/boot/dts/am335x-osd335x-common.dtsi
 create mode 100644 arch/arm/boot/dts/am335x-pocketbeagle.dts
arch/arm/boot/dts/Makefile +1 -0
index 7e2424957809..5a09ff15743b 100644
@@ -688,6 +688,7 @@ dtb-$(CONFIG_SOC_AM33XX) += \
 	am335x-pdu001.dtb \
 	am335x-pepper.dtb \
 	am335x-phycore-rdk.dtb \
+	am335x-pocketbeagle.dtb \
 	am335x-shc.dtb \
 	am335x-sbc-t335.dtb \
 	am335x-sl50.dtb \
arch/arm/boot/dts/am335x-osd335x-common.dtsi new file +0 -0
new file mode 100644
index 000000000000..d2150d207b7a

arch/arm/boot/dts/am335x-osd335x-common.dtsi line 3

Quoted 3 lines
arch/arm/boot/dts/am335x-osd335x-common.dtsi new file +3 -0
@@ -0,0 +1,124 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/

Seems a little odd not to have a 'slightly' more recent copyright notice for a device that definitely didn't exist in 2012!

Quoted 127 lines
arch/arm/boot/dts/am335x-osd335x-common.dtsi new file +121 -0
+ *
+ * Author: Robert Nelson <[email protected]>
+ */
+
+/ {
+	cpus {
+		cpu at 0 {
+			cpu0-supply = <&dcdc2_reg>;
+		};
+	};
+
+	memory at 80000000 {
+		device_type = "memory";
+		reg = <0x80000000 0x20000000>; /* 512 MB */
+	};
+};
+
+&cpu0_opp_table {
+	/*
+	* Octavo Systems:
+	* The EFUSE_SMA register is not programmed for any of the AM335x wafers
+	* we get and we are not programming them during our production test.
+	* Therefore, from a DEVICE_ID revision point of view, the silicon looks
+	* like it is Revision 2.1.  However, from an EFUSE_SMA point of view for
+	* the HW OPP table, the silicon looks like it is Revision 1.0 (ie the 
+	* EFUSE_SMA register reads as all zeros).
+	*/
+	oppnitro-1000000000 {
+		opp-supported-hw = <0x06 0x0100>;
+	};
+};
+
+&am33xx_pinmux {
+	i2c0_pins: pinmux-i2c0-pins {
+		pinctrl-single,pins = <
+			AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0)	/* (C17) I2C0_SDA.I2C0_SDA */
+			AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0)	/* (C16) I2C0_SCL.I2C0_SCL */
+		>;
+	};
+};
+
+&i2c0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c0_pins>;
+
+	status = "okay";
+	clock-frequency = <400000>;
+
+	tps: tps at 24 {
+		reg = <0x24>;
+	};
+};
+
+/include/ "tps65217.dtsi"
+
+&tps {
+	interrupts = <7>; /* NMI */
+	interrupt-parent = <&intc>;
+
+	ti,pmic-shutdown-controller;
+
+	pwrbutton {
+		interrupts = <2>;
+		status = "okay";
+	};
+
+	regulators {
+		dcdc1_reg: regulator at 0 {
+			regulator-name = "vdds_dpr";
+			regulator-always-on;
+		};
+
+		dcdc2_reg: regulator at 1 {
+			/* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
+			regulator-name = "vdd_mpu";
+			regulator-min-microvolt = <925000>;
+			regulator-max-microvolt = <1351500>;
+			regulator-boot-on;
+			regulator-always-on;
+		};
+
+		dcdc3_reg: regulator at 2 {
+			/* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
+			regulator-name = "vdd_core";
+			regulator-min-microvolt = <925000>;
+			regulator-max-microvolt = <1150000>;
+			regulator-boot-on;
+			regulator-always-on;
+		};
+
+		ldo1_reg: regulator at 3 {
+			regulator-name = "vio,vrtc,vdds";
+			regulator-always-on;
+		};
+
+		ldo2_reg: regulator at 4 {
+			regulator-name = "vdd_3v3aux";
+			regulator-always-on;
+		};
+
+		ldo3_reg: regulator at 5 {
+			regulator-name = "vdd_1v8";
+			regulator-min-microvolt = <1800000>;
+			regulator-max-microvolt = <1800000>;
+			regulator-always-on;
+		};
+
+		ldo4_reg: regulator at 6 {
+			regulator-name = "vdd_3v3a";
+			regulator-always-on;
+		};
+	};
+};
+
+&aes {
+	status = "okay";
+};
+
+&sham {
+	status = "okay";
+};
arch/arm/boot/dts/am335x-pocketbeagle.dts new file +0 -0
new file mode 100644
index 000000000000..62fe5cab9fae

arch/arm/boot/dts/am335x-pocketbeagle.dts line 3

Quoted 3 lines
arch/arm/boot/dts/am335x-pocketbeagle.dts new file +3 -0
@@ -0,0 +1,237 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/

This one didn't exist back then either ;)

Quoted 234 lines
arch/arm/boot/dts/am335x-pocketbeagle.dts new file +234 -0
+ *
+ * Author: Robert Nelson <[email protected]>
+ */
+/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>;
+	};
+};
+
+&am33xx_pinmux {
+	i2c2_pins: pinmux-i2c2-pins {
+		pinctrl-single,pins = <
+			AM33XX_IOPAD(0x97c, PIN_INPUT_PULLUP | MUX_MODE3)	/* (D17) uart1_rtsn.I2C2_SCL */
+			AM33XX_IOPAD(0x978, PIN_INPUT_PULLUP | MUX_MODE3)	/* (D18) uart1_ctsn.I2C2_SDA */
+		>;
+	};
+
+	ehrpwm0_pins: pinmux-ehrpwm0-pins {
+		pinctrl-single,pins = <
+			AM33XX_IOPAD(0x990, PIN_OUTPUT_PULLDOWN | MUX_MODE1)	/* (A13) mcasp0_aclkx.ehrpwm0A */
+		>;
+	};
+
+	ehrpwm1_pins: pinmux-ehrpwm1-pins {
+		pinctrl-single,pins = <
+			AM33XX_IOPAD(0x848, PIN_OUTPUT_PULLDOWN | MUX_MODE6)	/* (U14) gpmc_a2.ehrpwm1A */
+		>;
+	};
+
+	mmc0_pins: pinmux-mmc0-pins {
+		pinctrl-single,pins = <
+			AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE7)		/* (C15) spi0_cs1.gpio0[6] */
+			AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0)	/* (G16) mmc0_dat0.mmc0_dat0 */
+			AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0)	/* (G15) mmc0_dat1.mmc0_dat1 */
+			AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0)	/* (F18) mmc0_dat2.mmc0_dat2 */
+			AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0)	/* (F17) mmc0_dat3.mmc0_dat3 */
+			AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0)	/* (G18) mmc0_cmd.mmc0_cmd */
+			AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0)	/* (G17) mmc0_clk.mmc0_clk */
+			AM33XX_IOPAD(0x9a0, PIN_INPUT | MUX_MODE4)		/* (B12) mcasp0_aclkr.mmc0_sdwp */
+		>;
+	};
+
+	spi0_pins: pinmux-spi0-pins {
+		pinctrl-single,pins = <
+			AM33XX_IOPAD(0x950, PIN_INPUT_PULLUP | MUX_MODE0)	/* (A17) spi0_sclk.spi0_sclk */
+			AM33XX_IOPAD(0x954, PIN_INPUT_PULLUP | MUX_MODE0)	/* (B17) spi0_d0.spi0_d0 */
+			AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE0)	/* (B16) spi0_d1.spi0_d1 */
+			AM33XX_IOPAD(0x95c, PIN_INPUT_PULLUP | MUX_MODE0)	/* (A16) spi0_cs0.spi0_cs0 */
+		>;
+	};
+
+	spi1_pins: pinmux-spi1-pins {
+		pinctrl-single,pins = <
+			AM33XX_IOPAD(0x964, PIN_INPUT_PULLUP | MUX_MODE4)	/* (C18) eCAP0_in_PWM0_out.spi1_sclk */
+			AM33XX_IOPAD(0x968, PIN_INPUT_PULLUP | MUX_MODE4)	/* (E18) uart0_ctsn.spi1_d0 */
+			AM33XX_IOPAD(0x96c, PIN_INPUT_PULLUP | MUX_MODE4)	/* (E17) uart0_rtsn.spi1_d1 */
+			AM33XX_IOPAD(0x9b0, PIN_INPUT_PULLUP | MUX_MODE4)	/* (A15) xdma_event_intr0.spi1_cs1 */
+		>;
+	};
+
+	usr_leds_pins: pinmux-usr-leds-pins {
+		pinctrl-single,pins = <
+			AM33XX_IOPAD(0x854, PIN_OUTPUT | MUX_MODE7)		/* (V15) gpmc_a5.gpio1[21] - USR_LED_0 */
+			AM33XX_IOPAD(0x858, PIN_OUTPUT | MUX_MODE7)		/* (U15) gpmc_a6.gpio1[22] - USR_LED_1 */
+			AM33XX_IOPAD(0x85c, PIN_OUTPUT | MUX_MODE7)		/* (T15) gpmc_a7.gpio1[23] - USR_LED_2 */
+			AM33XX_IOPAD(0x860, PIN_OUTPUT | MUX_MODE7)		/* (V16) gpmc_a8.gpio1[24] - USR_LED_3 */
+		>;
+	};
+
+	uart0_pins: pinmux-uart0-pins {
+		pinctrl-single,pins = <
+			AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0)	/* (E15) uart0_rxd.uart0_rxd */
+			AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* (E16) uart0_txd.uart0_txd */
+		>;
+	};
+
+	uart4_pins: pinmux-uart4-pins {
+		pinctrl-single,pins = <
+			AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE6)	/* (T17) gpmc_wait0.uart4_rxd */
+			AM33XX_IOPAD(0x874, 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 at 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";
+};
+
+&usb {
+	status = "okay";
+};
+
+&usb_ctrl_mod {
+	status = "okay";
+};
+
+&usb0_phy {
+	status = "okay";
+};
+
+&usb0 {
+	status = "okay";
+	dr_mode = "otg";
+};
+
+&usb1_phy {
+	status = "okay";
+};
+
+&usb1 {
+	status = "okay";
+	dr_mode = "host";
+};
+
+&cppi41dma  {
+	status = "okay";
+};