Qualcomm mdss-dsi-ctrl

mdss-dsi-ctrl is a dsi controller device which supports host controllers that
are compatable with MIPI display serial interface specification.

Required properties:
- compatible:				Must be "qcom,mdss-dsi-ctrl"
- cell-index:				Specifies the controller used among the two controllers.
- reg: 					Base address and length of the different register
					regions(s) required for DSI device functionality.
- reg-names: 				A list of strings that map in order to the list of regs.
					"dsi_ctrl" - MDSS DSI controller register region
					"dsi_phy" - MDSS DSI PHY register region
					"mmss_misc_phys" - Register region for MMSS DSI clamps
- vdd-supply:				Phandle for vdd regulator device node.
- vddio-supply:				Phandle for vdd-io regulator device node.
- vdda-supply:				Phandle for vreg regulator device node.
- qcom,mdss-fb-map:			pHandle that specifies the framebuffer to which the
					interface is mapped.
- qcom,mdss-mdp:			pHandle that specifies the mdss-mdp device.
- qcom,platform-regulator-settings:	An array of length 7 that specifies the PHY
					regulator settings.
- qcom,platform-strength-ctrl:		An array of length 2 that specifies the PHY
					strengthCtrl settings.
- qcom,platform-bist-ctrl:		An array of length 6 that specifies the PHY
					BIST ctrl settings.
- qcom,platform-lane-config:		An array of length 45 that specifies the PHY
					lane configuration settings.
- qcom,dsi-pref-prim-pan:		phandle that specifies the primary panel to be used
					with the controller.

Optional properties:
- label:		        	A string used to describe the controller used.

- vcca-supply:				Phandle for vcca regulator device node.
- qcom,ctrl-supply-entries:		A node that lists the elements of the supply used by the
					DSI controller and PHY. There can be more than one instance
					of this binding, in which case the entry would be appended
					with the supply entry index.
					e.g. qcom,ctrl-supply-entry@0
					-- qcom,supply-name: name of the supply (vdd/vdda/vddio)
					-- qcom,supply-min-voltage: minimum voltage level (uV)
					-- qcom,supply-max-voltage: maximum voltage level (uV)
					-- qcom,supply-enable-load: load drawn (uA) from enabled supply
					-- qcom,supply-disable-load: load drawn (uA) from disabled supply
					-- qcom,supply-pre-on-sleep: time to sleep (ms) before turning on
					-- qcom,supply-post-on-sleep: time to sleep (ms) after turning on
					-- qcom,supply-pre-off-sleep: time to sleep (ms) before turning off
					-- qcom,supply-post-off-sleep: time to sleep (ms) after turning off
- qcom,panel-supply-entries:		A node that lists the elements of the supply used to
					power the DSI panel. There can be more than one instance
					of this binding, in which case the entry would be appended
					with the supply entry index. For a detailed description of
					fields in the supply entry, refer to the qcom,ctrl-supply-entries
					binding above.
- qcom,core-supply-entries:		A node that lists the elements of the supply used to
					power the DSI core. There can be more than one instance
					of this binding, in which case the entry would be appended
					with the supply entry index. For a detailed description of
					fields in the supply entry, refer to the qcom,ctrl-supply-entries
					binding above.
- qcom,platform-enable-gpio:		Specifies the panel lcd/display enable gpio.
- qcom,platform-reset-gpio:		Specifies the panel reset gpio.
- qcom,platform-te-gpio:		Specifies the gpio used for TE.
- qcom,platform-bklight-en-gpio:	Specifies the gpio used to enable display back-light
- qcom,platform-mode-gpio:		Select video/command mode of panel through gpio when it supports
					both modes.
- pinctrl-names:			List of names to assign mdss pin states defined in pinctrl device node
					Refer to pinctrl-bindings.txt
- pinctrl-<0..n>:			Lists phandles each pointing to the pin configuration node within a pin
					controller. These pin configurations are installed in the pinctrl
					device node. Refer to pinctrl-bindings.txt
- qcom,regulator-ldo-mode:		Boolean to enable ldo mode for the dsi phy regulator
- qcom,dsi-panel-bias-vreg:		Boolean to enable control of panel bias regulator
- qcom,mmss-ulp-clamp-ctrl-offset:	Specifies the offset for dsi ulps clamp control register.
- qcom,mmss-phyreset-ctrl-offset:	Specifies the offset for dsi phy reset control register.
- qcom,dsi-irq-line:			Boolean specifies if DSI has a different irq line than mdp.
- qcom,timing-db-mode:			Boolean specifies dsi timing mode registers are supported or not.
- qcom,dsi-clk-ln-recovery:		Boolean which enables the clk lane recovery

