[PATCH 14/19] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC

2014-12-02 Thread Chanwoo Choi
This patch adds new Exynos5433 dtsi to support 64-bit Exynos5433 SoC based on
Octal core CPUs (quad Cortex-A57 and quad Cortex-A53). And Exynos5433 supports
PSCI (Power State Coordination Interface) v0.1.

Cc: Kukjin Kim kgene@samsung.com
Cc: Mark Rutland mark.rutl...@arm.com
Cc: Marc Zyngier marc.zyng...@arm.com
Cc: Arnd Bergmann a...@arndb.de
Cc: Olof Johansson o...@lixom.net
Cc: Catalin Marinas catalin.mari...@arm.com
Cc: Will Deacon will.dea...@arm.com
Signed-off-by: Chanwoo Choi cw00.c...@samsung.com
Acked-by: Inki Dae inki@samsung.com
Acked-by: Geunsik Lim geunsik@samsung.com
---
 arch/arm64/boot/dts/exynos/exynos5433-pinctrl.dtsi | 698 +
 arch/arm64/boot/dts/exynos/exynos5433.dtsi | 515 +++
 2 files changed, 1213 insertions(+)
 create mode 100644 arch/arm64/boot/dts/exynos/exynos5433-pinctrl.dtsi
 create mode 100644 arch/arm64/boot/dts/exynos/exynos5433.dtsi

