Lines Matching +full:non +full:- +full:volatile

1 // SPDX-License-Identifier: GPL-2.0+
10 * Hacked for MPC8260 by Murray.Jensen@cmst.csiro.au, 19-Oct-00.
75 volatile ccsr_cpm_t *cpm = (ccsr_cpm_t *)CONFIG_SYS_MPC85xx_CPM_ADDR; in mpc85xx_serial_init()
76 volatile ccsr_cpm_scc_t *sp; in mpc85xx_serial_init()
77 volatile scc_uart_t *up; in mpc85xx_serial_init()
78 volatile cbd_t *tbdf, *rbdf; in mpc85xx_serial_init()
79 volatile ccsr_cpm_cp_t *cp = &(cpm->im_cpm_cp); in mpc85xx_serial_init()
84 sp = (ccsr_cpm_scc_t *) &(cpm->im_cpm_scc[SCC_INDEX]); in mpc85xx_serial_init()
85 up = (scc_uart_t *)&(cpm->im_dprambase[PROFF_SCC]); in mpc85xx_serial_init()
89 sp->gsmrl &= ~(SCC_GSMRL_ENR | SCC_GSMRL_ENT); in mpc85xx_serial_init()
91 /* put the SCC channel into NMSI (non multiplexd serial interface) in mpc85xx_serial_init()
92 * mode and wire the selected SCC Tx and Rx clocks to BRGx (15-15). in mpc85xx_serial_init()
94 cpm->im_cpm_mux.cmxscr = \ in mpc85xx_serial_init()
95 (cpm->im_cpm_mux.cmxscr&~CMXSCR_MASK)|CMXSCR_VALUE; in mpc85xx_serial_init()
110 rbdf = (cbd_t *)&(cpm->im_dprambase[dpaddr]); in mpc85xx_serial_init()
111 rbdf->cbd_bufaddr = (uint) (rbdf+2); in mpc85xx_serial_init()
112 rbdf->cbd_sc = BD_SC_EMPTY | BD_SC_WRAP; in mpc85xx_serial_init()
114 tbdf->cbd_bufaddr = ((uint) (rbdf+2)) + 1; in mpc85xx_serial_init()
115 tbdf->cbd_sc = BD_SC_WRAP; in mpc85xx_serial_init()
119 up->scc_genscc.scc_rbase = dpaddr; in mpc85xx_serial_init()
120 up->scc_genscc.scc_tbase = dpaddr+sizeof(cbd_t); in mpc85xx_serial_init()
121 up->scc_genscc.scc_rfcr = CPMFCR_EB; in mpc85xx_serial_init()
122 up->scc_genscc.scc_tfcr = CPMFCR_EB; in mpc85xx_serial_init()
123 up->scc_genscc.scc_mrblr = 1; in mpc85xx_serial_init()
124 up->scc_maxidl = 0; in mpc85xx_serial_init()
125 up->scc_brkcr = 1; in mpc85xx_serial_init()
126 up->scc_parec = 0; in mpc85xx_serial_init()
127 up->scc_frmec = 0; in mpc85xx_serial_init()
128 up->scc_nosec = 0; in mpc85xx_serial_init()
129 up->scc_brkec = 0; in mpc85xx_serial_init()
130 up->scc_uaddr1 = 0; in mpc85xx_serial_init()
131 up->scc_uaddr2 = 0; in mpc85xx_serial_init()
132 up->scc_toseq = 0; in mpc85xx_serial_init()
133 up->scc_char1 = up->scc_char2 = up->scc_char3 = up->scc_char4 = 0x8000; in mpc85xx_serial_init()
134 up->scc_char5 = up->scc_char6 = up->scc_char7 = up->scc_char8 = 0x8000; in mpc85xx_serial_init()
135 up->scc_rccm = 0xc0ff; in mpc85xx_serial_init()
139 sp->sccm = 0; in mpc85xx_serial_init()
140 sp->scce = 0xffff; in mpc85xx_serial_init()
144 sp->gsmrh = SCC_GSMRH_RFW; /* 8 bit FIFO */ in mpc85xx_serial_init()
145 sp->gsmrl = \ in mpc85xx_serial_init()
151 sp->psmr = SCU_PSMR_CL; in mpc85xx_serial_init()
156 while (cp->cpcr & CPM_CR_FLG) /* wait if cp is busy */ in mpc85xx_serial_init()
159 cp->cpcr = mk_cr_cmd(CPM_CR_SCC_PAGE, CPM_CR_SCC_SBLOCK, in mpc85xx_serial_init()
162 while (cp->cpcr & CPM_CR_FLG) /* wait if cp is busy */ in mpc85xx_serial_init()
167 sp->gsmrl |= SCC_GSMRL_ENR | SCC_GSMRL_ENT; in mpc85xx_serial_init()
175 m8560_cpm_extcbrg(SCC_INDEX, gd->baudrate, in mpc85xx_serial_setbrg()
178 m8560_cpm_setbrg(SCC_INDEX, gd->baudrate); in mpc85xx_serial_setbrg()
184 volatile scc_uart_t *up; in mpc85xx_serial_putc()
185 volatile cbd_t *tbdf; in mpc85xx_serial_putc()
186 volatile ccsr_cpm_t *cpm = (ccsr_cpm_t *)CONFIG_SYS_MPC85xx_CPM_ADDR; in mpc85xx_serial_putc()
191 up = (scc_uart_t *)&(cpm->im_dprambase[PROFF_SCC]); in mpc85xx_serial_putc()
192 tbdf = (cbd_t *)&(cpm->im_dprambase[up->scc_genscc.scc_tbase]); in mpc85xx_serial_putc()
196 while (tbdf->cbd_sc & BD_SC_READY) in mpc85xx_serial_putc()
201 *(volatile char *)tbdf->cbd_bufaddr = c; in mpc85xx_serial_putc()
202 tbdf->cbd_datlen = 1; in mpc85xx_serial_putc()
203 tbdf->cbd_sc |= BD_SC_READY; in mpc85xx_serial_putc()
208 volatile cbd_t *rbdf; in mpc85xx_serial_getc()
209 volatile scc_uart_t *up; in mpc85xx_serial_getc()
210 volatile ccsr_cpm_t *cpm = (ccsr_cpm_t *)CONFIG_SYS_MPC85xx_CPM_ADDR; in mpc85xx_serial_getc()
213 up = (scc_uart_t *)&(cpm->im_dprambase[PROFF_SCC]); in mpc85xx_serial_getc()
214 rbdf = (cbd_t *)&(cpm->im_dprambase[up->scc_genscc.scc_rbase]); in mpc85xx_serial_getc()
218 while (rbdf->cbd_sc & BD_SC_EMPTY) in mpc85xx_serial_getc()
223 c = *(volatile unsigned char *)rbdf->cbd_bufaddr; in mpc85xx_serial_getc()
224 rbdf->cbd_sc |= BD_SC_EMPTY; in mpc85xx_serial_getc()
231 volatile cbd_t *rbdf; in mpc85xx_serial_tstc()
232 volatile scc_uart_t *up; in mpc85xx_serial_tstc()
233 volatile ccsr_cpm_t *cpm = (ccsr_cpm_t *)CONFIG_SYS_MPC85xx_CPM_ADDR; in mpc85xx_serial_tstc()
235 up = (scc_uart_t *)&(cpm->im_dprambase[PROFF_SCC]); in mpc85xx_serial_tstc()
236 rbdf = (cbd_t *)&(cpm->im_dprambase[up->scc_genscc.scc_rbase]); in mpc85xx_serial_tstc()
238 return ((rbdf->cbd_sc & BD_SC_EMPTY) == 0); in mpc85xx_serial_tstc()