From d62b1c14062093cdec0a53451257ab779402633c Mon Sep 17 00:00:00 2001 From: Camus Wong Date: Fri, 26 Oct 2018 02:47:37 -0400 Subject: drm/msm: Early DRM Driver Add new DRM node to handle early display service. The early DRM driver is to workaround Andriod display framework long boot time problem and DRM single master limitation. The early DRM node provides display function for early application that is outside Android framework. The early application can use early DRM to draw early UI and bootloader review camera menu function. Android framework will not use early DRM node. It will continue to use the main DRM node. Early DRM is another KMS driver that designed for bootup application. Early DRM is not based on SDE framework and it will not initialize display hardware. Early DRM rely on bootloader to initialize display hardware and interfaces. For power and SMMU, early DRM relies on main DRM to initialize them. Early DRM only provide limited display functionality such as RGB buffer display. Early DRM only expected to run during bootup time to work with bootloader/early RVC. When Android UI is ready, early DRM will handoff all display resource to main DRM. After that, no application can open early DRM node. Early DRM is enabled in device tree. User must specify which display to enable early DRM and which display pipes are assigned to eDRM. Change-Id: Ic9f68726677c5db26507caec79c7da1e6d745f44 Signed-off-by: Camus Wong --- .../devicetree/bindings/display/msm/edrm.txt | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/msm/edrm.txt (limited to 'Documentation/devicetree') diff --git a/Documentation/devicetree/bindings/display/msm/edrm.txt b/Documentation/devicetree/bindings/display/msm/edrm.txt new file mode 100644 index 000000000000..f4856e8c8752 --- /dev/null +++ b/Documentation/devicetree/bindings/display/msm/edrm.txt @@ -0,0 +1,57 @@ +Qualcomm Technologies, Inc. EDRM KMS + +EDRM KMS implements Linux DRM/KMS APIs to drive early user interface to +different panel interfaces. EDRM driver provides early service to display +subsystem which manage a subset data paths to specific panel interfaces. +EDRM is expected to provide display service to fill in the gap between +bootloader and main application UI. Only early application is expected to +use EDRM. EDRM will be terminated when main application UI is ready. + +Required properties +- compatible: Must be "qcom,msm-kms-edrm" + +Assigned Display Subnodes: +- qcom,edrm-assigned-display: List of display that eDRM can use. + +Subnode properties: +- qcom,edrm-display-id@x: a node that contains the display information + +- qcom,label: The string that indicate the label of the display. The + label should match with the label used in sde_display. + For example, SDE display dtsi may defined: + dsi_adv_7533_2: qcom,dsi-display@8 {...} + + If eDRM wants to use that display, it should set the + label as: + qcom,label = "dsi_adv_7533_1"; + +- qcom,intf-type: a string that indicate the interface type. Right now + it can be "dsi" or "hdmi" + +- qcom,assigned_plane : List of plane that assigned for this display. + There must be at least one plane in this field. + The plane that is in this field must also be + defined in qcom,sde-reserved-plane under sde_kms + For example, SDE may contains the following + reserved plane: + &sde_kms { + qcom,sde-reserved-plane { + reserved_plane1: qcom,sde-reserved-plane@1 { + reg = <0x1>; + qcom,plane-name = "rgb3"; + lm-stage = <5>; + } + Then assigned_plane field can reference to the + reserved plane like: + qcom,assigned_plane = <&reserved_plane1>; + +Example: + msm_kms_edrm: qcom,msm_kms_edrm@900000 { + qcom,edrm-assigned-display { + qcom,edrm-display-id@0 { + qcom,label = "dsi_adv_7533_1"; + qcom,intf-type = "dsi"; + qcom,assigned_plane = <&reserved_plane1>; + } + } + } -- cgit v1.2.3