diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2021-05-17 16:23:50 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2021-05-17 16:23:50 +0200 |
commit | ca7163dc46ad767f6f33832bc416943f4deba416 (patch) | |
tree | ec36c89a7eed66d9c9ad321bad02e92666bf5d39 /drivers | |
parent | 0352849942a048b18f01405fc742005e428c043d (diff) | |
parent | 24ee98513ff80acea199990ebf0b765869234945 (diff) | |
download | barebox-ca7163dc46ad767f6f33832bc416943f4deba416.tar.gz barebox-ca7163dc46ad767f6f33832bc416943f4deba416.tar.xz |
Merge branch 'for-next/imx'
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/clk/mxs/clk-imx28.c | 1 | ||||
-rw-r--r-- | drivers/clk/mxs/clk.h | 2 | ||||
-rw-r--r-- | drivers/mtd/nand/nand_mxs.c | 4 | ||||
-rw-r--r-- | drivers/watchdog/imxwd.c | 11 |
4 files changed, 14 insertions, 4 deletions
diff --git a/drivers/clk/mxs/clk-imx28.c b/drivers/clk/mxs/clk-imx28.c index aa4ba99cd7..382021e49c 100644 --- a/drivers/clk/mxs/clk-imx28.c +++ b/drivers/clk/mxs/clk-imx28.c @@ -145,6 +145,7 @@ static int __init mx28_clocks_init(struct device_d *dev, void __iomem *regs) clk_set_rate(clks[ssp2], 96000000); clk_set_rate(clks[ssp3], 96000000); clk_set_parent(clks[lcdif_sel], clks[ref_pix]); + clk_set_parent(clks[gpmi_sel], clks[ref_gpmi]); if (dev->device_node) { clk_data.clks = clks; diff --git a/drivers/clk/mxs/clk.h b/drivers/clk/mxs/clk.h index 60f2408cba..a93361a9ea 100644 --- a/drivers/clk/mxs/clk.h +++ b/drivers/clk/mxs/clk.h @@ -35,7 +35,7 @@ static inline struct clk *mxs_clk_fixed(const char *name, int rate) static inline struct clk *mxs_clk_gate(const char *name, const char *parent_name, void __iomem *reg, u8 shift) { - return clk_gate_inverted(name, parent_name, reg, shift, 0); + return clk_gate_inverted(name, parent_name, reg, shift, CLK_SET_RATE_PARENT); } static inline struct clk *mxs_clk_mux(const char *name, void __iomem *reg, diff --git a/drivers/mtd/nand/nand_mxs.c b/drivers/mtd/nand/nand_mxs.c index e4bad45a18..0540ba0216 100644 --- a/drivers/mtd/nand/nand_mxs.c +++ b/drivers/mtd/nand/nand_mxs.c @@ -2041,9 +2041,6 @@ static int mxs_nand_enable_edo_mode(struct mxs_nand_info *info) uint8_t feature[ONFI_SUBFEATURE_PARAM_LEN] = {}; int ret, mode; - if (!mxs_nand_is_imx6(info)) - return -ENODEV; - if (!chip->parameters.onfi) return -ENOENT; @@ -2186,6 +2183,7 @@ static int mxs_nand_probe(struct device_d *dev) nand_info->dma_channel_base = 0; } else { nand_info->dma_channel_base = MXS_DMA_CHANNEL_AHB_APBH_GPMI0; + clk_set_rate(nand_info->clk, 22000000); } err = mxs_nand_alloc_buffers(nand_info); diff --git a/drivers/watchdog/imxwd.c b/drivers/watchdog/imxwd.c index b2cfd1cd3a..26c62b7bcb 100644 --- a/drivers/watchdog/imxwd.c +++ b/drivers/watchdog/imxwd.c @@ -21,6 +21,7 @@ #include <restart.h> #include <watchdog.h> #include <reset_source.h> +#include <linux/clk.h> struct imx_wd; @@ -224,6 +225,7 @@ static int imx_wd_probe(struct device_d *dev) { struct resource *iores; struct imx_wd *priv; + struct clk *clk; void *ops; int ret; @@ -237,6 +239,15 @@ static int imx_wd_probe(struct device_d *dev) dev_err(dev, "could not get memory region\n"); return PTR_ERR(iores); } + + clk = clk_get(dev, NULL); + if (IS_ERR(clk)) + return PTR_ERR(clk); + + ret = clk_enable(clk); + if (ret) + return ret; + priv->base = IOMEM(iores->start); priv->ops = ops; priv->wd.set_timeout = imx_watchdog_set_timeout; |