blob: 17b878c707e66513c2fb2f1060c48b85ebd750ab [file] [log] [blame]
Adrian Salido-Moreno45228942012-08-13 16:19:18 -07001Qualcomm MDSS MDP
2
3MDSS is Mobile Display SubSystem which implements Linux framebuffer APIs to
4drive user interface to different panel interfaces. MDP driver is the core of
5MDSS which manage all data paths to different panel interfaces.
6
7Required properties
8- compatible : Must be "qcom,mdss_mdp"
9- reg : offset and length of the register set for the device.
10- reg-names : names to refer to register sets related to this device
11- interrupts : Interrupt associated with MDSS.
12- vdd-supply : Phandle for vdd regulator device node.
Sree Sesha Aravind Vadrevu8be4b982013-01-04 14:09:20 -080013- qcom,mdss-pipe-vig-off: Array of offset for MDP source surface pipes of
14 type VIG, the offsets are calculated from
15 register "mdp_phys" defined in reg property.
16 The number of offsets defined here should
17 reflect the amount of VIG pipes that can be
18 active in MDP for this configuration.
19- qcom,mdss-pipe-vig-fetch-id: Array of shared memory pool fetch ids
20 corresponding to the VIG pipe offsets defined in
21 previous property, the amount of fetch ids
22 defined should match the number of offsets
23 defined in property: qcom,mdss-pipe-vig-off
24- qcom,mdss-pipe-rgb-off: Array of offsets for MDP source surface pipes of
25 type RGB, the offsets are calculated from
26 register "mdp_phys" defined in reg property.
27 The number of offsets defined here should
28 reflect the amount of RGB pipes that can be
29 active in MDP for this configuration.
30- qcom,mdss-pipe-rgb-fetch-id: Array of shared memory pool fetch ids
31 corresponding to the RGB pipe offsets defined in
32 previous property, the amount of fetch ids
33 defined should match the number of offsets
34 defined in property: qcom,mdss-pipe-rgb-off
35- qcom,mdss-pipe-dma-off: Array of offsets for MDP source surface pipes of
36 type DMA, the offsets are calculated from
37 register "mdp_phys" defined in reg property.
38 The number of offsets defined here should
39 reflect the amount of DMA pipes that can be
40 active in MDP for this configuration.
41- qcom,mdss-pipe-dma-fetch-id: Array of shared memory pool fetch ids
42 corresponding to the DMA pipe offsets defined in
43 previous property, the amount of fetch ids
44 defined should match the number of offsets
45 defined in property: qcom,mdss-pipe-dma-off
Sree Sesha Aravind Vadrevu6dc413b2013-02-27 17:02:04 -080046- qcom,mdss-smp-data: Array of shared memory pool data. There should
47 be only two values in this property. The first
48 value corresponds to the number of smp blocks
49 and the second is the size of each block
50 present in the mdss hardware.
Sree Sesha Aravind Vadrevu8be4b982013-01-04 14:09:20 -080051- qcom,mdss-ctl-off: Array of offset addresses for the available ctl
52 hw blocks within MDP, these offsets are
53 calculated from register "mdp_phys" defined in
54 reg property. The number of ctl offsets defined
55 here should reflect the number of control paths
56 that can be configured concurrently on MDP for
57 this configuration.
58- qcom,mdss-wb-off: Array of offset addresses for the progammable
59 writeback blocks within MDP. The number of
60 offsets defined should match the number of ctl
61 blocks defined in property: qcom,mdss-ctl-off
62- qcom,mdss-mixer-intf-off: Array of offset addresses for the available
63 mixer blocks that can drive data to panel
64 interfaces.
65 These offsets are be calculated from register
66 "mdp_phys" defined in reg property.
67 The number of offsets defined should reflect the
68 amount of mixers that can drive data to a panel
69 interface.
70- qcom,mdss-dspp-off: Array of offset addresses for the available dspp
71 blocks. These offsets are calculated from
72 regsiter "mdp_phys" defined in reg property.
73 The number of dspp blocks should match the
74 number of mixers driving data to interface
75 defined in property: qcom,mdss-mixer-intf-off
76- qcom,mdss-mixer-wb-off: Array of offset addresses for the available
77 mixer blocks that can be drive data to writeback
78 block. These offsets will be calculated from
79 register "mdp_phys" defined in reg property.
80 The number of writeback mixer offsets defined
81 should reflect the number of mixers that can
82 drive data to a writeback block.
Adrian Salido-Moreno26045502013-02-05 22:46:01 -080083- qcom,mdss-intf-off: Array of offset addresses for the available MDP
84 video interface blocks that can drive data to a
85 panel controller through timing engine.
86 The offsets are calculated from "mdp_phys"
87 defined in reg property. The number of offsets
88 defiend should reflect the number of progammable
89 interface blocks avaialble in hardware.
Adrian Salido-Moreno4fe81062012-12-04 21:05:03 -080090
Adrian Salido-Morenoe2e742b2013-02-07 01:54:14 -080091Optional properties:
92- qcom,vbif-settings : Array with key-value pairs of constant VBIF register
93 settings used to setup MDSS QoS for optimum performance.
94 The key used should be offset from "vbif_phys" register
95 defined in reg property.
96- qcom,mdp-settings : Array with key-value pairs of constant MDP register
97 settings used to setup MDSS QoS for best performance.
98 The key used should be offset from "mdp_phys" register
99 defined in reg property.
100
Adrian Salido-Moreno4fe81062012-12-04 21:05:03 -0800101Optional subnodes:
102Child nodes representing the frame buffer virtual devices.
103
104Subnode properties:
105- compatible : Must be "qcom,mdss-fb"
106- cell-index : Index representing frame buffer
107
108
109
Adrian Salido-Moreno45228942012-08-13 16:19:18 -0700110Example:
111 qcom,mdss_mdp@fd900000 {
112 compatible = "qcom,mdss_mdp";
113 reg = <0xfd900000 0x22100>,
114 <0xfd924000 0x1000>;
115 reg-names = "mdp_phys", "vbif_phys";
116 interrupts = <0 72 0>;
117 vdd-supply = <&gdsc_mdss>;
Adrian Salido-Moreno4fe81062012-12-04 21:05:03 -0800118
Adrian Salido-Morenoe2e742b2013-02-07 01:54:14 -0800119 qcom,vbif-settings = <0x0004 0x00000001>,
120 <0x00D8 0x00000707>;
121 qcom,mdp-settings = <0x02E0 0x000000AA>,
122 <0x02E4 0x00000055>;
Sree Sesha Aravind Vadrevu8be4b982013-01-04 14:09:20 -0800123 qcom,mdss-pipe-vig-off = <0x00001200 0x00001600
124 0x00001A00>;
125 qcom,mdss-pipe-rgb-off = <0x00001E00 0x00002200
126 0x00002600>;
127 qcom,mdss-pipe-dma-off = <0x00002A00 0x00002E00>;
128 qcom,mdss-pipe-vig-fetch-id = <1 4 7>;
129 qcom,mdss-pipe-rgb-fetch-id = <16 17 18>;
130 qcom,mdss-pipe-dma-fetch-id = <10 13>;
Sree Sesha Aravind Vadrevu6dc413b2013-02-27 17:02:04 -0800131 qcom,mdss-smp-data = <22 4096>;
Sree Sesha Aravind Vadrevu8be4b982013-01-04 14:09:20 -0800132
133 qcom,mdss-ctl-off = <0x00000600 0x00000700 0x00000800
134 0x00000900 0x0000A00>;
135 qcom,mdss-mixer-intf-off = <0x00003200 0x00003600
136 0x00003A00>;
137 qcom,mdss-mixer-wb-off = <0x00003E00 0x00004200>;
138 qcom,mdss-dspp-off = <0x00004600 0x00004A00 0x00004E00>;
139 qcom,mdss-wb-off = <0x00011100 0x00013100 0x00015100
140 0x00017100 0x00019100>;
Adrian Salido-Moreno26045502013-02-05 22:46:01 -0800141 qcom,mdss-intf-off = <0x00021100 0x00021300
142 0x00021500 0x00021700>;
Sree Sesha Aravind Vadrevu8be4b982013-01-04 14:09:20 -0800143
Adrian Salido-Moreno4fe81062012-12-04 21:05:03 -0800144 mdss_fb0: qcom,mdss_fb_primary {
145 cell-index = <0>;
146 compatible = "qcom,mdss-fb";
147 };
Adrian Salido-Moreno45228942012-08-13 16:19:18 -0700148 };
149