summaryrefslogtreecommitdiff
path: root/target/linux/brcm2708/patches-3.18/0051-BCM2708-use-pinctrl-bcm2835.patch
blob: 9c1b03777d56f124a6ddac2ceebb88456076d6a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
From fff70fcc73e09e86d46f87dd44459870f15423b2 Mon Sep 17 00:00:00 2001
From: notro <notro@tronnes.org>
Date: Thu, 10 Jul 2014 13:59:47 +0200
Subject: [PATCH 051/114] BCM2708: use pinctrl-bcm2835

Use pinctrl-bcm2835 instead of the pinctrl-bcm2708 and bcm2708_gpio
combination.

Signed-off-by: Noralf Tronnes <notro@tronnes.org>
---
 arch/arm/boot/dts/bcm2708.dtsi    | 12 ++++++++++++
 arch/arm/mach-bcm2708/Kconfig     |  3 +++
 arch/arm/mach-bcm2708/bcm2708.c   |  2 +-
 drivers/pinctrl/pinctrl-bcm2835.c |  2 +-
 4 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/bcm2708.dtsi b/arch/arm/boot/dts/bcm2708.dtsi
index a06f5b8..b2920c8 100644
--- a/arch/arm/boot/dts/bcm2708.dtsi
+++ b/arch/arm/boot/dts/bcm2708.dtsi
@@ -26,6 +26,18 @@
 			interrupt-controller;
 			#interrupt-cells = <2>;
 		};
+
+		gpio: gpio {
+			compatible = "brcm,bcm2835-gpio";
+			reg = <0x7e200000 0xb4>;
+			interrupts = <2 17>, <2 18>;
+
+			gpio-controller;
+			#gpio-cells = <2>;
+
+			interrupt-controller;
+			#interrupt-cells = <2>;
+		};
 	};
 
 	clocks {
diff --git a/arch/arm/mach-bcm2708/Kconfig b/arch/arm/mach-bcm2708/Kconfig
index 182e7ba..4cfae55 100644
--- a/arch/arm/mach-bcm2708/Kconfig
+++ b/arch/arm/mach-bcm2708/Kconfig
@@ -14,6 +14,9 @@ config BCM2708_DT
 	depends on MACH_BCM2708
 	default n
 	select USE_OF
+	select ARCH_REQUIRE_GPIOLIB
+	select PINCTRL
+	select PINCTRL_BCM2835
 	help
 	  Enable Device Tree support for BCM2708
 
diff --git a/arch/arm/mach-bcm2708/bcm2708.c b/arch/arm/mach-bcm2708/bcm2708.c
index 747e27a..0e5bd43 100644
--- a/arch/arm/mach-bcm2708/bcm2708.c
+++ b/arch/arm/mach-bcm2708/bcm2708.c
@@ -767,7 +767,7 @@ void __init bcm2708_init(void)
 	bcm_register_device(&bcm2708_dmaman_device);
 	bcm_register_device(&bcm2708_vcio_device);
 #ifdef CONFIG_BCM2708_GPIO
-	bcm_register_device(&bcm2708_gpio_device);
+	bcm_register_device_dt(&bcm2708_gpio_device);
 #endif
 #if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE)
 	w1_gpio_pdata.pin = w1_gpio_pin;
diff --git a/drivers/pinctrl/pinctrl-bcm2835.c b/drivers/pinctrl/pinctrl-bcm2835.c
index eabba02..962e180 100644
--- a/drivers/pinctrl/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/pinctrl-bcm2835.c
@@ -382,7 +382,7 @@ static struct gpio_chip bcm2835_gpio_chip = {
 	.get = bcm2835_gpio_get,
 	.set = bcm2835_gpio_set,
 	.to_irq = bcm2835_gpio_to_irq,
-	.base = -1,
+	.base = 0,
 	.ngpio = BCM2835_NUM_GPIOS,
 	.can_sleep = false,
 };
-- 
1.8.3.2