Lines Matching refs:ctx

92 	struct regmap_mmio_context *ctx = context;  in regmap_mmio_gather_write()  local
98 if (!IS_ERR(ctx->clk)) { in regmap_mmio_gather_write()
99 ret = clk_enable(ctx->clk); in regmap_mmio_gather_write()
107 switch (ctx->val_bytes) { in regmap_mmio_gather_write()
109 writeb(*(u8 *)val, ctx->regs + offset); in regmap_mmio_gather_write()
112 writew(*(u16 *)val, ctx->regs + offset); in regmap_mmio_gather_write()
115 writel(*(u32 *)val, ctx->regs + offset); in regmap_mmio_gather_write()
119 writeq(*(u64 *)val, ctx->regs + offset); in regmap_mmio_gather_write()
126 val_size -= ctx->val_bytes; in regmap_mmio_gather_write()
127 val += ctx->val_bytes; in regmap_mmio_gather_write()
128 offset += ctx->val_bytes; in regmap_mmio_gather_write()
131 if (!IS_ERR(ctx->clk)) in regmap_mmio_gather_write()
132 clk_disable(ctx->clk); in regmap_mmio_gather_write()
139 struct regmap_mmio_context *ctx = context; in regmap_mmio_write() local
140 unsigned int offset = ctx->reg_bytes + ctx->pad_bytes; in regmap_mmio_write()
144 return regmap_mmio_gather_write(context, data, ctx->reg_bytes, in regmap_mmio_write()
152 struct regmap_mmio_context *ctx = context; in regmap_mmio_read() local
158 if (!IS_ERR(ctx->clk)) { in regmap_mmio_read()
159 ret = clk_enable(ctx->clk); in regmap_mmio_read()
167 switch (ctx->val_bytes) { in regmap_mmio_read()
169 *(u8 *)val = readb(ctx->regs + offset); in regmap_mmio_read()
172 *(u16 *)val = readw(ctx->regs + offset); in regmap_mmio_read()
175 *(u32 *)val = readl(ctx->regs + offset); in regmap_mmio_read()
179 *(u64 *)val = readq(ctx->regs + offset); in regmap_mmio_read()
186 val_size -= ctx->val_bytes; in regmap_mmio_read()
187 val += ctx->val_bytes; in regmap_mmio_read()
188 offset += ctx->val_bytes; in regmap_mmio_read()
191 if (!IS_ERR(ctx->clk)) in regmap_mmio_read()
192 clk_disable(ctx->clk); in regmap_mmio_read()
199 struct regmap_mmio_context *ctx = context; in regmap_mmio_free_context() local
201 if (!IS_ERR(ctx->clk)) { in regmap_mmio_free_context()
202 clk_unprepare(ctx->clk); in regmap_mmio_free_context()
203 clk_put(ctx->clk); in regmap_mmio_free_context()
223 struct regmap_mmio_context *ctx; in regmap_mmio_gen_context() local
266 ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); in regmap_mmio_gen_context()
267 if (!ctx) in regmap_mmio_gen_context()
270 ctx->regs = regs; in regmap_mmio_gen_context()
271 ctx->val_bytes = config->val_bits / 8; in regmap_mmio_gen_context()
272 ctx->reg_bytes = config->reg_bits / 8; in regmap_mmio_gen_context()
273 ctx->pad_bytes = config->pad_bits / 8; in regmap_mmio_gen_context()
274 ctx->clk = ERR_PTR(-ENODEV); in regmap_mmio_gen_context()
277 return ctx; in regmap_mmio_gen_context()
279 ctx->clk = clk_get(dev, clk_id); in regmap_mmio_gen_context()
280 if (IS_ERR(ctx->clk)) { in regmap_mmio_gen_context()
281 ret = PTR_ERR(ctx->clk); in regmap_mmio_gen_context()
285 ret = clk_prepare(ctx->clk); in regmap_mmio_gen_context()
287 clk_put(ctx->clk); in regmap_mmio_gen_context()
291 return ctx; in regmap_mmio_gen_context()
294 kfree(ctx); in regmap_mmio_gen_context()
314 struct regmap_mmio_context *ctx; in regmap_init_mmio_clk() local
316 ctx = regmap_mmio_gen_context(dev, clk_id, regs, config); in regmap_init_mmio_clk()
317 if (IS_ERR(ctx)) in regmap_init_mmio_clk()
318 return ERR_CAST(ctx); in regmap_init_mmio_clk()
320 return regmap_init(dev, &regmap_mmio, ctx, config); in regmap_init_mmio_clk()
340 struct regmap_mmio_context *ctx; in devm_regmap_init_mmio_clk() local
342 ctx = regmap_mmio_gen_context(dev, clk_id, regs, config); in devm_regmap_init_mmio_clk()
343 if (IS_ERR(ctx)) in devm_regmap_init_mmio_clk()
344 return ERR_CAST(ctx); in devm_regmap_init_mmio_clk()
346 return devm_regmap_init(dev, &regmap_mmio, ctx, config); in devm_regmap_init_mmio_clk()