* [PATCH 0/2] arm64: dts/bindings: Add support for BeagleBadge @ 2026-05-01 23:31 Judith Mendez 2026-05-01 23:31 ` [PATCH 1/2] dt-bindings: arm: ti: Add am62l3-badge Judith Mendez 2026-05-01 23:31 ` [PATCH 2/2] arm64: dts: ti: Add k3-am62l3-beaglebadge Judith Mendez 0 siblings, 2 replies; 11+ messages in thread From: Judith Mendez @ 2026-05-01 23:31 UTC (permalink / raw) To: Judith Mendez, Nishanth Menon, Vignesh Raghavendra Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree, linux-kernel, Andrew Davis, Bryan Brattlof Hi, BeagleBoard.org BeagleBadge[1] is a compact, affordable open source hardware [2] single board computer based on the Texas Instruments AM62L3 SoC designed for IoT and embedded applications. Add base support for the same. Bootlog: https://gist.github.com/jmenti/d85f17bf5264f1364866df91e60231eb This patch series adds: - Device tree bindings update for am62l3-badge - Device tree source for BeagleBadge board [0] https://beagleboard.org/ [1] https://www.beagleboard.org/boards/beaglebadge [2] https://github.com/beagleboard/BeagleBadge/blob/main/design/BeagleBadge_RevA_V0.7_SCH_251107.pdf Judith Mendez (2): dt-bindings: arm: ti: Add am62l3-badge arm64: dts: ti: Add k3-am62l3-beaglebadge .../devicetree/bindings/arm/ti/k3.yaml | 1 + arch/arm64/boot/dts/ti/Makefile | 1 + arch/arm64/boot/dts/ti/k3-am62l3-badge.dts | 655 ++++++++++++++++++ 3 files changed, 657 insertions(+) create mode 100644 arch/arm64/boot/dts/ti/k3-am62l3-badge.dts -- 2.53.0 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/2] dt-bindings: arm: ti: Add am62l3-badge 2026-05-01 23:31 [PATCH 0/2] arm64: dts/bindings: Add support for BeagleBadge Judith Mendez @ 2026-05-01 23:31 ` Judith Mendez 2026-05-01 23:31 ` [PATCH 2/2] arm64: dts: ti: Add k3-am62l3-beaglebadge Judith Mendez 1 sibling, 0 replies; 11+ messages in thread From: Judith Mendez @ 2026-05-01 23:31 UTC (permalink / raw) To: Judith Mendez, Nishanth Menon, Vignesh Raghavendra Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree, linux-kernel, Andrew Davis, Bryan Brattlof This board is based on ti,am62l3 https://beagleboard.org/ https://github.com/beagleboard/BeagleBadge Signed-off-by: Judith Mendez <jm@ti.com> --- Documentation/devicetree/bindings/arm/ti/k3.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/ti/k3.yaml b/Documentation/devicetree/bindings/arm/ti/k3.yaml index 2a6a9441c23d..7a1f7cc06c47 100644 --- a/Documentation/devicetree/bindings/arm/ti/k3.yaml +++ b/Documentation/devicetree/bindings/arm/ti/k3.yaml @@ -40,6 +40,7 @@ properties: - description: K3 AM62L3 SoC and Boards items: - enum: + - beagle,am62l3-badge - ti,am62l3-evm - const: ti,am62l3 -- 2.53.0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/2] arm64: dts: ti: Add k3-am62l3-beaglebadge 2026-05-01 23:31 [PATCH 0/2] arm64: dts/bindings: Add support for BeagleBadge Judith Mendez 2026-05-01 23:31 ` [PATCH 1/2] dt-bindings: arm: ti: Add am62l3-badge Judith Mendez @ 2026-05-01 23:31 ` Judith Mendez 2026-05-03 11:25 ` Krzysztof Kozlowski ` (2 more replies) 1 sibling, 3 replies; 11+ messages in thread From: Judith Mendez @ 2026-05-01 23:31 UTC (permalink / raw) To: Judith Mendez, Nishanth Menon, Vignesh Raghavendra Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree, linux-kernel, Andrew Davis, Bryan Brattlof BeagleBoard.org BeagleBadge is a compact, affordable open source hardware single board computer based on the Texas Instruments AM62L3 SoC designed for IoT and embedded applications with low power consumption. Expansion is provided over open standards based headers including QWIIC and GPIO interfaces. https://beagleboard.org/ https://github.com/beagleboard/BeagleBadge Co-developed-by: Andrew Davis <afd@ti.com> Signed-off-by: Judith Mendez <jm@ti.com> --- arch/arm64/boot/dts/ti/Makefile | 1 + arch/arm64/boot/dts/ti/k3-am62l3-badge.dts | 655 +++++++++++++++++++++ 2 files changed, 656 insertions(+) create mode 100644 arch/arm64/boot/dts/ti/k3-am62l3-badge.dts diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile index 5269c9619b65..aa714777a3a0 100644 --- a/arch/arm64/boot/dts/ti/Makefile +++ b/arch/arm64/boot/dts/ti/Makefile @@ -41,6 +41,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-am62d2-evm.dtb # Boards with AM62Lx SoCs dtb-$(CONFIG_ARCH_K3) += k3-am62l3-evm.dtb +dtb-$(CONFIG_ARCH_K3) += k3-am62l3-badge.dtb # Boards with AM62Px SoC dtb-$(CONFIG_ARCH_K3) += k3-am62p5-sk.dtb diff --git a/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts b/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts new file mode 100644 index 000000000000..0125d3fec5e9 --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts @@ -0,0 +1,655 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * https://www.beagleboard.org/boards/beaglebadge + * + * Copyright (C) 2026 Texas Instruments Incorporated - https://www.ti.com/ + */ + +/dts-v1/; + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> +#include <dt-bindings/leds/common.h> +#include <dt-bindings/net/ti-dp83867.h> +#include "k3-am62l3.dtsi" +#include "k3-pinctrl.h" + +/ { + compatible = "beagle,am62l3-badge", "ti,am62l3"; + model = "BeagleBoard.org BeagleBadge"; + + chosen { + stdout-path = &uart0; + }; + + aliases { + gpio0 = &gpio0; + gpio1 = &gpio2; + gpio2 = &wkup_gpio0; + i2c0 = &i2c0; + i2c1 = &i2c1; + i2c4 = &wkup_i2c0; + mmc1 = &sdhci1; + mmc2 = &sdhci2; + serial3 = &uart1; + usb0 = &usb0; + usb1 = &usb1; + }; + + memory@80000000 { + /* 256MB */ + reg = <0x00000000 0x80000000 0x00000000 0x10000000>; + device_type = "memory"; + bootph-all; + }; + + gpio_keys: gpio-keys { + compatible = "gpio-keys"; + autorepeat; + pinctrl-names = "default"; + pinctrl-0 = <&usr_button_default_pins>; + + button-select { + label = "SELECT"; + linux,code = <KEY_SELECT>; + gpios = <&gpio0 26 GPIO_ACTIVE_LOW>; + }; + + button-back { + label = "BACK"; + linux,code = <KEY_BACK>; + gpios = <&gpio0 104 GPIO_ACTIVE_LOW>; + }; + + button-up { + label = "UP"; + linux,code = <KEY_UP>; + gpios = <&gpio0 32 GPIO_ACTIVE_LOW>; + }; + + button-down { + label = "DOWN"; + linux,code = <KEY_DOWN>; + gpios = <&gpio0 42 GPIO_ACTIVE_LOW>; + }; + + button-left { + label = "LEFT"; + linux,code = <KEY_LEFT>; + gpios = <&gpio0 31 GPIO_ACTIVE_LOW>; + }; + + button-right { + label = "RIGHT"; + linux,code = <KEY_RIGHT>; + gpios = <&gpio0 95 GPIO_ACTIVE_LOW>; + }; + }; + + multicolor-led { + compatible = "pwm-leds-multicolor"; + pinctrl-names = "default"; + pinctrl-0 = <&rgb_led_default_pins>; + + multi-led { + color = <LED_COLOR_ID_RGB>; + max-brightness = <255>; + + led-red { + pwms = <&ecap2 0 255 0>; + color = <LED_COLOR_ID_RED>; + }; + + led-green { + pwms = <&ecap1 0 255 0>; + color = <LED_COLOR_ID_GREEN>; + }; + + led-blue { + pwms = <&epwm1 1 255 0>; + color = <LED_COLOR_ID_BLUE>; + }; + }; + }; + + seven-segment-left { + compatible = "gpio-7-segment"; + segment-gpios = <&mcp23s18 0 GPIO_ACTIVE_LOW>, + <&mcp23s18 1 GPIO_ACTIVE_LOW>, + <&mcp23s18 2 GPIO_ACTIVE_LOW>, + <&mcp23s18 3 GPIO_ACTIVE_LOW>, + <&mcp23s18 4 GPIO_ACTIVE_LOW>, + <&mcp23s18 5 GPIO_ACTIVE_LOW>, + <&mcp23s18 6 GPIO_ACTIVE_LOW>, + <&mcp23s18 7 GPIO_ACTIVE_LOW>; + }; + + seven-segment-right { + compatible = "gpio-7-segment"; + segment-gpios = <&mcp23s18 8 GPIO_ACTIVE_LOW>, + <&mcp23s18 9 GPIO_ACTIVE_LOW>, + <&mcp23s18 10 GPIO_ACTIVE_LOW>, + <&mcp23s18 11 GPIO_ACTIVE_LOW>, + <&mcp23s18 12 GPIO_ACTIVE_LOW>, + <&mcp23s18 13 GPIO_ACTIVE_LOW>, + <&mcp23s18 14 GPIO_ACTIVE_LOW>, + <&mcp23s18 15 GPIO_ACTIVE_LOW>; + }; + + pwm-beeper { + compatible = "pwm-beeper"; + pwms = <&epwm0 1 1000000 0>; + amp-supply = <&sensor_3v3>; + pinctrl-names = "default"; + pinctrl-0 = <&pwm_beeper_default_pins>; + }; + + vsys_out: regulator-0 { + /* output of BQ24070 */ + compatible = "regulator-fixed"; + regulator-name = "VSYS_OUT"; + regulator-min-microvolt = <4400000>; + regulator-max-microvolt = <4400000>; + regulator-always-on; + regulator-boot-on; + bootph-all; + }; + + vcc_3v3_main: regulator-1 { + /* output of TPS62A06 */ + compatible = "regulator-fixed"; + regulator-name = "VCC_3V3_MAIN"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vsys_out>; + regulator-always-on; + regulator-boot-on; + bootph-all; + }; + + vdd_3v3: regulator-2 { + /* output of TPS22965 */ + compatible = "regulator-fixed"; + regulator-name = "VDD_3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vsys_out>; + regulator-always-on; + regulator-boot-on; + bootph-all; + }; + + vdd_3v3_sd: regulator-3 { + /* TPS22918DBVR */ + compatible = "regulator-fixed"; + regulator-name = "VDD_3V3_SD"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vdd_3v3>; + regulator-boot-on; + enable-active-high; + gpio = <&gpio0 16 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&vdd_3v3_sd_ena_default_pins>; + bootph-all; + }; + + sensor_3v3: regulator-4 { + /* TPS22918DBVR */ + compatible = "regulator-fixed"; + regulator-name = "Sensor_3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vdd_3v3>; + regulator-boot-on; + regulator-always-on; + enable-active-high; + gpio = <&wkup_gpio0 1 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&sensor_3v3_ena_default_pins>; + bootph-all; + }; + + wlan_en: regulator-5 { + compatible = "regulator-fixed"; + regulator-name = "wlan_en"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + enable-active-high; + gpios = <&gpio0 51 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&wlan_en_pins_default>; + }; +}; + +&pmx0 { + uart0_default_pins: uart0-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x01b8, PIN_OUTPUT, 0) /* (C13) UART0_TXD */ + AM62LX_IOPAD(0x01b4, PIN_INPUT, 0) /* (D13) UART0_RXD */ + >; + bootph-all; + }; + + uart0_wakeup_pins: uart0-wakeup-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x01b8, PIN_OUTPUT, 0) /* (C13) UART0_TXD */ + AM62LX_IOPAD(0x01b4, PIN_INPUT | PIN_WKUP_EN, 0) /* (D13) UART0_RXD */ + >; + bootph-all; + }; + + uart1_default_pins: uart1-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x019c, PIN_OUTPUT, 2) /* (A12) UART1_TXD */ + AM62LX_IOPAD(0x0198, PIN_INPUT, 2) /* (C11) UART1_RXD */ + AM62LX_IOPAD(0x0180, PIN_INPUT, 2) /* (A8) UART1_CTS */ + AM62LX_IOPAD(0x0184, PIN_OUTPUT, 2) /* (B10) UART1_RTS */ + >; + bootph-all; + }; + + usr_button_default_pins: usr-button-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x00a4, PIN_INPUT, 7) /* (H18) GPMC0_AD11.GPIO0_26 */ + AM62LX_IOPAD(0x01e4, PIN_INPUT, 7) /* (D16) EXT_REFCLK1.GPIO0_104 */ + AM62LX_IOPAD(0x00c0, PIN_INPUT, 7) /* (N19) GPMC0_ADVn_ALE.GPIO0_32 */ + AM62LX_IOPAD(0x00e8, PIN_INPUT, 7) /* (L19) GPMC0_CSn1.GPIO0_42 */ + AM62LX_IOPAD(0x00b8, PIN_INPUT, 7) /* (L21) GPMC0_CLK.GPIO0_31 */ + AM62LX_IOPAD(0x01c0, PIN_INPUT, 7) /* (B13) UART0_RTSn.GPIO0_95 */ + >; + }; + + i2c0_default_pins: i2c0-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x01cc, PIN_INPUT_PULLUP, 0) /* (B7) I2C0_SCL */ + AM62LX_IOPAD(0x01d0, PIN_INPUT_PULLUP, 0) /* (A7) I2C0_SDA */ + >; + bootph-all; + }; + + i2c1_default_pins: i2c1-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x01d4, PIN_INPUT_PULLUP, 0) /* (D7) I2C1_SCL */ + AM62LX_IOPAD(0x01d8, PIN_INPUT_PULLUP, 0) /* (A6) I2C1_SDA */ + >; + bootph-all; + }; + + vdd_3v3_sd_ena_default_pins: vdd-3v3-sd-ena-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x07c, PIN_OUTPUT, 7) /* (L23) GPMC0_AD1.GPIO0_16 */ + >; + bootph-all; + }; + + sensor_3v3_ena_default_pins: sensor-3v3-ena-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x004, PIN_OUTPUT, 7) /* (AA23) WKUP_UART0_TXD.WKUP_GPIO0_1 */ + >; + }; + + mmc1_default_pins: mmc1-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x0230, PIN_INPUT, 0) /* (Y3) MMC1_CMD */ + AM62LX_IOPAD(0x0228, PIN_OUTPUT, 0) /* (Y2) MMC1_CLK */ + AM62LX_IOPAD(0x0224, PIN_INPUT, 0) /* (AA1) MMC1_DAT0 */ + AM62LX_IOPAD(0x0220, PIN_INPUT, 0) /* (Y4) MMC1_DAT1 */ + AM62LX_IOPAD(0x021c, PIN_INPUT, 0) /* (AA2) MMC1_DAT2 */ + AM62LX_IOPAD(0x0218, PIN_INPUT, 0) /* (AB2) MMC1_DAT3 */ + AM62LX_IOPAD(0x0234, PIN_INPUT, 0) /* (B6) MMC1_SDCD */ + >; + bootph-all; + }; + + mmc2_pins_default: mmc2-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x010c, PIN_INPUT, 0) /* (U23) MMC2_CMD */ + AM62LX_IOPAD(0x0104, PIN_OUTPUT, 0) /* (R23) MMC2_CLK */ + AM62LX_IOPAD(0x0108, PIN_INPUT, 0) /* () MMC2_CLKLB */ + AM62LX_IOPAD(0x0100, PIN_INPUT, 0) /* (U22) MMC2_DAT0 */ + AM62LX_IOPAD(0x00fc, PIN_INPUT, 0) /* (T22) MMC2_DAT1 */ + AM62LX_IOPAD(0x00f8, PIN_INPUT, 0) /* (T23) MMC2_DAT2 */ + AM62LX_IOPAD(0x00f4, PIN_INPUT, 0) /* (R22) MMC2_DAT3 */ + >; + }; + + wlan_en_pins_default: wlan-en-pins-default { + pinctrl-single,pins = < + AM62LX_IOPAD(0x0110, PIN_OUTPUT, 7) /* (T20) MMC2_SDCD.GPIO0_51 */ + >; + }; + + wlirq_pins_default: wlirq-pins-default { + pinctrl-single,pins = < + AM62LX_IOPAD(0x0114, PIN_INPUT, 7) /* (T21) MMC2_SDWP.GPIO0_52 */ + >; + }; + + usb1_default_pins: usb1-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x0248, PIN_INPUT | PIN_DS_PULLUD_ENABLE | PIN_DS_PULL_UP, 0) /* (A5) USB1_DRVVBUS */ + >; + bootph-all; + }; + + pwm_beeper_default_pins: pwm-beeper-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x00b0, PIN_OUTPUT, 4) /* (F22) GPMC0_AD14.EHRPWM0_B */ + >; + }; + + pmic_irq_default_pins: pmic-irq-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x01e8, PIN_INPUT, 0) /* (C8) EXTINTn */ + >; + bootph-all; + }; + + wkup_i2c0_default_pins: wkup-i2c0-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x0010, PIN_INPUT_PULLUP, 0) /* (AB22) WKUP_I2C0_SCL */ + AM62LX_IOPAD(0x0014, PIN_INPUT_PULLUP, 0) /* (AA22) WKUP_I2C0_SDA */ + >; + bootph-all; + }; + + rgb_led_default_pins: rgb-led-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x0190, PIN_OUTPUT, 2) /* (A11) MCASP0_ACLKX.ECAP2_IN_APWM_OUT */ + AM62LX_IOPAD(0x0188, PIN_OUTPUT, 2) /* (A9) MCASP0_AXR1.ECAP1_IN_APWM_OUT */ + AM62LX_IOPAD(0x018c, PIN_OUTPUT, 5) /* (B9) MCASP0_AXR0.EHRPWM1_B */ + >; + }; + + spi1_pins_default: spi1-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x008c, PIN_OUTPUT, 4) /* (H22) GPMC0_AD5.SPI1_CLK */ + AM62LX_IOPAD(0x0088, PIN_OUTPUT, 4) /* (K23) GPMC0_AD4.SPI1_CS0 */ + AM62LX_IOPAD(0x0080, PIN_INPUT, 4) /* (K22) GPMC0_AD2.SPI1_D0 */ + AM62LX_IOPAD(0x0084, PIN_OUTPUT, 4) /* (J23) GPMC0_AD3.SPI1_D1 */ + >; + bootph-all; + }; + + spi3_pins_default: spi3-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x00d0, PIN_OUTPUT, 5) /* (P22) GPMC0_BE1n.SPI3_CLK */ + AM62LX_IOPAD(0x00cc, PIN_OUTPUT, 5) /* (P23) GPMC0_BE0n_CLE.SPI3_CS0 */ + AM62LX_IOPAD(0x00d4, PIN_INPUT, 5) /* (N23) GPMC0_WAIT0.SPI3_D0 */ + AM62LX_IOPAD(0x00d8, PIN_OUTPUT, 5) /* (N22) GPMC0_WAIT1.SPI3_D1 */ + >; + }; + + mcp23s18_reset_pins_default: mcp23s18-reset-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x00a0, PIN_OUTPUT, 4) /* (H21) GPMC0_AD10.GPIO0_25 */ + >; + }; + + lora_control_pins_default: lora-control-default-pins { + pinctrl-single,pins = < + AM62LX_IOPAD(0x00c8, PIN_OUTPUT, 7) /* (M19) GPMC0_WEn.GPIO0_34 */ + AM62LX_IOPAD(0x00e4, PIN_OUTPUT, 7) /* (L20) GPMC0_CSn0.GPIO0_41 */ + AM62LX_IOPAD(0x01a4, PIN_INPUT, 7) /* (D11) SPI0_CS1.GPIO0_88 */ + AM62LX_IOPAD(0x01bc, PIN_INPUT, 7) /* (B14) UART0_CTSn.GPIO0_94 */ + >; + }; +}; + +&uart0 { + wakeup-source; + pinctrl-0 = <&uart0_default_pins>; + pinctrl-1 = <&uart0_wakeup_pins>; + pinctrl-names = "default", "wakeup"; + bootph-all; + status = "okay"; +}; + +&uart1 { + pinctrl-names = "default"; + pinctrl-0 = <&uart1_default_pins>; + bootph-all; + status = "okay"; +}; + +&i2c0 { + clock-frequency = <400000>; + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_default_pins>; + bootph-all; + status = "okay"; + + /* EEPROM */ + eeprom@50 { + /* FT24C32A-ELRT */ + compatible = "atmel,24c32"; + reg = <0x50>; + }; + + /* Fuel Gauge */ + fuel-gauge@55 { + compatible = "ti,bq27541"; + reg = <0x55>; + }; + + /* IMU Sensor */ + accelerometer@6a { + compatible = "st,lsm6ds3tr-c"; + reg = <0x6a>; + vdd-supply = <&vcc_3v3_main>; + vddio-supply = <&vcc_3v3_main>; + }; + + /* T&H Sensor */ + th-sensor@44 { + compatible = "sensirion,sht4x"; + reg = <0x44>; + }; +}; + +&i2c1 { + clock-frequency = <400000>; + pinctrl-names = "default"; + pinctrl-0 = <&i2c1_default_pins>; + bootph-all; + status = "okay"; +}; + +&wkup_i2c0 { + clock-frequency = <400000>; + pinctrl-names = "default"; + pinctrl-0 = <&wkup_i2c0_default_pins>; + status = "okay"; + + tps65214: pmic@30 { + compatible = "ti,tps65214"; + reg = <0x30>; + interrupt-parent = <&gic500>; + interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>; + buck1-supply = <&vcc_3v3_main>; + buck2-supply = <&vcc_3v3_main>; + buck3-supply = <&vcc_3v3_main>; + ldo1-supply = <&vcc_3v3_main>; + ldo2-supply = <&vcc_3v3_main>; + pinctrl-names = "default"; + pinctrl-0 = <&pmic_irq_default_pins>; + ti,power-button; + + regulators { + buck1_reg: buck1 { + regulator-name = "VDD_CORE"; + regulator-min-microvolt = <750000>; + regulator-max-microvolt = <750000>; + regulator-always-on; + regulator-boot-on; + }; + + buck2_reg: buck2 { + regulator-name = "VDD_1V8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + buck3_reg: buck3 { + regulator-name = "VDD_LPDDR4"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo1_reg: ldo1 { + regulator-name = "VDDA_1V8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo2_reg: ldo2 { + regulator-name = "PMIC_VDD_RTC"; + regulator-min-microvolt = <750000>; + regulator-max-microvolt = <750000>; + regulator-always-on; + regulator-boot-on; + }; + }; + }; +}; + +&gpio0 { + gpio-line-names ="","","","","","","","","","", /* 0-9 */ + "","","","","","","VDD_3V3_SD_ENA","","","", /* 10-19 */ + "","","","","","MCP23S18_RESET","USR0","","","", /* 20-29 */ + "","USR1","USR2","","LORA_RESET","","","","","", /* 30-39 */ + "","LORA_RFSW","USR3","","","","","","","", /* 40-49 */ + "","VDD_WLAN_EN","WL_IRQ","","","","","","","", /* 50-59 */ + "","","","","","","","","","", /* 60-69 */ + "","","","","","","","","","", /* 70-79 */ + "","","","","","","","","LORA_BUSY","", /* 80-89 */ + "","","","","LORA_DIO","USR4","","","","", /* 90-99 */ + "","","","","USR5","","","","",""; /* 100-109 */ + pinctrl-names = "default"; + pinctrl-0 = <&lora_control_pins_default>; + bootph-all; + status = "okay"; +}; + +&gpio2 { + bootph-all; + status = "okay"; +}; + +&wkup_gpio0 { + gpio-line-names ="","SENSOR_3V3_ENA","","","","","",""; /* 0-7 */ + bootph-all; + status = "okay"; +}; + +&sdhci1 { + /* SD/MMC */ + vmmc-supply = <&vdd_3v3_sd>; + disable-wp; + pinctrl-names = "default"; + pinctrl-0 = <&mmc1_default_pins>; + bootph-all; + status = "okay"; +}; + +&sdhci2 { + vmmc-supply = <&wlan_en>; + bus-width = <4>; + non-removable; + cap-power-off-card; + keep-power-in-suspend; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&mmc2_pins_default>; + ti,driver-strength-ohm = <50>; + ti,fails-without-test-cd; + status = "okay"; + + wlcore: wlcore@2 { + compatible = "ti,cc3300"; + reg = <2>; + interrupt-parent = <&gpio0>; + interrupts = <52 IRQ_TYPE_EDGE_RISING>; + pinctrl-names = "default"; + pinctrl-0 = <&wlirq_pins_default>; + }; +}; + +&epwm0 { + status = "okay"; +}; + +&epwm1 { + status = "okay"; +}; + +&ecap1 { + status = "okay"; +}; + +&ecap2 { + status = "okay"; +}; + +&usbss0 { + ti,vbus-divider; + status = "okay"; +}; + +&usb0 { + usb-role-switch; + bootph-all; + status = "okay"; +}; + +&usbss1 { + ti,vbus-divider; + bootph-all; + status = "okay"; +}; + +&usb1 { + dr_mode = "host"; + pinctrl-names = "default"; + pinctrl-0 = <&usb1_default_pins>; + bootph-all; + status = "okay"; +}; + +&spi1 { + pinctrl-names = "default"; + pinctrl-0 = <&spi1_pins_default>; + status = "okay"; + + mcp23s18: gpio@0 { + compatible = "microchip,mcp23s18"; + reg = <0>; + spi-max-frequency = <10000000>; + gpio-controller; + #gpio-cells = <2>; + reset-gpios = <&gpio0 25 GPIO_ACTIVE_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&mcp23s18_reset_pins_default>; + microchip,spi-present-mask = <0x01>; + }; +}; + +&spi3 { + pinctrl-names = "default"; + pinctrl-0 = <&spi3_pins_default>; + status = "okay"; + + sx1262_lora: lora@0 { + compatible = "rohm,dh2228fv"; + reg = <0>; + spi-max-frequency = <10000000>; + }; +}; -- 2.53.0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] arm64: dts: ti: Add k3-am62l3-beaglebadge 2026-05-01 23:31 ` [PATCH 2/2] arm64: dts: ti: Add k3-am62l3-beaglebadge Judith Mendez @ 2026-05-03 11:25 ` Krzysztof Kozlowski 2026-05-05 15:07 ` Judith Mendez 2026-05-04 15:18 ` Andrew Davis 2026-05-04 16:19 ` Bryan Brattlof 2 siblings, 1 reply; 11+ messages in thread From: Krzysztof Kozlowski @ 2026-05-03 11:25 UTC (permalink / raw) To: Judith Mendez, Nishanth Menon, Vignesh Raghavendra Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree, linux-kernel, Andrew Davis, Bryan Brattlof On 02/05/2026 01:31, Judith Mendez wrote: > BeagleBoard.org BeagleBadge is a compact, affordable open source > hardware single board computer based on the Texas Instruments AM62L3 > SoC designed for IoT and embedded applications with low power consumption. > Expansion is provided over open standards based headers including > QWIIC and GPIO interfaces. > > https://beagleboard.org/ > https://github.com/beagleboard/BeagleBadge > > Co-developed-by: Andrew Davis <afd@ti.com> Incomplete DCO. Please read carefully submitting patches to understand what you should do here. > Signed-off-by: Judith Mendez <jm@ti.com> ... > +&spi3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&spi3_pins_default>; > + status = "okay"; > + > + sx1262_lora: lora@0 { Heh? Lora? > + compatible = "rohm,dh2228fv"; Nope, you don't have this device. Stop faking stuff. dh2228fv DOES NOT EXIST! How could you put to hardware something which does not even exist? > + reg = <0>; > + spi-max-frequency = <10000000>; > + }; > +}; Best regards, Krzysztof ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] arm64: dts: ti: Add k3-am62l3-beaglebadge 2026-05-03 11:25 ` Krzysztof Kozlowski @ 2026-05-05 15:07 ` Judith Mendez 0 siblings, 0 replies; 11+ messages in thread From: Judith Mendez @ 2026-05-05 15:07 UTC (permalink / raw) To: Krzysztof Kozlowski, Nishanth Menon, Vignesh Raghavendra Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree, linux-kernel, Andrew Davis, Bryan Brattlof Hi, On 5/3/26 6:25 AM, Krzysztof Kozlowski wrote: > On 02/05/2026 01:31, Judith Mendez wrote: >> BeagleBoard.org BeagleBadge is a compact, affordable open source >> hardware single board computer based on the Texas Instruments AM62L3 >> SoC designed for IoT and embedded applications with low power consumption. >> Expansion is provided over open standards based headers including >> QWIIC and GPIO interfaces. >> >> https://beagleboard.org/ >> https://github.com/beagleboard/BeagleBadge >> >> Co-developed-by: Andrew Davis <afd@ti.com> > > Incomplete DCO. Please read carefully submitting patches to understand > what you should do here. Will fix, thanks. > >> Signed-off-by: Judith Mendez <jm@ti.com> > > ... > >> +&spi3 { >> + pinctrl-names = "default"; >> + pinctrl-0 = <&spi3_pins_default>; >> + status = "okay"; >> + >> + sx1262_lora: lora@0 { > > Heh? Lora? > >> + compatible = "rohm,dh2228fv"; > > Nope, you don't have this device. Stop faking stuff. dh2228fv DOES NOT > EXIST! How could you put to hardware something which does not even exist? Will remove this node and respin the series. ~ Judith ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] arm64: dts: ti: Add k3-am62l3-beaglebadge 2026-05-01 23:31 ` [PATCH 2/2] arm64: dts: ti: Add k3-am62l3-beaglebadge Judith Mendez 2026-05-03 11:25 ` Krzysztof Kozlowski @ 2026-05-04 15:18 ` Andrew Davis 2026-05-05 15:08 ` Judith Mendez 2026-05-04 16:19 ` Bryan Brattlof 2 siblings, 1 reply; 11+ messages in thread From: Andrew Davis @ 2026-05-04 15:18 UTC (permalink / raw) To: Judith Mendez, Nishanth Menon, Vignesh Raghavendra Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree, linux-kernel, Bryan Brattlof On 5/1/26 6:31 PM, Judith Mendez wrote: > BeagleBoard.org BeagleBadge is a compact, affordable open source > hardware single board computer based on the Texas Instruments AM62L3 > SoC designed for IoT and embedded applications with low power consumption. > Expansion is provided over open standards based headers including > QWIIC and GPIO interfaces. > > https://beagleboard.org/ > https://github.com/beagleboard/BeagleBadge > > Co-developed-by: Andrew Davis <afd@ti.com> > Signed-off-by: Judith Mendez <jm@ti.com> > --- > arch/arm64/boot/dts/ti/Makefile | 1 + > arch/arm64/boot/dts/ti/k3-am62l3-badge.dts | 655 +++++++++++++++++++++ > 2 files changed, 656 insertions(+) > create mode 100644 arch/arm64/boot/dts/ti/k3-am62l3-badge.dts > > diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile > index 5269c9619b65..aa714777a3a0 100644 > --- a/arch/arm64/boot/dts/ti/Makefile > +++ b/arch/arm64/boot/dts/ti/Makefile > @@ -41,6 +41,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-am62d2-evm.dtb > > # Boards with AM62Lx SoCs > dtb-$(CONFIG_ARCH_K3) += k3-am62l3-evm.dtb > +dtb-$(CONFIG_ARCH_K3) += k3-am62l3-badge.dtb > > # Boards with AM62Px SoC > dtb-$(CONFIG_ARCH_K3) += k3-am62p5-sk.dtb > diff --git a/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts b/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts > new file mode 100644 > index 000000000000..0125d3fec5e9 > --- /dev/null > +++ b/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts > @@ -0,0 +1,655 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * https://www.beagleboard.org/boards/beaglebadge > + * > + * Copyright (C) 2026 Texas Instruments Incorporated - https://www.ti.com/ > + */ > + > +/dts-v1/; > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > +#include <dt-bindings/leds/common.h> > +#include <dt-bindings/net/ti-dp83867.h> > +#include "k3-am62l3.dtsi" > +#include "k3-pinctrl.h" > + > +/ { > + compatible = "beagle,am62l3-badge", "ti,am62l3"; > + model = "BeagleBoard.org BeagleBadge"; > + > + chosen { > + stdout-path = &uart0; > + }; > + > + aliases { > + gpio0 = &gpio0; > + gpio1 = &gpio2; > + gpio2 = &wkup_gpio0; > + i2c0 = &i2c0; > + i2c1 = &i2c1; > + i2c4 = &wkup_i2c0; > + mmc1 = &sdhci1; > + mmc2 = &sdhci2; > + serial3 = &uart1; > + usb0 = &usb0; > + usb1 = &usb1; > + }; > + > + memory@80000000 { > + /* 256MB */ > + reg = <0x00000000 0x80000000 0x00000000 0x10000000>; > + device_type = "memory"; > + bootph-all; > + }; > + > + gpio_keys: gpio-keys { > + compatible = "gpio-keys"; > + autorepeat; > + pinctrl-names = "default"; > + pinctrl-0 = <&usr_button_default_pins>; > + > + button-select { > + label = "SELECT"; > + linux,code = <KEY_SELECT>; > + gpios = <&gpio0 26 GPIO_ACTIVE_LOW>; > + }; > + > + button-back { > + label = "BACK"; > + linux,code = <KEY_BACK>; > + gpios = <&gpio0 104 GPIO_ACTIVE_LOW>; > + }; > + > + button-up { > + label = "UP"; > + linux,code = <KEY_UP>; > + gpios = <&gpio0 32 GPIO_ACTIVE_LOW>; > + }; > + > + button-down { > + label = "DOWN"; > + linux,code = <KEY_DOWN>; > + gpios = <&gpio0 42 GPIO_ACTIVE_LOW>; > + }; > + > + button-left { > + label = "LEFT"; > + linux,code = <KEY_LEFT>; > + gpios = <&gpio0 31 GPIO_ACTIVE_LOW>; > + }; > + > + button-right { > + label = "RIGHT"; > + linux,code = <KEY_RIGHT>; > + gpios = <&gpio0 95 GPIO_ACTIVE_LOW>; > + }; > + }; > + > + multicolor-led { > + compatible = "pwm-leds-multicolor"; > + pinctrl-names = "default"; > + pinctrl-0 = <&rgb_led_default_pins>; > + > + multi-led { > + color = <LED_COLOR_ID_RGB>; > + max-brightness = <255>; > + > + led-red { > + pwms = <&ecap2 0 255 0>; > + color = <LED_COLOR_ID_RED>; > + }; > + > + led-green { > + pwms = <&ecap1 0 255 0>; > + color = <LED_COLOR_ID_GREEN>; > + }; > + > + led-blue { > + pwms = <&epwm1 1 255 0>; > + color = <LED_COLOR_ID_BLUE>; > + }; > + }; > + }; > + > + seven-segment-left { > + compatible = "gpio-7-segment"; > + segment-gpios = <&mcp23s18 0 GPIO_ACTIVE_LOW>, > + <&mcp23s18 1 GPIO_ACTIVE_LOW>, > + <&mcp23s18 2 GPIO_ACTIVE_LOW>, > + <&mcp23s18 3 GPIO_ACTIVE_LOW>, > + <&mcp23s18 4 GPIO_ACTIVE_LOW>, > + <&mcp23s18 5 GPIO_ACTIVE_LOW>, > + <&mcp23s18 6 GPIO_ACTIVE_LOW>, > + <&mcp23s18 7 GPIO_ACTIVE_LOW>; > + }; > + > + seven-segment-right { > + compatible = "gpio-7-segment"; > + segment-gpios = <&mcp23s18 8 GPIO_ACTIVE_LOW>, > + <&mcp23s18 9 GPIO_ACTIVE_LOW>, > + <&mcp23s18 10 GPIO_ACTIVE_LOW>, > + <&mcp23s18 11 GPIO_ACTIVE_LOW>, > + <&mcp23s18 12 GPIO_ACTIVE_LOW>, > + <&mcp23s18 13 GPIO_ACTIVE_LOW>, > + <&mcp23s18 14 GPIO_ACTIVE_LOW>, > + <&mcp23s18 15 GPIO_ACTIVE_LOW>; > + }; > + > + pwm-beeper { > + compatible = "pwm-beeper"; > + pwms = <&epwm0 1 1000000 0>; > + amp-supply = <&sensor_3v3>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pwm_beeper_default_pins>; > + }; > + > + vsys_out: regulator-0 { > + /* output of BQ24070 */ > + compatible = "regulator-fixed"; > + regulator-name = "VSYS_OUT"; > + regulator-min-microvolt = <4400000>; > + regulator-max-microvolt = <4400000>; > + regulator-always-on; > + regulator-boot-on; > + bootph-all; > + }; > + > + vcc_3v3_main: regulator-1 { > + /* output of TPS62A06 */ > + compatible = "regulator-fixed"; > + regulator-name = "VCC_3V3_MAIN"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + vin-supply = <&vsys_out>; > + regulator-always-on; > + regulator-boot-on; > + bootph-all; > + }; > + > + vdd_3v3: regulator-2 { > + /* output of TPS22965 */ > + compatible = "regulator-fixed"; > + regulator-name = "VDD_3V3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + vin-supply = <&vsys_out>; > + regulator-always-on; > + regulator-boot-on; > + bootph-all; > + }; > + > + vdd_3v3_sd: regulator-3 { > + /* TPS22918DBVR */ > + compatible = "regulator-fixed"; > + regulator-name = "VDD_3V3_SD"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + vin-supply = <&vdd_3v3>; > + regulator-boot-on; > + enable-active-high; > + gpio = <&gpio0 16 GPIO_ACTIVE_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&vdd_3v3_sd_ena_default_pins>; > + bootph-all; > + }; > + > + sensor_3v3: regulator-4 { > + /* TPS22918DBVR */ > + compatible = "regulator-fixed"; > + regulator-name = "Sensor_3V3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + vin-supply = <&vdd_3v3>; > + regulator-boot-on; > + regulator-always-on; > + enable-active-high; > + gpio = <&wkup_gpio0 1 GPIO_ACTIVE_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&sensor_3v3_ena_default_pins>; > + bootph-all; > + }; > + > + wlan_en: regulator-5 { > + compatible = "regulator-fixed"; > + regulator-name = "wlan_en"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + enable-active-high; > + gpios = <&gpio0 51 GPIO_ACTIVE_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&wlan_en_pins_default>; > + }; > +}; > + > +&pmx0 { > + uart0_default_pins: uart0-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x01b8, PIN_OUTPUT, 0) /* (C13) UART0_TXD */ > + AM62LX_IOPAD(0x01b4, PIN_INPUT, 0) /* (D13) UART0_RXD */ > + >; > + bootph-all; > + }; > + > + uart0_wakeup_pins: uart0-wakeup-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x01b8, PIN_OUTPUT, 0) /* (C13) UART0_TXD */ > + AM62LX_IOPAD(0x01b4, PIN_INPUT | PIN_WKUP_EN, 0) /* (D13) UART0_RXD */ > + >; > + bootph-all; > + }; > + > + uart1_default_pins: uart1-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x019c, PIN_OUTPUT, 2) /* (A12) UART1_TXD */ > + AM62LX_IOPAD(0x0198, PIN_INPUT, 2) /* (C11) UART1_RXD */ > + AM62LX_IOPAD(0x0180, PIN_INPUT, 2) /* (A8) UART1_CTS */ > + AM62LX_IOPAD(0x0184, PIN_OUTPUT, 2) /* (B10) UART1_RTS */ > + >; > + bootph-all; > + }; > + > + usr_button_default_pins: usr-button-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x00a4, PIN_INPUT, 7) /* (H18) GPMC0_AD11.GPIO0_26 */ > + AM62LX_IOPAD(0x01e4, PIN_INPUT, 7) /* (D16) EXT_REFCLK1.GPIO0_104 */ > + AM62LX_IOPAD(0x00c0, PIN_INPUT, 7) /* (N19) GPMC0_ADVn_ALE.GPIO0_32 */ > + AM62LX_IOPAD(0x00e8, PIN_INPUT, 7) /* (L19) GPMC0_CSn1.GPIO0_42 */ > + AM62LX_IOPAD(0x00b8, PIN_INPUT, 7) /* (L21) GPMC0_CLK.GPIO0_31 */ > + AM62LX_IOPAD(0x01c0, PIN_INPUT, 7) /* (B13) UART0_RTSn.GPIO0_95 */ > + >; > + }; > + > + i2c0_default_pins: i2c0-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x01cc, PIN_INPUT_PULLUP, 0) /* (B7) I2C0_SCL */ > + AM62LX_IOPAD(0x01d0, PIN_INPUT_PULLUP, 0) /* (A7) I2C0_SDA */ > + >; > + bootph-all; > + }; > + > + i2c1_default_pins: i2c1-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x01d4, PIN_INPUT_PULLUP, 0) /* (D7) I2C1_SCL */ > + AM62LX_IOPAD(0x01d8, PIN_INPUT_PULLUP, 0) /* (A6) I2C1_SDA */ > + >; > + bootph-all; > + }; > + > + vdd_3v3_sd_ena_default_pins: vdd-3v3-sd-ena-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x07c, PIN_OUTPUT, 7) /* (L23) GPMC0_AD1.GPIO0_16 */ > + >; > + bootph-all; > + }; > + > + sensor_3v3_ena_default_pins: sensor-3v3-ena-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x004, PIN_OUTPUT, 7) /* (AA23) WKUP_UART0_TXD.WKUP_GPIO0_1 */ > + >; > + }; > + > + mmc1_default_pins: mmc1-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x0230, PIN_INPUT, 0) /* (Y3) MMC1_CMD */ > + AM62LX_IOPAD(0x0228, PIN_OUTPUT, 0) /* (Y2) MMC1_CLK */ > + AM62LX_IOPAD(0x0224, PIN_INPUT, 0) /* (AA1) MMC1_DAT0 */ > + AM62LX_IOPAD(0x0220, PIN_INPUT, 0) /* (Y4) MMC1_DAT1 */ > + AM62LX_IOPAD(0x021c, PIN_INPUT, 0) /* (AA2) MMC1_DAT2 */ > + AM62LX_IOPAD(0x0218, PIN_INPUT, 0) /* (AB2) MMC1_DAT3 */ > + AM62LX_IOPAD(0x0234, PIN_INPUT, 0) /* (B6) MMC1_SDCD */ > + >; > + bootph-all; > + }; > + > + mmc2_pins_default: mmc2-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x010c, PIN_INPUT, 0) /* (U23) MMC2_CMD */ > + AM62LX_IOPAD(0x0104, PIN_OUTPUT, 0) /* (R23) MMC2_CLK */ > + AM62LX_IOPAD(0x0108, PIN_INPUT, 0) /* () MMC2_CLKLB */ > + AM62LX_IOPAD(0x0100, PIN_INPUT, 0) /* (U22) MMC2_DAT0 */ > + AM62LX_IOPAD(0x00fc, PIN_INPUT, 0) /* (T22) MMC2_DAT1 */ > + AM62LX_IOPAD(0x00f8, PIN_INPUT, 0) /* (T23) MMC2_DAT2 */ > + AM62LX_IOPAD(0x00f4, PIN_INPUT, 0) /* (R22) MMC2_DAT3 */ > + >; > + }; > + > + wlan_en_pins_default: wlan-en-pins-default { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x0110, PIN_OUTPUT, 7) /* (T20) MMC2_SDCD.GPIO0_51 */ > + >; > + }; > + > + wlirq_pins_default: wlirq-pins-default { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x0114, PIN_INPUT, 7) /* (T21) MMC2_SDWP.GPIO0_52 */ > + >; > + }; > + > + usb1_default_pins: usb1-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x0248, PIN_INPUT | PIN_DS_PULLUD_ENABLE | PIN_DS_PULL_UP, 0) /* (A5) USB1_DRVVBUS */ > + >; > + bootph-all; > + }; > + > + pwm_beeper_default_pins: pwm-beeper-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x00b0, PIN_OUTPUT, 4) /* (F22) GPMC0_AD14.EHRPWM0_B */ > + >; > + }; > + > + pmic_irq_default_pins: pmic-irq-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x01e8, PIN_INPUT, 0) /* (C8) EXTINTn */ > + >; > + bootph-all; > + }; > + > + wkup_i2c0_default_pins: wkup-i2c0-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x0010, PIN_INPUT_PULLUP, 0) /* (AB22) WKUP_I2C0_SCL */ > + AM62LX_IOPAD(0x0014, PIN_INPUT_PULLUP, 0) /* (AA22) WKUP_I2C0_SDA */ > + >; > + bootph-all; > + }; > + > + rgb_led_default_pins: rgb-led-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x0190, PIN_OUTPUT, 2) /* (A11) MCASP0_ACLKX.ECAP2_IN_APWM_OUT */ > + AM62LX_IOPAD(0x0188, PIN_OUTPUT, 2) /* (A9) MCASP0_AXR1.ECAP1_IN_APWM_OUT */ > + AM62LX_IOPAD(0x018c, PIN_OUTPUT, 5) /* (B9) MCASP0_AXR0.EHRPWM1_B */ > + >; > + }; > + > + spi1_pins_default: spi1-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x008c, PIN_OUTPUT, 4) /* (H22) GPMC0_AD5.SPI1_CLK */ > + AM62LX_IOPAD(0x0088, PIN_OUTPUT, 4) /* (K23) GPMC0_AD4.SPI1_CS0 */ > + AM62LX_IOPAD(0x0080, PIN_INPUT, 4) /* (K22) GPMC0_AD2.SPI1_D0 */ > + AM62LX_IOPAD(0x0084, PIN_OUTPUT, 4) /* (J23) GPMC0_AD3.SPI1_D1 */ > + >; > + bootph-all; > + }; > + > + spi3_pins_default: spi3-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x00d0, PIN_OUTPUT, 5) /* (P22) GPMC0_BE1n.SPI3_CLK */ > + AM62LX_IOPAD(0x00cc, PIN_OUTPUT, 5) /* (P23) GPMC0_BE0n_CLE.SPI3_CS0 */ > + AM62LX_IOPAD(0x00d4, PIN_INPUT, 5) /* (N23) GPMC0_WAIT0.SPI3_D0 */ > + AM62LX_IOPAD(0x00d8, PIN_OUTPUT, 5) /* (N22) GPMC0_WAIT1.SPI3_D1 */ > + >; > + }; > + > + mcp23s18_reset_pins_default: mcp23s18-reset-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x00a0, PIN_OUTPUT, 4) /* (H21) GPMC0_AD10.GPIO0_25 */ > + >; > + }; > + > + lora_control_pins_default: lora-control-default-pins { > + pinctrl-single,pins = < > + AM62LX_IOPAD(0x00c8, PIN_OUTPUT, 7) /* (M19) GPMC0_WEn.GPIO0_34 */ > + AM62LX_IOPAD(0x00e4, PIN_OUTPUT, 7) /* (L20) GPMC0_CSn0.GPIO0_41 */ > + AM62LX_IOPAD(0x01a4, PIN_INPUT, 7) /* (D11) SPI0_CS1.GPIO0_88 */ > + AM62LX_IOPAD(0x01bc, PIN_INPUT, 7) /* (B14) UART0_CTSn.GPIO0_94 */ > + >; > + }; > +}; > + > +&uart0 { > + wakeup-source; > + pinctrl-0 = <&uart0_default_pins>; > + pinctrl-1 = <&uart0_wakeup_pins>; > + pinctrl-names = "default", "wakeup"; > + bootph-all; > + status = "okay"; > +}; > + > +&uart1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart1_default_pins>; > + bootph-all; > + status = "okay"; > +}; > + > +&i2c0 { > + clock-frequency = <400000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c0_default_pins>; > + bootph-all; > + status = "okay"; > + > + /* EEPROM */ > + eeprom@50 { > + /* FT24C32A-ELRT */ > + compatible = "atmel,24c32"; > + reg = <0x50>; > + }; > + > + /* Fuel Gauge */ > + fuel-gauge@55 { > + compatible = "ti,bq27541"; > + reg = <0x55>; > + }; > + > + /* IMU Sensor */ > + accelerometer@6a { > + compatible = "st,lsm6ds3tr-c"; > + reg = <0x6a>; > + vdd-supply = <&vcc_3v3_main>; > + vddio-supply = <&vcc_3v3_main>; > + }; > + > + /* T&H Sensor */ > + th-sensor@44 { > + compatible = "sensirion,sht4x"; > + reg = <0x44>; > + }; > +}; > + > +&i2c1 { > + clock-frequency = <400000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c1_default_pins>; > + bootph-all; > + status = "okay"; > +}; > + > +&wkup_i2c0 { > + clock-frequency = <400000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&wkup_i2c0_default_pins>; > + status = "okay"; > + > + tps65214: pmic@30 { > + compatible = "ti,tps65214"; > + reg = <0x30>; > + interrupt-parent = <&gic500>; > + interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>; > + buck1-supply = <&vcc_3v3_main>; > + buck2-supply = <&vcc_3v3_main>; > + buck3-supply = <&vcc_3v3_main>; > + ldo1-supply = <&vcc_3v3_main>; > + ldo2-supply = <&vcc_3v3_main>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pmic_irq_default_pins>; > + ti,power-button; > + > + regulators { > + buck1_reg: buck1 { > + regulator-name = "VDD_CORE"; > + regulator-min-microvolt = <750000>; > + regulator-max-microvolt = <750000>; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + buck2_reg: buck2 { > + regulator-name = "VDD_1V8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + buck3_reg: buck3 { > + regulator-name = "VDD_LPDDR4"; > + regulator-min-microvolt = <1100000>; > + regulator-max-microvolt = <1100000>; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + ldo1_reg: ldo1 { > + regulator-name = "VDDA_1V8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + ldo2_reg: ldo2 { > + regulator-name = "PMIC_VDD_RTC"; > + regulator-min-microvolt = <750000>; > + regulator-max-microvolt = <750000>; > + regulator-always-on; > + regulator-boot-on; > + }; > + }; > + }; > +}; > + > +&gpio0 { > + gpio-line-names ="","","","","","","","","","", /* 0-9 */ > + "","","","","","","VDD_3V3_SD_ENA","","","", /* 10-19 */ > + "","","","","","MCP23S18_RESET","USR0","","","", /* 20-29 */ > + "","USR1","USR2","","LORA_RESET","","","","","", /* 30-39 */ > + "","LORA_RFSW","USR3","","","","","","","", /* 40-49 */ > + "","VDD_WLAN_EN","WL_IRQ","","","","","","","", /* 50-59 */ > + "","","","","","","","","","", /* 60-69 */ > + "","","","","","","","","","", /* 70-79 */ > + "","","","","","","","","LORA_BUSY","", /* 80-89 */ > + "","","","","LORA_DIO","USR4","","","","", /* 90-99 */ > + "","","","","USR5","","","","",""; /* 100-109 */ > + pinctrl-names = "default"; > + pinctrl-0 = <&lora_control_pins_default>; > + bootph-all; > + status = "okay"; > +}; > + > +&gpio2 { > + bootph-all; > + status = "okay"; > +}; > + > +&wkup_gpio0 { > + gpio-line-names ="","SENSOR_3V3_ENA","","","","","",""; /* 0-7 */ > + bootph-all; > + status = "okay"; > +}; > + > +&sdhci1 { > + /* SD/MMC */ > + vmmc-supply = <&vdd_3v3_sd>; > + disable-wp; > + pinctrl-names = "default"; > + pinctrl-0 = <&mmc1_default_pins>; > + bootph-all; > + status = "okay"; > +}; > + > +&sdhci2 { > + vmmc-supply = <&wlan_en>; > + bus-width = <4>; > + non-removable; > + cap-power-off-card; > + keep-power-in-suspend; > + #address-cells = <1>; > + #size-cells = <0>; > + pinctrl-names = "default"; > + pinctrl-0 = <&mmc2_pins_default>; > + ti,driver-strength-ohm = <50>; > + ti,fails-without-test-cd; > + status = "okay"; > + > + wlcore: wlcore@2 { > + compatible = "ti,cc3300"; > + reg = <2>; > + interrupt-parent = <&gpio0>; > + interrupts = <52 IRQ_TYPE_EDGE_RISING>; > + pinctrl-names = "default"; > + pinctrl-0 = <&wlirq_pins_default>; > + }; > +}; > + > +&epwm0 { > + status = "okay"; > +}; > + > +&epwm1 { > + status = "okay"; > +}; > + > +&ecap1 { > + status = "okay"; > +}; > + > +&ecap2 { No pinmux here? Even if you are using the default muxing, you should still add the pinmux info for both completness and to prevent accidental pin reuse by some future addition. Same for EPWM above and USB nodes below. Andrew > + status = "okay"; > +}; > + > +&usbss0 { > + ti,vbus-divider; > + status = "okay"; > +}; > + > +&usb0 { > + usb-role-switch; > + bootph-all; > + status = "okay"; > +}; > + > +&usbss1 { > + ti,vbus-divider; > + bootph-all; > + status = "okay"; > +}; > + > +&usb1 { > + dr_mode = "host"; > + pinctrl-names = "default"; > + pinctrl-0 = <&usb1_default_pins>; > + bootph-all; > + status = "okay"; > +}; > + > +&spi1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&spi1_pins_default>; > + status = "okay"; > + > + mcp23s18: gpio@0 { > + compatible = "microchip,mcp23s18"; > + reg = <0>; > + spi-max-frequency = <10000000>; > + gpio-controller; > + #gpio-cells = <2>; > + reset-gpios = <&gpio0 25 GPIO_ACTIVE_LOW>; > + pinctrl-names = "default"; > + pinctrl-0 = <&mcp23s18_reset_pins_default>; > + microchip,spi-present-mask = <0x01>; > + }; > +}; > + > +&spi3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&spi3_pins_default>; > + status = "okay"; > + > + sx1262_lora: lora@0 { > + compatible = "rohm,dh2228fv"; > + reg = <0>; > + spi-max-frequency = <10000000>; > + }; > +}; ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] arm64: dts: ti: Add k3-am62l3-beaglebadge 2026-05-04 15:18 ` Andrew Davis @ 2026-05-05 15:08 ` Judith Mendez 0 siblings, 0 replies; 11+ messages in thread From: Judith Mendez @ 2026-05-05 15:08 UTC (permalink / raw) To: Andrew Davis, Nishanth Menon, Vignesh Raghavendra Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree, linux-kernel, Bryan Brattlof Hi Andrew, On 5/4/26 10:18 AM, Andrew Davis wrote: > On 5/1/26 6:31 PM, Judith Mendez wrote: >> BeagleBoard.org BeagleBadge is a compact, affordable open source >> hardware single board computer based on the Texas Instruments AM62L3 >> SoC designed for IoT and embedded applications with low power >> consumption. >> Expansion is provided over open standards based headers including >> QWIIC and GPIO interfaces. >> >> https://beagleboard.org/ >> https://github.com/beagleboard/BeagleBadge >> >> Co-developed-by: Andrew Davis <afd@ti.com> >> Signed-off-by: Judith Mendez <jm@ti.com> >> --- >> arch/arm64/boot/dts/ti/Makefile | 1 + >> arch/arm64/boot/dts/ti/k3-am62l3-badge.dts | 655 +++++++++++++++++++++ >> 2 files changed, 656 insertions(+) >> create mode 100644 arch/arm64/boot/dts/ti/k3-am62l3-badge.dts >> >> diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/ >> Makefile >> index 5269c9619b65..aa714777a3a0 100644 >> --- a/arch/arm64/boot/dts/ti/Makefile >> +++ b/arch/arm64/boot/dts/ti/Makefile >> @@ -41,6 +41,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-am62d2-evm.dtb >> # Boards with AM62Lx SoCs >> dtb-$(CONFIG_ARCH_K3) += k3-am62l3-evm.dtb >> +dtb-$(CONFIG_ARCH_K3) += k3-am62l3-badge.dtb >> # Boards with AM62Px SoC >> dtb-$(CONFIG_ARCH_K3) += k3-am62p5-sk.dtb >> diff --git a/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts b/arch/arm64/ >> boot/dts/ti/k3-am62l3-badge.dts >> new file mode 100644 >> index 000000000000..0125d3fec5e9 >> --- /dev/null >> +++ b/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts >> @@ -0,0 +1,655 @@ >> +// SPDX-License-Identifier: GPL-2.0 >> +/* >> + * https://www.beagleboard.org/boards/beaglebadge >> + * >> + * Copyright (C) 2026 Texas Instruments Incorporated - https:// >> www.ti.com/ >> + */ >> + >> +/dts-v1/; >> + >> +#include <dt-bindings/gpio/gpio.h> >> +#include <dt-bindings/input/input.h> >> +#include <dt-bindings/leds/common.h> >> +#include <dt-bindings/net/ti-dp83867.h> >> +#include "k3-am62l3.dtsi" >> +#include "k3-pinctrl.h" >> + >> +/ { >> + compatible = "beagle,am62l3-badge", "ti,am62l3"; >> + model = "BeagleBoard.org BeagleBadge"; >> + >> + chosen { >> + stdout-path = &uart0; >> + }; >> + >> + aliases { >> + gpio0 = &gpio0; >> + gpio1 = &gpio2; >> + gpio2 = &wkup_gpio0; >> + i2c0 = &i2c0; >> + i2c1 = &i2c1; >> + i2c4 = &wkup_i2c0; >> + mmc1 = &sdhci1; >> + mmc2 = &sdhci2; >> + serial3 = &uart1; >> + usb0 = &usb0; >> + usb1 = &usb1; >> + }; >> + >> + memory@80000000 { >> + /* 256MB */ >> + reg = <0x00000000 0x80000000 0x00000000 0x10000000>; >> + device_type = "memory"; >> + bootph-all; >> + }; >> + >> + gpio_keys: gpio-keys { >> + compatible = "gpio-keys"; >> + autorepeat; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&usr_button_default_pins>; >> + >> + button-select { >> + label = "SELECT"; >> + linux,code = <KEY_SELECT>; >> + gpios = <&gpio0 26 GPIO_ACTIVE_LOW>; >> + }; >> + >> + button-back { >> + label = "BACK"; >> + linux,code = <KEY_BACK>; >> + gpios = <&gpio0 104 GPIO_ACTIVE_LOW>; >> + }; >> + >> + button-up { >> + label = "UP"; >> + linux,code = <KEY_UP>; >> + gpios = <&gpio0 32 GPIO_ACTIVE_LOW>; >> + }; >> + >> + button-down { >> + label = "DOWN"; >> + linux,code = <KEY_DOWN>; >> + gpios = <&gpio0 42 GPIO_ACTIVE_LOW>; >> + }; >> + >> + button-left { >> + label = "LEFT"; >> + linux,code = <KEY_LEFT>; >> + gpios = <&gpio0 31 GPIO_ACTIVE_LOW>; >> + }; >> + >> + button-right { >> + label = "RIGHT"; >> + linux,code = <KEY_RIGHT>; >> + gpios = <&gpio0 95 GPIO_ACTIVE_LOW>; >> + }; >> + }; >> + >> + multicolor-led { >> + compatible = "pwm-leds-multicolor"; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&rgb_led_default_pins>; >> + >> + multi-led { >> + color = <LED_COLOR_ID_RGB>; >> + max-brightness = <255>; >> + >> + led-red { >> + pwms = <&ecap2 0 255 0>; >> + color = <LED_COLOR_ID_RED>; >> + }; >> + >> + led-green { >> + pwms = <&ecap1 0 255 0>; >> + color = <LED_COLOR_ID_GREEN>; >> + }; >> + >> + led-blue { >> + pwms = <&epwm1 1 255 0>; >> + color = <LED_COLOR_ID_BLUE>; >> + }; >> + }; >> + }; >> + >> + seven-segment-left { >> + compatible = "gpio-7-segment"; >> + segment-gpios = <&mcp23s18 0 GPIO_ACTIVE_LOW>, >> + <&mcp23s18 1 GPIO_ACTIVE_LOW>, >> + <&mcp23s18 2 GPIO_ACTIVE_LOW>, >> + <&mcp23s18 3 GPIO_ACTIVE_LOW>, >> + <&mcp23s18 4 GPIO_ACTIVE_LOW>, >> + <&mcp23s18 5 GPIO_ACTIVE_LOW>, >> + <&mcp23s18 6 GPIO_ACTIVE_LOW>, >> + <&mcp23s18 7 GPIO_ACTIVE_LOW>; >> + }; >> + >> + seven-segment-right { >> + compatible = "gpio-7-segment"; >> + segment-gpios = <&mcp23s18 8 GPIO_ACTIVE_LOW>, >> + <&mcp23s18 9 GPIO_ACTIVE_LOW>, >> + <&mcp23s18 10 GPIO_ACTIVE_LOW>, >> + <&mcp23s18 11 GPIO_ACTIVE_LOW>, >> + <&mcp23s18 12 GPIO_ACTIVE_LOW>, >> + <&mcp23s18 13 GPIO_ACTIVE_LOW>, >> + <&mcp23s18 14 GPIO_ACTIVE_LOW>, >> + <&mcp23s18 15 GPIO_ACTIVE_LOW>; >> + }; >> + >> + pwm-beeper { >> + compatible = "pwm-beeper"; >> + pwms = <&epwm0 1 1000000 0>; >> + amp-supply = <&sensor_3v3>; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&pwm_beeper_default_pins>; >> + }; >> + >> + vsys_out: regulator-0 { >> + /* output of BQ24070 */ >> + compatible = "regulator-fixed"; >> + regulator-name = "VSYS_OUT"; >> + regulator-min-microvolt = <4400000>; >> + regulator-max-microvolt = <4400000>; >> + regulator-always-on; >> + regulator-boot-on; >> + bootph-all; >> + }; >> + >> + vcc_3v3_main: regulator-1 { >> + /* output of TPS62A06 */ >> + compatible = "regulator-fixed"; >> + regulator-name = "VCC_3V3_MAIN"; >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + vin-supply = <&vsys_out>; >> + regulator-always-on; >> + regulator-boot-on; >> + bootph-all; >> + }; >> + >> + vdd_3v3: regulator-2 { >> + /* output of TPS22965 */ >> + compatible = "regulator-fixed"; >> + regulator-name = "VDD_3V3"; >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + vin-supply = <&vsys_out>; >> + regulator-always-on; >> + regulator-boot-on; >> + bootph-all; >> + }; >> + >> + vdd_3v3_sd: regulator-3 { >> + /* TPS22918DBVR */ >> + compatible = "regulator-fixed"; >> + regulator-name = "VDD_3V3_SD"; >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + vin-supply = <&vdd_3v3>; >> + regulator-boot-on; >> + enable-active-high; >> + gpio = <&gpio0 16 GPIO_ACTIVE_HIGH>; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&vdd_3v3_sd_ena_default_pins>; >> + bootph-all; >> + }; >> + >> + sensor_3v3: regulator-4 { >> + /* TPS22918DBVR */ >> + compatible = "regulator-fixed"; >> + regulator-name = "Sensor_3V3"; >> + regulator-min-microvolt = <3300000>; >> + regulator-max-microvolt = <3300000>; >> + vin-supply = <&vdd_3v3>; >> + regulator-boot-on; >> + regulator-always-on; >> + enable-active-high; >> + gpio = <&wkup_gpio0 1 GPIO_ACTIVE_HIGH>; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&sensor_3v3_ena_default_pins>; >> + bootph-all; >> + }; >> + >> + wlan_en: regulator-5 { >> + compatible = "regulator-fixed"; >> + regulator-name = "wlan_en"; >> + regulator-min-microvolt = <1800000>; >> + regulator-max-microvolt = <1800000>; >> + enable-active-high; >> + gpios = <&gpio0 51 GPIO_ACTIVE_HIGH>; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&wlan_en_pins_default>; >> + }; >> +}; >> + >> +&pmx0 { >> + uart0_default_pins: uart0-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x01b8, PIN_OUTPUT, 0) /* (C13) UART0_TXD */ >> + AM62LX_IOPAD(0x01b4, PIN_INPUT, 0) /* (D13) UART0_RXD */ >> + >; >> + bootph-all; >> + }; >> + >> + uart0_wakeup_pins: uart0-wakeup-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x01b8, PIN_OUTPUT, 0) /* (C13) UART0_TXD */ >> + AM62LX_IOPAD(0x01b4, PIN_INPUT | PIN_WKUP_EN, 0) /* (D13) >> UART0_RXD */ >> + >; >> + bootph-all; >> + }; >> + >> + uart1_default_pins: uart1-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x019c, PIN_OUTPUT, 2) /* (A12) UART1_TXD */ >> + AM62LX_IOPAD(0x0198, PIN_INPUT, 2) /* (C11) UART1_RXD */ >> + AM62LX_IOPAD(0x0180, PIN_INPUT, 2) /* (A8) UART1_CTS */ >> + AM62LX_IOPAD(0x0184, PIN_OUTPUT, 2) /* (B10) UART1_RTS */ >> + >; >> + bootph-all; >> + }; >> + >> + usr_button_default_pins: usr-button-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x00a4, PIN_INPUT, 7) /* (H18) >> GPMC0_AD11.GPIO0_26 */ >> + AM62LX_IOPAD(0x01e4, PIN_INPUT, 7) /* (D16) >> EXT_REFCLK1.GPIO0_104 */ >> + AM62LX_IOPAD(0x00c0, PIN_INPUT, 7) /* (N19) >> GPMC0_ADVn_ALE.GPIO0_32 */ >> + AM62LX_IOPAD(0x00e8, PIN_INPUT, 7) /* (L19) >> GPMC0_CSn1.GPIO0_42 */ >> + AM62LX_IOPAD(0x00b8, PIN_INPUT, 7) /* (L21) >> GPMC0_CLK.GPIO0_31 */ >> + AM62LX_IOPAD(0x01c0, PIN_INPUT, 7) /* (B13) >> UART0_RTSn.GPIO0_95 */ >> + >; >> + }; >> + >> + i2c0_default_pins: i2c0-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x01cc, PIN_INPUT_PULLUP, 0) /* (B7) >> I2C0_SCL */ >> + AM62LX_IOPAD(0x01d0, PIN_INPUT_PULLUP, 0) /* (A7) >> I2C0_SDA */ >> + >; >> + bootph-all; >> + }; >> + >> + i2c1_default_pins: i2c1-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x01d4, PIN_INPUT_PULLUP, 0) /* (D7) >> I2C1_SCL */ >> + AM62LX_IOPAD(0x01d8, PIN_INPUT_PULLUP, 0) /* (A6) >> I2C1_SDA */ >> + >; >> + bootph-all; >> + }; >> + >> + vdd_3v3_sd_ena_default_pins: vdd-3v3-sd-ena-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x07c, PIN_OUTPUT, 7) /* (L23) >> GPMC0_AD1.GPIO0_16 */ >> + >; >> + bootph-all; >> + }; >> + >> + sensor_3v3_ena_default_pins: sensor-3v3-ena-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x004, PIN_OUTPUT, 7) /* (AA23) >> WKUP_UART0_TXD.WKUP_GPIO0_1 */ >> + >; >> + }; >> + >> + mmc1_default_pins: mmc1-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x0230, PIN_INPUT, 0) /* (Y3) MMC1_CMD */ >> + AM62LX_IOPAD(0x0228, PIN_OUTPUT, 0) /* (Y2) MMC1_CLK */ >> + AM62LX_IOPAD(0x0224, PIN_INPUT, 0) /* (AA1) MMC1_DAT0 */ >> + AM62LX_IOPAD(0x0220, PIN_INPUT, 0) /* (Y4) MMC1_DAT1 */ >> + AM62LX_IOPAD(0x021c, PIN_INPUT, 0) /* (AA2) MMC1_DAT2 */ >> + AM62LX_IOPAD(0x0218, PIN_INPUT, 0) /* (AB2) MMC1_DAT3 */ >> + AM62LX_IOPAD(0x0234, PIN_INPUT, 0) /* (B6) MMC1_SDCD */ >> + >; >> + bootph-all; >> + }; >> + >> + mmc2_pins_default: mmc2-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x010c, PIN_INPUT, 0) /* (U23) MMC2_CMD */ >> + AM62LX_IOPAD(0x0104, PIN_OUTPUT, 0) /* (R23) MMC2_CLK */ >> + AM62LX_IOPAD(0x0108, PIN_INPUT, 0) /* () MMC2_CLKLB */ >> + AM62LX_IOPAD(0x0100, PIN_INPUT, 0) /* (U22) MMC2_DAT0 */ >> + AM62LX_IOPAD(0x00fc, PIN_INPUT, 0) /* (T22) MMC2_DAT1 */ >> + AM62LX_IOPAD(0x00f8, PIN_INPUT, 0) /* (T23) MMC2_DAT2 */ >> + AM62LX_IOPAD(0x00f4, PIN_INPUT, 0) /* (R22) MMC2_DAT3 */ >> + >; >> + }; >> + >> + wlan_en_pins_default: wlan-en-pins-default { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x0110, PIN_OUTPUT, 7) /* (T20) >> MMC2_SDCD.GPIO0_51 */ >> + >; >> + }; >> + >> + wlirq_pins_default: wlirq-pins-default { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x0114, PIN_INPUT, 7) /* (T21) >> MMC2_SDWP.GPIO0_52 */ >> + >; >> + }; >> + >> + usb1_default_pins: usb1-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x0248, PIN_INPUT | PIN_DS_PULLUD_ENABLE | >> PIN_DS_PULL_UP, 0) /* (A5) USB1_DRVVBUS */ >> + >; >> + bootph-all; >> + }; >> + >> + pwm_beeper_default_pins: pwm-beeper-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x00b0, PIN_OUTPUT, 4) /* (F22) >> GPMC0_AD14.EHRPWM0_B */ >> + >; >> + }; >> + >> + pmic_irq_default_pins: pmic-irq-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x01e8, PIN_INPUT, 0) /* (C8) EXTINTn */ >> + >; >> + bootph-all; >> + }; >> + >> + wkup_i2c0_default_pins: wkup-i2c0-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x0010, PIN_INPUT_PULLUP, 0) /* (AB22) >> WKUP_I2C0_SCL */ >> + AM62LX_IOPAD(0x0014, PIN_INPUT_PULLUP, 0) /* (AA22) >> WKUP_I2C0_SDA */ >> + >; >> + bootph-all; >> + }; >> + >> + rgb_led_default_pins: rgb-led-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x0190, PIN_OUTPUT, 2) /* (A11) >> MCASP0_ACLKX.ECAP2_IN_APWM_OUT */ >> + AM62LX_IOPAD(0x0188, PIN_OUTPUT, 2) /* (A9) >> MCASP0_AXR1.ECAP1_IN_APWM_OUT */ >> + AM62LX_IOPAD(0x018c, PIN_OUTPUT, 5) /* (B9) >> MCASP0_AXR0.EHRPWM1_B */ >> + >; >> + }; >> + >> + spi1_pins_default: spi1-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x008c, PIN_OUTPUT, 4) /* (H22) >> GPMC0_AD5.SPI1_CLK */ >> + AM62LX_IOPAD(0x0088, PIN_OUTPUT, 4) /* (K23) >> GPMC0_AD4.SPI1_CS0 */ >> + AM62LX_IOPAD(0x0080, PIN_INPUT, 4) /* (K22) >> GPMC0_AD2.SPI1_D0 */ >> + AM62LX_IOPAD(0x0084, PIN_OUTPUT, 4) /* (J23) >> GPMC0_AD3.SPI1_D1 */ >> + >; >> + bootph-all; >> + }; >> + >> + spi3_pins_default: spi3-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x00d0, PIN_OUTPUT, 5) /* (P22) >> GPMC0_BE1n.SPI3_CLK */ >> + AM62LX_IOPAD(0x00cc, PIN_OUTPUT, 5) /* (P23) >> GPMC0_BE0n_CLE.SPI3_CS0 */ >> + AM62LX_IOPAD(0x00d4, PIN_INPUT, 5) /* (N23) >> GPMC0_WAIT0.SPI3_D0 */ >> + AM62LX_IOPAD(0x00d8, PIN_OUTPUT, 5) /* (N22) >> GPMC0_WAIT1.SPI3_D1 */ >> + >; >> + }; >> + >> + mcp23s18_reset_pins_default: mcp23s18-reset-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x00a0, PIN_OUTPUT, 4) /* (H21) >> GPMC0_AD10.GPIO0_25 */ >> + >; >> + }; >> + >> + lora_control_pins_default: lora-control-default-pins { >> + pinctrl-single,pins = < >> + AM62LX_IOPAD(0x00c8, PIN_OUTPUT, 7) /* (M19) >> GPMC0_WEn.GPIO0_34 */ >> + AM62LX_IOPAD(0x00e4, PIN_OUTPUT, 7) /* (L20) >> GPMC0_CSn0.GPIO0_41 */ >> + AM62LX_IOPAD(0x01a4, PIN_INPUT, 7) /* (D11) >> SPI0_CS1.GPIO0_88 */ >> + AM62LX_IOPAD(0x01bc, PIN_INPUT, 7) /* (B14) >> UART0_CTSn.GPIO0_94 */ >> + >; >> + }; >> +}; >> + >> +&uart0 { >> + wakeup-source; >> + pinctrl-0 = <&uart0_default_pins>; >> + pinctrl-1 = <&uart0_wakeup_pins>; >> + pinctrl-names = "default", "wakeup"; >> + bootph-all; >> + status = "okay"; >> +}; >> + >> +&uart1 { >> + pinctrl-names = "default"; >> + pinctrl-0 = <&uart1_default_pins>; >> + bootph-all; >> + status = "okay"; >> +}; >> + >> +&i2c0 { >> + clock-frequency = <400000>; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&i2c0_default_pins>; >> + bootph-all; >> + status = "okay"; >> + >> + /* EEPROM */ >> + eeprom@50 { >> + /* FT24C32A-ELRT */ >> + compatible = "atmel,24c32"; >> + reg = <0x50>; >> + }; >> + >> + /* Fuel Gauge */ >> + fuel-gauge@55 { >> + compatible = "ti,bq27541"; >> + reg = <0x55>; >> + }; >> + >> + /* IMU Sensor */ >> + accelerometer@6a { >> + compatible = "st,lsm6ds3tr-c"; >> + reg = <0x6a>; >> + vdd-supply = <&vcc_3v3_main>; >> + vddio-supply = <&vcc_3v3_main>; >> + }; >> + >> + /* T&H Sensor */ >> + th-sensor@44 { >> + compatible = "sensirion,sht4x"; >> + reg = <0x44>; >> + }; >> +}; >> + >> +&i2c1 { >> + clock-frequency = <400000>; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&i2c1_default_pins>; >> + bootph-all; >> + status = "okay"; >> +}; >> + >> +&wkup_i2c0 { >> + clock-frequency = <400000>; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&wkup_i2c0_default_pins>; >> + status = "okay"; >> + >> + tps65214: pmic@30 { >> + compatible = "ti,tps65214"; >> + reg = <0x30>; >> + interrupt-parent = <&gic500>; >> + interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>; >> + buck1-supply = <&vcc_3v3_main>; >> + buck2-supply = <&vcc_3v3_main>; >> + buck3-supply = <&vcc_3v3_main>; >> + ldo1-supply = <&vcc_3v3_main>; >> + ldo2-supply = <&vcc_3v3_main>; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&pmic_irq_default_pins>; >> + ti,power-button; >> + >> + regulators { >> + buck1_reg: buck1 { >> + regulator-name = "VDD_CORE"; >> + regulator-min-microvolt = <750000>; >> + regulator-max-microvolt = <750000>; >> + regulator-always-on; >> + regulator-boot-on; >> + }; >> + >> + buck2_reg: buck2 { >> + regulator-name = "VDD_1V8"; >> + regulator-min-microvolt = <1800000>; >> + regulator-max-microvolt = <1800000>; >> + regulator-always-on; >> + regulator-boot-on; >> + }; >> + >> + buck3_reg: buck3 { >> + regulator-name = "VDD_LPDDR4"; >> + regulator-min-microvolt = <1100000>; >> + regulator-max-microvolt = <1100000>; >> + regulator-always-on; >> + regulator-boot-on; >> + }; >> + >> + ldo1_reg: ldo1 { >> + regulator-name = "VDDA_1V8"; >> + regulator-min-microvolt = <1800000>; >> + regulator-max-microvolt = <1800000>; >> + regulator-always-on; >> + regulator-boot-on; >> + }; >> + >> + ldo2_reg: ldo2 { >> + regulator-name = "PMIC_VDD_RTC"; >> + regulator-min-microvolt = <750000>; >> + regulator-max-microvolt = <750000>; >> + regulator-always-on; >> + regulator-boot-on; >> + }; >> + }; >> + }; >> +}; >> + >> +&gpio0 { >> + gpio-line-names ="","","","","","","","","","", /* >> 0-9 */ >> + "","","","","","","VDD_3V3_SD_ENA","","","", /* >> 10-19 */ >> + "","","","","","MCP23S18_RESET","USR0","","","", /* >> 20-29 */ >> + "","USR1","USR2","","LORA_RESET","","","","","", /* >> 30-39 */ >> + "","LORA_RFSW","USR3","","","","","","","", /* >> 40-49 */ >> + "","VDD_WLAN_EN","WL_IRQ","","","","","","","", /* >> 50-59 */ >> + "","","","","","","","","","", /* 60-69 */ >> + "","","","","","","","","","", /* 70-79 */ >> + "","","","","","","","","LORA_BUSY","", /* 80-89 */ >> + "","","","","LORA_DIO","USR4","","","","", /* >> 90-99 */ >> + "","","","","USR5","","","","",""; /* 100-109 */ >> + pinctrl-names = "default"; >> + pinctrl-0 = <&lora_control_pins_default>; >> + bootph-all; >> + status = "okay"; >> +}; >> + >> +&gpio2 { >> + bootph-all; >> + status = "okay"; >> +}; >> + >> +&wkup_gpio0 { >> + gpio-line-names >> ="","SENSOR_3V3_ENA","","","","","",""; /* 0-7 */ >> + bootph-all; >> + status = "okay"; >> +}; >> + >> +&sdhci1 { >> + /* SD/MMC */ >> + vmmc-supply = <&vdd_3v3_sd>; >> + disable-wp; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&mmc1_default_pins>; >> + bootph-all; >> + status = "okay"; >> +}; >> + >> +&sdhci2 { >> + vmmc-supply = <&wlan_en>; >> + bus-width = <4>; >> + non-removable; >> + cap-power-off-card; >> + keep-power-in-suspend; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&mmc2_pins_default>; >> + ti,driver-strength-ohm = <50>; >> + ti,fails-without-test-cd; >> + status = "okay"; >> + >> + wlcore: wlcore@2 { >> + compatible = "ti,cc3300"; >> + reg = <2>; >> + interrupt-parent = <&gpio0>; >> + interrupts = <52 IRQ_TYPE_EDGE_RISING>; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&wlirq_pins_default>; >> + }; >> +}; >> + >> +&epwm0 { >> + status = "okay"; >> +}; >> + >> +&epwm1 { >> + status = "okay"; >> +}; >> + >> +&ecap1 { >> + status = "okay"; >> +}; >> + >> +&ecap2 { > > No pinmux here? Even if you are using the default muxing, you should > still add > the pinmux info for both completness and to prevent accidental pin reuse by > some future addition. Same for EPWM above and USB nodes below. Will missing pinmux nodes & respin, thanks. ~ Judith > > Andrew > >> + status = "okay"; >> +}; >> + >> +&usbss0 { >> + ti,vbus-divider; >> + status = "okay"; >> +}; >> + >> +&usb0 { >> + usb-role-switch; >> + bootph-all; >> + status = "okay"; >> +}; >> + >> +&usbss1 { >> + ti,vbus-divider; >> + bootph-all; >> + status = "okay"; >> +}; >> + >> +&usb1 { >> + dr_mode = "host"; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&usb1_default_pins>; >> + bootph-all; >> + status = "okay"; >> +}; >> + >> +&spi1 { >> + pinctrl-names = "default"; >> + pinctrl-0 = <&spi1_pins_default>; >> + status = "okay"; >> + >> + mcp23s18: gpio@0 { >> + compatible = "microchip,mcp23s18"; >> + reg = <0>; >> + spi-max-frequency = <10000000>; >> + gpio-controller; >> + #gpio-cells = <2>; >> + reset-gpios = <&gpio0 25 GPIO_ACTIVE_LOW>; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&mcp23s18_reset_pins_default>; >> + microchip,spi-present-mask = <0x01>; >> + }; >> +}; >> + >> +&spi3 { >> + pinctrl-names = "default"; >> + pinctrl-0 = <&spi3_pins_default>; >> + status = "okay"; >> + >> + sx1262_lora: lora@0 { >> + compatible = "rohm,dh2228fv"; >> + reg = <0>; >> + spi-max-frequency = <10000000>; >> + }; >> +}; > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] arm64: dts: ti: Add k3-am62l3-beaglebadge 2026-05-01 23:31 ` [PATCH 2/2] arm64: dts: ti: Add k3-am62l3-beaglebadge Judith Mendez 2026-05-03 11:25 ` Krzysztof Kozlowski 2026-05-04 15:18 ` Andrew Davis @ 2026-05-04 16:19 ` Bryan Brattlof 2026-05-05 15:48 ` Judith Mendez 2 siblings, 1 reply; 11+ messages in thread From: Bryan Brattlof @ 2026-05-04 16:19 UTC (permalink / raw) To: Judith Mendez Cc: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree, linux-kernel, Andrew Davis On May 1, 2026 thus sayeth Judith Mendez: > BeagleBoard.org BeagleBadge is a compact, affordable open source > hardware single board computer based on the Texas Instruments AM62L3 > SoC designed for IoT and embedded applications with low power consumption. > Expansion is provided over open standards based headers including > QWIIC and GPIO interfaces. > > https://beagleboard.org/ > https://github.com/beagleboard/BeagleBadge > > Co-developed-by: Andrew Davis <afd@ti.com> > Signed-off-by: Judith Mendez <jm@ti.com> > --- > arch/arm64/boot/dts/ti/Makefile | 1 + > arch/arm64/boot/dts/ti/k3-am62l3-badge.dts | 655 +++++++++++++++++++++ ... > diff --git a/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts > b/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts > new file mode 100644 > index 000000000000..0125d3fec5e9 > --- /dev/null > +++ b/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts > @@ -0,0 +1,655 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * https://www.beagleboard.org/boards/beaglebadge > + * > + * Copyright (C) 2026 Texas Instruments Incorporated - https://www.ti.com/ > + */ > + > +/dts-v1/; > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > +#include <dt-bindings/leds/common.h> > +#include <dt-bindings/net/ti-dp83867.h> > +#include "k3-am62l3.dtsi" > +#include "k3-pinctrl.h" > + > +/ { > + compatible = "beagle,am62l3-badge", "ti,am62l3"; I noticed the $subject calls it the k3-am62l3-beaglebadge do we want to name the DT that as well? > + model = "BeagleBoard.org BeagleBadge"; > + ... > +&sdhci2 { > + vmmc-supply = <&wlan_en>; > + bus-width = <4>; > + non-removable; > + cap-power-off-card; > + keep-power-in-suspend; > + #address-cells = <1>; > + #size-cells = <0>; > + pinctrl-names = "default"; > + pinctrl-0 = <&mmc2_pins_default>; > + ti,driver-strength-ohm = <50>; > + ti,fails-without-test-cd; > + status = "okay"; > + > + wlcore: wlcore@2 { > + compatible = "ti,cc3300"; Sadly this only exists on our evil vendor tree :/ > + reg = <2>; > + interrupt-parent = <&gpio0>; > + interrupts = <52 IRQ_TYPE_EDGE_RISING>; > + pinctrl-names = "default"; > + pinctrl-0 = <&wlirq_pins_default>; > + }; > +}; > + Scanning over the bootlog it looks like the VTM driver is active but we're missing the thermal-zones{} node which is causing it issues. ~Bryan ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] arm64: dts: ti: Add k3-am62l3-beaglebadge 2026-05-04 16:19 ` Bryan Brattlof @ 2026-05-05 15:48 ` Judith Mendez 2026-05-05 16:01 ` Andrew Davis 0 siblings, 1 reply; 11+ messages in thread From: Judith Mendez @ 2026-05-05 15:48 UTC (permalink / raw) To: Bryan Brattlof Cc: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree, linux-kernel, Andrew Davis Hi Bryan, all, On 5/4/26 11:19 AM, Bryan Brattlof wrote: > On May 1, 2026 thus sayeth Judith Mendez: >> BeagleBoard.org BeagleBadge is a compact, affordable open source >> hardware single board computer based on the Texas Instruments AM62L3 >> SoC designed for IoT and embedded applications with low power consumption. >> Expansion is provided over open standards based headers including >> QWIIC and GPIO interfaces. >> >> https://beagleboard.org/ >> https://github.com/beagleboard/BeagleBadge >> >> Co-developed-by: Andrew Davis <afd@ti.com> >> Signed-off-by: Judith Mendez <jm@ti.com> >> --- >> arch/arm64/boot/dts/ti/Makefile | 1 + >> arch/arm64/boot/dts/ti/k3-am62l3-badge.dts | 655 +++++++++++++++++++++ > > ... > >> diff --git a/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts >> b/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts >> new file mode 100644 >> index 000000000000..0125d3fec5e9 >> --- /dev/null >> +++ b/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts >> @@ -0,0 +1,655 @@ >> +// SPDX-License-Identifier: GPL-2.0 >> +/* >> + * https://www.beagleboard.org/boards/beaglebadge >> + * >> + * Copyright (C) 2026 Texas Instruments Incorporated - https://www.ti.com/ >> + */ >> + >> +/dts-v1/; >> + >> +#include <dt-bindings/gpio/gpio.h> >> +#include <dt-bindings/input/input.h> >> +#include <dt-bindings/leds/common.h> >> +#include <dt-bindings/net/ti-dp83867.h> >> +#include "k3-am62l3.dtsi" >> +#include "k3-pinctrl.h" >> + >> +/ { >> + compatible = "beagle,am62l3-badge", "ti,am62l3"; > > I noticed the $subject calls it the k3-am62l3-beaglebadge do we want to > name the DT that as well? > >> + model = "BeagleBoard.org BeagleBadge"; >> + > So I see other beagle boards have the following: beagle,am67a-beagley-ai in k3-am67a-beagley-ai.dts beagle,am625-beagleplay in k3-am625-beagleplay.dts beagle,am62-pocketbeagle2 in k3-am62-pocketbeagle2.dts beagle,j721e-beagleboneai64 in k3-j721e-beagleboneai64.dts so I think we should be using: beagle,am62l3-beaglebadge in k3-am62l3-beaglebadge.dts so if it is fine with everyone will update compatible & DT filename accordingly. > >> +&sdhci2 { >> + vmmc-supply = <&wlan_en>; >> + bus-width = <4>; >> + non-removable; >> + cap-power-off-card; >> + keep-power-in-suspend; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&mmc2_pins_default>; >> + ti,driver-strength-ohm = <50>; >> + ti,fails-without-test-cd; >> + status = "okay"; >> + >> + wlcore: wlcore@2 { >> + compatible = "ti,cc3300"; > > Sadly this only exists on our evil vendor tree :/ So sure, I saw that the WIFI driver is not in mainline, but I also referenced beagleplay series & it seems like as long as the hardware is described properly, the node can be upstreamed. Please correct me if I am wrong here.. > >> + reg = <2>; >> + interrupt-parent = <&gpio0>; >> + interrupts = <52 IRQ_TYPE_EDGE_RISING>; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&wlirq_pins_default>; >> + }; >> +}; >> + > > Scanning over the bootlog it looks like the VTM driver is active but > we're missing the thermal-zones{} node which is causing it issues. Opps, will add. thanks. ~ judith ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] arm64: dts: ti: Add k3-am62l3-beaglebadge 2026-05-05 15:48 ` Judith Mendez @ 2026-05-05 16:01 ` Andrew Davis 2026-05-05 16:26 ` Judith Mendez 0 siblings, 1 reply; 11+ messages in thread From: Andrew Davis @ 2026-05-05 16:01 UTC (permalink / raw) To: Judith Mendez, Bryan Brattlof Cc: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree, linux-kernel On 5/5/26 10:48 AM, Judith Mendez wrote: > Hi Bryan, all, > > On 5/4/26 11:19 AM, Bryan Brattlof wrote: >> On May 1, 2026 thus sayeth Judith Mendez: >>> BeagleBoard.org BeagleBadge is a compact, affordable open source >>> hardware single board computer based on the Texas Instruments AM62L3 >>> SoC designed for IoT and embedded applications with low power consumption. >>> Expansion is provided over open standards based headers including >>> QWIIC and GPIO interfaces. >>> >>> https://beagleboard.org/ >>> https://github.com/beagleboard/BeagleBadge >>> >>> Co-developed-by: Andrew Davis <afd@ti.com> >>> Signed-off-by: Judith Mendez <jm@ti.com> >>> --- >>> arch/arm64/boot/dts/ti/Makefile | 1 + >>> arch/arm64/boot/dts/ti/k3-am62l3-badge.dts | 655 +++++++++++++++++++++ >> >> ... >> >>> diff --git a/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts >>> b/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts >>> new file mode 100644 >>> index 000000000000..0125d3fec5e9 >>> --- /dev/null >>> +++ b/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts >>> @@ -0,0 +1,655 @@ >>> +// SPDX-License-Identifier: GPL-2.0 >>> +/* >>> + * https://www.beagleboard.org/boards/beaglebadge >>> + * >>> + * Copyright (C) 2026 Texas Instruments Incorporated - https://www.ti.com/ >>> + */ >>> + >>> +/dts-v1/; >>> + >>> +#include <dt-bindings/gpio/gpio.h> >>> +#include <dt-bindings/input/input.h> >>> +#include <dt-bindings/leds/common.h> >>> +#include <dt-bindings/net/ti-dp83867.h> >>> +#include "k3-am62l3.dtsi" >>> +#include "k3-pinctrl.h" >>> + >>> +/ { >>> + compatible = "beagle,am62l3-badge", "ti,am62l3"; >> >> I noticed the $subject calls it the k3-am62l3-beaglebadge do we want to >> name the DT that as well? >> >>> + model = "BeagleBoard.org BeagleBadge"; >>> + >> > > So I see other beagle boards have the following: > > beagle,am67a-beagley-ai in k3-am67a-beagley-ai.dts > beagle,am625-beagleplay in k3-am625-beagleplay.dts > beagle,am62-pocketbeagle2 in k3-am62-pocketbeagle2.dts > beagle,j721e-beagleboneai64 in k3-j721e-beagleboneai64.dts > > so I think we should be using: > > beagle,am62l3-beaglebadge in k3-am62l3-beaglebadge.dts > > so if it is fine with everyone will update compatible > & DT filename accordingly. > Looks correct to me. >> >>> +&sdhci2 { >>> + vmmc-supply = <&wlan_en>; >>> + bus-width = <4>; >>> + non-removable; >>> + cap-power-off-card; >>> + keep-power-in-suspend; >>> + #address-cells = <1>; >>> + #size-cells = <0>; >>> + pinctrl-names = "default"; >>> + pinctrl-0 = <&mmc2_pins_default>; >>> + ti,driver-strength-ohm = <50>; >>> + ti,fails-without-test-cd; >>> + status = "okay"; >>> + >>> + wlcore: wlcore@2 { >>> + compatible = "ti,cc3300"; >> >> Sadly this only exists on our evil vendor tree :/ > > So sure, I saw that the WIFI driver is not in mainline, > but I also referenced beagleplay series & it seems > like as long as the hardware is described properly, > the node can be upstreamed. Please correct me if I > am wrong here.. > Only in some special cases, but in general the driver needs to be upstreamed first. And even in those special cases a DT binding is always needed first. Otherwise how would we know if the node is described properly. For Beagleplay I only see the CC1352P7 radio in DT upstream, and it has a proper binding[0]. For now drop the CC3300, we can simply add it when the driver gets upstream. Andrew [0] Documentation/devicetree/bindings/net/ti,cc1352p7.yaml >> >>> + reg = <2>; >>> + interrupt-parent = <&gpio0>; >>> + interrupts = <52 IRQ_TYPE_EDGE_RISING>; >>> + pinctrl-names = "default"; >>> + pinctrl-0 = <&wlirq_pins_default>; >>> + }; >>> +}; >>> + >> >> Scanning over the bootlog it looks like the VTM driver is active but >> we're missing the thermal-zones{} node which is causing it issues. > > Opps, will add. thanks. > > ~ judith ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] arm64: dts: ti: Add k3-am62l3-beaglebadge 2026-05-05 16:01 ` Andrew Davis @ 2026-05-05 16:26 ` Judith Mendez 0 siblings, 0 replies; 11+ messages in thread From: Judith Mendez @ 2026-05-05 16:26 UTC (permalink / raw) To: Andrew Davis, Bryan Brattlof Cc: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree, linux-kernel On 5/5/26 11:01 AM, Andrew Davis wrote: > On 5/5/26 10:48 AM, Judith Mendez wrote: >> Hi Bryan, all, >> >> On 5/4/26 11:19 AM, Bryan Brattlof wrote: >>> On May 1, 2026 thus sayeth Judith Mendez: >>>> BeagleBoard.org BeagleBadge is a compact, affordable open source >>>> hardware single board computer based on the Texas Instruments AM62L3 >>>> SoC designed for IoT and embedded applications with low power >>>> consumption. >>>> Expansion is provided over open standards based headers including >>>> QWIIC and GPIO interfaces. >>>> >>>> https://beagleboard.org/ >>>> https://github.com/beagleboard/BeagleBadge >>>> >>>> Co-developed-by: Andrew Davis <afd@ti.com> >>>> Signed-off-by: Judith Mendez <jm@ti.com> >>>> --- >>>> arch/arm64/boot/dts/ti/Makefile | 1 + >>>> arch/arm64/boot/dts/ti/k3-am62l3-badge.dts | 655 +++++++++++++++++ >>>> ++++ >>> >>> ... >>> >>>> diff --git a/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts >>>> b/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts >>>> new file mode 100644 >>>> index 000000000000..0125d3fec5e9 >>>> --- /dev/null >>>> +++ b/arch/arm64/boot/dts/ti/k3-am62l3-badge.dts >>>> @@ -0,0 +1,655 @@ >>>> +// SPDX-License-Identifier: GPL-2.0 >>>> +/* >>>> + * https://www.beagleboard.org/boards/beaglebadge >>>> + * >>>> + * Copyright (C) 2026 Texas Instruments Incorporated - https:// >>>> www.ti.com/ >>>> + */ >>>> + >>>> +/dts-v1/; >>>> + >>>> +#include <dt-bindings/gpio/gpio.h> >>>> +#include <dt-bindings/input/input.h> >>>> +#include <dt-bindings/leds/common.h> >>>> +#include <dt-bindings/net/ti-dp83867.h> >>>> +#include "k3-am62l3.dtsi" >>>> +#include "k3-pinctrl.h" >>>> + >>>> +/ { >>>> + compatible = "beagle,am62l3-badge", "ti,am62l3"; >>> >>> I noticed the $subject calls it the k3-am62l3-beaglebadge do we want to >>> name the DT that as well? >>> >>>> + model = "BeagleBoard.org BeagleBadge"; >>>> + >>> >> >> So I see other beagle boards have the following: >> >> beagle,am67a-beagley-ai in k3-am67a-beagley-ai.dts >> beagle,am625-beagleplay in k3-am625-beagleplay.dts >> beagle,am62-pocketbeagle2 in k3-am62-pocketbeagle2.dts >> beagle,j721e-beagleboneai64 in k3-j721e-beagleboneai64.dts >> >> so I think we should be using: >> >> beagle,am62l3-beaglebadge in k3-am62l3-beaglebadge.dts >> >> so if it is fine with everyone will update compatible >> & DT filename accordingly. >> > > Looks correct to me. > >>> >>>> +&sdhci2 { >>>> + vmmc-supply = <&wlan_en>; >>>> + bus-width = <4>; >>>> + non-removable; >>>> + cap-power-off-card; >>>> + keep-power-in-suspend; >>>> + #address-cells = <1>; >>>> + #size-cells = <0>; >>>> + pinctrl-names = "default"; >>>> + pinctrl-0 = <&mmc2_pins_default>; >>>> + ti,driver-strength-ohm = <50>; >>>> + ti,fails-without-test-cd; >>>> + status = "okay"; >>>> + >>>> + wlcore: wlcore@2 { >>>> + compatible = "ti,cc3300"; >>> >>> Sadly this only exists on our evil vendor tree :/ >> >> So sure, I saw that the WIFI driver is not in mainline, >> but I also referenced beagleplay series & it seems >> like as long as the hardware is described properly, >> the node can be upstreamed. Please correct me if I >> am wrong here.. >> > > Only in some special cases, but in general the driver needs > to be upstreamed first. And even in those special cases a > DT binding is always needed first. Otherwise how would we know > if the node is described properly. > > For Beagleplay I only see the CC1352P7 radio in DT upstream, > and it has a proper binding[0]. For now drop the CC3300, we > can simply add it when the driver gets upstream. > got it, will drop wlcore node, thanks. ~ Judith ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2026-05-05 16:27 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-05-01 23:31 [PATCH 0/2] arm64: dts/bindings: Add support for BeagleBadge Judith Mendez 2026-05-01 23:31 ` [PATCH 1/2] dt-bindings: arm: ti: Add am62l3-badge Judith Mendez 2026-05-01 23:31 ` [PATCH 2/2] arm64: dts: ti: Add k3-am62l3-beaglebadge Judith Mendez 2026-05-03 11:25 ` Krzysztof Kozlowski 2026-05-05 15:07 ` Judith Mendez 2026-05-04 15:18 ` Andrew Davis 2026-05-05 15:08 ` Judith Mendez 2026-05-04 16:19 ` Bryan Brattlof 2026-05-05 15:48 ` Judith Mendez 2026-05-05 16:01 ` Andrew Davis 2026-05-05 16:26 ` Judith Mendez
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox