Skip to contentSkip to conversation

APQ8060 Dragonboard support

PATCH New Linus Walleij 4 participants 21 messages Jun 14, 2016 – Jun 16, 2016

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

cover APQ8060 Dragonboard support

This concludes my first round of work to get the APQ8060 Dragonboard booting properly upstream.

After the separate fix to the RPM driver, it boots and sets up all stuff as expected, adds the serial port and the two SD card slots.

I was working on getting some stuff like the PM8901 enabled (it has four MPP multi-purpose-pins) but that work can happen on top of this series, let's start somewhere.

Linus Walleij (5):
ARM: dts: add GPIO and MPP to MSM8660 PMIC
ARM: dts: add SDCC5 to Qualcomm MSM8660
ARM: dts: add L2CC and RPM with regulators for MSM8660
ARM: dts: move the fixed MMC regulator to SURF board
ARM: dts: add Qualcomm APQ8060-based Dragonboard

 arch/arm/boot/dts/Makefile                     |   1 +
 arch/arm/boot/dts/qcom-apq8060-dragonboard.dts | 557 +++++++++++++++++++++++++
 arch/arm/boot/dts/qcom-msm8660-surf.dts        |  11 +
 arch/arm/boot/dts/qcom-msm8660.dtsi            | 149 ++++++-
 4 files changed, 709 insertions(+), 9 deletions(-)
 create mode 100644 arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
Signature · 1 line
2.4.11
#1 lore raw

PATCH 1/5 ARM: dts: add GPIO and MPP to MSM8660 PMIC

This adds the 8660 PMIC GPIO and MPP blocks to the MSM8660 DTSI. Verified against the vendor tree to be in these locations with these interrupts, tested on the APQ8060 Dragonboard.

---
 arch/arm/boot/dts/qcom-msm8660.dtsi | 38 +++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)
arch/arm/boot/dts/qcom-msm8660.dtsi +38 -0
index cd214030b84a..6a62b62ad980 100644
@@ -143,6 +143,44 @@
 				#address-cells = <1>;
 				#size-cells = <0>;
 
+				pm8058_gpio: gpio at 150 {
+					compatible = "qcom,pm8058-gpio",
+						     "qcom,ssbi-gpio";
+					reg = <0x150>;
+					interrupt-parent = <&pmicintc>;
+					interrupts = <192 1>, <193 1>, <194 1>,
+						     <195 1>, <196 1>, <197 1>,
+						     <198 1>, <199 1>, <200 1>,
+						     <201 1>, <202 1>, <203 1>,
+						     <204 1>, <205 1>, <206 1>,
+						     <207 1>, <208 1>, <209 1>,
+						     <210 1>, <211 1>, <212 1>,
+						     <213 1>, <214 1>, <215 1>,
+						     <216 1>, <217 1>, <218 1>,
+						     <219 1>, <220 1>, <221 1>,
+						     <222 1>, <223 1>, <224 1>,
+						     <225 1>, <226 1>, <227 1>,
+						     <228 1>, <229 1>, <230 1>,
+						     <231 1>, <232 1>, <233 1>,
+						     <234 1>, <235 1>;
+					gpio-controller;
+					#gpio-cells = <2>;
+
+				};
+
+				pm8058_mpps: mpps at 50 {
+					compatible = "qcom,pm8058-mpp",
+						     "qcom,ssbi-mpp";
+					reg = <0x50>;
+					gpio-controller;
+					#gpio-cells = <2>;
+					interrupt-parent = <&pmicintc>;
+					interrupts =
+					<128 1>, <129 1>, <130 1>, <131 1>,
+					<132 1>, <133 1>, <134 1>, <135 1>,
+					<136 1>, <137 1>, <138 1>, <139 1>;
+				};
+
 				pwrkey at 1c {
 					compatible = "qcom,pm8058-pwrkey";
 					reg = <0x1c>;
Signature · 1 line
2.4.11
#2 lore raw

PATCH 1/5 ARM: dts: add GPIO and MPP to MSM8660 PMIC

Quoted 6 lines · Linus Walleij

This adds the 8660 PMIC GPIO and MPP blocks to the MSM8660 DTSI. Verified against the vendor tree to be in these locations with these interrupts, tested on the APQ8060 Dragonboard.

---

Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
#3 lore raw

PATCH 2/5 ARM: dts: add SDCC5 to Qualcomm MSM8660

In reply to Linus Walleij

The SDCC5 SD/MMC controller is used for a second uSD slot on the APQ8060 Dragonboard. On most other systems it is just dark silicon so define it and leave it as "disabled" in the core SoC file.

---
 arch/arm/boot/dts/qcom-msm8660.dtsi | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
arch/arm/boot/dts/qcom-msm8660.dtsi +16 -0
index 6a62b62ad980..a5a38820554a 100644
@@ -262,6 +262,22 @@
 				no-1-8-v;
 				vmmc-supply = <&vsdcc_fixed>;
 			};
