1*c66ec88fSEmmanuel VadotQualcomm adreno/snapdragon MDP4 display controller 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotDescription: 4*c66ec88fSEmmanuel Vadot 5*c66ec88fSEmmanuel VadotThis is the bindings documentation for the MDP4 display controller found in 6*c66ec88fSEmmanuel VadotSoCs like MSM8960, APQ8064 and MSM8660. 7*c66ec88fSEmmanuel Vadot 8*c66ec88fSEmmanuel VadotRequired properties: 9*c66ec88fSEmmanuel Vadot- compatible: 10*c66ec88fSEmmanuel Vadot * "qcom,mdp4" - mdp4 11*c66ec88fSEmmanuel Vadot- reg: Physical base address and length of the controller's registers. 12*c66ec88fSEmmanuel Vadot- interrupts: The interrupt signal from the display controller. 13*c66ec88fSEmmanuel Vadot- clocks: device clocks 14*c66ec88fSEmmanuel Vadot See ../clocks/clock-bindings.txt for details. 15*c66ec88fSEmmanuel Vadot- clock-names: the following clocks are required. 16*c66ec88fSEmmanuel Vadot * "core_clk" 17*c66ec88fSEmmanuel Vadot * "iface_clk" 18*c66ec88fSEmmanuel Vadot * "bus_clk" 19*c66ec88fSEmmanuel Vadot * "lut_clk" 20*c66ec88fSEmmanuel Vadot * "hdmi_clk" 21*c66ec88fSEmmanuel Vadot * "tv_clk" 22*c66ec88fSEmmanuel Vadot- ports: contains the list of output ports from MDP. These connect to interfaces 23*c66ec88fSEmmanuel Vadot that are external to the MDP hardware, such as HDMI, DSI, EDP etc (LVDS is a 24*c66ec88fSEmmanuel Vadot special case since it is a part of the MDP block itself). 25*c66ec88fSEmmanuel Vadot 26*c66ec88fSEmmanuel Vadot Each output port contains an endpoint that describes how it is connected to an 27*c66ec88fSEmmanuel Vadot external interface. These are described by the standard properties documented 28*c66ec88fSEmmanuel Vadot here: 29*c66ec88fSEmmanuel Vadot Documentation/devicetree/bindings/graph.txt 30*c66ec88fSEmmanuel Vadot Documentation/devicetree/bindings/media/video-interfaces.txt 31*c66ec88fSEmmanuel Vadot 32*c66ec88fSEmmanuel Vadot The output port mappings are: 33*c66ec88fSEmmanuel Vadot Port 0 -> LCDC/LVDS 34*c66ec88fSEmmanuel Vadot Port 1 -> DSI1 Cmd/Video 35*c66ec88fSEmmanuel Vadot Port 2 -> DSI2 Cmd/Video 36*c66ec88fSEmmanuel Vadot Port 3 -> DTV 37*c66ec88fSEmmanuel Vadot 38*c66ec88fSEmmanuel VadotOptional properties: 39*c66ec88fSEmmanuel Vadot- clock-names: the following clocks are optional: 40*c66ec88fSEmmanuel Vadot * "lut_clk" 41*c66ec88fSEmmanuel Vadot- qcom,lcdc-align-lsb: Boolean value indicating that LSB alignment should be 42*c66ec88fSEmmanuel Vadot used for LCDC. This is only valid for 18bpp panels. 43*c66ec88fSEmmanuel Vadot 44*c66ec88fSEmmanuel VadotExample: 45*c66ec88fSEmmanuel Vadot 46*c66ec88fSEmmanuel Vadot/ { 47*c66ec88fSEmmanuel Vadot ... 48*c66ec88fSEmmanuel Vadot 49*c66ec88fSEmmanuel Vadot hdmi: hdmi@4a00000 { 50*c66ec88fSEmmanuel Vadot ... 51*c66ec88fSEmmanuel Vadot ports { 52*c66ec88fSEmmanuel Vadot ... 53*c66ec88fSEmmanuel Vadot port@0 { 54*c66ec88fSEmmanuel Vadot reg = <0>; 55*c66ec88fSEmmanuel Vadot hdmi_in: endpoint { 56*c66ec88fSEmmanuel Vadot remote-endpoint = <&mdp_dtv_out>; 57*c66ec88fSEmmanuel Vadot }; 58*c66ec88fSEmmanuel Vadot }; 59*c66ec88fSEmmanuel Vadot ... 60*c66ec88fSEmmanuel Vadot }; 61*c66ec88fSEmmanuel Vadot ... 62*c66ec88fSEmmanuel Vadot }; 63*c66ec88fSEmmanuel Vadot 64*c66ec88fSEmmanuel Vadot ... 65*c66ec88fSEmmanuel Vadot 66*c66ec88fSEmmanuel Vadot mdp: mdp@5100000 { 67*c66ec88fSEmmanuel Vadot compatible = "qcom,mdp4"; 68*c66ec88fSEmmanuel Vadot reg = <0x05100000 0xf0000>; 69*c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 75 0>; 70*c66ec88fSEmmanuel Vadot clock-names = 71*c66ec88fSEmmanuel Vadot "core_clk", 72*c66ec88fSEmmanuel Vadot "iface_clk", 73*c66ec88fSEmmanuel Vadot "lut_clk", 74*c66ec88fSEmmanuel Vadot "hdmi_clk", 75*c66ec88fSEmmanuel Vadot "tv_clk"; 76*c66ec88fSEmmanuel Vadot clocks = 77*c66ec88fSEmmanuel Vadot <&mmcc MDP_CLK>, 78*c66ec88fSEmmanuel Vadot <&mmcc MDP_AHB_CLK>, 79*c66ec88fSEmmanuel Vadot <&mmcc MDP_AXI_CLK>, 80*c66ec88fSEmmanuel Vadot <&mmcc MDP_LUT_CLK>, 81*c66ec88fSEmmanuel Vadot <&mmcc HDMI_TV_CLK>, 82*c66ec88fSEmmanuel Vadot <&mmcc MDP_TV_CLK>; 83*c66ec88fSEmmanuel Vadot 84*c66ec88fSEmmanuel Vadot ports { 85*c66ec88fSEmmanuel Vadot #address-cells = <1>; 86*c66ec88fSEmmanuel Vadot #size-cells = <0>; 87*c66ec88fSEmmanuel Vadot 88*c66ec88fSEmmanuel Vadot port@0 { 89*c66ec88fSEmmanuel Vadot reg = <0>; 90*c66ec88fSEmmanuel Vadot mdp_lvds_out: endpoint { 91*c66ec88fSEmmanuel Vadot }; 92*c66ec88fSEmmanuel Vadot }; 93*c66ec88fSEmmanuel Vadot 94*c66ec88fSEmmanuel Vadot port@1 { 95*c66ec88fSEmmanuel Vadot reg = <1>; 96*c66ec88fSEmmanuel Vadot mdp_dsi1_out: endpoint { 97*c66ec88fSEmmanuel Vadot }; 98*c66ec88fSEmmanuel Vadot }; 99*c66ec88fSEmmanuel Vadot 100*c66ec88fSEmmanuel Vadot port@2 { 101*c66ec88fSEmmanuel Vadot reg = <2>; 102*c66ec88fSEmmanuel Vadot mdp_dsi2_out: endpoint { 103*c66ec88fSEmmanuel Vadot }; 104*c66ec88fSEmmanuel Vadot }; 105*c66ec88fSEmmanuel Vadot 106*c66ec88fSEmmanuel Vadot port@3 { 107*c66ec88fSEmmanuel Vadot reg = <3>; 108*c66ec88fSEmmanuel Vadot mdp_dtv_out: endpoint { 109*c66ec88fSEmmanuel Vadot remote-endpoint = <&hdmi_in>; 110*c66ec88fSEmmanuel Vadot }; 111*c66ec88fSEmmanuel Vadot }; 112*c66ec88fSEmmanuel Vadot }; 113*c66ec88fSEmmanuel Vadot }; 114*c66ec88fSEmmanuel Vadot}; 115