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

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
...@@ -67,6 +67,7 @@ Required properties: ...@@ -67,6 +67,7 @@ Required properties:
"allwinner,sun4i-a10-usb-clk" - for usb gates + resets on A10 / A20 "allwinner,sun4i-a10-usb-clk" - for usb gates + resets on A10 / A20
"allwinner,sun5i-a13-usb-clk" - for usb gates + resets on A13 "allwinner,sun5i-a13-usb-clk" - for usb gates + resets on A13
"allwinner,sun6i-a31-usb-clk" - for usb gates + resets on A31 "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-mod-clk" - for usb gates + resets on A80
"allwinner,sun9i-a80-usb-phy-clk" - for usb phy gates + resets on A80 "allwinner,sun9i-a80-usb-phy-clk" - for usb phy gates + resets on A80
......
...@@ -93,7 +93,7 @@ static void __init sun9i_a80_pll4_setup(struct device_node *node) ...@@ -93,7 +93,7 @@ static void __init sun9i_a80_pll4_setup(struct device_node *node)
void __iomem *reg; void __iomem *reg;
reg = of_io_request_and_map(node, 0, of_node_full_name(node)); 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", pr_err("Could not get registers for a80-pll4-clk: %s\n",
node->name); node->name);
return; return;
...@@ -154,7 +154,7 @@ static void __init sun9i_a80_gt_setup(struct device_node *node) ...@@ -154,7 +154,7 @@ static void __init sun9i_a80_gt_setup(struct device_node *node)
struct clk *gt; struct clk *gt;
reg = of_io_request_and_map(node, 0, of_node_full_name(node)); 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", pr_err("Could not get registers for a80-gt-clk: %s\n",
node->name); node->name);
return; return;
...@@ -218,7 +218,7 @@ static void __init sun9i_a80_ahb_setup(struct device_node *node) ...@@ -218,7 +218,7 @@ static void __init sun9i_a80_ahb_setup(struct device_node *node)
void __iomem *reg; void __iomem *reg;
reg = of_io_request_and_map(node, 0, of_node_full_name(node)); 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", pr_err("Could not get registers for a80-ahb-clk: %s\n",
node->name); node->name);
return; return;
...@@ -244,7 +244,7 @@ static void __init sun9i_a80_apb0_setup(struct device_node *node) ...@@ -244,7 +244,7 @@ static void __init sun9i_a80_apb0_setup(struct device_node *node)
void __iomem *reg; void __iomem *reg;
reg = of_io_request_and_map(node, 0, of_node_full_name(node)); 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", pr_err("Could not get registers for a80-apb0-clk: %s\n",
node->name); node->name);
return; return;
...@@ -310,7 +310,7 @@ static void __init sun9i_a80_apb1_setup(struct device_node *node) ...@@ -310,7 +310,7 @@ static void __init sun9i_a80_apb1_setup(struct device_node *node)
void __iomem *reg; void __iomem *reg;
reg = of_io_request_and_map(node, 0, of_node_full_name(node)); 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", pr_err("Could not get registers for a80-apb1-clk: %s\n",
node->name); node->name);
return; return;
......
...@@ -198,6 +198,8 @@ static void __init sun6i_ahb1_clk_setup(struct device_node *node) ...@@ -198,6 +198,8 @@ static void __init sun6i_ahb1_clk_setup(struct device_node *node)
int i = 0; int i = 0;
reg = of_io_request_and_map(node, 0, of_node_full_name(node)); 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 */ /* we have a mux, we will have >1 parents */
while (i < SUN6I_AHB1_MAX_PARENTS && while (i < SUN6I_AHB1_MAX_PARENTS &&
......
...@@ -204,6 +204,17 @@ static void __init sun6i_a31_usb_setup(struct device_node *node) ...@@ -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); 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 = { 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), .clk_mask = BIT(6) | BIT(5) | BIT(4) | BIT(3) | BIT(2) | BIT(1),
.reset_mask = BIT(19) | BIT(18) | BIT(17), .reset_mask = BIT(19) | BIT(18) | BIT(17),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment