Skip to content
223 changes: 223 additions & 0 deletions hacks/0005-split-HDMI-firmware-into-video-and-audio.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
index b4d2f46..e8de488 100644
--- a/arch/arm/boot/dts/am335x-bone-common.dtsi
+++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
@@ -219,6 +219,17 @@
part-number = "BB-BONELT-HDMI";
};

+ /* Beaglebone black has it soldered on */
+ slot@102 {
+ ti,cape-override;
+ priority = <1>;
+ compatible = "ti,beaglebone-black";
+ board-name = "Bone-Black-HDMIA";
+ version = "00A0";
+ manufacturer = "Texas Instruments";
+ part-number = "BB-BONELT-HDMIA";
+ };
+
};

/* mapping between board names and dtb objects */
@@ -349,6 +360,15 @@
dtbo = "BB-BONE-RS232-00A0.dtbo";
};
};
+ /* beaglebone black hdmi on board */
+ cape@13 {
+ part-number = "BB-BONELT-HDMIA";
+ version@00A0 {
+ version = "00A0";
+ dtbo = "cape-boneblack-hdmi-audio-00A0.dtbo";
+ };
+ };
+
};
};

diff --git a/firmware/Makefile b/firmware/Makefile
index 6d896d2..73babd0 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -199,6 +199,9 @@ fw-shipped-$(CONFIG_CAPE_BEAGLEBONE) += cape-bone-weather-00A0.dtbo
# the HDMI virtual cape on the beaglebone-black
fw-shipped-$(CONFIG_CAPE_BEAGLEBONE) += cape-boneblack-hdmi-00A0.dtbo

+# The HDMI virtual audio cape on beaglebone black
+fw-shipped-$(CONFIG_CAPE_BEAGLEBONE) += cape-boneblack-hdmi-audio-00A0.dtbo
+
# the Tester cape (tester-side)
fw-shipped-$(CONFIG_CAPE_BEAGLEBONE) += cape-bone-tester-00A0.dtbo

diff --git a/firmware/capes/cape-boneblack-hdmi-00A0.dts b/firmware/capes/cape-boneblack-hdmi-00A0.dts
index 5fdbd9e..85387f4 100644
--- a/firmware/capes/cape-boneblack-hdmi-00A0.dts
+++ b/firmware/capes/cape-boneblack-hdmi-00A0.dts
@@ -16,10 +16,6 @@
/* state the resources this cape uses */
exclusive-use =
/* the pin header uses */
- "P9.25", /* mcasp0: mcasp0_ahclkx */
- "P9.28", /* mcasp0: mcasp0_axr2 */
- "P9.29", /* mcasp0: mcasp0_fsx */
- "P9.31", /* mcasp0: mcasp0_aclkx */
"P8.45", /* lcd: lcd_data0 */
"P8.46", /* lcd: lcd_data1 */
"P8.43", /* lcd: lcd_data2 */
@@ -42,7 +38,6 @@
"P8.30", /* lcd: lcd_ac_bias_en */
/* the hardware IP uses */
"gpio1_27",
- "mcasp0",
"lcd";

fragment@0 {
@@ -78,16 +73,6 @@
0x1b0 0x03 /* xdma_event_intr0, OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT */
>;
};
-
- mcasp0_pins: mcasp0_pins {
- pinctrl-single,pins = <
- 0x1ac 0x30 /* mcasp0_ahclkx, MODE0 | INPUT */
- 0x19c 0x02 /* mcasp0_ahclkr, */
- 0x194 0x10 /* mcasp0_fsx, MODE0 | OUTPUT */
- 0x190 0x00 /* mcasp0_aclkr.mcasp0_aclkx, MODE0 | OUTPUT_PULLDOWN */
- 0x1a8 0x1f /* mcasp0_axr1 GPIO1_27 | OUTPUT | PULLUP */
- >;
- };
};
};

