Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752107AbdFTOer (ORCPT ); Tue, 20 Jun 2017 10:34:47 -0400 Received: from mail.free-electrons.com ([62.4.15.54]:55725 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751075AbdFTOep (ORCPT ); Tue, 20 Jun 2017 10:34:45 -0400 From: Gregory CLEMENT To: Linus Walleij Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Thomas Petazzoni , Andrew Lunn , Jason Cooper , devicetree@vger.kernel.org, Omri Itach , Nadav Haklai , Kostya Porotchkin , Russell King , Rob Herring , Neta Zur Hershkovits , Shadi Ammouri , Marcin Wojtas , linux-arm-kernel@lists.infradead.org, Sebastian Hesselbarth Subject: Re: [PATCH v3 9/9] arm64: dts: marvell: add gpio support for Armada 7K/8K References: Date: Tue, 20 Jun 2017 16:34:33 +0200 In-Reply-To: (Gregory CLEMENT's message of "Mon, 12 Jun 2017 17:35:00 +0200") Message-ID: <87y3sm3eyu.fsf@free-electrons.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5613 Lines: 193 Hi, On lun., juin 12 2017, Gregory CLEMENT wrote: > Enable gpio support for CP and AP on the Marvell Armada 7K/8K SoCs. > > The Armada 8K has two CP110 blocks, each having two GPIO controllers. > However, in each CP110 block, one of the GPIO controller cannot be > used: in the master CP110, only the second GPIO controller can be used, > while on the slave CP110, only the first GPIO controller can be used. > > On the other side, the Armada 7K has only one CP110, but both its GPIO > controllers can be used. > > For this reason, the GPIO controllers are marked as "disabled" in the > armada-cp110-master.dtsi and armada-cp110-slave.dtsi files, and only > enabled in the per-SoC dtsi files. > > Signed-off-by: Gregory CLEMENT Applied on mvebu/dt64 Thanks, Gregory > --- > arch/arm64/boot/dts/marvell/armada-70x0.dtsi | 15 +++++++++- > arch/arm64/boot/dts/marvell/armada-80x0.dtsi | 16 +++++++++- > arch/arm64/boot/dts/marvell/armada-ap806.dtsi | 10 ++++++- > arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi | 21 ++++++++++++- > arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi | 22 +++++++++++++- > 5 files changed, 84 insertions(+) > > diff --git a/arch/arm64/boot/dts/marvell/armada-70x0.dtsi b/arch/arm64/boot/dts/marvell/armada-70x0.dtsi > index f6c22665d091..860b6ae9dcc5 100644 > --- a/arch/arm64/boot/dts/marvell/armada-70x0.dtsi > +++ b/arch/arm64/boot/dts/marvell/armada-70x0.dtsi > @@ -46,6 +46,21 @@ > > #include "armada-cp110-master.dtsi" > > +/ { > + aliases { > + gpio1 = &cpm_gpio1; > + gpio2 = &cpm_gpio2; > + }; > +}; > + > +&cpm_gpio1 { > + status = "okay"; > +}; > + > +&cpm_gpio2 { > + status = "okay"; > +}; > + > &cpm_syscon0 { > cpm_pinctrl: pinctrl { > compatible = "marvell,armada-7k-pinctrl"; > diff --git a/arch/arm64/boot/dts/marvell/armada-80x0.dtsi b/arch/arm64/boot/dts/marvell/armada-80x0.dtsi > index 93d1de03b39a..666ebe96ba0d 100644 > --- a/arch/arm64/boot/dts/marvell/armada-80x0.dtsi > +++ b/arch/arm64/boot/dts/marvell/armada-80x0.dtsi > @@ -47,6 +47,22 @@ > #include "armada-cp110-master.dtsi" > #include "armada-cp110-slave.dtsi" > > +/ { > + aliases { > + gpio1 = &cps_gpio1; > + gpio2 = &cpm_gpio2; > + }; > +}; > + > +/* The 80x0 has two CP blocks, but uses only one block from each. */ > +&cps_gpio1 { > + status = "okay"; > +}; > + > +&cpm_gpio2 { > + status = "okay"; > +}; > + > &cpm_syscon0 { > cpm_pinctrl: pinctrl { > compatible = "marvell,armada-8k-cpm-pinctrl"; > diff --git a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi > index 4a1b6e0a604a..64608658de5a 100644 > --- a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi > +++ b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi > @@ -57,6 +57,7 @@ > aliases { > serial0 = &uart0; > serial1 = &uart1; > + gpio0 = &ap_gpio; > }; > > psci { > @@ -252,6 +253,15 @@ > ap_pinctrl: pinctrl { > compatible = "marvell,ap806-pinctrl"; > }; > + > + ap_gpio: gpio { > + compatible = "marvell,armada-8k-gpio"; > + offset = <0x1040>; > + ngpios = <19>; > + gpio-controller; > + #gpio-cells = <2>; > + gpio-ranges = <&ap_pinctrl 0 0 19>; > + }; > }; > }; > }; > diff --git a/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi b/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi > index 96a4ff75b3b0..f88618185d58 100644 > --- a/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi > +++ b/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi > @@ -104,6 +104,27 @@ > compatible = "marvell,cp110-clock"; > #clock-cells = <2>; > }; > + > + cpm_gpio1: gpio@100 { > + compatible = "marvell,armada-8k-gpio"; > + offset = <0x100>; > + ngpios = <32>; > + gpio-controller; > + #gpio-cells = <2>; > + gpio-ranges = <&cpm_pinctrl 0 0 32>; > + status = "disabled"; > + > + }; > + > + cpm_gpio2: gpio@140 { > + compatible = "marvell,armada-8k-gpio"; > + offset = <0x140>; > + ngpios = <31>; > + gpio-controller; > + #gpio-cells = <2>; > + gpio-ranges = <&cpm_pinctrl 0 32 31>; > + status = "disabled"; > + }; > }; > > cpm_rtc: rtc@284000 { > diff --git a/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi b/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi > index 48a658aa5b32..f3a6e6742442 100644 > --- a/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi > +++ b/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi > @@ -111,6 +111,28 @@ > compatible = "marvell,cp110-clock"; > #clock-cells = <2>; > }; > + > + cps_gpio1: gpio@100 { > + compatible = "marvell,armada-8k-gpio"; > + offset = <0x100>; > + ngpios = <32>; > + gpio-controller; > + #gpio-cells = <2>; > + gpio-ranges = <&cps_pinctrl 0 0 32>; > + status = "disabled"; > + > + }; > + > + cps_gpio2: gpio@140 { > + compatible = "marvell,armada-8k-gpio"; > + offset = <0x140>; > + ngpios = <31>; > + gpio-controller; > + #gpio-cells = <2>; > + gpio-ranges = <&cps_pinctrl 0 32 31>; > + status = "disabled"; > + }; > + > }; > > cps_sata0: sata@540000 { > -- > git-series 0.9.1 > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel -- Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com