/linux-4.1.27/arch/mips/sgi-ip27/ |
H A D | ip27-console.c | 13 #include <asm/sn/ioc3.h> 24 struct ioc3 *ioc3; console_uart() local 28 ioc3 = (struct ioc3 *)KL_CONFIG_CH_CONS_INFO(nasid)->memory_base; console_uart() 30 return &ioc3->sregs.uarta; console_uart()
|
H A D | ip27-init.c | 25 #include <asm/sn/ioc3.h> 167 struct ioc3 *ioc3; ioc3_eth_init() local 171 ioc3 = (struct ioc3 *) KL_CONFIG_CH_CONS_INFO(nid)->memory_base; ioc3_eth_init() 173 ioc3->eier = 0; ioc3_eth_init()
|
H A D | ip27-timer.c | 23 #include <asm/sn/ioc3.h> 239 * kludge make this a device_initcall after ioc3 resource conflicts
|
/linux-4.1.27/drivers/net/ethernet/sgi/ |
H A D | ioc3-eth.c | 30 #define IOC3_NAME "ioc3-eth" 65 #include <asm/sn/ioc3.h> 79 struct ioc3 *regs; 167 * to the IOC3's memory mapped registers is expected as struct ioc3 * ioc3 170 #define ioc3_r_mcr() be32_to_cpu(ioc3->mcr) 171 #define ioc3_w_mcr(v) do { ioc3->mcr = cpu_to_be32(v); } while (0) 172 #define ioc3_w_gpcr_s(v) do { ioc3->gpcr_s = cpu_to_be32(v); } while (0) 173 #define ioc3_r_emcr() be32_to_cpu(ioc3->emcr) 174 #define ioc3_w_emcr(v) do { ioc3->emcr = cpu_to_be32(v); } while (0) 175 #define ioc3_r_eisr() be32_to_cpu(ioc3->eisr) 176 #define ioc3_w_eisr(v) do { ioc3->eisr = cpu_to_be32(v); } while (0) 177 #define ioc3_r_eier() be32_to_cpu(ioc3->eier) 178 #define ioc3_w_eier(v) do { ioc3->eier = cpu_to_be32(v); } while (0) 179 #define ioc3_r_ercsr() be32_to_cpu(ioc3->ercsr) 180 #define ioc3_w_ercsr(v) do { ioc3->ercsr = cpu_to_be32(v); } while (0) 181 #define ioc3_r_erbr_h() be32_to_cpu(ioc3->erbr_h) 182 #define ioc3_w_erbr_h(v) do { ioc3->erbr_h = cpu_to_be32(v); } while (0) 183 #define ioc3_r_erbr_l() be32_to_cpu(ioc3->erbr_l) 184 #define ioc3_w_erbr_l(v) do { ioc3->erbr_l = cpu_to_be32(v); } while (0) 185 #define ioc3_r_erbar() be32_to_cpu(ioc3->erbar) 186 #define ioc3_w_erbar(v) do { ioc3->erbar = cpu_to_be32(v); } while (0) 187 #define ioc3_r_ercir() be32_to_cpu(ioc3->ercir) 188 #define ioc3_w_ercir(v) do { ioc3->ercir = cpu_to_be32(v); } while (0) 189 #define ioc3_r_erpir() be32_to_cpu(ioc3->erpir) 190 #define ioc3_w_erpir(v) do { ioc3->erpir = cpu_to_be32(v); } while (0) 191 #define ioc3_r_ertr() be32_to_cpu(ioc3->ertr) 192 #define ioc3_w_ertr(v) do { ioc3->ertr = cpu_to_be32(v); } while (0) 193 #define ioc3_r_etcsr() be32_to_cpu(ioc3->etcsr) 194 #define ioc3_w_etcsr(v) do { ioc3->etcsr = cpu_to_be32(v); } while (0) 195 #define ioc3_r_ersr() be32_to_cpu(ioc3->ersr) 196 #define ioc3_w_ersr(v) do { ioc3->ersr = cpu_to_be32(v); } while (0) 197 #define ioc3_r_etcdc() be32_to_cpu(ioc3->etcdc) 198 #define ioc3_w_etcdc(v) do { ioc3->etcdc = cpu_to_be32(v); } while (0) 199 #define ioc3_r_ebir() be32_to_cpu(ioc3->ebir) 200 #define ioc3_w_ebir(v) do { ioc3->ebir = cpu_to_be32(v); } while (0) 201 #define ioc3_r_etbr_h() be32_to_cpu(ioc3->etbr_h) 202 #define ioc3_w_etbr_h(v) do { ioc3->etbr_h = cpu_to_be32(v); } while (0) 203 #define ioc3_r_etbr_l() be32_to_cpu(ioc3->etbr_l) 204 #define ioc3_w_etbr_l(v) do { ioc3->etbr_l = cpu_to_be32(v); } while (0) 205 #define ioc3_r_etcir() be32_to_cpu(ioc3->etcir) 206 #define ioc3_w_etcir(v) do { ioc3->etcir = cpu_to_be32(v); } while (0) 207 #define ioc3_r_etpir() be32_to_cpu(ioc3->etpir) 208 #define ioc3_w_etpir(v) do { ioc3->etpir = cpu_to_be32(v); } while (0) 209 #define ioc3_r_emar_h() be32_to_cpu(ioc3->emar_h) 210 #define ioc3_w_emar_h(v) do { ioc3->emar_h = cpu_to_be32(v); } while (0) 211 #define ioc3_r_emar_l() be32_to_cpu(ioc3->emar_l) 212 #define ioc3_w_emar_l(v) do { ioc3->emar_l = cpu_to_be32(v); } while (0) 213 #define ioc3_r_ehar_h() be32_to_cpu(ioc3->ehar_h) 214 #define ioc3_w_ehar_h(v) do { ioc3->ehar_h = cpu_to_be32(v); } while (0) 215 #define ioc3_r_ehar_l() be32_to_cpu(ioc3->ehar_l) 216 #define ioc3_w_ehar_l(v) do { ioc3->ehar_l = cpu_to_be32(v); } while (0) 217 #define ioc3_r_micr() be32_to_cpu(ioc3->micr) 218 #define ioc3_w_micr(v) do { ioc3->micr = cpu_to_be32(v); } while (0) 219 #define ioc3_r_midr_r() be32_to_cpu(ioc3->midr_r) 220 #define ioc3_w_midr_r(v) do { ioc3->midr_r = cpu_to_be32(v); } while (0) 221 #define ioc3_r_midr_w() be32_to_cpu(ioc3->midr_w) 222 #define ioc3_w_midr_w(v) do { ioc3->midr_w = cpu_to_be32(v); } while (0) 229 static int nic_wait(struct ioc3 *ioc3) nic_wait() argument 240 static int nic_reset(struct ioc3 *ioc3) nic_reset() argument 245 presence = nic_wait(ioc3); nic_reset() 248 nic_wait(ioc3); nic_reset() 253 static inline int nic_read_bit(struct ioc3 *ioc3) nic_read_bit() argument 258 result = nic_wait(ioc3); nic_read_bit() 260 nic_wait(ioc3); nic_read_bit() 265 static inline void nic_write_bit(struct ioc3 *ioc3, int bit) nic_write_bit() argument 272 nic_wait(ioc3); nic_write_bit() 278 static u32 nic_read_byte(struct ioc3 *ioc3) nic_read_byte() argument 284 result = (result >> 1) | (nic_read_bit(ioc3) << 7); nic_read_byte() 292 static void nic_write_byte(struct ioc3 *ioc3, int byte) nic_write_byte() argument 300 nic_write_bit(ioc3, bit); nic_write_byte() 304 static u64 nic_find(struct ioc3 *ioc3, int *last) nic_find() argument 309 nic_reset(ioc3); nic_find() 311 nic_write_byte(ioc3, 0xf0); nic_find() 315 a = nic_read_bit(ioc3); nic_find() 316 b = nic_read_bit(ioc3); nic_find() 332 nic_write_bit(ioc3, address & (1UL << index)); nic_find() 339 nic_write_bit(ioc3, a); nic_find() 349 static int nic_init(struct ioc3 *ioc3) nic_init() argument 359 reg = nic_find(ioc3, &save); nic_init() 373 nic_reset(ioc3); nic_init() 376 nic_write_byte(ioc3, 0x55); nic_init() 378 nic_write_byte(ioc3, (reg >> (i << 3)) & 0xff); nic_init() 403 struct ioc3 *ioc3 = ip->regs; ioc3_get_eaddr_nic() local 411 if (!nic_init(ioc3)) ioc3_get_eaddr_nic() 422 nic_write_byte(ioc3, 0xf0); ioc3_get_eaddr_nic() 423 nic_write_byte(ioc3, 0x00); ioc3_get_eaddr_nic() 424 nic_write_byte(ioc3, 0x00); ioc3_get_eaddr_nic() 427 nic[i] = nic_read_byte(ioc3); ioc3_get_eaddr_nic() 448 struct ioc3 *ioc3 = ip->regs; __ioc3_set_mac_address() local 476 struct ioc3 *ioc3 = ip->regs; ioc3_mdio_read() local 488 struct ioc3 *ioc3 = ip->regs; ioc3_mdio_write() local 501 struct ioc3 *ioc3 = ip->regs; ioc3_get_stats() local 579 struct ioc3 *ioc3 = ip->regs; ioc3_rx() local 656 struct ioc3 *ioc3 = ip->regs; ioc3_tx() local 735 struct ioc3 *ioc3 = ip->regs; ioc3_interrupt() local 759 struct ioc3 *ioc3 = ip->regs; ioc3_setup_duplex() local 946 struct ioc3 *ioc3 = ip->regs; ioc3_init_rings() local 976 struct ioc3 *ioc3 = ip->regs; ioc3_ssram_disc() local 977 volatile u32 *ssram0 = &ioc3->ssram[0x0000]; ioc3_ssram_disc() 978 volatile u32 *ssram1 = &ioc3->ssram[0x4000]; ioc3_ssram_disc() 999 struct ioc3 *ioc3 = ip->regs; ioc3_init() local 1036 struct ioc3 *ioc3 = ip->regs; ioc3_stop() local 1119 * addresses on a partitioned machine. Since we currently use the ioc3 1121 * driver uses for pci/pnp ports (there is an entry for the SGI ioc3 1124 * port 0. So, we just use one serial port from each ioc3 (since the 1134 * around ioc3 oddities in this respect. 1171 static void ioc3_serial_probe(struct pci_dev *pdev, struct ioc3 *ioc3) ioc3_serial_probe() argument 1189 ioc3->gpcr_s = GPCR_UARTA_MODESEL | GPCR_UARTB_MODESEL; ioc3_serial_probe() 1190 ioc3->gpcr_s; ioc3_serial_probe() 1191 ioc3->gppr_6 = 0; ioc3_serial_probe() 1192 ioc3->gppr_6; ioc3_serial_probe() 1193 ioc3->gppr_7 = 0; ioc3_serial_probe() 1194 ioc3->gppr_7; ioc3_serial_probe() 1195 ioc3->sscr_a = ioc3->sscr_a & ~SSCR_DMA_EN; ioc3_serial_probe() 1196 ioc3->sscr_a; ioc3_serial_probe() 1197 ioc3->sscr_b = ioc3->sscr_b & ~SSCR_DMA_EN; ioc3_serial_probe() 1198 ioc3->sscr_b; ioc3_serial_probe() 1200 ioc3->sio_iec &= ~ (SIO_IR_SA_TX_MT | SIO_IR_SA_RX_FULL | ioc3_serial_probe() 1204 ioc3->sio_iec |= SIO_IR_SA_INT; ioc3_serial_probe() 1205 ioc3->sscr_a = 0; ioc3_serial_probe() 1206 ioc3->sio_iec &= ~ (SIO_IR_SB_TX_MT | SIO_IR_SB_RX_FULL | ioc3_serial_probe() 1210 ioc3->sio_iec |= SIO_IR_SB_INT; ioc3_serial_probe() 1211 ioc3->sscr_b = 0; ioc3_serial_probe() 1213 ioc3_8250_register(&ioc3->sregs.uarta); ioc3_serial_probe() 1214 ioc3_8250_register(&ioc3->sregs.uartb); ioc3_serial_probe() 1236 struct ioc3 *ioc3; ioc3_probe() local 1273 err = pci_request_regions(pdev, "ioc3"); ioc3_probe() 1285 ioc3 = (struct ioc3 *) ioremap(ioc3_base, ioc3_size); ioc3_probe() 1286 if (!ioc3) { ioc3_probe() 1292 ip->regs = ioc3; ioc3_probe() 1295 ioc3_serial_probe(pdev, ioc3); ioc3_probe() 1315 printk(KERN_CRIT "ioc3-eth(%s): Didn't find a PHY, goodbye.\n", ioc3_probe() 1373 struct ioc3 *ioc3 = ip->regs; ioc3_remove_one() local 1378 iounmap(ioc3); ioc3_remove_one() 1394 .name = "ioc3-eth", 1404 struct ioc3 *ioc3 = ip->regs; ioc3_start_xmit() local 1634 struct ioc3 *ioc3 = ip->regs; ioc3_set_multicast_list() local
|
/linux-4.1.27/include/linux/ |
H A D | ioc3.h | 12 #include <asm/sn/ioc3.h> 30 struct ioc3 __iomem *vma; /* pointer to registers */ 65 int reset_mask; /* non-zero if you want the ioc3.c module to reset interrupts */
|
/linux-4.1.27/arch/ia64/include/asm/sn/ |
H A D | ioc3.h | 55 struct ioc3 { struct 66 * modify them use the functions in ioc3.c 90 /* These don't exist on the ioc3 serial card... */
|
/linux-4.1.27/drivers/sn/ |
H A D | ioc3.c | 17 #include <linux/ioc3.h> 656 if (!request_mem_region(idd->pma, IOC3_PCI_SIZE, "ioc3")) { ioc3_probe() 707 "ioc3-eth", (void *)idd)) { ioc3_probe() 715 "ioc3-io", (void *)idd)) { ioc3_probe() 724 "ioc3", (void *)idd)) { ioc3_probe()
|
/linux-4.1.27/drivers/rtc/ |
H A D | rtc-m48t35.c | 159 * kludge: remove the #ifndef after ioc3 resource m48t35_probe()
|
/linux-4.1.27/drivers/tty/serial/ |
H A D | ioc3_serial.c | 10 * This file contains a module version of the ioc3 serial driver. This 23 #include <linux/ioc3.h> 27 * Interesting things about the ioc3 376 * port_init - Initialize the sio and ioc3 hardware for a given port 1968 * @idd: ioc3 driver data for this submodule 2006 * @idd: ioc3 driver data for this card
|
/linux-4.1.27/arch/mips/include/asm/sn/ |
H A D | ioc3.h | 70 struct ioc3 { struct
|