@@ -123,42 +108,4 @@

};
};
-
- fragment@3 {
- target = <&mcasp0>;
- __overlay__ {
- pinctrl-names = "default";
- pinctrl-0 = <&mcasp0_pins>;
-
- status = "okay";
-
- op-mode = <0>; /* MCASP_IIS_MODE */
- tdm-slots = <2>;
- num-serializer = <16>;
- serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
- 0 0 1 0
- 0 0 0 0
- 0 0 0 0
- 0 0 0 0
- >;
- tx-num-evt = <1>;
- rx-num-evt = <1>;
- };
- };
-
- fragment@4 {
- target = <&ocp>;
- __overlay__ {
- sound {
- compatible = "ti,am33xx-beaglebone-black";
- ti,model = "TI BeagleBone Black";
- ti,audio-codec = <&nxptda>;
- ti,mcasp-controller = <&mcasp0>;
- ti,codec-clock-rate = <2457600>;
- mcasp_clock_enable = <&gpio2 27 0>; /* BeagleBone Black Clk enable on GPIO1_27 */
- };
- };
-
- };
-
};
diff --git a/firmware/capes/cape-boneblack-hdmi-audio-00A0.dts b/firmware/capes/cape-boneblack-hdmi-audio-00A0.dts
index e69de29..01ee778 100644
--- a/firmware/capes/cape-boneblack-hdmi-audio-00A0.dts
+++ b/firmware/capes/cape-boneblack-hdmi-audio-00A0.dts
@@ -0,0 +1,83 @@
+/*
+* Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License version 2 as
+* published by the Free Software Foundation.
+*/
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "ti,beaglebone-black";
+ part-number = "BB-BONELT-HDMIA";
+ version = "00A0";
+
+ /* state the resources this cape uses */
+ exclusive-use =
+ /* the pin header uses */
+ "P9.25", /* mcasp0: mcasp0_ahclkx */
+ "P9.28", /* mcasp0: mcasp0_axr2 */
+ "P9.29", /* mcasp0: mcasp0_fsx */
+ "P9.31", /* mcasp0: mcasp0_aclkx */
+ /* the hardware IP uses */
+ "mcasp0";
+
+ fragment@0 {
+ target = <&am33xx_pinmux>;
+ __overlay__ {
+ mcasp0_pins: mcasp0_pins {
+ pinctrl-single,pins = <
+ 0x1ac 0x30 /* mcasp0_ahclkx, MODE0 | INPUT */
+ 0x19c 0x02 /* mcasp0_ahclkr, */
+ 0x194 0x10 /* mcasp0_fsx, MODE0 | OUTPUT */
+ 0x190 0x00 /* mcasp0_aclkr.mcasp0_aclkx, MODE0 | OUTPUT_PULLDOWN */
+ 0x1a8 0x1f /* mcasp0_axr1 GPIO1_27 | OUTPUT | PULLUP */
+ >;
+ };
+ };
+ };
+
+ fragment@1 {
+ target = <&mcasp0>;
+ __overlay__ {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mcasp0_pins>;
+
+ status = "okay";
+
+ op-mode = <0>; /* MCASP_IIS_MODE */
+ tdm-slots = <2>;
+ num-serializer = <16>;
+ serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
+ 0 0 1 0
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 0
+ >;
+ tx-num-evt = <1>;
+ rx-num-evt = <1>;
+ };
+ };
+
+ fragment@2 {
+ target = <&ocp>;
+ __overlay__ {
+
+ nxptda: nxptda@0 {
+ compatible = "nxp,nxptda";
+ status = "okay";
+ };
+
+ sound {
+ compatible = "ti,am33xx-beaglebone-black";
+ ti,model = "TI BeagleBone Black";
+ ti,audio-codec = <&nxptda>;
+ ti,mcasp-controller = <&mcasp0>;
+ ti,codec-clock-rate = <2457600>;
+ mcasp_clock_enable = <&gpio2 27 0>; /* BeagleBone Black Clk enable on GPIO1_27 */
+ };
+ };
+
+ };
+};
Loading