Commit 2c4059f5 authored by Kory Maincent (TI)'s avatar Kory Maincent (TI) Committed by Kevin Hilman (TI)
Browse files

ARM: dts: am335x: Add Seeed Studio BeagleBone HDMI cape overlay

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: default avatarKory Maincent (TI) <kory.maincent@bootlin.com>
Signed-off-by: default avatarKevin Hilman (TI) <khilman@baylibre.com>
parent 158ecce9
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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 \
+157 −0
Original line number Diff line number Diff line
// 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>;
};