diff --git a/debian/changelog b/debian/changelog index d7215214b..28d5d27bc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,8 @@ linux (3.16.7-ckt7-2) UNRELEASED; urgency=medium * [xen] Enable Xen MCE log support. (Closes: #779698) * [armhf] mvebu: do not register custom DMA operations when coherency is disabled (Closes: #780858) + * [armhf] Enable power control on various sunxi platforms, enable MFD_AXP20X + and REGULATOR_AXP20X and adding the necessary DTB nodes. (Closes: #781576) [ Ben Hutchings ] * [armel/kirkwood] linux-image: Add versioned Breaks against flash-kernel, diff --git a/debian/config/armhf/config.armmp b/debian/config/armhf/config.armmp index 03302a01c..963061090 100644 --- a/debian/config/armhf/config.armmp +++ b/debian/config/armhf/config.armmp @@ -355,6 +355,7 @@ CONFIG_TI_EMIF=m ## ## file: drivers/mfd/Kconfig ## +CONFIG_MFD_AXP20X=y CONFIG_MFD_DA9052_SPI=y CONFIG_MFD_DA9052_I2C=y CONFIG_MFD_MC13XXX_SPI=m @@ -628,6 +629,7 @@ CONFIG_PWM_VT8500=m ## CONFIG_REGULATOR=y CONFIG_REGULATOR_ANATOP=m +CONFIG_REGULATOR_AXP20X=m CONFIG_REGULATOR_DA9052=m CONFIG_REGULATOR_MC13783=m CONFIG_REGULATOR_MC13892=m diff --git a/debian/patches/features/arm/ARM-dts-sun4i-Add-AXP209-support-to-various-boards.patch b/debian/patches/features/arm/ARM-dts-sun4i-Add-AXP209-support-to-various-boards.patch new file mode 100644 index 000000000..9e6ba7968 --- /dev/null +++ b/debian/patches/features/arm/ARM-dts-sun4i-Add-AXP209-support-to-various-boards.patch @@ -0,0 +1,209 @@ +From 04cfc848b5c74c7fe0f3b75c7e977c7311c7e64d Mon Sep 17 00:00:00 2001 +From: Carlo Caione +Date: Mon, 30 Jun 2014 23:57:52 +0200 +Subject: [PATCH 1/7] ARM: dts: sun4i: Add AXP209 support to various boards +Origin: https://git.kernel.org/linus/e288f1bac490791e7564474b89b7c48ee537b6a7 + +At a node for the axp209, and where necessary the i2c controller to the dts +for various boards. Note the axp209 regulators are omitted as we don't have +any use for them yet, and on some boards were not sure how exactly they are +wired up. + +Adding support for just the axp209 without the regulators is still useful, as +it will give us power-button and poweroff support. + +Signed-off-by: Carlo Caione +[hdegoede@redhat.com: Drop the regulator bits for now] +Signed-off-by: Hans de Goede +Signed-off-by: Maxime Ripard + +--- + arch/arm/boot/dts/sun4i-a10-a1000.dts | 9 +++++++++ + arch/arm/boot/dts/sun4i-a10-cubieboard.dts | 9 +++++++++ + arch/arm/boot/dts/sun4i-a10-hackberry.dts | 15 +++++++++++++++ + arch/arm/boot/dts/sun4i-a10-inet97fv2.dts | 21 +++++++++++++++------ + arch/arm/boot/dts/sun4i-a10-mini-xplus.dts | 15 +++++++++++++++ + arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts | 15 +++++++++++++++ + arch/arm/boot/dts/sun4i-a10-pcduino.dts | 9 +++++++++ + 7 files changed, 87 insertions(+), 6 deletions(-) + +diff --git a/arch/arm/boot/dts/sun4i-a10-a1000.dts b/arch/arm/boot/dts/sun4i-a10-a1000.dts +index 0b97c07..55d9510 100644 +--- a/arch/arm/boot/dts/sun4i-a10-a1000.dts ++++ b/arch/arm/boot/dts/sun4i-a10-a1000.dts +@@ -98,6 +98,15 @@ + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins_a>; + status = "okay"; ++ ++ axp209: pmic@34 { ++ compatible = "x-powers,axp209"; ++ reg = <0x34>; ++ interrupts = <0>; ++ ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ }; + }; + }; + +diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts +index c200eac..539b693 100644 +--- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts ++++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts +@@ -90,6 +90,15 @@ + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins_a>; + status = "okay"; ++ ++ axp209: pmic@34 { ++ compatible = "x-powers,axp209"; ++ reg = <0x34>; ++ interrupts = <0>; ++ ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ }; + }; + + i2c1: i2c@01c2b000 { +diff --git a/arch/arm/boot/dts/sun4i-a10-hackberry.dts b/arch/arm/boot/dts/sun4i-a10-hackberry.dts +index 547fadc..21df4e3 100644 +--- a/arch/arm/boot/dts/sun4i-a10-hackberry.dts ++++ b/arch/arm/boot/dts/sun4i-a10-hackberry.dts +@@ -92,6 +92,21 @@ + pinctrl-0 = <&uart0_pins_a>; + status = "okay"; + }; ++ ++ i2c0: i2c@01c2ac00 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c0_pins_a>; ++ status = "okay"; ++ ++ axp209: pmic@34 { ++ compatible = "x-powers,axp209"; ++ reg = <0x34>; ++ interrupts = <0>; ++ ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ }; ++ }; + }; + + reg_emac_3v3: emac-3v3 { +diff --git a/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts b/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts +index f13723e..6b0c378 100644 +--- a/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts ++++ b/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts +@@ -40,12 +40,6 @@ + status = "okay"; + }; + +- i2c0: i2c@01c2ac00 { +- pinctrl-names = "default"; +- pinctrl-0 = <&i2c0_pins_a>; +- status = "okay"; +- }; +- + usbphy: phy@01c13400 { + usb1_vbus-supply = <®_usb1_vbus>; + usb2_vbus-supply = <®_usb2_vbus>; +@@ -67,6 +61,21 @@ + ohci1: usb@01c1c400 { + status = "okay"; + }; ++ ++ i2c0: i2c@01c2ac00 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c0_pins_a>; ++ status = "okay"; ++ ++ axp209: pmic@34 { ++ compatible = "x-powers,axp209"; ++ reg = <0x34>; ++ interrupts = <0>; ++ ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ }; ++ }; + }; + + reg_usb1_vbus: usb1-vbus { +diff --git a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts +index c01cea5..387770d 100644 +--- a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts ++++ b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts +@@ -57,6 +57,21 @@ + pinctrl-0 = <&uart0_pins_a>; + status = "okay"; + }; ++ ++ i2c0: i2c@01c2ac00 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c0_pins_a>; ++ status = "okay"; ++ ++ axp209: pmic@34 { ++ compatible = "x-powers,axp209"; ++ reg = <0x34>; ++ interrupts = <0>; ++ ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ }; ++ }; + }; + + reg_usb1_vbus: usb1-vbus { +diff --git a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts +index d46a7db..d046d56 100644 +--- a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts ++++ b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts +@@ -91,6 +91,21 @@ + pinctrl-0 = <&uart0_pins_a>; + status = "okay"; + }; ++ ++ i2c0: i2c@01c2ac00 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c0_pins_a>; ++ status = "okay"; ++ ++ axp209: pmic@34 { ++ compatible = "x-powers,axp209"; ++ reg = <0x34>; ++ interrupts = <0>; ++ ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ }; ++ }; + }; + + leds { +diff --git a/arch/arm/boot/dts/sun4i-a10-pcduino.dts b/arch/arm/boot/dts/sun4i-a10-pcduino.dts +index fb03bcc..6675bcd 100644 +--- a/arch/arm/boot/dts/sun4i-a10-pcduino.dts ++++ b/arch/arm/boot/dts/sun4i-a10-pcduino.dts +@@ -76,6 +76,15 @@ + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins_a>; + status = "okay"; ++ ++ axp209: pmic@34 { ++ compatible = "x-powers,axp209"; ++ reg = <0x34>; ++ interrupts = <0>; ++ ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ }; + }; + }; + +-- +2.1.4 + diff --git a/debian/patches/features/arm/ARM-dts-sun4i-cubieboard-add-axp209-regulator-nodes.patch b/debian/patches/features/arm/ARM-dts-sun4i-cubieboard-add-axp209-regulator-nodes.patch new file mode 100644 index 000000000..fab31efb5 --- /dev/null +++ b/debian/patches/features/arm/ARM-dts-sun4i-cubieboard-add-axp209-regulator-nodes.patch @@ -0,0 +1,81 @@ +From 84d678e330f80376456c764fe1f9c27d9b79610c Mon Sep 17 00:00:00 2001 +From: Chen-Yu Tsai +Date: Mon, 12 Jan 2015 12:34:09 +0800 +Subject: [PATCH 6/7] ARM: dts: sun4i: cubieboard: add axp209 regulator nodes +Origin: https://git.kernel.org/linus/ce124f7a18c5ebc9dc93aaec15aaef779c8708ae + +This patch adds the regulator nodes for the axp209 by including +the axp209 dtsi. As the inputs of these regulators are from the +axp209's PS output, which is basically just a mux over the 2 +inputs, it is considered to be unregulated. Thus we do not provide +input supply properties for them. + +The regulator names and constraints are based on the board +schematics and the SoC datasheet. + +DCDC2 is used as the cpu power supply. This patch also references +it from the cpu node. + +Also get rid of axp209 properties already set in axp209.dtsi. + +Signed-off-by: Chen-Yu Tsai +Signed-off-by: Maxime Ripard +--- + arch/arm/boot/dts/sun4i-a10-cubieboard.dts | 35 ++++++++++++++++++++++++++---- + 1 file changed, 31 insertions(+), 4 deletions(-) + +diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts +index 539b693..5543b76 100644 +--- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts ++++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts +@@ -92,12 +92,8 @@ + status = "okay"; + + axp209: pmic@34 { +- compatible = "x-powers,axp209"; + reg = <0x34>; + interrupts = <0>; +- +- interrupt-controller; +- #interrupt-cells = <1>; + }; + }; + +@@ -137,3 +133,34 @@ + status = "okay"; + }; + }; ++ ++#include "axp209.dtsi" ++ ++&cpu0 { ++ cpu-supply = <®_dcdc2>; ++}; ++ ++®_dcdc2 { ++ regulator-always-on; ++ regulator-min-microvolt = <1000000>; ++ regulator-max-microvolt = <1450000>; ++ regulator-name = "vdd-cpu"; ++}; ++ ++®_dcdc3 { ++ regulator-always-on; ++ regulator-min-microvolt = <1000000>; ++ regulator-max-microvolt = <1400000>; ++ regulator-name = "vdd-int-dll"; ++}; ++ ++®_ldo1 { ++ regulator-name = "vdd-rtc"; ++}; ++ ++®_ldo2 { ++ regulator-always-on; ++ regulator-min-microvolt = <3000000>; ++ regulator-max-microvolt = <3000000>; ++ regulator-name = "avcc"; ++}; +-- +2.1.4 + diff --git a/debian/patches/features/arm/ARM-dts-sun5i-Enable-axp209-support-on-A13-OLinuxIno.patch b/debian/patches/features/arm/ARM-dts-sun5i-Enable-axp209-support-on-A13-OLinuxIno.patch new file mode 100644 index 000000000..1f5810771 --- /dev/null +++ b/debian/patches/features/arm/ARM-dts-sun5i-Enable-axp209-support-on-A13-OLinuxIno.patch @@ -0,0 +1,37 @@ +From 3e4ab009b2f03bf5153320a52c0c18e0f631a7fa Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Sun, 25 Jan 2015 15:36:08 +0100 +Subject: [PATCH 7/7] ARM: dts: sun5i: Enable axp209 support on A13-OLinuxIno +Origin: https://git.kernel.org/linus/c121f45e6291e00c71b919ce4a439e0b6e829668 + +The (non micro) A13-OLinuxIno has an axp203 pmic, enable support for this. + +Signed-off-by: Hans de Goede +Signed-off-by: Maxime Ripard +--- + arch/arm/boot/dts/sun5i-a13-olinuxino.dts | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts +index 429994e..59261aa 100644 +--- a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts ++++ b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts +@@ -76,6 +76,15 @@ + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins_a>; + status = "okay"; ++ ++ axp209: pmic@34 { ++ compatible = "x-powers,axp209"; ++ reg = <0x34>; ++ interrupts = <0>; ++ ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ }; + }; + + i2c1: i2c@01c2b000 { +-- +2.1.4 + diff --git a/debian/patches/features/arm/ARM-dts-sun7i-Add-AXP209-support-to-various-boards.patch b/debian/patches/features/arm/ARM-dts-sun7i-Add-AXP209-support-to-various-boards.patch new file mode 100644 index 000000000..846950ddd --- /dev/null +++ b/debian/patches/features/arm/ARM-dts-sun7i-Add-AXP209-support-to-various-boards.patch @@ -0,0 +1,119 @@ +From e0158776b23fba49749b776e4bb813572ea911f4 Mon Sep 17 00:00:00 2001 +From: Carlo Caione +Date: Mon, 30 Jun 2014 23:57:53 +0200 +Subject: [PATCH 2/7] ARM: dts: sun7i: Add AXP209 support to various boards +Origin: https://git.kernel.org/linus/ec0c933d972ba69f06251f7d215723f61535fc16 + +At a node for the axp209, and where necessary the i2c controller to the dts +for various boards. Note the axp209 regulators are omitted as we don't have +any use for them yet, and on some boards were not sure how exactly they are +wired up. + +Adding support for just the axp209 without the regulators is still useful, as +it will give us power-button and poweroff support. + +Signed-off-by: Carlo Caione +[hdegoede@redhat.com: Drop the regulator bits for now] +Signed-off-by: Hans de Goede +Signed-off-by: Maxime Ripard + +--- + arch/arm/boot/dts/sun7i-a20-cubieboard2.dts | 10 ++++++++++ + arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 10 ++++++++++ + arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts | 16 ++++++++++++++++ + arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 10 ++++++++++ + 4 files changed, 46 insertions(+) + +diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts +index a5ad945..d4648cf 100644 +--- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts ++++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts +@@ -76,6 +76,16 @@ + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins_a>; + status = "okay"; ++ ++ axp209: pmic@34 { ++ compatible = "x-powers,axp209"; ++ reg = <0x34>; ++ interrupt-parent = <&nmi_intc>; ++ interrupts = <0 8>; ++ ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ }; + }; + + i2c1: i2c@01c2b000 { +diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts +index b87fea9..96aee60 100644 +--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts ++++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts +@@ -110,6 +110,16 @@ + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins_a>; + status = "okay"; ++ ++ axp209: pmic@34 { ++ compatible = "x-powers,axp209"; ++ reg = <0x34>; ++ interrupt-parent = <&nmi_intc>; ++ interrupts = <0 8>; ++ ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ }; + }; + + i2c1: i2c@01c2b000 { +diff --git a/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts b/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts +index b77308e..cba1567 100644 +--- a/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts ++++ b/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts +@@ -100,6 +100,22 @@ + status = "okay"; + }; + ++ i2c0: i2c@01c2ac00 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c0_pins_a>; ++ status = "okay"; ++ ++ axp209: pmic@34 { ++ compatible = "x-powers,axp209"; ++ reg = <0x34>; ++ interrupt-parent = <&nmi_intc>; ++ interrupts = <0 8>; ++ ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ }; ++ }; ++ + gmac: ethernet@01c50000 { + pinctrl-names = "default"; + pinctrl-0 = <&gmac_pins_mii_a>; +diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts +index b759630..9d669cdf 100644 +--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts ++++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts +@@ -122,6 +122,16 @@ + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins_a>; + status = "okay"; ++ ++ axp209: pmic@34 { ++ compatible = "x-powers,axp209"; ++ reg = <0x34>; ++ interrupt-parent = <&nmi_intc>; ++ interrupts = <0 8>; ++ ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ }; + }; + + i2c1: i2c@01c2b000 { +-- +2.1.4 + diff --git a/debian/patches/features/arm/ARM-dts-sun7i-cubieboard2-add-axp209-regulator-nodes.patch b/debian/patches/features/arm/ARM-dts-sun7i-cubieboard2-add-axp209-regulator-nodes.patch new file mode 100644 index 000000000..34720022e --- /dev/null +++ b/debian/patches/features/arm/ARM-dts-sun7i-cubieboard2-add-axp209-regulator-nodes.patch @@ -0,0 +1,85 @@ +From 078a04de9f3a4ad1021ec647040b87381c9e5776 Mon Sep 17 00:00:00 2001 +From: Chen-Yu Tsai +Date: Mon, 12 Jan 2015 12:34:04 +0800 +Subject: [PATCH 4/7] ARM: dts: sun7i: cubieboard2: add axp209 regulator nodes +Origin: https://git.kernel.org/linus/ae265c801ffdbd58e4c7a83efc8dc08932de1f74 + +This patch adds the regulator nodes for the axp209 by including +the axp209 dtsi. As the inputs of these regulators are from the +axp209's PS output, which is basically just a mux over the 2 +inputs, it is considered to be unregulated. Thus we do not provide +input supply properties for them. + +The regulator names and constraints are based on the board +schematics and the SoC datasheet. + +DCDC2 is used as the cpu power supply. This patch also references +it from the cpu node. + +Also get rid of axp209 properties already set in axp209.dtsi. + +Signed-off-by: Chen-Yu Tsai +Signed-off-by: Maxime Ripard + +Conflicts: + arch/arm/boot/dts/sun7i-a20-cubieboard2.dts +--- + arch/arm/boot/dts/sun7i-a20-cubieboard2.dts | 35 +++++++++++++++++++++++++---- + 1 file changed, 31 insertions(+), 4 deletions(-) + +diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts +index d4648cf..7ce74a1 100644 +--- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts ++++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts +@@ -78,13 +78,9 @@ + status = "okay"; + + axp209: pmic@34 { +- compatible = "x-powers,axp209"; + reg = <0x34>; + interrupt-parent = <&nmi_intc>; + interrupts = <0 8>; +- +- interrupt-controller; +- #interrupt-cells = <1>; + }; + }; + +@@ -135,3 +131,34 @@ + status = "okay"; + }; + }; ++ ++#include "axp209.dtsi" ++ ++&cpu0 { ++ cpu-supply = <®_dcdc2>; ++}; ++ ++®_dcdc2 { ++ regulator-always-on; ++ regulator-min-microvolt = <1000000>; ++ regulator-max-microvolt = <1450000>; ++ regulator-name = "vdd-cpu"; ++}; ++ ++®_dcdc3 { ++ regulator-always-on; ++ regulator-min-microvolt = <1000000>; ++ regulator-max-microvolt = <1400000>; ++ regulator-name = "vdd-int-dll"; ++}; ++ ++®_ldo1 { ++ regulator-name = "vdd-rtc"; ++}; ++ ++®_ldo2 { ++ regulator-always-on; ++ regulator-min-microvolt = <3000000>; ++ regulator-max-microvolt = <3000000>; ++ regulator-name = "avcc"; ++}; +-- +2.1.4 + diff --git a/debian/patches/features/arm/ARM-dts-sun7i-cubietruck-add-axp209-regulator-nodes.patch b/debian/patches/features/arm/ARM-dts-sun7i-cubietruck-add-axp209-regulator-nodes.patch new file mode 100644 index 000000000..3aeb417b7 --- /dev/null +++ b/debian/patches/features/arm/ARM-dts-sun7i-cubietruck-add-axp209-regulator-nodes.patch @@ -0,0 +1,85 @@ +From 319a5005396069f7c1829cafccbbe918166ec51a Mon Sep 17 00:00:00 2001 +From: Chen-Yu Tsai +Date: Mon, 12 Jan 2015 12:34:05 +0800 +Subject: [PATCH 5/7] ARM: dts: sun7i: cubietruck: add axp209 regulator nodes +Origin: https://git.kernel.org/linus/0d4e29343ce6317cf5cf073346c3e66ad82d61a1 + +This patch adds the regulator nodes for the axp209 by including +the axp209 dtsi. As the inputs of these regulators are from the +axp209's PS output, which is basically just a mux over the 2 +inputs, it is considered to be unregulated. Thus we do not provide +input supply properties for them. + +The regulator names and constraints are based on the board +schematics and the SoC datasheet. + +DCDC2 is used as the cpu power supply. This patch also references +it from the cpu node. + +Also get rid of axp209 properties already set in axp209.dtsi. + +Signed-off-by: Chen-Yu Tsai +Signed-off-by: Maxime Ripard + +Conflicts: + arch/arm/boot/dts/sun7i-a20-cubietruck.dts +--- + arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 35 ++++++++++++++++++++++++++---- + 1 file changed, 31 insertions(+), 4 deletions(-) + +diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts +index 96aee60..eb93cdd 100644 +--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts ++++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts +@@ -112,13 +112,9 @@ + status = "okay"; + + axp209: pmic@34 { +- compatible = "x-powers,axp209"; + reg = <0x34>; + interrupt-parent = <&nmi_intc>; + interrupts = <0 8>; +- +- interrupt-controller; +- #interrupt-cells = <1>; + }; + }; + +@@ -198,3 +194,34 @@ + gpio = <&pio 7 9 0>; + }; + }; ++ ++#include "axp209.dtsi" ++ ++&cpu0 { ++ cpu-supply = <®_dcdc2>; ++}; ++ ++®_dcdc2 { ++ regulator-always-on; ++ regulator-min-microvolt = <1000000>; ++ regulator-max-microvolt = <1450000>; ++ regulator-name = "vdd-cpu"; ++}; ++ ++®_dcdc3 { ++ regulator-always-on; ++ regulator-min-microvolt = <1000000>; ++ regulator-max-microvolt = <1400000>; ++ regulator-name = "vdd-int-dll"; ++}; ++ ++®_ldo1 { ++ regulator-name = "vdd-rtc"; ++}; ++ ++®_ldo2 { ++ regulator-always-on; ++ regulator-min-microvolt = <3000000>; ++ regulator-max-microvolt = <3000000>; ++ regulator-name = "avcc"; ++}; +-- +2.1.4 + diff --git a/debian/patches/features/arm/ARM-dts-sunxi-Add-dtsi-for-AXP209-PMIC.patch b/debian/patches/features/arm/ARM-dts-sunxi-Add-dtsi-for-AXP209-PMIC.patch new file mode 100644 index 000000000..4d9d8d898 --- /dev/null +++ b/debian/patches/features/arm/ARM-dts-sunxi-Add-dtsi-for-AXP209-PMIC.patch @@ -0,0 +1,123 @@ +From f3fb8c8611d470e40cb3460ede6f339e810d6f19 Mon Sep 17 00:00:00 2001 +From: Chen-Yu Tsai +Date: Mon, 12 Jan 2015 12:34:02 +0800 +Subject: [PATCH 3/7] ARM: dts: sunxi: Add dtsi for AXP209 PMIC +Origin: https://git.kernel.org/linus/ddfd0232ede34e673fe338d1e5a7ec7aa022aa99 + +The AXP209 PMIC is used with some Allwinner SoCs. This patch adds +a dtsi file listing all the regulator nodes. The regulators are +initialized based on their device node names. + +Signed-off-by: Chen-Yu Tsai +Signed-off-by: Maxime Ripard +--- + arch/arm/boot/dts/axp209.dtsi | 97 +++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 97 insertions(+) + create mode 100644 arch/arm/boot/dts/axp209.dtsi + +diff --git a/arch/arm/boot/dts/axp209.dtsi b/arch/arm/boot/dts/axp209.dtsi +new file mode 100644 +index 0000000..c20cf53 +--- /dev/null ++++ b/arch/arm/boot/dts/axp209.dtsi +@@ -0,0 +1,97 @@ ++/* ++ * Copyright 2015 Chen-Yu Tsai ++ * ++ * Chen-Yu Tsai ++ * ++ * This file is dual-licensed: you can use it either under the terms ++ * of the GPL or the X11 license, at your option. Note that this dual ++ * licensing only applies to this file, and not this project as a ++ * whole. ++ * ++ * a) This file is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of the ++ * License, or (at your option) any later version. ++ * ++ * This file is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public ++ * License along with this file; if not, write to the Free ++ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, ++ * MA 02110-1301 USA ++ * ++ * Or, alternatively, ++ * ++ * b) Permission is hereby granted, free of charge, to any person ++ * obtaining a copy of this software and associated documentation ++ * files (the "Software"), to deal in the Software without ++ * restriction, including without limitation the rights to use, ++ * copy, modify, merge, publish, distribute, sublicense, and/or ++ * sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following ++ * conditions: ++ * ++ * The above copyright notice and this permission notice shall be ++ * included in all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ++ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ++ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ++ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ */ ++ ++/* ++ * AXP202/209 Integrated Power Management Chip ++ * http://www.x-powers.com/product/AXP20X.php ++ * http://dl.linux-sunxi.org/AXP/AXP209%20Datasheet%20v1.0_cn.pdf ++ */ ++ ++&axp209 { ++ compatible = "x-powers,axp209"; ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ ++ regulators { ++ /* Default work frequency for buck regulators */ ++ x-powers,dcdc-freq = <1500>; ++ ++ reg_dcdc2: dcdc2 { ++ regulator-name = "dcdc2"; ++ }; ++ ++ reg_dcdc3: dcdc3 { ++ regulator-name = "dcdc3"; ++ }; ++ ++ reg_ldo1: ldo1 { ++ /* LDO1 is a fixed output regulator */ ++ regulator-always-on; ++ regulator-min-microvolt = <1300000>; ++ regulator-max-microvolt = <1300000>; ++ regulator-name = "ldo1"; ++ }; ++ ++ reg_ldo2: ldo2 { ++ regulator-name = "ldo2"; ++ }; ++ ++ reg_ldo3: ldo3 { ++ regulator-name = "ldo3"; ++ }; ++ ++ reg_ldo4: ldo4 { ++ regulator-name = "ldo4"; ++ }; ++ ++ reg_ldo5: ldo5 { ++ regulator-name = "ldo5"; ++ }; ++ }; ++}; +-- +2.1.4 + diff --git a/debian/patches/features/arm/ARM-dts-sunxi-Fixup-after-backport-of-axp209-support.patch b/debian/patches/features/arm/ARM-dts-sunxi-Fixup-after-backport-of-axp209-support.patch new file mode 100644 index 000000000..2ea9415e2 --- /dev/null +++ b/debian/patches/features/arm/ARM-dts-sunxi-Fixup-after-backport-of-axp209-support.patch @@ -0,0 +1,61 @@ +From 0737d5a36d9bbb22d9a156055116e710940be98b Mon Sep 17 00:00:00 2001 +From: Ian Campbell +Date: Fri, 3 Apr 2015 10:26:04 +0100 +Subject: [PATCH] ARM: dts: sunxi: Fixup after backport of axp209 support +Forwarded: not-needed + +By adding cpu0 label to cpu@0. + +Upstream this was added by "ARM: dts: sun4i: Add cpu clock reference and +operating points to dtsi" (and similar for sun5i, sun7i) which we have not +backported. + +Signed-off-by: Ian Campbell +--- + arch/arm/boot/dts/sun4i-a10.dtsi | 2 +- + arch/arm/boot/dts/sun5i-a13.dtsi | 2 +- + arch/arm/boot/dts/sun7i-a20.dtsi | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi +index eae8bfd..ad2ef45 100644 +--- a/arch/arm/boot/dts/sun4i-a10.dtsi ++++ b/arch/arm/boot/dts/sun4i-a10.dtsi +@@ -70,7 +70,7 @@ + cpus { + #address-cells = <1>; + #size-cells = <0>; +- cpu@0 { ++ cpu0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a8"; + reg = <0x0>; +diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi +index a194c1e..23bfb8f 100644 +--- a/arch/arm/boot/dts/sun5i-a13.dtsi ++++ b/arch/arm/boot/dts/sun5i-a13.dtsi +@@ -38,7 +38,7 @@ + cpus { + #address-cells = <1>; + #size-cells = <0>; +- cpu@0 { ++ cpu0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a8"; + reg = <0x0>; +diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi +index 7d47914..648051c 100644 +--- a/arch/arm/boot/dts/sun7i-a20.dtsi ++++ b/arch/arm/boot/dts/sun7i-a20.dtsi +@@ -63,7 +63,7 @@ + #address-cells = <1>; + #size-cells = <0>; + +- cpu@0 { ++ cpu0: cpu@0 { + compatible = "arm,cortex-a7"; + device_type = "cpu"; + reg = <0>; +-- +2.1.4 + diff --git a/debian/patches/series b/debian/patches/series index f88e5c59f..7f0e958e9 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -127,6 +127,14 @@ features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch +features/arm/ARM-dts-sun4i-Add-AXP209-support-to-various-boards.patch +features/arm/ARM-dts-sun7i-Add-AXP209-support-to-various-boards.patch +features/arm/ARM-dts-sunxi-Add-dtsi-for-AXP209-PMIC.patch +features/arm/ARM-dts-sun7i-cubieboard2-add-axp209-regulator-nodes.patch +features/arm/ARM-dts-sun7i-cubietruck-add-axp209-regulator-nodes.patch +features/arm/ARM-dts-sun4i-cubieboard-add-axp209-regulator-nodes.patch +features/arm/ARM-dts-sun5i-Enable-axp209-support-on-A13-OLinuxIno.patch +features/arm/ARM-dts-sunxi-Fixup-after-backport-of-axp209-support.patch features/arm64/drivers-net-Add-APM-X-Gene-SoC-ethernet-driver-suppo.patch features/arm64/drivers-net-NET_XGENE-should-depend-on-HAS_DMA.patch features/arm64/net-xgene-Check-negative-return-value-of-xgene_enet_.patch