1/*  *********************************************************************
2    *  Broadcom Common Firmware Environment (CFE)
3    *
4    *  Board device initialization		File: bcm91280e_pci.c
5    *
6    *  This is the part of the board support package for boards
7    *  that support PCI. It describes the board-specific slots/devices
8    *  and wiring thereof.
9    *
10    *********************************************************************
11    *
12    *  Copyright 2000,2001,2002,2003
13    *  Broadcom Corporation. All rights reserved.
14    *
15    *  This software is furnished under license and may be used and
16    *  copied only in accordance with the following terms and
17    *  conditions.  Subject to these conditions, you may download,
18    *  copy, install, use, modify and distribute modified or unmodified
19    *  copies of this software in source and/or binary form.  No title
20    *  or ownership is transferred hereby.
21    *
22    *  1) Any source code used, modified or distributed must reproduce
23    *     and retain this copyright notice and list of conditions
24    *     as they appear in the source file.
25    *
26    *  2) No right is granted to use any trade name, trademark, or
27    *     logo of Broadcom Corporation.  The "Broadcom Corporation"
28    *     name may not be used to endorse or promote products derived
29    *     from this software without the prior written permission of
30    *     Broadcom Corporation.
31    *
32    *  3) THIS SOFTWARE IS PROVIDED "AS-IS" AND ANY EXPRESS OR
33    *     IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED
34    *     WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
35    *     PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT
36    *     SHALL BROADCOM BE LIABLE FOR ANY DAMAGES WHATSOEVER, AND IN
37    *     PARTICULAR, BROADCOM SHALL NOT BE LIABLE FOR DIRECT, INDIRECT,
38    *     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
39    *     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
40    *     GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
41    *     BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
42    *     OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
43    *     TORT (INCLUDING NEGLIGENCE OR OTHERWISE), EVEN IF ADVISED OF
44    *     THE POSSIBILITY OF SUCH DAMAGE.
45    ********************************************************************* */
46
47#include "cfe.h"
48
49#include "sbmips.h"
50#include "bcm91280e.h"
51#include "bcm1480_regs.h"
52
53#include "pcireg.h"
54#include "pcivar.h"
55#include "pci_internal.h"
56
57/* PCI interrupt mapping on the Cupertino (BCM91280E) board:
58   The BCM91280E is wired for PCI Device mode and has no interrupt
59   inputs.
60*/
61
62/* Return the base shift of a slot or device on the motherboard.
63   This is board specific, for the bcm91280e only. */
64uint8_t
65pci_int_shift_0(pcitag_t tag)
66{
67    return 0;
68}
69
70/* Return the mapping of a bcm91280e device/function interrupt to an
71   interrupt line.  For the BCM1480, return 1-4 to indicate the
72   pci_inta - pci_intd inputs to the interrupt mapper, respectively,
73   or 0 if there is no mapping. */
74uint8_t
75pci_int_map_0(pcitag_t tag)
76{
77    return 0;
78}
79
80/* PCI-X clock initialization functions. */
81
82void
83pci_clock_reset(void)
84{
85    /* Device mode: no on-board clock generator. */
86}
87
88void
89pci_clock_enable(int on)
90{
91    /* No separate enable. */
92}
93
94unsigned int
95pci_clock_select(unsigned int freq)
96{
97    unsigned int selected;
98
99    /* Clear and selectively reset the controlling GPIO pins. */
100
101
102    if (freq >= 133) {
103	selected = 133;
104	}
105    else if (freq >= 100) {
106	selected = 100;
107	}
108    else if (freq >= 66) {
109	selected = 66;
110	}
111    else {
112	selected = 33;
113	}
114
115    return selected;
116}
117
118
119/* Local HT topology (master/slave) information. */
120
121int
122ldt_slave_mode(int port)
123{
124    /* For now, all ports are nominally masters. */
125
126    return 0;
127}
128