forked from Minki/linux
c0d6fe2f01
As usual, this is the massive branch we have for each release. Lots of various updates and additions of hardware descriptions on existing hardware, as well as the usual additions of new boards and SoCs. This is also the first release where we've started mixing 64- and 32-bit DT updates in one branch. (Specific details on what's actually here and new is pretty easy to tell from the diffstat, so there's little point in duplicating listing it here.) -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJWQT2WAAoJEIwa5zzehBx37tgQAIBe5eDJFXFihTlyOQ2plL3q vVH4OCzXIHELfM1J8CGZNah1wCQqNOts8RAmDCzxr+zSYuLOwJOEDZ6NKmErMxl0 NTj3+BsqKO3NRym970ofPqU9JRLQmpZ8K7dzk8Nwj2+r1WZHFu/j6Jv44n/Ns0lw 7+wxnG322lTm7SnvALCMD5lD4Y7VpThooWy5SdFtRoAetn+cLbVCJIeeQvO6Vxkp NooeJR0t2e8cpbAND5Jwu6eeWRcIbrvgjYDe0omhrIY05i9yNvIsC2HuQFGjF43z p2CnQvcKnhOXTZw3yse1Fx5igA7jqwVjjC/lVeDyxhusAtLpmuB6qbSaj7DpqkSQ nJxX1d49WKm68K+aknmee1kYRrvc4DE/kORI4IxXnsVNMu16ifTVLnxKgUhwzukb eZdTP6rsqgNozaYvh0k1vfSFd+CNSkBg+E9nrI3tU95yo3LOIhobVBCvBcWlmUvQ JdavRztqosChjIx3a9i1eCNKJtCg9p4m+gWjUqVVWsxBHe/3HojzjZnsBSynIQMA uGIVm0TKhNl1Svxl3oJo9257UCUK7+5PqJHK9IHrcWDULYx05JGSjuZcyvNS6Fo+ u1DMf0ud4gXJYhecFBa7b3zRjk5YxptgCCTjeEEOTUJbbhZqDjGFZlNuFi6dmqD3 ILJ2QMe/DGiPIlUmCfsx =qY1q -----END PGP SIGNATURE----- Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM DT updates from Olof Johansson: "As usual, this is the massive branch we have for each release. Lots of various updates and additions of hardware descriptions on existing hardware, as well as the usual additions of new boards and SoCs. This is also the first release where we've started mixing 64- and 32-bit DT updates in one branch. (Specific details on what's actually here and new is pretty easy to tell from the diffstat, so there's little point in duplicating listing it here)" * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (499 commits) ARM: dts: uniphier: add system-bus-controller nodes ARM64: juno: disable NOR flash node by default ARM: dts: uniphier: add outer cache controller nodes arm64: defconfig: Enable PCI generic host bridge by default arm64: Juno: Add support for the PCIe host bridge on Juno R1 Documentation: of: Document the bindings used by Juno R1 PCIe host bridge ARM: dts: uniphier: add I2C aliases for ProXstream2 boards dts/Makefile: Add build support for LS2080a QDS & RDB board DTS dts/ls2080a: Add DTS support for LS2080a QDS & RDB boards dts/ls2080a: Update Simulator DTS to add support of various peripherals dts/ls2080a: Remove text about writing to Free Software Foundation dts/ls2080a: Update DTSI to add support of various peripherals doc: DTS: Update DWC3 binding to provide reference to generic bindings doc/bindings: Update GPIO devicetree binding documentation for LS2080A Documentation/dts: Move FSL board-specific bindings out of /powerpc Documentation: DT: Add entry for FSL LS2080A QDS and RDB boards arm64: Rename FSL LS2085A SoC support code to LS2080A arm64: Use generic Layerscape SoC family naming ARM: dts: uniphier: add ProXstream2 Vodka board support ARM: dts: uniphier: add ProXstream2 Gentil board support ...
154 lines
5.3 KiB
Plaintext
154 lines
5.3 KiB
Plaintext
|
|
* Samsung S2MPS11/13/14/15 and S2MPU02 Voltage and Current Regulator
|
|
|
|
The Samsung S2MPS11 is a multi-function device which includes voltage and
|
|
current regulators, RTC, charger controller and other sub-blocks. It is
|
|
interfaced to the host controller using an I2C interface. Each sub-block is
|
|
addressed by the host system using different I2C slave addresses.
|
|
|
|
Required properties:
|
|
- compatible: Should be one of the following
|
|
- "samsung,s2mps11-pmic"
|
|
- "samsung,s2mps13-pmic"
|
|
- "samsung,s2mps14-pmic"
|
|
- "samsung,s2mps15-pmic"
|
|
- "samsung,s2mpu02-pmic".
|
|
- reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
|
|
|
|
Optional properties:
|
|
- interrupt-parent: Specifies the phandle of the interrupt controller to which
|
|
the interrupts from s2mps11 are delivered to.
|
|
- interrupts: Interrupt specifiers for interrupt sources.
|
|
- samsung,s2mps11-wrstbi-ground: Indicates that WRSTBI pin of PMIC is pulled
|
|
down. When the system is suspended it will always go down thus triggerring
|
|
unwanted buck warm reset (setting buck voltages to default values).
|
|
- samsung,s2mps11-acokb-ground: Indicates that ACOKB pin of S2MPS11 PMIC is
|
|
connected to the ground so the PMIC must manually set PWRHOLD bit in CTRL1
|
|
register to turn off the power. Usually the ACOKB is pulled up to VBATT so
|
|
when PWRHOLD pin goes low, the rising ACOKB will trigger power off.
|
|
|
|
Optional nodes:
|
|
- clocks: s2mps11, s2mps13, s2mps15 and s5m8767 provide three(AP/CP/BT) buffered 32.768
|
|
KHz outputs, so to register these as clocks with common clock framework
|
|
instantiate a sub-node named "clocks". It uses the common clock binding
|
|
documented in :
|
|
[Documentation/devicetree/bindings/clock/clock-bindings.txt]
|
|
The s2mps14 provides two (AP/BT) buffered 32.768 KHz outputs.
|
|
- #clock-cells: should be 1.
|
|
|
|
- The following is the list of clocks generated by the controller. Each clock
|
|
is assigned an identifier and client nodes use this identifier to specify
|
|
the clock which they consume.
|
|
Clock ID Devices
|
|
----------------------------------------------------------
|
|
32KhzAP 0 S2MPS11, S2MPS13, S2MPS14, S2MPS15, S5M8767
|
|
32KhzCP 1 S2MPS11, S2MPS13, S2MPS15, S5M8767
|
|
32KhzBT 2 S2MPS11, S2MPS13, S2MPS14, S2MPS15, S5M8767
|
|
|
|
- compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps13-clk",
|
|
"samsung,s2mps14-clk", "samsung,s5m8767-clk"
|
|
The s2msp15 uses the same compatible as s2mps13, as both provides similar clocks.
|
|
|
|
- regulators: The regulators of s2mps11 that have to be instantiated should be
|
|
included in a sub-node named 'regulators'. Regulator nodes included in this
|
|
sub-node should be of the format as listed below.
|
|
|
|
regulator_name {
|
|
[standard regulator constraints....];
|
|
};
|
|
|
|
regulator-ramp-delay for BUCKs = [6250/12500/25000(default)/50000] uV/us
|
|
|
|
BUCK[2/3/4/6] supports disabling ramp delay on hardware, so explicitly
|
|
regulator-ramp-delay = <0> can be used for them to disable ramp delay.
|
|
In the absence of the regulator-ramp-delay property, the default ramp
|
|
delay will be used.
|
|
|
|
NOTE: Some BUCKs share the ramp rate setting i.e. same ramp value will be set
|
|
for a particular group of BUCKs. So provide same regulator-ramp-delay<value>.
|
|
Grouping of BUCKs sharing ramp rate setting is as follow : BUCK[1, 6],
|
|
BUCK[3, 4], and BUCK[7, 8, 10]
|
|
|
|
On S2MPS14 the LDO10, LDO11 and LDO12 can be configured to external control
|
|
over GPIO. To turn this feature on this property must be added to the regulator
|
|
sub-node:
|
|
- samsung,ext-control-gpios: GPIO specifier for one GPIO
|
|
controlling this regulator (enable/disable);
|
|
Example:
|
|
LDO12 {
|
|
regulator-name = "V_EMMC_2.8V";
|
|
regulator-min-microvolt = <2800000>;
|
|
regulator-max-microvolt = <2800000>;
|
|
samsung,ext-control-gpios = <&gpk0 2 0>;
|
|
};
|
|
|
|
|
|
The regulator constraints inside the regulator nodes use the standard regulator
|
|
bindings which are documented elsewhere.
|
|
|
|
The following are the names of the regulators that the s2mps11 pmic block
|
|
supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
|
|
as per the datasheet of s2mps11.
|
|
|
|
- LDOn
|
|
- valid values for n are:
|
|
- S2MPS11: 1 to 38
|
|
- S2MPS13: 1 to 40
|
|
- S2MPS14: 1 to 25
|
|
- S2MPS15: 1 to 27
|
|
- S2MPU02: 1 to 28
|
|
- Example: LDO1, LDO2, LDO28
|
|
- BUCKn
|
|
- valid values for n are:
|
|
- S2MPS11: 1 to 10
|
|
- S2MPS13: 1 to 10
|
|
- S2MPS14: 1 to 5
|
|
- S2MPS15: 1 to 10
|
|
- S2MPU02: 1 to 7
|
|
- Example: BUCK1, BUCK2, BUCK9
|
|
|
|
Example:
|
|
|
|
s2mps11_pmic@66 {
|
|
compatible = "samsung,s2mps11-pmic";
|
|
reg = <0x66>;
|
|
|
|
s2m_osc: clocks {
|
|
compatible = "samsung,s2mps11-clk";
|
|
#clock-cells = <1>;
|
|
clock-output-names = "xx", "yy", "zz";
|
|
};
|
|
|
|
regulators {
|
|
ldo1_reg: LDO1 {
|
|
regulator-name = "VDD_ABB_3.3V";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
ldo2_reg: LDO2 {
|
|
regulator-name = "VDD_ALIVE_1.1V";
|
|
regulator-min-microvolt = <1100000>;
|
|
regulator-max-microvolt = <1100000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
buck1_reg: BUCK1 {
|
|
regulator-name = "vdd_mif";
|
|
regulator-min-microvolt = <950000>;
|
|
regulator-max-microvolt = <1350000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
buck2_reg: BUCK2 {
|
|
regulator-name = "vdd_arm";
|
|
regulator-min-microvolt = <950000>;
|
|
regulator-max-microvolt = <1350000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-ramp-delay = <50000>;
|
|
};
|
|
};
|
|
};
|