[PATCH v4 2/3] arm64: dts: ti: Add k3-am62l3-beaglebadge
Nishanth Menon
nm at ti.com
Mon May 18 06:11:37 PDT 2026
On 10:35-20260515, 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://github.com/beagleboard/BeagleBadge
Why not use https://www.beagleboard.org/boards/beaglebadge ?
>
> Co-developed-by: Andrew Davis <afd at ti.com>
> Signed-off-by: Andrew Davis <afd at ti.com>
> Signed-off-by: Judith Mendez <jm at ti.com>
> ---
> Changelog since v3:
> - Add missing newline in commit message
> - Drop beagleboard URL
> - Drop uneeded header files
> - Add boothph flags in wkup_i2c0 & PMC nodes
> ---
> arch/arm64/boot/dts/ti/Makefile | 1 +
> .../boot/dts/ti/k3-am62l3-beaglebadge.dts | 700 ++++++++++++++++++
> 2 files changed, 701 insertions(+)
> create mode 100644 arch/arm64/boot/dts/ti/k3-am62l3-beaglebadge.dts
>
> diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
> index 5269c9619b65c..4e377ca011cd8 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-beaglebadge.dtb
>
> # Boards with AM62Px SoC
> dtb-$(CONFIG_ARCH_K3) += k3-am62p5-sk.dtb
> diff --git a/arch/arm64/boot/dts/ti/k3-am62l3-beaglebadge.dts b/arch/arm64/boot/dts/ti/k3-am62l3-beaglebadge.dts
> new file mode 100644
> index 0000000000000..30fc9c83b1f44
> --- /dev/null
> +++ b/arch/arm64/boot/dts/ti/k3-am62l3-beaglebadge.dts
> @@ -0,0 +1,700 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * https://www.beagleboard.org/boards/beaglebadge
> + *
> + * Copyright (C) 2026 Texas Instruments Incorporated - https://www.ti.com/
Seeing the tags, I assume no BeagleBoard.org member contributions?
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/leds/common.h>
> +#include "k3-am62l3.dtsi"
> +#include "k3-pinctrl.h"
> +
> +/ {
> + compatible = "beagle,am62l3-beaglebadge", "ti,am62l3";
> + model = "BeagleBoard.org BeagleBadge";
> +
> + chosen {
> + stdout-path = &uart0;
> + };
> +
> + aliases {
> + gpio0 = &gpio0;
> + gpio2 = &wkup_gpio0;
> + i2c0 = &i2c0;
> + i2c1 = &i2c1;
> + i2c2 = &i2c2;
> + i2c4 = &wkup_i2c0;
> + mmc1 = &sdhci1;
> + mmc2 = &sdhci2;
> + serial3 = &uart1;
> + usb0 = &usb0;
> + usb1 = &usb1;
is this valid?
git grep of_alias_ driver/usb/
am I missing something?
> + };
> +
> + memory at 80000000 {
> + /* 256MB */
> + reg = <0x00000000 0x80000000 0x00000000 0x10000000>;
> + device_type = "memory";
> + bootph-all;
> + };
> +
> + thermal-zones {
> + wkup0-thermal {
> + polling-delay-passive = <250>; /* milliSeconds */
> + polling-delay = <500>; /* milliSeconds */
> + thermal-sensors = <&vtm0 0>;
> +
> + trips {
> + crit0 {
> + temperature = <125000>;
> + hysteresis = <2000>;
> + type = "critical";
> + };
> + };
> + };
> + };
This is better done by having something like
arch/arm64/boot/dts/ti/k3-am62l-industrial-thermal.dtsi
[..]
> +
> + 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;
Why sensor supply is always on?
> + enable-active-high;
> + gpio = <&wkup_gpio0 1 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&sensor_3v3_ena_pins_default>;
> + 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>;
> + };
> +};
> +
[..]
> +
> + usr_button_pins_default: 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 */
> + >;
> + };
no wakeup from usr buttons?
[...]
> +};
> +
> +&gpio0 {
> + gpio-line-names ="","","","","","","","","","", /* 0-9 */
space after that =
> + "","","","","","BOOST_5V_ENA","VDD_3V3_SD_ENA","","","", /* 10-19 */
> + "","","","","","MCP23S18_RESET","BTN_SELECT","","","", /* 20-29 */
> + "","BTN_LEFT","BTN_UP","","LORA_RESET","","","","","", /* 30-39 */
> + "FUEL_GAUGE_BATLOW","LORA_RFSW","BTN_DOWN","USB_HUB_RST","MIKROBUS_INT","","","","","", /* 40-49 */
> + "","WLAN_EN","","","","","","","","", /* 50-59 */
> + "","","","","","","","","","", /* 60-69 */
> + "","","","","","","","","","", /* 70-79 */
> + "","","","","MIKROBUS_RST","","","","LORA_BUSY","", /* 80-89 */
> + "","","","","LORA_DIO","BTN_RIGHT","","","","", /* 90-99 */
> + "","","","","BTN_BACK","","","","","", /* 100-109 */
> + "","","","","","","","","","", /* 110-119 */
> + "","","SD_CD","","",""; /* 120-125 */
Could you keep these under 100 chars?
> + pinctrl-names = "default";
> + pinctrl-0 = <&gpio0_pins_default>, <&usr_button_pins_default>, <&lora_control_pins_default>;
> + bootph-all;
> + status = "okay";
> +};
> +
> +&wkup_gpio0 {
> + gpio-line-names ="","SENSOR_3V3_ENA","","","","","",""; /* 0-7 */
same
> + bootph-all;
> + status = "okay";
> +};
> +
> +&sdhci1 {
> + /* SD/MMC */
> + vmmc-supply = <&vdd_3v3_sd>;
> + disable-wp;
> + cd-gpios = <&gpio0 122 GPIO_ACTIVE_LOW>;
> + cd-debounce-delay-ms = <100>;
> + ti,fails-without-test-cd;
> + pinctrl-names = "default";
> + pinctrl-0 = <&mmc1_pins_default>;
> + bootph-all;
> + status = "okay";
> +};
> +
> +&sdhci2 {
> + vmmc-supply = <&wlan_en>;
> + bus-width = <4>;
> + non-removable;
> + cap-power-off-card;
> + keep-power-in-suspend;
> + pinctrl-names = "default";
> + pinctrl-0 = <&mmc2_pins_default>;
> + ti,driver-strength-ohm = <50>;
> + ti,fails-without-test-cd;
> + status = "okay";
> +};
Why not introduce the sdhci2 and supplies once we get wlan driver in
upstream?
[...]
--
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D
https://ti.com/opensource
More information about the linux-arm-kernel
mailing list