+
+			sdcc5: sdcc at 12200000 {
+				compatible	= "arm,pl18x", "arm,primecell";
+				arm,primecell-periphid = <0x00051180>;
+				status		= "disabled";
+				reg		= <0x12200000 0x8000>;
+				interrupts	= <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
+				interrupt-names	= "cmd_irq";
+				clocks		= <&gcc SDC5_CLK>, <&gcc SDC5_H_CLK>;
+				clock-names	= "mclk", "apb_pclk";
+				bus-width	= <4>;
+				cap-sd-highspeed;
+				cap-mmc-highspeed;
+				max-frequency	= <48000000>;
+				vmmc-supply = <&vsdcc_fixed>;
+			};
 		};
 
 		tcsr: syscon at 1a400000 {
Signature · 1 line
2.4.11
#4 lore raw

PATCH 2/5 ARM: dts: add SDCC5 to Qualcomm MSM8660

Quoted 7 lines · Linus Walleij

The SDCC5 SD/MMC controller is used for a second uSD slot on the APQ8060 Dragonboard. On most other systems it is just dark silicon so define it and leave it as "disabled" in the core SoC file.

---

Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
#5 lore raw

PATCH 3/5 ARM: dts: add L2CC and RPM with regulators for MSM8660

In reply to Linus Walleij

This adds the L2CC IPC resource and RPM devices plus the nodes for the PM8901 and PM8058 regulators to the MSM8660 device tree. This was tested on the APQ8060 Dragonboard.

---
 arch/arm/boot/dts/qcom-msm8660.dtsi | 89 +++++++++++++++++++++++++++++++++++++
 1 file changed, 89 insertions(+)
arch/arm/boot/dts/qcom-msm8660.dtsi +89 -0
index a5a38820554a..51d3c9e70617 100644
@@ -215,6 +215,95 @@
 			};
 		};
 
