aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/boot/dts/ste-nomadik-stn8815.dtsi52
-rw-r--r--arch/arm/mach-nomadik/cpu-8815.c21
-rw-r--r--drivers/pinctrl/pinctrl-nomadik.c4
3 files changed, 73 insertions, 4 deletions
diff --git a/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi b/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi
index c73df370373b..2c8aaa5c6ac4 100644
--- a/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi
+++ b/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi
@@ -35,6 +35,58 @@
35 interrupts = <5>; 35 interrupts = <5>;
36 }; 36 };
37 37
38 gpio0: gpio@101e4000 {
39 compatible = "st,nomadik-gpio";
40 reg = <0x101e4000 0x80>;
41 interrupt-parent = <&vica>;
42 interrupts = <6>;
43 interrupt-controller;
44 #interrupt-cells = <2>;
45 gpio-controller;
46 #gpio-cells = <2>;
47 gpio-bank = <0>;
48 };
49
50 gpio1: gpio@101e5000 {
51 compatible = "st,nomadik-gpio";
52 reg = <0x101e5000 0x80>;
53 interrupt-parent = <&vica>;
54 interrupts = <7>;
55 interrupt-controller;
56 #interrupt-cells = <2>;
57 gpio-controller;
58 #gpio-cells = <2>;
59 gpio-bank = <1>;
60 };
61
62 gpio2: gpio@101e6000 {
63 compatible = "st,nomadik-gpio";
64 reg = <0x101e6000 0x80>;
65 interrupt-parent = <&vica>;
66 interrupts = <8>;
67 interrupt-controller;
68 #interrupt-cells = <2>;
69 gpio-controller;
70 #gpio-cells = <2>;
71 gpio-bank = <2>;
72 };
73
74 gpio3: gpio@101e7000 {
75 compatible = "st,nomadik-gpio";
76 reg = <0x101e7000 0x80>;
77 interrupt-parent = <&vica>;
78 interrupts = <9>;
79 interrupt-controller;
80 #interrupt-cells = <2>;
81 gpio-controller;
82 #gpio-cells = <2>;
83 gpio-bank = <3>;
84 };
85
86 pinctrl {
87 compatible = "stericsson,nmk-pinctrl-stn8815";
88 };
89
38 /* A NAND flash of 128 MiB */ 90 /* A NAND flash of 128 MiB */
39 fsmc: flash@40000000 { 91 fsmc: flash@40000000 {
40 compatible = "stericsson,fsmc-nand"; 92 compatible = "stericsson,fsmc-nand";
diff --git a/arch/arm/mach-nomadik/cpu-8815.c b/arch/arm/mach-nomadik/cpu-8815.c
index a3894ca45bb8..3a59459d6e9a 100644
--- a/arch/arm/mach-nomadik/cpu-8815.c
+++ b/arch/arm/mach-nomadik/cpu-8815.c
@@ -153,13 +153,15 @@ static int __init cpu8815_init(void)
153 /* No custom data yet */ 153 /* No custom data yet */
154 }; 154 };
155 155
156 /* For e.g. device tree boots */
157 if (!machine_is_nomadik())
158 return 0;
159
156 cpu8815_add_gpios(cpu8815_gpio_base, ARRAY_SIZE(cpu8815_gpio_base), 160 cpu8815_add_gpios(cpu8815_gpio_base, ARRAY_SIZE(cpu8815_gpio_base),
157 IRQ_GPIO0, &pdata); 161 IRQ_GPIO0, &pdata);
158 cpu8815_add_pinctrl(NULL, "pinctrl-stn8815"); 162 cpu8815_add_pinctrl(NULL, "pinctrl-stn8815");
159 if (machine_is_nomadik()) { 163 amba_apb_device_add(NULL, "rng", NOMADIK_RNG_BASE, SZ_4K, 0, 0, NULL, 0);
160 amba_apb_device_add(NULL, "rng", NOMADIK_RNG_BASE, SZ_4K, 0, 0, NULL, 0); 164 amba_apb_device_add(NULL, "rtc-pl031", NOMADIK_RTC_BASE, SZ_4K, IRQ_RTC_RTT, 0, NULL, 0);
161 amba_apb_device_add(NULL, "rtc-pl031", NOMADIK_RTC_BASE, SZ_4K, IRQ_RTC_RTT, 0, NULL, 0);
162 }
163 return 0; 165 return 0;
164} 166}
165arch_initcall(cpu8815_init); 167arch_initcall(cpu8815_init);
@@ -263,6 +265,16 @@ static struct fsmc_nand_platform_data cpu8815_nand_data = {
263 265
264/* These are mostly to get the right device names for the clock lookups */ 266/* These are mostly to get the right device names for the clock lookups */
265static struct of_dev_auxdata cpu8815_auxdata_lookup[] __initdata = { 267static struct of_dev_auxdata cpu8815_auxdata_lookup[] __initdata = {
268 OF_DEV_AUXDATA("st,nomadik-gpio", NOMADIK_GPIO0_BASE,
269 "gpio.0", NULL),
270 OF_DEV_AUXDATA("st,nomadik-gpio", NOMADIK_GPIO1_BASE,
271 "gpio.1", NULL),
272 OF_DEV_AUXDATA("st,nomadik-gpio", NOMADIK_GPIO2_BASE,
273 "gpio.2", NULL),
274 OF_DEV_AUXDATA("st,nomadik-gpio", NOMADIK_GPIO3_BASE,
275 "gpio.3", NULL),
276 OF_DEV_AUXDATA("stericsson,nmk-pinctrl-stn8815", 0,
277 "pinctrl-stn8815", NULL),
266 OF_DEV_AUXDATA("arm,primecell", NOMADIK_UART0_BASE, 278 OF_DEV_AUXDATA("arm,primecell", NOMADIK_UART0_BASE,
267 "uart0", NULL), 279 "uart0", NULL),
268 OF_DEV_AUXDATA("arm,primecell", NOMADIK_UART1_BASE, 280 OF_DEV_AUXDATA("arm,primecell", NOMADIK_UART1_BASE,
@@ -283,6 +295,7 @@ static void __init cpu8815_init_of(void)
283 /* At full speed latency must be >=2, so 0x249 in low bits */ 295 /* At full speed latency must be >=2, so 0x249 in low bits */
284 l2x0_of_init(0x00730249, 0xfe000fff); 296 l2x0_of_init(0x00730249, 0xfe000fff);
285#endif 297#endif
298 pinctrl_register_mappings(nhk8815_pinmap, ARRAY_SIZE(nhk8815_pinmap));
286 of_platform_populate(NULL, of_default_bus_match_table, 299 of_platform_populate(NULL, of_default_bus_match_table,
287 cpu8815_auxdata_lookup, NULL); 300 cpu8815_auxdata_lookup, NULL);
288} 301}
diff --git a/drivers/pinctrl/pinctrl-nomadik.c b/drivers/pinctrl/pinctrl-nomadik.c
index 1bb16ffb4e41..ef21a662b974 100644
--- a/drivers/pinctrl/pinctrl-nomadik.c
+++ b/drivers/pinctrl/pinctrl-nomadik.c
@@ -1846,6 +1846,10 @@ static struct pinctrl_desc nmk_pinctrl_desc = {
1846 1846
1847static const struct of_device_id nmk_pinctrl_match[] = { 1847static const struct of_device_id nmk_pinctrl_match[] = {
1848 { 1848 {
1849 .compatible = "stericsson,nmk-pinctrl-stn8815",
1850 .data = (void *)PINCTRL_NMK_STN8815,
1851 },
1852 {
1849 .compatible = "stericsson,nmk_pinctrl", 1853 .compatible = "stericsson,nmk_pinctrl",
1850 .data = (void *)PINCTRL_NMK_DB8500, 1854 .data = (void *)PINCTRL_NMK_DB8500,
1851 }, 1855 },