Lines Matching +full:0 +full:x170
80 MODULE_PARM_DESC(all, "Grab all legacy port devices, even if PCI(0=off, 1=on)");
83 BIOS = 0,
126 static int legacy_port[NR_HOST] = { 0x1f0, 0x170, 0x1e8, 0x168, 0x1e0, 0x160 };
141 static int iordy_mask = 0xFFFFFFFF; /* Use iordy if available */
176 struct legacy_probe *lp = &probe_list[0]; in legacy_probe_add()
180 for (i = 0; i < NR_HOST; i++) { in legacy_probe_add()
181 if (lp->port == 0 && free == NULL) in legacy_probe_add()
199 return 0; in legacy_probe_add()
227 return 0; in legacy_set_mode()
243 * do this. The mode range can be set if it is not 0x1F by setting
280 inb(0x1F5); in pdc20230_set_piomode()
281 outb(inb(0x1F2) | 0x80, 0x1F2); in pdc20230_set_piomode()
282 inb(0x1F2); in pdc20230_set_piomode()
283 inb(0x3F6); in pdc20230_set_piomode()
284 inb(0x3F6); in pdc20230_set_piomode()
285 inb(0x1F2); in pdc20230_set_piomode()
286 inb(0x1F2); in pdc20230_set_piomode()
288 while ((inb(0x1F2) & 0x80) && --tries); in pdc20230_set_piomode()
292 outb(inb(0x1F4) & 0x07, 0x1F4); in pdc20230_set_piomode()
294 rt = inb(0x1F3); in pdc20230_set_piomode()
295 rt &= 0x07 << (3 * adev->devno); in pdc20230_set_piomode()
300 outb(inb(0x1F2) | 0x01, 0x1F2); in pdc20230_set_piomode()
302 inb(0x1F5); in pdc20230_set_piomode()
314 if (ata_id_has_dword_io(dev->id) && (slop == 0 || slop == 3) in pdc_data_xfer_vlb()
373 inb(0x3E6); in ht6560a_set_piomode()
374 inb(0x3E6); in ht6560a_set_piomode()
375 inb(0x3E6); in ht6560a_set_piomode()
376 inb(0x3E6); in ht6560a_set_piomode()
405 recover = clamp_val(t.recover, 2, 16) & 0x0F; in ht6560b_set_piomode()
407 inb(0x3E6); in ht6560b_set_piomode()
408 inb(0x3E6); in ht6560b_set_piomode()
409 inb(0x3E6); in ht6560b_set_piomode()
410 inb(0x3E6); in ht6560b_set_piomode()
415 u8 rconf = inb(0x3E6); in ht6560b_set_piomode()
416 if (rconf & 0x24) { in ht6560b_set_piomode()
417 rconf &= ~0x24; in ht6560b_set_piomode()
418 outb(rconf, 0x3E6); in ht6560b_set_piomode()
447 outb(reg, 0x22); in opti_syscfg()
448 r = inb(0x24); in opti_syscfg()
475 clock = 1000000000 / khz[ioread8(ap->ioaddr.lbah_addr) & 0x03]; in opti82c611a_set_piomode()
494 rc &= 0x7F; in opti82c611a_set_piomode()
504 rc &= 0xC0; in opti82c611a_set_piomode()
506 rc |= (setup << 4) | 0x04; in opti82c611a_set_piomode()
514 rc &= 0x73; in opti82c611a_set_piomode()
515 rc |= 0x84; in opti82c611a_set_piomode()
519 iowrite8(0x83, ap->ioaddr.nsect_addr); in opti82c611a_set_piomode()
546 sysclk = (opti_syscfg(0xAC) & 0xC0) >> 6; /* BIOS set */ in opti82c46x_set_piomode()
573 rc &= 0x7F; in opti82c46x_set_piomode()
583 rc &= 0xC0; in opti82c46x_set_piomode()
585 rc |= (setup << 4) | 0x04; in opti82c46x_set_piomode()
593 rc &= 0x73; in opti82c46x_set_piomode()
594 rc |= 0x84; in opti82c46x_set_piomode()
598 iowrite8(0x83, ap->ioaddr.nsect_addr); in opti82c46x_set_piomode()
667 recovery = 15 - clamp_val(t.recover, 0, 15); in qdi65x0_set_piomode()
669 timing = (recovery << 4) | active | 0x08; in qdi65x0_set_piomode()
679 outb(0x5F, (ld_qdi->timing & 0xFFF0) + 3); in qdi65x0_set_piomode()
714 if (ata_id_has_dword_io(adev->id) && (slop == 0 || slop == 3) in vlb32_data_xfer()
742 return 0; in qdi_port()
771 outb(reg, port + 0x01); in winbond_writecfg()
772 outb(val, port + 0x02); in winbond_writecfg()
782 outb(reg, port + 0x01); in winbond_readcfg()
783 val = inb(port + 0x02); in winbond_readcfg()
795 int timing = 0x88 + (ap->port_no * 4) + (adev->devno * 2); in winbond_set_piomode()
797 reg = winbond_readcfg(ld_winbond->timing, 0x81); in winbond_set_piomode()
800 if (reg & 0x40) /* Fast VLB bus, assume 50MHz */ in winbond_set_piomode()
805 active = (clamp_val(t.active, 3, 17) - 1) & 0x0F; in winbond_set_piomode()
806 recovery = (clamp_val(t.recover, 1, 15) + 1) & 0x0F; in winbond_set_piomode()
812 reg = 0x35; in winbond_set_piomode()
814 reg |= 0x08; /* FIFO off */ in winbond_set_piomode()
816 reg |= 0x02; /* IORDY off */ in winbond_set_piomode()
817 reg |= (clamp_val(t.setup, 0, 3) << 6); in winbond_set_piomode()
827 return 0; in winbond_port()
838 ATA_FLAG_NO_IORDY, 0, NULL },
840 0, 0, NULL },
845 ATA_FLAG_NO_IORDY, 0, NULL },
847 ATA_FLAG_NO_IORDY, 0, NULL },
849 0, 0, NULL },
851 0, 0, NULL },
856 0, ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32CHANGE, qdi_port },
858 0, ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32CHANGE, qdi_port },
860 0, ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32CHANGE,
876 if (winbond && (probe->port == 0x1F0 || probe->port == 0x170)) { in probe_chip_type()
877 u8 reg = winbond_readcfg(winbond, 0x81); in probe_chip_type()
878 reg |= 0x80; /* jumpered mode off */ in probe_chip_type()
879 winbond_writecfg(winbond, 0x81, reg); in probe_chip_type()
880 reg = winbond_readcfg(winbond, 0x83); in probe_chip_type()
881 reg |= 0xF0; /* local control */ in probe_chip_type()
882 winbond_writecfg(winbond, 0x83, reg); in probe_chip_type()
883 reg = winbond_readcfg(winbond, 0x85); in probe_chip_type()
884 reg |= 0xF0; /* programmable timing */ in probe_chip_type()
885 winbond_writecfg(winbond, 0x85, reg); in probe_chip_type()
887 reg = winbond_readcfg(winbond, 0x81); in probe_chip_type()
892 if (probe->port == 0x1F0) { in probe_chip_type()
896 outb(inb(0x1F2) | 0x80, 0x1F2); in probe_chip_type()
897 inb(0x1F5); in probe_chip_type()
898 inb(0x1F2); in probe_chip_type()
899 inb(0x3F6); in probe_chip_type()
900 inb(0x3F6); in probe_chip_type()
901 inb(0x1F2); in probe_chip_type()
902 inb(0x1F2); in probe_chip_type()
904 if ((inb(0x1F2) & 0x80) == 0) { in probe_chip_type()
909 inb(0x1F5); in probe_chip_type()
913 outb(0x55, 0x1F2); in probe_chip_type()
914 inb(0x1F2); in probe_chip_type()
915 inb(0x1F2); in probe_chip_type()
916 if (inb(0x1F2) == 0x00) in probe_chip_type()
959 u32 iordy = (iordy_mask & mask) ? 0: ATA_FLAG_NO_IORDY; in legacy_init_one()
964 pdev = platform_device_register_simple(DRV_NAME, probe->slot, NULL, 0); in legacy_init_one()
970 devm_request_region(&pdev->dev, io + 0x0206, 1, in legacy_init_one()
976 ctrl_addr = devm_ioport_map(&pdev->dev, io + 0x0206, 1); in legacy_init_one()
981 if (controller->setup(pdev, probe, ld) < 0) in legacy_init_one()
986 ap = host->ports[0]; in legacy_init_one()
998 ata_port_desc(ap, "cmd 0x%lx ctl 0x%lx", io, io + 0x0206); in legacy_init_one()
1000 ret = ata_host_activate(host, probe->irq, ata_sff_interrupt, 0, in legacy_init_one()
1014 return 0; in legacy_init_one()
1040 if (p->vendor == 0x1078 && p->device == 0x0000) { in legacy_check_special_cases()
1045 if (p->vendor == 0x1078 && p->device == 0x0002) { in legacy_check_special_cases()
1050 if (p->vendor == 0x8086 && p->device == 0x1234) { in legacy_check_special_cases()
1052 pci_read_config_word(p, 0x6C, &r); in legacy_check_special_cases()
1053 if (r & 0x8000) { in legacy_check_special_cases()
1055 if (r & 0x4000) in legacy_check_special_cases()
1072 u8 ctrl = (opti_syscfg(0x30) & 0xC0) >> 6; in probe_opti_vlb()
1078 chans = (opti_syscfg(0x3F) & 0x20) ? 2 : 1; in probe_opti_vlb()
1079 ctrl = opti_syscfg(0xAC); in probe_opti_vlb()
1084 legacy_probe_add(0x1F0, 14, OPTI46X, 0); in probe_opti_vlb()
1085 legacy_probe_add(0x170, 15, OPTI46X, 0); in probe_opti_vlb()
1088 legacy_probe_add(0x170, 15, OPTI46X, 0); in probe_opti_vlb()
1090 legacy_probe_add(0x1F0, 14, OPTI46X, 0); in probe_opti_vlb()
1092 legacy_probe_add(0x1F0, 14, OPTI46X, 0); in probe_opti_vlb()
1097 static const unsigned long ide_port[2] = { 0x170, 0x1F0 }; in qdi65_identify_port()
1099 if ((r & 0xF0) == 0xC0) { in qdi65_identify_port()
1104 legacy_probe_add(ide_port[r & 0x01], 14 + (r & 0x01), in qdi65_identify_port()
1107 if (((r & 0xF0) == 0xA0) || (r & 0xF0) == 0x50) { in qdi65_identify_port()
1116 legacy_probe_add(ide_port[r & 0x01], 14 + (r & 0x01), in qdi65_identify_port()
1119 legacy_probe_add(0x1F0, 14, QDI6580DP, port); in qdi65_identify_port()
1120 /* port + 0x02, r & 0x04 */ in qdi65_identify_port()
1121 legacy_probe_add(0x170, 15, QDI6580DP, port + 2); in qdi65_identify_port()
1130 static const unsigned long qd_port[2] = { 0x30, 0xB0 }; in probe_qdi_vlb()
1137 for (i = 0; i < 2; i++) { in probe_qdi_vlb()
1149 outb(0x19, port); in probe_qdi_vlb()
1158 if (res == 0x19) { in probe_qdi_vlb()
1186 int ct = 0; in legacy_init()
1187 int primary = 0; in legacy_init()
1188 int secondary = 0; in legacy_init()
1189 int pci_present = 0; in legacy_init()
1190 struct legacy_probe *pl = &probe_list[0]; in legacy_init()
1191 int slot = 0; in legacy_init()
1200 for (r = 0; r < 6; r++) { in legacy_init()
1201 if (pci_resource_start(p, r) == 0x1f0) in legacy_init()
1203 if (pci_resource_start(p, r) == 0x170) in legacy_init()
1215 winbond = 0x130; /* Default port, alt is 1B0 */ in legacy_init()
1217 if (primary == 0 || all) in legacy_init()
1218 legacy_probe_add(0x1F0, 14, UNKNOWN, 0); in legacy_init()
1219 if (secondary == 0 || all) in legacy_init()
1220 legacy_probe_add(0x170, 15, UNKNOWN, 0); in legacy_init()
1224 legacy_probe_add(0x1E8, 11, UNKNOWN, 0); in legacy_init()
1225 legacy_probe_add(0x168, 10, UNKNOWN, 0); in legacy_init()
1226 legacy_probe_add(0x1E0, 8, UNKNOWN, 0); in legacy_init()
1227 legacy_probe_add(0x160, 12, UNKNOWN, 0); in legacy_init()
1235 for (i = 0; i < NR_HOST; i++, pl++) { in legacy_init()
1236 if (pl->port == 0) in legacy_init()
1241 if (legacy_init_one(pl) == 0) in legacy_init()
1244 if (ct != 0) in legacy_init()
1245 return 0; in legacy_init()
1253 for (i = 0; i < nr_legacy_host; i++) { in legacy_exit()
1267 module_param(probe_all, int, 0);
1268 module_param(autospeed, int, 0);
1269 module_param(ht6560a, int, 0);
1270 module_param(ht6560b, int, 0);
1271 module_param(opti82c611a, int, 0);
1272 module_param(opti82c46x, int, 0);
1273 module_param(qdi, int, 0);
1274 module_param(winbond, int, 0);
1275 module_param(pio_mask, int, 0);
1276 module_param(iordy_mask, int, 0);