+		l2cc: clock-controller at 2082000 {
+			compatible	= "syscon";
+			reg		= <0x02082000 0x1000>;
+		};
+
+		rpm: rpm at 104000 {
+			compatible	= "qcom,rpm-msm8660";
+			reg		= <0x00104000 0x1000>;
+			qcom,ipc	= <&l2cc 0x8 2>;
+
+			interrupts	= <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>,
+					  <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
+					  <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
+			interrupt-names	= "ack", "err", "wakeup";
+			clocks = <&gcc RPM_MSG_RAM_H_CLK>;
+			clock-names = "ram";
+
+			rpmcc: clock-controller {
+				compatible	= "qcom,rpmcc-apq8660", "qcom,rpmcc";
+				#clock-cells = <1>;
+			};
+
+			pm8901-regulators {
+				compatible = "qcom,rpm-pm8901-regulators";
+
+				pm8901_l0: l0 {};
+				pm8901_l1: l1 {};
+				pm8901_l2: l2 {};
+				pm8901_l3: l3 {};
+				pm8901_l4: l4 {};
+				pm8901_l5: l5 {};
+				pm8901_l6: l6 {};
+
+				/* S0 and S1 Handled as SAW regulators by SPM */
+				pm8901_s2: s2 {};
+				pm8901_s3: s3 {};
+				pm8901_s4: s4 {};
+
+				pm8901_lvs0: lvs0 {};
+				pm8901_lvs1: lvs1 {};
+				pm8901_lvs2: lvs2 {};
+				pm8901_lvs3: lvs3 {};
+
+				pm8058_mvs: mvs {};
+			};
+
+			pm8058-regulators {
+				compatible = "qcom,rpm-pm8058-regulators";
+
+				pm8058_l0: l0 {};
+				pm8058_l1: l1 {};
+				pm8058_l2: l2 {};
+				pm8058_l3: l3 {};
+				pm8058_l4: l4 {};
+				pm8058_l5: l5 {};
+				pm8058_l6: l6 {};
+				pm8058_l7: l7 {};
+				pm8058_l8: l8 {};
+				pm8058_l9: l9 {};
+				pm8058_l10: l10 {};
+				pm8058_l11: l11 {};
+				pm8058_l12: l12 {};
+				pm8058_l13: l13 {};
+				pm8058_l14: l14 {};
+				pm8058_l15: l15 {};
+				pm8058_l16: l16 {};
+				pm8058_l17: l17 {};
+				pm8058_l18: l18 {};
+				pm8058_l19: l19 {};
+				pm8058_l20: l20 {};
+				pm8058_l21: l21 {};
+				pm8058_l22: l22 {};
+				pm8058_l23: l23 {};
+				pm8058_l24: l24 {};
+				pm8058_l25: l25 {};
+
+				pm8058_s0: s0 {};
+				pm8058_s1: s1 {};
+				pm8058_s2: s2 {};
+				pm8058_s3: s3 {};
+				pm8058_s4: s4 {};
+
+				pm8058_lvs0: lvs0 {};
+				pm8058_lvs1: lvs1 {};
+
+				pm8058_ncp: ncp {};
+			};
+		};
+
 		/* Temporary fixed regulator */
 		vsdcc_fixed: vsdcc-regulator {
 			compatible = "regulator-fixed";
Signature · 1 line
2.4.11
#6 lore raw

PATCH 3/5 ARM: dts: add L2CC and RPM with regulators for MSM8660

arch/arm/boot/dts/qcom-msm8660.dtsi line 219

Quoted 10 lines · Linus Walleij
arch/arm/boot/dts/qcom-msm8660.dtsi +5 -0
index a5a38820554a..51d3c9e70617 100644
@@ -215,6 +215,95 @@
+
+			rpmcc: clock-controller {
+				compatible	= "qcom,rpmcc-apq8660", "qcom,rpmcc";
+				#clock-cells = <1>;
+			};

This driver isn't merged yet, but ok.

arch/arm/boot/dts/qcom-msm8660.dtsi line 221

Quoted 2 lines
arch/arm/boot/dts/qcom-msm8660.dtsi +2 -0
+
+			pm8901-regulators {

I'd rather have regulators at 8901 and regulators at 8058. That way the node name is generic per ePAPR suggestions.

Quoted 11 lines
arch/arm/boot/dts/qcom-msm8660.dtsi +11 -0
+				compatible = "qcom,rpm-pm8901-regulators";
+
+				pm8901_l0: l0 {};
+				pm8901_l1: l1 {};
+				pm8901_l2: l2 {};
+				pm8901_l3: l3 {};
+				pm8901_l4: l4 {};
+				pm8901_l5: l5 {};
+				pm8901_l6: l6 {};
+
+				/* S0 and S1 Handled as SAW regulators by SPM */

arch/arm/boot/dts/qcom-msm8660.dtsi line 261

Quoted 10 lines
arch/arm/boot/dts/qcom-msm8660.dtsi +10 -0
+				pm8901_s2: s2 {};
+				pm8901_s3: s3 {};
+				pm8901_s4: s4 {};
+
+				pm8901_lvs0: lvs0 {};
+				pm8901_lvs1: lvs1 {};
+				pm8901_lvs2: lvs2 {};
+				pm8901_lvs3: lvs3 {};
+
+				pm8058_mvs: mvs {};

pm8901_mvs?

Quoted 24 lines
arch/arm/boot/dts/qcom-msm8660.dtsi +24 -0
+			};
+
+			pm8058-regulators {
+				compatible = "qcom,rpm-pm8058-regulators";
+
+				pm8058_l0: l0 {};
+				pm8058_l1: l1 {};
+				pm8058_l2: l2 {};
+				pm8058_l3: l3 {};
+				pm8058_l4: l4 {};
+				pm8058_l5: l5 {};
+				pm8058_l6: l6 {};
+				pm8058_l7: l7 {};
+				pm8058_l8: l8 {};
+				pm8058_l9: l9 {};
+				pm8058_l10: l10 {};
+				pm8058_l11: l11 {};
+				pm8058_l12: l12 {};
+				pm8058_l13: l13 {};
+				pm8058_l14: l14 {};
+				pm8058_l15: l15 {};
+				pm8058_l16: l16 {};
+				pm8058_l17: l17 {};
+				pm8058_l18: l18 {};

arch/arm/boot/dts/qcom-msm8660.dtsi line 295

Quoted 10 lines
arch/arm/boot/dts/qcom-msm8660.dtsi +10 -0
+				pm8058_l19: l19 {};
+				pm8058_l20: l20 {};
+				pm8058_l21: l21 {};
+				pm8058_l22: l22 {};
+				pm8058_l23: l23 {};
+				pm8058_l24: l24 {};
+				pm8058_l25: l25 {};
+
+				pm8058_s0: s0 {};
+				pm8058_s1: s1 {};

Just leave these out? RPM shouldn't be touching s0 or s1.

Quoted 11 lines
arch/arm/boot/dts/qcom-msm8660.dtsi +11 -0
+				pm8058_s2: s2 {};
+				pm8058_s3: s3 {};
+				pm8058_s4: s4 {};
+
+				pm8058_lvs0: lvs0 {};
+				pm8058_lvs1: lvs1 {};
+
+				pm8058_ncp: ncp {};
+			};
+		};
+
Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
#7 lore raw

