diff mbox

[v2,01/18] ARM: am57xx: cl-som-am57x: dts: add basic module support

Message ID 1448893551-676-1-git-send-email-lifshitz@compulab.co.il (mailing list archive)
State New, archived
Headers show

Commit Message

Dmitry Lifshitz Nov. 30, 2015, 2:25 p.m. UTC
Add support for CompuLab CM-SOM-AM57X board.

CL-SOM-AM57x is a miniature System-on-Module (SoM) based on
TI Sitara AM57x ARM Cortex-A15 System-on-Chip family.

https://www.compulab.co.il/products/computer-on-modules/cl-som-am57x-ti-am5728-am5718-system-on-module/

Add basic DT support for standalone module (without a carrier board):

* Memory configuration
* Heartbeat led
* I2C1 bus
* PMIC
* SATA

Signed-off-by: Dmitry Lifshitz <lifshitz@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
---

 v2: 

   * Fixed voltages (for OPP_HIGH) for VDD_GPU, VDD_IVA, VDD_DSPEVE
   * Added comments for VDDA_1V8_PHYA/B
   * Add "regulator-always-on" property for ldousb_reg 

 .../devicetree/bindings/arm/omap/omap.txt          |   3 +
 arch/arm/boot/dts/Makefile                         |   3 +-
 arch/arm/boot/dts/am57xx-cl-som-am57x.dts          | 260 +++++++++++++++++++++
 3 files changed, 265 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/am57xx-cl-som-am57x.dts

Comments

Tony Lindgren Nov. 30, 2015, 9:54 p.m. UTC | #1
* Dmitry Lifshitz <lifshitz@compulab.co.il> [151130 06:27]:
> +++ b/arch/arm/boot/dts/am57xx-cl-som-am57x.dts
> +		tps659038_pmic {
> +			compatible = "ti,tps659038-pmic";
> +
> +			regulators {
> +				smps12_reg: smps12 {
> +					/* VDD_MPU */
> +					regulator-name = "smps12";
> +					regulator-min-microvolt = < 850000>;
> +					regulator-max-microvolt = <1250000>;
> +					regulator-always-on;
> +					regulator-boot-on;
> +				};
> +
> +				smps3_reg: smps3 {
> +					/* VDD_DDR */
> +					regulator-name = "smps3";
> +					regulator-min-microvolt = <1500000>;
> +					regulator-max-microvolt = <1500000>;
> +					regulator-always-on;
> +					regulator-boot-on;
> +				};
> +
> +				smps45_reg: smps45 {
> +					/* VDD_DSPEVE */
> +					regulator-name = "smps45";
> +					regulator-min-microvolt = < 850000>;
> +					regulator-max-microvolt = <1250000>;
> +					regulator-always-on;
> +					regulator-boot-on;
> +				};
> +
> +				smps6_reg: smps6 {
> +					/* VDD_GPU */
> +					regulator-name = "smps6";
> +					regulator-min-microvolt = < 850000>;
> +					regulator-max-microvolt = <1250000>;
> +					regulator-always-on;
> +					regulator-boot-on;
> +				};
> +
> +				smps7_reg: smps7 {
> +					/* VDD_CORE */
> +					regulator-name = "smps7";
> +					regulator-min-microvolt = < 850000>;
> +					regulator-max-microvolt = <1160000>;
> +					regulator-always-on;
> +					regulator-boot-on;
> +				};
> +
> +				smps8_reg: smps8 {
> +					/* VDD_IVA */
> +					regulator-name = "smps8";
> +					regulator-min-microvolt = < 850000>;
> +					regulator-max-microvolt = <1250000>;
> +					regulator-always-on;
> +					regulator-boot-on;
> +				};
> +
> +				smps9_reg: smps9 {
> +					/* PMIC_3V3 */
> +					regulator-name = "smps9";
> +					regulator-min-microvolt = <3300000>;
> +					regulator-max-microvolt = <3300000>;
> +					regulator-always-on;
> +					regulator-boot-on;
> +				};
> +
> +
> +				ldo1_reg: ldo1 {
> +					/* VDD_SD / VDDSHV8  */
> +					regulator-name = "ldo1";
> +					regulator-min-microvolt = <1800000>;
> +					regulator-max-microvolt = <3300000>;
> +					regulator-boot-on;
> +					regulator-always-on;
> +				};
> +
> +				ldo2_reg: ldo2 {
> +					/* VDD_1V8 */
> +					regulator-name = "ldo2";
> +					regulator-min-microvolt = <1800000>;
> +					regulator-max-microvolt = <1800000>;
> +					regulator-always-on;
> +					regulator-boot-on;
> +				};
> +
> +				ldo3_reg: ldo3 {
> +					/* VDDA_1V8_PHYA - supplies VDDA_SATA, VDDA_USB1/2/3 */
> +					regulator-name = "ldo3";
> +					regulator-min-microvolt = <1800000>;
> +					regulator-max-microvolt = <1800000>;
> +					regulator-always-on;
> +					regulator-boot-on;
> +				};
> +
> +				ldo4_reg: ldo4 {
> +					/* VDDA_1V8_PHYB - supplies VDDA_HDMI, VDDA_PCIE/0/1 */
> +					regulator-name = "ldo4";
> +					regulator-min-microvolt = <1800000>;
> +					regulator-max-microvolt = <1800000>;
> +					regulator-always-on;
> +					regulator-boot-on;
> +				};
> +
> +				ldo9_reg: ldo9 {
> +					/* VDD_RTC */
> +					regulator-name = "ldo9";
> +					regulator-min-microvolt = <1050000>;
> +					regulator-max-microvolt = <1050000>;
> +					regulator-always-on;
> +					regulator-boot-on;
> +				};
> +
> +				ldoln_reg: ldoln {
> +					/* VDDA_1V8_PLL */
> +					regulator-name = "ldoln";
> +					regulator-min-microvolt = <1800000>;
> +					regulator-max-microvolt = <1800000>;
> +					regulator-always-on;
> +					regulator-boot-on;
> +				};
> +
> +				ldousb_reg: ldousb {
> +					/* VDDA_3V_USB: VDDA_USBHS33 */
> +					regulator-name = "ldousb";
> +					regulator-min-microvolt = <3300000>;
> +					regulator-max-microvolt = <3300000>;
> +					regulator-always-on;
> +					regulator-boot-on;
> +				};
> +
> +				/* regen1 not used */
> +			};
> +		};

