On Friday 15 November 2013 13:54:16 Stephen Warren wrote: > From: Stephen Warren <swarren@xxxxxxxxxx> > > Tegra's clock driver now provides an implementation of the common > reset API (include/linux/reset.h). Use this instead of the old Tegra- > specific API; that will soon be removed. > > Cc: treding@xxxxxxxxxx > Cc: pdeschrijver@xxxxxxxxxx > Cc: linux-tegra@xxxxxxxxxxxxxxx > Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > Cc: Julian Andres Klode <jak@xxxxxxxxxxxxx> > Cc: Marc Dietrich <marvin24@xxxxxx> > Cc: ac100@xxxxxxxxxxxxxxxxxxx > Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > Cc: devel@xxxxxxxxxxxxxxxxxxxx > Signed-off-by: Stephen Warren <swarren@xxxxxxxxxx> Acked-by: Marc Dietrich <marvin24@xxxxxx> > --- > This patch is part of a series with strong internal depdendencies. I'm > looking for an ack so that I can take the entire series through the Tegra > and arm-soc trees. The series will be part of a stable branch that can be > merged into other subsystems if needed to avoid/resolve dependencies. > --- > drivers/staging/nvec/nvec.c | 11 ++++++++--- > drivers/staging/nvec/nvec.h | 5 ++++- > 2 files changed, 12 insertions(+), 4 deletions(-) > > diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c > index 3066ee2e753b..9de4cd13d9ab 100644 > --- a/drivers/staging/nvec/nvec.c > +++ b/drivers/staging/nvec/nvec.c > @@ -36,7 +36,6 @@ > #include <linux/slab.h> > #include <linux/spinlock.h> > #include <linux/workqueue.h> > -#include <linux/clk/tegra.h> > > #include "nvec.h" > > @@ -733,9 +732,9 @@ static void tegra_init_i2c_slave(struct nvec_chip *nvec) > > clk_prepare_enable(nvec->i2c_clk); > > - tegra_periph_reset_assert(nvec->i2c_clk); > + reset_control_assert(nvec->rst); > udelay(2); > - tegra_periph_reset_deassert(nvec->i2c_clk); > + reset_control_deassert(nvec->rst); > > val = I2C_CNFG_NEW_MASTER_SFM | I2C_CNFG_PACKET_MODE_EN | > (0x2 << I2C_CNFG_DEBOUNCE_CNT_SHIFT); > @@ -836,6 +835,12 @@ static int tegra_nvec_probe(struct platform_device > *pdev) return -ENODEV; > } > > + nvec->rst = devm_reset_control_get(&pdev->dev, "i2c"); > + if (IS_ERR(nvec->rst)) { > + dev_err(nvec->dev, "failed to get controller reset\n"); > + return PTR_ERR(nvec->rst); > + } > + > nvec->base = base; > nvec->irq = res->start; > nvec->i2c_clk = i2c_clk; > diff --git a/drivers/staging/nvec/nvec.h b/drivers/staging/nvec/nvec.h > index e880518935fb..e271375053fa 100644 > --- a/drivers/staging/nvec/nvec.h > +++ b/drivers/staging/nvec/nvec.h > @@ -23,6 +23,7 @@ > #include <linux/list.h> > #include <linux/mutex.h> > #include <linux/notifier.h> > +#include <linux/reset.h> > #include <linux/spinlock.h> > #include <linux/workqueue.h> > > @@ -109,7 +110,8 @@ struct nvec_msg { > * @irq: The IRQ of the I2C device > * @i2c_addr: The address of the I2C slave > * @base: The base of the memory mapped region of the I2C device > - * @clk: The clock of the I2C device > + * @i2c_clk: The clock of the I2C device > + * @rst: The reset of the I2C device > * @notifier_list: Notifiers to be called on received messages, see > * nvec_register_notifier() > * @rx_data: Received messages that have to be processed > @@ -139,6 +141,7 @@ struct nvec_chip { > int i2c_addr; > void __iomem *base; > struct clk *i2c_clk; > + struct reset_control *rst; > struct atomic_notifier_head notifier_list; > struct list_head rx_data, tx_data; > struct notifier_block nvec_status_notifier; -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html