Example:
        mdss_dsi0: qcom,mdss_dsi@fd922800 {
		compatible = "qcom,mdss-dsi-ctrl";
		label = "MDSS DSI CTRL->0";
		cell-index = <0>;
		reg = 	<0xfd922800 0x1f8>,
			<0xfd922b00 0x2b0>,
			<0xfd828000 0x108>;
		reg-names = "dsi_ctrl", "dsi_phy", "mmss_misc_phys";
		vdd-supply = <&pm8226_l15>;
		vddio-supply = <&pm8226_l8>;
		vdda-supply = <&pm8226_l4>;
		vcca-supply = <&pm8226_l28>;
		qcom,dsi-pref-prim-pan = <&dsi_tosh_720_vid>;
		qcom,platform-strength-ctrl = [ff 06];
		qcom,platform-bist-ctrl = [00 00 b1 ff 00 00];
		qcom,regulator-ldo-mode;
		qcom,platform-regulator-settings = [07 09 03 00 20 00 01];
		qcom,platform-lane-config = [00 00 00 00 00 00 00 01 97
			00 00 00 00 05 00 00 01 97
			00 00 00 00 0a 00 00 01 97
			00 00 00 00 0f 00 00 01 97
			00 c0 00 00 00 00 00 01 bb];
		qcom,mmss-ulp-clamp-ctrl-offset = <0x20>;
		qcom,mmss-phyreset-ctrl-offset = <0x24>;
		qcom,mdss-fb-map = <&mdss_fb0>;
		qcom,mdss-mdp = <&mdss_mdp>;
		pinctrl-names = "mdss_default", "mdss_sleep";
		pinctrl-0 = <&mdss_dsi_active>;
		pinctrl-1 = <&mdss_dsi_suspend>;
		qcom,platform-reset-gpio = <&msmgpio 25 1>;
		qcom,platform-te-gpio = <&msmgpio 24 0>;
		qcom,platform-enable-gpio = <&msmgpio 58 1>;
		qcom,platform-bklight-en-gpio = <&msmgpio 86 0>;
		qcom,platform-mode-gpio = <&msmgpio 7 0>;
		qcom,dsi-panel-bias-vreg;
		qcom,dsi-irq-line;
		qcom,timing-db-mode;
		qcom,dsi-clk-ln-recovery;

		qcom,core-supply-entries {
			#address-cells = <1>;
			#size-cells = <0>;

			qcom,core-supply-entry@0 {
				reg = <0>;
				qcom,supply-name = "gdsc";
				qcom,supply-min-voltage = <0>;
				qcom,supply-max-voltage = <0>;
				qcom,supply-enable-load = <0>;
				qcom,supply-disable-load = <0>;
				qcom,supply-pre-on-sleep = <0>;
				qcom,supply-post-on-sleep = <0>;
				qcom,supply-pre-off-sleep = <0>;
				qcom,supply-post-off-sleep = <0>;
			};
		};

		qcom,ctrl-supply-entries {
			#address-cells = <1>;
			#size-cells = <0>;

			qcom,ctrl-supply-entry@0 {
				reg = <0>;
				qcom,supply-name = "vdda";
				qcom,supply-min-voltage = <1200000>;
				qcom,supply-max-voltage = <1200000>;
				qcom,supply-enable-load = <100000>;
				qcom,supply-disable-load = <100>;
				qcom,supply-pre-on-sleep = <0>;
				qcom,supply-post-on-sleep = <20>;
				qcom,supply-pre-off-sleep = <0>;
				qcom,supply-post-off-sleep = <0>;
			};
		};

		qcom,panel-supply-entries {
			#address-cells = <1>;
			#size-cells = <0>;

			qcom,panel-supply-entry@0 {
				reg = <0>;
				qcom,supply-name = "vdd";
				qcom,supply-min-voltage = <2800000>;
				qcom,supply-max-voltage = <2800000>;
				qcom,supply-enable-load = <100000>;
				qcom,supply-disable-load = <100>;
				qcom,supply-pre-on-sleep = <0>;
				qcom,supply-post-on-sleep = <0>;
				qcom,supply-pre-off-sleep = <0>;
				qcom,supply-post-off-sleep = <0>;
			};

			qcom,panel-supply-entry@1 {
				reg = <1>;
				qcom,supply-name = "vddio";
				qcom,supply-min-voltage = <1800000>;
				qcom,supply-max-voltage = <1800000>;
				qcom,supply-enable-load = <100000>;
				qcom,supply-disable-load = <100>;
				qcom,supply-pre-on-sleep = <0>;
				qcom,supply-post-on-sleep = <0>;
				qcom,supply-pre-off-sleep = <0>;
				qcom,supply-post-off-sleep = <0>;
			};
		};
        };