diff --git a/arch/arm64/boot/dts/exynos/exynos5433-pinctrl.dtsi 
b/arch/arm64/boot/dts/exynos/exynos5433-pinctrl.dtsi
new file mode 100644
index 000..81fe925
--- /dev/null
+++ b/arch/arm64/boot/dts/exynos/exynos5433-pinctrl.dtsi
@@ -0,0 +1,698 @@
+/*
+ * Samsung's Exynos5433 SoC pin-mux and pin-config device tree source
+ *
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd.
+ * http://www.samsung.com
+ *
+ * Samsung's Exynos5433 SoC pin-mux and pin-config options are listed as device
+ * tree nodes are listed in this file.
+ *
+ * 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.
+*/
+
+pinctrl_alive {
+   gpa0: gpa0 {
+   gpio-controller;
+   #gpio-cells = 2;
+
+   interrupt-controller;
+   interrupt-parent = gic;
+   interrupts = 0 0 0, 0 1 0, 0 2 0, 0 3 0,
+0 4 0, 0 5 0, 0 6 0, 0 7 0;
+   #interrupt-cells = 2;
+   };
+
+   gpa1: gpa1 {
+   gpio-controller;
+   #gpio-cells = 2;
+
+   interrupt-controller;
+   interrupt-parent = gic;
+   interrupts = 0 8 0, 0 9 0, 0 10 0, 0 11 0,
+0 12 0, 0 13 0, 0 14 0, 0 15 0;
+   #interrupt-cells = 2;
+   };
+
+   gpa2: gpa2 {
+   gpio-controller;
+   #gpio-cells = 2;
+
+   interrupt-controller;
+   #interrupt-cells = 2;
+   };
+
+   gpa3: gpa3 {
+   gpio-controller;
+   #gpio-cells = 2;
+
+   interrupt-controller;
+   #interrupt-cells = 2;
+   };
+};
+
+pinctrl_aud {
+   gpz0: gpz0 {
+   gpio-controller;
+   #gpio-cells = 2;
+
+   interrupt-controller;
+   #interrupt-cells = 2;
+   };
+
+   gpz1: gpz1 {
+   gpio-controller;
+   #gpio-cells = 2;
+
+   interrupt-controller;
+   #interrupt-cells = 2;
+   };
+
+   i2s0_bus: i2s0-bus {
+   samsung,pins = gpz0-0, gpz0-1, gpz0-2, gpz0-3,
+   gpz0-4, gpz0-5, gpz0-6;
+   samsung,pin-function = 2;
+   samsung,pin-pud = 1;
+   samsung,pin-drv = 0;
+   };
+
+   pcm0_bus: pcm0-bus {
+   samsung,pins = gpz1-0, gpz1-1, gpz1-2, gpz1-3;
+   samsung,pin-function = 3;
+   samsung,pin-pud = 1;
+   samsung,pin-drv = 0;
+   };
+};
+
+pinctrl_cpif {
+   gpv6: gpv6 {
+   gpio-controller;
+   #gpio-cells = 2;
+
+   interrupt-controller;
+   #interrupt-cells = 2;
+   };
+};
+
+pinctrl_ese {
+   gpj2: gpj2 {
+   gpio-controller;
+   #gpio-cells = 2;
+
+   interrupt-controller;
+   #interrupt-cells = 2;
+   };
+};
+
+pinctrl_finger {
+   gpd5: gpd5 {
+   gpio-controller;
+   #gpio-cells = 2;
+
+   interrupt-controller;
+   #interrupt-cells = 2;
+   };
+
+   spi2_bus: spi2-bus {
+   samsung,pins = gpd5-0, gpd5-2, gpd5-3;
+   samsung,pin-function = 2;
+   samsung,pin-pud = 3;
+   samsung,pin-drv = 0;
+   };
+
+   hs_i2c6_bus: hs-i2c6-bus {
+   samsung,pins = gpd5-3, gpd5-2;
+   samsung,pin-function = 4;
+   samsung,pin-pud = 3;
+   samsung,pin-drv = 0;
+   };
+
+};
+
+pinctrl_fsys {
+   gph1: gph1 {
+   gpio-controller;
+   #gpio-cells = 2;
+
+   interrupt-controller;
+   #interrupt-cells = 2;
+   };
+
+   gpr4: gpr4 {
+   gpio-controller;
+   #gpio-cells = 2;
+
+   interrupt-controller;
+   #interrupt-cells = 2;
+   };
+
+   

Re: [PATCH 14/19] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC

2014-12-02 Thread Mark Rutland
Hi,

On Tue, Dec 02, 2014 at 08:49:51AM +, Chanwoo Choi wrote:
 This patch adds new Exynos5433 dtsi to support 64-bit Exynos5433 SoC based on
 Octal core CPUs (quad Cortex-A57 and quad Cortex-A53). And Exynos5433 supports
 PSCI (Power State Coordination Interface) v0.1.

 Cc: Kukjin Kim kgene@samsung.com
 Cc: Mark Rutland mark.rutl...@arm.com
 Cc: Marc Zyngier marc.zyng...@arm.com
 Cc: Arnd Bergmann a...@arndb.de
 Cc: Olof Johansson o...@lixom.net
 Cc: Catalin Marinas catalin.mari...@arm.com
 Cc: Will Deacon will.dea...@arm.com
 Signed-off-by: Chanwoo Choi cw00.c...@samsung.com
 Acked-by: Inki Dae inki@samsung.com
 Acked-by: Geunsik Lim geunsik@samsung.com
 ---
  arch/arm64/boot/dts/exynos/exynos5433-pinctrl.dtsi | 698 
 +
  arch/arm64/boot/dts/exynos/exynos5433.dtsi | 515 +++
  2 files changed, 1213 insertions(+)
  create mode 100644 arch/arm64/boot/dts/exynos/exynos5433-pinctrl.dtsi
  create mode 100644 arch/arm64/boot/dts/exynos/exynos5433.dtsi

[...]

 +   cpus {
 +   #address-cells = 1;
 +   #size-cells = 0;
 +
 +   cpu0: cpu@100 {
 +   device_type = cpu;
 +   compatible = arm,cortex-a53, arm,armv8;
 +   enable-method = psci;
 +   reg = 0x100;
 +   };
 +
 +   cpu1: cpu@101 {
 +   device_type = cpu;
 +   compatible = arm,cortex-a53, arm,armv8;
 +   enable-method = psci;
 +   reg = 0x101;
 +   };
 +
 +   cpu2: cpu@102 {
 +   device_type = cpu;
 +   compatible = arm,cortex-a53, arm,armv8;
 +   enable-method = psci;
 +   reg = 0x0 0x102;
 +   };
 +
 +   cpu3: cpu@103 {
 +   device_type = cpu;
 +   compatible = arm,cortex-a53, arm,armv8;
 +   enable-method = psci;
 +   reg = 0x103;
 +   };
 +
 +   cpu4: cpu@0 {
 +   device_type = cpu;
 +   compatible = arm,cortex-a57, arm,armv8;
 +   enable-method = psci;
 +   reg = 0x0;
 +   };
 +
 +   cpu5: cpu@1 {
 +   device_type = cpu;
 +   compatible = arm,cortex-a57, arm,armv8;
 +   enable-method = psci;
 +   reg = 0x1;
 +   };
 +
 +   cpu6: cpu@2 {
 +   device_type = cpu;
 +   compatible = arm,cortex-a57, arm,armv8;
 +   enable-method = psci;
 +   reg = 0x2;
 +   };
 +
 +   cpu7: cpu@3 {
 +   device_type = cpu;
 +   compatible = arm,cortex-a57, arm,armv8;
 +   enable-method = psci;
 +   reg = 0x3;
 +   };
 +   };
 +
 +   psci {
 +   compatible = arm,psci;
 +   method = smc;
 +   cpu_off = 0x8402;
 +   cpu_on = 0xC403;
 +   };

Given your comments on the latest posting, has CPU_OFF been tested, and
does it work for _all_ CPUs (including CPU0)?

 +
 +   soc: soc {
 +   compatible = simple-bus;
 +   #address-cells = 1;
 +   #size-cells = 1;
 +   ranges;

Is that valid when changing the number of cells? The address spaces
aren't strictly identical in that case, and I'd expect a translation
something like:

ranges = 0x0 0x0 0x0 0xff00;

Where the final cell is a sufficiently large value to cover all
addresses in the soc node.

[...]

 +   gic:interrupt-controller@11001000 {
 +   compatible = arm,gic-400;
 +   #interrupt-cells = 3;
 +   interrupt-controller;
 +   reg =   0x11001000 0x1000,
 +   0x11002000 0x1000,
 +   0x11004000 0x2000,
 +   0x11006000 0x2000;
 +   interrupts = 1 9 0xf04;
 +   };

The GICC needs to be 0x2000 long to map the GICC_DIR, which is at
0x1000-0x1003.

[...]

 +   pinctrl_alive: pinctrl@1058 {
 +   compatible = samsung,exynos5433-pinctrl;
 +   reg = 0x1058 0x1000;
 +
 +   wakeup-interrupt-controller {
 +   compatible = samsung,exynos7-wakeup-eint;
 +   interrupts = 0 16 0;
 +   };
 +   };

How exactly does the wakeup interrupt controller interact with the GIC?
Surely the relationship between the two should be described?

Is it a subcomponent of the 

Re: [PATCH 14/19] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC

2014-12-02 Thread Chanwoo Choi
Dear Mark,

On 12/02/2014 08:09 PM, Mark Rutland wrote:
 Hi,
 
 On Tue, Dec 02, 2014 at 08:49:51AM +, Chanwoo Choi wrote:
 This patch adds new Exynos5433 dtsi to support 64-bit Exynos5433 SoC based on
 Octal core CPUs (quad Cortex-A57 and quad Cortex-A53). And Exynos5433 
 supports
 PSCI (Power State Coordination Interface) v0.1.

 Cc: Kukjin Kim kgene@samsung.com
 Cc: Mark Rutland mark.rutl...@arm.com
 Cc: Marc Zyngier marc.zyng...@arm.com
 Cc: Arnd Bergmann a...@arndb.de
 Cc: Olof Johansson o...@lixom.net
 Cc: Catalin Marinas catalin.mari...@arm.com
 Cc: Will Deacon will.dea...@arm.com
 Signed-off-by: Chanwoo Choi cw00.c...@samsung.com
 Acked-by: Inki Dae inki@samsung.com
 Acked-by: Geunsik Lim geunsik@samsung.com
 ---
  arch/arm64/boot/dts/exynos/exynos5433-pinctrl.dtsi | 698 
 +
  arch/arm64/boot/dts/exynos/exynos5433.dtsi | 515 +++
  2 files changed, 1213 insertions(+)
  create mode 100644 arch/arm64/boot/dts/exynos/exynos5433-pinctrl.dtsi
  create mode 100644 arch/arm64/boot/dts/exynos/exynos5433.dtsi
 
 [...]
 
 +   cpus {
 +   #address-cells = 1;
 +   #size-cells = 0;
 +
 +   cpu0: cpu@100 {
 +   device_type = cpu;
 +   compatible = arm,cortex-a53, arm,armv8;
 +   enable-method = psci;
 +   reg = 0x100;
 +   };
 +
 +   cpu1: cpu@101 {
 +   device_type = cpu;
 +   compatible = arm,cortex-a53, arm,armv8;
 +   enable-method = psci;
 +   reg = 0x101;
 +   };
 +
 +   cpu2: cpu@102 {
 +   device_type = cpu;
 +   compatible = arm,cortex-a53, arm,armv8;
 +   enable-method = psci;
 +   reg = 0x0 0x102;
 +   };
 +
 +   cpu3: cpu@103 {
 +   device_type = cpu;
 +   compatible = arm,cortex-a53, arm,armv8;
 +   enable-method = psci;
 +   reg = 0x103;
 +   };
 +
 +   cpu4: cpu@0 {
 +   device_type = cpu;
 +   compatible = arm,cortex-a57, arm,armv8;
 +   enable-method = psci;
 +   reg = 0x0;
 +   };
 +
 +   cpu5: cpu@1 {
 +   device_type = cpu;
 +   compatible = arm,cortex-a57, arm,armv8;
 +   enable-method = psci;
 +   reg = 0x1;
 +   };
 +
 +   cpu6: cpu@2 {
 +   device_type = cpu;
 +   compatible = arm,cortex-a57, arm,armv8;
 +   enable-method = psci;
 +   reg = 0x2;
 +   };
 +
 +   cpu7: cpu@3 {
 +   device_type = cpu;
 +   compatible = arm,cortex-a57, arm,armv8;
 +   enable-method = psci;
 +   reg = 0x3;
 +   };
 +   };
 +
 +   psci {
 +   compatible = arm,psci;
 +   method = smc;
 +   cpu_off = 0x8402;
 +   cpu_on = 0xC403;
 +   };
 
 Given your comments on the latest posting, has CPU_OFF been tested, and
 does it work for _all_ CPUs (including CPU0)?

At current version,
CPU_OFF of Exynos5433 is not working. I'm now working to find the cause of 
CPU_OFF fail.
(I got CPU_ON of Exynos5433 all cores.)

 
 +
 +   soc: soc {
 +   compatible = simple-bus;
 +   #address-cells = 1;
 +   #size-cells = 1;
 +   ranges;
 
 Is that valid when changing the number of cells? The address spaces
 aren't strictly identical in that case, and I'd expect a translation
 something like:
 
 ranges = 0x0 0x0 0x0 0xff00;

I'll fix it after checking correct spec.

 
 Where the final cell is a sufficiently large value to cover all
 addresses in the soc node.
 
 [...]
 
 +   gic:interrupt-controller@11001000 {
 +   compatible = arm,gic-400;
 +   #interrupt-cells = 3;
 +   interrupt-controller;
 +   reg =   0x11001000 0x1000,
 +   0x11002000 0x1000,
 +   0x11004000 0x2000,
 +   0x11006000 0x2000;
 +   interrupts = 1 9 0xf04;
 +   };
 
 The GICC needs to be 0x2000 long to map the GICC_DIR, which is at
 0x1000-0x1003.

Do you mean that following dt node is right for gic-400?

reg =   0x11001000 0x1000,
0x11002000 0x2000,- I changed the the range of 
GICC.
0x11004000 0x2000,
0x11006000 0x2000;

 
 [...]
 
 +   

Re: [PATCH 14/19] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC

2014-12-02 Thread Mark Rutland
Hi,

  +   psci {
  +   compatible = arm,psci;
  +   method = smc;
  +   cpu_off = 0x8402;
  +   cpu_on = 0xC403;
  +   };
 
  Given your comments on the latest posting, has CPU_OFF been tested, and
  does it work for _all_ CPUs (including CPU0)?
 
 At current version,
 CPU_OFF of Exynos5433 is not working. I'm now working to find the cause of 
 CPU_OFF fail.
 (I got CPU_ON of Exynos5433 all cores.)

CPU_OFF should not be described in the DT unless it works.

[...]

  +   soc: soc {
  +   compatible = simple-bus;
  +   #address-cells = 1;
  +   #size-cells = 1;
  +   ranges;
 
  Is that valid when changing the number of cells? The address spaces
  aren't strictly identical in that case, and I'd expect a translation
  something like:
 
  ranges = 0x0 0x0 0x0 0xff00;
 
 I'll fix it after checking correct spec.

Thanks.

[...]

  +   gic:interrupt-controller@11001000 {
  +   compatible = arm,gic-400;
  +   #interrupt-cells = 3;
  +   interrupt-controller;
  +   reg =   0x11001000 0x1000,
  +   0x11002000 0x1000,
  +   0x11004000 0x2000,
  +   0x11006000 0x2000;
  +   interrupts = 1 9 0xf04;
  +   };
 
  The GICC needs to be 0x2000 long to map the GICC_DIR, which is at
  0x1000-0x1003.
 
 Do you mean that following dt node is right for gic-400?
 
 reg =   0x11001000 0x1000,
 0x11002000 0x2000,- I changed the the range of 
 GICC.
 0x11004000 0x2000,
 0x11006000 0x2000;

Yes.

[...]

  +   pinctrl_alive: pinctrl@1058 {
  +   compatible = samsung,exynos5433-pinctrl;
  +   reg = 0x1058 0x1000;
  +
  +   wakeup-interrupt-controller {
  +   compatible = samsung,exynos7-wakeup-eint;
  +   interrupts = 0 16 0;
  +   };
  +   };
 
  How exactly does the wakeup interrupt controller interact with the GIC?
  Surely the relationship between the two should be described?
 
 The pinctrl_alive contains the alive part of GPIO PAD (gpa0~gpa3).
 
 The each GPA0/GPA1 of pinctrl_alive pad did map to unique SPI number of GIC
 amd GPA2/GPA3 use only one interrupt (SPI[16])  as following:
 
 +pinctrl_alive {
 +   gpa0: gpa0 {
 +   gpio-controller;
 +   #gpio-cells = 2;
 +
 +   interrupt-controller;
 +   interrupt-parent = gic;
 +   interrupts = 0 0 0, 0 1 0, 0 2 0, 0 3 0,
 +0 4 0, 0 5 0, 0 6 0, 0 7 0;
 +   #interrupt-cells = 2;
 +   };
 +
 +   gpa1: gpa1 {
 +   gpio-controller;
 +   #gpio-cells = 2;
 +
 +   interrupt-controller;
 +   interrupt-parent = gic;
 +   interrupts = 0 8 0, 0 9 0, 0 10 0, 0 11 0,
 +0 12 0, 0 13 0, 0 14 0, 0 15 0;
 +   #interrupt-cells = 2;
 +   };
 
 gpa0-0 - SPI[0]
 gpa0-1 - SPI[1]
 gpa0-2 - SPI[2]
 gpa0-3 - SPI[3]
 gpa0-4 - SPI[4]
 gpa0-5 - SPI[5]
 gpa0-6 - SPI[6]
 gpa0-7 - SPI[7]
 
 gpa1-0 - SPI[8]
 gpa1-1 - SPI[9]
 gpa1-2 - SPI[10]
 gpa1-3 - SPI[11]
 gpa1-4 - SPI[12]
 gpa1-5 - SPI[13]
 gpa1-6 - SPI[14]
 gpa1-7 - SPI[15]
 
 GPA2/GPA3 use only one interrupt (SPI[16]).
 
 The pinctrl-exynos.c driver initialized external wakeup interrupt
 (e.g., GPA0/GPA1/GPA2/GPA3 of Exynos5433) in exynos_eint_wkup_init() function.
 
 Following patch[1] adds the control for Exynos5433 wakeup irq.The 
 exynos5433_pin_ctrl structure
 includes '.eint_wkup_init = exynos_eint_wkup_init;' fields to handle wakeup 
 interrupt of Exynos SoC.
 
 [PATCHv2] pinctrl: exynos: Add support for Exynos543
 - https://lkml.org/lkml/2014/12/2/207
 
 +struct samsung_pin_ctrl exynos5433_pin_ctrl[] = {
 +   {
 +   /* pin-controller instance 0 data */
 +   .pin_banks  = exynos5433_pin_banks0,
 +   .nr_banks   = ARRAY_SIZE(exynos5433_pin_banks0),
 +   .eint_wkup_init = exynos_eint_wkup_init,
 +   .suspend= exynos_pinctrl_suspend,
 +   .resume = exynos_pinctrl_resume,
 +   .label  = exynos5433-gpio-ctrl0,
 +   }, {
 
 And,
 'struct exynos_irq_chip 

Re: [PATCH 14/19] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC

2014-12-02 Thread Chanwoo Choi
Dear Mark,

On Tue, Dec 2, 2014 at 9:13 PM, Mark Rutland mark.rutl...@arm.com wrote:
 Hi,

  +   psci {
  +   compatible = arm,psci;
  +   method = smc;
  +   cpu_off = 0x8402;
  +   cpu_on = 0xC403;
  +   };
 
  Given your comments on the latest posting, has CPU_OFF been tested, and
  does it work for _all_ CPUs (including CPU0)?

 At current version,
 CPU_OFF of Exynos5433 is not working. I'm now working to find the cause of 
 CPU_OFF fail.
 (I got CPU_ON of Exynos5433 all cores.)

 CPU_OFF should not be described in the DT unless it works.

OK, I'll drop 'cpu_off property on next patchset. After fixing it,
I'll re-send separate patch.


 [...]

  +   soc: soc {
  +   compatible = simple-bus;
  +   #address-cells = 1;
  +   #size-cells = 1;
  +   ranges;
 
  Is that valid when changing the number of cells? The address spaces
  aren't strictly identical in that case, and I'd expect a translation
  something like:
 
  ranges = 0x0 0x0 0x0 0xff00;

 I'll fix it after checking correct spec.

 Thanks.

 [...]

  +   gic:interrupt-controller@11001000 {
  +   compatible = arm,gic-400;
  +   #interrupt-cells = 3;
  +   interrupt-controller;
  +   reg =   0x11001000 0x1000,
  +   0x11002000 0x1000,
  +   0x11004000 0x2000,
  +   0x11006000 0x2000;
  +   interrupts = 1 9 0xf04;
  +   };
 
  The GICC needs to be 0x2000 long to map the GICC_DIR, which is at
  0x1000-0x1003.

 Do you mean that following dt node is right for gic-400?

 reg =   0x11001000 0x1000,
 0x11002000 0x2000,- I changed the the range 
 of GICC.
 0x11004000 0x2000,
 0x11006000 0x2000;

 Yes.

OK. I'll fix it.


 [...]

  +   pinctrl_alive: pinctrl@1058 {
  +   compatible = samsung,exynos5433-pinctrl;
  +   reg = 0x1058 0x1000;
  +
  +   wakeup-interrupt-controller {
  +   compatible = 
  samsung,exynos7-wakeup-eint;
  +   interrupts = 0 16 0;
  +   };
  +   };
 
  How exactly does the wakeup interrupt controller interact with the GIC?
  Surely the relationship between the two should be described?

 The pinctrl_alive contains the alive part of GPIO PAD (gpa0~gpa3).

 The each GPA0/GPA1 of pinctrl_alive pad did map to unique SPI number of GIC
 amd GPA2/GPA3 use only one interrupt (SPI[16])  as following:

 +pinctrl_alive {
 +   gpa0: gpa0 {
 +   gpio-controller;
 +   #gpio-cells = 2;
 +
 +   interrupt-controller;
 +   interrupt-parent = gic;
 +   interrupts = 0 0 0, 0 1 0, 0 2 0, 0 3 0,
 +0 4 0, 0 5 0, 0 6 0, 0 7 0;
 +   #interrupt-cells = 2;
 +   };
 +
 +   gpa1: gpa1 {
 +   gpio-controller;
 +   #gpio-cells = 2;
 +
 +   interrupt-controller;
 +   interrupt-parent = gic;
 +   interrupts = 0 8 0, 0 9 0, 0 10 0, 0 11 0,
 +0 12 0, 0 13 0, 0 14 0, 0 15 0;
 +   #interrupt-cells = 2;
 +   };

 gpa0-0 - SPI[0]
 gpa0-1 - SPI[1]
 gpa0-2 - SPI[2]
 gpa0-3 - SPI[3]
 gpa0-4 - SPI[4]
 gpa0-5 - SPI[5]
 gpa0-6 - SPI[6]
 gpa0-7 - SPI[7]

 gpa1-0 - SPI[8]
 gpa1-1 - SPI[9]
 gpa1-2 - SPI[10]
 gpa1-3 - SPI[11]
 gpa1-4 - SPI[12]
 gpa1-5 - SPI[13]
 gpa1-6 - SPI[14]
 gpa1-7 - SPI[15]

 GPA2/GPA3 use only one interrupt (SPI[16]).

 The pinctrl-exynos.c driver initialized external wakeup interrupt
 (e.g., GPA0/GPA1/GPA2/GPA3 of Exynos5433) in exynos_eint_wkup_init() 
 function.

 Following patch[1] adds the control for Exynos5433 wakeup irq.The 
 exynos5433_pin_ctrl structure
 includes '.eint_wkup_init = exynos_eint_wkup_init;' fields to handle wakeup 
 interrupt of Exynos SoC.

 [PATCHv2] pinctrl: exynos: Add support for Exynos543
 - https://lkml.org/lkml/2014/12/2/207

 +struct samsung_pin_ctrl exynos5433_pin_ctrl[] = {
 +   {
 +   /* pin-controller instance 0 data */
 +   .pin_banks  = exynos5433_pin_banks0,
 +   .nr_banks   = ARRAY_SIZE(exynos5433_pin_banks0),
 +   .eint_wkup_init = exynos_eint_wkup_init,
 +   .suspend=