Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

TPS65090 regulators

Required properties:
- compatible: "ti,tps65090"
- reg: I2C slave address
- interrupts: the interrupt outputs of the controller
- regulators: A node that houses a sub-node for each regulator within the
  device. Each sub-node is identified using the node's name, with valid
  values listed below. The content of each sub-node is defined by the
  standard binding for regulators; see regulator.txt.
  dcdc[1-3], fet[1-7] and ldo[1-2] respectively.
- vsys[1-3]-supply: The input supply for DCDC[1-3] respectively.
- infet[1-7]-supply: The input supply for FET[1-7] respectively.
- vsys-l[1-2]-supply: The input supply for LDO[1-2] respectively.

Optional properties:
- ti,enable-ext-control: This is applicable for DCDC1, DCDC2 and DCDC3.
  If DCDCs are externally controlled then this property should be there.
- dcdc-ext-control-gpios: This is applicable for DCDC1, DCDC2 and DCDC3.
  If DCDCs are externally controlled and if it is from GPIO then GPIO
  number should be provided. If it is externally controlled and no GPIO
  entry then driver will just configure this rails as external control
  and will not provide any enable/disable APIs.
- ti,overcurrent-wait: This is applicable to FET registers, which have a
  poorly defined "overcurrent wait" field.  If this property is present it
  should be between 0 - 3.  If this property isn't present we won't touch the
  "overcurrent wait" field and we'll leave it to the BIOS/EC to deal with.

Each regulator is defined using the standard binding for regulators.

Example:

	tps65090@48 {
		compatible = "ti,tps65090";
		reg = <0x48>;
		interrupts = <0 88 0x4>;

		vsys1-supply = <&some_reg>;
		vsys2-supply = <&some_reg>;
		vsys3-supply = <&some_reg>;
		infet1-supply = <&some_reg>;
		infet2-supply = <&some_reg>;
		infet3-supply = <&some_reg>;
		infet4-supply = <&some_reg>;
		infet5-supply = <&some_reg>;
		infet6-supply = <&some_reg>;
		infet7-supply = <&some_reg>;
		vsys-l1-supply = <&some_reg>;
		vsys-l2-supply = <&some_reg>;

		regulators {
			dcdc1 {
				regulator-name = "dcdc1";
				regulator-boot-on;
				regulator-always-on;
				ti,enable-ext-control;
				dcdc-ext-control-gpios = <&gpio 10 0>;
			};

			dcdc2 {
				regulator-name = "dcdc2";
				regulator-boot-on;
				regulator-always-on;
			};

			dcdc3 {
				regulator-name = "dcdc3";
				regulator-boot-on;
				regulator-always-on;
			};

			fet1 {
				regulator-name = "fet1";
				regulator-boot-on;
				regulator-always-on;
			};

			fet2 {
				regulator-name = "fet2";
				regulator-boot-on;
				regulator-always-on;
			};

			fet3 {
				regulator-name = "fet3";
				regulator-boot-on;
				regulator-always-on;
			};

			fet4 {
				regulator-name = "fet4";
				regulator-boot-on;
				regulator-always-on;
			};

			fet5 {
				regulator-name = "fet5";
				regulator-boot-on;
				regulator-always-on;
			};

			fet6 {
				regulator-name = "fet6";
				regulator-boot-on;
				regulator-always-on;
			};

			fet7 {
				regulator-name = "fet7";
				regulator-boot-on;
				regulator-always-on;
			};

			ldo1 {
				regulator-name = "ldo1";
				regulator-boot-on;
				regulator-always-on;
			};

			ldo2 {
				regulator-name = "ldo2";
				regulator-boot-on;
				regulator-always-on;
			};
		};
	};