Skip to contentSkip to conversation

dt-bindings: arm: ti: Add BeagleY-AI

PATCH Superseded Robert Nelson 4 participants 17 messages Aug 22, 2024 – Aug 28, 2024

Subsystems (2)

v3 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/2 dt-bindings: arm: ti: Add BeagleY-AI

This board is based on ti,j722s family using the am67a variation.

https://beagley-ai.org/
https://openbeagle.org/beagley-ai/beagley-ai

CC Nishanth Menon <[email protected]>
CC Vignesh Raghavendra <[email protected]>
CC Tero Kristo <[email protected]>
CC Rob Herring <[email protected]>
CC Krzysztof Kozlowski <[email protected]>
CC Conor Dooley <[email protected]>
CC Andrew Davis <[email protected]>
CC Jared McArthur <[email protected]>
CC Jason Kridner <[email protected]>
CC Deepak Khatri <[email protected]>
CC Drew Fustini <[email protected]>

---
Changes since v2:
- cc more maintainers and [email protected]
Changes since v1:
- switched to the TI model am67a over the family name j722s

---
 Documentation/devicetree/bindings/arm/ti/k3.yaml | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/arm/ti/k3.yaml +1 -0
index 4d9c5fbb4c26..5df99e361c21 100644
@@ -140,6 +140,7 @@ properties:
       - description: K3 J722S SoC and Boards
         items:
           - enum:
+              - beagle,am67a-beagley-ai
               - ti,j722s-evm
           - const: ti,j722s
 
Signature · 1 line
2.39.2
#1 lore raw

PATCH v3 2/2 arm64: dts: ti: Add k3-am67a-beagley-ai

BeagleBoard.org BeagleY-AI is an easy to use, affordable open source hardware single board computer based on the Texas Instruments AM67A, which features a quad-core 64-bit Arm CPU subsystem, 2 general-purpose digital-signal-processors (DSP) and matrix-multiply-accelerators (MMA), GPU, vision and deep learning accelerators, and multiple Arm Cortex-R5 cores for low-power, low-latency GPIO control.

https://beagley-ai.org/
https://openbeagle.org/beagley-ai/beagley-ai

CC Rob Herring <[email protected]>
CC Krzysztof Kozlowski <[email protected]>
CC Conor Dooley <[email protected]>
CC Vignesh Raghavendra <[email protected]>
CC Nishanth Menon <[email protected]>
CC Andrew Davis <[email protected]>
CC Jai Luthra <[email protected]>
CC Roger Quadros <[email protected]>
CC Siddharth Vadapalli <[email protected]>
CC Jared McArthur <[email protected]>
CC Jason Kridner <[email protected]>
CC Deepak Khatri <[email protected]>
CC Drew Fustini <[email protected]>

---
Changes since v2:
- added led indictors
- sdhci1 use MMC1_SDCD.GPIO1_48 for card detect
- cleaned up order of status = "okay"
- wkup_i2c0 moved to 100000
- eeprom added atmel,24c32
- rtc added dallas,ds1340
- sdhci1 use ti,fails-without-test-cd
Changes since v1:
- fixed incorrect vdd-3v3-sd-pins-default name
- updated hdmi VDD_1V2 regulator for production pcb
- switched device tree name from k3-j722s-beagley-ai to k3-am67a-beagley-ai
- removed cpsw_port2 node
- enable UHS support for MMCSD

---
 arch/arm64/boot/dts/ti/Makefile               |   1 +
 .../arm64/boot/dts/ti/k3-am67a-beagley-ai.dts | 406 ++++++++++++++++++
 2 files changed, 407 insertions(+)
 create mode 100644 arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts
arch/arm64/boot/dts/ti/Makefile +1 -0
index e20b27ddf901..c89c9b8bab38 100644
@@ -110,6 +110,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-j721s2-evm.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-j721s2-evm-pcie1-ep.dtbo
 
 # Boards with J722s SoC
+dtb-$(CONFIG_ARCH_K3) += k3-am67a-beagley-ai.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-j722s-evm.dtb
 
 # Boards with J784s4 SoC
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +406 -0

406 lines not on this page · raw message

Signature · 1 line
2.39.2
#2 lore raw

Re: [PATCH v3 2/2] arm64: dts: ti: Add k3-am67a-beagley-ai

Quoted 19 lines · Robert Nelson

BeagleBoard.org BeagleY-AI is an easy to use, affordable open source hardware single board computer based on the Texas Instruments AM67A, which features a quad-core 64-bit Arm CPU subsystem, 2 general-purpose digital-signal-processors (DSP) and matrix-multiply-accelerators (MMA), GPU, vision and deep learning accelerators, and multiple Arm Cortex-R5 cores for low-power, low-latency GPIO control.

https://beagley-ai.org/
https://openbeagle.org/beagley-ai/beagley-ai

CC Rob Herring <[email protected]>
CC Krzysztof Kozlowski <[email protected]>
CC Conor Dooley <[email protected]>
CC Vignesh Raghavendra <[email protected]>
CC Nishanth Menon <[email protected]>
CC Andrew Davis <[email protected]>
CC Jai Luthra <[email protected]>
CC Roger Quadros <[email protected]>
Quoted 8 lines
CC Siddharth Vadapalli <[email protected]>
CC Jared McArthur <[email protected]>
CC Jason Kridner <[email protected]>
CC Deepak Khatri <[email protected]>
CC Drew Fustini <[email protected]>

Please drop the autogenerated scripts/get_maintainer.pl CC-entries from commit msg. There is no single need to store automated output of get_maintainers.pl in the git log. It can be easily re-created at any given time, thus its presence in the git history is redundant and obfuscates the log.

If you need it for your own patch management purposes, keep it under the --- separator.

Quoted 26 lines

---
Changes since v2:
- added led indictors
- sdhci1 use MMC1_SDCD.GPIO1_48 for card detect
- cleaned up order of status = "okay"
- wkup_i2c0 moved to 100000
- eeprom added atmel,24c32
- rtc added dallas,ds1340
- sdhci1 use ti,fails-without-test-cd
Changes since v1:
- fixed incorrect vdd-3v3-sd-pins-default name
- updated hdmi VDD_1V2 regulator for production pcb
- switched device tree name from k3-j722s-beagley-ai to k3-am67a-beagley-ai
- removed cpsw_port2 node
- enable UHS support for MMCSD

---
 arch/arm64/boot/dts/ti/Makefile               |   1 +
 .../arm64/boot/dts/ti/k3-am67a-beagley-ai.dts | 406 ++++++++++++++++++
 2 files changed, 407 insertions(+)
 create mode 100644 arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts
arch/arm64/boot/dts/ti/Makefile +0 -0
index e20b27ddf901..c89c9b8bab38 100644

arch/arm64/boot/dts/ti/Makefile dtb-$(CONFIG_ARCH_K3) += k3-j721s2-evm.dtb · line 113

Quoted 4 lines
arch/arm64/boot/dts/ti/Makefile +1 -0
@@ -110,6 +110,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-j721s2-evm.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-j721s2-evm-pcie1-ep.dtbo
 
 # Boards with J722s SoC
+dtb-$(CONFIG_ARCH_K3) += k3-am67a-beagley-ai.dtb

So am67 is J772s? Then why calling it am67a?

