@@ -118,7 +118,6 @@ static int r8a7795_cpg_core_clock_endisable(const struct device *dev, struct rca
118118 struct cpg_clk_info_table * clk_info ;
119119 struct r8a7795_cpg_mssr_data * data = dev -> data ;
120120 k_spinlock_key_t key ;
121- int ret = 0 ;
122121
123122 clk_info = rcar_cpg_find_clk_info_by_module_id (dev , clk -> domain , clk -> module );
124123 if (!clk_info ) {
@@ -127,6 +126,7 @@ static int r8a7795_cpg_core_clock_endisable(const struct device *dev, struct rca
127126
128127 if (enable ) {
129128 if (clk -> rate > 0 ) {
129+ int ret ;
130130 uintptr_t rate = clk -> rate ;
131131
132132 ret = rcar_cpg_set_rate (dev , (clock_control_subsys_t )clk ,
@@ -141,14 +141,14 @@ static int r8a7795_cpg_core_clock_endisable(const struct device *dev, struct rca
141141 r8a7795_cpg_enable_disable_core (dev , clk_info , enable );
142142 k_spin_unlock (& data -> cmn .lock , key );
143143
144- return ret ;
144+ return 0 ;
145145}
146146
147147static int r8a7795_cpg_mssr_start_stop (const struct device * dev , clock_control_subsys_t sys ,
148148 bool enable )
149149{
150150 struct rcar_cpg_clk * clk = (struct rcar_cpg_clk * )sys ;
151- int ret = - EINVAL ;
151+ int ret ;
152152
153153 if (!dev || !sys ) {
154154 return - EINVAL ;
@@ -163,15 +163,15 @@ static int r8a7795_cpg_mssr_start_stop(const struct device *dev, clock_control_s
163163 k_spin_unlock (& data -> cmn .lock , key );
164164 } else if (clk -> domain == CPG_CORE ) {
165165 ret = r8a7795_cpg_core_clock_endisable (dev , clk , enable );
166+ } else {
167+ ret = - EINVAL ;
166168 }
167169
168170 return ret ;
169171}
170172
171173static uint32_t r8a7795_get_div_helper (uint32_t reg_val , uint32_t module )
172174{
173- uint32_t divider = RCAR_CPG_NONE ;
174-
175175 switch (module ) {
176176 case R8A7795_CLK_SD0H :
177177 case R8A7795_CLK_SD1H :
@@ -180,35 +180,29 @@ static uint32_t r8a7795_get_div_helper(uint32_t reg_val, uint32_t module)
180180 reg_val >>= R8A7795_CLK_SDH_DIV_SHIFT ;
181181 /* setting of value bigger than 4 is prohibited */
182182 if ((reg_val & R8A7795_CLK_SDH_DIV_MASK ) < 5 ) {
183- divider = 1 << (reg_val & R8A7795_CLK_SDH_DIV_MASK );
183+ return 1 << (reg_val & R8A7795_CLK_SDH_DIV_MASK );
184+ } else {
185+ return RCAR_CPG_NONE ;
184186 }
185- break ;
186187 case R8A7795_CLK_SD0 :
187188 case R8A7795_CLK_SD1 :
188189 case R8A7795_CLK_SD2 :
189190 case R8A7795_CLK_SD3 :
190191 /* convert only two possible values 0,1 to 2,4 */
191- divider = 1 << ((reg_val & R8A7795_CLK_SD_DIV_MASK ) + 1 );
192- break ;
192+ return 1 << ((reg_val & R8A7795_CLK_SD_DIV_MASK ) + 1 );
193193 case R8A7795_CLK_CANFD :
194194 /* according to documentation, divider value stored in reg is equal to: val + 1 */
195- divider = (reg_val & R8A7795_CLK_CANFD_DIV_MASK ) + 1 ;
196- break ;
195+ return (reg_val & R8A7795_CLK_CANFD_DIV_MASK ) + 1 ;
197196 case R8A7795_CLK_S3D4 :
198197 case R8A7795_CLK_S0D12 :
199- divider = 1 ;
200- break ;
198+ return 1 ;
201199 default :
202- break ;
200+ return RCAR_CPG_NONE ;
203201 }
204-
205- return divider ;
206202}
207203
208204static int r8a7795_set_rate_helper (uint32_t module , uint32_t * divider , uint32_t * div_mask )
209205{
210- int ret = - ENOTSUP ;
211-
212206 switch (module ) {
213207 case R8A7795_CLK_SD0 :
214208 case R8A7795_CLK_SD1 :
@@ -219,40 +213,35 @@ static int r8a7795_set_rate_helper(uint32_t module, uint32_t *divider, uint32_t
219213 /* convert 2/4 to 0/1 */
220214 * divider >>= 2 ;
221215 * div_mask = R8A7795_CLK_SD_DIV_MASK << R8A7795_CLK_SD_DIV_SHIFT ;
222- ret = 0 ;
216+ return 0 ;
223217 } else {
224- ret = - EINVAL ;
218+ return - EINVAL ;
225219 }
226- break ;
227220 case R8A7795_CLK_SD0H :
228221 case R8A7795_CLK_SD1H :
229222 case R8A7795_CLK_SD2H :
230223 case R8A7795_CLK_SD3H :
231224 /* divider should be power of two and max possible value 16 */
232225 if (!is_power_of_two (* divider ) || * divider > 16 ) {
233- ret = - EINVAL ;
226+ return - EINVAL ;
234227 break ;
235228 }
236- ret = 0 ;
237229 /* 1,2,4,8,16 have to be converted to 0,1,2,3,4 and then shifted */
238230 * divider = (find_lsb_set (* divider ) - 1 ) << R8A7795_CLK_SDH_DIV_SHIFT ;
239231 * div_mask = R8A7795_CLK_SDH_DIV_MASK << R8A7795_CLK_SDH_DIV_SHIFT ;
240- break ;
232+ return 0 ;
241233 case R8A7795_CLK_CANFD :
242234 /* according to documentation, divider value stored in reg is equal to: val + 1 */
243235 * divider -= 1 ;
244236 if (* divider <= R8A7795_CLK_CANFD_DIV_MASK ) {
245- ret = 0 ;
246237 * div_mask = R8A7795_CLK_CANFD_DIV_MASK ;
238+ return 0 ;
247239 } else {
248- ret = - EINVAL ;
240+ return - EINVAL ;
249241 }
250- break ;
251242 default :
252- break ;
243+ return - ENOTSUP ;
253244 }
254-
255- return ret ;
256245}
257246
258247static int r8a7795_cpg_mssr_start (const struct device * dev , clock_control_subsys_t sys )
0 commit comments