1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 3 #include <arch/io.h> 4 #include <device/pnp_ops.h> 5 #include <device/pnp.h> 6 #include <stdint.h> 7 #include "pc87417.h" 8 pc87417_disable_dev(pnp_devfn_t dev)9void pc87417_disable_dev(pnp_devfn_t dev) 10 { 11 pnp_set_logical_device(dev); 12 pnp_set_enable(dev, 0); 13 } 14 pc87417_enable_dev(pnp_devfn_t dev)15void pc87417_enable_dev(pnp_devfn_t dev) 16 { 17 pnp_set_logical_device(dev); 18 pnp_set_enable(dev, 1); 19 } 20 xbus_cfg(pnp_devfn_t dev)21void xbus_cfg(pnp_devfn_t dev) 22 { 23 u8 i; 24 u16 xbus_index; 25 26 pnp_set_logical_device(dev); 27 /* Select proper BIOS size (4MB). */ 28 pnp_write_config(dev, PC87417_XMEMCNF2, 29 (pnp_read_config(dev, PC87417_XMEMCNF2)) | 0x04); 30 xbus_index = pnp_read_iobase(dev, PNP_IDX_IO0); 31 32 /* Enable writes to devices attached to XCS0 (XBUS Chip Select 0). */ 33 for (i = 0; i <= 0xf; i++) 34 outb((i << 4), xbus_index + PC87417_HAP0); 35 } 36