[PATCH v4 2/3] arm64: dts: ti: Add k3-am62l3-beaglebadge
Judith Mendez
jm at ti.com
Tue May 26 14:53:30 PDT 2026
On 5/18/26 8:11 AM, Nishanth Menon wrote:
> 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 ?
Will switch link
>>
>> 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?
Not yet ^.^
>
>> + */
>> +
>> +/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
I am following what k3-am62l3-evm.dts is doing [0], we moved
thermal-zones node to the board file instead of defining in thermal.dtsi
[0]
https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts#L61
>
> [..]
>
>> +
>> + 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?
No special reason, I can remove to help with power saving.
>
>> + 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?
RTC wakeup node is not in upstream tree, so no, user button wakeup
support is not enabled yet.
>
> [...]
>
>> +};
>> +
>> +&gpio0 {
>> + gpio-line-names ="","","","","","","","","","", /* 0-9 */
>
> space after that =
Will fix.
>
>> + "","","","","","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?
I could for most of these lines I believe, but it will completely mess
up the alignment in comments, If that is fine, I will fix. (:
>
>> + 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?
I can do that. NP.
~ Judith
...
More information about the linux-arm-kernel
mailing list