Lines Matching defs:sc

70 rs5c313_init(struct rs5c313_softc *sc)
75 rtc_ce(sc, 0);
77 rtc_begin(sc);
78 rtc_ce(sc, 1);
80 if ((rs5c313_read_reg(sc, RS5C313_CTRL) & CTRL_XSTP) == 0) {
81 sc->sc_valid = 1;
85 sc->sc_valid = 0;
86 printf("%s: time not valid\n", sc->sc_dev.dv_xname);
88 rs5c313_write_reg(sc, RS5C313_TINT, 0);
89 rs5c313_write_reg(sc, RS5C313_CTRL, (CTRL_BASE | CTRL_ADJ));
92 if (rs5c313_read_reg(sc, RS5C313_CTRL) & CTRL_BSY)
103 rs5c313_write_reg(sc, RS5C313_CTRL, CTRL_BASE);
106 rtc_ce(sc, 0);
111 rs5c313_read_reg(struct rs5c313_softc *sc, int addr)
116 rtc_dir(sc, 1);
119 rtc_write(sc, 1); /* ignored */
120 rtc_write(sc, 1); /* R/#W = 1(READ) */
121 rtc_write(sc, 1); /* AD = 1 */
122 rtc_write(sc, 0); /* DT = 0 */
125 rtc_write(sc, addr & 0x8); /* A3 */
126 rtc_write(sc, addr & 0x4); /* A2 */
127 rtc_write(sc, addr & 0x2); /* A1 */
128 rtc_write(sc, addr & 0x1); /* A0 */
131 rtc_dir(sc, 0);
134 (void)rtc_read(sc);
135 (void)rtc_read(sc);
136 (void)rtc_read(sc);
137 (void)rtc_read(sc);
140 data = rtc_read(sc); /* D3 */
142 data |= rtc_read(sc); /* D2 */
144 data |= rtc_read(sc); /* D1 */
146 data |= rtc_read(sc); /* D0 */
152 rs5c313_write_reg(struct rs5c313_softc *sc, int addr, int data)
155 rtc_dir(sc, 1);
158 rtc_write(sc, 1); /* ignored */
159 rtc_write(sc, 0); /* R/#W = 0 (WRITE) */
160 rtc_write(sc, 1); /* AD = 1 */
161 rtc_write(sc, 0); /* DT = 0 */
164 rtc_write(sc, addr & 0x8); /* A3 */
165 rtc_write(sc, addr & 0x4); /* A2 */
166 rtc_write(sc, addr & 0x2); /* A1 */
167 rtc_write(sc, addr & 0x1); /* A0 */
170 rtc_write(sc, 1); /* ignored */
171 rtc_write(sc, 0); /* R/#W = 0(WRITE) */
172 rtc_write(sc, 0); /* AD = 0 */
173 rtc_write(sc, 1); /* DT = 1 */
176 rtc_write(sc, data & 0x8); /* D3 */
177 rtc_write(sc, data & 0x4); /* D2 */
178 rtc_write(sc, data & 0x2); /* D1 */
179 rtc_write(sc, data & 0x1); /* D0 */
185 struct rs5c313_softc *sc = cookie;
193 if (sc->sc_valid == 0)
198 rtc_begin(sc);
200 rtc_ce(sc, 1);
202 rs5c313_write_reg(sc, RS5C313_CTRL, CTRL_BASE);
203 if ((rs5c313_read_reg(sc, RS5C313_CTRL) & CTRL_BSY) == 0)
206 rtc_ce(sc, 0);
217 int ones = rs5c313_read_reg(sc, RS5C313_ ## y ## 1); \
218 int tens = rs5c313_read_reg(sc, RS5C313_ ## y ## 10); \
229 dt->dt_wday = rs5c313_read_reg(sc, RS5C313_WDAY);
231 rtc_ce(sc, 0);
243 struct rs5c313_softc *sc = cookie;
250 rtc_begin(sc);
252 rtc_ce(sc, 1);
254 rs5c313_write_reg(sc, RS5C313_CTRL, CTRL_BASE);
255 if ((rs5c313_read_reg(sc, RS5C313_CTRL) & CTRL_BSY) == 0)
258 rtc_ce(sc, 0);
270 rs5c313_write_reg(sc, RS5C313_ ## x ## 1, t & 0x0f); \
271 rs5c313_write_reg(sc, RS5C313_ ## x ## 10, (t >> 4) & 0x0f); \
284 rs5c313_write_reg(sc, RS5C313_YEAR1, t & 0x0f);
285 rs5c313_write_reg(sc, RS5C313_YEAR10, (t >> 4) & 0x0f);
287 rs5c313_write_reg(sc, RS5C313_WDAY, dt->dt_wday);
289 rtc_ce(sc, 0);
292 sc->sc_valid = 1;
303 rtc_begin(struct rs5c313_softc *sc)
314 rtc_ce(struct rs5c313_softc *sc, int onoff)
328 rtc_clk(struct rs5c313_softc *sc, int onoff)
344 rtc_dir(struct rs5c313_softc *sc, int output)
359 rtc_read(struct rs5c313_softc *sc)
367 rtc_clk(sc, 0);
369 rtc_clk(sc, 1);
378 rtc_write(struct rs5c313_softc *sc, int bit)
390 rtc_clk(sc, 0);
392 rtc_clk(sc, 1);
422 struct rs5c313_softc *sc = (void *)self;
426 if (rs5c313_init(sc) != 0) {
431 rs5c313_ops._cookie = sc;