Lines Matching +full:sc +full:- +full:resource

1 /*-
41 #include <machine/resource.h>
65 #define WR4(_sc, _b, _r, _v) bus_write_4((_sc)->mem_res[_b], (_r), (_v))
66 #define RD4(_sc, _b, _r) bus_read_4((_sc)->mem_res[_b], (_r))
74 { -1, 0 }
78 {"nvidia,tegra124-ictlr", 1},
79 {"nvidia,tegra210-ictlr", 1},
85 struct resource *mem_res[nitems(lic_spec)];
91 struct resource *res, struct intr_map_data *data) in tegra_lic_activate_intr()
93 struct tegra_lic_sc *sc = device_get_softc(dev); in tegra_lic_activate_intr() local
95 return (PIC_ACTIVATE_INTR(sc->parent, isrc, res, data)); in tegra_lic_activate_intr()
101 struct tegra_lic_sc *sc = device_get_softc(dev); in tegra_lic_disable_intr() local
103 PIC_DISABLE_INTR(sc->parent, isrc); in tegra_lic_disable_intr()
109 struct tegra_lic_sc *sc = device_get_softc(dev); in tegra_lic_enable_intr() local
111 PIC_ENABLE_INTR(sc->parent, isrc); in tegra_lic_enable_intr()
118 struct tegra_lic_sc *sc = device_get_softc(dev); in tegra_lic_map_intr() local
120 return (PIC_MAP_INTR(sc->parent, data, isrcp)); in tegra_lic_map_intr()
125 struct resource *res, struct intr_map_data *data) in tegra_lic_deactivate_intr()
127 struct tegra_lic_sc *sc = device_get_softc(dev); in tegra_lic_deactivate_intr() local
129 return (PIC_DEACTIVATE_INTR(sc->parent, isrc, res, data)); in tegra_lic_deactivate_intr()
134 struct resource *res, struct intr_map_data *data) in tegra_lic_setup_intr()
136 struct tegra_lic_sc *sc = device_get_softc(dev); in tegra_lic_setup_intr() local
138 return (PIC_SETUP_INTR(sc->parent, isrc, res, data)); in tegra_lic_setup_intr()
143 struct resource *res, struct intr_map_data *data) in tegra_lic_teardown_intr()
145 struct tegra_lic_sc *sc = device_get_softc(dev); in tegra_lic_teardown_intr() local
147 return (PIC_TEARDOWN_INTR(sc->parent, isrc, res, data)); in tegra_lic_teardown_intr()
153 struct tegra_lic_sc *sc = device_get_softc(dev); in tegra_lic_pre_ithread() local
155 PIC_PRE_ITHREAD(sc->parent, isrc); in tegra_lic_pre_ithread()
161 struct tegra_lic_sc *sc = device_get_softc(dev); in tegra_lic_post_ithread() local
163 PIC_POST_ITHREAD(sc->parent, isrc); in tegra_lic_post_ithread()
169 struct tegra_lic_sc *sc = device_get_softc(dev); in tegra_lic_post_filter() local
171 PIC_POST_FILTER(sc->parent, isrc); in tegra_lic_post_filter()
178 struct tegra_lic_sc *sc = device_get_softc(dev); in tegra_lic_bind_intr() local
180 return (PIC_BIND_INTR(sc->parent, isrc)); in tegra_lic_bind_intr()
190 if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0) in tegra_lic_probe()
199 struct tegra_lic_sc *sc; in tegra_lic_attach() local
204 sc = device_get_softc(dev); in tegra_lic_attach()
205 sc->dev = dev; in tegra_lic_attach()
208 rv = OF_getencprop(node, "interrupt-parent", &parent_xref, in tegra_lic_attach()
214 sc->parent = OF_device_from_xref(parent_xref); in tegra_lic_attach()
215 if (sc->parent == NULL) { in tegra_lic_attach()
220 if (bus_alloc_resources(dev, lic_spec, sc->mem_res)) { in tegra_lic_attach()
227 if (sc->mem_res[i] == NULL) in tegra_lic_attach()
229 WR4(sc, i, LIC_CPU_IER_CLR, 0xFFFFFFFF); in tegra_lic_attach()
230 WR4(sc, i, LIC_CPU_IEP_CLASS, 0); in tegra_lic_attach()
240 bus_release_resources(dev, lic_spec, sc->mem_res); in tegra_lic_attach()
247 struct tegra_lic_sc *sc; in tegra_lic_detach() local
250 sc = device_get_softc(dev); in tegra_lic_detach()
252 if (sc->mem_res[i] == NULL) in tegra_lic_detach()
255 sc->mem_res[i]); in tegra_lic_detach()