This series adds eDP support for nyan-big so that the display works. Nyan-big is based on tegra124.
Some support is added for new clocks to make this work. The drm_dp_helper.h file is brought in from Linux since many of the DisplayPort constants are generic. A very simple uclass is added for DisplayPort, and the Tegra driver makes use of that. The U-Boot EDID support is enhanced to read some additional information (detailed timings). There is existing video support for Tegra20, but I don't think it works for Tegra30/114 (is this correct?). This series relies on detecting the display at run-time as I cannot find a good device tree binding for things like display depth. But if we could resolve that then it might be possible to move Tegra20 over to use the same driver, etc. There is clearly a lot in common with the display controllers - I have exploited this with the header file but not with the C file. HDMI is not supported at present. If this is easy and there is an existing driver to follow along with then I might be able to incorporate it later. This series is available at u-boot-dm/nyan-working Changes in v2: - Rebase on top of u-boot-dm Simon Glass (26): dm: gpio: Add error handling and a function to claim vector GPIOs dm: tegra: config: Increase pre-reloc malloc() to 6KB fdt: Add binding decode function for display-timings tegra: Move the pww into tegra-common tegra: pwm: Allow the clock rate to be left as is tegra: Move checkboard() into the board code tegra: Add a board ID function power: Export register access functions from as3722 tegra: Provide a function to allow LCD PMIC setup tegra: Add support for setting up a as3722 PMIC tegra: nyan-big: Add LCD PMIC init and board ID tegra124: dts: Add host1x node to provide display information tegra: config: Use CONFIG_LCD to detect LCD presence tegra: clock: Add checking for invalid clock IDs tegra: clock: Split the clock source code into a separate function tegra124: clock: Add display clocks and functions tegra: Move display controller header into common video: Add drm_dp_helper.h edid: Add a function to read detailed monitor timings dm: video: Add a uclass for display port tegra: dts: nyan-big: Add definitions for eDP display tegra: video: Support serial output resource (SOR) on tegra124 tegra: video: Add Embedded DisplayPort driver tegra: video: support eDP displays on Tegra124 devices tegra: config: nyan-big: Enable LCD tegra124: video: Add full link training for eDP arch/arm/cpu/armv7/tegra-common/Makefile | 1 + arch/arm/cpu/armv7/{tegra20 => tegra-common}/pwm.c | 5 +- arch/arm/cpu/armv7/tegra20/Makefile | 1 - arch/arm/cpu/armv7/tegra20/display.c | 2 +- arch/arm/cpu/tegra-common/board.c | 8 - arch/arm/cpu/tegra-common/clock.c | 83 +- arch/arm/cpu/tegra124-common/clock.c | 141 +- arch/arm/dts/tegra124-nyan-big.dts | 47 + arch/arm/dts/tegra124.dtsi | 84 ++ arch/arm/include/asm/arch-tegra/clk_rst.h | 15 +- arch/arm/include/asm/arch-tegra/clock.h | 14 + .../include/asm/{arch-tegra20 => arch-tegra}/dc.h | 63 +- arch/arm/include/asm/arch-tegra/pwm.h | 60 + arch/arm/include/asm/arch-tegra/sys_proto.h | 19 +- arch/arm/include/asm/arch-tegra124/clock-tables.h | 3 +- arch/arm/include/asm/arch-tegra124/clock.h | 21 + arch/arm/include/asm/arch-tegra124/display.h | 58 + arch/arm/include/asm/arch-tegra124/pwm.h | 14 + arch/arm/include/asm/arch-tegra20/display.h | 2 +- arch/arm/include/asm/arch-tegra20/pwm.h | 54 +- board/nvidia/common/board.c | 40 +- board/nvidia/nyan-big/nyan-big.c | 34 +- common/edid.c | 105 ++ configs/nyan-big_defconfig | 2 + .../gpu/nvidia,tegra20-host1x.txt | 372 +++++ doc/device-tree-bindings/video/display-timing.txt | 110 ++ drivers/gpio/gpio-uclass.c | 38 +- drivers/power/as3722.c | 16 +- drivers/video/Kconfig | 15 + drivers/video/Makefile | 6 + drivers/video/dp-uclass.c | 34 + drivers/video/tegra124/Makefile | 10 + drivers/video/tegra124/display.c | 358 +++++ drivers/video/tegra124/displayport.h | 412 ++++++ drivers/video/tegra124/dp.c | 1500 ++++++++++++++++++++ drivers/video/tegra124/sor.c | 951 +++++++++++++ drivers/video/tegra124/sor.h | 913 ++++++++++++ drivers/video/tegra124/tegra124-lcd.c | 94 ++ include/asm-generic/gpio.h | 15 +- include/configs/nyan-big.h | 13 + include/configs/tegra-common-post.h | 2 +- include/configs/tegra-common.h | 2 +- include/displayport.h | 60 + include/dm/uclass-id.h | 1 + include/edid.h | 19 + include/fdtdec.h | 83 ++ include/linux/drm_dp_helper.h | 405 ++++++ include/power/as3722.h | 3 + lib/fdtdec.c | 95 ++ 49 files changed, 6275 insertions(+), 128 deletions(-) rename arch/arm/cpu/armv7/{tegra20 => tegra-common}/pwm.c (95%) rename arch/arm/include/asm/{arch-tegra20 => arch-tegra}/dc.h (89%) create mode 100644 arch/arm/include/asm/arch-tegra/pwm.h create mode 100644 arch/arm/include/asm/arch-tegra124/display.h create mode 100644 arch/arm/include/asm/arch-tegra124/pwm.h create mode 100644 doc/device-tree-bindings/gpu/nvidia,tegra20-host1x.txt create mode 100644 doc/device-tree-bindings/video/display-timing.txt create mode 100644 drivers/video/dp-uclass.c create mode 100644 drivers/video/tegra124/Makefile create mode 100644 drivers/video/tegra124/display.c create mode 100644 drivers/video/tegra124/displayport.h create mode 100644 drivers/video/tegra124/dp.c create mode 100644 drivers/video/tegra124/sor.c create mode 100644 drivers/video/tegra124/sor.h create mode 100644 drivers/video/tegra124/tegra124-lcd.c create mode 100644 include/displayport.h create mode 100644 include/linux/drm_dp_helper.h -- 2.2.0.rc0.207.ga3a616c _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot