]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ARM: dts: am335x: Add Seeed Studio BeagleBone HDMI cape overlay
authorKory Maincent (TI) <kory.maincent@bootlin.com>
Mon, 16 Feb 2026 16:55:54 +0000 (17:55 +0100)
committerKevin Hilman (TI) <khilman@baylibre.com>
Wed, 1 Apr 2026 00:15:17 +0000 (17:15 -0700)
Add devicetree overlay for the Seeed Studio BeagleBone HDMI cape, which
provides HDMI output via an ITE IT66121 HDMI bridge and audio support
through McASP.

The cape is designed for BeagleBone Green but is also compatible with
BeagleBone and BeagleBone Black due to pin compatibility.

Link: https://www.seeedstudio.com/Seeed-Studio-BeagleBoner-Green-HDMI-Cape.html
Signed-off-by: Kory Maincent (TI) <kory.maincent@bootlin.com>
Signed-off-by: Kevin Hilman (TI) <khilman@baylibre.com>
arch/arm/boot/dts/ti/omap/Makefile
arch/arm/boot/dts/ti/omap/am335x-bone-hdmi-00a0.dtso [new file with mode: 0644]

index 4c577214f512286c0863d61148817a4267d1f744..3a4d9204339b941abd76ff6d7eb6be242576be94 100644 (file)
@@ -84,6 +84,10 @@ dtb-$(CONFIG_ARCH_OMAP4) += \
        omap4-samsung-espresso10.dtb \
        omap4-xyboard-mz609.dtb \
        omap4-xyboard-mz617.dtb
+
+am335x-bonegreen-hdmi-00a0-dtbs := am335x-bonegreen-eco.dtb \
+       am335x-bone-hdmi-00a0.dtbo
+
 dtb-$(CONFIG_SOC_AM33XX) += \
        am335x-baltos-ir2110.dtb \
        am335x-baltos-ir3220.dtb \
@@ -95,6 +99,7 @@ dtb-$(CONFIG_SOC_AM33XX) += \
        am335x-bonegreen.dtb \
        am335x-bonegreen-wireless.dtb \
        am335x-bonegreen-eco.dtb \
+       am335x-bonegreen-hdmi-00a0.dtb \
        am335x-chiliboard.dtb \
        am335x-cm-t335.dtb \
        am335x-evm.dtb \
diff --git a/arch/arm/boot/dts/ti/omap/am335x-bone-hdmi-00a0.dtso b/arch/arm/boot/dts/ti/omap/am335x-bone-hdmi-00a0.dtso
new file mode 100644 (file)
index 0000000..f43f44c
--- /dev/null
@@ -0,0 +1,157 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * 2017 Copyright (c) Seeed Technology Inc.  All right reserved.
+ * Author: Baozhu Zuo <zuobaozhu@gmail.com>
+ * Copyright (c) Bootlin 2026
+ *
+ * This device tree overlay is compatible with the BeagleBone Black, Green
+ * and their subversions.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/pinctrl/am33xx.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+&{/} {
+       hdmi0: connector-hdmi {
+               compatible = "hdmi-connector";
+               label = "hdmi";
+               type = "a";
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&it66121_out>;
+                       };
+               };
+       };
+
+       clk_mcasp0_fixed: clk-mcasp0-fixed {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <24576000>;
+       };
+
+       clk_mcasp0: clk-mcasp0 {
+               #clock-cells = <0>;
+               compatible = "gpio-gate-clock";
+               clocks = <&clk_mcasp0_fixed>;
+               enable-gpios = <&gpio1 27 0>;
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "TI BeagleBone Green HDMI cape";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,bitclock-master = <&sound_master>;
+               simple-audio-card,frame-master = <&sound_master>;
+
+               sound_master: simple-audio-card,cpu {
+                       sound-dai = <&mcasp0>;
+                       clocks = <&clk_mcasp0>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&it66121>;
+               };
+       };
+};
+
+&am33xx_pinmux {
+       bb_lcd_pins: pinmux-bb-lcd-pins {
+               pinctrl-single,pins = <
+                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA0, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA1, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA2, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA3, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA4, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA5, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA6, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA7, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA8, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA9, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA10, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA11, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA12, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA13, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA14, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA15, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_VSYNC, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_HSYNC, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_PCLK, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_LCD_AC_BIAS_EN, PIN_OUTPUT, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_GPMC_ADVN_ALE, PIN_OUTPUT_PULLDOWN, MUX_MODE7)
+                       AM33XX_PADCONF(AM335X_PIN_GPMC_OEN_REN, PIN_OUTPUT_PULLDOWN, MUX_MODE7)
+                       AM33XX_PADCONF(AM335X_PIN_GPMC_WEN, PIN_INPUT, MUX_MODE7)
+               >;
+       };
+       mcasp0_pins: mcasp0-pins {
+               pinctrl-single,pins = <
+                       AM33XX_PADCONF(AM335X_PIN_MCASP0_AHCLKX, PIN_INPUT_PULLUP, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_MCASP0_AHCLKR, PIN_OUTPUT_PULLDOWN, MUX_MODE2)
+                       AM33XX_PADCONF(AM335X_PIN_MCASP0_FSX, PIN_OUTPUT_PULLUP, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_MCASP0_ACLKX, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
+               >;
+       };
+};
+
+&i2c2 {
+       status = "okay";
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       it66121: it66121 {
+               compatible = "ite,it66121";
+               reg = <0x4d>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bb_lcd_pins>;
+
+               #sound-dai-cells = <0>;
+
+               interrupt-parent = <&gpio2>;
+               interrupts = <4 IRQ_TYPE_EDGE_RISING>;
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               it66121_in: endpoint {
+                                       bus-width = <24>;
+                                       remote-endpoint = <&lcdc_0>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               it66121_out: endpoint {
+                                       remote-endpoint = <&hdmi_connector_in>;
+                               };
+                       };
+               };
+       };
+};
+
+&lcdc {
+       status = "okay";
+       blue-and-red-wiring = "straight";
+       port {
+               lcdc_0: endpoint@0 {
+                       remote-endpoint = <&it66121_in>;
+               };
+       };
+};
+
+
+&mcasp0 {
+       status = "okay";
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcasp0_pins>;
+       op-mode = <0>;
+       tdm-slots = <2>;
+       serial-dir = < 0 0 1 0 >;
+       tx-num-evt = <32>;
+       rx-num-evt = <32>;
+};
+