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