Lines Matching refs:clknode

61 typedef TAILQ_HEAD(clknode_list, clknode) clknode_list_t;
65 static int clknode_method_init(struct clknode *clk, device_t dev);
66 static int clknode_method_recalc_freq(struct clknode *clk, uint64_t *freq);
67 static int clknode_method_set_freq(struct clknode *clk, uint64_t fin,
69 static int clknode_method_set_gate(struct clknode *clk, bool enable);
70 static int clknode_method_set_mux(struct clknode *clk, int idx);
84 DEFINE_CLASS_0(clknode, clknode_class, clknode_methods, 0);
91 struct clknode { struct
96 TAILQ_ENTRY(clknode) clkdom_link; /* Domain list entry */ argument
97 TAILQ_ENTRY(clknode) clklist_link; /* Global list entry */
105 struct clknode **parents; /* Array of potential parents */ argument
106 struct clknode *parent; /* Current parent */ argument
110 TAILQ_ENTRY(clknode) sibling_link; /* Our entry in parent's list */
133 struct clknode *clknode; argument
180 static void clknode_adjust_parent(struct clknode *clknode, int idx);
200 clknode_method_init(struct clknode *clknode, device_t dev) in clknode_method_init() argument
207 clknode_method_recalc_freq(struct clknode *clknode, uint64_t *freq) in clknode_method_recalc_freq() argument
214 clknode_method_set_freq(struct clknode *clknode, uint64_t fin, uint64_t *fout, in clknode_method_set_freq() argument
223 clknode_method_set_gate(struct clknode *clk, bool enable) in clknode_method_set_gate()
230 clknode_method_set_mux(struct clknode *clk, int idx) in clknode_method_set_mux()
282 clknode_refresh_cache(struct clknode *clknode, uint64_t freq) in clknode_refresh_cache() argument
285 struct clknode *entry; in clknode_refresh_cache()
290 rv = CLKNODE_RECALC_FREQ(clknode, &freq); in clknode_refresh_cache()
297 clknode->name); in clknode_refresh_cache()
301 clknode->freq = freq; in clknode_refresh_cache()
304 TAILQ_FOREACH(entry, &(clknode->children), sibling_link) { in clknode_refresh_cache()
316 struct clknode *
319 struct clknode *entry; in clknode_find_by_name()
330 struct clknode *
333 struct clknode *entry; in clknode_find_by_id()
370 phandle_t *cells, struct clknode **clk) in clknode_default_ofw_map()
435 struct clknode *clknode; in clkdom_finit() local
457 TAILQ_FOREACH(clknode, &clkdom->clknode_list, clkdom_link) { in clkdom_finit()
458 TAILQ_INSERT_TAIL(&clknode_list, clknode, clklist_link); in clkdom_finit()
464 TAILQ_FOREACH(clknode, &clkdom->clknode_list, clkdom_link) { in clkdom_finit()
465 if (clknode->parent_cnt == 0) in clkdom_finit()
467 for (i = 0; i < clknode->parent_cnt; i++) { in clkdom_finit()
468 if (clknode->parents[i] != NULL) in clkdom_finit()
470 if (clknode->parent_names[i] == NULL) in clkdom_finit()
472 clknode->parents[i] = clknode_find_by_name( in clkdom_finit()
473 clknode->parent_names[i]); in clkdom_finit()
474 if (clknode->parents[i] == NULL) { in clkdom_finit()
477 clknode->name, clknode->parent_names[i]); in clkdom_finit()
483 if (clknode->parent_idx == CLKNODE_IDX_NONE) { in clkdom_finit()
486 clknode->name); in clkdom_finit()
490 if (clknode->parents[clknode->parent_idx] == NULL) { in clkdom_finit()
493 clknode->name, clknode->parent_idx, in clkdom_finit()
494 clknode->parent_names[clknode->parent_idx]); in clkdom_finit()
498 clknode_adjust_parent(clknode, clknode->parent_idx); in clkdom_finit()
508 struct clknode *clknode; in clkdom_dump() local
513 TAILQ_FOREACH(clknode, &clkdom->clknode_list, clkdom_link) { in clkdom_dump()
514 rv = clknode_get_freq(clknode, &freq); in clkdom_dump()
517 clknode->name, rv); in clkdom_dump()
521 if (clknode->parent != NULL) { in clkdom_dump()
523 clknode->name, clknode->parent->name, in clkdom_dump()
524 clknode->parent_idx, (uintmax_t)freq); in clkdom_dump()
527 clknode->name, (uintmax_t)freq); in clkdom_dump()
536 struct clknode *
540 struct clknode *clknode; in clknode_create() local
557 clknode = clknode_find_by_name(def->name); in clknode_create()
559 if (clknode != NULL) { in clknode_create()
560 if (!(clknode->flags & CLK_NODE_LINKED) && in clknode_create()
567 return (clknode); in clknode_create()
568 } else if (clknode->flags & CLK_NODE_LINKED && in clknode_create()
581 KASSERT(clkdom != clknode->clkdom, in clknode_create()
584 TAILQ_REMOVE(&clkdom->clknode_list, clknode, in clknode_create()
586 TAILQ_REMOVE(&clknode_list, clknode, clklist_link); in clknode_create()
588 } else if (clknode->flags & CLK_NODE_LINKED && in clknode_create()
594 return (clknode); in clknode_create()
601 clknode = malloc(sizeof(struct clknode), M_CLOCK, in clknode_create()
603 sx_init(&clknode->lock, "Clocknode lock"); in clknode_create()
604 TAILQ_INIT(&clknode->children); in clknode_create()
608 kobj_init((kobj_t)clknode, (kobj_class_t)clknode_class); in clknode_create()
612 clknode->softc = malloc(clknode_class->size, in clknode_create()
617 clknode->parents = malloc(sizeof(struct clknode *) * def->parent_cnt, in clknode_create()
622 clknode->name = def->name; in clknode_create()
623 clknode->parent_names = def->parent_names; in clknode_create()
625 clknode->name = strdup(def->name, M_CLOCK); in clknode_create()
626 clknode->parent_names = in clknode_create()
631 clknode->id = def->id; in clknode_create()
632 clknode->clkdom = clkdom; in clknode_create()
633 clknode->flags = def->flags; in clknode_create()
634 clknode->parent_cnt = def->parent_cnt; in clknode_create()
635 clknode->parent = NULL; in clknode_create()
636 clknode->parent_idx = CLKNODE_IDX_NONE; in clknode_create()
639 return (clknode); in clknode_create()
641 sysctl_ctx_init(&clknode->sysctl_ctx); in clknode_create()
642 clknode_oid = SYSCTL_ADD_NODE(&clknode->sysctl_ctx, in clknode_create()
644 OID_AUTO, clknode->name, in clknode_create()
647 SYSCTL_ADD_PROC(&clknode->sysctl_ctx, in clknode_create()
651 clknode, CLKNODE_SYSCTL_FREQUENCY, clknode_sysctl, in clknode_create()
657 kobj_method = kobj_lookup_method(((kobj_t)clknode)->ops->cls, NULL, in clknode_create()
661 SYSCTL_ADD_PROC(&clknode->sysctl_ctx, in clknode_create()
665 clknode, CLKNODE_SYSCTL_GATE, clknode_sysctl, in clknode_create()
670 SYSCTL_ADD_PROC(&clknode->sysctl_ctx, in clknode_create()
674 clknode, CLKNODE_SYSCTL_PARENT, clknode_sysctl, in clknode_create()
677 SYSCTL_ADD_PROC(&clknode->sysctl_ctx, in clknode_create()
681 clknode, CLKNODE_SYSCTL_PARENTS_LIST, clknode_sysctl, in clknode_create()
684 SYSCTL_ADD_PROC(&clknode->sysctl_ctx, in clknode_create()
688 clknode, CLKNODE_SYSCTL_CHILDREN_LIST, clknode_sysctl, in clknode_create()
691 SYSCTL_ADD_INT(&clknode->sysctl_ctx, in clknode_create()
694 CTLFLAG_RD, &clknode->enable_cnt, 0, "The clock enable counter"); in clknode_create()
696 return (clknode); in clknode_create()
702 struct clknode *
703 clknode_register(struct clkdom * clkdom, struct clknode *clknode) in clknode_register() argument
708 if (clknode->flags & CLK_NODE_REGISTERED) in clknode_register()
709 return(clknode); in clknode_register()
711 rv = CLKNODE_INIT(clknode, clknode_get_device(clknode)); in clknode_register()
717 TAILQ_INSERT_TAIL(&clkdom->clknode_list, clknode, clkdom_link); in clknode_register()
718 clknode->flags |= CLK_NODE_REGISTERED; in clknode_register()
719 return (clknode); in clknode_register()
726 struct clknode *clknode; in clknode_finish() local
729 TAILQ_FOREACH(clknode, &clknode_list, clklist_link) { in clknode_finish()
730 if (clknode->flags & CLK_NODE_LINKED) in clknode_finish()
732 clknode->name); in clknode_finish()
744 clknode_adjust_parent(struct clknode *clknode, int idx) in clknode_adjust_parent() argument
749 if (clknode->parent_cnt == 0) in clknode_adjust_parent()
751 if ((idx == CLKNODE_IDX_NONE) || (idx >= clknode->parent_cnt)) in clknode_adjust_parent()
753 __func__, idx, clknode->name); in clknode_adjust_parent()
755 if (clknode->parents[idx] == NULL) in clknode_adjust_parent()
757 __func__, idx, clknode->name); in clknode_adjust_parent()
760 if (clknode->parent != NULL) { in clknode_adjust_parent()
761 TAILQ_REMOVE(&clknode->parent->children, clknode, sibling_link); in clknode_adjust_parent()
765 clknode->parent_idx = idx; in clknode_adjust_parent()
766 clknode->parent = clknode->parents[idx]; in clknode_adjust_parent()
767 TAILQ_INSERT_TAIL(&clknode->parent->children, clknode, sibling_link); in clknode_adjust_parent()
774 clknode_init_parent_idx(struct clknode *clknode, int idx) in clknode_init_parent_idx() argument
777 if (clknode->parent_cnt == 0) { in clknode_init_parent_idx()
778 clknode->parent_idx = CLKNODE_IDX_NONE; in clknode_init_parent_idx()
779 clknode->parent = NULL; in clknode_init_parent_idx()
783 (idx >= clknode->parent_cnt) || in clknode_init_parent_idx()
784 (clknode->parent_names[idx] == NULL)) in clknode_init_parent_idx()
786 __func__, idx, clknode->name); in clknode_init_parent_idx()
787 clknode->parent_idx = idx; in clknode_init_parent_idx()
791 clknode_set_parent_by_idx(struct clknode *clknode, int idx) in clknode_set_parent_by_idx() argument
800 if (clknode->parent_cnt == 0) in clknode_set_parent_by_idx()
803 if (clknode->parent_idx == idx) in clknode_set_parent_by_idx()
806 oldidx = clknode->parent_idx; in clknode_set_parent_by_idx()
807 clknode_adjust_parent(clknode, idx); in clknode_set_parent_by_idx()
808 rv = CLKNODE_SET_MUX(clknode, idx); in clknode_set_parent_by_idx()
810 clknode_adjust_parent(clknode, oldidx); in clknode_set_parent_by_idx()
813 rv = clknode_get_freq(clknode->parent, &freq); in clknode_set_parent_by_idx()
816 rv = clknode_refresh_cache(clknode, freq); in clknode_set_parent_by_idx()
821 clknode_set_parent_by_name(struct clknode *clknode, const char *name) in clknode_set_parent_by_name() argument
830 if (clknode->parent_cnt == 0) in clknode_set_parent_by_name()
839 if (clknode->parent_cnt == 1) { in clknode_set_parent_by_name()
840 rv = clknode_set_parent_by_name(clknode->parent, name); in clknode_set_parent_by_name()
844 for (idx = 0; idx < clknode->parent_cnt; idx++) { in clknode_set_parent_by_name()
845 if (clknode->parent_names[idx] == NULL) in clknode_set_parent_by_name()
847 if (strcmp(clknode->parent_names[idx], name) == 0) in clknode_set_parent_by_name()
850 if (idx >= clknode->parent_cnt) { in clknode_set_parent_by_name()
853 if (clknode->parent_idx == idx) in clknode_set_parent_by_name()
856 oldidx = clknode->parent_idx; in clknode_set_parent_by_name()
857 clknode_adjust_parent(clknode, idx); in clknode_set_parent_by_name()
858 rv = CLKNODE_SET_MUX(clknode, idx); in clknode_set_parent_by_name()
860 clknode_adjust_parent(clknode, oldidx); in clknode_set_parent_by_name()
861 CLKNODE_UNLOCK(clknode); in clknode_set_parent_by_name()
864 rv = clknode_get_freq(clknode->parent, &freq); in clknode_set_parent_by_name()
867 rv = clknode_refresh_cache(clknode, freq); in clknode_set_parent_by_name()
871 struct clknode *
872 clknode_get_parent(struct clknode *clknode) in clknode_get_parent() argument
875 return (clknode->parent); in clknode_get_parent()
879 clknode_get_name(struct clknode *clknode) in clknode_get_name() argument
882 return (clknode->name); in clknode_get_name()
886 clknode_get_parent_names(struct clknode *clknode) in clknode_get_parent_names() argument
889 return (clknode->parent_names); in clknode_get_parent_names()
893 clknode_get_parents_num(struct clknode *clknode) in clknode_get_parents_num() argument
896 return (clknode->parent_cnt); in clknode_get_parents_num()
900 clknode_get_parent_idx(struct clknode *clknode) in clknode_get_parent_idx() argument
903 return (clknode->parent_idx); in clknode_get_parent_idx()
907 clknode_get_flags(struct clknode *clknode) in clknode_get_flags() argument
910 return (clknode->flags); in clknode_get_flags()
915 clknode_get_softc(struct clknode *clknode) in clknode_get_softc() argument
918 return (clknode->softc); in clknode_get_softc()
922 clknode_get_device(struct clknode *clknode) in clknode_get_device() argument
925 return (clknode->clkdom->dev); in clknode_get_device()
941 clknode_get_freq(struct clknode *clknode, uint64_t *freq) in clknode_get_freq() argument
948 *freq = clknode->freq; in clknode_get_freq()
953 if (clknode->parent_cnt > 0) { in clknode_get_freq()
954 rv = clknode_get_freq(clknode->parent, freq); in clknode_get_freq()
961 CLKNODE_XLOCK(clknode); in clknode_get_freq()
962 rv = CLKNODE_RECALC_FREQ(clknode, freq); in clknode_get_freq()
964 CLKNODE_UNLOCK(clknode); in clknode_get_freq()
966 clknode->name, rv); in clknode_get_freq()
971 clknode->freq = *freq; in clknode_get_freq()
972 CLKNODE_UNLOCK(clknode); in clknode_get_freq()
977 _clknode_set_freq(struct clknode *clknode, uint64_t *freq, int flags, in _clknode_set_freq() argument
987 if (clknode->freq == *freq) in _clknode_set_freq()
999 clknode->enable_cnt > 1 && in _clknode_set_freq()
1000 clknode->enable_cnt > enablecnt && in _clknode_set_freq()
1001 (clknode->flags & CLK_NODE_GLITCH_FREE) == 0) { in _clknode_set_freq()
1006 if (clknode->parent_cnt > 0) { in _clknode_set_freq()
1007 rv = clknode_get_freq(clknode->parent, &parent_freq); in _clknode_set_freq()
1014 rv = CLKNODE_SET_FREQ(clknode, parent_freq, freq, flags, &done); in _clknode_set_freq()
1017 clknode->name, rv); in _clknode_set_freq()
1019 clknode_refresh_cache(clknode, parent_freq); in _clknode_set_freq()
1026 clknode->freq = *freq; in _clknode_set_freq()
1028 if (clknode->parent_cnt > 0) { in _clknode_set_freq()
1029 rv = clknode_get_freq(clknode->parent, in _clknode_set_freq()
1035 clknode_refresh_cache(clknode, parent_freq); in _clknode_set_freq()
1037 } else if (clknode->parent != NULL) { in _clknode_set_freq()
1039 rv = _clknode_set_freq(clknode->parent, freq, flags, in _clknode_set_freq()
1044 clknode->name); in _clknode_set_freq()
1052 clknode_set_freq(struct clknode *clknode, uint64_t freq, int flags, in clknode_set_freq() argument
1056 return (_clknode_set_freq(clknode, &freq, flags, enablecnt)); in clknode_set_freq()
1060 clknode_test_freq(struct clknode *clknode, uint64_t freq, int flags, in clknode_test_freq() argument
1065 rv = _clknode_set_freq(clknode, &freq, flags | CLK_SET_DRYRUN, in clknode_test_freq()
1074 clknode_enable(struct clknode *clknode) in clknode_enable() argument
1081 if (clknode->parent_cnt > 0) { in clknode_enable()
1082 rv = clknode_enable(clknode->parent); in clknode_enable()
1089 CLKNODE_XLOCK(clknode); in clknode_enable()
1090 if (clknode->enable_cnt == 0) { in clknode_enable()
1091 rv = CLKNODE_SET_GATE(clknode, 1); in clknode_enable()
1093 CLKNODE_UNLOCK(clknode); in clknode_enable()
1097 clknode->enable_cnt++; in clknode_enable()
1098 CLKNODE_UNLOCK(clknode); in clknode_enable()
1103 clknode_disable(struct clknode *clknode) in clknode_disable() argument
1110 CLKNODE_XLOCK(clknode); in clknode_disable()
1112 if ((clknode->enable_cnt == 1) && in clknode_disable()
1113 ((clknode->flags & CLK_NODE_CANNOT_STOP) == 0)) { in clknode_disable()
1114 rv = CLKNODE_SET_GATE(clknode, 0); in clknode_disable()
1116 CLKNODE_UNLOCK(clknode); in clknode_disable()
1120 clknode->enable_cnt--; in clknode_disable()
1121 CLKNODE_UNLOCK(clknode); in clknode_disable()
1123 if (clknode->parent_cnt > 0) { in clknode_disable()
1124 rv = clknode_disable(clknode->parent); in clknode_disable()
1130 clknode_stop(struct clknode *clknode, int depth) in clknode_stop() argument
1137 CLKNODE_XLOCK(clknode); in clknode_stop()
1139 if ((clknode->enable_cnt != 0) && (depth == 0)) { in clknode_stop()
1140 CLKNODE_UNLOCK(clknode); in clknode_stop()
1144 if ((clknode->enable_cnt == 0) && in clknode_stop()
1145 ((clknode->flags & CLK_NODE_CANNOT_STOP) == 0)) { in clknode_stop()
1146 rv = CLKNODE_SET_GATE(clknode, 0); in clknode_stop()
1148 CLKNODE_UNLOCK(clknode); in clknode_stop()
1152 CLKNODE_UNLOCK(clknode); in clknode_stop()
1154 if (clknode->parent_cnt > 0) in clknode_stop()
1155 rv = clknode_stop(clknode->parent, depth + 1); in clknode_stop()
1166 clk_create(struct clknode *clknode, device_t dev) in clk_create() argument
1174 clk->clknode = clknode; in clk_create()
1176 clknode->ref_cnt++; in clk_create()
1185 struct clknode *clknode; in clk_get_freq() local
1187 clknode = clk->clknode; in clk_get_freq()
1188 KASSERT(clknode->ref_cnt > 0, in clk_get_freq()
1189 ("Attempt to access unreferenced clock: %s\n", clknode->name)); in clk_get_freq()
1192 rv = clknode_get_freq(clknode, freq); in clk_get_freq()
1201 struct clknode *clknode; in clk_set_freq() local
1204 clknode = clk->clknode; in clk_set_freq()
1205 KASSERT(clknode->ref_cnt > 0, in clk_set_freq()
1206 ("Attempt to access unreferenced clock: %s\n", clknode->name)); in clk_set_freq()
1209 rv = clknode_set_freq(clknode, freq, flags, clk->enable_cnt); in clk_set_freq()
1218 struct clknode *clknode; in clk_test_freq() local
1221 clknode = clk->clknode; in clk_test_freq()
1222 KASSERT(clknode->ref_cnt > 0, in clk_test_freq()
1223 ("Attempt to access unreferenced clock: %s\n", clknode->name)); in clk_test_freq()
1226 rv = clknode_set_freq(clknode, freq, flags | CLK_SET_DRYRUN, 0); in clk_test_freq()
1234 struct clknode *clknode; in clk_get_parent() local
1235 struct clknode *parentnode; in clk_get_parent()
1237 clknode = clk->clknode; in clk_get_parent()
1238 KASSERT(clknode->ref_cnt > 0, in clk_get_parent()
1239 ("Attempt to access unreferenced clock: %s\n", clknode->name)); in clk_get_parent()
1242 parentnode = clknode_get_parent(clknode); in clk_get_parent()
1256 struct clknode *clknode; in clk_set_parent_by_clk() local
1257 struct clknode *parentnode; in clk_set_parent_by_clk()
1259 clknode = clk->clknode; in clk_set_parent_by_clk()
1260 parentnode = parent->clknode; in clk_set_parent_by_clk()
1261 KASSERT(clknode->ref_cnt > 0, in clk_set_parent_by_clk()
1262 ("Attempt to access unreferenced clock: %s\n", clknode->name)); in clk_set_parent_by_clk()
1264 ("Attempt to access unreferenced clock: %s\n", clknode->name)); in clk_set_parent_by_clk()
1266 rv = clknode_set_parent_by_name(clknode, parentnode->name); in clk_set_parent_by_clk()
1275 struct clknode *clknode; in clk_enable() local
1277 clknode = clk->clknode; in clk_enable()
1278 KASSERT(clknode->ref_cnt > 0, in clk_enable()
1279 ("Attempt to access unreferenced clock: %s\n", clknode->name)); in clk_enable()
1281 rv = clknode_enable(clknode); in clk_enable()
1292 struct clknode *clknode; in clk_disable() local
1294 clknode = clk->clknode; in clk_disable()
1295 KASSERT(clknode->ref_cnt > 0, in clk_disable()
1296 ("Attempt to access unreferenced clock: %s\n", clknode->name)); in clk_disable()
1298 ("Attempt to disable already disabled clock: %s\n", clknode->name)); in clk_disable()
1300 rv = clknode_disable(clknode); in clk_disable()
1311 struct clknode *clknode; in clk_stop() local
1313 clknode = clk->clknode; in clk_stop()
1314 KASSERT(clknode->ref_cnt > 0, in clk_stop()
1315 ("Attempt to access unreferenced clock: %s\n", clknode->name)); in clk_stop()
1317 ("Attempt to stop already enabled clock: %s\n", clknode->name)); in clk_stop()
1320 rv = clknode_stop(clknode, 0); in clk_stop()
1328 struct clknode *clknode; in clk_release() local
1330 clknode = clk->clknode; in clk_release()
1331 KASSERT(clknode->ref_cnt > 0, in clk_release()
1332 ("Attempt to access unreferenced clock: %s\n", clknode->name)); in clk_release()
1335 clknode_disable(clknode); in clk_release()
1338 CLKNODE_XLOCK(clknode); in clk_release()
1339 clknode->ref_cnt--; in clk_release()
1340 CLKNODE_UNLOCK(clknode); in clk_release()
1351 struct clknode *clknode; in clk_get_name() local
1353 clknode = clk->clknode; in clk_get_name()
1354 KASSERT(clknode->ref_cnt > 0, in clk_get_name()
1355 ("Attempt to access unreferenced clock: %s\n", clknode->name)); in clk_get_name()
1356 name = clknode_get_name(clknode); in clk_get_name()
1363 struct clknode *clknode; in clk_get_by_name() local
1366 clknode = clknode_find_by_name(name); in clk_get_by_name()
1367 if (clknode == NULL) { in clk_get_by_name()
1371 *clk = clk_create(clknode, dev); in clk_get_by_name()
1379 struct clknode *clknode; in clk_get_by_id() local
1383 clknode = clknode_find_by_id(clkdom, id); in clk_get_by_id()
1384 if (clknode == NULL) { in clk_get_by_id()
1388 *clk = clk_create(clknode, dev); in clk_get_by_id()
1499 struct clknode *clknode; in clk_get_by_ofw_index_prop() local
1531 rv = clkdom->ofw_mapper(clkdom, ncells, cells, &clknode); in clk_get_by_ofw_index_prop()
1533 *clk = clk_create(clknode, dev); in clk_get_by_ofw_index_prop()
1643 struct clknode *clknode; in clkdom_sysctl() local
1652 TAILQ_FOREACH(clknode, &clkdom->clknode_list, clkdom_link) { in clkdom_sysctl()
1653 sbuf_printf(sb, "%s ", clknode->name); in clkdom_sysctl()
1665 struct clknode *clknode, *children; in clknode_sysctl() local
1673 clknode = arg1; in clknode_sysctl()
1681 if (clknode->parent) in clknode_sysctl()
1682 sbuf_printf(sb, "%s", clknode->parent->name); in clknode_sysctl()
1685 parent_names = clknode_get_parent_names(clknode); in clknode_sysctl()
1686 for (i = 0; i < clknode->parent_cnt; i++) in clknode_sysctl()
1690 TAILQ_FOREACH(children, &(clknode->children), sibling_link) { in clknode_sysctl()
1695 ret = clknode_get_freq(clknode, &freq); in clknode_sysctl()
1702 ret = CLKNODE_GET_GATE(clknode, &enable); in clknode_sysctl()