Lines Matching +full:0 +full:x31000000
25 #define SCC_GSMRL 0x00
28 #define SCC_GSMRL_MODE_QMC (0x0A << 0)
31 #define SCC_GSMRH 0x04
38 #define SCC_SCCE 0x10
42 #define SCC_SCCE_GOV (1 << 0)
45 #define SCC_SCCM 0x14
47 #define QMC_GBL_MCBASE 0x00
49 #define QMC_GBL_QMCSTATE 0x04
51 #define QMC_GBL_MRBLR 0x06
53 #define QMC_GBL_TX_S_PTR 0x08
55 #define QMC_GBL_RXPTR 0x0A
57 #define QMC_GBL_GRFTHR 0x0C
59 #define QMC_GBL_GRFCNT 0x0E
61 #define QMC_GBL_INTBASE 0x10
63 #define QMC_GBL_INTPTR 0x14
65 #define QMC_GBL_RX_S_PTR 0x18
67 #define QMC_GBL_TXPTR 0x1A
69 #define QMC_GBL_C_MASK32 0x1C
71 #define QMC_GBL_TSATRX 0x20
73 #define QMC_GBL_TSATTX 0x60
75 #define QMC_GBL_C_MASK16 0xA0
80 #define QMC_TSA_MASK (0x303F)
84 #define QMC_SPE_TBASE 0x00
87 #define QMC_SPE_CHAMR 0x02
89 #define QMC_SPE_CHAMR_MODE_TRANSP ((0 << 15) | (1 << 13))
94 #define QMC_SPE_CHAMR_HDLC_NOF (0x0f << 0)
99 #define QMC_SPE_TSTATE 0x04
101 #define QMC_SPE_TBPTR 0x0C
103 #define QMC_SPE_ZISTATE 0x14
105 #define QMC_SPE_INTMSK 0x1C
107 #define QMC_SPE_RBASE 0x20
109 #define QMC_SPE_MFLR 0x22
111 #define QMC_SPE_TMRBLR 0x22
113 #define QMC_SPE_RSTATE 0x24
115 #define QMC_SPE_RBPTR 0x2C
117 #define QMC_SPE_RPACK 0x30
119 #define QMC_SPE_ZDSTATE 0x34
122 #define QMC_SPE_TRNSYNC 0x3C
124 #define QMC_SPE_TRNSYNC_TX(x) ((x) << 0)
131 #define QMC_INT_GET_CHANNEL(x) (((x) & 0x0FC0) >> 6)
137 #define QMC_INT_RXB (1 << 0)
159 #define QMC_BD_TX_PAD (0x0f << 0)
274 return 0; in qmc_chan_get_info()
311 return 0; in qmc_chan_set_param()
326 * 0 0 : The BD is free in qmc_chan_write_submit()
328 * 0 1 : The BD is in used, waiting for completion in qmc_chan_write_submit()
329 * 1 0 : Should not append in qmc_chan_write_submit()
362 ret = 0; in qmc_chan_write_submit()
381 * 0 0 : The BD is free in qmc_chan_write_done()
383 * 0 1 : The BD is in used, waiting for completion in qmc_chan_write_done()
384 * 1 0 : Should not append in qmc_chan_write_done()
433 * 0 0 : The BD is free in qmc_chan_read_submit()
435 * 0 1 : The BD is in used, waiting for completion in qmc_chan_read_submit()
436 * 1 0 : Should not append in qmc_chan_read_submit()
449 qmc_write16(&bd->cbd_datlen, 0); /* data length is updated by the QMC */ in qmc_chan_read_submit()
465 qmc_write32(chan->s_param + QMC_SPE_ZDSTATE, 0x18000080); in qmc_chan_read_submit()
467 qmc_write32(chan->s_param + QMC_SPE_ZDSTATE, 0x00000080); in qmc_chan_read_submit()
468 qmc_write32(chan->s_param + QMC_SPE_RSTATE, 0x31000000); in qmc_chan_read_submit()
478 ret = 0; in qmc_chan_read_submit()
497 * 0 0 : The BD is free in qmc_chan_read_done()
499 * 0 1 : The BD is in used, waiting for completion in qmc_chan_read_done()
500 * 1 0 : Should not append in qmc_chan_read_done()
543 return cpm_command(chan->id << 2, (qmc_opcode << 4) | 0x0E); in qmc_chan_command()
554 ret = qmc_chan_command(chan, 0x0); in qmc_chan_stop_rx()
576 ret = qmc_chan_command(chan, 0x1); in qmc_chan_stop_tx()
606 return 0; in qmc_chan_stop()
618 qmc_write32(chan->s_param + QMC_SPE_ZDSTATE, 0x18000080); in qmc_chan_start_rx()
620 qmc_write32(chan->s_param + QMC_SPE_ZDSTATE, 0x00000080); in qmc_chan_start_rx()
621 qmc_write32(chan->s_param + QMC_SPE_RSTATE, 0x31000000); in qmc_chan_start_rx()
657 return 0; in qmc_chan_start()
686 chan->rx_pending = 0; in qmc_chan_reset_rx()
721 qmc_write32(chan->s_param + QMC_SPE_TSTATE, 0x30000000); in qmc_chan_reset_tx()
722 qmc_write32(chan->s_param + QMC_SPE_ZISTATE, 0x00000100); in qmc_chan_reset_tx()
735 return 0; in qmc_chan_reset()
744 u64 tx_ts_mask = 0; in qmc_check_chans()
745 u64 rx_ts_mask = 0; in qmc_check_chans()
803 return 0; in qmc_check_chans()
808 unsigned int count = 0; in qmc_nb_chans()
909 for (i = 0; i < 64; i++) in qmc_setup_tsa_64rxtx()
910 qmc_write16(qmc->scc_pram + QMC_GBL_TSATRX + (i * 2), 0x0000); in qmc_setup_tsa_64rxtx()
914 for (i = 0; i < info->nb_rx_ts; i++) { in qmc_setup_tsa_64rxtx()
935 return 0; in qmc_setup_tsa_64rxtx()
950 for (i = 0; i < 32; i++) { in qmc_setup_tsa_32rx_32tx()
951 qmc_write16(qmc->scc_pram + QMC_GBL_TSATRX + (i * 2), 0x0000); in qmc_setup_tsa_32rx_32tx()
952 qmc_write16(qmc->scc_pram + QMC_GBL_TSATTX + (i * 2), 0x0000); in qmc_setup_tsa_32rx_32tx()
958 for (i = 0; i < info->nb_rx_ts; i++) { in qmc_setup_tsa_32rx_32tx()
967 for (i = 0; i < info->nb_tx_ts; i++) { in qmc_setup_tsa_32rx_32tx()
993 return 0; in qmc_setup_tsa_32rx_32tx()
1028 first_rx = chan->rx_ts_mask ? __ffs64(chan->rx_ts_mask) + 1 : 0; in qmc_setup_chan_trnsync()
1033 trnsync = 0; in qmc_setup_chan_trnsync()
1041 dev_dbg(qmc->dev, "chan %u: trnsync=0x%04x, rx %u/%u 0x%llx, tx %u/%u 0x%llx\n", in qmc_setup_chan_trnsync()
1046 return 0; in qmc_setup_chan_trnsync()
1078 qmc_write32(chan->s_param + QMC_SPE_TSTATE, 0x30000000); in qmc_setup_chan()
1079 qmc_write32(chan->s_param + QMC_SPE_RSTATE, 0x31000000); in qmc_setup_chan()
1080 qmc_write32(chan->s_param + QMC_SPE_ZISTATE, 0x00000100); in qmc_setup_chan()
1082 qmc_write32(chan->s_param + QMC_SPE_ZDSTATE, 0x18000080); in qmc_setup_chan()
1092 qmc_write32(chan->s_param + QMC_SPE_ZDSTATE, 0x00000080); in qmc_setup_chan()
1099 qmc_write16(chan->s_param + QMC_SPE_INTMSK, 0x0000); in qmc_setup_chan()
1102 BUILD_BUG_ON(QMC_NB_RXBDS == 0); in qmc_setup_chan()
1104 for (i = 0; i < QMC_NB_RXBDS; i++) { in qmc_setup_chan()
1112 BUILD_BUG_ON(QMC_NB_TXBDS == 0); in qmc_setup_chan()
1116 for (i = 0; i < QMC_NB_TXBDS; i++) { in qmc_setup_chan()
1123 return 0; in qmc_setup_chan()
1137 return 0; in qmc_setup_chans()
1164 return 0; in qmc_finalize_chans()
1173 for (i = 0; i < (qmc->int_size / sizeof(u16)); i++) in qmc_setup_ints()
1174 qmc_write16(qmc->int_table + i, 0x0000); in qmc_setup_ints()
1182 return 0; in qmc_setup_ints()
1208 dev_info(qmc->dev, "intr chan %u, 0x%04x (UN)\n", chan_id, in qmc_irq_gint()
1214 dev_info(qmc->dev, "intr chan %u, 0x%04x (BSY)\n", chan_id, in qmc_irq_gint()
1221 qmc_write32(chan->s_param + QMC_SPE_ZDSTATE, 0x18000080); in qmc_irq_gint()
1223 qmc_write32(chan->s_param + QMC_SPE_ZDSTATE, 0x00000080); in qmc_irq_gint()
1224 qmc_write32(chan->s_param + QMC_SPE_RSTATE, 0x31000000); in qmc_irq_gint()
1288 return 0; in qmc_cpm1_init_resources()
1314 qmc_write16(qmc->scc_regs + SCC_SCCM, 0x0000); in qmc_cpm1_init_scc()
1315 qmc_write16(qmc->scc_regs + SCC_SCCE, 0x000F); in qmc_cpm1_init_scc()
1317 return 0; in qmc_cpm1_init_scc()
1374 memset(qmc->bd_table, 0, qmc->bd_size); in qmc_probe()
1386 memset(qmc->int_table, 0, qmc->int_size); in qmc_probe()
1398 qmc_write32(qmc->scc_pram + QMC_GBL_C_MASK32, 0xDEBB20E3); in qmc_probe()
1399 qmc_write16(qmc->scc_pram + QMC_GBL_C_MASK16, 0xF0B8); in qmc_probe()
1405 qmc_write16(qmc->scc_pram + QMC_GBL_QMCSTATE, 0x8000); in qmc_probe()
1422 irq = platform_get_irq(pdev, 0); in qmc_probe()
1423 if (irq < 0) { in qmc_probe()
1427 ret = devm_request_irq(qmc->dev, irq, qmc_irq_handler, 0, "qmc", qmc); in qmc_probe()
1428 if (ret < 0) in qmc_probe()
1436 if (ret < 0) in qmc_probe()
1444 return 0; in qmc_probe()
1447 qmc_write16(qmc->scc_regs + SCC_SCCM, 0); in qmc_probe()
1459 qmc_setbits32(qmc->scc_regs + SCC_GSMRL, 0); in qmc_remove()
1462 qmc_write16(qmc->scc_regs + SCC_SCCM, 0); in qmc_remove()
1492 ret = of_parse_phandle_with_fixed_args(np, phandle_name, 1, 0, in qmc_chan_get_byphandle()
1494 if (ret < 0) in qmc_chan_get_byphandle()
1518 if (out_args.args[0] >= ARRAY_SIZE(qmc->chans)) { in qmc_chan_get_byphandle()
1523 qmc_chan = qmc->chans[out_args.args[0]]; in qmc_chan_get_byphandle()