summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/fb/mdss-rotator.txt
blob: d424201cd427b8c6db495e1546fd83678935fe45 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
QTI MDSS Rotator

MDSS rotator is a rotator driver, which manages the rotator hw
block inside the Mobile Display Subsystem.

Required properties
- compatible :			Must be "qcom,mdss-rotator".
- qcom,mdss-wb-count:		The number of writeback block
				in the hardware
- <name>-supply:		Phandle for <name> regulator device node.

Bus Scaling Data:
- qcom,msm-bus,name:		String property describing MDSS client.
- qcom,msm-bus,num-cases:	This is the the number of Bus Scaling use cases
				defined in the vectors property. This must be
				set to <3> for MDSS driver where use-case 0 is
				used to take off MDSS BW votes from the system.
				And use-case 1 & 2 are used in ping-pong fashion
				to generate run-time BW requests.
- qcom,msm-bus,num-paths:	This represents the number of paths in each
				Bus Scaling Usecase. This value depends on
				how many number of AXI master ports are
				dedicated to MDSS for particular chipset.
- qcom,msm-bus,vectors-KBps:	* A series of 4 cell properties, with a format
				of (src, dst, ab, ib) which is defined at
				Documentation/devicetree/bindings/arm/msm/msm_bus.txt
				* Current values of src & dst are defined at
				include/linux/msm-bus-board.h
				src values allowed for MDSS are:
					22 = MSM_BUS_MASTER_MDP_PORT0
					23 = MSM_BUS_MASTER_MDP_PORT1
					25 = MSM_BUS_MASTER_ROTATOR
				dst values allowed for MDSS are:
					512 = MSM_BUS_SLAVE_EBI_CH0
				ab: Represents aggregated bandwidth.
				ib: Represents instantaneous bandwidth.
				* Total number of 4 cell properties will be
				(number of use-cases * number of paths).
				* These values will be overridden by the driver
				based on the run-time requirements. So initial
				ab and ib values defined here are random and
				bare no logic except for the use-case 0 where ab
				and ib values needs to be 0.
				* Define realtime vector properties followed by
				non-realtime vector properties.

Optional properties
- qcom,mdss-has-reg-bus:	Boolean property to indicate
				if rotator needs to vote for register bus. This
				property is needed starting 8996
- qcom,mdss-has-ubwc:		Boolean property to indicate
				if the hw supports universal
				bandwidth compression (ubwc)
- qcom,mdss-has-downscale	Boolean property to indicate
				if the hw supports downscale
- qcom,sde-reg-bus:		Subnode to provide Bus scaling for register access for
				rotator

Example:
	mdss_rotator: qcom,mdss_rotator {
		compatible = "qcom,mdss_rotator";
		qcom,mdss-has-downscale;
		qcom,mdss-has-ubwc;
		qcom,mdss-wb-count = <2>;

		qcom,mdss-has-reg-bus;
		/* Bus Scale Settings */
		qcom,msm-bus,name = "mdss_rotator";
		qcom,msm-bus,num-cases = <3>;
		qcom,msm-bus,num-paths = <1>;
		qcom,mdss-num-nrt-paths = <1>;
		qcom,msm-bus,vectors-KBps =
			<25 512 0 0>,
			<25 512 0 6400000>,
			<25 512 0 6400000>;

		vdd-supply = <&gdsc_mdss>;
		gdsc-mmagic-mdss-supply = <&gdsc_mmagic_mdss>;
		qcom,supply-names = "vdd", "gdsc-mmagic-mdss";
		qcom,sde-reg-bus {
		    /* Reg Bus Scale Settings */
		    qcom,msm-bus,name = "mdss_rot_reg";
		    qcom,msm-bus,num-cases = <4>;
		    qcom,msm-bus,num-paths = <1>;
		    qcom,msm-bus,active-only;
		    qcom,msm-bus,vectors-KBps =
			    <1 590 0 0>,
			    <1 590 0 76800>,
			    <1 590 0 160000>,
			    <1 590 0 320000>;
		};
	};