diff options
author | Laxman Dewangan <ldewangan@nvidia.com> | 2012-09-02 14:25:37 +0530 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-09-06 16:30:21 -0700 |
commit | 4489c67eb0c0858cc723b26151578868f6dfbda3 (patch) | |
tree | bb52b1106a8c7ea6a2d29da215ecdef2dc7ce46e /arch/arm/mach-tegra/tegra_odm_fuses.c | |
parent | 6b74ce596c3439f65bfd3432bb6bcca65717f8ed (diff) |
ARM: tegra: fuse: rename regulator name as per chip pin name
The pin name for fuse supply for different chip have different
name as follows:
- Tegra20 has the name as vdd_fuse.
- Tegra30 and later have the name as vpp_fuse.
Correcting name of the regulator supply and implementing same
in odm driver.
Change-Id: Ic7a49f365fa30aa71b198ba588dcc4bfc36dcc98
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/130144
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/tegra_odm_fuses.c')
-rw-r--r-- | arch/arm/mach-tegra/tegra_odm_fuses.c | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/arch/arm/mach-tegra/tegra_odm_fuses.c b/arch/arm/mach-tegra/tegra_odm_fuses.c index 11bc3ef79ef9..2abf7e93b62e 100644 --- a/arch/arm/mach-tegra/tegra_odm_fuses.c +++ b/arch/arm/mach-tegra/tegra_odm_fuses.c @@ -109,8 +109,14 @@ static u32 tmp_fuse_pgm_data[NFUSES / 2]; DEFINE_MUTEX(fuse_lock); +#ifdef CONFIG_ARCH_TEGRA_2x_SOC +#define TEGRA_FUSE_SUPPLY "vdd_fuse" +#else +#define TEGRA_FUSE_SUPPLY "vpp_fuse" +#endif + static struct fuse_data fuse_info; -struct regulator *vdd_fuse; +struct regulator *fuse_regulator; struct clk *clk_fuse; #define FUSE_NAME_LEN 30 @@ -687,7 +693,7 @@ int tegra_fuse_program(struct fuse_data *pgm_data, u32 flags) } if (IS_ERR_OR_NULL(clk_fuse) || - (!tegra_fuse_regulator_en && IS_ERR_OR_NULL(vdd_fuse))) { + (!tegra_fuse_regulator_en && IS_ERR_OR_NULL(fuse_regulator))) { pr_err("fuse write disabled"); return -ENODEV; } @@ -729,7 +735,7 @@ int tegra_fuse_program(struct fuse_data *pgm_data, u32 flags) if (tegra_fuse_regulator_en) ret = tegra_fuse_regulator_en(1); else - ret = regulator_enable(vdd_fuse); + ret = regulator_enable(fuse_regulator); if (ret) BUG_ON("regulator enable fail\n"); @@ -753,7 +759,7 @@ int tegra_fuse_program(struct fuse_data *pgm_data, u32 flags) if (tegra_fuse_regulator_en) tegra_fuse_regulator_en(0); else - regulator_disable(vdd_fuse); + regulator_disable(fuse_regulator); #endif mutex_unlock(&fuse_lock); @@ -928,21 +934,23 @@ static ssize_t fuse_show(struct kobject *kobj, struct kobj_attribute *attr, char return strlen(buf); } + static int __init tegra_fuse_program_init(void) { if (!tegra_fuse_regulator_en) { - /* get vdd_fuse regulator */ - vdd_fuse = regulator_get(NULL, "vdd_fuse"); - if (IS_ERR_OR_NULL(vdd_fuse)) - pr_err("%s: no vdd_fuse. fuse write disabled\n", __func__); + /* get fuse_regulator regulator */ + fuse_regulator = regulator_get(NULL, TEGRA_FUSE_SUPPLY); + if (IS_ERR_OR_NULL(fuse_regulator)) + pr_err("%s: no fuse_regulator. fuse write disabled\n", + __func__); } clk_fuse = clk_get_sys("fuse-tegra", "fuse_burn"); if (IS_ERR_OR_NULL(clk_fuse)) { pr_err("%s: no clk_fuse. fuse read/write disabled\n", __func__); - if (!IS_ERR_OR_NULL(vdd_fuse)) { - regulator_put(vdd_fuse); - vdd_fuse = NULL; + if (!IS_ERR_OR_NULL(fuse_regulator)) { + regulator_put(fuse_regulator); + fuse_regulator = NULL; } return -ENODEV; } @@ -950,7 +958,7 @@ static int __init tegra_fuse_program_init(void) fuse_kobj = kobject_create_and_add("fuse", firmware_kobj); if (!fuse_kobj) { pr_err("%s: fuse_kobj create fail\n", __func__); - regulator_put(vdd_fuse); + regulator_put(fuse_regulator); clk_put(clk_fuse); return -ENODEV; } @@ -989,8 +997,8 @@ static void __exit tegra_fuse_program_exit(void) fuse_power_disable(); - if (!IS_ERR_OR_NULL(vdd_fuse)) - regulator_put(vdd_fuse); + if (!IS_ERR_OR_NULL(fuse_regulator)) + regulator_put(fuse_regulator); if (!IS_ERR_OR_NULL(clk_fuse)) clk_put(clk_fuse); |