summaryrefslogtreecommitdiff
path: root/arch/arm/cpu/armv7/vybrid/asm-offsets.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/cpu/armv7/vybrid/asm-offsets.c')
-rw-r--r--arch/arm/cpu/armv7/vybrid/asm-offsets.c70
1 files changed, 70 insertions, 0 deletions
diff --git a/arch/arm/cpu/armv7/vybrid/asm-offsets.c b/arch/arm/cpu/armv7/vybrid/asm-offsets.c
new file mode 100644
index 0000000000..778c75b26f
--- /dev/null
+++ b/arch/arm/cpu/armv7/vybrid/asm-offsets.c
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2012 Freescale Semiconductor, Inc.
+ * Adapted from Linux v2.6.36 kernel: arch/powerpc/kernel/asm-offsets.c
+ *
+ * This program is used to generate definitions needed by
+ * assembly language modules.
+ *
+ * We use the technique used in the OSF Mach kernel code:
+ * generate asm statements containing #defines,
+ * compile this file to assembler, and then extract the
+ * #defines from the assembly-language output.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ */
+
+#include <common.h>
+#include <asm/arch/vybrid-regs.h>
+
+#include <linux/kbuild.h>
+
+int main(void)
+{
+ /* Round up to make sure size gives nice stack alignment */
+ DEFINE(CLKCTL_CCR, offsetof(struct clkctl, ccr));
+ DEFINE(CLKCTL_CSR, offsetof(struct clkctl, csr));
+ DEFINE(CLKCTL_CCSR, offsetof(struct clkctl, ccsr));
+ DEFINE(CLKCTL_CACRR, offsetof(struct clkctl, cacrr));
+ DEFINE(CLKCTL_CSCMR1, offsetof(struct clkctl, cscmr1));
+ DEFINE(CLKCTL_CSCDR1, offsetof(struct clkctl, cscdr1));
+ DEFINE(CLKCTL_CSCDR2, offsetof(struct clkctl, cscdr2));
+ DEFINE(CLKCTL_CSCDR3, offsetof(struct clkctl, cscdr3));
+ DEFINE(CLKCTL_CSCMR2, offsetof(struct clkctl, cscmr2));
+ DEFINE(CLKCTL_CSCDR4, offsetof(struct clkctl, cscdr4));
+ DEFINE(CLKCTL_CTOR, offsetof(struct clkctl, ctor));
+ DEFINE(CLKCTL_CLPCR, offsetof(struct clkctl, clpcr));
+ DEFINE(CLKCTL_CISR, offsetof(struct clkctl, cisr));
+ DEFINE(CLKCTL_CIMR, offsetof(struct clkctl, cimr));
+ DEFINE(CLKCTL_CCOSR, offsetof(struct clkctl, ccosr));
+
+ DEFINE(CLKCTL_CGPR, offsetof(struct clkctl, cgpr));
+ DEFINE(CLKCTL_CCGR0, offsetof(struct clkctl, ccgr0));
+ DEFINE(CLKCTL_CCGR1, offsetof(struct clkctl, ccgr1));
+ DEFINE(CLKCTL_CCGR2, offsetof(struct clkctl, ccgr2));
+ DEFINE(CLKCTL_CCGR3, offsetof(struct clkctl, ccgr3));
+ DEFINE(CLKCTL_CCGR4, offsetof(struct clkctl, ccgr4));
+ DEFINE(CLKCTL_CCGR5, offsetof(struct clkctl, ccgr5));
+ DEFINE(CLKCTL_CCGR6, offsetof(struct clkctl, ccgr6));
+ DEFINE(CLKCTL_CCGR7, offsetof(struct clkctl, ccgr7));
+ DEFINE(CLKCTL_CCGR8, offsetof(struct clkctl, ccgr8));
+ DEFINE(CLKCTL_CCGR9, offsetof(struct clkctl, ccgr9));
+ DEFINE(CLKCTL_CCGR10, offsetof(struct clkctl, ccgr10));
+ DEFINE(CLKCTL_CCGR11, offsetof(struct clkctl, ccgr11));
+ DEFINE(CLKCTL_CMEOR0, offsetof(struct clkctl, cmeor0));
+ DEFINE(CLKCTL_CMEOR1, offsetof(struct clkctl, cmeor1));
+ DEFINE(CLKCTL_CMEOR2, offsetof(struct clkctl, cmeor2));
+ DEFINE(CLKCTL_CMEOR3, offsetof(struct clkctl, cmeor3));
+ DEFINE(CLKCTL_CMEOR4, offsetof(struct clkctl, cmeor4));
+ DEFINE(CLKCTL_CMEOR5, offsetof(struct clkctl, cmeor5));
+ DEFINE(CLKCTL_CPPDSR, offsetof(struct clkctl, cppdsr));
+ DEFINE(CLKCTL_CCOWR, offsetof(struct clkctl, ccowr));
+ DEFINE(CLKCTL_CCPGR0, offsetof(struct clkctl, ccpgr0));
+ DEFINE(CLKCTL_CCPGR1, offsetof(struct clkctl, ccpgr1));
+ DEFINE(CLKCTL_CCPGR2, offsetof(struct clkctl, ccpgr2));
+ DEFINE(CLKCTL_CCPGR3, offsetof(struct clkctl, ccpgr3));
+
+ return 0;
+}