Lines Matching refs:adap

124 #define pch_dbg(adap, fmt, arg...)  \
125 dev_dbg(adap->pch_adapter.dev.parent, "%s :" fmt, __func__, ##arg)
127 #define pch_err(adap, fmt, arg...) \
128 dev_err(adap->pch_adapter.dev.parent, "%s :" fmt, __func__, ##arg)
218 * @adap: Pointer to struct i2c_algo_pch_data.
220 static void pch_i2c_init(struct i2c_algo_pch_data *adap)
222 void __iomem *p = adap->pch_base_address;
235 pch_setbit(adap->pch_base_address, PCH_I2CCTL, PCH_I2CCTL_I2CMEN);
243 pch_dbg(adap, "Fast mode enabled\n");
259 pch_dbg(adap,
273 * @adap: Pointer to struct i2c_algo_pch_data.
276 static s32 pch_i2c_wait_for_bus_idle(struct i2c_algo_pch_data *adap,
279 void __iomem *p = adap->pch_base_address;
285 pch_dbg(adap, "I2CSR = %x\n", ioread32(p + PCH_I2CSR));
286 pch_err(adap, "%s: Timeout Error.return%d\n",
288 pch_i2c_init(adap);
308 * @adap: Pointer to struct i2c_algo_pch_data.
312 static void pch_i2c_start(struct i2c_algo_pch_data *adap)
314 void __iomem *p = adap->pch_base_address;
315 pch_dbg(adap, "I2CCTL = %x\n", ioread32(p + PCH_I2CCTL));
316 pch_setbit(adap->pch_base_address, PCH_I2CCTL, PCH_START);
321 * @adap: Pointer to struct i2c_algo_pch_data.
323 static s32 pch_i2c_wait_for_xfer_complete(struct i2c_algo_pch_data *adap)
327 (adap->pch_event_flag != 0), msecs_to_jiffies(1000));
330 pch_err(adap, "timeout: %x\n", adap->pch_event_flag);
331 adap->pch_event_flag = 0;
335 if (adap->pch_event_flag & I2C_ERROR_MASK) {
336 pch_err(adap, "error bits set: %x\n", adap->pch_event_flag);
337 adap->pch_event_flag = 0;
341 adap->pch_event_flag = 0;
348 * @adap: Pointer to struct i2c_algo_pch_data.
350 static s32 pch_i2c_getack(struct i2c_algo_pch_data *adap)
353 void __iomem *p = adap->pch_base_address;
357 pch_err(adap, "return%d\n", -EPROTO);
366 * @adap: Pointer to struct i2c_algo_pch_data.
368 static void pch_i2c_stop(struct i2c_algo_pch_data *adap)
370 void __iomem *p = adap->pch_base_address;
371 pch_dbg(adap, "I2CCTL = %x\n", ioread32(p + PCH_I2CCTL));
373 pch_clrbit(adap->pch_base_address, PCH_I2CCTL, PCH_START);
378 * @adap: Pointer to struct i2c_algo_pch_data.
380 static void pch_i2c_repstart(struct i2c_algo_pch_data *adap)
382 void __iomem *p = adap->pch_base_address;
383 pch_dbg(adap, "I2CCTL = %x\n", ioread32(p + PCH_I2CCTL));
384 pch_setbit(adap->pch_base_address, PCH_I2CCTL, PCH_REPSTART);
399 struct i2c_algo_pch_data *adap = i2c_adap->algo_data;
407 void __iomem *p = adap->pch_base_address;
414 pch_setbit(adap->pch_base_address, PCH_I2CCTL, I2C_TX_MODE);
416 pch_dbg(adap, "I2CCTL = %x msgs->len = %d\n", ioread32(p + PCH_I2CCTL),
420 if (pch_i2c_wait_for_bus_idle(adap, BUS_IDLE_TIMEOUT) == -ETIME)
428 pch_i2c_start(adap);
430 rtn = pch_i2c_wait_for_xfer_complete(adap);
432 if (pch_i2c_getack(adap)) {
433 pch_dbg(adap, "Receive NACK for slave address"
440 pch_err(adap, "Lost Arbitration\n");
441 pch_clrbit(adap->pch_base_address, PCH_I2CSR,
443 pch_clrbit(adap->pch_base_address, PCH_I2CSR,
445 pch_i2c_init(adap);
448 pch_i2c_stop(adap);
455 pch_i2c_start(adap);
458 rtn = pch_i2c_wait_for_xfer_complete(adap);
460 if (pch_i2c_getack(adap)) {
461 pch_dbg(adap, "Receive NACK for slave address"
466 pch_err(adap, "Lost Arbitration\n");
467 pch_clrbit(adap->pch_base_address, PCH_I2CSR, I2CMAL_BIT);
468 pch_clrbit(adap->pch_base_address, PCH_I2CSR, I2CMIF_BIT);
469 pch_i2c_init(adap);
472 pch_i2c_stop(adap);
479 pch_dbg(adap, "writing %x to Data register\n", buf[wrcount]);
481 rtn = pch_i2c_wait_for_xfer_complete(adap);
483 if (pch_i2c_getack(adap)) {
484 pch_dbg(adap, "Receive NACK for slave address"
488 pch_clrbit(adap->pch_base_address, PCH_I2CSR,
490 pch_clrbit(adap->pch_base_address, PCH_I2CSR,
493 pch_i2c_stop(adap);
500 pch_i2c_stop(adap);
502 pch_i2c_repstart(adap);
504 pch_dbg(adap, "return=%d\n", wrcount);
511 * @adap: Pointer to struct i2c_algo_pch_data.
513 static void pch_i2c_sendack(struct i2c_algo_pch_data *adap)
515 void __iomem *p = adap->pch_base_address;
516 pch_dbg(adap, "I2CCTL = %x\n", ioread32(p + PCH_I2CCTL));
517 pch_clrbit(adap->pch_base_address, PCH_I2CCTL, PCH_ACK);
522 * @adap: Pointer to struct i2c_algo_pch_data.
524 static void pch_i2c_sendnack(struct i2c_algo_pch_data *adap)
526 void __iomem *p = adap->pch_base_address;
527 pch_dbg(adap, "I2CCTL = %x\n", ioread32(p + PCH_I2CCTL));
528 pch_setbit(adap->pch_base_address, PCH_I2CCTL, PCH_ACK);
533 * @adap: Pointer to struct i2c_algo_pch_data.
537 static void pch_i2c_restart(struct i2c_algo_pch_data *adap)
539 void __iomem *p = adap->pch_base_address;
540 pch_dbg(adap, "I2CCTL = %x\n", ioread32(p + PCH_I2CCTL));
541 pch_setbit(adap->pch_base_address, PCH_I2CCTL, PCH_RESTART);
554 struct i2c_algo_pch_data *adap = i2c_adap->algo_data;
562 void __iomem *p = adap->pch_base_address;
570 pch_clrbit(adap->pch_base_address, PCH_I2CCTL, I2C_TX_MODE);
573 if (pch_i2c_wait_for_bus_idle(adap, BUS_IDLE_TIMEOUT) == -ETIME)
581 pch_i2c_start(adap);
583 rtn = pch_i2c_wait_for_xfer_complete(adap);
585 if (pch_i2c_getack(adap)) {
586 pch_dbg(adap, "Receive NACK for slave address"
593 pch_err(adap, "Lost Arbitration\n");
594 pch_clrbit(adap->pch_base_address, PCH_I2CSR,
596 pch_clrbit(adap->pch_base_address, PCH_I2CSR,
598 pch_i2c_init(adap);
601 pch_i2c_stop(adap);
604 pch_i2c_restart(adap);
605 rtn = pch_i2c_wait_for_xfer_complete(adap);
607 if (pch_i2c_getack(adap)) {
608 pch_dbg(adap, "Receive NACK for slave address"
616 pch_err(adap, "Lost Arbitration\n");
617 pch_clrbit(adap->pch_base_address, PCH_I2CSR,
619 pch_clrbit(adap->pch_base_address, PCH_I2CSR,
621 pch_i2c_init(adap);
624 pch_i2c_stop(adap);
635 pch_i2c_start(adap);
637 rtn = pch_i2c_wait_for_xfer_complete(adap);
639 if (pch_i2c_getack(adap)) {
640 pch_dbg(adap, "Receive NACK for slave address"
645 pch_err(adap, "Lost Arbitration\n");
646 pch_clrbit(adap->pch_base_address, PCH_I2CSR, I2CMAL_BIT);
647 pch_clrbit(adap->pch_base_address, PCH_I2CSR, I2CMIF_BIT);
648 pch_i2c_init(adap);
651 pch_i2c_stop(adap);
656 pch_i2c_stop(adap);
663 pch_i2c_sendack(adap);
672 rtn = pch_i2c_wait_for_xfer_complete(adap);
674 if (pch_i2c_getack(adap)) {
675 pch_dbg(adap, "Receive NACK for slave"
680 pch_i2c_stop(adap);
686 pch_i2c_sendnack(adap);
693 rtn = pch_i2c_wait_for_xfer_complete(adap);
695 if (pch_i2c_getack(adap)) {
696 pch_dbg(adap, "Receive NACK for slave"
701 pch_i2c_stop(adap);
706 pch_i2c_stop(adap);
708 pch_i2c_repstart(adap);
719 * @adap: Pointer to struct i2c_algo_pch_data.
721 static void pch_i2c_cb(struct i2c_algo_pch_data *adap)
724 void __iomem *p = adap->pch_base_address;
729 adap->pch_event_flag |= I2CMAL_EVENT;
732 adap->pch_event_flag |= I2CMCF_EVENT;
735 pch_clrbit(adap->pch_base_address, PCH_I2CSR, sts);
737 pch_dbg(adap, "PCH_I2CSR = %x\n", ioread32(p + PCH_I2CSR));
789 struct i2c_algo_pch_data *adap = i2c_adap->algo_data;
795 if (adap->p_adapter_info->pch_i2c_suspended) {
800 pch_dbg(adap, "adap->p_adapter_info->pch_i2c_suspended is %d\n",
801 adap->p_adapter_info->pch_i2c_suspended);
803 adap->pch_i2c_xfer_in_progress = true;
807 pmsg->flags |= adap->pch_buff_mode_en;
809 pch_dbg(adap,
821 adap->pch_i2c_xfer_in_progress = false; /* transfer completed */
830 * @adap: Pointer to struct i2c_algo_pch_data.
832 static u32 pch_i2c_func(struct i2c_adapter *adap)
844 * @adap: Pointer to struct i2c_algo_pch_data.
846 static void pch_i2c_disbl_int(struct i2c_algo_pch_data *adap)
848 void __iomem *p = adap->pch_base_address;
850 pch_clrbit(adap->pch_base_address, PCH_I2CCTL, NORMAL_INTR_ENBL);