sibavar.h revision 203944
1183371Simp/*-
2183371Simp * Copyright (c) 2007 Bruce M. Simpson.
3183371Simp * All rights reserved.
4183371Simp *
5183371Simp * Redistribution and use in source and binary forms, with or without
6183371Simp * modification, are permitted provided that the following conditions
7183371Simp * are met:
8183371Simp * 1. Redistributions of source code must retain the above copyright
9183371Simp *    notice, this list of conditions and the following disclaimer.
10183371Simp * 2. Redistributions in binary form must reproduce the above copyright
11183371Simp *    notice, this list of conditions and the following disclaimer in the
12183371Simp *    documentation and/or other materials provided with the distribution.
13183371Simp *
14183371Simp * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15183371Simp * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16183371Simp * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17183371Simp * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18183371Simp * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19183371Simp * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20183371Simp * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21183371Simp * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22183371Simp * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23183371Simp * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24183371Simp * SUCH DAMAGE.
25183371Simp *
26183371Simp * $FreeBSD: head/sys/dev/siba/sibavar.h 203944 2010-02-16 01:22:33Z weongyo $
27183371Simp */
28183371Simp
29183371Simp#ifndef _SIBA_SIBAVAR_H_
30183371Simp#define _SIBA_SIBAVAR_H_
31183371Simp
32183371Simp#include <sys/rman.h>
33183371Simp
34203319Sweongyostruct siba_softc;
35203319Sweongyostruct siba_dev_softc;
36183371Simp
37203319Sweongyoenum siba_device_ivars {
38203319Sweongyo	SIBA_IVAR_VENDOR,
39203319Sweongyo	SIBA_IVAR_DEVICE,
40203319Sweongyo	SIBA_IVAR_REVID,
41203319Sweongyo	SIBA_IVAR_CORE_INDEX
42183371Simp};
43183371Simp
44203319Sweongyo#define	SIBA_ACCESSOR(var, ivar, type)				\
45203319Sweongyo	__BUS_ACCESSOR(siba, var, SIBA, ivar, type)
46183371Simp
47203319SweongyoSIBA_ACCESSOR(vendor,		VENDOR,		uint16_t)
48203319SweongyoSIBA_ACCESSOR(device,		DEVICE,		uint16_t)
49203319SweongyoSIBA_ACCESSOR(revid,		REVID,		uint8_t)
50203319SweongyoSIBA_ACCESSOR(core_index,	CORE_INDEX,	uint8_t)
51203319Sweongyo
52203319Sweongyo#undef SIBA_ACCESSOR
53203319Sweongyo
54203319Sweongyo/* XXX just for SPROM1? */
55203319Sweongyoenum {
56203319Sweongyo	SIBA_CCODE_WORLD,
57203319Sweongyo	SIBA_CCODE_THAILAND,
58203319Sweongyo	SIBA_CCODE_ISRAEL,
59203319Sweongyo	SIBA_CCODE_JORDAN,
60203319Sweongyo	SIBA_CCODE_CHINA,
61203319Sweongyo	SIBA_CCODE_JAPAN,
62203319Sweongyo	SIBA_CCODE_USA_CANADA_ANZ,
63203319Sweongyo	SIBA_CCODE_EUROPE,
64203319Sweongyo	SIBA_CCODE_USA_LOW,
65203319Sweongyo	SIBA_CCODE_JAPAN_HIGH,
66203319Sweongyo	SIBA_CCODE_ALL,
67203319Sweongyo	SIBA_CCODE_NONE,
68183371Simp};
69183371Simp
70203319Sweongyo#define siba_mips_read_2(sc, core, reg)				\
71203319Sweongyo	bus_space_read_2((sc)->siba_mem_bt, (sc)->siba_mem_bh,	\
72183371Simp			 (core * SIBA_CORE_LEN) + (reg))
73183371Simp
74203319Sweongyo#define siba_mips_read_4(sc, core, reg)				\
75203319Sweongyo	bus_space_read_4((sc)->siba_mem_bt, (sc)->siba_mem_bh,	\
76183371Simp			 (core * SIBA_CORE_LEN) + (reg))
77183371Simp
78203319Sweongyo#define siba_mips_write_2(sc, core, reg, val)			\
79203319Sweongyo	bus_space_write_2((sc)->siba_mem_bt, (sc)->siba_mem_bh,	\
80183371Simp			 (core * SIBA_CORE_LEN) + (reg), (val))
81183371Simp
82203319Sweongyo#define siba_mips_write_4(sc, core, reg, val)			\
83203319Sweongyo	bus_space_write_4((sc)->siba_mem_bt, (sc)->siba_mem_bh,	\
84183371Simp			 (core * SIBA_CORE_LEN) + (reg), (val))
85183371Simp
86203319Sweongyo#define	SIBA_READ_4(siba, reg)		\
87203319Sweongyo	bus_space_read_4((siba)->siba_mem_bt, (siba)->siba_mem_bh, (reg))
88203319Sweongyo#define	SIBA_READ_2(siba, reg)		\
89203319Sweongyo	bus_space_read_2((siba)->siba_mem_bt, (siba)->siba_mem_bh, (reg))
90203319Sweongyo#define	SIBA_READ_MULTI_1(siba, reg, addr, count)			\
91203319Sweongyo	bus_space_read_multi_1((siba)->siba_mem_bt, (siba)->siba_mem_bh,\
92203319Sweongyo	    (reg), (addr), (count))
93203319Sweongyo#define	SIBA_READ_MULTI_2(siba, reg, addr, count)			\
94203319Sweongyo	bus_space_read_multi_2((siba)->siba_mem_bt, (siba)->siba_mem_bh,\
95203319Sweongyo	    (reg), (addr), (count))
96203319Sweongyo#define	SIBA_READ_MULTI_4(siba, reg, addr, count)			\
97203319Sweongyo	bus_space_read_multi_4((siba)->siba_mem_bt, (siba)->siba_mem_bh,\
98203319Sweongyo	    (reg), (addr), (count))
99203319Sweongyo
100203319Sweongyo#define	SIBA_WRITE_4(siba, reg, val)	\
101203319Sweongyo	bus_space_write_4((siba)->siba_mem_bt, (siba)->siba_mem_bh,	\
102203319Sweongyo	    (reg), (val))
103203319Sweongyo#define	SIBA_WRITE_2(siba, reg, val)	\
104203319Sweongyo	bus_space_write_2((siba)->siba_mem_bt, (siba)->siba_mem_bh,	\
105203319Sweongyo	    (reg), (val))
106203319Sweongyo#define	SIBA_WRITE_MULTI_1(siba, reg, addr, count)			\
107203319Sweongyo	bus_space_write_multi_1((siba)->siba_mem_bt, (siba)->siba_mem_bh,\
108203319Sweongyo	    (reg), (addr), (count))
109203319Sweongyo#define	SIBA_WRITE_MULTI_2(siba, reg, addr, count)			\
110203319Sweongyo	bus_space_write_multi_2((siba)->siba_mem_bt, (siba)->siba_mem_bh,\
111203319Sweongyo	    (reg), (addr), (count))
112203319Sweongyo#define	SIBA_WRITE_MULTI_4(siba, reg, addr, count)			\
113203319Sweongyo	bus_space_write_multi_4((siba)->siba_mem_bt, (siba)->siba_mem_bh,\
114203319Sweongyo	    (reg), (addr), (count))
115203319Sweongyo
116203319Sweongyo#define	SIBA_BARRIER(siba, flags)					\
117203319Sweongyo	bus_space_barrier((siba)->siba_mem_bt, (siba)->siba_mem_bh, (0),\
118203319Sweongyo	    (0), (flags))
119203319Sweongyo
120203319Sweongyo#define	SIBA_SETBITS_4(siba, reg, bits)	\
121203319Sweongyo	SIBA_WRITE_4((siba), (reg), SIBA_READ_4((siba), (reg)) | (bits))
122203319Sweongyo#define	SIBA_SETBITS_2(siba, reg, bits)	\
123203319Sweongyo	SIBA_WRITE_2((siba), (reg), SIBA_READ_2((siba), (reg)) | (bits))
124203319Sweongyo
125203319Sweongyo#define	SIBA_FILT_SETBITS_4(siba, reg, filt, bits) \
126203319Sweongyo	SIBA_WRITE_4((siba), (reg), (SIBA_READ_4((siba),	\
127203319Sweongyo	    (reg)) & (filt)) | (bits))
128203319Sweongyo#define	SIBA_FILT_SETBITS_2(siba, reg, filt, bits)	\
129203319Sweongyo	SIBA_WRITE_2((siba), (reg), (SIBA_READ_2((siba),	\
130203319Sweongyo	    (reg)) & (filt)) | (bits))
131203319Sweongyo
132203319Sweongyo#define	SIBA_CLRBITS_4(siba, reg, bits)	\
133203319Sweongyo	SIBA_WRITE_4((siba), (reg), SIBA_READ_4((siba), (reg)) & ~(bits))
134203319Sweongyo#define	SIBA_CLRBITS_2(siba, reg, bits)	\
135203319Sweongyo	SIBA_WRITE_2((siba), (reg), SIBA_READ_2((siba), (reg)) & ~(bits))
136203319Sweongyo
137203319Sweongyo#define	SIBA_CC_READ32(scc, offset) \
138203319Sweongyo	siba_read_4((scc)->scc_dev, offset)
139203319Sweongyo#define	SIBA_CC_WRITE32(scc, offset, val) \
140203319Sweongyo	siba_write_4((scc)->scc_dev, offset, val)
141203319Sweongyo#define	SIBA_CC_MASK32(scc, offset, mask) \
142203319Sweongyo	SIBA_CC_WRITE32(scc, offset, SIBA_CC_READ32(scc, offset) & (mask))
143203319Sweongyo#define	SIBA_CC_SET32(scc, offset, set) \
144203319Sweongyo	SIBA_CC_WRITE32(scc, offset, SIBA_CC_READ32(scc, offset) | (set))
145203319Sweongyo#define	SIBA_CC_MASKSET32(scc, offset, mask, set)	\
146203319Sweongyo	SIBA_CC_WRITE32(scc, offset,			\
147203319Sweongyo	    (SIBA_CC_READ32(scc, offset) & (mask)) | (set))
148203319Sweongyo
149203319Sweongyoenum siba_type {
150203319Sweongyo	SIBA_TYPE_SSB,
151203319Sweongyo	SIBA_TYPE_PCI,
152203319Sweongyo	SIBA_TYPE_PCMCIA,
153183371Simp};
154183371Simp
155203319Sweongyoenum siba_clock {
156203319Sweongyo	SIBA_CLOCK_DYNAMIC,
157203319Sweongyo	SIBA_CLOCK_SLOW,
158203319Sweongyo	SIBA_CLOCK_FAST,
159203319Sweongyo};
160183371Simp
161203319Sweongyoenum siba_clksrc {
162203319Sweongyo	SIBA_CC_CLKSRC_PCI,
163203319Sweongyo	SIBA_CC_CLKSRC_CRYSTAL,
164203319Sweongyo	SIBA_CC_CLKSRC_LOWPW,
165203319Sweongyo};
166183371Simp
167203319Sweongyostruct siba_cc_pmu0_plltab {
168203319Sweongyo	uint16_t		freq;	/* in kHz.*/
169203319Sweongyo	uint8_t			xf;	/* crystal frequency */
170203319Sweongyo	uint8_t			wb_int;
171203319Sweongyo	uint32_t		wb_frac;
172203319Sweongyo};
173183371Simp
174203319Sweongyostruct siba_cc_pmu1_plltab {
175203319Sweongyo	uint16_t		freq;
176203319Sweongyo	uint8_t			xf;
177203319Sweongyo	uint8_t			p1div;
178203319Sweongyo	uint8_t			p2div;
179203319Sweongyo	uint8_t			ndiv_int;
180203319Sweongyo	uint32_t		ndiv_frac;
181203319Sweongyo};
182203319Sweongyo
183203319Sweongyostruct siba_cc_pmu_res_updown {
184203319Sweongyo	uint8_t			res;
185203319Sweongyo	uint16_t		updown;
186203319Sweongyo};
187203319Sweongyo
188203319Sweongyo#define	SIBA_CC_PMU_DEP_SET	1
189203319Sweongyo#define	SIBA_CC_PMU_DEP_ADD	2
190203319Sweongyo#define	SIBA_CC_PMU_DEP_REMOVE	3
191203319Sweongyo
192203319Sweongyostruct siba_cc_pmu_res_depend {
193203319Sweongyo	uint8_t			res;
194203319Sweongyo	uint8_t			task;
195203319Sweongyo	uint32_t		depend;
196203319Sweongyo};
197203319Sweongyo
198203319Sweongyostruct siba_sprom {
199203319Sweongyo	uint8_t			rev;		/* revision */
200203319Sweongyo	uint8_t			mac_80211bg[6];	/* address for 802.11b/g */
201203319Sweongyo	uint8_t			mac_eth[6];	/* address for Ethernet */
202203319Sweongyo	uint8_t			mac_80211a[6];	/* address for 802.11a */
203203319Sweongyo	uint8_t			mii_eth0;	/* MII address for eth0 */
204203319Sweongyo	uint8_t			mii_eth1;	/* MII address for eth1 */
205203319Sweongyo	uint8_t			mdio_eth0;	/* MDIO for eth0 */
206203319Sweongyo	uint8_t			mdio_eth1;	/* MDIO for eth1 */
207203319Sweongyo	uint8_t			brev;		/* board revision */
208203319Sweongyo	uint8_t			ccode;		/* Country Code */
209203319Sweongyo	uint8_t			ant_a;		/* A-PHY antenna */
210203319Sweongyo	uint8_t			ant_bg;		/* B/G-PHY antenna */
211203319Sweongyo	uint16_t		pa0b0;
212203319Sweongyo	uint16_t		pa0b1;
213203319Sweongyo	uint16_t		pa0b2;
214203319Sweongyo	uint16_t		pa1b0;
215203319Sweongyo	uint16_t		pa1b1;
216203319Sweongyo	uint16_t		pa1b2;
217203944Sweongyo	uint16_t		pa1lob0;
218203944Sweongyo	uint16_t		pa1lob1;
219203944Sweongyo	uint16_t		pa1lob2;
220203944Sweongyo	uint16_t		pa1hib0;
221203944Sweongyo	uint16_t		pa1hib1;
222203944Sweongyo	uint16_t		pa1hib2;
223203319Sweongyo	uint8_t			gpio0;
224203319Sweongyo	uint8_t			gpio1;
225203319Sweongyo	uint8_t			gpio2;
226203319Sweongyo	uint8_t			gpio3;
227203944Sweongyo	uint16_t		maxpwr_al;
228203319Sweongyo	uint16_t		maxpwr_a;	/* A-PHY Max Power */
229203944Sweongyo	uint16_t		maxpwr_ah;
230203319Sweongyo	uint16_t		maxpwr_bg;	/* BG-PHY Max Power */
231203944Sweongyo	uint8_t			rxpo2g;
232203944Sweongyo	uint8_t			rxpo5g;
233203319Sweongyo	uint8_t			tssi_a;		/* Idle TSSI */
234203319Sweongyo	uint8_t			tssi_bg;	/* Idle TSSI */
235203944Sweongyo	uint8_t			tri2g;
236203944Sweongyo	uint8_t			tri5gl;
237203944Sweongyo	uint8_t			tri5g;
238203944Sweongyo	uint8_t			tri5gh;
239203944Sweongyo	uint8_t			rssisav2g;
240203944Sweongyo	uint8_t			rssismc2g;
241203944Sweongyo	uint8_t			rssismf2g;
242203944Sweongyo	uint8_t			bxa2g;
243203944Sweongyo	uint8_t			rssisav5g;
244203944Sweongyo	uint8_t			rssismc5g;
245203944Sweongyo	uint8_t			rssismf5g;
246203944Sweongyo	uint8_t			bxa5g;
247203944Sweongyo	uint16_t		cck2gpo;
248203944Sweongyo	uint32_t		ofdm2gpo;
249203944Sweongyo	uint32_t		ofdm5glpo;
250203944Sweongyo	uint32_t		ofdm5gpo;
251203944Sweongyo	uint32_t		ofdm5ghpo;
252203319Sweongyo	uint16_t		bf_lo;		/* boardflags */
253203319Sweongyo	uint16_t		bf_hi;		/* boardflags */
254203944Sweongyo	uint16_t		bf2_lo;
255203944Sweongyo	uint16_t		bf2_hi;
256203944Sweongyo
257203319Sweongyo	struct {
258203319Sweongyo		struct {
259203319Sweongyo			int8_t a0, a1, a2, a3;
260203319Sweongyo		} ghz24;
261203319Sweongyo		struct {
262203319Sweongyo			int8_t a0, a1, a2, a3;
263203319Sweongyo		} ghz5;
264203319Sweongyo	} again;	/* antenna gain */
265203319Sweongyo};
266203319Sweongyo
267203944Sweongyo#define	SIBA_LDO_PAREF			0
268203944Sweongyo#define	SIBA_LDO_VOLT1			1
269203944Sweongyo#define	SIBA_LDO_VOLT2			2
270203944Sweongyo#define	SIBA_LDO_VOLT3			3
271203944Sweongyo
272203319Sweongyostruct siba_cc_pmu {
273203319Sweongyo	uint8_t				rev;	/* PMU rev */
274203319Sweongyo	uint32_t			freq;	/* crystal freq in kHz */
275203319Sweongyo};
276203319Sweongyo
277203319Sweongyostruct siba_cc {
278203319Sweongyo	struct siba_dev_softc		*scc_dev;
279203319Sweongyo	uint32_t			scc_caps;
280203319Sweongyo	struct siba_cc_pmu		scc_pmu;
281203319Sweongyo	uint16_t			scc_powerup_delay;
282203319Sweongyo};
283203319Sweongyo
284203319Sweongyostruct siba_pci {
285203319Sweongyo	struct siba_dev_softc		*spc_dev;
286203319Sweongyo	uint8_t				spc_inited;
287203319Sweongyo	uint8_t				spc_hostmode;
288203319Sweongyo};
289203319Sweongyo
290203319Sweongyostruct siba_bus_ops {
291203319Sweongyo	uint16_t		(*read_2)(struct siba_dev_softc *,
292203319Sweongyo				    uint16_t);
293203319Sweongyo	uint32_t		(*read_4)(struct siba_dev_softc *,
294203319Sweongyo				    uint16_t);
295203319Sweongyo	void			(*write_2)(struct siba_dev_softc *,
296203319Sweongyo				    uint16_t, uint16_t);
297203319Sweongyo	void			(*write_4)(struct siba_dev_softc *,
298203319Sweongyo				    uint16_t, uint32_t);
299203319Sweongyo	void			(*read_multi_1)(struct siba_dev_softc *,
300203319Sweongyo				    void *, size_t, uint16_t);
301203319Sweongyo	void			(*read_multi_2)(struct siba_dev_softc *,
302203319Sweongyo				    void *, size_t, uint16_t);
303203319Sweongyo	void			(*read_multi_4)(struct siba_dev_softc *,
304203319Sweongyo				    void *, size_t, uint16_t);
305203319Sweongyo	void			(*write_multi_1)(struct siba_dev_softc *,
306203319Sweongyo				    const void *, size_t, uint16_t);
307203319Sweongyo	void			(*write_multi_2)(struct siba_dev_softc *,
308203319Sweongyo				    const void *, size_t, uint16_t);
309203319Sweongyo	void			(*write_multi_4)(struct siba_dev_softc *,
310203319Sweongyo				    const void *, size_t, uint16_t);
311203319Sweongyo};
312203319Sweongyo
313203319Sweongyostruct siba_dev_softc {
314203319Sweongyo	struct siba_softc		*sd_bus;
315203319Sweongyo	struct siba_devid		sd_id;
316203319Sweongyo	const struct siba_bus_ops	*sd_ops;
317203319Sweongyo
318203319Sweongyo	uint8_t				sd_coreidx;
319203319Sweongyo};
320203319Sweongyo
321203319Sweongyostruct siba_devinfo {
322203319Sweongyo	struct resource_list		 sdi_rl;
323203319Sweongyo	/*devhandle_t			 sdi_devhandle; XXX*/
324203319Sweongyo	/*struct rman sdi_intr_rman;*/
325203319Sweongyo
326203319Sweongyo	/* Accessors are needed for ivars below. */
327203319Sweongyo	uint16_t			 sdi_vid;
328203319Sweongyo	uint16_t			 sdi_devid;
329203319Sweongyo	uint8_t				 sdi_rev;
330203319Sweongyo	uint8_t				 sdi_idx;	/* core index on bus */
331203319Sweongyo	uint8_t				 sdi_irq;	/* TODO */
332203319Sweongyo};
333203319Sweongyo
334203319Sweongyostruct siba_softc {
335203319Sweongyo	/*
336203319Sweongyo	 * common variables which used for siba(4) bus and siba_bwn bridge.
337203319Sweongyo	 */
338203319Sweongyo	device_t			siba_dev;	/* Device ID */
339203319Sweongyo	struct resource			*siba_mem_res;
340203319Sweongyo	bus_space_tag_t			siba_mem_bt;
341203319Sweongyo	bus_space_handle_t		siba_mem_bh;
342203319Sweongyo	bus_addr_t			siba_maddr;
343203319Sweongyo	bus_size_t			siba_msize;
344203319Sweongyo	uint8_t				siba_ncores;
345203319Sweongyo
346203319Sweongyo	/*
347203319Sweongyo	 * the following variables are only used for siba_bwn bridge.
348203319Sweongyo	 */
349203319Sweongyo
350203319Sweongyo	enum siba_type			siba_type;
351203319Sweongyo	int				siba_invalid;
352203319Sweongyo
353203319Sweongyo	struct siba_dev_softc		*siba_curdev;	/* only for PCI */
354203319Sweongyo	struct siba_dev_softc		siba_devs[SIBA_MAX_CORES];
355203319Sweongyo	int				siba_ndevs;
356203319Sweongyo
357203319Sweongyo	uint16_t			siba_pci_vid;
358203319Sweongyo	uint16_t			siba_pci_did;
359203319Sweongyo	uint16_t			siba_pci_subvid;
360203319Sweongyo	uint16_t			siba_pci_subdid;
361203319Sweongyo	int				siba_mem_rid;
362203319Sweongyo
363203319Sweongyo	uint16_t			siba_chipid;	/* for CORE 0 */
364203319Sweongyo	uint16_t			siba_chiprev;
365203319Sweongyo	uint8_t				siba_chippkg;
366203319Sweongyo
367203319Sweongyo	struct siba_cc			siba_cc;		/* ChipCommon */
368203319Sweongyo	struct siba_pci			siba_pci;	/* PCI-core */
369203319Sweongyo	const struct siba_bus_ops	*siba_ops;
370203319Sweongyo
371203319Sweongyo	/* board informations */
372203319Sweongyo	uint16_t			siba_board_vendor;
373203319Sweongyo	uint16_t			siba_board_type;
374203319Sweongyo	uint16_t			siba_board_rev;
375203319Sweongyo	struct siba_sprom		siba_sprom;	/* SPROM */
376203319Sweongyo	uint16_t			siba_spromsize;	/* in word size */
377203319Sweongyo};
378203319Sweongyo
379203319Sweongyovoid		siba_powerup(struct siba_softc *, int);
380203319Sweongyouint16_t	siba_read_2(struct siba_dev_softc *, uint16_t);
381203319Sweongyovoid		siba_write_2(struct siba_dev_softc *, uint16_t, uint16_t);
382203319Sweongyouint32_t	siba_read_4(struct siba_dev_softc *, uint16_t);
383203319Sweongyovoid		siba_write_4(struct siba_dev_softc *, uint16_t, uint32_t);
384203319Sweongyovoid		siba_dev_up(struct siba_dev_softc *, uint32_t);
385203319Sweongyovoid		siba_dev_down(struct siba_dev_softc *, uint32_t);
386203319Sweongyoint		siba_powerdown(struct siba_softc *);
387203319Sweongyoint		siba_dev_isup(struct siba_dev_softc *);
388203319Sweongyovoid		siba_pcicore_intr(struct siba_pci *, struct siba_dev_softc *);
389203319Sweongyouint32_t	siba_dma_translation(struct siba_dev_softc *);
390203319Sweongyovoid		*siba_dma_alloc_consistent(struct siba_dev_softc *, size_t,
391203319Sweongyo		    bus_addr_t *);
392203319Sweongyovoid		siba_read_multi_1(struct siba_dev_softc *, void *, size_t,
393203319Sweongyo		    uint16_t);
394203319Sweongyovoid		siba_read_multi_2(struct siba_dev_softc *, void *, size_t,
395203319Sweongyo		    uint16_t);
396203319Sweongyovoid		siba_read_multi_4(struct siba_dev_softc *, void *, size_t,
397203319Sweongyo		    uint16_t);
398203319Sweongyovoid		siba_write_multi_1(struct siba_dev_softc *, const void *,
399203319Sweongyo		    size_t, uint16_t);
400203319Sweongyovoid		siba_write_multi_2(struct siba_dev_softc *, const void *,
401203319Sweongyo		    size_t, uint16_t);
402203319Sweongyovoid		siba_write_multi_4(struct siba_dev_softc *, const void *,
403203319Sweongyo		    size_t, uint16_t);
404203319Sweongyovoid		siba_barrier(struct siba_dev_softc *, int);
405203944Sweongyovoid		siba_cc_pmu_set_ldovolt(struct siba_cc *, int, uint32_t);
406203944Sweongyovoid		siba_cc_pmu_set_ldoparef(struct siba_cc *, uint8_t);
407203319Sweongyo
408183371Simp#endif /* _SIBA_SIBAVAR_H_ */
409