summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc/shared/amba/ambapp_freq.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/sparc/shared/amba/ambapp_freq.c')
-rw-r--r--c/src/lib/libbsp/sparc/shared/amba/ambapp_freq.c109
1 files changed, 0 insertions, 109 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/amba/ambapp_freq.c b/c/src/lib/libbsp/sparc/shared/amba/ambapp_freq.c
deleted file mode 100644
index 59db15f865..0000000000
--- a/c/src/lib/libbsp/sparc/shared/amba/ambapp_freq.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * AMBA Plug & Play routines
- *
- * COPYRIGHT (c) 2011
- * Aeroflex Gaisler
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#include <ambapp.h>
-
-/* Calculate AHB Bus frequency of
- * - Bus[0] (inverse=1), relative to the frequency of Bus[ahbidx]
- * NOTE: set freq_hz to frequency of Bus[ahbidx].
- * or
- * - Bus[ahbidx] (inverse=0), relative to the frequency of Bus[0]
- * NOTE: set freq_hz to frequency of Bus[0].
- *
- * If a unsupported bridge is found the invalid frequncy of 0Hz is
- * returned.
- */
-static unsigned int ambapp_freq_calc(
- struct ambapp_bus *abus,
- int ahbidx,
- unsigned int freq_hz,
- int inverse)
-{
- struct ambapp_ahb_info *ahb;
- struct ambapp_dev *bridge;
- unsigned char ffact;
- int dir;
-
- /* Found Bus0? */
- bridge = abus->ahbs[ahbidx].bridge;
- if (!bridge)
- return freq_hz;
-
- /* Find this bus frequency relative to freq_hz */
- if ((bridge->vendor == VENDOR_GAISLER) &&
- ((bridge->device == GAISLER_AHB2AHB) ||
- (bridge->device == GAISLER_L2CACHE))) {
- ahb = DEV_TO_AHB(bridge);
- ffact = (ahb->custom[0] & AMBAPP_FLAG_FFACT) >> 4;
- if (ffact != 0) {
- dir = ahb->custom[0] & AMBAPP_FLAG_FFACT_DIR;
-
- /* Calculate frequency by dividing or
- * multiplying system frequency
- */
- if ((dir && !inverse) || (!dir && inverse))
- freq_hz = freq_hz * ffact;
- else
- freq_hz = freq_hz / ffact;
- }
- return ambapp_freq_calc(abus, ahb->ahbidx, freq_hz, inverse);
- } else {
- /* Unknown bridge, impossible to calc frequency */
- return 0;
- }
-}
-
-/* Find the frequency of all AHB Buses from knowing the frequency of one
- * particular APB/AHB Device.
- */
-void ambapp_freq_init(
- struct ambapp_bus *abus,
- struct ambapp_dev *dev,
- unsigned int freq_hz)
-{
- struct ambapp_common_info *info;
- int i;
-
- for (i=0; i<AHB_BUS_MAX; i++)
- abus->ahbs[i].freq_hz = 0;
-
- /* Register Frequency at the AHB bus that the device the user gave us
- * is located at.
- */
- if (dev) {
- info = DEV_TO_COMMON(dev);
- abus->ahbs[info->ahbidx].freq_hz = freq_hz;
-
- /* Find Frequency of Bus 0 */
- abus->ahbs[0].freq_hz = ambapp_freq_calc(abus, info->ahbidx, freq_hz, 1);
- } else {
- abus->ahbs[0].freq_hz = freq_hz;
- }
-
- /* Find Frequency of all except for Bus0 and the bus which frequency
- * was reported at
- */
- for (i=1; i<AHB_BUS_MAX; i++) {
- if (abus->ahbs[i].ioarea == 0)
- break;
- if (abus->ahbs[i].freq_hz != 0)
- continue;
- abus->ahbs[i].freq_hz = ambapp_freq_calc(abus, i, abus->ahbs[0].freq_hz, 0);
- }
-}
-
-/* Assign a AMBA Bus a frequency but reporting the frequency of a
- * particular AHB/APB device */
-unsigned int ambapp_freq_get(struct ambapp_bus *abus, struct ambapp_dev *dev)
-{
- struct ambapp_common_info *info = DEV_TO_COMMON(dev);
- return abus->ahbs[info->ahbidx].freq_hz;
-}