Lines Matching full:fuse
3 * Renesas R-Car E-FUSE/OTP Driver
25 unsigned int bank; /* 0: PFC + E-FUSE, 1: OPT_MEM + E-FUSE */
33 struct rcar_fuse *fuse = priv; in rcar_fuse_reg_read() local
36 ret = pm_runtime_resume_and_get(fuse->dev); in rcar_fuse_reg_read()
40 __ioread32_copy(val, fuse->base + offset, bytes / 4); in rcar_fuse_reg_read()
42 pm_runtime_put(fuse->dev); in rcar_fuse_reg_read()
53 .name = "rcar-fuse", in rcar_fuse_probe()
63 struct rcar_fuse *fuse; in rcar_fuse_probe() local
71 fuse = devm_kzalloc(dev, sizeof(*fuse), GFP_KERNEL); in rcar_fuse_probe()
72 if (!fuse) in rcar_fuse_probe()
75 fuse->base = devm_platform_get_and_ioremap_resource(pdev, data->bank, in rcar_fuse_probe()
77 if (IS_ERR(fuse->base)) in rcar_fuse_probe()
78 return PTR_ERR(fuse->base); in rcar_fuse_probe()
80 fuse->dev = dev; in rcar_fuse_probe()
81 fuse->keepouts[0].start = 0; in rcar_fuse_probe()
82 fuse->keepouts[0].end = data->start; in rcar_fuse_probe()
83 fuse->keepouts[1].start = data->end; in rcar_fuse_probe()
84 fuse->keepouts[1].end = resource_size(res); in rcar_fuse_probe()
86 config.keepout = fuse->keepouts; in rcar_fuse_probe()
87 config.nkeepout = ARRAY_SIZE(fuse->keepouts); in rcar_fuse_probe()
89 config.priv = fuse; in rcar_fuse_probe()
91 fuse->nvmem = devm_nvmem_register(dev, &config); in rcar_fuse_probe()
92 if (IS_ERR(fuse->nvmem)) in rcar_fuse_probe()
93 return dev_err_probe(dev, PTR_ERR(fuse->nvmem), in rcar_fuse_probe()
140 MODULE_DESCRIPTION("Renesas R-Car E-FUSE/OTP driver");