Can you please put these into dra7-tps659038-common.dtsi so we don't have
multiple copies of it? Then make other boards include that..

That allows to set them up as real controllable regulators instead of all
this silly "regulator-always-on" stuff that has been going on since omap4 :)

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dmitry Lifshitz Dec. 1, 2015, 4:24 p.m. UTC | #2
Hi Tony,

On 11/30/2015 11:54 PM, Tony Lindgren wrote:
> * Dmitry Lifshitz <lifshitz@compulab.co.il> [151130 06:27]:
>> +++ b/arch/arm/boot/dts/am57xx-cl-som-am57x.dts
>> +		tps659038_pmic {
>> +			compatible = "ti,tps659038-pmic";
>> +
>> +			regulators {
>> +				smps12_reg: smps12 {
>> +					/* VDD_MPU */
>> +					regulator-name = "smps12";
>> +					regulator-min-microvolt = < 850000>;
>> +					regulator-max-microvolt = <1250000>;
>> +					regulator-always-on;
>> +					regulator-boot-on;
>> +				};
>> +
>> +				smps3_reg: smps3 {
>> +					/* VDD_DDR */
>> +					regulator-name = "smps3";
>> +					regulator-min-microvolt = <1500000>;
>> +					regulator-max-microvolt = <1500000>;
>> +					regulator-always-on;
>> +					regulator-boot-on;
>> +				};
>> +
>> +				smps45_reg: smps45 {
>> +					/* VDD_DSPEVE */
>> +					regulator-name = "smps45";
>> +					regulator-min-microvolt = < 850000>;
>> +					regulator-max-microvolt = <1250000>;
>> +					regulator-always-on;
>> +					regulator-boot-on;
>> +				};
>> +
>> +				smps6_reg: smps6 {
>> +					/* VDD_GPU */
>> +					regulator-name = "smps6";
>> +					regulator-min-microvolt = < 850000>;
>> +					regulator-max-microvolt = <1250000>;
>> +					regulator-always-on;
>> +					regulator-boot-on;
>> +				};
>> +
>> +				smps7_reg: smps7 {
>> +					/* VDD_CORE */
>> +					regulator-name = "smps7";
>> +					regulator-min-microvolt = < 850000>;
>> +					regulator-max-microvolt = <1160000>;
>> +					regulator-always-on;
>> +					regulator-boot-on;
>> +				};
>> +
>> +				smps8_reg: smps8 {
>> +					/* VDD_IVA */
>> +					regulator-name = "smps8";
>> +					regulator-min-microvolt = < 850000>;
>> +					regulator-max-microvolt = <1250000>;
>> +					regulator-always-on;
>> +					regulator-boot-on;
>> +				};
>> +
>> +				smps9_reg: smps9 {
>> +					/* PMIC_3V3 */
>> +					regulator-name = "smps9";
>> +					regulator-min-microvolt = <3300000>;
>> +					regulator-max-microvolt = <3300000>;
>> +					regulator-always-on;
>> +					regulator-boot-on;
>> +				};
>> +
>> +
>> +				ldo1_reg: ldo1 {
>> +					/* VDD_SD / VDDSHV8  */
>> +					regulator-name = "ldo1";
>> +					regulator-min-microvolt = <1800000>;
>> +					regulator-max-microvolt = <3300000>;
>> +					regulator-boot-on;
>> +					regulator-always-on;
>> +				};
>> +
>> +				ldo2_reg: ldo2 {
>> +					/* VDD_1V8 */
>> +					regulator-name = "ldo2";
>> +					regulator-min-microvolt = <1800000>;
>> +					regulator-max-microvolt = <1800000>;
>> +					regulator-always-on;
>> +					regulator-boot-on;
>> +				};
>> +
>> +				ldo3_reg: ldo3 {
>> +					/* VDDA_1V8_PHYA - supplies VDDA_SATA, VDDA_USB1/2/3 */
>> +					regulator-name = "ldo3";
>> +					regulator-min-microvolt = <1800000>;
>> +					regulator-max-microvolt = <1800000>;
>> +					regulator-always-on;
>> +					regulator-boot-on;
>> +				};
>> +
>> +				ldo4_reg: ldo4 {
>> +					/* VDDA_1V8_PHYB - supplies VDDA_HDMI, VDDA_PCIE/0/1 */
>> +					regulator-name = "ldo4";
>> +					regulator-min-microvolt = <1800000>;
>> +					regulator-max-microvolt = <1800000>;
>> +					regulator-always-on;
>> +					regulator-boot-on;
>> +				};
>> +
>> +				ldo9_reg: ldo9 {
>> +					/* VDD_RTC */
>> +					regulator-name = "ldo9";
>> +					regulator-min-microvolt = <1050000>;
>> +					regulator-max-microvolt = <1050000>;
>> +					regulator-always-on;
>> +					regulator-boot-on;
>> +				};
>> +
>> +				ldoln_reg: ldoln {
>> +					/* VDDA_1V8_PLL */
>> +					regulator-name = "ldoln";
>> +					regulator-min-microvolt = <1800000>;
>> +					regulator-max-microvolt = <1800000>;
>> +					regulator-always-on;
>> +					regulator-boot-on;
>> +				};
>> +
>> +				ldousb_reg: ldousb {
>> +					/* VDDA_3V_USB: VDDA_USBHS33 */
>> +					regulator-name = "ldousb";
>> +					regulator-min-microvolt = <3300000>;
>> +					regulator-max-microvolt = <3300000>;
>> +					regulator-always-on;
>> +					regulator-boot-on;
>> +				};
>> +
>> +				/* regen1 not used */
>> +			};
>> +		};
>
> Can you please put these into dra7-tps659038-common.dtsi so we don't have
> multiple copies of it? Then make other boards include that..

