svn commit: r302523 - head/sys/dev/extres/clk
Jared McNeill
jmcneill at FreeBSD.org
Sun Jul 10 10:53:52 UTC 2016
Author: jmcneill
Date: Sun Jul 10 10:53:50 2016
New Revision: 302523
URL: https://svnweb.freebsd.org/changeset/base/302523
Log:
Add clk_get_by_ofw_node_index, which is like clk_get_by_ofw_index but
operates on a specific OF node instead of the pass in device's OF node.
Reviewed by: andrew, mmel
Differential Revision: https://reviews.freebsd.org/D6957
Modified:
head/sys/dev/extres/clk/clk.c
head/sys/dev/extres/clk/clk.h
Modified: head/sys/dev/extres/clk/clk.c
==============================================================================
--- head/sys/dev/extres/clk/clk.c Sun Jul 10 10:38:28 2016 (r302522)
+++ head/sys/dev/extres/clk/clk.c Sun Jul 10 10:53:50 2016 (r302523)
@@ -1198,13 +1198,7 @@ clk_get_by_id(device_t dev, struct clkdo
int
clk_get_by_ofw_index(device_t dev, int idx, clk_t *clk)
{
- phandle_t cnode, parent, *cells;
- device_t clockdev;
- int ncells, rv;
- struct clkdom *clkdom;
- struct clknode *clknode;
-
- *clk = NULL;
+ phandle_t cnode;
cnode = ofw_bus_get_node(dev);
if (cnode <= 0) {
@@ -1213,6 +1207,20 @@ clk_get_by_ofw_index(device_t dev, int i
return (ENXIO);
}
+ return (clk_get_by_ofw_node_index(dev, cnode, idx, clk));
+}
+
+int
+clk_get_by_ofw_node_index(device_t dev, phandle_t cnode, int idx, clk_t *clk)
+{
+ phandle_t parent, *cells;
+ device_t clockdev;
+ int ncells, rv;
+ struct clkdom *clkdom;
+ struct clknode *clknode;
+
+ *clk = NULL;
+
rv = ofw_bus_parse_xref_list_alloc(cnode, "clocks", "#clock-cells", idx,
&parent, &ncells, &cells);
if (rv != 0) {
Modified: head/sys/dev/extres/clk/clk.h
==============================================================================
--- head/sys/dev/extres/clk/clk.h Sun Jul 10 10:38:28 2016 (r302522)
+++ head/sys/dev/extres/clk/clk.h Sun Jul 10 10:53:50 2016 (r302523)
@@ -131,6 +131,8 @@ const char *clk_get_name(clk_t clk);
#ifdef FDT
int clk_get_by_ofw_index(device_t dev, int idx, clk_t *clk);
int clk_get_by_ofw_name(device_t dev, const char *name, clk_t *clk);
+int clk_get_by_ofw_node_index(device_t dev, phandle_t node, int idx,
+ clk_t *clk);
int clk_parse_ofw_out_names(device_t dev, phandle_t node,
const char ***out_names, uint32_t **indices);
int clk_parse_ofw_clk_name(device_t dev, phandle_t node, const char **name);
More information about the svn-src-all
mailing list