Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b75478d1 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge branch 'drm_iommu_v15' of https://github.com/markyzq/kernel-drm-rockchip into drm-next

Merge rockchip GPU support.

This has a branch in common with the iommu tree, hopefully the
process works.

* 'drm_iommu_v15' of https://github.com/markyzq/kernel-drm-rockchip:
  dt-bindings: video: Add documentation for rockchip vop
  dt-bindings: video: Add for rockchip display subsytem
  drm: rockchip: Add basic drm driver
  dt-bindings: iommu: Add documentation for rockchip iommu
  iommu/rockchip: rk3288 iommu driver
parents b00ff043 5ac4837b
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
Rockchip IOMMU
==============

A Rockchip DRM iommu translates io virtual addresses to physical addresses for
its master device.  Each slave device is bound to a single master device, and
shares its clocks, power domain and irq.

Required properties:
- compatible      : Should be "rockchip,iommu"
- reg             : Address space for the configuration registers
- interrupts      : Interrupt specifier for the IOMMU instance
- interrupt-names : Interrupt name for the IOMMU instance
- #iommu-cells    : Should be <0>.  This indicates the iommu is a
                    "single-master" device, and needs no additional information
                    to associate with its master device.  See:
                    Documentation/devicetree/bindings/iommu/iommu.txt

Example:

	vopl_mmu: iommu@ff940300 {
		compatible = "rockchip,iommu";
		reg = <0xff940300 0x100>;
		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "vopl_mmu";
		#iommu-cells = <0>;
	};
+19 −0
Original line number Diff line number Diff line
Rockchip DRM master device
================================

The Rockchip DRM master device is a virtual device needed to list all
vop devices or other display interface nodes that comprise the
graphics subsystem.

Required properties:
- compatible: Should be "rockchip,display-subsystem"
- ports: Should contain a list of phandles pointing to display interface port
  of vop devices. vop definitions as defined in
  Documentation/devicetree/bindings/video/rockchip-vop.txt

example:

display-subsystem {
	compatible = "rockchip,display-subsystem";
	ports = <&vopl_out>, <&vopb_out>;
};
+58 −0
Original line number Diff line number Diff line
device-tree bindings for rockchip soc display controller (vop)

VOP (Visual Output Processor) is the Display Controller for the Rockchip
series of SoCs which transfers the image data from a video memory
buffer to an external LCD interface.

Required properties:
- compatible: value should be one of the following
		"rockchip,rk3288-vop";

- interrupts: should contain a list of all VOP IP block interrupts in the
		 order: VSYNC, LCD_SYSTEM. The interrupt specifier
		 format depends on the interrupt controller used.

- clocks: must include clock specifiers corresponding to entries in the
		clock-names property.

- clock-names: Must contain
		aclk_vop: for ddr buffer transfer.
		hclk_vop: for ahb bus to R/W the phy regs.
		dclk_vop: pixel clock.

- resets: Must contain an entry for each entry in reset-names.
  See ../reset/reset.txt for details.
- reset-names: Must include the following entries:
  - axi
  - ahb
  - dclk

- iommus: required a iommu node

- port: A port node with endpoint definitions as defined in
  Documentation/devicetree/bindings/media/video-interfaces.txt.

Example:
SoC specific DT entry:
	vopb: vopb@ff930000 {
		compatible = "rockchip,rk3288-vop";
		reg = <0xff930000 0x19c>;
		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
		resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
		reset-names = "axi", "ahb", "dclk";
		iommus = <&vopb_mmu>;
		vopb_out: port {
			#address-cells = <1>;
			#size-cells = <0>;
			vopb_out_edp: endpoint@0 {
				reg = <0>;
				remote-endpoint=<&edp_in_vopb>;
			};
			vopb_out_hdmi: endpoint@1 {
				reg = <1>;
				remote-endpoint=<&hdmi_in_vopb>;
			};
		};
	};
+2 −0
Original line number Diff line number Diff line
@@ -167,6 +167,8 @@ config DRM_SAVAGE

source "drivers/gpu/drm/exynos/Kconfig"

source "drivers/gpu/drm/rockchip/Kconfig"

source "drivers/gpu/drm/vmwgfx/Kconfig"

source "drivers/gpu/drm/gma500/Kconfig"
+1 −0
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ obj-$(CONFIG_DRM_VMWGFX)+= vmwgfx/
obj-$(CONFIG_DRM_VIA)	+=via/
obj-$(CONFIG_DRM_NOUVEAU) +=nouveau/
obj-$(CONFIG_DRM_EXYNOS) +=exynos/
obj-$(CONFIG_DRM_ROCKCHIP) +=rockchip/
obj-$(CONFIG_DRM_GMA500) += gma500/
obj-$(CONFIG_DRM_UDL) += udl/
obj-$(CONFIG_DRM_AST) += ast/
Loading