Lines Matching +full:parent +full:- +full:clock +full:- +full:frequency

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
51 static void pmufreq_identify(driver_t *driver, device_t parent);
82 pmufreq_identify(driver_t *driver, device_t parent) in pmufreq_identify() argument
87 node = ofw_bus_get_node(parent); in pmufreq_identify()
88 if (OF_getprop(node, "min-clock-frequency", &min_freq, sizeof(min_freq)) == -1) in pmufreq_identify()
92 if (device_find_child(parent, "pmufreq", DEVICE_UNIT_ANY) != NULL) in pmufreq_identify()
99 if (BUS_ADD_CHILD(parent, 10, "pmufreq", DEVICE_UNIT_ANY) == NULL) in pmufreq_identify()
100 device_printf(parent, "add pmufreq child failed\n"); in pmufreq_identify()
114 * A scalable MPC7455 has min-clock-frequency/max-clock-frequency as OFW in pmufreq_probe()
117 if (OF_getprop(node, "min-clock-frequency", &min_freq, sizeof(min_freq)) == -1) in pmufreq_probe()
119 device_set_desc(dev, "PMU-based frequency scaling"); in pmufreq_probe()
130 sc->dev = dev; in pmufreq_attach()
133 OF_getprop(node, "min-clock-frequency", &sc->minfreq, sizeof(sc->minfreq)); in pmufreq_attach()
134 OF_getprop(node, "max-clock-frequency", &sc->maxfreq, sizeof(sc->maxfreq)); in pmufreq_attach()
135 OF_getprop(node, "rounded-clock-frequency", &sc->curfreq, sizeof(sc->curfreq)); in pmufreq_attach()
136 sc->minfreq /= 1000000; in pmufreq_attach()
137 sc->maxfreq /= 1000000; in pmufreq_attach()
138 sc->curfreq /= 1000000; in pmufreq_attach()
158 sets[0].freq = sc->maxfreq; sets[0].dev = dev; in pmufreq_settings()
159 sets[1].freq = sc->minfreq; sets[1].dev = dev; in pmufreq_settings()
160 /* Set high latency for CPU frequency changes, it's a tedious process. */ in pmufreq_settings()
179 if (set->freq == sc->maxfreq) in pmufreq_set()
186 sc->curfreq = set->freq; in pmufreq_set()
200 set->freq = sc->curfreq; in pmufreq_get()
201 set->dev = dev; in pmufreq_get()