Lines Matching +full:0 +full:x00074000

44 	({ if (0) dev_printk(KERN_DEBUG, dev, format, ##arg); 0; })
74 #define IDE_TIMING_CONFIG 0x200
75 #define IDE_INTERRUPT 0x300
78 #define IDE_KAUAI_PIO_CONFIG 0x200
79 #define IDE_KAUAI_ULTRA_CONFIG 0x210
80 #define IDE_KAUAI_POLL_CONFIG 0x220
97 #define TR_133_PIOREG_PIO_MASK 0xff000fff
98 #define TR_133_PIOREG_MDMA_MASK 0x00fff800
99 #define TR_133_UDMAREG_UDMA_MASK 0x0003ffff
100 #define TR_133_UDMAREG_UDMA_EN 0x00000001
113 #define TR_100_PIO_ADDRSETUP_MASK 0xff000000 /* Size of field unknown */
115 #define TR_100_MDMA_MASK 0x00fff000
116 #define TR_100_MDMA_RECOVERY_MASK 0x00fc0000
118 #define TR_100_MDMA_ACCESS_MASK 0x0003f000
120 #define TR_100_PIO_MASK 0xff000fff
121 #define TR_100_PIO_RECOVERY_MASK 0x00000fc0
123 #define TR_100_PIO_ACCESS_MASK 0x0000003f
124 #define TR_100_PIO_ACCESS_SHIFT 0
126 #define TR_100_UDMAREG_UDMA_MASK 0x0000ffff
127 #define TR_100_UDMAREG_UDMA_EN 0x00000001
130 /* 66Mhz cell, found in KeyLargo. Can do ultra mode 0 to 2 on
140 * of commented out code in Darwin. They leave it to 0, we do as
146 #define TR_66_UDMA_MASK 0xfff00000
147 #define TR_66_UDMA_EN 0x00100000 /* Enable Ultra mode for DMA */
148 #define TR_66_PIO_ADDRSETUP_MASK 0xe0000000 /* Address setup */
150 #define TR_66_UDMA_RDY2PAUS_MASK 0x1e000000 /* Ready 2 pause time */
152 #define TR_66_UDMA_WRDATASETUP_MASK 0x01e00000 /* Write data setup time */
154 #define TR_66_MDMA_MASK 0x000ffc00
155 #define TR_66_MDMA_RECOVERY_MASK 0x000f8000
157 #define TR_66_MDMA_ACCESS_MASK 0x00007c00
159 #define TR_66_PIO_MASK 0xe00003ff
160 #define TR_66_PIO_RECOVERY_MASK 0x000003e0
162 #define TR_66_PIO_ACCESS_MASK 0x0000001f
163 #define TR_66_PIO_ACCESS_SHIFT 0
173 * implementation afaik. The E bit appears to be set for PIO mode 0 and
176 #define TR_33_MDMA_MASK 0x003ff800
177 #define TR_33_MDMA_RECOVERY_MASK 0x001f0000
179 #define TR_33_MDMA_ACCESS_MASK 0x0000f800
181 #define TR_33_MDMA_HALFTICK 0x00200000
182 #define TR_33_PIO_MASK 0x000007ff
183 #define TR_33_PIO_E 0x00000400
184 #define TR_33_PIO_RECOVERY_MASK 0x000003e0
186 #define TR_33_PIO_ACCESS_MASK 0x0000001f
187 #define TR_33_PIO_ACCESS_SHIFT 0
193 #define IDE_INTR_DMA 0x80000000
194 #define IDE_INTR_DEVICE 0x40000000
197 * FCR Register on Kauai. Not sure what bit 0x4 is ...
199 #define KAUAI_FCR_UATA_MAGIC 0x00000004
200 #define KAUAI_FCR_UATA_RESET_N 0x00000002
201 #define KAUAI_FCR_UATA_ENABLE 0x00000001
208 #define MAX_DBDMA_SEG 0xff00
266 { XFER_PIO_0, 0x00000526, 0, },
267 { XFER_PIO_1, 0x00000085, 0, },
268 { XFER_PIO_2, 0x00000025, 0, },
269 { XFER_PIO_3, 0x00000025, 0, },
270 { XFER_PIO_4, 0x00000025, 0, },
271 { XFER_MW_DMA_0, 0x00074000, 0, },
272 { XFER_MW_DMA_1, 0x00221000, 0, },
273 { XFER_MW_DMA_2, 0x00211000, 0, },
274 { -1, 0, 0 }
278 { XFER_PIO_0, 0x00000526, 0, },
279 { XFER_PIO_1, 0x00000085, 0, },
280 { XFER_PIO_2, 0x00000025, 0, },
281 { XFER_PIO_3, 0x00000025, 0, },
282 { XFER_PIO_4, 0x00000025, 0, },
283 { XFER_MW_DMA_0, 0x00074000, 0, },
284 { XFER_MW_DMA_1, 0x00221000, 0, },
285 { XFER_MW_DMA_2, 0x00211000, 0, },
286 { -1, 0, 0 }
290 { XFER_PIO_0, 0x00000526, 0, },
291 { XFER_PIO_1, 0x00000085, 0, },
292 { XFER_PIO_2, 0x00000025, 0, },
293 { XFER_PIO_3, 0x00000025, 0, },
294 { XFER_PIO_4, 0x00000025, 0, },
295 { XFER_MW_DMA_0, 0x00084000, 0, },
296 { XFER_MW_DMA_1, 0x00021800, 0, },
297 { XFER_MW_DMA_2, 0x00011800, 0, },
298 { -1, 0, 0 }
302 { XFER_PIO_0, 0x0000038c, 0, },
303 { XFER_PIO_1, 0x0000020a, 0, },
304 { XFER_PIO_2, 0x00000127, 0, },
305 { XFER_PIO_3, 0x000000c6, 0, },
306 { XFER_PIO_4, 0x00000065, 0, },
307 { XFER_MW_DMA_0, 0x00084000, 0, },
308 { XFER_MW_DMA_1, 0x00029800, 0, },
309 { XFER_MW_DMA_2, 0x00019400, 0, },
310 { XFER_UDMA_0, 0x19100000, 0, },
311 { XFER_UDMA_1, 0x14d00000, 0, },
312 { XFER_UDMA_2, 0x10900000, 0, },
313 { XFER_UDMA_3, 0x0c700000, 0, },
314 { XFER_UDMA_4, 0x0c500000, 0, },
315 { -1, 0, 0 }
319 { XFER_PIO_0, 0x08000a92, 0, },
320 { XFER_PIO_1, 0x0800060f, 0, },
321 { XFER_PIO_2, 0x0800038b, 0, },
322 { XFER_PIO_3, 0x05000249, 0, },
323 { XFER_PIO_4, 0x04000148, 0, },
324 { XFER_MW_DMA_0, 0x00618000, 0, },
325 { XFER_MW_DMA_1, 0x00209000, 0, },
326 { XFER_MW_DMA_2, 0x00148000, 0, },
327 { XFER_UDMA_0, 0, 0x000070c1, },
328 { XFER_UDMA_1, 0, 0x00005d81, },
329 { XFER_UDMA_2, 0, 0x00004a61, },
330 { XFER_UDMA_3, 0, 0x00003a51, },
331 { XFER_UDMA_4, 0, 0x00002a31, },
332 { XFER_UDMA_5, 0, 0x00002921, },
333 { -1, 0, 0 }
337 { XFER_PIO_0, 0x0a000c97, 0, },
338 { XFER_PIO_1, 0x07000712, 0, },
339 { XFER_PIO_2, 0x040003cd, 0, },
340 { XFER_PIO_3, 0x0500028b, 0, },
341 { XFER_PIO_4, 0x0400010a, 0, },
342 { XFER_MW_DMA_0, 0x00820800, 0, },
343 { XFER_MW_DMA_1, 0x0028b000, 0, },
344 { XFER_MW_DMA_2, 0x001ca000, 0, },
345 { XFER_UDMA_0, 0, 0x00035901, },
346 { XFER_UDMA_1, 0, 0x000348b1, },
347 { XFER_UDMA_2, 0, 0x00033881, },
348 { XFER_UDMA_3, 0, 0x00033861, },
349 { XFER_UDMA_4, 0, 0x00033841, },
350 { XFER_UDMA_5, 0, 0x00033031, },
351 { XFER_UDMA_6, 0, 0x00033021, },
352 { -1, 0, 0 }
361 for (i = 0; priv->timings[i].mode > 0; i++) { in pata_macio_find_timing()
377 writel(priv->treg[device][0], rbase + IDE_KAUAI_PIO_CONFIG); in pata_macio_apply_timings()
380 writel(priv->treg[device][0], rbase + IDE_TIMING_CONFIG); in pata_macio_apply_timings()
397 dev_dbg(priv->dev, "Set timings: DEV=%d,PIO=0x%x (%s),DMA=0x%x (%s)\n", in pata_macio_set_timings()
405 priv->treg[adev->devno][0] = priv->treg[adev->devno][1] = 0; in pata_macio_set_timings()
410 dev_warn(priv->dev, "Invalid PIO timing requested: 0x%x\n", in pata_macio_set_timings()
417 priv->treg[adev->devno][0] |= t->reg1; in pata_macio_set_timings()
421 if (t == NULL || (t->reg1 == 0 && t->reg2 == 0)) { in pata_macio_set_timings()
428 priv->treg[adev->devno][0] |= t->reg1; in pata_macio_set_timings()
432 priv->treg[adev->devno][0], in pata_macio_set_timings()
445 unsigned int value, value2 = 0; in pata_macio_default_timings()
449 value = 0x0a820c97; in pata_macio_default_timings()
450 value2 = 0x00033031; in pata_macio_default_timings()
454 value = 0x08618a92; in pata_macio_default_timings()
455 value2 = 0x00002921; in pata_macio_default_timings()
458 value = 0x0008438c; in pata_macio_default_timings()
461 value = 0x00084526; in pata_macio_default_timings()
466 value = 0x00074526; in pata_macio_default_timings()
469 priv->treg[0][0] = priv->treg[1][0] = value; in pata_macio_default_timings()
470 priv->treg[0][1] = priv->treg[1][1] = value2; in pata_macio_default_timings()
530 pi = 0; in pata_macio_qc_prep()
549 table->cmd_dep = 0; in pata_macio_qc_prep()
550 table->xfer_status = 0; in pata_macio_qc_prep()
551 table->res_count = 0; in pata_macio_qc_prep()
567 memset(table, 0, sizeof(struct dbdma_cmd)); in pata_macio_qc_prep()
609 (priv->treg[dev][0] & TR_66_UDMA_EN)) { in pata_macio_bmdma_setup()
611 u32 reg = priv->treg[dev][0]; in pata_macio_bmdma_setup()
614 reg += 0x00800000; in pata_macio_bmdma_setup()
655 unsigned long timeout = 0; in pata_macio_bmdma_status()
680 if ((dstat & ACTIVE) == 0) in pata_macio_bmdma_status()
696 if ((dstat & FLUSH) == 0) in pata_macio_bmdma_status()
713 return 0; in pata_macio_port_start()
727 ap->mwdma_mask = 0; in pata_macio_port_start()
728 ap->udma_mask = 0; in pata_macio_port_start()
730 return 0; in pata_macio_port_start()
754 ppc_md.feature_call(PMAC_FTR_IDE_ENABLE, priv->node, 0, 1); in pata_macio_reset_hw()
765 if (rc == 0) { in pata_macio_reset_hw()
767 priv->node, priv->aapl_bus_id, 0); in pata_macio_reset_hw()
821 return 0; in pata_macio_slave_config()
826 return 0; in pata_macio_slave_config()
840 pci_write_config_byte(priv->pdev, PCI_CACHE_LINE_SIZE, 0x08); in pata_macio_slave_config()
849 return 0; in pata_macio_slave_config()
867 return 0; in pata_macio_do_suspend()
888 priv->aapl_bus_id, 0); in pata_macio_do_suspend()
890 return 0; in pata_macio_do_suspend()
899 pata_macio_apply_timings(priv->host->ports[0], 0); in pata_macio_do_resume()
907 return 0; in pata_macio_do_resume()
977 priv->aapl_bus_id = bidp ? *bidp : 0; in pata_macio_invariants()
1001 ioaddr->altstatus_addr = base + 0x160; in pata_macio_setup_ios()
1002 ioaddr->ctl_addr = base + 0x160; in pata_macio_setup_ios()
1009 int i = 0; in pmac_macio_calc_timing_masks()
1011 pinfo->pio_mask = 0; in pmac_macio_calc_timing_masks()
1012 pinfo->mwdma_mask = 0; in pmac_macio_calc_timing_masks()
1013 pinfo->udma_mask = 0; in pmac_macio_calc_timing_masks()
1015 while (priv->timings[i].mode > 0) { in pmac_macio_calc_timing_masks()
1016 unsigned int mask = 1U << (priv->timings[i].mode & 0x0f); in pmac_macio_calc_timing_masks()
1017 switch(priv->timings[i].mode & 0xf0) { in pmac_macio_calc_timing_masks()
1018 case 0x00: /* PIO */ in pmac_macio_calc_timing_masks()
1021 case 0x20: /* MWDMA */ in pmac_macio_calc_timing_masks()
1024 case 0x40: /* UDMA */ in pmac_macio_calc_timing_masks()
1053 memset(&pinfo, 0, sizeof(struct ata_port_info)); in pata_macio_common_init()
1069 priv->tfregs = devm_ioremap(priv->dev, tfregs, 0x100); in pata_macio_common_init()
1077 if (dmaregs != 0) { in pata_macio_common_init()
1085 if (fcregs != 0) { in pata_macio_common_init()
1094 pata_macio_setup_ios(&priv->host->ports[0]->ioaddr, in pata_macio_common_init()
1096 priv->host->ports[0]->private_data = priv; in pata_macio_common_init()
1099 pata_macio_reset_hw(priv, 0); in pata_macio_common_init()
1100 pata_macio_apply_timings(priv->host->ports[0], 0); in pata_macio_common_init()
1111 return ata_host_activate(priv->host, irq, ata_bmdma_interrupt, 0, in pata_macio_common_init()
1119 resource_size_t tfregs, dmaregs = 0; in pata_macio_attach()
1124 if (macio_resource_count(mdev) == 0) { in pata_macio_attach()
1144 if (macio_request_resource(mdev, 0, "pata-macio")) { in pata_macio_attach()
1149 tfregs = macio_resource_start(mdev, 0); in pata_macio_attach()
1169 if (macio_irq_count(mdev) == 0) { in pata_macio_attach()
1174 irq = macio_irq(mdev, 0); in pata_macio_attach()
1183 0, /* Feature control */ in pata_macio_attach()
1206 return 0; in pata_macio_detach()
1236 ap = host->ports[0]; in pata_macio_mb_event()
1295 rbase = pci_resource_start(pdev, 0); in pata_macio_pci_attach()
1297 rbase + 0x2000, /* Taskfile regs */ in pata_macio_pci_attach()
1298 rbase + 0x1000, /* DBDMA regs */ in pata_macio_pci_attach()
1303 return 0; in pata_macio_pci_attach()
1358 { PCI_VDEVICE(APPLE, PCI_DEVICE_ID_APPLE_UNI_N_ATA), 0 },
1359 { PCI_VDEVICE(APPLE, PCI_DEVICE_ID_APPLE_IPID_ATA100), 0 },
1360 { PCI_VDEVICE(APPLE, PCI_DEVICE_ID_APPLE_K2_ATA100), 0 },
1361 { PCI_VDEVICE(APPLE, PCI_DEVICE_ID_APPLE_SH_ATA), 0 },
1362 { PCI_VDEVICE(APPLE, PCI_DEVICE_ID_APPLE_IPID2_ATA), 0 },
1397 return 0; in pata_macio_init()