18c2ecf20Sopenharmony_ciTexas Instruments OMAP compatible OPP supply description
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciOMAP5, DRA7, and AM57 family of SoCs have Class0 AVS eFuse registers which
48c2ecf20Sopenharmony_cicontain data that can be used to adjust voltages programmed for some of their
58c2ecf20Sopenharmony_cisupplies for more efficient operation. This binding provides the information
68c2ecf20Sopenharmony_cineeded to read these values and use them to program the main regulator during
78c2ecf20Sopenharmony_cian OPP transitions.
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ciAlso, some supplies may have an associated vbb-supply which is an Adaptive Body
108c2ecf20Sopenharmony_ciBias regulator which much be transitioned in a specific sequence with regards
118c2ecf20Sopenharmony_cito the vdd-supply and clk when making an OPP transition. By supplying two
128c2ecf20Sopenharmony_ciregulators to the device that will undergo OPP transitions we can make use
138c2ecf20Sopenharmony_ciof the multi regulator binding that is part of the OPP core described here [1]
148c2ecf20Sopenharmony_cito describe both regulators needed by the platform.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci[1] Documentation/devicetree/bindings/opp/opp.txt
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ciRequired Properties for Device Node:
198c2ecf20Sopenharmony_ci- vdd-supply: phandle to regulator controlling VDD supply
208c2ecf20Sopenharmony_ci- vbb-supply: phandle to regulator controlling Body Bias supply
218c2ecf20Sopenharmony_ci	      (Usually Adaptive Body Bias regulator)
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ciRequired Properties for opp-supply node:
248c2ecf20Sopenharmony_ci- compatible: Should be one of:
258c2ecf20Sopenharmony_ci	"ti,omap-opp-supply" - basic OPP supply controlling VDD and VBB
268c2ecf20Sopenharmony_ci	"ti,omap5-opp-supply" - OMAP5+ optimized voltages in efuse(class0)VDD
278c2ecf20Sopenharmony_ci			    along with VBB
288c2ecf20Sopenharmony_ci	"ti,omap5-core-opp-supply" - OMAP5+ optimized voltages in efuse(class0) VDD
298c2ecf20Sopenharmony_ci			    but no VBB.
308c2ecf20Sopenharmony_ci- reg: Address and length of the efuse register set for the device (mandatory
318c2ecf20Sopenharmony_ci	only for "ti,omap5-opp-supply")
328c2ecf20Sopenharmony_ci- ti,efuse-settings: An array of u32 tuple items providing information about
338c2ecf20Sopenharmony_ci	optimized efuse configuration. Each item consists of the following:
348c2ecf20Sopenharmony_ci	volt: voltage in uV - reference voltage (OPP voltage)
358c2ecf20Sopenharmony_ci	efuse_offseet: efuse offset from reg where the optimized voltage is stored.
368c2ecf20Sopenharmony_ci- ti,absolute-max-voltage-uv: absolute maximum voltage for the OPP supply.
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ciExample:
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci/* Device Node (CPU)  */
418c2ecf20Sopenharmony_cicpus {
428c2ecf20Sopenharmony_ci	cpu0: cpu@0 {
438c2ecf20Sopenharmony_ci		device_type = "cpu";
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci		...
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci		vdd-supply = <&vcc>;
488c2ecf20Sopenharmony_ci		vbb-supply = <&abb_mpu>;
498c2ecf20Sopenharmony_ci	};
508c2ecf20Sopenharmony_ci};
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci/* OMAP OPP Supply with Class0 registers */
538c2ecf20Sopenharmony_ciopp_supply_mpu: opp_supply@4a003b20 {
548c2ecf20Sopenharmony_ci	compatible = "ti,omap5-opp-supply";
558c2ecf20Sopenharmony_ci	reg = <0x4a003b20 0x8>;
568c2ecf20Sopenharmony_ci	ti,efuse-settings = <
578c2ecf20Sopenharmony_ci	/* uV   offset */
588c2ecf20Sopenharmony_ci	1060000 0x0
598c2ecf20Sopenharmony_ci	1160000 0x4
608c2ecf20Sopenharmony_ci	1210000 0x8
618c2ecf20Sopenharmony_ci	>;
628c2ecf20Sopenharmony_ci	ti,absolute-max-voltage-uv = <1500000>;
638c2ecf20Sopenharmony_ci};
64