Skip to contentSkip to conversation

pocketbeagle device tree updates

PATCH In review Trevor Woerner 2 participants 6 messages Aug 22, 2023 – Sep 26, 2023

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

v3 cover pocketbeagle device tree updates

A couple device-tree updates for pocketbeagle:

1) Update the LED information

2) Remove a dependency cycle.

3) Now that mainline supports the PRUs via remoteproc, update the pin information to enable the PRU pins and set their mode appropriately as per the silkscreen.

4) Add a missing mode setting for a GPIO pin.

v3:
- patch 1: retain the "label" property for backwards compatibility with beagle documentation and tutorials, simply add "color" and "function" properties
- the remaining patches are unmodified

v2:
- update the patches to remove the pinctrl-0 property early in the set
- patch 2 is new, patches 3 and 4 adjusted accordingly

Trevor Woerner (4):
ARM: dts: am335x-pocketbeagle: update LED information
ARM: dts: am335x-pocketbeagle: remove dependency cycle
ARM: dts: am335x-pocketbeagle: enable pru
ARM: dts: am335x-pocketbeagle: add missing GPIO mux

 .../boot/dts/ti/omap/am335x-pocketbeagle.dts  | 58 ++++++++++++++++---
 1 file changed, 49 insertions(+), 9 deletions(-)
Signature · 1 line
2.41.0.327.gaa9166bcc0ba
#1 lore raw

PATCH v3 1/4 ARM: dts: am335x-pocketbeagle: update LED information

Add the "color" and "description" properties.

---
 arch/arm/boot/dts/ti/omap/am335x-pocketbeagle.dts | 9 +++++++++
 1 file changed, 9 insertions(+)
arch/arm/boot/dts/ti/omap/am335x-pocketbeagle.dts +9 -0
index 5dfe4d4bab93..667dded1a167 100644
@@ -8,6 +8,7 @@
 
 #include "am33xx.dtsi"
 #include "am335x-osd335x-common.dtsi"