It might looks the same set of regulators for multiple boards,
but it is not. Each board may apply its own regulators usage scheme, and 
this is our case (as compared to am57xx-beagle-x15.dts).

For the best of my knowledge, it used to be in a common *.dtsi file (at 
least in early OMAP5 DT support in TI kernel tree), but then I found 
that PMIC registration had been moved to the boards DT files.

> That allows to set them up as real controllable regulators instead of all
> this silly "regulator-always-on" stuff that has been going on since omap4 :)
>
> Regards,
>
> Tony
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

Regards,

Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tony Lindgren Dec. 1, 2015, 4:43 p.m. UTC | #3
* Dmitry Lifshitz <lifshitz@compulab.co.il> [151201 08:26]:
> 
> It might looks the same set of regulators for multiple boards,
> but it is not. Each board may apply its own regulators usage scheme, and
> this is our case (as compared to am57xx-beagle-x15.dts).
> 
> For the best of my knowledge, it used to be in a common *.dtsi file (at
> least in early OMAP5 DT support in TI kernel tree), but then I found that
> PMIC registration had been moved to the boards DT files.

Have you actually looked at how much of the implementation is same across
the omap5 boards? My guess is that a whole lot is same.. See for example
omap5-board-common.dtsi.

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Nishanth Menon Dec. 1, 2015, 4:47 p.m. UTC | #4
On 12/01/2015 10:43 AM, Tony Lindgren wrote:
> * Dmitry Lifshitz <lifshitz@compulab.co.il> [151201 08:26]:
>>
>> It might looks the same set of regulators for multiple boards,
>> but it is not. Each board may apply its own regulators usage scheme, and
>> this is our case (as compared to am57xx-beagle-x15.dts).
>>
>> For the best of my knowledge, it used to be in a common *.dtsi file (at
>> least in early OMAP5 DT support in TI kernel tree), but then I found that
>> PMIC registration had been moved to the boards DT files.
> 
> Have you actually looked at how much of the implementation is same across
> the omap5 boards? My guess is that a whole lot is same.. See for example
> omap5-board-common.dtsi.

