Home | History | Annotate | Download | only in i2c

Lines Matching defs:nxt

70 nxt2k_writedata(struct nxt2k *nxt, uint8_t reg, uint8_t *data, size_t len)
77 if ((error = iic_acquire_bus(nxt->tag, 0)) != 0)
83 error = iic_exec(nxt->tag, I2C_OP_WRITE_WITH_STOP, nxt->addr,
86 iic_release_bus(nxt->tag, 0);
92 nxt2k_readdata(struct nxt2k *nxt, uint8_t reg, uint8_t *data, size_t len)
96 if ((error = iic_acquire_bus(nxt->tag, 0)) != 0)
99 error = iic_exec(nxt->tag, I2C_OP_READ_WITH_STOP, nxt->addr,
102 iic_release_bus(nxt->tag, 0);
108 nxt2k_writereg(struct nxt2k *nxt, uint8_t reg, uint8_t *data, size_t len)
112 nxt2k_writedata(nxt, 0x35, &reg, 1);
114 nxt2k_writedata(nxt, 0x36, data, len);
125 nxt2k_writedata(nxt, 0x34, &len2, 1);
127 nxt2k_writedata(nxt, 0x21, &buf, 1);
129 nxt2k_readdata(nxt, 0x21, &buf, 1);
138 nxt2k_readreg(struct nxt2k *nxt, uint8_t reg, uint8_t *data, size_t len)
143 nxt2k_writedata(nxt, 0x35, &reg, 1);
153 nxt2k_writedata(nxt, 0x34, &len2, 1);
156 nxt2k_writedata(nxt, 0x21, &buf, 1);
159 nxt2k_readdata(nxt, 0x36+i, &data[i], 1);
166 nxt2k_agc_reset(struct nxt2k *nxt)
169 nxt2k_readreg(nxt, 0x08, &byte, 1);
171 nxt2k_writereg(nxt, 0x08, &byte, 1);
173 nxt2k_writereg(nxt, 0x08, &byte, 1);
178 nxt2k_mc_stop(struct nxt2k *nxt)
187 nxt2k_writedata(nxt, 0x22, &buf, 1);
190 nxt2k_readdata(nxt, 0x31, &buf, 1);
193 mutex_enter(&nxt->mtx);
194 cv_timedwait(&nxt->cv, &nxt->mtx, mstohz(10));
195 mutex_exit(&nxt->mtx);
204 nxt2k_mc_start(struct nxt2k *nxt)
209 nxt2k_writedata(nxt, 0x22, &buf, 1);
213 nxt2k4_mc_init(struct nxt2k *nxt)
220 nxt2k_writedata(nxt, 0x2b, &byte, 1);
222 nxt2k_writedata(nxt, 0x34, &byte, 1);
224 nxt2k_writedata(nxt, 0x35, &byte, 1);
226 nxt2k_writedata(nxt, 0x36, data, 9);
229 nxt2k_writedata(nxt, 0x21, &byte, 1);
232 nxt2k_readdata(nxt, 0x21, &byte, 1);
235 mutex_enter(&nxt->mtx);
236 cv_timedwait(&nxt->cv, &nxt->mtx, mstohz(25));
237 mutex_exit(&nxt->mtx);
265 nxt2k4_load_firmware(struct nxt2k *nxt)
311 nxt2k_writedata(nxt, 0x2b, buf, 1);
317 nxt2k_writedata(nxt, 0x29, buf, 3);
325 nxt2k_writedata(nxt, 0x2c, &blob[position], xfercnt);
332 nxt2k_writedata(nxt, 0x2c, buf, 2);
335 nxt2k_readdata(nxt, 0x2c, buf, 1);
339 nxt2k_writedata(nxt, 0x2b, buf, 1);
348 nxt2k4_init(struct nxt2k *nxt)
354 nxt2k_writedata(nxt, 0x1e, buf, 1);
357 nxt->loaded = nxt2k4_load_firmware(nxt);
358 if (nxt->loaded == false)
363 nxt2k_writedata(nxt, 0x19, buf, 1);
365 nxt2k4_mc_init(nxt);
366 nxt2k_mc_stop(nxt);
367 nxt2k_mc_stop(nxt);
368 nxt2k4_mc_init(nxt);
369 nxt2k_mc_stop(nxt);
372 nxt2k_writereg(nxt, 0x08, buf, 1);
374 nxt2k_writereg(nxt, 0x08, buf, 1);
377 nxt2k_writedata(nxt, 0xd7, buf, 1);
381 nxt2k_writedata(nxt, 0x35, buf, 2);
383 nxt2k_writedata(nxt, 0x34, buf, 1);
385 nxt2k_writedata(nxt, 0x21, buf, 1);
388 nxt2k_writedata(nxt, 0x0a, buf, 1);
391 nxt2k_writereg(nxt, 0x80, buf, 1);
396 nxt2k_writedata(nxt, 0xe9, buf, 2);
400 nxt2k_writedata(nxt, 0xcc, buf, 1);
403 nxt2k_readreg(nxt, 0x80, buf, 1);
405 nxt2k_writereg(nxt, 0x80, buf, 1);
408 nxt2k_readreg(nxt, 0x08, buf, 1);
410 nxt2k_writereg(nxt, 0x08, buf, 1);
411 nxt2k_readreg(nxt, 0x08, buf, 1);
413 nxt2k_writereg(nxt, 0x08, buf, 1);
416 nxt2k_readreg(nxt, 0x80, buf, 1);
418 nxt2k_writereg(nxt, 0x80, buf, 1);
420 nxt2k_writereg(nxt, 0x81, buf, 1);
422 nxt2k_writereg(nxt, 0x82, buf, 3);
424 nxt2k_readreg(nxt, 0x88, buf, 1);
426 nxt2k_writereg(nxt, 0x88, buf, 1);
427 nxt2k_readreg(nxt, 0x80, buf, 1);
429 nxt2k_writereg(nxt, 0x80, buf, 1);
431 nxt2k_readdata(nxt, 0x10, buf, 1);
433 nxt2k_writedata(nxt, 0x10, buf, 1);
434 nxt2k_readdata(nxt, 0x0a, buf, 1);
436 nxt2k_writedata(nxt, 0x0a, buf, 1);
438 nxt2k4_mc_init(nxt);
441 nxt2k_writedata(nxt, 0x0a, buf, 1);
443 nxt2k_writedata(nxt, 0xe9, buf, 1);
445 nxt2k_writedata(nxt, 0xea, buf, 1);
447 nxt2k_readreg(nxt, 0x80, buf, 1);
449 nxt2k_writereg(nxt, 0x80, buf, 1);
450 nxt2k_readreg(nxt, 0x80, buf, 1);
452 nxt2k_writereg(nxt, 0x80, buf, 1);
454 nxt2k_readreg(nxt, 0x08, buf, 1);
456 nxt2k_writereg(nxt, 0x08, buf, 1);
457 nxt2k_readreg(nxt, 0x08, buf, 1);
459 nxt2k_writereg(nxt, 0x08, buf, 1);
461 nxt2k_readreg(nxt, 0x80, buf, 1);
463 nxt2k_writereg(nxt, 0x80, buf, 1);
465 nxt2k_writereg(nxt, 0x81, buf, 1);
467 nxt2k_writereg(nxt, 0x82, buf, 3);
469 nxt2k_readreg(nxt, 0x88, buf, 1);
471 nxt2k_writereg(nxt, 0x88, buf, 1);
473 nxt2k_readreg(nxt, 0x80, buf, 1);
475 nxt2k_writereg(nxt, 0x80, buf, 1);
478 nxt2k_readdata(nxt, 0x10, buf, 1);
480 nxt2k_writedata(nxt, 0x10, buf,1);
482 nxt2k_writedata(nxt, 0x13, buf,1);
484 nxt2k_writedata(nxt, 0x16, buf,1);
486 nxt2k_writedata(nxt, 0x14, buf,1);
488 nxt2k_writedata(nxt, 0x14, buf,1);
489 nxt2k_writedata(nxt, 0x17, buf,1);
490 nxt2k_writedata(nxt, 0x14, buf,1);
491 nxt2k_writedata(nxt, 0x17, buf,1);
498 nxt2k_get_signal(struct nxt2k *nxt)
504 nxt2k_writedata(nxt, 0xa1, b, 1);
506 nxt2k_readreg(nxt, 0xa6, b, 2);
516 nxt2k_get_snr(struct nxt2k *nxt)
523 nxt2k_writedata(nxt, 0xa1, b, 1);
525 nxt2k_readreg(nxt, 0xa6, b, 2);
548 nxt2k_get_dtv_status(struct nxt2k *nxt)
553 nxt2k_readdata(nxt, 0x31, &reg, 1);
564 nxt2k_fe_read_ucblocks(struct nxt2k *nxt, uint32_t *ucblk)
568 nxt2k_readreg(nxt, 0xe6, reg, 3);
575 nxt2k_fe_read_ber(struct nxt2k *nxt, uint32_t *ber)
579 nxt2k_readreg(nxt, 0xe6, reg, 3);
588 nxt2k_fe_set_frontend(struct nxt2k *nxt, fe_modulation_t modulation)
592 if (nxt->loaded != true)
593 nxt2k4_init(nxt);
595 nxt2k_mc_stop(nxt);
600 nxt2k_writedata(nxt, 0x14, buf, 1);
602 nxt2k_writedata(nxt, 0x17, buf, 1);
611 nxt2k_agc_reset(nxt);
626 nxt2k_writedata(nxt, 0x42, buf, 1);
630 nxt2k_writedata(nxt, 0x57, buf, 1);
635 nxt2k_writedata(nxt, 0x58, buf, 2); /* 2k4 */
653 nxt2k_writedata(nxt, 0x5c, buf, 2); /* 2k4 */
657 nxt2k_writedata(nxt, 0x43, buf, 1);
662 nxt2k_writedata(nxt, 0x46, buf, 2);
668 nxt2k_writedata(nxt, 0x4b, buf, 2); /* 2k4 */
672 nxt2k_writedata(nxt, 0x4d, buf, 1);
676 nxt2k_writedata(nxt, 0x55, buf, 1);
680 nxt2k_writedata(nxt, 0x41, buf, 1);
683 nxt2k_readreg(nxt, 0x80, buf, 1);
685 nxt2k_writereg(nxt, 0x80, buf, 1);
688 nxt2k_readreg(nxt, 0x08, buf, 1);
690 nxt2k_writereg(nxt, 0x08, buf, 1);
691 nxt2k_readreg(nxt, 0x08, buf, 1);
693 nxt2k_writereg(nxt, 0x08, buf, 1);
695 nxt2k_readreg(nxt, 0x80, buf, 1);
697 nxt2k_writereg(nxt, 0x80, buf, 1);
700 nxt2k_writereg(nxt, 0x81, buf, 1);
703 nxt2k_writereg(nxt, 0x82, buf, 3);
705 nxt2k_readreg(nxt, 0x88, buf, 1);
707 nxt2k_writereg(nxt, 0x88, buf, 1);
709 nxt2k_readreg(nxt, 0x80, buf, 1);
711 nxt2k_writereg(nxt, 0x80, buf, 1);
729 nxt2k_writedata(nxt, 0x30, buf, 1);
733 nxt2k_writedata(nxt, 0x41, buf, 1);
739 nxt2k_writedata(nxt, 0x49, buf, 2);
740 nxt2k_writedata(nxt, 0x4b, buf, 2);
745 nxt2k_writedata(nxt, 0x41, buf, 1);
747 nxt2k_mc_start(nxt);
750 nxt2k4_mc_init(nxt);
753 nxt2k_writedata(nxt, 0x5c, buf, 2);
762 nxt2k_init(struct nxt2k *nxt)
768 if (nxt->loaded != 1)
769 ret = nxt2k4_init(nxt);
778 struct nxt2k *nxt;
782 nxt = kmem_alloc(sizeof(*nxt), KM_SLEEP);
783 nxt->parent = parent;
784 nxt->tag = tag;
785 nxt->addr = addr;
788 e = nxt2k_readdata(nxt, 0x00, b, 5);
792 kmem_free(nxt, sizeof(*nxt));
799 kmem_free(nxt, sizeof(*nxt));
803 mutex_init(&nxt->mtx, MUTEX_DEFAULT, IPL_NONE);
804 cv_init(&nxt->cv, "nxtpl");
806 nxt->loaded = false;
808 return nxt;
812 nxt2k_close(struct nxt2k *nxt)
814 kmem_free(nxt, sizeof(*nxt));
818 nxt2k_enable(struct nxt2k *nxt, bool enable)
821 nxt2k_init(nxt);
825 nxt2k_set_modulation(struct nxt2k *nxt, fe_modulation_t modulation)
827 return nxt2k_fe_set_frontend(nxt, modulation);