aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>2019-06-17 20:59:06 +0530
committerManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>2019-06-17 20:59:23 +0530
commit118313ffaf08f7db56072f7a085ff26ab733f878 (patch)
treec1cca7b811bc52acc24d650da0fe12fa9cf294ff
parentc4744b4ffc9384e29e157fb4d930c398488cd8ab (diff)
download96b-common-118313ffaf08f7db56072f7a085ff26ab733f878.tar.gz
Regulator support for Bubblegum96
-rw-r--r--arch/arm64/boot/dts/actions/s900-bubblegum-96.dts146
-rw-r--r--arch/arm64/boot/dts/actions/s900.dtsi9
2 files changed, 151 insertions, 4 deletions
diff --git a/arch/arm64/boot/dts/actions/s900-bubblegum-96.dts b/arch/arm64/boot/dts/actions/s900-bubblegum-96.dts
index 3b596d72de25..ebaf8e1d2683 100644
--- a/arch/arm64/boot/dts/actions/s900-bubblegum-96.dts
+++ b/arch/arm64/boot/dts/actions/s900-bubblegum-96.dts
@@ -27,13 +27,21 @@
reg = <0x0 0x0 0x0 0x80000000>;
};
- reg_3p1v: regulator-3p1v {
+ reg_3v1: regulator-3p1v {
compatible = "regulator-fixed";
regulator-name = "fixed-3.1V";
regulator-min-microvolt = <3100000>;
regulator-max-microvolt = <3100000>;
regulator-always-on;
};
+
+ reg_5v0: regulator-5v0 {
+ compatible = "regulator-fixed";
+ regulator-name = "fixed-5.0V";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-always-on;
+ };
};
&i2c0 {
@@ -54,6 +62,129 @@
pinctrl-0 = <&i2c2_default>;
};
+&i2c3 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c3_default>;
+
+ status = "okay";
+
+ /* atc2609a (5303) */
+ atc260x: pmic@65 {
+ compatible = "actions,atc2609a";
+ reg = <0x65>;
+ interrupt-parent = <&sirq>;
+ interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+ status = "okay";
+
+ vcc0-supply = <&reg_5v0>;
+ vcc1-supply = <&reg_5v0>;
+ vcc2-supply = <&reg_5v0>;
+ vcc3-supply = <&reg_5v0>;
+ vcc4-supply = <&reg_5v0>;
+ vcc5-supply = <&reg_3v1>;
+ vcc6-supply = <&reg_5v0>;
+ vcc7-supply = <&reg_5v0>;
+ vcc9-supply = <&reg_5v0>;
+ vcc10-supply = <&reg_5v0>;
+ vcc11-supply = <&reg_3v1>;
+ vcc12-supply = <&reg_3v1>;
+ vcc13-supply = <&reg_5v0>;
+ vddio-supply = <&reg_3v1>;
+ regulators {
+ vdd_core: DCDC_REG0 {
+ regulator-name = "vdd_core";
+ regulator-min-microvolt = <600000>;
+ regulator-max-microvolt = <1300000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ vdd_cpu: DCDC_REG1 {
+ regulator-name = "vdd_cpu";
+ regulator-min-microvolt = <600000>;
+ regulator-max-microvolt = <1300000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ vddq_1v2: DCDC_REG2 {
+ regulator-name = "vddq_1v2";
+ regulator-min-microvolt = <600000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ vcc_3v1: DCDC_REG3 {
+ regulator-name = "vcc_3v1";
+ regulator-min-microvolt = <600000>;
+ regulator-max-microvolt = <3500000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ vdd_cpum: DCDC_REG4 {
+ regulator-name = "vdd_cpum";
+ regulator-min-microvolt = <600000>;
+ regulator-max-microvolt = <1300000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ sd_vcc: LDO_REG0 {
+ regulator-name = "sd_vcc";
+ regulator-min-microvolt = <2300000>;
+ regulator-max-microvolt = <3400000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ wifi_3v3: LDO_REG1 {
+ regulator-name = "wifi_3v3";
+ regulator-min-microvolt = <2300000>;
+ regulator-max-microvolt = <3400000>;
+ };
+
+ avcc_3v1: LDO_REG2 {
+ regulator-name = "avcc_3v1";
+ regulator-min-microvolt = <2300000>;
+ regulator-max-microvolt = <3400000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ avcc_1v8: LDO_REG4 {
+ regulator-name = "avcc_1v8";
+ regulator-min-microvolt = <700000>;
+ regulator-max-microvolt = <2200000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ avcc_1v0: LDO_REG6 {
+ regulator-name = "avcc_1v0";
+ regulator-min-microvolt = <850000>;
+ regulator-max-microvolt = <2200000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ vcc1v8_io: LDO_REG7 {
+ regulator-name = "vcc1v8_io";
+ regulator-min-microvolt = <700000>;
+ regulator-max-microvolt = <2200000>;
+ };
+
+ tpvcc_3v1: LDO_REG8 {
+ regulator-name = "tpvcc_3v1";
+ regulator-min-microvolt = <2100000>;
+ regulator-max-microvolt = <3300000>;
+ };
+ };
+ };
+};
+
/*
* GPIO name legend: proper name = the GPIO line is used as GPIO
* NC = not connected (pin out but not routed from the chip to
@@ -253,6 +384,13 @@
};
};
+ i2c3_default: i2c3-default {
+ pinmux {
+ groups = "pcm1_in_out_mfp";
+ function = "i2c3";
+ };
+ };
+
mmc0_default: mmc0_default {
pinmux {
groups = "sd0_d0_mfp", "sd0_d1_mfp", "sd0_d2_d3_mfp",
@@ -278,8 +416,8 @@
no-1-8-v;
cd-gpios = <&pinctrl 120 GPIO_ACTIVE_LOW>;
bus-width = <4>;
- vmmc-supply = <&reg_3p1v>;
- vqmmc-supply = <&reg_3p1v>;
+ vmmc-supply = <&reg_3v1>;
+ vqmmc-supply = <&reg_3v1>;
};
&mmc2 {
@@ -290,7 +428,7 @@
no-sd;
non-removable;
bus-width = <8>;
- vmmc-supply = <&reg_3p1v>;
+ vmmc-supply = <&reg_3v1>;
};
&timer {
diff --git a/arch/arm64/boot/dts/actions/s900.dtsi b/arch/arm64/boot/dts/actions/s900.dtsi
index eb35cf78ab73..3e219e655ea2 100644
--- a/arch/arm64/boot/dts/actions/s900.dtsi
+++ b/arch/arm64/boot/dts/actions/s900.dtsi
@@ -266,6 +266,15 @@
<GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
};
+ sirq: interrupt-controller@e01b0000 {
+ compatible = "actions,owl-sirq";
+ reg = <0x0 0xe01b0000 0x0 0x1000>;
+ interrupt-controller;
+ #interrupt-cells = <3>;
+ actions,sirq-reg-offset = <0x200 0x528 0x52c>;
+ actions,ext-irq-range = <13 15>;
+ };
+
timer: timer@e0228000 {
compatible = "actions,s900-timer";
reg = <0x0 0xe0228000 0x0 0x8000>;