Browse files

Beaglebone HDMI: Add patches, config options

Build and runtime tested after building using patch.sh script

Config options set:
 CONFIG_OMAP_RESET_CLOCKS=n so that clock framework doesn't turn off the LCDC clock.
 CONFIG_NXP_TDA998X_OLD=y to build the HDMI driver.

Signed-off-by: Joel A Fernandes <joelagnel@ti.com>
  • Loading branch information...
1 parent 72643c0 commit 871198ecff928d0d93b32e03e67e4aad490f7c8b Joel A Fernandes committed with koenkooi Nov 21, 2012
View
3 configs/beaglebone
@@ -313,7 +313,7 @@ CONFIG_ARCH_OMAP2PLUS=y
#
# OMAP Feature Selections
#
-CONFIG_OMAP_RESET_CLOCKS=y
+CONFIG_OMAP_RESET_CLOCKS=n
CONFIG_OMAP_MUX=y
CONFIG_OMAP_MUX_DEBUG=y
CONFIG_OMAP_MUX_WARNINGS=y
@@ -3889,3 +3889,4 @@ CONFIG_CLZ_TAB=y
# CONFIG_DDR is not set
CONFIG_MPILIB=m
CONFIG_OID_REGISTRY=m
+CONFIG_NXP_TDA998X_OLD=y
View
2 patch.sh
@@ -26,7 +26,7 @@ EXTERNAL_SHA="3587b1b097d70c2eb9fee95ea7995d13c05f66e5"
#PATCHSET="pruss pwm2 fixes"
# BAD: rtc
-PATCHSET="dma cpsw pinctrl cpufreq adc pwm i2c usb da8xx-fb mmc fixes f2fs 6lowpan capebus"
+PATCHSET="dma cpsw pinctrl cpufreq adc pwm i2c usb da8xx-fb mmc fixes f2fs 6lowpan capebus hdmi"
git_kernel_stable () {
git pull git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git master --tags || true
View
72,651 patches/hdmi/0001-Import-working-HDMI-driver-from-3.2-kernel.patch
72,651 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
38 patches/hdmi/0002-Added-DT-binding-to-NXP-driver.patch
@@ -0,0 +1,38 @@
+From c1e297d7a7be68e95b65a4bfa7cfeec6cdb77d91 Mon Sep 17 00:00:00 2001
+From: Joel A Fernandes <joelagnel@ti.com>
+Date: Thu, 15 Nov 2012 16:45:47 -0600
+Subject: [PATCH 2/6] Added DT binding to NXP driver
+
+Signed-off-by: Joel A Fernandes <joelagnel@ti.com>
+---
+ drivers/video/nxp/tda998x.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/drivers/video/nxp/tda998x.c b/drivers/video/nxp/tda998x.c
+index 4b45e41..2864221 100755
+--- a/drivers/video/nxp/tda998x.c
++++ b/drivers/video/nxp/tda998x.c
+@@ -1911,6 +1911,12 @@ static int this_i2c_remove(struct i2c_client *client)
+ * I2C client driver (backend)
+ * -----------------
+ */
++static const struct of_device_id tda988x_of_match[] = {
++ { .compatible = "nxp,tda988x", },
++ { },
++};
++MODULE_DEVICE_TABLE(of, tda988x_of_match);
++
+ static const struct i2c_device_id this_i2c_id[] = {
+ { TX_NAME, 0 },
+ { },
+@@ -1922,6 +1928,7 @@ static struct i2c_driver this_i2c_driver = {
+ .driver = {
+ .owner = THIS_MODULE,
+ .name = TX_NAME,
++ .of_match_table = tda988x_of_match
+ },
+ .probe = this_i2c_probe,
+ .remove = this_i2c_remove,
+--
+1.7.9.5
+
View
38 patches/hdmi/0003-da8xx-fb-Add-timings-for-720x480-60.patch
@@ -0,0 +1,38 @@
+From 3adb8fe9b9d405182986cdee34369c09f66438a0 Mon Sep 17 00:00:00 2001
+From: Joel A Fernandes <joelagnel@ti.com>
+Date: Tue, 20 Nov 2012 11:17:33 -0600
+Subject: [PATCH 3/6] da8xx-fb: Add timings for 720x480@60
+
+Signed-off-by: Joel A Fernandes <joelagnel@ti.com>
+---
+ drivers/video/da8xx-fb.c | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
+index 6d98184..91061e6 100644
+--- a/drivers/video/da8xx-fb.c
++++ b/drivers/video/da8xx-fb.c
+@@ -312,6 +312,20 @@ static struct da8xx_panel known_lcd_panels[] = {
+ .pxl_clk = 30000000,
+ .invert_pxl_clk = 0,
+ },
++ [6] = {
++ /* 1024 x 768 @ 60 Hz Reduced blanking VESA CVT 0.79M3-R */
++ .name = "nxp-720x480@60",
++ .width = 720,
++ .height = 480,
++ .hfp = 15,
++ .hbp = 59,
++ .hsw = 61,
++ .vfp = 9,
++ .vbp = 30,
++ .vsw = 5,
++ .pxl_clk = 27027000,
++ .invert_pxl_clk = 0,
++ },
+ };
+
+ /* Enable the Raster Engine of the LCD Controller */
+--
+1.7.9.5
+
View
52 patches/hdmi/0004-video-Kconfig-Makefile-Add-new-Kconfig-for-old-drive.patch
@@ -0,0 +1,52 @@
+From fc31a189adca594833210cb8cb92b8d847305932 Mon Sep 17 00:00:00 2001
+From: Joel A Fernandes <joelagnel@ti.com>
+Date: Tue, 20 Nov 2012 14:14:27 -0600
+Subject: [PATCH 4/6] video/Kconfig+Makefile: Add new Kconfig for old driver
+
+Signed-off-by: Joel A Fernandes <joelagnel@ti.com>
+---
+ drivers/video/Kconfig | 2 ++
+ drivers/video/Makefile | 2 ++
+ drivers/video/nxp/Kconfig | 7 +++++++
+ 3 files changed, 11 insertions(+)
+ create mode 100644 drivers/video/nxp/Kconfig
+
+diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
+index e7868d8..3dc4ae8 100644
+--- a/drivers/video/Kconfig
++++ b/drivers/video/Kconfig
+@@ -2433,6 +2433,8 @@ source "drivers/video/omap2/Kconfig"
+ source "drivers/video/exynos/Kconfig"
+ source "drivers/video/backlight/Kconfig"
+
++source "drivers/video/nxp/Kconfig"
++
+ if VT
+ source "drivers/video/console/Kconfig"
+ endif
+diff --git a/drivers/video/Makefile b/drivers/video/Makefile
+index 0e13296..10e0642 100644
+--- a/drivers/video/Makefile
++++ b/drivers/video/Makefile
+@@ -168,3 +168,5 @@ obj-$(CONFIG_FB_VIRTUAL) += vfb.o
+
+ #video output switch sysfs driver
+ obj-$(CONFIG_VIDEO_OUTPUT_CONTROL) += output.o
++
++obj-$(CONFIG_NXP_TDA998X_OLD) += nxp/
+diff --git a/drivers/video/nxp/Kconfig b/drivers/video/nxp/Kconfig
+new file mode 100644
+index 0000000..1315c5f
+--- /dev/null
++++ b/drivers/video/nxp/Kconfig
+@@ -0,0 +1,7 @@
++config NXP_TDA998X_OLD
++ tristate "NXP TDA998X HDMI video display driver"
++ select REGMAP_I2C
++ depends on I2C
++ help
++ Say Y here if you want to support NXP's TDA998X HDMI driver
++ To compile this driver as a module, choose M here.
+--
+1.7.9.5
+
View
28 patches/hdmi/0005-am335x-bonelt-dts-Add-DT-node-to-probe-NXP-driver.patch
@@ -0,0 +1,28 @@
+From 0065c3861d78e455876b6e08916d18c17704c71c Mon Sep 17 00:00:00 2001
+From: Joel A Fernandes <joelagnel@ti.com>
+Date: Tue, 20 Nov 2012 14:18:08 -0600
+Subject: [PATCH 5/6] am335x-bonelt/dts: Add DT node to probe NXP driver
+
+Signed-off-by: Joel A Fernandes <joelagnel@ti.com>
+---
+ arch/arm/boot/dts/am335x-bonelt.dts | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/arch/arm/boot/dts/am335x-bonelt.dts b/arch/arm/boot/dts/am335x-bonelt.dts
+index 87257ac..037594d 100644
+--- a/arch/arm/boot/dts/am335x-bonelt.dts
++++ b/arch/arm/boot/dts/am335x-bonelt.dts
+@@ -30,3 +30,10 @@
+ ti,non-removable;
+ status = "okay";
+ };
++
++&i2c0 {
++ tda998X@34 {
++ compatible = "nxp,tda988x";
++ reg = <0x34>;
++ };
++};
+--
+1.7.9.5
+
View
108 patches/hdmi/0006-Add-capebus-override-and-pinmux-for-da8xx-dt.patch
@@ -0,0 +1,108 @@
+From 746ac312478efb531dc368d08eeaf496782273ca Mon Sep 17 00:00:00 2001
+From: Joel A Fernandes <joelagnel@ti.com>
+Date: Wed, 21 Nov 2012 12:19:29 -0600
+Subject: [PATCH 6/6] Add capebus override and pinmux for da8xx-dt
+
+Capebus override is left for LT only, rest is kept in common
+as there is an HDMI cape as well that could reuse in future.
+
+Signed-off-by: Joel A Fernandes <joelagnel@ti.com>
+---
+ arch/arm/boot/dts/am335x-bone-common.dtsi | 48 +++++++++++++++++++++++++++++
+ arch/arm/boot/dts/am335x-bonelt.dts | 10 ++++++
+ 2 files changed, 58 insertions(+)
+
+diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
+index 46d5f27..4bd1604 100644
+--- a/arch/arm/boot/dts/am335x-bone-common.dtsi
++++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
+@@ -119,6 +119,32 @@
+ >;
+ };
+
++ nxp_hdmi_cape_pins: nxp_hdmi_cape_pins {
++ pinctrl-single,pins = <
++
++ 0xa0 0x08 /* lcd_data0.lcd_data0, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
++ 0xa4 0x08 /* lcd_data1.lcd_data1, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
++ 0xa8 0x08 /* lcd_data2.lcd_data2, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
++ 0xac 0x08 /* lcd_data3.lcd_data3, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
++ 0xb0 0x08 /* lcd_data4.lcd_data4, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
++ 0xb4 0x08 /* lcd_data5.lcd_data5, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
++ 0xb8 0x08 /* lcd_data6.lcd_data6, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
++ 0xbc 0x08 /* lcd_data7.lcd_data7, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
++ 0xc0 0x08 /* lcd_data8.lcd_data8, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
++ 0xc4 0x08 /* lcd_data9.lcd_data9, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
++ 0xc8 0x08 /* lcd_data10.lcd_data10, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
++ 0xcc 0x08 /* lcd_data11.lcd_data11, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
++ 0xd0 0x08 /* lcd_data12.lcd_data12, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
++ 0xd4 0x08 /* lcd_data13.lcd_data13, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
++ 0xd8 0x08 /* lcd_data14.lcd_data14, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
++ 0xdc 0x08 /* lcd_data15.lcd_data15, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
++ 0xe0 0x00 /* lcd_vsync.lcd_vsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
++ 0xe4 0x00 /* lcd_hsync.lcd_hsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
++ 0xe8 0x00 /* lcd_pclk.lcd_pclk, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
++ 0xec 0x00 /* lcd_ac_bias_en.lcd_ac_bias_en, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
++ >;
++ };
++
+ bone_geiger_cape_led_pins: pinmux_bone_geiger_cape_led_pins {
+ pinctrl-single,pins = <
+ 0xe4 0x07 /* lcd_hsync.gpio2_23, OUTPUT | MODE7 */
+@@ -267,6 +293,10 @@
+ compatible = "bone-generic-cape";
+ };
+
++ nxp_hdmi_capebus: cape@6 {
++ compatible = "bone-generic-cape";
++ };
++
+ /* overrides; no EEPROM (prototyping) */
+ // override@3 {
+ // compatible = "bone-capebus-slot-override";
+@@ -426,6 +456,24 @@
+ slots = <&cape_eeprom_0 &cape_eeprom_1 &cape_eeprom_2 &cape_eeprom_3>;
+ };
+
++/* On-board NXP HDMI Part requires LCDC enabled which is currently
++ only registered using capebus infrastructure */
++&nxp_hdmi_capebus {
++ board-name = "NXP HDMI on capebus";
++ version@00A1 {
++ version = "00A1";
++ dvi {
++ compatible = "da8xx-dt";
++ pinctrl-names = "default";
++ pinctrl-0 = <&nxp_hdmi_cape_pins>;
++
++ ti,hwmods = "lcdc";
++ disp-pll = <135000000>;
++ panel-type = "nxp-720x480@60";
++ };
++ };
++};
++
+ &bone_dvi_cape {
+ board-name = "BeagleBone DVI-D CAPE";
+
+diff --git a/arch/arm/boot/dts/am335x-bonelt.dts b/arch/arm/boot/dts/am335x-bonelt.dts
+index 037594d..44814b4 100644
+--- a/arch/arm/boot/dts/am335x-bonelt.dts
++++ b/arch/arm/boot/dts/am335x-bonelt.dts
+@@ -37,3 +37,13 @@
+ reg = <0x34>;
+ };
+ };
++
++&capebus {
++ override@0 {
++ board-name = "NXP HDMI on CapeBus";
++ compatible = "bone-capebus-slot-override";
++ slot = <1>;
++ version = "00A1";
++ manufacturer = "Beagleboardtoys";
++ };
++};
+--
+1.7.9.5
+

4 comments on commit 871198e

@RobertCNelson
BeagleBoard.org member

So I didn't notice the big "patches/hdmi/0001-Import-working-HDMI-driver-from-3.2-kernel.patch" while on vacation last week. (maybe i need a bigger screen on my phone.)... I just noticed it today when adding the Beagle/Panda patches so we can have a unified v3.7 tree for all Beagle's..

So what's the story, is it just a source drop from NXP, is anyone looking to push it upstream?

@joelagnel
@RobertCNelson
BeagleBoard.org member

Okay, that's cool NXP's in the process of helping out. I was a little worried we have more un-maintained .. ;)

Thanks for the update Joel!

@joelagnel
Please sign in to comment.