diff options
| -rw-r--r-- | drivers/clk/sunxi/clk-sun9i-mmc.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/clk/sunxi/clk-sun9i-mmc.c b/drivers/clk/sunxi/clk-sun9i-mmc.c index a1a634253d6f..f00d8758ba24 100644 --- a/drivers/clk/sunxi/clk-sun9i-mmc.c +++ b/drivers/clk/sunxi/clk-sun9i-mmc.c | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | 16 | ||
| 17 | #include <linux/clk.h> | 17 | #include <linux/clk.h> |
| 18 | #include <linux/clk-provider.h> | 18 | #include <linux/clk-provider.h> |
| 19 | #include <linux/delay.h> | ||
| 19 | #include <linux/init.h> | 20 | #include <linux/init.h> |
| 20 | #include <linux/of.h> | 21 | #include <linux/of.h> |
| 21 | #include <linux/of_device.h> | 22 | #include <linux/of_device.h> |
| @@ -83,9 +84,20 @@ static int sun9i_mmc_reset_deassert(struct reset_controller_dev *rcdev, | |||
| 83 | return 0; | 84 | return 0; |
| 84 | } | 85 | } |
| 85 | 86 | ||
| 87 | static int sun9i_mmc_reset_reset(struct reset_controller_dev *rcdev, | ||
| 88 | unsigned long id) | ||
| 89 | { | ||
| 90 | sun9i_mmc_reset_assert(rcdev, id); | ||
| 91 | udelay(10); | ||
| 92 | sun9i_mmc_reset_deassert(rcdev, id); | ||
| 93 | |||
| 94 | return 0; | ||
| 95 | } | ||
| 96 | |||
| 86 | static const struct reset_control_ops sun9i_mmc_reset_ops = { | 97 | static const struct reset_control_ops sun9i_mmc_reset_ops = { |
| 87 | .assert = sun9i_mmc_reset_assert, | 98 | .assert = sun9i_mmc_reset_assert, |
| 88 | .deassert = sun9i_mmc_reset_deassert, | 99 | .deassert = sun9i_mmc_reset_deassert, |
| 100 | .reset = sun9i_mmc_reset_reset, | ||
| 89 | }; | 101 | }; |
| 90 | 102 | ||
| 91 | static int sun9i_a80_mmc_config_clk_probe(struct platform_device *pdev) | 103 | static int sun9i_a80_mmc_config_clk_probe(struct platform_device *pdev) |
