arm: zynq: Move common ps7_init* initialization to arch code
[oweals/u-boot.git] / board / topic / zynq / ps7_init_common.c
diff --git a/board/topic/zynq/ps7_init_common.c b/board/topic/zynq/ps7_init_common.c
deleted file mode 100644 (file)
index b1d45c2..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * (c) Copyright 2010-2014 Xilinx, Inc. All rights reserved.
- * (c) Copyright 2016 Topic Embedded Products.
- *
- * SPDX-License-Identifier:    GPL-2.0+
- */
-
-#include "ps7_init_gpl.h"
-#include <asm/io.h>
-
-/* For delay calculation using global registers*/
-#define SCU_GLOBAL_TIMER_COUNT_L32     0xF8F00200
-#define SCU_GLOBAL_TIMER_COUNT_U32     0xF8F00204
-#define SCU_GLOBAL_TIMER_CONTROL       0xF8F00208
-#define SCU_GLOBAL_TIMER_AUTO_INC      0xF8F00218
-#define APU_FREQ  666666666
-
-#define PS7_MASK_POLL_TIME 100000000
-
-/* IO accessors. No memory barriers desired. */
-static inline void iowrite(unsigned long val, unsigned long addr)
-{
-       __raw_writel(val, addr);
-}
-
-static inline unsigned long ioread(unsigned long addr)
-{
-       return __raw_readl(addr);
-}
-
-/* start timer */
-static void perf_start_clock(void)
-{
-       iowrite((1 << 0) | /* Timer Enable */
-               (1 << 3) | /* Auto-increment */
-               (0 << 8), /* Pre-scale */
-               SCU_GLOBAL_TIMER_CONTROL);
-}
-
-/* Compute mask for given delay in miliseconds*/
-static int get_number_of_cycles_for_delay(unsigned int delay)
-{
-       return (APU_FREQ / (2 * 1000)) * delay;
-}
-
-/* stop timer */
-static void perf_disable_clock(void)
-{
-       iowrite(0, SCU_GLOBAL_TIMER_CONTROL);
-}
-
-/* stop timer and reset timer count regs */
-static void perf_reset_clock(void)
-{
-       perf_disable_clock();
-       iowrite(0, SCU_GLOBAL_TIMER_COUNT_L32);
-       iowrite(0, SCU_GLOBAL_TIMER_COUNT_U32);
-}
-
-static void perf_reset_and_start_timer(void)
-{
-       perf_reset_clock();
-       perf_start_clock();
-}
-
-int ps7_config(unsigned long *ps7_config_init)
-{
-       unsigned long *ptr = ps7_config_init;
-       unsigned long opcode;
-       unsigned long addr;
-       unsigned long val;
-       unsigned long mask;
-       unsigned int numargs;
-       int i;
-       int delay;
-
-       for (;;) {
-               opcode = ptr[0];
-               if (opcode == OPCODE_EXIT)
-                       return PS7_INIT_SUCCESS;
-               addr = (opcode & OPCODE_ADDRESS_MASK);
-
-               switch (opcode & ~OPCODE_ADDRESS_MASK) {
-               case OPCODE_MASKWRITE:
-                       numargs = 3;
-                       mask = ptr[1];
-                       val = ptr[2];
-                       iowrite((ioread(addr) & ~mask) | (val & mask), addr);
-                       break;
-
-               case OPCODE_MASKPOLL:
-                       numargs = 2;
-                       mask = ptr[1];
-                       i = 0;
-                       while (!(ioread(addr) & mask)) {
-                               if (i == PS7_MASK_POLL_TIME)
-                                       return PS7_INIT_TIMEOUT;
-                               i++;
-                       }
-                       break;
-
-               case OPCODE_MASKDELAY:
-                       numargs = 2;
-                       mask = ptr[1];
-                       delay = get_number_of_cycles_for_delay(mask);
-                       perf_reset_and_start_timer();
-                       while (ioread(addr) < delay)
-                               ;
-                       break;
-
-               default:
-                       return PS7_INIT_CORRUPT;
-               }
-
-               ptr += numargs;
-       }
-}