Unfortunately with DRA7 / AM57xx:
at least 2 different PMICs -> DRA74/DRA72 evms.
even across similar PMIC usage, different voltage rail usage accross
evms: DRA74evm, x15/GPEVM, AM571x-IDK/AM572x-IDK -> they are not
necessarily compatible.

Example: some of them have Ganged voltage rail, others dont - few others
are mixed. if you are trying to get common regulator usage -> it is
kinda pretty hard given the freedom board designers are being given by
TI.. OMAP5 was more controlled in terms of what specific configuration
the board designers had to follow. that is no longer the case for
DRA7/AM57 platforms. just my 2 cents here.
Tony Lindgren Dec. 1, 2015, 5:03 p.m. UTC | #5
* Nishanth Menon <nm@ti.com> [151201 08:48]:
> On 12/01/2015 10:43 AM, Tony Lindgren wrote:
> > * Dmitry Lifshitz <lifshitz@compulab.co.il> [151201 08:26]:
> >>
> >> It might looks the same set of regulators for multiple boards,
> >> but it is not. Each board may apply its own regulators usage scheme, and
> >> this is our case (as compared to am57xx-beagle-x15.dts).
> >>
> >> For the best of my knowledge, it used to be in a common *.dtsi file (at
> >> least in early OMAP5 DT support in TI kernel tree), but then I found that
> >> PMIC registration had been moved to the boards DT files.
> > 
> > Have you actually looked at how much of the implementation is same across
> > the omap5 boards? My guess is that a whole lot is same.. See for example
> > omap5-board-common.dtsi.
> 
> Unfortunately with DRA7 / AM57xx:
> at least 2 different PMICs -> DRA74/DRA72 evms.
> even across similar PMIC usage, different voltage rail usage accross
> evms: DRA74evm, x15/GPEVM, AM571x-IDK/AM572x-IDK -> they are not
> necessarily compatible.
> 
> Example: some of them have Ganged voltage rail, others dont - few others
> are mixed. if you are trying to get common regulator usage -> it is
> kinda pretty hard given the freedom board designers are being given by
> TI.. OMAP5 was more controlled in terms of what specific configuration
> the board designers had to follow. that is no longer the case for
> DRA7/AM57 platforms. just my 2 cents here.

OK thanks for checking. Best to wait a bit on that then until we have
more common patterns.

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
index da84372..dd53c90 100644
--- a/Documentation/devicetree/bindings/arm/omap/omap.txt
+++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
@@ -156,6 +156,9 @@  Boards:
 - AM437x SK EVM: AM437x StarterKit Evaluation Module
   compatible = "ti,am437x-sk-evm", "ti,am4372", "ti,am43"
 
