Lines Matching refs:ctx

23 	void (*reg_write)(struct regmap_mmio_context *ctx,
25 unsigned int (*reg_read)(struct regmap_mmio_context *ctx,
71 static void regmap_mmio_write8(struct regmap_mmio_context *ctx,
75 writeb(val, ctx->regs + reg);
78 static void regmap_mmio_write16le(struct regmap_mmio_context *ctx,
82 writew(val, ctx->regs + reg);
85 static void regmap_mmio_write16be(struct regmap_mmio_context *ctx,
89 iowrite16be(val, ctx->regs + reg);
92 static void regmap_mmio_write32le(struct regmap_mmio_context *ctx,
96 writel(val, ctx->regs + reg);
99 static void regmap_mmio_write32be(struct regmap_mmio_context *ctx,
103 iowrite32be(val, ctx->regs + reg);
107 static void regmap_mmio_write64le(struct regmap_mmio_context *ctx,
111 writeq(val, ctx->regs + reg);
117 struct regmap_mmio_context *ctx = context;
120 if (!IS_ERR(ctx->clk)) {
121 ret = clk_enable(ctx->clk);
126 ctx->reg_write(ctx, reg, val);
128 if (!IS_ERR(ctx->clk))
129 clk_disable(ctx->clk);
134 static unsigned int regmap_mmio_read8(struct regmap_mmio_context *ctx,
137 return readb(ctx->regs + reg);
140 static unsigned int regmap_mmio_read16le(struct regmap_mmio_context *ctx,
143 return readw(ctx->regs + reg);
146 static unsigned int regmap_mmio_read16be(struct regmap_mmio_context *ctx,
149 return ioread16be(ctx->regs + reg);
152 static unsigned int regmap_mmio_read32le(struct regmap_mmio_context *ctx,
155 return readl(ctx->regs + reg);
158 static unsigned int regmap_mmio_read32be(struct regmap_mmio_context *ctx,
161 return ioread32be(ctx->regs + reg);
165 static unsigned int regmap_mmio_read64le(struct regmap_mmio_context *ctx,
168 return readq(ctx->regs + reg);
174 struct regmap_mmio_context *ctx = context;
177 if (!IS_ERR(ctx->clk)) {
178 ret = clk_enable(ctx->clk);
183 *val = ctx->reg_read(ctx, reg);
185 if (!IS_ERR(ctx->clk))
186 clk_disable(ctx->clk);
193 struct regmap_mmio_context *ctx = context;
195 if (!IS_ERR(ctx->clk)) {
196 clk_unprepare(ctx->clk);
197 if (!ctx->attached_clk)
198 clk_put(ctx->clk);
216 struct regmap_mmio_context *ctx;
234 ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
235 if (!ctx)
238 ctx->regs = regs;
239 ctx->val_bytes = config->val_bits / 8;
240 ctx->clk = ERR_PTR(-ENODEV);
250 ctx->reg_read = regmap_mmio_read8;
251 ctx->reg_write = regmap_mmio_write8;
254 ctx->reg_read = regmap_mmio_read16le;
255 ctx->reg_write = regmap_mmio_write16le;
258 ctx->reg_read = regmap_mmio_read32le;
259 ctx->reg_write = regmap_mmio_write32le;
263 ctx->reg_read = regmap_mmio_read64le;
264 ctx->reg_write = regmap_mmio_write64le;
278 ctx->reg_read = regmap_mmio_read8;
279 ctx->reg_write = regmap_mmio_write8;
282 ctx->reg_read = regmap_mmio_read16be;
283 ctx->reg_write = regmap_mmio_write16be;
286 ctx->reg_read = regmap_mmio_read32be;
287 ctx->reg_write = regmap_mmio_write32be;
300 return ctx;
302 ctx->clk = clk_get(dev, clk_id);
303 if (IS_ERR(ctx->clk)) {
304 ret = PTR_ERR(ctx->clk);
308 ret = clk_prepare(ctx->clk);
310 clk_put(ctx->clk);
314 return ctx;
317 kfree(ctx);
328 struct regmap_mmio_context *ctx;
330 ctx = regmap_mmio_gen_context(dev, clk_id, regs, config);
331 if (IS_ERR(ctx))
332 return ERR_CAST(ctx);
334 return __regmap_init(dev, &regmap_mmio, ctx, config,
346 struct regmap_mmio_context *ctx;
348 ctx = regmap_mmio_gen_context(dev, clk_id, regs, config);
349 if (IS_ERR(ctx))
350 return ERR_CAST(ctx);
352 return __devm_regmap_init(dev, &regmap_mmio, ctx, config,
359 struct regmap_mmio_context *ctx = map->bus_context;
361 ctx->clk = clk;
362 ctx->attached_clk = true;
364 return clk_prepare(ctx->clk);
370 struct regmap_mmio_context *ctx = map->bus_context;
372 clk_unprepare(ctx->clk);
374 ctx->attached_clk = false;
375 ctx->clk = NULL;