brintos

brintos / linux-shallow public Read only

0
0
Text · 895 B · 6fc6de0 Raw
36 lines · c
1// SPDX-License-Identifier: GPL-2.0-or-later2/*3 * Copyright 2013 Emilio López4 *5 * Emilio López <emilio@elopez.com.ar>6 */7 8#include <linux/clk-provider.h>9#include <linux/of.h>10#include <linux/of_address.h>11 12#define SUN4I_CODEC_GATE	3113 14static void __init sun4i_codec_clk_setup(struct device_node *node)15{16	struct clk *clk;17	const char *clk_name = node->name, *parent_name;18	void __iomem *reg;19 20	reg = of_io_request_and_map(node, 0, of_node_full_name(node));21	if (IS_ERR(reg))22		return;23 24	of_property_read_string(node, "clock-output-names", &clk_name);25	parent_name = of_clk_get_parent_name(node, 0);26 27	clk = clk_register_gate(NULL, clk_name, parent_name,28				CLK_SET_RATE_PARENT, reg,29				SUN4I_CODEC_GATE, 0, NULL);30 31	if (!IS_ERR(clk))32		of_clk_add_provider(node, of_clk_src_simple_get, clk);33}34CLK_OF_DECLARE(sun4i_codec, "allwinner,sun4i-a10-codec-clk",35	       sun4i_codec_clk_setup);36