Quoted 16 lines
arch/arm64/boot/dts/ti/Makefile +0 -0
 dtb-$(CONFIG_ARCH_K3) += k3-j722s-evm.dtb
 
 # Boards with J784s4 SoC
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +7 -0
new file mode 100644
index 000000000000..c8cbb875d4c7
@@ -0,0 +1,406 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * https://beagley-ai.org/
+ *
+ * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
+ * Copyright (C) 2024 Robert Nelson, BeagleBoard.org Foundation
+ */

...

Quoted 11 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +11 -0
+	vsys_5v0: regulator-1 {
+		compatible = "regulator-fixed";
+		regulator-name = "vsys_5v0";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		regulator-always-on;
+		regulator-boot-on;
+		bootph-all;
+	};
+
+	vdd_3v3: regulator-2 {

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 81

Quoted 10 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +10 -0
+		compatible = "regulator-fixed";
+		regulator-name = "vdd_3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		vin-supply = <&vsys_5v0>;
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+	vdd_mmc1: regulator-mmc1 {

Keep consistent naming of the nodes. Why this is sometimes "1" sometimes "mmc"?

Please use name for all fixed regulators which matches current format
recommendation: 'regulator-[0-9]v[0-9]'
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml?h=v6.11-rc1#n46

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 94

Quoted 13 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +13 -0
+		compatible = "regulator-fixed";
+		regulator-name = "vdd_mmc1";
+		pinctrl-names = "default";
+		pinctrl-0 = <&vdd_3v3_sd_pins_default>;
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-boot-on;
+		enable-active-high;
+		gpio = <&main_gpio1 50 GPIO_ACTIVE_HIGH>;
+		bootph-all;
+	};
+
+	vdd_sd_dv: regulator-TLV71033 {

No upper-case characters.

See DTS coding style.

Quoted 44 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +44 -0
+		compatible = "regulator-gpio";
+		regulator-name = "tlv71033";
+		pinctrl-names = "default";
+		pinctrl-0 = <&vdd_sd_dv_pins_default>;
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-boot-on;
+		vin-supply = <&vsys_5v0>;
+		gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>;
+		states = <1800000 0x0>,
+			 <3300000 0x1>;
+		bootph-all;
+	};
+
+	vsys_io_1v8: regulator-vsys-io-1v8 {
+		compatible = "regulator-fixed";
+		regulator-name = "vsys_io_1v8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+	vsys_io_1v2: regulator-vsys-io-1v2 {
+		compatible = "regulator-fixed";
+		regulator-name = "vsys_io_1v2";
+		regulator-min-microvolt = <1200000>;
+		regulator-max-microvolt = <1200000>;
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&led_pins_default>;
+
+		led-0 {
+			gpios = <&main_gpio0 11 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "default-off";
+			default-state = "off";
+		};
+
+		led-1 {

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 148

Quoted 10 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +10 -0
+			gpios = <&main_gpio0 12 GPIO_ACTIVE_HIGH>;
+			function = LED_FUNCTION_HEARTBEAT;
+			linux,default-trigger = "heartbeat";
+			default-state = "on";
+		};
+	};
+};
+
+&main_pmx0 {
+

Drop blank line.

Quoted 111 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +111 -0
+	main_i2c0_pins_default: main-i2c0-default-pins {
+		pinctrl-single,pins = <
+			J722S_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (D23) I2C0_SCL */
+			J722S_IOPAD(0x01e4, PIN_INPUT_PULLUP, 0) /* (B22) I2C0_SDA */
+		>;
+		bootph-all;
+	};
+
+	main_uart0_pins_default: main-uart0-default-pins {
+		pinctrl-single,pins = <
+			J722S_IOPAD(0x01c8, PIN_INPUT, 0)	/* (A22) UART0_RXD */
+			J722S_IOPAD(0x01cc, PIN_OUTPUT, 0)	/* (B22) UART0_TXD */
+		>;
+		bootph-all;
+	};
+
+	vdd_sd_dv_pins_default: vdd-sd-dv-default-pins {
+		pinctrl-single,pins = <
+			J722S_IOPAD(0x0244, PIN_OUTPUT, 7) /* (A24) MMC1_SDWP.GPIO1_49 */
+		>;
+		bootph-all;
+	};
+
+	main_mmc1_pins_default: main-mmc1-default-pins {
+		pinctrl-single,pins = <
+			J722S_IOPAD(0x023c, PIN_INPUT, 0) /* (H22) MMC1_CMD */
+			J722S_IOPAD(0x0234, PIN_OUTPUT, 0) /* (H24) MMC1_CLK */
+			J722S_IOPAD(0x0230, PIN_INPUT, 0) /* (H23) MMC1_DAT0 */
+			J722S_IOPAD(0x022c, PIN_INPUT_PULLUP, 0) /* (H20) MMC1_DAT1 */
+			J722S_IOPAD(0x0228, PIN_INPUT_PULLUP, 0) /* (J23) MMC1_DAT2 */
+			J722S_IOPAD(0x0224, PIN_INPUT_PULLUP, 0) /* (H25) MMC1_DAT3 */
+			J722S_IOPAD(0x0240, PIN_INPUT, 7) /* (B24) MMC1_SDCD.GPIO1_48 */
+		>;
+		bootph-all;
+	};
+
+	mdio_pins_default: mdio-default-pins {
+		pinctrl-single,pins = <
+			J722S_IOPAD(0x0160, PIN_OUTPUT, 0) /* (AC24) MDIO0_MDC */
+			J722S_IOPAD(0x015c, PIN_INPUT, 0) /* (AD25) MDIO0_MDIO */
+		>;
+	};
+
+	rgmii1_pins_default: rgmii1-default-pins {
+		pinctrl-single,pins = <
+			J722S_IOPAD(0x014c, PIN_INPUT, 0) /* (AC25) RGMII1_RD0 */
+			J722S_IOPAD(0x0150, PIN_INPUT, 0) /* (AD27) RGMII1_RD1 */
+			J722S_IOPAD(0x0154, PIN_INPUT, 0) /* (AE24) RGMII1_RD2 */
+			J722S_IOPAD(0x0158, PIN_INPUT, 0) /* (AE26) RGMII1_RD3 */
+			J722S_IOPAD(0x0148, PIN_INPUT, 0) /* (AE27) RGMII1_RXC */
+			J722S_IOPAD(0x0144, PIN_INPUT, 0) /* (AD23) RGMII1_RX_CTL */
+			J722S_IOPAD(0x0134, PIN_OUTPUT, 0) /* (AF27) RGMII1_TD0 */
+			J722S_IOPAD(0x0138, PIN_OUTPUT, 0) /* (AE23) RGMII1_TD1 */
+			J722S_IOPAD(0x013c, PIN_OUTPUT, 0) /* (AG25) RGMII1_TD2 */
+			J722S_IOPAD(0x0140, PIN_OUTPUT, 0) /* (AF24) RGMII1_TD3 */
+			J722S_IOPAD(0x0130, PIN_OUTPUT, 0) /* (AG26) RGMII1_TXC */
+			J722S_IOPAD(0x012c, PIN_OUTPUT, 0) /* (AF25) RGMII1_TX_CTL */
+		>;
+	};
+
+	led_pins_default: led-default-pins {
+		pinctrl-single,pins = <
+			J722S_IOPAD(0x002c, PIN_OUTPUT, 7) /* (K26) OSPI0_CSn0.GPIO0_11 */
+			J722S_IOPAD(0x0030, PIN_OUTPUT, 7) /* (K23) OSPI0_CSn1.GPIO0_12 */
+		>;
+	};
+
+	pmic_irq_pins_default: pmic-irq-default-pins {
+		pinctrl-single,pins = <
+			J722S_IOPAD(0x01f4, PIN_INPUT_PULLUP, 0) /* (B23) EXTINTn */
+		>;
+	};
+
+	vdd_3v3_sd_pins_default: vdd-3v3-sd-default-pins {
+		pinctrl-single,pins = <
+			J722S_IOPAD(0x0254, PIN_OUTPUT, 7) /* (E25) USB0_DRVVBUS.GPIO1_50 */
+		>;
+	};
+};
+
+&cpsw3g {
+	pinctrl-names = "default";
+	pinctrl-0 = <&rgmii1_pins_default>, <&gbe_pmx_obsclk>;
+
+	assigned-clocks = <&k3_clks 227 0>;
+	assigned-clock-parents = <&k3_clks 227 6>;
+	status = "okay";
+};
+
+&cpsw3g_mdio {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mdio_pins_default>;
+	status = "okay";
+
+	cpsw3g_phy0: ethernet-phy@0 {
+		reg = <0>;
+		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+		ti,min-output-impedance;
+	};
+};
+
+&cpsw_port1 {
+	phy-mode = "rgmii-rxid";
+	phy-handle = <&cpsw3g_phy0>;
+	status = "okay";
+};
+
+&main_gpio1 {
+	status = "okay";
+};

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 269

