diff options
| author | Dave Airlie <airlied@redhat.com> | 2015-01-20 19:17:16 -0500 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2015-01-20 19:17:16 -0500 |
| commit | fc83975348ebce07793e6b9f780edc3cbcffa9fc (patch) | |
| tree | 0fc7972c181cebed1c344852bb8b1a96607d3b15 | |
| parent | b2eb0489809cf0b824357b6fa85aab1aabe3f063 (diff) | |
| parent | d50141d8072e5322ee0518a8c967b5c9caf463d2 (diff) | |
Merge tag 'imx-drm-next-2015-01-09' of git://git.pengutronix.de/git/pza/linux into drm-next
imx-drm mode fixup support, imx-hdmi bridge conversion and imx-drm cleanup
- Implement mode_fixup for a DI vertical timing limitation
- Use generic DRM OF helpers in DRM core
- Convert imx-hdmi to dw_hdmi drm_bridge and add rockchip
driver
- Add DC use counter to fix multi-display support
- Simplify handling of DI clock flags
- A few small fixes and cleanup
* tag 'imx-drm-next-2015-01-09' of git://git.pengutronix.de/git/pza/linux: (26 commits)
imx-drm: core: handling of DI clock flags to ipu_crtc_mode_set()
gpu: ipu-di: Switch to DIV_ROUND_CLOSEST for DI clock divider calc
gpu: ipu-v3: Use videomode in struct ipu_di_signal_cfg
imx-drm: encoder prepare/mode_set must use adjusted mode
imx-drm: ipuv3-crtc: Implement mode_fixup
drm_modes: add drm_display_mode_to_videomode
gpu: ipu-di: remove some non-functional code
gpu: ipu-di: Add ipu_di_adjust_videomode()
drm: rockchip: export functions needed by rockchip dw_hdmi bridge driver
drm: bridge/dw_hdmi: request interrupt only after initializing the mutes
drm: bridge/dw_hdmi: add rockchip rk3288 support
dt-bindings: Add documentation for rockchip dw hdmi
drm: bridge/dw_hdmi: add function dw_hdmi_phy_enable_spare
drm: bridge/dw_hdmi: clear i2cmphy_stat0 reg in hdmi_phy_wait_i2c_done
drm: bridge/dw_hdmi: add mode_valid support
drm: bridge/dw_hdmi: add support for multi-byte register width access
dt-bindings: add document for dw_hdmi
drm: imx: imx-hdmi: move imx-hdmi to bridge/dw_hdmi
drm: imx: imx-hdmi: split phy configuration to platform driver
drm: imx: imx-hdmi: convert imx-hdmi to drm_bridge mode
...
26 files changed, 1334 insertions, 568 deletions
diff --git a/Documentation/devicetree/bindings/drm/bridge/dw_hdmi.txt b/Documentation/devicetree/bindings/drm/bridge/dw_hdmi.txt new file mode 100644 index 000000000000..a905c1413558 --- /dev/null +++ b/Documentation/devicetree/bindings/drm/bridge/dw_hdmi.txt | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | DesignWare HDMI bridge bindings | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: platform specific such as: | ||
| 5 | * "snps,dw-hdmi-tx" | ||
| 6 | * "fsl,imx6q-hdmi" | ||
| 7 | * "fsl,imx6dl-hdmi" | ||
| 8 | * "rockchip,rk3288-dw-hdmi" | ||
| 9 | - reg: Physical base address and length of the controller's registers. | ||
| 10 | - interrupts: The HDMI interrupt number | ||
| 11 | - clocks, clock-names : must have the phandles to the HDMI iahb and isfr clocks, | ||
| 12 | as described in Documentation/devicetree/bindings/clock/clock-bindings.txt, | ||
| 13 | the clocks are soc specific, the clock-names should be "iahb", "isfr" | ||
| 14 | -port@[X]: SoC specific port nodes with endpoint definitions as defined | ||
| 15 | in Documentation/devicetree/bindings/media/video-interfaces.txt, | ||
| 16 | please refer to the SoC specific binding document: | ||
| 17 | * Documentation/devicetree/bindings/drm/imx/hdmi.txt | ||
| 18 | * Documentation/devicetree/bindings/video/dw_hdmi-rockchip.txt | ||
| 19 | |||
| 20 | Optional properties | ||
| 21 | - reg-io-width: the width of the reg:1,4, default set to 1 if not present | ||
| 22 | - ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing | ||
| 23 | - clocks, clock-names: phandle to the HDMI CEC clock, name should be "cec" | ||
| 24 | |||
| 25 | Example: | ||
| 26 | hdmi: hdmi@0120000 { | ||
| 27 | compatible = "fsl,imx6q-hdmi"; | ||
| 28 | reg = <0x00120000 0x9000>; | ||
| 29 | interrupts = <0 115 0x04>; | ||
| 30 | gpr = <&gpr>; | ||
| 31 | clocks = <&clks 123>, <&clks 124>; | ||
| 32 | clock-names = "iahb", "isfr"; | ||
| 33 | ddc-i2c-bus = <&i2c2>; | ||
| 34 | |||
| 35 | port@0 { | ||
| 36 | reg = <0>; | ||
| 37 | |||
| 38 | hdmi_mux_0: endpoint { | ||
| 39 | remote-endpoint = <&ipu1_di0_hdmi>; | ||
| 40 | }; | ||
| 41 | }; | ||
| 42 | |||
| 43 | port@1 { | ||
| 44 | reg = <1>; | ||
| 45 | |||
| 46 | hdmi_mux_1: endpoint { | ||
| 47 | remote-endpoint = <&ipu1_di1_hdmi>; | ||
| 48 | }; | ||
| 49 | }; | ||
| 50 | }; | ||
diff --git a/Documentation/devicetree/bindings/video/dw_hdmi-rockchip.txt b/Documentation/devicetree/bindings/video/dw_hdmi-rockchip.txt new file mode 100644 index 000000000000..668091f27674 --- /dev/null +++ b/Documentation/devicetree/bindings/video/dw_hdmi-rockchip.txt | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | Rockchip specific extensions to the Synopsys Designware HDMI | ||
| 2 | ================================ | ||
| 3 | |||
| 4 | Required properties: | ||
| 5 | - compatible: "rockchip,rk3288-dw-hdmi"; | ||
| 6 | - reg: Physical base address and length of the controller's registers. | ||
| 7 | - clocks: phandle to hdmi iahb and isfr clocks. | ||
| 8 | - clock-names: should be "iahb" "isfr" | ||
| 9 | - rockchip,grf: this soc should set GRF regs to mux vopl/vopb. | ||
| 10 | - interrupts: HDMI interrupt number | ||
| 11 | - ports: contain a port node with endpoint definitions as defined in | ||
| 12 | Documentation/devicetree/bindings/media/video-interfaces.txt. For | ||
| 13 | vopb,set the reg = <0> and set the reg = <1> for vopl. | ||
| 14 | - reg-io-width: the width of the reg:1,4, the value should be 4 on | ||
| 15 | rk3288 platform | ||
| 16 | |||
| 17 | Optional properties | ||
| 18 | - ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing | ||
| 19 | - clocks, clock-names: phandle to the HDMI CEC clock, name should be "cec" | ||
| 20 | |||
| 21 | Example: | ||
| 22 | hdmi: hdmi@ff980000 { | ||
| 23 | compatible = "rockchip,rk3288-dw-hdmi"; | ||
| 24 | reg = <0xff980000 0x20000>; | ||
| 25 | reg-io-width = <4>; | ||
| 26 | ddc-i2c-bus = <&i2c5>; | ||
| 27 | rockchip,grf = <&grf>; | ||
| 28 | interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; | ||
| 29 | clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>; | ||
| 30 | clock-names = "iahb", "isfr"; | ||
| 31 | status = "disabled"; | ||
| 32 | ports { | ||
| 33 | hdmi_in: port { | ||
| 34 | #address-cells = <1>; | ||
| 35 | #size-cells = <0>; | ||
| 36 | hdmi_in_vopb: endpoint@0 { | ||
| 37 | reg = <0>; | ||
| 38 | remote-endpoint = <&vopb_out_hdmi>; | ||
| 39 | }; | ||
| 40 | hdmi_in_vopl: endpoint@1 { | ||
| 41 | reg = <1>; | ||
| 42 | remote-endpoint = <&vopl_out_hdmi>; | ||
| 43 | }; | ||
| 44 | }; | ||
| 45 | }; | ||
| 46 | }; | ||
diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig index 884923f982d9..b70f3c8d4e8a 100644 --- a/drivers/gpu/drm/bridge/Kconfig +++ b/drivers/gpu/drm/bridge/Kconfig | |||
| @@ -3,3 +3,8 @@ config DRM_PTN3460 | |||
| 3 | depends on DRM | 3 | depends on DRM |
| 4 | select DRM_KMS_HELPER | 4 | select DRM_KMS_HELPER |
| 5 | ---help--- | 5 | ---help--- |
| 6 | |||
| 7 | config DRM_DW_HDMI | ||
| 8 | tristate | ||
| 9 | depends on DRM | ||
| 10 | select DRM_KMS_HELPER | ||
diff --git a/drivers/gpu/drm/bridge/Makefile b/drivers/gpu/drm/bridge/Makefile index b4733e1fbd2e..d8a8cfd12fbb 100644 --- a/drivers/gpu/drm/bridge/Makefile +++ b/drivers/gpu/drm/bridge/Makefile | |||
| @@ -1,3 +1,4 @@ | |||
| 1 | ccflags-y := -Iinclude/drm | 1 | ccflags-y := -Iinclude/drm |
| 2 | 2 | ||
| 3 | obj-$(CONFIG_DRM_PTN3460) += ptn3460.o | 3 | obj-$(CONFIG_DRM_PTN3460) += ptn3460.o |
| 4 | obj-$(CONFIG_DRM_DW_HDMI) += dw_hdmi.o | ||
diff --git a/drivers/gpu/drm/imx/imx-hdmi.c b/drivers/gpu/drm/bridge/dw_hdmi.c index ddc53e039530..6ea000504173 100644 --- a/drivers/gpu/drm/imx/imx-hdmi.c +++ b/drivers/gpu/drm/bridge/dw_hdmi.c | |||
| @@ -6,31 +6,26 @@ | |||
| 6 | * the Free Software Foundation; either version 2 of the License, or | 6 | * the Free Software Foundation; either version 2 of the License, or |
| 7 | * (at your option) any later version. | 7 | * (at your option) any later version. |
| 8 | * | 8 | * |
| 9 | * SH-Mobile High-Definition Multimedia Interface (HDMI) driver | 9 | * Designware High-Definition Multimedia Interface (HDMI) driver |
| 10 | * for SLISHDMI13T and SLIPHDMIT IP cores | ||
| 11 | * | 10 | * |
| 12 | * Copyright (C) 2010, Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 11 | * Copyright (C) 2010, Guennadi Liakhovetski <g.liakhovetski@gmx.de> |
| 13 | */ | 12 | */ |
| 14 | 13 | #include <linux/module.h> | |
