Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 91990d21 authored by Michael Turquette's avatar Michael Turquette
Browse files

Merge tag 'sunxi-clocks-for-4.2' of...

Merge tag 'sunxi-clocks-for-4.2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into clk-next

Allwinner clocks additions for 4.2

One error fix, and one patch to add support for the USB clock found on the
Allwinner A23 and A33
parents dc627eea ec80749d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@ Required properties:
	"allwinner,sun4i-a10-usb-clk" - for usb gates + resets on A10 / A20
	"allwinner,sun5i-a13-usb-clk" - for usb gates + resets on A13
	"allwinner,sun6i-a31-usb-clk" - for usb gates + resets on A31
	"allwinner,sun8i-a23-usb-clk" - for usb gates + resets on A23
	"allwinner,sun9i-a80-usb-mod-clk" - for usb gates + resets on A80
	"allwinner,sun9i-a80-usb-phy-clk" - for usb phy gates + resets on A80

+5 −5
Original line number Diff line number Diff line
@@ -93,7 +93,7 @@ static void __init sun9i_a80_pll4_setup(struct device_node *node)
	void __iomem *reg;

	reg = of_io_request_and_map(node, 0, of_node_full_name(node));
	if (!reg) {
	if (IS_ERR(reg)) {
		pr_err("Could not get registers for a80-pll4-clk: %s\n",
		       node->name);
		return;
@@ -154,7 +154,7 @@ static void __init sun9i_a80_gt_setup(struct device_node *node)
	struct clk *gt;

	reg = of_io_request_and_map(node, 0, of_node_full_name(node));
	if (!reg) {
	if (IS_ERR(reg)) {
		pr_err("Could not get registers for a80-gt-clk: %s\n",
		       node->name);
		return;
@@ -218,7 +218,7 @@ static void __init sun9i_a80_ahb_setup(struct device_node *node)
	void __iomem *reg;

	reg = of_io_request_and_map(node, 0, of_node_full_name(node));
	if (!reg) {
	if (IS_ERR(reg)) {
		pr_err("Could not get registers for a80-ahb-clk: %s\n",
		       node->name);
		return;
@@ -244,7 +244,7 @@ static void __init sun9i_a80_apb0_setup(struct device_node *node)
	void __iomem *reg;

	reg = of_io_request_and_map(node, 0, of_node_full_name(node));
	if (!reg) {
	if (IS_ERR(reg)) {
		pr_err("Could not get registers for a80-apb0-clk: %s\n",
		       node->name);
		return;
@@ -310,7 +310,7 @@ static void __init sun9i_a80_apb1_setup(struct device_node *node)
	void __iomem *reg;

	reg = of_io_request_and_map(node, 0, of_node_full_name(node));
	if (!reg) {
	if (IS_ERR(reg)) {
		pr_err("Could not get registers for a80-apb1-clk: %s\n",
		       node->name);
		return;
+2 −0
Original line number Diff line number Diff line
@@ -198,6 +198,8 @@ static void __init sun6i_ahb1_clk_setup(struct device_node *node)
	int i = 0;

	reg = of_io_request_and_map(node, 0, of_node_full_name(node));
	if (IS_ERR(reg))
		return;

	/* we have a mux, we will have >1 parents */
	while (i < SUN6I_AHB1_MAX_PARENTS &&
+11 −0
Original line number Diff line number Diff line
@@ -204,6 +204,17 @@ static void __init sun6i_a31_usb_setup(struct device_node *node)
}
CLK_OF_DECLARE(sun6i_a31_usb, "allwinner,sun6i-a31-usb-clk", sun6i_a31_usb_setup);

static const struct usb_clk_data sun8i_a23_usb_clk_data __initconst = {
	.clk_mask = BIT(16) | BIT(11) | BIT(10) | BIT(9) | BIT(8),
	.reset_mask = BIT(2) | BIT(1) | BIT(0),
};

static void __init sun8i_a23_usb_setup(struct device_node *node)
{
	sunxi_usb_clk_setup(node, &sun8i_a23_usb_clk_data, &sun4i_a10_usb_lock);
}
CLK_OF_DECLARE(sun8i_a23_usb, "allwinner,sun8i-a23-usb-clk", sun8i_a23_usb_setup);

static const struct usb_clk_data sun9i_a80_usb_mod_data __initconst = {
	.clk_mask = BIT(6) | BIT(5) | BIT(4) | BIT(3) | BIT(2) | BIT(1),
	.reset_mask = BIT(19) | BIT(18) | BIT(17),