Lines Matching +full:i2c +full:- +full:lt +full:- +full:enable
1 // SPDX-License-Identifier: GPL-2.0-or-later
219 * This routine performs device-specific initialization only. in idtg2_em_init()
223 pr_debug("RIO: %s [%d:%d]\n", __func__, rdev->destid, rdev->hopcount); in idtg2_em_init()
225 /* Set Port-Write info CSR: PRIO=3 and CRF=1 */ in idtg2_em_init()
229 * Configure LT LAYER error reporting. in idtg2_em_init()
232 /* Enable standard (RIO.p8) error reporting */ in idtg2_em_init()
237 /* Use Port-Writes for LT layer error reporting. in idtg2_em_init()
238 * Enable per-port reset in idtg2_em_init()
255 /* Use Port-Writes for port error reporting and enable error logging */ in idtg2_em_init()
256 tmp = RIO_GET_TOTAL_PORTS(rdev->swpinfo); in idtg2_em_init()
275 /* Use Port-Writes for lane error reporting (when enabled) in idtg2_em_init()
276 * (do per-lane update because lanes may have different configuration) in idtg2_em_init()
278 tmp = (rdev->did == RIO_DID_IDTCPS1848) ? 48 : 16; in idtg2_em_init()
289 /* Disable JTAG and I2C Error capture */ in idtg2_em_init()
292 /* Disable JTAG and I2C Error reporting/logging */ in idtg2_em_init()
295 /* Disable Port-Write notification from JTAG */ in idtg2_em_init()
298 /* Disable Port-Write notification from I2C */ in idtg2_em_init()
309 /* Disable Port-Writes for Configuration Block error reporting */ in idtg2_em_init()
316 rdev->phys_efptr + RIO_PORT_LINKTO_CTL_CSR, 0x8e << 8); in idtg2_em_init()
327 rdev->em_efptr + RIO_EM_LTL_ERR_DETECT, &em_ltlerrdet); in idtg2_em_handler()
346 rdev->em_efptr + RIO_EM_PN_ERR_DETECT(portnum), &em_perrdet); in idtg2_em_handler()
348 /* Service Port-Level Error(s) */ in idtg2_em_handler()
378 len += snprintf(buf + len, PAGE_SIZE - len, in idtg2_show_errlog()
380 if (len >= (PAGE_SIZE - 10)) in idtg2_show_errlog()
391 struct device *dev = &rdev->dev; in idtg2_sysfs()
420 spin_lock(&rdev->rswitch->lock); in idtg2_probe()
422 if (rdev->rswitch->ops) { in idtg2_probe()
423 spin_unlock(&rdev->rswitch->lock); in idtg2_probe()
424 return -EINVAL; in idtg2_probe()
427 rdev->rswitch->ops = &idtg2_switch_ops; in idtg2_probe()
429 if (rdev->do_enum) { in idtg2_probe()
435 spin_unlock(&rdev->rswitch->lock); in idtg2_probe()
437 /* Create device-specific sysfs attributes */ in idtg2_probe()
446 spin_lock(&rdev->rswitch->lock); in idtg2_remove()
447 if (rdev->rswitch->ops != &idtg2_switch_ops) { in idtg2_remove()
448 spin_unlock(&rdev->rswitch->lock); in idtg2_remove()
451 rdev->rswitch->ops = NULL; in idtg2_remove()
452 spin_unlock(&rdev->rswitch->lock); in idtg2_remove()
453 /* Remove device-specific sysfs attributes */ in idtg2_remove()