Quoted 10 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +10 -0
+
+&main_uart0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&main_uart0_pins_default>;
+	bootph-all;
+	status = "okay";
+};
+
+&mcu_pmx0 {
+

Drop blank line

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 278

Quoted 9 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +9 -0
+	wkup_uart0_pins_default: wkup-uart0-default-pins {
+		pinctrl-single,pins = <
+			J722S_MCU_IOPAD(0x02c, PIN_INPUT, 0)	/* (C7) WKUP_UART0_CTSn */
+			J722S_MCU_IOPAD(0x030, PIN_OUTPUT, 0)	/* (C6) WKUP_UART0_RTSn */
+			J722S_MCU_IOPAD(0x024, PIN_INPUT, 0)	/* (D8) WKUP_UART0_RXD */
+			J722S_MCU_IOPAD(0x028, PIN_OUTPUT, 0)	/* (D7) WKUP_UART0_TXD */
+		>;
+		bootph-all;
+	};

Best regards,
Krzysztof

#3 lore raw

Re: [PATCH v3 2/2] arm64: dts: ti: Add k3-am67a-beagley-ai

Quoted 4 lines
Quoted 2 lines

# Boards with J722s SoC
+dtb-$(CONFIG_ARCH_K3) += k3-am67a-beagley-ai.dtb

So am67 is J772s? Then why calling it am67a?

I agree, it's stupid.. Back in April with v1, i called this J772s, then TI and TI marketing got involved.. J772s is a family, am67 and am67a are parts in that family... From the current docs, am67a is a fully efused J772s..

Anywho that was TI's decision back in April, thousands of boards have now shipped, so for user's sake, it's now locked in at beagleboard.org forever as k3-am67a-beagley-ai.dtb

Quoted 45 lines
Quoted 17 lines

dtb-$(CONFIG_ARCH_K3) += k3-j722s-evm.dtb

# Boards with J784s4 SoC

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +7 -0
new file mode 100644
index 000000000000..c8cbb875d4c7
@@ -0,0 +1,406 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * https://beagley-ai.org/
+ *
+ * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
+ * Copyright (C) 2024 Robert Nelson, BeagleBoard.org Foundation
+ */

...

Quoted 11 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +11 -0
+     vsys_5v0: regulator-1 {
+             compatible = "regulator-fixed";
+             regulator-name = "vsys_5v0";
+             regulator-min-microvolt = <5000000>;
+             regulator-max-microvolt = <5000000>;
+             regulator-always-on;
+             regulator-boot-on;
+             bootph-all;
+     };
+
+     vdd_3v3: regulator-2 {

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 81

Quoted 10 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +10 -0
+             compatible = "regulator-fixed";
+             regulator-name = "vdd_3v3";
+             regulator-min-microvolt = <3300000>;
+             regulator-max-microvolt = <3300000>;
+             vin-supply = <&vsys_5v0>;
+             regulator-always-on;
+             regulator-boot-on;
+     };
+
+     vdd_mmc1: regulator-mmc1 {

Keep consistent naming of the nodes. Why this is sometimes "1" sometimes "mmc"?

Quoted 3 lines

Please use name for all fixed regulators which matches current format
recommendation: 'regulator-[0-9]v[0-9]'
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml?h=v6.11-rc1#n46

Okay, i'll change these... I already see a problem, as I've got two 3v3... can we use 'regulator-[0-9]v[0-9]-X' ?

Quoted 15 lines
Quoted 4 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +3 -0
+             compatible = "regulator-fixed";
+             regulator-name = "vdd_mmc1";
+             pinctrl-names = "default";

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 94

Quoted 10 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +10 -0
+             pinctrl-0 = <&vdd_3v3_sd_pins_default>;
+             regulator-min-microvolt = <3300000>;
+             regulator-max-microvolt = <3300000>;
+             regulator-boot-on;
+             enable-active-high;
+             gpio = <&main_gpio1 50 GPIO_ACTIVE_HIGH>;
+             bootph-all;
+     };
+
+     vdd_sd_dv: regulator-TLV71033 {
Quoted 3 lines

No upper-case characters.

See DTS coding style.

I'll fix it..

Quoted 49 lines
Quoted 49 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +48 -0
+             compatible = "regulator-gpio";
+             regulator-name = "tlv71033";
+             pinctrl-names = "default";
+             pinctrl-0 = <&vdd_sd_dv_pins_default>;
+             regulator-min-microvolt = <1800000>;
+             regulator-max-microvolt = <3300000>;
+             regulator-boot-on;
+             vin-supply = <&vsys_5v0>;
+             gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>;
+             states = <1800000 0x0>,
+                      <3300000 0x1>;
+             bootph-all;
+     };
+
+     vsys_io_1v8: regulator-vsys-io-1v8 {
+             compatible = "regulator-fixed";
+             regulator-name = "vsys_io_1v8";
+             regulator-min-microvolt = <1800000>;
+             regulator-max-microvolt = <1800000>;
+             regulator-always-on;
+             regulator-boot-on;
+     };
+
+     vsys_io_1v2: regulator-vsys-io-1v2 {
+             compatible = "regulator-fixed";
+             regulator-name = "vsys_io_1v2";
+             regulator-min-microvolt = <1200000>;
+             regulator-max-microvolt = <1200000>;
+             regulator-always-on;
+             regulator-boot-on;
+     };
+
+     leds {
+             compatible = "gpio-leds";
+             pinctrl-names = "default";
+             pinctrl-0 = <&led_pins_default>;
+
+             led-0 {
+                     gpios = <&main_gpio0 11 GPIO_ACTIVE_LOW>;
+                     linux,default-trigger = "default-off";
+                     default-state = "off";
+             };
+
+             led-1 {
+                     gpios = <&main_gpio0 12 GPIO_ACTIVE_HIGH>;
+                     function = LED_FUNCTION_HEARTBEAT;
+                     linux,default-trigger = "heartbeat";
+                     default-state = "on";
Quoted 8 lines

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 148

Quoted 6 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +6 -0
+             };
+     };
+};
+
+&main_pmx0 {
+

Drop blank line.

I'll fix it..

Quoted 116 lines
Quoted 116 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +115 -0
+     main_i2c0_pins_default: main-i2c0-default-pins {
+             pinctrl-single,pins = <
+                     J722S_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (D23) I2C0_SCL */
+                     J722S_IOPAD(0x01e4, PIN_INPUT_PULLUP, 0) /* (B22) I2C0_SDA */
+             >;
+             bootph-all;
+     };
+
+     main_uart0_pins_default: main-uart0-default-pins {
+             pinctrl-single,pins = <
+                     J722S_IOPAD(0x01c8, PIN_INPUT, 0)       /* (A22) UART0_RXD */
+                     J722S_IOPAD(0x01cc, PIN_OUTPUT, 0)      /* (B22) UART0_TXD */
+             >;
+             bootph-all;
+     };
+
+     vdd_sd_dv_pins_default: vdd-sd-dv-default-pins {
+             pinctrl-single,pins = <
+                     J722S_IOPAD(0x0244, PIN_OUTPUT, 7) /* (A24) MMC1_SDWP.GPIO1_49 */
+             >;
+             bootph-all;
+     };
+
+     main_mmc1_pins_default: main-mmc1-default-pins {
+             pinctrl-single,pins = <
+                     J722S_IOPAD(0x023c, PIN_INPUT, 0) /* (H22) MMC1_CMD */
+                     J722S_IOPAD(0x0234, PIN_OUTPUT, 0) /* (H24) MMC1_CLK */
+                     J722S_IOPAD(0x0230, PIN_INPUT, 0) /* (H23) MMC1_DAT0 */
+                     J722S_IOPAD(0x022c, PIN_INPUT_PULLUP, 0) /* (H20) MMC1_DAT1 */
+                     J722S_IOPAD(0x0228, PIN_INPUT_PULLUP, 0) /* (J23) MMC1_DAT2 */
+                     J722S_IOPAD(0x0224, PIN_INPUT_PULLUP, 0) /* (H25) MMC1_DAT3 */
+                     J722S_IOPAD(0x0240, PIN_INPUT, 7) /* (B24) MMC1_SDCD.GPIO1_48 */
+             >;
+             bootph-all;
+     };
+
+     mdio_pins_default: mdio-default-pins {
+             pinctrl-single,pins = <
+                     J722S_IOPAD(0x0160, PIN_OUTPUT, 0) /* (AC24) MDIO0_MDC */
+                     J722S_IOPAD(0x015c, PIN_INPUT, 0) /* (AD25) MDIO0_MDIO */
+             >;
+     };
+
+     rgmii1_pins_default: rgmii1-default-pins {
+             pinctrl-single,pins = <
+                     J722S_IOPAD(0x014c, PIN_INPUT, 0) /* (AC25) RGMII1_RD0 */
+                     J722S_IOPAD(0x0150, PIN_INPUT, 0) /* (AD27) RGMII1_RD1 */
+                     J722S_IOPAD(0x0154, PIN_INPUT, 0) /* (AE24) RGMII1_RD2 */
+                     J722S_IOPAD(0x0158, PIN_INPUT, 0) /* (AE26) RGMII1_RD3 */
+                     J722S_IOPAD(0x0148, PIN_INPUT, 0) /* (AE27) RGMII1_RXC */
+                     J722S_IOPAD(0x0144, PIN_INPUT, 0) /* (AD23) RGMII1_RX_CTL */
+                     J722S_IOPAD(0x0134, PIN_OUTPUT, 0) /* (AF27) RGMII1_TD0 */
+                     J722S_IOPAD(0x0138, PIN_OUTPUT, 0) /* (AE23) RGMII1_TD1 */
+                     J722S_IOPAD(0x013c, PIN_OUTPUT, 0) /* (AG25) RGMII1_TD2 */
+                     J722S_IOPAD(0x0140, PIN_OUTPUT, 0) /* (AF24) RGMII1_TD3 */
+                     J722S_IOPAD(0x0130, PIN_OUTPUT, 0) /* (AG26) RGMII1_TXC */
+                     J722S_IOPAD(0x012c, PIN_OUTPUT, 0) /* (AF25) RGMII1_TX_CTL */
+             >;
+     };
+
+     led_pins_default: led-default-pins {
+             pinctrl-single,pins = <
+                     J722S_IOPAD(0x002c, PIN_OUTPUT, 7) /* (K26) OSPI0_CSn0.GPIO0_11 */
+                     J722S_IOPAD(0x0030, PIN_OUTPUT, 7) /* (K23) OSPI0_CSn1.GPIO0_12 */
+             >;
+     };
+
+     pmic_irq_pins_default: pmic-irq-default-pins {
+             pinctrl-single,pins = <
+                     J722S_IOPAD(0x01f4, PIN_INPUT_PULLUP, 0) /* (B23) EXTINTn */
+             >;
+     };
+
+     vdd_3v3_sd_pins_default: vdd-3v3-sd-default-pins {
+             pinctrl-single,pins = <
+                     J722S_IOPAD(0x0254, PIN_OUTPUT, 7) /* (E25) USB0_DRVVBUS.GPIO1_50 */
+             >;
+     };
+};
+
+&cpsw3g {
+     pinctrl-names = "default";
+     pinctrl-0 = <&rgmii1_pins_default>, <&gbe_pmx_obsclk>;
+
+     assigned-clocks = <&k3_clks 227 0>;
+     assigned-clock-parents = <&k3_clks 227 6>;
+     status = "okay";
+};
+
+&cpsw3g_mdio {
+     pinctrl-names = "default";
+     pinctrl-0 = <&mdio_pins_default>;
+     status = "okay";
+
+     cpsw3g_phy0: ethernet-phy@0 {
+             reg = <0>;
+             ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+             ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+             ti,min-output-impedance;
+     };
+};
+
+&cpsw_port1 {
+     phy-mode = "rgmii-rxid";
+     phy-handle = <&cpsw3g_phy0>;
+     status = "okay";
+};
+
+&main_gpio1 {
+     status = "okay";
+};
+
+&main_uart0 {
+     pinctrl-names = "default";
+     pinctrl-0 = <&main_uart0_pins_default>;
Quoted 8 lines

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 269

Quoted 6 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +6 -0
+     bootph-all;
+     status = "okay";
+};
+
+&mcu_pmx0 {
+

Drop blank line

I'll fix it..

Quoted 10 lines

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 278

Quoted 10 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +9 -0
+     wkup_uart0_pins_default: wkup-uart0-default-pins {
+             pinctrl-single,pins = <
+                     J722S_MCU_IOPAD(0x02c, PIN_INPUT, 0)    /* (C7) WKUP_UART0_CTSn */
+                     J722S_MCU_IOPAD(0x030, PIN_OUTPUT, 0)   /* (C6) WKUP_UART0_RTSn */
+                     J722S_MCU_IOPAD(0x024, PIN_INPUT, 0)    /* (D8) WKUP_UART0_RXD */
+                     J722S_MCU_IOPAD(0x028, PIN_OUTPUT, 0)   /* (D7) WKUP_UART0_TXD */
+             >;
+             bootph-all;
+     };

Thanks!

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

Re: [PATCH v3 2/2] arm64: dts: ti: Add k3-am67a-beagley-ai

In reply to Robert Nelson

Hi,

Quoted 68 lines · Robert Nelson

BeagleBoard.org BeagleY-AI is an easy to use, affordable open source hardware single board computer based on the Texas Instruments AM67A, which features a quad-core 64-bit Arm CPU subsystem, 2 general-purpose digital-signal-processors (DSP) and matrix-multiply-accelerators (MMA), GPU, vision and deep learning accelerators, and multiple Arm Cortex-R5 cores for low-power, low-latency GPIO control.

https://beagley-ai.org/
https://openbeagle.org/beagley-ai/beagley-ai

CC Rob Herring <[email protected]>
CC Krzysztof Kozlowski <[email protected]>
CC Conor Dooley <[email protected]>
CC Vignesh Raghavendra <[email protected]>
CC Nishanth Menon <[email protected]>
CC Andrew Davis <[email protected]>
CC Jai Luthra <[email protected]>
CC Roger Quadros <[email protected]>
CC Siddharth Vadapalli <[email protected]>
CC Jared McArthur <[email protected]>
CC Jason Kridner <[email protected]>
CC Deepak Khatri <[email protected]>
CC Drew Fustini <[email protected]>

---
Changes since v2:
- added led indictors
- sdhci1 use MMC1_SDCD.GPIO1_48 for card detect
- cleaned up order of status = "okay"
- wkup_i2c0 moved to 100000
- eeprom added atmel,24c32
- rtc added dallas,ds1340
- sdhci1 use ti,fails-without-test-cd
Changes since v1:
- fixed incorrect vdd-3v3-sd-pins-default name
- updated hdmi VDD_1V2 regulator for production pcb
- switched device tree name from k3-j722s-beagley-ai to k3-am67a-beagley-ai
- removed cpsw_port2 node
- enable UHS support for MMCSD

---
 arch/arm64/boot/dts/ti/Makefile               |   1 +
 .../arm64/boot/dts/ti/k3-am67a-beagley-ai.dts | 406 ++++++++++++++++++
 2 files changed, 407 insertions(+)
 create mode 100644 arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts
arch/arm64/boot/dts/ti/Makefile +1 -0
index e20b27ddf901..c89c9b8bab38 100644
@@ -110,6 +110,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-j721s2-evm.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-j721s2-evm-pcie1-ep.dtbo
 
 # Boards with J722s SoC
+dtb-$(CONFIG_ARCH_K3) += k3-am67a-beagley-ai.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-j722s-evm.dtb
 
 # Boards with J784s4 SoC
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +2 -0
new file mode 100644
index 000000000000..c8cbb875d4c7
@@ -0,0 +1,406 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*

<snip>

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 231

Quoted 4 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +4 -0
+
+&cpsw3g {
+	pinctrl-names = "default";
+	pinctrl-0 = <&rgmii1_pins_default>, <&gbe_pmx_obsclk>;

Why do you need OBSCLK for Ethernet MAC?
The OBSCLK is connected to the Ethernet PHY via C406 which is not even populated. It seems that the PHY is clocked by a crystal oscillator X5 so doesn't really need OBSCLK in the stock configuration?

Quoted 175 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +175 -0
+
+	assigned-clocks = <&k3_clks 227 0>;
+	assigned-clock-parents = <&k3_clks 227 6>;
+	status = "okay";
+};
+
+&cpsw3g_mdio {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mdio_pins_default>;
+	status = "okay";
+
+	cpsw3g_phy0: ethernet-phy@0 {
+		reg = <0>;
+		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+		ti,min-output-impedance;
+	};
+};
+
+&cpsw_port1 {
+	phy-mode = "rgmii-rxid";
+	phy-handle = <&cpsw3g_phy0>;
+	status = "okay";
+};
+
+&main_gpio1 {
+	status = "okay";
+};
+
+&main_uart0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&main_uart0_pins_default>;
+	bootph-all;
+	status = "okay";
+};
+
+&mcu_pmx0 {
+
+	wkup_uart0_pins_default: wkup-uart0-default-pins {
+		pinctrl-single,pins = <
+			J722S_MCU_IOPAD(0x02c, PIN_INPUT, 0)	/* (C7) WKUP_UART0_CTSn */
+			J722S_MCU_IOPAD(0x030, PIN_OUTPUT, 0)	/* (C6) WKUP_UART0_RTSn */
+			J722S_MCU_IOPAD(0x024, PIN_INPUT, 0)	/* (D8) WKUP_UART0_RXD */
+			J722S_MCU_IOPAD(0x028, PIN_OUTPUT, 0)	/* (D7) WKUP_UART0_TXD */
+		>;
+		bootph-all;
+	};
+
+	wkup_i2c0_pins_default: wkup-i2c0-default-pins {
+		pinctrl-single,pins = <
+			J722S_MCU_IOPAD(0x04c, PIN_INPUT_PULLUP, 0)	/* (C7) WKUP_I2C0_SCL */
+			J722S_MCU_IOPAD(0x050, PIN_INPUT_PULLUP, 0)	/* (C6) WKUP_I2C1_SDA */
+		>;
+		bootph-all;
+	};
+
+	gbe_pmx_obsclk: gbe-pmx-obsclk-default-pins {
+		pinctrl-single,pins = <
+			J722S_MCU_IOPAD(0x0004, PIN_OUTPUT, 1) /* (A10) MCU_SPI0_CS1.MCU_OBSCLK0 */
+		>;
+	};
+};
+
+&wkup_uart0 {
+	/* WKUP UART0 is used by Device Manager firmware */
+	pinctrl-names = "default";
+	pinctrl-0 = <&wkup_uart0_pins_default>;
+	bootph-all;
+	status = "reserved";
+};
+
+&wkup_i2c0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&wkup_i2c0_pins_default>;
+	clock-frequency = <100000>;
+	bootph-all;
+	status = "okay";
+
+	tps65219: pmic@30 {
+		compatible = "ti,tps65219";
+		reg = <0x30>;
+		buck1-supply = <&vsys_5v0>;
+		buck2-supply = <&vsys_5v0>;
+		buck3-supply = <&vsys_5v0>;
+		ldo1-supply = <&vdd_3v3>;
+		ldo3-supply = <&vdd_3v3>;
+		ldo4-supply = <&vdd_3v3>;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&pmic_irq_pins_default>;
+		interrupt-parent = <&gic500>;
+		interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-controller;
+		#interrupt-cells = <1>;
+
+		system-power-controller;
+		ti,power-button;
+		bootph-all;
+
+		regulators {
+			buck1_reg: buck1 {
+				regulator-name = "VDD_3V3";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			buck2_reg: buck2 {
+				regulator-name = "VDD_1V8";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo1_reg: ldo1 {
+				regulator-name = "VDDSHV5_SDIO";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-allow-bypass;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo2_reg: ldo2 {
+				regulator-name = "VDD_1V2";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1200000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo3_reg: ldo3 {
+				regulator-name = "VDDA_PHY_1V8";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			ldo4_reg: ldo4 {
+				regulator-name = "VDDA_PLL_1V8";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+		};
+	};
+
+	eeprom@50 {
+		compatible = "atmel,24c32";
+		reg = <0x50>;
+	};
+
+	rtc: rtc@68 {
+		compatible = "dallas,ds1340";
+		reg = <0x68>;
+	};
+};
+
+&sdhci1 {
+	/* SD/MMC */
+	vmmc-supply = <&vdd_mmc1>;
+	vqmmc-supply = <&vdd_sd_dv>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&main_mmc1_pins_default>;
+	disable-wp;
+	cd-gpios = <&main_gpio1 48 GPIO_ACTIVE_LOW>;
+	cd-debounce-delay-ms = <100>;
+	ti,fails-without-test-cd;
+	bootph-all;
+	status = "okay";
+};
Signature · 2 lines
cheers,
-roger
#5 lore raw

Re: [PATCH v3 2/2] arm64: dts: ti: Add k3-am67a-beagley-ai

Quoted 9 lines

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 231

Quoted 4 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +4 -0
+
+&cpsw3g {
+     pinctrl-names = "default";
+     pinctrl-0 = <&rgmii1_pins_default>, <&gbe_pmx_obsclk>;

Why do you need OBSCLK for Ethernet MAC?
The OBSCLK is connected to the Ethernet PHY via C406 which is not even populated. It seems that the PHY is clocked by a crystal oscillator X5 so doesn't really need OBSCLK in the stock configuration?

Ah crap, I'll take a look at this... I bet it's left over from the first pcb, (all my first rev pcb's are now locked up so i don't use them anymore).. Seeed/BeagleBoard was playing it safe and designing in both options.. Once the internal clocks were verified newer revisions removed the external clock.

Yeah, I'm pretty sure final production boards removed every external clock option.

Thanks!

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

Re: [PATCH v3 2/2] arm64: dts: ti: Add k3-am67a-beagley-ai

Quoted 11 lines · Robert Nelson
Quoted 10 lines

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 231

Quoted 5 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +4 -0
+
+&cpsw3g {
+     pinctrl-names = "default";
+     pinctrl-0 = <&rgmii1_pins_default>, <&gbe_pmx_obsclk>;

Why do you need OBSCLK for Ethernet MAC?
The OBSCLK is connected to the Ethernet PHY via C406 which is not even populated. It seems that the PHY is clocked by a crystal oscillator X5 so doesn't really need OBSCLK in the stock configuration?

Quoted 8 lines

Ah crap, I'll take a look at this... I bet it's left over from the first pcb, (all my first rev pcb's are now locked up so i don't use them anymore).. Seeed/BeagleBoard was playing it safe and designing in both options.. Once the internal clocks were verified newer revisions removed the external clock.

Yeah, I'm pretty sure final production boards removed every external clock option.

Yeap, external clock is the default for all production boards, i removed this internal clock configuration.

Thanks

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

Re: [PATCH v3 2/2] arm64: dts: ti: Add k3-am67a-beagley-ai

Quoted 18 lines · Robert Nelson
Quoted 17 lines · Robert Nelson
Quoted 10 lines

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 231

Quoted 5 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +4 -0
+
+&cpsw3g {
+     pinctrl-names = "default";
+     pinctrl-0 = <&rgmii1_pins_default>, <&gbe_pmx_obsclk>;

Why do you need OBSCLK for Ethernet MAC?
The OBSCLK is connected to the Ethernet PHY via C406 which is not even populated. It seems that the PHY is clocked by a crystal oscillator X5 so doesn't really need OBSCLK in the stock configuration?

Ah crap, I'll take a look at this... I bet it's left over from the first pcb, (all my first rev pcb's are now locked up so i don't use them anymore).. Seeed/BeagleBoard was playing it safe and designing in both options.. Once the internal clocks were verified newer revisions removed the external clock.

Quoted 5 lines
Quoted 2 lines

Yeah, I'm pretty sure final production boards removed every external clock option.

Yeap, external clock is the default for all production boards, i removed this internal clock configuration.

Did you mean internal clock is the default?
Earlier you mentioned
"after verification newer versions removed the external clock"

Signature · 2 lines
cheers,
-roger
#8 lore raw

Re: [PATCH v3 2/2] arm64: dts: ti: Add k3-am67a-beagley-ai

Quoted 25 lines · Roger Quadros
Quoted 21 lines · Robert Nelson
Quoted 19 lines · Robert Nelson
Quoted 10 lines

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 231

Quoted 5 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +4 -0
+
+&cpsw3g {
+     pinctrl-names = "default";
+     pinctrl-0 = <&rgmii1_pins_default>, <&gbe_pmx_obsclk>;

Why do you need OBSCLK for Ethernet MAC?
The OBSCLK is connected to the Ethernet PHY via C406 which is not even populated. It seems that the PHY is clocked by a crystal oscillator X5 so doesn't really need OBSCLK in the stock configuration?

Ah crap, I'll take a look at this... I bet it's left over from the first pcb, (all my first rev pcb's are now locked up so i don't use them anymore).. Seeed/BeagleBoard was playing it safe and designing in both options.. Once the internal clocks were verified newer revisions removed the external clock.

Yeah, I'm pretty sure final production boards removed every external clock option.

Quoted 6 lines
Quoted 2 lines

Yeap, external clock is the default for all production boards, i removed this internal clock configuration.

Did you mean internal clock is the default?
Earlier you mentioned
"after verification newer versions removed the external clock"

Yeah sorry Roger, screwed up on my previous message... I thought one of our goals was to have an internal clock for everything. But @Aldea, Andrei reminded me Monday night, that Ethernet was external..

Regards,

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

Re: [PATCH v3 2/2] arm64: dts: ti: Add k3-am67a-beagley-ai

In reply to Robert Nelson

On 12:04-20240822, Robert Nelson wrote:
Minor nmits below:

Quoted 7 lines

BeagleBoard.org BeagleY-AI is an easy to use, affordable open source hardware single board computer based on the Texas Instruments AM67A, which features a quad-core 64-bit Arm CPU subsystem, 2 general-purpose digital-signal-processors (DSP) and matrix-multiply-accelerators (MMA), GPU, vision and deep learning accelerators, and multiple Arm Cortex-R5 cores for low-power, low-latency GPIO control.

[...]

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 81

Quoted 12 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +12 -0
+
+	vdd_3v3: regulator-2 {
+		compatible = "regulator-fixed";
+		regulator-name = "vdd_3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		vin-supply = <&vsys_5v0>;
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+	vdd_mmc1: regulator-mmc1 {

Also responding:

Quoted 2 lines

Okay, i'll change these... I already see a problem, as I've got two 3v3... can we use 'regulator-[0-9]v[0-9]-X' ?

let us just call them regulator-3 and so on incrementally. You can already name with regulator-name property. We really don't need the "v' specification here.

[...]

Quoted 17 lines

+&wkup_i2c0 {

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +16 -0
+	pinctrl-names = "default";
+	pinctrl-0 = <&wkup_i2c0_pins_default>;
+	clock-frequency = <100000>;
+	bootph-all;
+	status = "okay";
+
+	tps65219: pmic@30 {
+		compatible = "ti,tps65219";
+		reg = <0x30>;
+		buck1-supply = <&vsys_5v0>;
+		buck2-supply = <&vsys_5v0>;
+		buck3-supply = <&vsys_5v0>;
+		ldo1-supply = <&vdd_3v3>;
+		ldo3-supply = <&vdd_3v3>;
+		ldo4-supply = <&vdd_3v3>;
+

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 329

Quoted 10 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +10 -0
+		pinctrl-names = "default";
+		pinctrl-0 = <&pmic_irq_pins_default>;
+		interrupt-parent = <&gic500>;
+		interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-controller;
+		#interrupt-cells = <1>;
+
+		system-power-controller;
+		ti,power-button;
+		bootph-all;

Flip the bootph-all above the system-power-controller to stay within the coding style boundaries?

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 331

Quoted 2 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +2 -0
+
+		regulators {
	[...]

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 404

Quoted 13 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +13 -0
+};
+
+&sdhci1 {
+	/* SD/MMC */
+	vmmc-supply = <&vdd_mmc1>;
+	vqmmc-supply = <&vdd_sd_dv>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&main_mmc1_pins_default>;
+	disable-wp;
+	cd-gpios = <&main_gpio1 48 GPIO_ACTIVE_LOW>;
+	cd-debounce-delay-ms = <100>;
+	ti,fails-without-test-cd;
+	bootph-all;

Nit: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/dts-coding-style.rst#n117
keep the bootph property above the vendor prefixed ones..

Quoted 5 lines
(quoted diff) +2 -0
+	status = "okay";
+};
Signature · 1 line
2.39.2

Additionally, with dtbs_check on next-20240823, I get:

/workdir/arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dtb: leds: led-0: Unevaluated properties are not allowed ('linux,default-trigger' was unexpected) /workdir/arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dtb: leds: led-0:linux,default-trigger: 'oneOf' conditional failed, one must be fixed:

Please fix appropriately.

Signature · 3 lines
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D
#10 lore raw

Re: [PATCH v3 2/2] arm64: dts: ti: Add k3-am67a-beagley-ai

Quoted 27 lines · Nishanth Menon

On 12:04-20240822, Robert Nelson wrote:
Minor nmits below:

Quoted 7 lines

BeagleBoard.org BeagleY-AI is an easy to use, affordable open source hardware single board computer based on the Texas Instruments AM67A, which features a quad-core 64-bit Arm CPU subsystem, 2 general-purpose digital-signal-processors (DSP) and matrix-multiply-accelerators (MMA), GPU, vision and deep learning accelerators, and multiple Arm Cortex-R5 cores for low-power, low-latency GPIO control.

[...]

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 81

Quoted 12 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +12 -0
+
+     vdd_3v3: regulator-2 {
+             compatible = "regulator-fixed";
+             regulator-name = "vdd_3v3";
+             regulator-min-microvolt = <3300000>;
+             regulator-max-microvolt = <3300000>;
+             vin-supply = <&vsys_5v0>;
+             regulator-always-on;
+             regulator-boot-on;
+     };
+
+     vdd_mmc1: regulator-mmc1 {

Also responding:

Quoted 7 lines
Quoted 2 lines

Okay, i'll change these... I already see a problem, as I've got two 3v3... can we use 'regulator-[0-9]v[0-9]-X' ?

let us just call them regulator-3 and so on incrementally. You can already name with regulator-name property. We really don't need the "v' specification here.

Okay, renamed all as regulator-X

Quoted 24 lines

[...]

Quoted 22 lines

+&wkup_i2c0 {

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +21 -0
+     pinctrl-names = "default";
+     pinctrl-0 = <&wkup_i2c0_pins_default>;
+     clock-frequency = <100000>;
+     bootph-all;
+     status = "okay";
+
+     tps65219: pmic@30 {
+             compatible = "ti,tps65219";
+             reg = <0x30>;
+             buck1-supply = <&vsys_5v0>;
+             buck2-supply = <&vsys_5v0>;
+             buck3-supply = <&vsys_5v0>;
+             ldo1-supply = <&vdd_3v3>;
+             ldo3-supply = <&vdd_3v3>;
+             ldo4-supply = <&vdd_3v3>;
+
+             pinctrl-names = "default";
+             pinctrl-0 = <&pmic_irq_pins_default>;
+             interrupt-parent = <&gic500>;
+             interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
+             interrupt-controller;
Quoted 8 lines

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 329

Quoted 5 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +5 -0
+             #interrupt-cells = <1>;
+
+             system-power-controller;
+             ti,power-button;
+             bootph-all;

Flip the bootph-all above the system-power-controller to stay within the coding style boundaries?

Fixed!

Quoted 4 lines

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 331

Quoted 3 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +2 -0
+
+             regulators {
        [...]
Quoted 16 lines

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 404

Quoted 13 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +13 -0
+};
+
+&sdhci1 {
+     /* SD/MMC */
+     vmmc-supply = <&vdd_mmc1>;
+     vqmmc-supply = <&vdd_sd_dv>;
+     pinctrl-names = "default";
+     pinctrl-0 = <&main_mmc1_pins_default>;
+     disable-wp;
+     cd-gpios = <&main_gpio1 48 GPIO_ACTIVE_LOW>;
+     cd-debounce-delay-ms = <100>;
+     ti,fails-without-test-cd;
+     bootph-all;

Nit: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/dts-coding-style.rst#n117
keep the bootph property above the vendor prefixed ones..

Fixed!

Quoted 8 lines
Quoted 6 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +2 -1
+     status = "okay";
+};
--

2.39.2

Quoted 6 lines

Additionally, with dtbs_check on next-20240823, I get:

/workdir/arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dtb: leds: led-0: Unevaluated properties are not allowed ('linux,default-trigger' was unexpected) /workdir/arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dtb: leds: led-0:linux,default-trigger: 'oneOf' conditional failed, one must be fixed:

Please fix appropriately.

fixed with: linux,default-trigger = "off";

Thanks!

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

Re: [PATCH v3 2/2] arm64: dts: ti: Add k3-am67a-beagley-ai

Quoted 106 lines · Robert Nelson
Quoted 27 lines · Nishanth Menon

On 12:04-20240822, Robert Nelson wrote:
Minor nmits below:

Quoted 7 lines

BeagleBoard.org BeagleY-AI is an easy to use, affordable open source hardware single board computer based on the Texas Instruments AM67A, which features a quad-core 64-bit Arm CPU subsystem, 2 general-purpose digital-signal-processors (DSP) and matrix-multiply-accelerators (MMA), GPU, vision and deep learning accelerators, and multiple Arm Cortex-R5 cores for low-power, low-latency GPIO control.

[...]

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 81

Quoted 12 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +12 -0
+
+     vdd_3v3: regulator-2 {
+             compatible = "regulator-fixed";
+             regulator-name = "vdd_3v3";
+             regulator-min-microvolt = <3300000>;
+             regulator-max-microvolt = <3300000>;
+             vin-supply = <&vsys_5v0>;
+             regulator-always-on;
+             regulator-boot-on;
+     };
+
+     vdd_mmc1: regulator-mmc1 {

Also responding:

Quoted 7 lines
Quoted 2 lines

Okay, i'll change these... I already see a problem, as I've got two 3v3... can we use 'regulator-[0-9]v[0-9]-X' ?

let us just call them regulator-3 and so on incrementally. You can already name with regulator-name property. We really don't need the "v' specification here.

Okay, renamed all as regulator-X

Quoted 24 lines

[...]

Quoted 22 lines

+&wkup_i2c0 {

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +21 -0
+     pinctrl-names = "default";
+     pinctrl-0 = <&wkup_i2c0_pins_default>;
+     clock-frequency = <100000>;
+     bootph-all;
+     status = "okay";
+
+     tps65219: pmic@30 {
+             compatible = "ti,tps65219";
+             reg = <0x30>;
+             buck1-supply = <&vsys_5v0>;
+             buck2-supply = <&vsys_5v0>;
+             buck3-supply = <&vsys_5v0>;
+             ldo1-supply = <&vdd_3v3>;
+             ldo3-supply = <&vdd_3v3>;
+             ldo4-supply = <&vdd_3v3>;
+
+             pinctrl-names = "default";
+             pinctrl-0 = <&pmic_irq_pins_default>;
+             interrupt-parent = <&gic500>;
+             interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
+             interrupt-controller;
Quoted 8 lines

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 329

Quoted 5 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +5 -0
+             #interrupt-cells = <1>;
+
+             system-power-controller;
+             ti,power-button;
+             bootph-all;

Flip the bootph-all above the system-power-controller to stay within the coding style boundaries?

Fixed!

Quoted 4 lines

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 331

Quoted 3 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +2 -0
+
+             regulators {
        [...]
Quoted 16 lines

arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts line 404

Quoted 13 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +13 -0
+};
+
+&sdhci1 {
+     /* SD/MMC */
+     vmmc-supply = <&vdd_mmc1>;
+     vqmmc-supply = <&vdd_sd_dv>;
+     pinctrl-names = "default";
+     pinctrl-0 = <&main_mmc1_pins_default>;
+     disable-wp;
+     cd-gpios = <&main_gpio1 48 GPIO_ACTIVE_LOW>;
+     cd-debounce-delay-ms = <100>;
+     ti,fails-without-test-cd;
+     bootph-all;

Nit: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/dts-coding-style.rst#n117
keep the bootph property above the vendor prefixed ones..

Fixed!

Quoted 8 lines
Quoted 6 lines
arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dts new file +2 -1
+     status = "okay";
+};
--

2.39.2

Quoted 8 lines
Quoted 6 lines

Additionally, with dtbs_check on next-20240823, I get:

/workdir/arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dtb: leds: led-0: Unevaluated properties are not allowed ('linux,default-trigger' was unexpected) /workdir/arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dtb: leds: led-0:linux,default-trigger: 'oneOf' conditional failed, one must be fixed:

Please fix appropriately.

fixed with: linux,default-trigger = "off";

Nope, also not allowed..

/builds/RobertCNelson/arm64-multiplatform/KERNEL/arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dtb:
leds: led-0:linux,default-trigger: 'oneOf' conditional failed, one
must be fixed:
'off' is not one of ['backlight', 'default-on', 'heartbeat',
'disk-activity', 'disk-read', 'disk-write', 'timer', 'pattern',
'audio-micmute', 'audio-mute', 'bluetooth-power', 'flash',
'kbd-capslock', 'mtd', 'nand-disk', 'none', 'torch', 'usb-gadget',
'usb-host', 'usbport']

I guess, 'none' is close... off/etc..

Thanks

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

Re: [PATCH v3 2/2] arm64: dts: ti: Add k3-am67a-beagley-ai

On 11:34-20240828, Robert Nelson wrote:
[...]

Quoted 10 lines

/builds/RobertCNelson/arm64-multiplatform/KERNEL/arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dtb:
leds: led-0:linux,default-trigger: 'oneOf' conditional failed, one
must be fixed:
'off' is not one of ['backlight', 'default-on', 'heartbeat',
'disk-activity', 'disk-read', 'disk-write', 'timer', 'pattern',
'audio-micmute', 'audio-mute', 'bluetooth-power', 'flash',
'kbd-capslock', 'mtd', 'nand-disk', 'none', 'torch', 'usb-gadget',
'usb-host', 'usbport']

Quoted 2 lines

I guess, 'none' is close... off/etc..

I'd just suggest to drop the property since you already use heartbeat.

Also function = is alternate option, if you choose to go down the road of enabling a function

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/dt-bindings/leds/common.h#n77

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/leds/common.yaml#n83

Signature · 3 lines
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D
#13 lore raw

Re: [PATCH v3 2/2] arm64: dts: ti: Add k3-am67a-beagley-ai

Quoted 16 lines · Nishanth Menon

On 11:34-20240828, Robert Nelson wrote:
[...]

Quoted 10 lines

/builds/RobertCNelson/arm64-multiplatform/KERNEL/arch/arm64/boot/dts/ti/k3-am67a-beagley-ai.dtb:
leds: led-0:linux,default-trigger: 'oneOf' conditional failed, one
must be fixed:
'off' is not one of ['backlight', 'default-on', 'heartbeat',
'disk-activity', 'disk-read', 'disk-write', 'timer', 'pattern',
'audio-micmute', 'audio-mute', 'bluetooth-power', 'flash',
'kbd-capslock', 'mtd', 'nand-disk', 'none', 'torch', 'usb-gadget',
'usb-host', 'usbport']

Quoted 2 lines

I guess, 'none' is close... off/etc..

Quoted 8 lines

I'd just suggest to drop the property since you already use heartbeat.

Also function = is alternate option, if you choose to go down the road of enabling a function

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/dt-bindings/leds/common.h#n77

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/leds/common.yaml#n83

I can drop it, we basically have two leds on the board... Red and Green.. Jason didn't like the Red being activity as it looks like something is wrong, we just turn it off once into Linux.. Thus Green became heartbeat..

From a user perspective (when they don't have a serial cable), Blinking red = in u-boot board starting up... Blinking Green = in Linux finishing bootup..

Regards,

Signature · 2 lines
Robert Nelson
https://rcn-ee.com/
#14 lore raw
In reply to Robert Nelson
Quoted 6 lines · Robert Nelson

This board is based on ti,j722s family using the am67a variation.

https://beagley-ai.org/
https://openbeagle.org/beagley-ai/beagley-ai

<form letter>
This is a friendly reminder during the review process.

It looks like you received a tag and forgot to add it.

If you do not know the process, here is a short explanation: Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions, under or above your Signed-off-by tag. Tag is "received", when provided in a message replied to you on the mailing list. Tools like b4 can help here. However, there's no need to repost patches *only* to add the tags. The upstream maintainer will do that for tags received on the version they apply.

https://elixir.bootlin.com/linux/v6.5-rc3/source/Documentation/process/submitting-patches.rst#L577

If a tag was not added on purpose, please state why and what changed. </form letter>

Quoted 6 lines
CC Nishanth Menon <[email protected]>
CC Vignesh Raghavendra <[email protected]>
CC Tero Kristo <[email protected]>
CC Rob Herring <[email protected]>
CC Krzysztof Kozlowski <[email protected]>
CC Conor Dooley <[email protected]>
Quoted 8 lines
CC Andrew Davis <[email protected]>
CC Jared McArthur <[email protected]>
CC Jason Kridner <[email protected]>
CC Deepak Khatri <[email protected]>
CC Drew Fustini <[email protected]>

Please drop the autogenerated scripts/get_maintainer.pl CC-entries from commit msg. There is no single need to store automated output of get_maintainers.pl in the git log. It can be easily re-created at any given time, thus its presence in the git history is redundant and obfuscates the log.

If you need it for your own patch management purposes, keep it under the --- separator.

Best regards,
Krzysztof

#15 lore raw
Quoted 14 lines · Krzysztof Kozlowski
Quoted 6 lines · Robert Nelson

This board is based on ti,j722s family using the am67a variation.

https://beagley-ai.org/
https://openbeagle.org/beagley-ai/beagley-ai

<form letter>
This is a friendly reminder during the review process.

It looks like you received a tag and forgot to add it.

Quoted 7 lines

If you do not know the process, here is a short explanation: Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions, under or above your Signed-off-by tag. Tag is "received", when provided in a message replied to you on the mailing list. Tools like b4 can help here. However, there's no need to repost patches *only* to add the tags. The upstream maintainer will do that for tags received on the version they apply.

Yeah, Rob's ack was for v1.. then TI got involved and renamed the part family, so i emailed on v2 of the change j722s -> am67a, it was 95% of the patch, didn't know to add it back..

Regards,

Signature · 2 lines
Robert Nelson
https://rcn-ee.com/