Lines Matching +full:bit +full:- +full:banging
1 /*-
2 * Copyright (c) 2001 Alcove - Nicolas Souchu
75 ((u_char)bus_read_1(viapm->iores, port))
77 (bus_write_1(viapm->iores, port, (u_char)(val)))
86 #define VIAPM_LOCK(sc) mtx_lock(&(sc)->lock)
87 #define VIAPM_UNLOCK(sc) mtx_unlock(&(sc)->lock)
88 #define VIAPM_LOCK_ASSERT(sc) mtx_assert(&(sc)->lock, MA_OWNED)
198 viapm->type = VIAPM_TYP_586B_3040E;
199 viapm->iorid = VIAPM_586B_3040E_BASE;
209 viapm->type = VIAPM_TYP_586B_3040F;
210 viapm->iorid = VIAPM_586B_3040F_BASE;
218 viapm->base = pci_read_config(dev, viapm->iorid, 4) &
225 if (bus_set_resource(dev, SYS_RES_IOPORT, viapm->iorid,
226 viapm->base, 256)) {
253 viapm->type = VIAPM_TYP_596B;
259 viapm->type = VIAPM_TYP_596B;
265 viapm->type = VIAPM_TYP_686A;
272 viapm->type = VIAPM_TYP_UNKNOWN;
278 viapm->type = VIAPM_TYP_UNKNOWN;
284 viapm->type = VIAPM_TYP_UNKNOWN;
290 viapm->type = VIAPM_TYP_UNKNOWN;
308 viapm->base = pci_read_config(dev, base_cfgreg, 4) & VIAPM_PRO_BA_MASK;
314 viapm->iorid = base_cfgreg;
315 if (bus_set_resource(dev, SYS_RES_IOPORT, viapm->iorid,
316 viapm->base, 16)) {
318 viapm->base);
323 device_printf(dev, "SMBus I/O base at 0x%x\n", viapm->base);
342 mtx_init(&viapm->lock, device_get_nameunit(dev), "viapm", MTX_DEF);
343 if (!(viapm->iores = bus_alloc_resource_any(dev, SYS_RES_IOPORT,
344 &viapm->iorid, RF_ACTIVE))) {
354 viapm->irqrid = 0;
355 if (!(viapm->irqres = bus_alloc_resource(dev, SYS_RES_IRQ,
356 &viapm->irqrid, 9, 9, 1,
362 if (bus_setup_intr(dev, viapm->irqres, INTR_TYPE_MISC | INTR_MPSAFE,
363 (driver_intr_t *) viasmb_intr, viapm, &viapm->irqih)) {
374 viapm->smbus = device_add_child(dev, "smbus", DEVICE_UNIT_ANY);
392 /* If this device is a PCI-ISA bridge, then attach an ISA bus. */
400 if (viapm->iores)
401 bus_release_resource(dev, SYS_RES_IOPORT, viapm->iorid, viapm->iores);
403 if (viapm->irqres)
404 bus_release_resource(dev, SYS_RES_IRQ, viapm->irqrid, viapm->irqres);
406 mtx_destroy(&viapm->lock);
416 mtx_init(&viapm->lock, device_get_nameunit(dev), "viapm", MTX_DEF);
417 if (!(viapm->iores = bus_alloc_resource_any(dev, SYS_RES_IOPORT,
418 &viapm->iorid, RF_ACTIVE | RF_SHAREABLE))) {
425 /* add generic bit-banging code */
426 if (!(viapm->iicbb = device_add_child(dev, "iicbb", -1)))
434 if (viapm->iores)
436 viapm->iorid, viapm->iores);
437 mtx_destroy(&viapm->lock);
448 if (viapm->iores)
449 bus_release_resource(dev, SYS_RES_IOPORT, viapm->iorid,
450 viapm->iores);
451 mtx_destroy(&viapm->lock);
463 bus_release_resource(dev, SYS_RES_IOPORT, viapm->iorid, viapm->iores);
466 bus_release_resource(dev, SYS_RES_IRQ, viapm->irqrid, viapm->irqres);
468 mtx_destroy(&viapm->lock);
597 while(count--) {
869 /* fill the 32-byte internal buffer */
913 /* read the 32-byte internal buffer */