PATCH 3/5 ARM: dts: add L2CC and RPM with regulators for MSM8660

Quoted 2 lines · Stephen Boyd
Quoted 1 line · Linus Walleij
arch/arm/boot/dts/qcom-msm8660.dtsi +0 -0

[..]

Quoted 6 lines

arch/arm/boot/dts/qcom-msm8660.dtsi

Quoted 2 lines
arch/arm/boot/dts/qcom-msm8660.dtsi +2 -0
+
+			pm8901-regulators {

I'd rather have regulators at 8901 and regulators at 8058. That way the node name is generic per ePAPR suggestions.

I agree, but unfortunately we're not allowed to do that without a matching "reg = <>" anymore.

Regards,
Bjorn

#8 lore raw

PATCH 3/5 ARM: dts: add L2CC and RPM with regulators for MSM8660

Quoted 12 lines · Bjorn Andersson
Quoted 2 lines · Stephen Boyd
Quoted 1 line · Linus Walleij
arch/arm/boot/dts/qcom-msm8660.dtsi +0 -0

[..]

Quoted 6 lines

arch/arm/boot/dts/qcom-msm8660.dtsi

Quoted 2 lines
arch/arm/boot/dts/qcom-msm8660.dtsi +2 -0
+
+			pm8901-regulators {

I'd rather have regulators at 8901 and regulators at 8058. That way the node name is generic per ePAPR suggestions.

Quoted 2 lines

I agree, but unfortunately we're not allowed to do that without a matching "reg = <>" anymore.

Oh does dtc blow up now?

Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
#9 lore raw

PATCH 3/5 ARM: dts: add L2CC and RPM with regulators for MSM8660

Quoted 13 lines · Stephen Boyd
Quoted 12 lines · Bjorn Andersson
Quoted 2 lines · Stephen Boyd
Quoted 1 line · Linus Walleij
arch/arm/boot/dts/qcom-msm8660.dtsi +0 -0

[..]

Quoted 6 lines

arch/arm/boot/dts/qcom-msm8660.dtsi

Quoted 2 lines
arch/arm/boot/dts/qcom-msm8660.dtsi +2 -0
+
+			pm8901-regulators {

I'd rather have regulators at 8901 and regulators at 8058. That way the node name is generic per ePAPR suggestions.

Quoted 4 lines
Quoted 2 lines

I agree, but unfortunately we're not allowed to do that without a matching "reg = <>" anymore.

Oh does dtc blow up now?

I think latest dtc complains, maybe with some additional warning enables. However, the requirement has been there for a long time in ePAPR:

"The unit-address must match the first address specified in the reg
property of the node. If the node has no reg property, the @ and unit-address must be omitted and the node-name alone differentiates the node from other nodes at the same level in the tree."

Signature · 3 lines
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.
#10 lore raw

PATCH 3/5 ARM: dts: add L2CC and RPM with regulators for MSM8660

In reply to Stephen Boyd
Quoted 6 lines · Stephen Boyd

Review

Quoted 2 lines · Linus Walleij
(quoted diff) +2 -0
+
+			pm8901-regulators {

I'd rather have regulators at 8901 and regulators at 8058. That way the node name is generic per ePAPR suggestions.

But ePAPR requires reg= if you specify a unit-address part of the node name.

Signature · 3 lines
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.
#11 lore raw

PATCH 3/5 ARM: dts: add L2CC and RPM with regulators for MSM8660

Quoted 11 lines · Russell King - ARM Linux
Quoted 6 lines · Stephen Boyd

Review

Quoted 2 lines · Linus Walleij
(quoted diff) +2 -0
+
+			pm8901-regulators {

I'd rather have regulators at 8901 and regulators at 8058. That way the node name is generic per ePAPR suggestions.

But ePAPR requires reg= if you specify a unit-address part of the node name.

It seems the ePAPR also leaves this open to interpretation because it states:

"The binding for a particular bus may specify additional, more specific requirements for the format of reg and unit-address."

but we haven't done anything formal for the RPM "bus" so far. I'm not worried either way, just a fun fact!

Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
#12 lore raw

PATCH 3/5 ARM: dts: add L2CC and RPM with regulators for MSM8660

Quoted 13 lines · Stephen Boyd
Quoted 11 lines · Russell King - ARM Linux
Quoted 6 lines · Stephen Boyd

Review

Quoted 2 lines · Linus Walleij
(quoted diff) +2 -0
+
+			pm8901-regulators {

I'd rather have regulators at 8901 and regulators at 8058. That way the node name is generic per ePAPR suggestions.

But ePAPR requires reg= if you specify a unit-address part of the node name.

Quoted 8 lines

It seems the ePAPR also leaves this open to interpretation because it states:

"The binding for a particular bus may specify additional, more specific requirements for the format of reg and unit-address."

but we haven't done anything formal for the RPM "bus" so far. I'm not worried either way, just a fun fact!

Latest dtc with warnings enabled (W=1) warns if you don't follow what I quoted.

Signature · 3 lines
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.
#13 lore raw

PATCH 3/5 ARM: dts: add L2CC and RPM with regulators for MSM8660

In reply to Stephen Boyd
Quoted 8 lines · Stephen Boyd

arch/arm/boot/dts/qcom-msm8660.dtsi line 238

Quoted 4 lines · Linus Walleij
arch/arm/boot/dts/qcom-msm8660.dtsi +4 -0
+                     rpmcc: clock-controller {
+                             compatible      = "qcom,rpmcc-apq8660", "qcom,rpmcc";
+                             #clock-cells = <1>;
+                     };

This driver isn't merged yet, but ok.

It's there because it is there in
arch/arm/boot/dts/qcom-apq8064.dtsi

Quoted 5 lines

Review

Quoted 2 lines
(quoted diff) +2 -0
+
+                     pm8901-regulators {

I'd rather have regulators at 8901 and regulators at 8058. That way the node name is generic per ePAPR suggestions.

Seems impossible if I should conclude the other discussion...

Quoted 3 lines
Quoted 1 line

+ pm8058_mvs: mvs {};

pm8901_mvs?

Ooops fixing.

Quoted 26 lines
Quoted 26 lines
arch/arm/boot/dts/qcom-msm8660.dtsi +26 -0
+                     pm8058-regulators {
+                             compatible = "qcom,rpm-pm8058-regulators";
+
+                             pm8058_l0: l0 {};
+                             pm8058_l1: l1 {};
+                             pm8058_l2: l2 {};
+                             pm8058_l3: l3 {};
+                             pm8058_l4: l4 {};
+                             pm8058_l5: l5 {};
+                             pm8058_l6: l6 {};
+                             pm8058_l7: l7 {};
+                             pm8058_l8: l8 {};
+                             pm8058_l9: l9 {};
+                             pm8058_l10: l10 {};
+                             pm8058_l11: l11 {};
+                             pm8058_l12: l12 {};
+                             pm8058_l13: l13 {};
+                             pm8058_l14: l14 {};
+                             pm8058_l15: l15 {};
+                             pm8058_l16: l16 {};
+                             pm8058_l17: l17 {};
+                             pm8058_l18: l18 {};
+                             pm8058_l19: l19 {};
+                             pm8058_l20: l20 {};
+                             pm8058_l21: l21 {};
+                             pm8058_l22: l22 {};
Quoted 8 lines

arch/arm/boot/dts/qcom-msm8660.dtsi line 295

Quoted 6 lines
arch/arm/boot/dts/qcom-msm8660.dtsi +6 -0
+                             pm8058_l23: l23 {};
+                             pm8058_l24: l24 {};
+                             pm8058_l25: l25 {};
+
+                             pm8058_s0: s0 {};
+                             pm8058_s1: s1 {};

Just leave these out? RPM shouldn't be touching s0 or s1.

Really? The msm-3.4 tree does:

/* RPM early regulator constraints */
static struct rpm_regulator_init_data

rpm_regulator_early_init_data[] = {
        /*       ID       a_on pd ss min_uV   max_uV   init_ip    freq */
        RPM_SMPS(PM8058_S0, 0, 1, 1,  500000, 1325000, SMPS_HMIN, 1p60),
        RPM_SMPS(PM8058_S1, 0, 1, 1,  500000, 1250000, SMPS_HMIN, 1p60),

Are you sure you don't mean s0+s1 on PM8901 (which I left out)?

Yours,
Linus Walleij

#14 lore raw

PATCH 3/5 ARM: dts: add L2CC and RPM with regulators for MSM8660

Quoted 6 lines · Linus Walleij
Quoted 2 lines · Stephen Boyd

Just leave these out? RPM shouldn't be touching s0 or s1.

Really? The msm-3.4 tree does:

Quoted 9 lines

/* RPM early regulator constraints */
static struct rpm_regulator_init_data

rpm_regulator_early_init_data[] = {
        /*       ID       a_on pd ss min_uV   max_uV   init_ip    freq */
        RPM_SMPS(PM8058_S0, 0, 1, 1,  500000, 1325000, SMPS_HMIN, 1p60),
        RPM_SMPS(PM8058_S1, 0, 1, 1,  500000, 1250000, SMPS_HMIN, 1p60),

Are you sure you don't mean s0+s1 on PM8901 (which I left out)?

Ah yes, I meant pm8901.

Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
#15 lore raw

PATCH 4/5 ARM: dts: move the fixed MMC regulator to SURF board

In reply to Linus Walleij

There is currently a fixed regulator in the .dtsi file for the MSM8660 chipset, used by the SURF board. We want to define real regulators for a board using this chipset, so push the fixed regulator down to the SURF board which is the only user.

---
 arch/arm/boot/dts/qcom-msm8660-surf.dts | 11 +++++++++++
 arch/arm/boot/dts/qcom-msm8660.dtsi     | 12 ------------
 2 files changed, 11 insertions(+), 12 deletions(-)
arch/arm/boot/dts/qcom-msm8660-surf.dts +11 -0
index b17f379e8c2a..23de764558ab 100644
@@ -23,15 +23,26 @@
 			};
 		};
 
+		/* Temporary fixed regulator */
+		vsdcc_fixed: vsdcc-regulator {
+			compatible = "regulator-fixed";
+			regulator-name = "SDCC Power";
+			regulator-min-microvolt = <2700000>;
+			regulator-max-microvolt = <2700000>;
+			regulator-always-on;
+		};
+
 		amba {
 			/* eMMC */
 			sdcc1: sdcc at 12400000 {
 				status = "okay";
+				vmmc-supply = <&vsdcc_fixed>;
 			};
 
 			/* External micro SD card */
 			sdcc3: sdcc at 12180000 {
 				status = "okay";
+				vmmc-supply = <&vsdcc_fixed>;
 			};
 		};
 	};
arch/arm/boot/dts/qcom-msm8660.dtsi +0 -12
index 51d3c9e70617..088b48fdf75d 100644
@@ -304,15 +304,6 @@
 			};
 		};
 
-		/* Temporary fixed regulator */
-		vsdcc_fixed: vsdcc-regulator {
-			compatible = "regulator-fixed";
-			regulator-name = "SDCC Power";
-			regulator-min-microvolt = <2700000>;
-			regulator-max-microvolt = <2700000>;
-			regulator-always-on;
-		};
-
 		amba {
 			compatible = "simple-bus";
 			#address-cells = <1>;
@@ -332,7 +323,6 @@
 				non-removable;
 				cap-sd-highspeed;
 				cap-mmc-highspeed;
-				vmmc-supply = <&vsdcc_fixed>;
 			};
 
 			sdcc3: sdcc at 12180000 {
@@ -349,7 +339,6 @@
 				cap-mmc-highspeed;
 				max-frequency	= <48000000>;
 				no-1-8-v;
-				vmmc-supply = <&vsdcc_fixed>;
 			};
 
 			sdcc5: sdcc at 12200000 {
@@ -365,7 +354,6 @@
 				cap-sd-highspeed;
 				cap-mmc-highspeed;
 				max-frequency	= <48000000>;
-				vmmc-supply = <&vsdcc_fixed>;
 			};
 		};
 
Signature · 1 line
2.4.11
#16 lore raw

PATCH 4/5 ARM: dts: move the fixed MMC regulator to SURF board

Quoted 7 lines · Linus Walleij

There is currently a fixed regulator in the .dtsi file for the MSM8660 chipset, used by the SURF board. We want to define real regulators for a board using this chipset, so push the fixed regulator down to the SURF board which is the only user.

---

Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
#17 lore raw

PATCH 5/5 ARM: dts: add Qualcomm APQ8060-based Dragonboard

In reply to Linus Walleij

This is the first Dragonboard based on APQ8060 and PM8058. It was produced in 2011 in cooperation between Qualcomm and BSQUARE.

---
 arch/arm/boot/dts/Makefile                     |   1 +
 arch/arm/boot/dts/qcom-apq8060-dragonboard.dts | 557 +++++++++++++++++++++++++
 2 files changed, 558 insertions(+)
 create mode 100644 arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
arch/arm/boot/dts/Makefile +1 -0
index 06b6c2d695bf..793bb14c1329 100644
@@ -572,6 +572,7 @@ dtb-$(CONFIG_ARCH_PRIMA2) += \
 dtb-$(CONFIG_ARCH_OXNAS) += \
 	wd-mbwe.dtb
 dtb-$(CONFIG_ARCH_QCOM) += \
+	qcom-apq8060-dragonboard.dtb \
 	qcom-apq8064-arrow-db600c.dtb \
 	qcom-apq8064-cm-qs600.dtb \
 	qcom-apq8064-ifc6410.dtb \
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts new file +557 -0

557 lines not on this page · raw message

Signature · 1 line
2.4.11
#18 lore raw

PATCH 5/5 ARM: dts: add Qualcomm APQ8060-based Dragonboard

Quoted 23 lines · Linus Walleij
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts new file +23 -0
+/ {
+	model = "Qualcomm APQ8060 Dragonboard";
+	compatible = "qcom,apq8060-dragonboard", "qcom,msm8660";
+
+	aliases {
+		serial0 = &gsbi12_serial;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	regulators {
+		compatible = "simple-bus";
+		/* Main power of the board: 3.7V */
+		vph: regulator-fixed at 1 {
+			compatible = "regulator-fixed";
+			regulator-min-microvolt = <3700000>;
+			regulator-max-microvolt = <3700000>;
+			regulator-name = "VPH";
+			regulator-type = "voltage";
+			regulator-always-on;
+			regulator-boot-on;

arch/arm/boot/dts/qcom-apq8060-dragonboard.dts line 60

Quoted 10 lines
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts new file +10 -0
+		};
+	};
+
+	/* This is a levelshifter for SDCC5 */
+	dragon_vio_txb: txb0104rgyr {
+		compatible = "regulator-fixed";
+		regulator-name = "Dragon SDCC levelshifter";
+		vin-supply = <&pm8058_l14>;
+		regulator-always-on;
+	};

Why not put this under regulators node as well?

Quoted 12 lines
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts new file +12 -0
+
+	soc {
+		gsbi at 19c00000 {
+			status = "ok";
+			pinctrl-names = "default";
+			pinctrl-0 = <&dragon_serial0_pins>;
+			qcom,mode = <GSBI_PROT_I2C_UART>;
+			serial at 19c40000 {
+				status = "ok";
+			};
+		};
+	};

arch/arm/boot/dts/qcom-apq8060-dragonboard.dts line 82

Quoted 10 lines
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts new file +10 -0
+};
+
+/* Intenal 3.69 GiB eMMC */
+&sdcc1 {
+	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&dragon_sdcc1_pins>;
+	vmmc-supply = <&pm8901_l5>;
+	vqmmc-supply = <&pm8901_lvs0>;
+};

I think we're following a non-phandle approach to filling out board dts files. We didn't follow it that well on 8660 surf, probably because it was so basic, but it would be nice to follow that style here as well and populate board properties in nodes like how gsbi at 19c00000 has been done. I'll leave this up to Andy though as he's the maintainer here.

Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
#19 lore raw

PATCH 5/5 ARM: dts: add Qualcomm APQ8060-based Dragonboard

Quoted 7 lines · Stephen Boyd
Quoted 7 lines
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts new file +7 -0
+/* Intenal 3.69 GiB eMMC */
+&sdcc1 {
+     status = "okay";
+     pinctrl-names = "default";
+     pinctrl-0 = <&dragon_sdcc1_pins>;
+     vmmc-supply = <&pm8901_l5>;
+     vqmmc-supply = <&pm8901_lvs0>;
Quoted 8 lines
Quoted 1 line

+};

I think we're following a non-phandle approach to filling out board dts files. We didn't follow it that well on 8660 surf, probably because it was so basic, but it would be nice to follow that style here as well and populate board properties in nodes like how gsbi at 19c00000 has been done. I'll leave this up to Andy though as he's the maintainer here.

Andy? How do you want it? I can do it either way, no big deal for me.

Yours,
Linus Walleij

#20 lore raw

PATCH 5/5 ARM: dts: add Qualcomm APQ8060-based Dragonboard

In reply to Linus Walleij
Quoted 7 lines · Linus Walleij
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts new file +7 -0
+
+/ {
+	model = "Qualcomm APQ8060 Dragonboard";
+	compatible = "qcom,apq8060-dragonboard", "qcom,msm8660";
+
+	aliases {
+		serial0 = &gsbi12_serial;

arch/arm/boot/dts/qcom-apq8060-dragonboard.dts line 43

Quoted 10 lines
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts new file +10 -0
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	regulators {
+		compatible = "simple-bus";
+		/* Main power of the board: 3.7V */
+		vph: regulator-fixed at 1 {

So does this mean we shouldn't have the @1 here because there's no reg property?

Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project