+- AM57XX CL-SOM-AM57x
+  compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"
+
 - DRA742 EVM:  Software Development Board for DRA742
   compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"
 
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 5492a24..803a020 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -477,8 +477,9 @@  dtb-$(CONFIG_SOC_OMAP5) += \
 	omap5-sbc-t54.dtb \
 	omap5-uevm.dtb
 dtb-$(CONFIG_SOC_DRA7XX) += \
-	dra7-evm.dtb \
 	am57xx-beagle-x15.dtb \
+	am57xx-cl-som-am57x.dtb \
+	dra7-evm.dtb \
 	dra72-evm.dtb
 dtb-$(CONFIG_ARCH_ORION5X) += \
 	orion5x-lacie-d2-network.dtb \
diff --git a/arch/arm/boot/dts/am57xx-cl-som-am57x.dts b/arch/arm/boot/dts/am57xx-cl-som-am57x.dts
new file mode 100644
index 0000000..840eba6
--- /dev/null
+++ b/arch/arm/boot/dts/am57xx-cl-som-am57x.dts
@@ -0,0 +1,260 @@ 
+/*
+ * Support for CompuLab CL-SOM-AM57x System-on-Module
+ *
+ * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/
+ * Author: Dmitry Lifshitz <lifshitz@compulab.co.il>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by
+ * the Free Software Foundation.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include "dra74x.dtsi"
+
+/ {
+	model = "CompuLab CL-SOM-AM57x";
+	compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
+
+	memory {
+		device_type = "memory";
+		reg = <0x80000000 0x20000000>; /* 512 MB - minimal configuration */
+	};
+
+	leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&leds_pins_default>;
+
+		led@0 {
+			label = "cl-som-am57x:green";
+			gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "heartbeat";
+			default-state = "off";
+		};
+	};
+};
+
+&dra7_pmx_core {
+	leds_pins_default: leds_pins_default {
+		pinctrl-single,pins = <
+			DRA7XX_CORE_IOPAD(0x347c, PIN_OUTPUT | MUX_MODE14)	/* gpmc_a15.gpio2_5 */
+		>;
+	};
+
+	i2c1_pins_default: i2c1_pins_default {
+		pinctrl-single,pins = <
+			DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c1_sda.sda */
+			DRA7XX_CORE_IOPAD(0x3804, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c1_scl.scl */
+		>;
+	};
+
+	tps659038_pins_default: tps659038_pins_default {
+		pinctrl-single,pins = <
+			DRA7XX_CORE_IOPAD(0x3818, PIN_INPUT_PULLUP | MUX_MODE14) /* wakeup0.gpio1_0 */
+		>;
+	};
+};
+
+&i2c1 {
+	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c1_pins_default>;
+	clock-frequency = <400000>;
+
+	tps659038: tps659038@58 {
+		compatible = "ti,tps659038";
+		reg = <0x58>;
+		interrupt-parent = <&gpio1>;
+		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&tps659038_pins_default>;
+
+		#interrupt-cells = <2>;
+		interrupt-controller;
+
+		ti,system-power-controller;
+
+		tps659038_pmic {
+			compatible = "ti,tps659038-pmic";
+
+			regulators {
+				smps12_reg: smps12 {
+					/* VDD_MPU */
+					regulator-name = "smps12";
+					regulator-min-microvolt = < 850000>;
+					regulator-max-microvolt = <1250000>;
+					regulator-always-on;
+					regulator-boot-on;
+				};
+
+				smps3_reg: smps3 {
+					/* VDD_DDR */
+					regulator-name = "smps3";
+					regulator-min-microvolt = <1500000>;
+					regulator-max-microvolt = <1500000>;
+					regulator-always-on;
+					regulator-boot-on;
+				};
+
+				smps45_reg: smps45 {
+					/* VDD_DSPEVE */
+					regulator-name = "smps45";
+					regulator-min-microvolt = < 850000>;
+					regulator-max-microvolt = <1250000>;
+					regulator-always-on;
+					regulator-boot-on;
+				};
+
+				smps6_reg: smps6 {
+					/* VDD_GPU */
+					regulator-name = "smps6";
+					regulator-min-microvolt = < 850000>;
+					regulator-max-microvolt = <1250000>;
+					regulator-always-on;
+					regulator-boot-on;
+				};
+
+				smps7_reg: smps7 {
+					/* VDD_CORE */
+					regulator-name = "smps7";
+					regulator-min-microvolt = < 850000>;
+					regulator-max-microvolt = <1160000>;
+					regulator-always-on;
+					regulator-boot-on;
+				};
+
+				smps8_reg: smps8 {
+					/* VDD_IVA */
+					regulator-name = "smps8";
+					regulator-min-microvolt = < 850000>;
+					regulator-max-microvolt = <1250000>;
+					regulator-always-on;
+					regulator-boot-on;
+				};
+
+				smps9_reg: smps9 {
+					/* PMIC_3V3 */
+					regulator-name = "smps9";
+					regulator-min-microvolt = <3300000>;
+					regulator-max-microvolt = <3300000>;
+					regulator-always-on;
+					regulator-boot-on;
+				};
+
+
+				ldo1_reg: ldo1 {
+					/* VDD_SD / VDDSHV8  */
+					regulator-name = "ldo1";
+					regulator-min-microvolt = <1800000>;
+					regulator-max-microvolt = <3300000>;
+					regulator-boot-on;
+					regulator-always-on;
+				};
+
+				ldo2_reg: ldo2 {
+					/* VDD_1V8 */
+					regulator-name = "ldo2";
+					regulator-min-microvolt = <1800000>;
+					regulator-max-microvolt = <1800000>;
+					regulator-always-on;
+					regulator-boot-on;
+				};
+
+				ldo3_reg: ldo3 {
+					/* VDDA_1V8_PHYA - supplies VDDA_SATA, VDDA_USB1/2/3 */
+					regulator-name = "ldo3";
+					regulator-min-microvolt = <1800000>;
+					regulator-max-microvolt = <1800000>;
+					regulator-always-on;
+					regulator-boot-on;
+				};
+
+				ldo4_reg: ldo4 {
+					/* VDDA_1V8_PHYB - supplies VDDA_HDMI, VDDA_PCIE/0/1 */
+					regulator-name = "ldo4";
+					regulator-min-microvolt = <1800000>;
+					regulator-max-microvolt = <1800000>;
+					regulator-always-on;
+					regulator-boot-on;
+				};
+
+				ldo9_reg: ldo9 {
+					/* VDD_RTC */
+					regulator-name = "ldo9";
+					regulator-min-microvolt = <1050000>;
+					regulator-max-microvolt = <1050000>;
+					regulator-always-on;
+					regulator-boot-on;
+				};
+
+				ldoln_reg: ldoln {
+					/* VDDA_1V8_PLL */
+					regulator-name = "ldoln";
+					regulator-min-microvolt = <1800000>;
+					regulator-max-microvolt = <1800000>;
+					regulator-always-on;
+					regulator-boot-on;
+				};
+
+				ldousb_reg: ldousb {
+					/* VDDA_3V_USB: VDDA_USBHS33 */
+					regulator-name = "ldousb";
+					regulator-min-microvolt = <3300000>;
+					regulator-max-microvolt = <3300000>;
+					regulator-always-on;
+					regulator-boot-on;
+				};
+
+				/* regen1 not used */
+			};
+		};
+
+		tps659038_pwr_button: tps659038_pwr_button {
+			compatible = "ti,palmas-pwrbutton";
+			interrupt-parent = <&tps659038>;
+			interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+			wakeup-source;
+			ti,palmas-long-press-seconds = <12>;
+		};
+
+		tps659038_gpio: tps659038_gpio {
+			compatible = "ti,palmas-gpio";
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+	};
+};
+
+&cpu0 {
+	cpu0-supply = <&smps12_reg>;
+	voltage-tolerance = <1>;
+};
+
+&sata {
+	status = "okay";
+};
+
+&mailbox5 {
+	status = "okay";
+	mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
+		status = "okay";
+	};
+	mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
+		status = "okay";
+	};
+};
+
+&mailbox6 {
+	status = "okay";
+	mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
+		status = "okay";
+	};
+	mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
+		status = "okay";
+	};
+};