aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Hilman <khilman@baylibre.com>2017-01-09 15:55:29 -0500
committerSekhar Nori <nsekhar@ti.com>2017-01-23 10:22:38 -0500
commit9c9b1bc25291e275b04f758f2549c81e092954f5 (patch)
tree400948a52e54c71b83c8881a1e77f19b4d248e04
parent7ce7d89f48834cefece7804d38fc5d85382edf77 (diff)
ARM: davinci: add skeleton for pdata-quirks
Add skeleton pdata-quirks for davinci. Signed-off-by: Kevin Hilman <khilman@baylibre.com> [nsekhar@ti.com: move changes to build pdata-quirks.c and call to pdata_quirks_init() to this patch] Signed-off-by: Sekhar Nori <nsekhar@ti.com>
-rw-r--r--arch/arm/mach-davinci/Makefile2
-rw-r--r--arch/arm/mach-davinci/da8xx-dt.c1
-rw-r--r--arch/arm/mach-davinci/include/mach/common.h2
-rw-r--r--arch/arm/mach-davinci/pdata-quirks.c39
4 files changed, 43 insertions, 1 deletions
diff --git a/arch/arm/mach-davinci/Makefile b/arch/arm/mach-davinci/Makefile
index 0a2e6da45f28..df96ca9eab6d 100644
--- a/arch/arm/mach-davinci/Makefile
+++ b/arch/arm/mach-davinci/Makefile
@@ -21,7 +21,7 @@ obj-$(CONFIG_AINTC) += irq.o
21obj-$(CONFIG_CP_INTC) += cp_intc.o 21obj-$(CONFIG_CP_INTC) += cp_intc.o
22 22
23# Board specific 23# Board specific
24obj-$(CONFIG_MACH_DA8XX_DT) += da8xx-dt.o 24obj-$(CONFIG_MACH_DA8XX_DT) += da8xx-dt.o pdata-quirks.o
25obj-$(CONFIG_MACH_DAVINCI_EVM) += board-dm644x-evm.o 25obj-$(CONFIG_MACH_DAVINCI_EVM) += board-dm644x-evm.o
26obj-$(CONFIG_MACH_SFFSDR) += board-sffsdr.o 26obj-$(CONFIG_MACH_SFFSDR) += board-sffsdr.o
27obj-$(CONFIG_MACH_NEUROS_OSD2) += board-neuros-osd2.o 27obj-$(CONFIG_MACH_NEUROS_OSD2) += board-neuros-osd2.o
diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c
index 9ee44da6eb7b..d2be1941a687 100644
--- a/arch/arm/mach-davinci/da8xx-dt.c
+++ b/arch/arm/mach-davinci/da8xx-dt.c
@@ -62,6 +62,7 @@ static void __init da850_init_machine(void)
62 62
63 of_platform_default_populate(NULL, da850_auxdata_lookup, NULL); 63 of_platform_default_populate(NULL, da850_auxdata_lookup, NULL);
64 davinci_pm_init(); 64 davinci_pm_init();
65 pdata_quirks_init();
65} 66}
66 67
67static const char *const da850_boards_compat[] __initconst = { 68static const char *const da850_boards_compat[] __initconst = {
diff --git a/arch/arm/mach-davinci/include/mach/common.h b/arch/arm/mach-davinci/include/mach/common.h
index 0b3c169758ed..037aa66bcac1 100644
--- a/arch/arm/mach-davinci/include/mach/common.h
+++ b/arch/arm/mach-davinci/include/mach/common.h
@@ -102,6 +102,8 @@ int davinci_pm_init(void);
102static inline int davinci_pm_init(void) { return 0; } 102static inline int davinci_pm_init(void) { return 0; }
103#endif 103#endif
104 104
105void __init pdata_quirks_init(void);
106
105#define SRAM_SIZE SZ_128K 107#define SRAM_SIZE SZ_128K
106 108
107#endif /* __ARCH_ARM_MACH_DAVINCI_COMMON_H */ 109#endif /* __ARCH_ARM_MACH_DAVINCI_COMMON_H */
diff --git a/arch/arm/mach-davinci/pdata-quirks.c b/arch/arm/mach-davinci/pdata-quirks.c
new file mode 100644
index 000000000000..5b57da475065
--- /dev/null
+++ b/arch/arm/mach-davinci/pdata-quirks.c
@@ -0,0 +1,39 @@
1/*
2 * Legacy platform_data quirks
3 *
4 * Copyright (C) 2016 BayLibre, Inc
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10#include <linux/kernel.h>
11#include <linux/of_platform.h>
12
13#include <mach/common.h>
14
15struct pdata_init {
16 const char *compatible;
17 void (*fn)(void);
18};
19
20static void pdata_quirks_check(struct pdata_init *quirks)
21{
22 while (quirks->compatible) {
23 if (of_machine_is_compatible(quirks->compatible)) {
24 if (quirks->fn)
25 quirks->fn();
26 break;
27 }
28 quirks++;
29 }
30}
31
32static struct pdata_init pdata_quirks[] __initdata = {
33 { /* sentinel */ },
34};
35
36void __init pdata_quirks_init(void)
37{
38 pdata_quirks_check(pdata_quirks);
39}