Lines Matching refs:group

59 	struct mstp_clock_group *group;  member
64 static inline u32 cpg_mstp_read(struct mstp_clock_group *group, in cpg_mstp_read() argument
67 return group->width_8bit ? readb(reg) : readl(reg); in cpg_mstp_read()
70 static inline void cpg_mstp_write(struct mstp_clock_group *group, u32 val, in cpg_mstp_write() argument
73 group->width_8bit ? writeb(val, reg) : writel(val, reg); in cpg_mstp_write()
79 struct mstp_clock_group *group = clock->group; in cpg_mstp_clock_endisable() local
85 spin_lock_irqsave(&group->lock, flags); in cpg_mstp_clock_endisable()
87 value = cpg_mstp_read(group, group->smstpcr); in cpg_mstp_clock_endisable()
92 cpg_mstp_write(group, value, group->smstpcr); in cpg_mstp_clock_endisable()
94 if (!group->mstpsr) { in cpg_mstp_clock_endisable()
96 cpg_mstp_read(group, group->smstpcr); in cpg_mstp_clock_endisable()
97 barrier_data(group->smstpcr); in cpg_mstp_clock_endisable()
100 spin_unlock_irqrestore(&group->lock, flags); in cpg_mstp_clock_endisable()
102 if (!enable || !group->mstpsr) in cpg_mstp_clock_endisable()
106 ret = readl_poll_timeout_atomic(group->mstpsr, value, in cpg_mstp_clock_endisable()
110 group->smstpcr, clock->bit_index); in cpg_mstp_clock_endisable()
128 struct mstp_clock_group *group = clock->group; in cpg_mstp_clock_is_enabled() local
131 if (group->mstpsr) in cpg_mstp_clock_is_enabled()
132 value = cpg_mstp_read(group, group->mstpsr); in cpg_mstp_clock_is_enabled()
134 value = cpg_mstp_read(group, group->smstpcr); in cpg_mstp_clock_is_enabled()
147 struct mstp_clock_group *group) in cpg_mstp_clock_register() argument
169 clock->group = group; in cpg_mstp_clock_register()
182 struct mstp_clock_group *group; in cpg_mstp_clocks_init() local
187 group = kzalloc(struct_size(group, clks, MSTP_MAX_CLOCKS), GFP_KERNEL); in cpg_mstp_clocks_init()
188 if (!group) in cpg_mstp_clocks_init()
191 clks = group->clks; in cpg_mstp_clocks_init()
192 spin_lock_init(&group->lock); in cpg_mstp_clocks_init()
193 group->data.clks = clks; in cpg_mstp_clocks_init()
195 group->smstpcr = of_iomap(np, 0); in cpg_mstp_clocks_init()
196 group->mstpsr = of_iomap(np, 1); in cpg_mstp_clocks_init()
198 if (group->smstpcr == NULL) { in cpg_mstp_clocks_init()
200 kfree(group); in cpg_mstp_clocks_init()
205 group->width_8bit = true; in cpg_mstp_clocks_init()
239 clkidx, group); in cpg_mstp_clocks_init()
241 group->data.clk_num = max(group->data.clk_num, in cpg_mstp_clocks_init()
258 of_clk_add_provider(np, of_clk_src_onecell_get, &group->data); in cpg_mstp_clocks_init()