Lines Matching defs:sc

107 	struct beep_softc *sc = (void *)self;
111 sc->sc_iot = ea->ea_memtag;
115 if (bus_space_map(sc->sc_iot, ea->ea_vaddrs[0], 0,
116 BUS_SPACE_MAP_PROMADDRESS, &sc->sc_ioh)) {
120 } else if (ebus_bus_map(sc->sc_iot, 0,
122 &sc->sc_ioh) != 0) {
128 sc->sc_clk = getpropint(findroot(), "clock-frequency", 0);
129 sc->sc_clk /= 2;
136 sc->sc_freqs[i].reg = 1 << (18 - i);
137 sc->sc_freqs[i].freq = sc->sc_clk / sc->sc_freqs[i].reg;
141 beep_setfreq(sc, 1200);
144 bus_space_write_1(sc->sc_iot, sc->sc_ioh, BEEP_CTRL,
148 bus_space_write_1(sc->sc_iot, sc->sc_ioh, BEEP_CTRL,
152 printf(": clock %sMHz\n", clockfreq(sc->sc_clk));
155 timeout_set(&sc->sc_to, beep_stop, sc);
156 hidkbd_hookup_bell(beep_bell, sc);
161 beep_setfreq(struct beep_softc *sc, int freq)
165 n = sizeof(sc->sc_freqs)/sizeof(sc->sc_freqs[0]);
167 if (freq < sc->sc_freqs[0].freq)
169 if (freq > sc->sc_freqs[n - 1].freq)
173 if (sc->sc_freqs[i].freq == freq)
175 else if (sc->sc_freqs[i].freq > freq) {
178 diff1 = freq - sc->sc_freqs[i - 1].freq;
179 diff2 = sc->sc_freqs[i].freq - freq;
190 bus_space_write_1(sc->sc_iot, sc->sc_ioh, BEEP_CNT_0,
191 (sc->sc_freqs[i].reg >> 24) & 0xff);
192 bus_space_write_1(sc->sc_iot, sc->sc_ioh, BEEP_CNT_1,
193 (sc->sc_freqs[i].reg >> 16) & 0xff);
194 bus_space_write_1(sc->sc_iot, sc->sc_ioh, BEEP_CNT_2,
195 (sc->sc_freqs[i].reg >> 8) & 0xff);
196 bus_space_write_1(sc->sc_iot, sc->sc_ioh, BEEP_CNT_3,
197 (sc->sc_freqs[i].reg >> 0) & 0xff);
204 struct beep_softc *sc = vsc;
208 bus_space_write_1(sc->sc_iot, sc->sc_ioh, BEEP_CTRL,
210 sc->sc_bellactive = 0;
211 sc->sc_belltimeout = 0;
218 struct beep_softc *sc = vsc;
222 if (sc->sc_bellactive) {
223 if (sc->sc_belltimeout == 0)
224 timeout_del(&sc->sc_to);
227 beep_stop(sc);
231 if (!sc->sc_bellactive) {
232 sc->sc_bellactive = 1;
233 sc->sc_belltimeout = 1;
234 bus_space_write_1(sc->sc_iot, sc->sc_ioh, BEEP_CTRL,
236 timeout_add_msec(&sc->sc_to, period);