+#include <dt-bindings/leds/common.h>
 
 / {
 	model = "TI AM335x PocketBeagle";
@@ -25,6 +26,8 @@ leds {
 
 		led-usr0 {
 			label = "beaglebone:green:usr0";
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_HEARTBEAT;
 			gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
 			linux,default-trigger = "heartbeat";
 			default-state = "off";
@@ -32,6 +35,8 @@ led-usr0 {
 
 		led-usr1 {
 			label = "beaglebone:green:usr1";
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_DISK_ACTIVITY;
 			gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
 			linux,default-trigger = "mmc0";
 			default-state = "off";
@@ -39,6 +44,8 @@ led-usr1 {
 
 		led-usr2 {
 			label = "beaglebone:green:usr2";
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_CPU;
 			gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
 			linux,default-trigger = "cpu0";
 			default-state = "off";
@@ -46,6 +53,8 @@ led-usr2 {
 
 		led-usr3 {
 			label = "beaglebone:green:usr3";
+			color = <LED_COLOR_ID_BLUE>;
+			function = LED_FUNCTION_INDICATOR;
 			gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
 			default-state = "off";
 		};
Signature · 1 line
2.41.0.327.gaa9166bcc0ba
#2 lore raw

PATCH v3 2/4 ARM: dts: am335x-pocketbeagle: remove dependency cycle

In reply to Trevor Woerner

Remove the self-referenceing "pinctrl-0" entry inside the pinmux clause. This eliminates the set of boot messages (one for each referenced pin) similar to the following:

        platform 44e10800.pinmux: Fixed dependency cycle(s) with /ocp/interconnect@44c00000/segment@200000/target-module@10000/scm@0/pinmux@800/pinmux_P2_17_gpio
---
 arch/arm/boot/dts/ti/omap/am335x-pocketbeagle.dts | 5 -----
 1 file changed, 5 deletions(-)
arch/arm/boot/dts/ti/omap/am335x-pocketbeagle.dts +0 -5
index 667dded1a167..d4d1770657da 100644
@@ -217,11 +217,6 @@ &am33xx_pinmux {
 	compatible = "pinconf-single";
 	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: P2-03-gpio-pins {
 		pinctrl-single,pins = <
Signature · 1 line
2.41.0.327.gaa9166bcc0ba
#3 lore raw

PATCH v3 3/4 ARM: dts: am335x-pocketbeagle: enable pru

In reply to Trevor Woerner

Now that the PRU code is upstream and can be loaded via remoteproc, adjust the device tree to enable it and adjust the pin muxing so that the default setting of the pins matches what's is given on the silkscreen and/or pocketbeagle wiring.

Caveat: In most cases, the silkscreen will indicate, for example, "PRU0.7",
but it doesn't indicate whether that pin should be enabled for input or output. On the PRU a different MODE is used for input versus output. So it is unclear which mode to enable (MODE5 = output, MODE6 = input). In cases where there is a choice (PRU1.11, PRU0.7, PRU0.4, PRU0.1, PRU1.10, PRU0.6, PRU0.3, PRU0.2, and PRU0.5) output is assumed (MODE5).

The remaining PRU silkscreen pins do not have a choice and are set as follows:
PRU0.16 MODE5 input
PRU0.15i MODE6 input

---
 .../boot/dts/ti/omap/am335x-pocketbeagle.dts  | 46 +++++++++++++++----
 1 file changed, 36 insertions(+), 10 deletions(-)
arch/arm/boot/dts/ti/omap/am335x-pocketbeagle.dts +36 -10
index d4d1770657da..e35d84ca5706 100644
@@ -121,7 +121,7 @@ &gpio1 {
 		"P2.24",
 		"P2.33",
 		"P2.22",
-		"P2.18",
+		"P2.18 [PRU0.15i]",
 		"NC",
 		"NC",
 		"P2.01 [PWM1A]",
@@ -271,15 +271,6 @@ AM33XX_PADCONF(AM335X_PIN_GPMC_AD14, PIN_INPUT_PULLUP, MUX_MODE7)
 		pinctrl-single,bias-pulldown   = < 0x10  0x00  0x10  0x18>;
 	};
 
-	/* P2_18 (ZCZ ball U13) gpio1_15 0x83c PIN 15 */
-	P2_18_gpio: P2-18-gpio-pins {
-		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: P2-10-gpio-pins {
 		pinctrl-single,pins = <
@@ -405,6 +396,27 @@ AM33XX_PADCONF(AM335X_PIN_GPMC_WAIT0, PIN_INPUT_PULLUP, MUX_MODE6)	/* (T17) gpmc
 			AM33XX_PADCONF(AM335X_PIN_GPMC_WPN, PIN_OUTPUT_PULLDOWN, MUX_MODE6)	/* (U17) gpmc_wpn.uart4_txd */
 		>;
 	};
+
+	pru0_pins: pinmux-pru0-pins {
+		pinctrl-single,pins = <
+			AM33XX_PADCONF(AM335X_PIN_XDMA_EVENT_INTR1, PIN_INPUT_PULLUP, MUX_MODE5)/* (D14) xdma_event_intr1.pr1_pru0_pru_r31_16 */
+			AM33XX_PADCONF(AM335X_PIN_MCASP0_AHCLKX, PIN_OUTPUT_PULLDOWN, MUX_MODE5)/* (A14) mcasp0_ahclkx.pr1_pru0_pru_r30_7 */
+			AM33XX_PADCONF(AM335X_PIN_MCASP0_ACLKR, PIN_OUTPUT_PULLDOWN, MUX_MODE5)	/* (B12) mcasp0_acklr.pr1_pru0_pru_r30_4 */
+			AM33XX_PADCONF(AM335X_PIN_MCASP0_FSX, PIN_OUTPUT_PULLDOWN, MUX_MODE5)	/* (B13) mcasp0_fsx.pr1_pru0_pru_r30_1 */
+			AM33XX_PADCONF(AM335X_PIN_GPMC_AD15, PIN_INPUT_PULLUP, MUX_MODE6)	/* (U13) gpmc_ad15.pr1_pru0_pru_r31_15 */
+			AM33XX_PADCONF(AM335X_PIN_MCASP0_AXR1, PIN_OUTPUT_PULLDOWN, MUX_MODE5)	/* (D13) mcasp0_axr1.pr1_pru0_pru_r30_6 */
+			AM33XX_PADCONF(AM335X_PIN_MCASP0_AHCLKR, PIN_OUTPUT_PULLDOWN, MUX_MODE5)/* (C12) mcasp0_ahclkr.pr1_pru0_pru_r30_3 */
+			AM33XX_PADCONF(AM335X_PIN_MCASP0_AXR0, PIN_OUTPUT_PULLDOWN, MUX_MODE5)	/* (D12) mcasp0_axr0.pr1_pru0_pru_r30_2 */
+			AM33XX_PADCONF(AM335X_PIN_MCASP0_FSR, PIN_OUTPUT_PULLDOWN, MUX_MODE5)	/* (C13) mcasp0_fsr.pr1_pru0_pru_r30_5 */
+		>;
+	};
+
+	pru1_pins: pinmux-pru1-pins {
+		pinctrl-single,pins = <
+			AM33XX_PADCONF(AM335X_PIN_LCD_AC_BIAS_EN, PIN_OUTPUT_PULLDOWN, MUX_MODE5)/*(R6) lcd_ac_bias_en.pr1_pru1_pru_r30_11 */
+			AM33XX_PADCONF(AM335X_PIN_LCD_PCLK, PIN_OUTPUT_PULLDOWN, MUX_MODE5)	/* (V5) lcd_pclk.pr1_pru1_pru_r30_10 */
+		>;
+	};
 };
 
 &epwmss0 {
@@ -486,3 +498,17 @@ &usb0 {
 &usb1 {
 	dr_mode = "host";
 };
+
+&pruss_tm {
+	status = "okay";
+};
+
+&pru0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pru0_pins>;
+};
+
+&pru1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pru1_pins>;
+};
Signature · 1 line
2.41.0.327.gaa9166bcc0ba
#4 lore raw

PATCH v3 4/4 ARM: dts: am335x-pocketbeagle: add missing GPIO mux

In reply to Trevor Woerner

Add the default MODE setting of a GPIO pin that was missing from the device tree (i.e. P2.20/gpio2_00). This is to ensure the GPIO pins match the pocketbeagle wiring expectations.

---
 arch/arm/boot/dts/ti/omap/am335x-pocketbeagle.dts | 10 ++++++++++
 1 file changed, 10 insertions(+)
arch/arm/boot/dts/ti/omap/am335x-pocketbeagle.dts +10 -0
index e35d84ca5706..8042917b3b3b 100644
@@ -271,6 +271,16 @@ AM33XX_PADCONF(AM335X_PIN_GPMC_AD14, PIN_INPUT_PULLUP, MUX_MODE7)
 		pinctrl-single,bias-pulldown   = < 0x10  0x00  0x10  0x18>;
 	};
 
+	/* P2_20 (ZCZ ball T13) gpio2_00 0x888 */
+	P2_20_gpio: P2-20-gpio-pins {
+		pinctrl-single,pins = <
+			AM33XX_PADCONF(AM335X_PIN_GPMC_CSN3, 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: P2-10-gpio-pins {
 		pinctrl-single,pins = <
Signature · 1 line
2.41.0.327.gaa9166bcc0ba
maintainer
#5 lore raw

Re: [PATCH v3 4/4] ARM: dts: am335x-pocketbeagle: add missing GPIO mux

Quoted 20 lines · Trevor Woerner

Add the default MODE setting of a GPIO pin that was missing from the device tree (i.e. P2.20/gpio2_00). This is to ensure the GPIO pins match the pocketbeagle wiring expectations.

---
 arch/arm/boot/dts/ti/omap/am335x-pocketbeagle.dts | 10 ++++++++++
 1 file changed, 10 insertions(+)
arch/arm/boot/dts/ti/omap/am335x-pocketbeagle.dts +3 -0
index e35d84ca5706..8042917b3b3b 100644
@@ -271,6 +271,16 @@ AM33XX_PADCONF(AM335X_PIN_GPMC_AD14, PIN_INPUT_PULLUP, MUX_MODE7)
 		pinctrl-single,bias-pulldown   = < 0x10  0x00  0x10  0x18>;
 	};
 
+	/* P2_20 (ZCZ ball T13) gpio2_00 0x888 */
+	P2_20_gpio: P2-20-gpio-pins {
+		pinctrl-single,pins = <

arch/arm/boot/dts/ti/omap/am335x-pocketbeagle.dts AM33XX_PADCONF(AM335X_PIN_GPMC_AD14, PIN_INPUT_PULLUP, MUX_MODE7) · line 286

Quoted 10 lines
arch/arm/boot/dts/ti/omap/am335x-pocketbeagle.dts +7 -0
+			AM33XX_PADCONF(AM335X_PIN_GPMC_CSN3, 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: P2-10-gpio-pins {
 		pinctrl-single,pins = <

Thanks applying all four patches into omap-for-v6.7/dt. I left out the extra line break above though.

Regards,

Tony