Lines Matching refs:priv

97 static ulong rv1126_gpll_set_rate(struct rv1126_clk_priv *priv,
151 static ulong rv1126_gpll_get_pmuclk(struct rv1126_pmuclk_priv *priv) in rv1126_gpll_get_pmuclk() argument
154 priv->pmucru, GPLL); in rv1126_gpll_get_pmuclk()
160 struct rv1126_clk_priv *priv; in rv1126_gpll_set_pmuclk() local
170 priv = dev_get_priv(cru_dev); in rv1126_gpll_set_pmuclk()
172 if (rv1126_gpll_set_rate(priv, pmu_priv, rate)) { in rv1126_gpll_set_pmuclk()
179 static ulong rv1126_rtc32k_get_pmuclk(struct rv1126_pmuclk_priv *priv) in rv1126_rtc32k_get_pmuclk() argument
181 struct rv1126_pmucru *pmucru = priv->pmucru; in rv1126_rtc32k_get_pmuclk()
194 static ulong rv1126_rtc32k_set_pmuclk(struct rv1126_pmuclk_priv *priv, in rv1126_rtc32k_set_pmuclk() argument
197 struct rv1126_pmucru *pmucru = priv->pmucru; in rv1126_rtc32k_set_pmuclk()
210 return rv1126_rtc32k_get_pmuclk(priv); in rv1126_rtc32k_set_pmuclk()
213 static ulong rv1126_i2c_get_pmuclk(struct rv1126_pmuclk_priv *priv, in rv1126_i2c_get_pmuclk() argument
216 struct rv1126_pmucru *pmucru = priv->pmucru; in rv1126_i2c_get_pmuclk()
232 return DIV_TO_RATE(priv->gpll_hz, div); in rv1126_i2c_get_pmuclk()
235 static ulong rv1126_i2c_set_pmuclk(struct rv1126_pmuclk_priv *priv, in rv1126_i2c_set_pmuclk() argument
238 struct rv1126_pmucru *pmucru = priv->pmucru; in rv1126_i2c_set_pmuclk()
241 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_i2c_set_pmuclk()
257 return rv1126_i2c_get_pmuclk(priv, clk_id); in rv1126_i2c_set_pmuclk()
260 static ulong rv1126_pwm_get_pmuclk(struct rv1126_pmuclk_priv *priv, in rv1126_pwm_get_pmuclk() argument
263 struct rv1126_pmucru *pmucru = priv->pmucru; in rv1126_pwm_get_pmuclk()
285 return DIV_TO_RATE(priv->gpll_hz, div); in rv1126_pwm_get_pmuclk()
288 static ulong rv1126_pwm_set_pmuclk(struct rv1126_pmuclk_priv *priv, in rv1126_pwm_set_pmuclk() argument
291 struct rv1126_pmucru *pmucru = priv->pmucru; in rv1126_pwm_set_pmuclk()
303 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_pwm_set_pmuclk()
321 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_pwm_set_pmuclk()
335 return rv1126_pwm_get_pmuclk(priv, clk_id); in rv1126_pwm_set_pmuclk()
338 static ulong rv1126_spi_get_pmuclk(struct rv1126_pmuclk_priv *priv) in rv1126_spi_get_pmuclk() argument
340 struct rv1126_pmucru *pmucru = priv->pmucru; in rv1126_spi_get_pmuclk()
346 return DIV_TO_RATE(priv->gpll_hz, div); in rv1126_spi_get_pmuclk()
349 static ulong rv1126_spi_set_pmuclk(struct rv1126_pmuclk_priv *priv, in rv1126_spi_set_pmuclk() argument
352 struct rv1126_pmucru *pmucru = priv->pmucru; in rv1126_spi_set_pmuclk()
355 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_spi_set_pmuclk()
363 return rv1126_spi_get_pmuclk(priv); in rv1126_spi_set_pmuclk()
366 static ulong rv1126_pdpmu_get_pmuclk(struct rv1126_pmuclk_priv *priv) in rv1126_pdpmu_get_pmuclk() argument
368 struct rv1126_pmucru *pmucru = priv->pmucru; in rv1126_pdpmu_get_pmuclk()
374 return DIV_TO_RATE(priv->gpll_hz, div); in rv1126_pdpmu_get_pmuclk()
377 static ulong rv1126_pdpmu_set_pmuclk(struct rv1126_pmuclk_priv *priv, in rv1126_pdpmu_set_pmuclk() argument
380 struct rv1126_pmucru *pmucru = priv->pmucru; in rv1126_pdpmu_set_pmuclk()
383 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_pdpmu_set_pmuclk()
390 return rv1126_pdpmu_get_pmuclk(priv); in rv1126_pdpmu_set_pmuclk()
395 struct rv1126_pmuclk_priv *priv = dev_get_priv(clk->dev); in rv1126_pmuclk_get_rate() local
398 if (!priv->gpll_hz) { in rv1126_pmuclk_get_rate()
399 printf("%s gpll=%lu\n", __func__, priv->gpll_hz); in rv1126_pmuclk_get_rate()
406 rate = rv1126_gpll_get_pmuclk(priv); in rv1126_pmuclk_get_rate()
409 rate = rv1126_rtc32k_get_pmuclk(priv); in rv1126_pmuclk_get_rate()
413 rate = rv1126_i2c_get_pmuclk(priv, clk->id); in rv1126_pmuclk_get_rate()
417 rate = rv1126_pwm_get_pmuclk(priv, clk->id); in rv1126_pmuclk_get_rate()
420 rate = rv1126_spi_get_pmuclk(priv); in rv1126_pmuclk_get_rate()
423 rate = rv1126_pdpmu_get_pmuclk(priv); in rv1126_pmuclk_get_rate()
434 struct rv1126_pmuclk_priv *priv = dev_get_priv(clk->dev); in rv1126_pmuclk_set_rate() local
437 if (!priv->gpll_hz) { in rv1126_pmuclk_set_rate()
438 printf("%s gpll=%lu\n", __func__, priv->gpll_hz); in rv1126_pmuclk_set_rate()
445 ret = rv1126_gpll_set_pmuclk(priv, rate); in rv1126_pmuclk_set_rate()
448 ret = rv1126_rtc32k_set_pmuclk(priv, rate); in rv1126_pmuclk_set_rate()
452 ret = rv1126_i2c_set_pmuclk(priv, clk->id, rate); in rv1126_pmuclk_set_rate()
456 ret = rv1126_pwm_set_pmuclk(priv, clk->id, rate); in rv1126_pmuclk_set_rate()
459 ret = rv1126_spi_set_pmuclk(priv, rate); in rv1126_pmuclk_set_rate()
462 ret = rv1126_pdpmu_set_pmuclk(priv, rate); in rv1126_pmuclk_set_rate()
473 struct rv1126_pmuclk_priv *priv = dev_get_priv(clk->dev); in rv1126_rtc32k_set_parent() local
474 struct rv1126_pmucru *pmucru = priv->pmucru; in rv1126_rtc32k_set_parent()
503 struct rv1126_pmuclk_priv *priv = dev_get_priv(dev); in rv1126_pmuclk_probe() local
505 priv->gpll_hz = rv1126_gpll_get_pmuclk(priv); in rv1126_pmuclk_probe()
512 struct rv1126_pmuclk_priv *priv = dev_get_priv(dev); in rv1126_pmuclk_ofdata_to_platdata() local
514 priv->pmucru = dev_read_addr_ptr(dev); in rv1126_pmuclk_ofdata_to_platdata()
535 sf_child->priv = sf_priv; in rv1126_pmuclk_bind()
558 static int rv1126_armclk_set_clk(struct rv1126_clk_priv *priv, ulong hz) in rv1126_armclk_set_clk() argument
560 struct rv1126_cru *cru = priv->cru; in rv1126_armclk_set_clk()
574 priv->cru, APLL); in rv1126_armclk_set_clk()
577 priv->cru, APLL, hz)) in rv1126_armclk_set_clk()
589 priv->cru, APLL, hz)) in rv1126_armclk_set_clk()
596 static ulong rv1126_pdcore_get_clk(struct rv1126_clk_priv *priv) in rv1126_pdcore_get_clk() argument
598 struct rv1126_cru *cru = priv->cru; in rv1126_pdcore_get_clk()
604 return DIV_TO_RATE(priv->gpll_hz, div); in rv1126_pdcore_get_clk()
607 static ulong rv1126_pdcore_set_clk(struct rv1126_clk_priv *priv, ulong rate) in rv1126_pdcore_set_clk() argument
609 struct rv1126_cru *cru = priv->cru; in rv1126_pdcore_set_clk()
611 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_pdcore_set_clk()
617 return rv1126_pdcore_get_clk(priv); in rv1126_pdcore_set_clk()
620 static ulong rv1126_pdbus_get_clk(struct rv1126_clk_priv *priv, ulong clk_id) in rv1126_pdbus_get_clk() argument
622 struct rv1126_cru *cru = priv->cru; in rv1126_pdbus_get_clk()
631 parent = priv->gpll_hz; in rv1126_pdbus_get_clk()
633 parent = priv->cpll_hz; in rv1126_pdbus_get_clk()
642 parent = priv->gpll_hz; in rv1126_pdbus_get_clk()
644 parent = priv->cpll_hz; in rv1126_pdbus_get_clk()
654 parent = priv->gpll_hz; in rv1126_pdbus_get_clk()
656 parent = priv->cpll_hz; in rv1126_pdbus_get_clk()
667 static ulong rv1126_pdbus_set_clk(struct rv1126_clk_priv *priv, ulong clk_id, in rv1126_pdbus_set_clk() argument
670 struct rv1126_cru *cru = priv->cru; in rv1126_pdbus_set_clk()
676 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_pdbus_set_clk()
679 src_clk_div = DIV_ROUND_UP(priv->cpll_hz, rate); in rv1126_pdbus_set_clk()
689 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_pdbus_set_clk()
698 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_pdbus_set_clk()
711 return rv1126_pdbus_get_clk(priv, clk_id); in rv1126_pdbus_set_clk()
714 static ulong rv1126_pdphp_get_clk(struct rv1126_clk_priv *priv, ulong clk_id) in rv1126_pdphp_get_clk() argument
716 struct rv1126_cru *cru = priv->cru; in rv1126_pdphp_get_clk()
723 parent = priv->gpll_hz; in rv1126_pdphp_get_clk()
728 parent = priv->gpll_hz; in rv1126_pdphp_get_clk()
737 static ulong rv1126_pdphp_set_clk(struct rv1126_clk_priv *priv, ulong clk_id, in rv1126_pdphp_set_clk() argument
740 struct rv1126_cru *cru = priv->cru; in rv1126_pdphp_set_clk()
743 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_pdphp_set_clk()
763 return rv1126_pdphp_get_clk(priv, clk_id); in rv1126_pdphp_set_clk()
766 static ulong rv1126_pdaudio_get_clk(struct rv1126_clk_priv *priv) in rv1126_pdaudio_get_clk() argument
768 struct rv1126_cru *cru = priv->cru; in rv1126_pdaudio_get_clk()
774 return DIV_TO_RATE(priv->gpll_hz, div); in rv1126_pdaudio_get_clk()
777 static ulong rv1126_pdaudio_set_clk(struct rv1126_clk_priv *priv, ulong rate) in rv1126_pdaudio_set_clk() argument
779 struct rv1126_cru *cru = priv->cru; in rv1126_pdaudio_set_clk()
782 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_pdaudio_set_clk()
788 return rv1126_pdaudio_get_clk(priv); in rv1126_pdaudio_set_clk()
791 static ulong rv1126_i2c_get_clk(struct rv1126_clk_priv *priv, ulong clk_id) in rv1126_i2c_get_clk() argument
793 struct rv1126_cru *cru = priv->cru; in rv1126_i2c_get_clk()
817 return DIV_TO_RATE(priv->gpll_hz, div); in rv1126_i2c_get_clk()
820 static ulong rv1126_i2c_set_clk(struct rv1126_clk_priv *priv, ulong clk_id, in rv1126_i2c_set_clk() argument
823 struct rv1126_cru *cru = priv->cru; in rv1126_i2c_set_clk()
826 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_i2c_set_clk()
850 return rv1126_i2c_get_clk(priv, clk_id); in rv1126_i2c_set_clk()
853 static ulong rv1126_spi_get_clk(struct rv1126_clk_priv *priv) in rv1126_spi_get_clk() argument
855 struct rv1126_cru *cru = priv->cru; in rv1126_spi_get_clk()
861 return DIV_TO_RATE(priv->gpll_hz, div); in rv1126_spi_get_clk()
864 static ulong rv1126_spi_set_clk(struct rv1126_clk_priv *priv, ulong rate) in rv1126_spi_set_clk() argument
866 struct rv1126_cru *cru = priv->cru; in rv1126_spi_set_clk()
869 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_spi_set_clk()
877 return rv1126_spi_get_clk(priv); in rv1126_spi_set_clk()
880 static ulong rv1126_pwm_get_clk(struct rv1126_clk_priv *priv) in rv1126_pwm_get_clk() argument
882 struct rv1126_cru *cru = priv->cru; in rv1126_pwm_get_clk()
891 return DIV_TO_RATE(priv->gpll_hz, div); in rv1126_pwm_get_clk()
894 static ulong rv1126_pwm_set_clk(struct rv1126_clk_priv *priv, ulong rate) in rv1126_pwm_set_clk() argument
896 struct rv1126_cru *cru = priv->cru; in rv1126_pwm_set_clk()
904 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_pwm_set_clk()
912 return rv1126_pwm_get_clk(priv); in rv1126_pwm_set_clk()
915 static ulong rv1126_saradc_get_clk(struct rv1126_clk_priv *priv) in rv1126_saradc_get_clk() argument
917 struct rv1126_cru *cru = priv->cru; in rv1126_saradc_get_clk()
926 static ulong rv1126_saradc_set_clk(struct rv1126_clk_priv *priv, ulong rate) in rv1126_saradc_set_clk() argument
928 struct rv1126_cru *cru = priv->cru; in rv1126_saradc_set_clk()
936 return rv1126_saradc_get_clk(priv); in rv1126_saradc_set_clk()
939 static ulong rv1126_crypto_get_clk(struct rv1126_clk_priv *priv, ulong clk_id) in rv1126_crypto_get_clk() argument
941 struct rv1126_cru *cru = priv->cru; in rv1126_crypto_get_clk()
950 parent = priv->gpll_hz; in rv1126_crypto_get_clk()
952 parent = priv->cpll_hz; in rv1126_crypto_get_clk()
961 parent = priv->gpll_hz; in rv1126_crypto_get_clk()
963 parent = priv->cpll_hz; in rv1126_crypto_get_clk()
972 parent = priv->gpll_hz; in rv1126_crypto_get_clk()
974 parent = priv->cpll_hz; in rv1126_crypto_get_clk()
985 static ulong rv1126_crypto_set_clk(struct rv1126_clk_priv *priv, ulong clk_id, in rv1126_crypto_set_clk() argument
988 struct rv1126_cru *cru = priv->cru; in rv1126_crypto_set_clk()
991 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_crypto_set_clk()
1021 return rv1126_crypto_get_clk(priv, clk_id); in rv1126_crypto_set_clk()
1024 static ulong rv1126_mmc_get_clk(struct rv1126_clk_priv *priv, ulong clk_id) in rv1126_mmc_get_clk() argument
1026 struct rv1126_cru *cru = priv->cru; in rv1126_mmc_get_clk()
1051 return DIV_TO_RATE(priv->gpll_hz, div) / 2; in rv1126_mmc_get_clk()
1053 return DIV_TO_RATE(priv->cpll_hz, div) / 2; in rv1126_mmc_get_clk()
1060 static ulong rv1126_mmc_set_clk(struct rv1126_clk_priv *priv, ulong clk_id, in rv1126_mmc_set_clk() argument
1063 struct rv1126_cru *cru = priv->cru; in rv1126_mmc_set_clk()
1086 src_clk_div = DIV_ROUND_UP(priv->gpll_hz / 2, rate); in rv1126_mmc_set_clk()
1102 return rv1126_mmc_get_clk(priv, clk_id); in rv1126_mmc_set_clk()
1105 static ulong rv1126_sfc_get_clk(struct rv1126_clk_priv *priv) in rv1126_sfc_get_clk() argument
1107 struct rv1126_cru *cru = priv->cru; in rv1126_sfc_get_clk()
1114 parent = priv->gpll_hz; in rv1126_sfc_get_clk()
1116 parent = priv->cpll_hz; in rv1126_sfc_get_clk()
1123 static ulong rv1126_sfc_set_clk(struct rv1126_clk_priv *priv, ulong rate) in rv1126_sfc_set_clk() argument
1125 struct rv1126_cru *cru = priv->cru; in rv1126_sfc_set_clk()
1128 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_sfc_set_clk()
1134 return rv1126_sfc_get_clk(priv); in rv1126_sfc_set_clk()
1137 static ulong rv1126_nand_get_clk(struct rv1126_clk_priv *priv) in rv1126_nand_get_clk() argument
1139 struct rv1126_cru *cru = priv->cru; in rv1126_nand_get_clk()
1146 parent = priv->gpll_hz; in rv1126_nand_get_clk()
1148 parent = priv->cpll_hz; in rv1126_nand_get_clk()
1155 static ulong rv1126_nand_set_clk(struct rv1126_clk_priv *priv, ulong rate) in rv1126_nand_set_clk() argument
1157 struct rv1126_cru *cru = priv->cru; in rv1126_nand_set_clk()
1160 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_nand_set_clk()
1166 return rv1126_nand_get_clk(priv); in rv1126_nand_set_clk()
1169 static ulong rv1126_aclk_vop_get_clk(struct rv1126_clk_priv *priv) in rv1126_aclk_vop_get_clk() argument
1171 struct rv1126_cru *cru = priv->cru; in rv1126_aclk_vop_get_clk()
1178 parent = priv->gpll_hz; in rv1126_aclk_vop_get_clk()
1180 parent = priv->cpll_hz; in rv1126_aclk_vop_get_clk()
1187 static ulong rv1126_aclk_vop_set_clk(struct rv1126_clk_priv *priv, ulong rate) in rv1126_aclk_vop_set_clk() argument
1189 struct rv1126_cru *cru = priv->cru; in rv1126_aclk_vop_set_clk()
1192 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_aclk_vop_set_clk()
1199 return rv1126_aclk_vop_get_clk(priv); in rv1126_aclk_vop_set_clk()
1202 static ulong rv1126_dclk_vop_get_clk(struct rv1126_clk_priv *priv) in rv1126_dclk_vop_get_clk() argument
1204 struct rv1126_cru *cru = priv->cru; in rv1126_dclk_vop_get_clk()
1211 parent = priv->gpll_hz; in rv1126_dclk_vop_get_clk()
1213 parent = priv->cpll_hz; in rv1126_dclk_vop_get_clk()
1220 static ulong rv1126_dclk_vop_set_clk(struct rv1126_clk_priv *priv, ulong rate) in rv1126_dclk_vop_set_clk() argument
1222 struct rv1126_cru *cru = priv->cru; in rv1126_dclk_vop_set_clk()
1229 pll_rate = priv->gpll_hz; in rv1126_dclk_vop_set_clk()
1232 pll_rate = priv->cpll_hz; in rv1126_dclk_vop_set_clk()
1263 return rv1126_dclk_vop_get_clk(priv); in rv1126_dclk_vop_set_clk()
1266 static ulong rv1126_scr1_get_clk(struct rv1126_clk_priv *priv) in rv1126_scr1_get_clk() argument
1268 struct rv1126_cru *cru = priv->cru; in rv1126_scr1_get_clk()
1275 parent = priv->gpll_hz; in rv1126_scr1_get_clk()
1277 parent = priv->cpll_hz; in rv1126_scr1_get_clk()
1284 static ulong rv1126_scr1_set_clk(struct rv1126_clk_priv *priv, ulong rate) in rv1126_scr1_set_clk() argument
1286 struct rv1126_cru *cru = priv->cru; in rv1126_scr1_set_clk()
1289 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_scr1_set_clk()
1296 return rv1126_scr1_get_clk(priv); in rv1126_scr1_set_clk()
1299 static ulong rv1126_gmac_src_get_clk(struct rv1126_clk_priv *priv) in rv1126_gmac_src_get_clk() argument
1301 struct rv1126_cru *cru = priv->cru; in rv1126_gmac_src_get_clk()
1308 parent = priv->cpll_hz; in rv1126_gmac_src_get_clk()
1310 parent = priv->gpll_hz; in rv1126_gmac_src_get_clk()
1317 static ulong rv1126_gmac_src_set_clk(struct rv1126_clk_priv *priv, ulong rate) in rv1126_gmac_src_set_clk() argument
1319 struct rv1126_cru *cru = priv->cru; in rv1126_gmac_src_set_clk()
1322 src_clk_div = DIV_ROUND_UP(priv->cpll_hz, rate); in rv1126_gmac_src_set_clk()
1329 return rv1126_gmac_src_get_clk(priv); in rv1126_gmac_src_set_clk()
1332 static ulong rv1126_gmac_out_get_clk(struct rv1126_clk_priv *priv) in rv1126_gmac_out_get_clk() argument
1334 struct rv1126_cru *cru = priv->cru; in rv1126_gmac_out_get_clk()
1341 parent = priv->cpll_hz; in rv1126_gmac_out_get_clk()
1343 parent = priv->gpll_hz; in rv1126_gmac_out_get_clk()
1350 static ulong rv1126_gmac_out_set_clk(struct rv1126_clk_priv *priv, ulong rate) in rv1126_gmac_out_set_clk() argument
1352 struct rv1126_cru *cru = priv->cru; in rv1126_gmac_out_set_clk()
1355 src_clk_div = DIV_ROUND_UP(priv->cpll_hz, rate); in rv1126_gmac_out_set_clk()
1362 return rv1126_gmac_out_get_clk(priv); in rv1126_gmac_out_set_clk()
1365 static ulong rv1126_gmac_tx_rx_set_clk(struct rv1126_clk_priv *priv, ulong rate) in rv1126_gmac_tx_rx_set_clk() argument
1367 struct rv1126_cru *cru = priv->cru; in rv1126_gmac_tx_rx_set_clk()
1394 static ulong rv1126_pclk_gmac_get_clk(struct rv1126_clk_priv *priv) in rv1126_pclk_gmac_get_clk() argument
1396 struct rv1126_cru *cru = priv->cru; in rv1126_pclk_gmac_get_clk()
1399 parent = rv1126_pdphp_get_clk(priv, ACLK_PDPHP); in rv1126_pclk_gmac_get_clk()
1408 static ulong rv1126_clk_mipicsi_out_get_clk(struct rv1126_clk_priv *priv) in rv1126_clk_mipicsi_out_get_clk() argument
1410 struct rv1126_cru *cru = priv->cru; in rv1126_clk_mipicsi_out_get_clk()
1411 u32 div, fracdiv, sel, con, n, m, parent = priv->gpll_hz; in rv1126_clk_mipicsi_out_get_clk()
1429 static ulong rv1126_clk_mipicsi_out_set_clk(struct rv1126_clk_priv *priv, in rv1126_clk_mipicsi_out_set_clk() argument
1431 { struct rv1126_cru *cru = priv->cru; in rv1126_clk_mipicsi_out_set_clk()
1438 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, 297000000); in rv1126_clk_mipicsi_out_set_clk()
1445 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_clk_mipicsi_out_set_clk()
1453 return rv1126_clk_mipicsi_out_get_clk(priv); in rv1126_clk_mipicsi_out_set_clk()
1456 static ulong rv1126_clk_pdvi_ispp_get_clk(struct rv1126_clk_priv *priv, in rv1126_clk_pdvi_ispp_get_clk() argument
1459 struct rv1126_cru *cru = priv->cru; in rv1126_clk_pdvi_ispp_get_clk()
1480 parent = priv->gpll_hz; in rv1126_clk_pdvi_ispp_get_clk()
1482 parent = priv->cpll_hz; in rv1126_clk_pdvi_ispp_get_clk()
1484 parent = priv->hpll_hz; in rv1126_clk_pdvi_ispp_get_clk()
1491 static ulong rv1126_clk_pdvi_ispp_set_clk(struct rv1126_clk_priv *priv, in rv1126_clk_pdvi_ispp_set_clk() argument
1494 struct rv1126_cru *cru = priv->cru; in rv1126_clk_pdvi_ispp_set_clk()
1511 if (!(priv->cpll_hz % rate)) { in rv1126_clk_pdvi_ispp_set_clk()
1512 parent = priv->cpll_hz; in rv1126_clk_pdvi_ispp_set_clk()
1514 } else if (!(priv->hpll_hz % rate)) { in rv1126_clk_pdvi_ispp_set_clk()
1515 parent = priv->hpll_hz; in rv1126_clk_pdvi_ispp_set_clk()
1518 parent = priv->gpll_hz; in rv1126_clk_pdvi_ispp_set_clk()
1529 return rv1126_clk_pdvi_ispp_get_clk(priv, clk_id); in rv1126_clk_pdvi_ispp_set_clk()
1532 static ulong rv1126_clk_isp_get_clk(struct rv1126_clk_priv *priv) in rv1126_clk_isp_get_clk() argument
1534 struct rv1126_cru *cru = priv->cru; in rv1126_clk_isp_get_clk()
1541 parent = priv->gpll_hz; in rv1126_clk_isp_get_clk()
1543 parent = priv->cpll_hz; in rv1126_clk_isp_get_clk()
1545 parent = priv->hpll_hz; in rv1126_clk_isp_get_clk()
1552 static ulong rv1126_clk_isp_set_clk(struct rv1126_clk_priv *priv, ulong rate) in rv1126_clk_isp_set_clk() argument
1554 struct rv1126_cru *cru = priv->cru; in rv1126_clk_isp_set_clk()
1557 if (!(priv->cpll_hz % rate)) { in rv1126_clk_isp_set_clk()
1558 parent = priv->cpll_hz; in rv1126_clk_isp_set_clk()
1560 } else if (!(priv->hpll_hz % rate)) { in rv1126_clk_isp_set_clk()
1561 parent = priv->hpll_hz; in rv1126_clk_isp_set_clk()
1564 parent = priv->gpll_hz; in rv1126_clk_isp_set_clk()
1575 return rv1126_clk_isp_get_clk(priv); in rv1126_clk_isp_set_clk()
1579 static ulong rv1126_dclk_decom_get_clk(struct rv1126_clk_priv *priv) in rv1126_dclk_decom_get_clk() argument
1581 struct rv1126_cru *cru = priv->cru; in rv1126_dclk_decom_get_clk()
1588 parent = priv->gpll_hz; in rv1126_dclk_decom_get_clk()
1590 parent = priv->cpll_hz; in rv1126_dclk_decom_get_clk()
1597 static ulong rv1126_dclk_decom_set_clk(struct rv1126_clk_priv *priv, ulong rate) in rv1126_dclk_decom_set_clk() argument
1599 struct rv1126_cru *cru = priv->cru; in rv1126_dclk_decom_set_clk()
1602 src_clk_div = DIV_ROUND_UP(priv->gpll_hz, rate); in rv1126_dclk_decom_set_clk()
1609 return rv1126_dclk_decom_get_clk(priv); in rv1126_dclk_decom_set_clk()
1614 struct rv1126_clk_priv *priv = dev_get_priv(clk->dev); in rv1126_clk_get_rate() local
1617 if (!priv->gpll_hz) { in rv1126_clk_get_rate()
1618 printf("%s gpll=%lu\n", __func__, priv->gpll_hz); in rv1126_clk_get_rate()
1625 rate = rockchip_pll_get_rate(&rv1126_pll_clks[APLL], priv->cru, in rv1126_clk_get_rate()
1629 rate = rockchip_pll_get_rate(&rv1126_pll_clks[CPLL], priv->cru, in rv1126_clk_get_rate()
1633 rate = rockchip_pll_get_rate(&rv1126_pll_clks[HPLL], priv->cru, in rv1126_clk_get_rate()
1637 rate = rockchip_pll_get_rate(&rv1126_pll_clks[DPLL], priv->cru, in rv1126_clk_get_rate()
1641 rate = rv1126_pdcore_get_clk(priv); in rv1126_clk_get_rate()
1647 rate = rv1126_pdbus_get_clk(priv, clk->id); in rv1126_clk_get_rate()
1651 rate = rv1126_pdphp_get_clk(priv, clk->id); in rv1126_clk_get_rate()
1654 rate = rv1126_pdaudio_get_clk(priv); in rv1126_clk_get_rate()
1660 rate = rv1126_i2c_get_clk(priv, clk->id); in rv1126_clk_get_rate()
1663 rate = rv1126_spi_get_clk(priv); in rv1126_clk_get_rate()
1666 rate = rv1126_pwm_get_clk(priv); in rv1126_clk_get_rate()
1669 rate = rv1126_saradc_get_clk(priv); in rv1126_clk_get_rate()
1674 rate = rv1126_crypto_get_clk(priv, clk->id); in rv1126_clk_get_rate()
1683 rate = rv1126_mmc_get_clk(priv, clk->id); in rv1126_clk_get_rate()
1686 rate = rv1126_sfc_get_clk(priv); in rv1126_clk_get_rate()
1689 rate = rv1126_nand_get_clk(priv); in rv1126_clk_get_rate()
1693 rate = rv1126_aclk_vop_get_clk(priv); in rv1126_clk_get_rate()
1696 rate = rv1126_dclk_vop_get_clk(priv); in rv1126_clk_get_rate()
1699 rate = rv1126_scr1_get_clk(priv); in rv1126_clk_get_rate()
1702 rate = rv1126_gmac_src_get_clk(priv); in rv1126_clk_get_rate()
1705 rate = rv1126_gmac_out_get_clk(priv); in rv1126_clk_get_rate()
1708 rate = rv1126_pclk_gmac_get_clk(priv); in rv1126_clk_get_rate()
1712 rate = rv1126_clk_mipicsi_out_get_clk(priv); in rv1126_clk_get_rate()
1715 rate = rv1126_clk_isp_get_clk(priv); in rv1126_clk_get_rate()
1720 rate = rv1126_clk_pdvi_ispp_get_clk(priv, clk->id); in rv1126_clk_get_rate()
1724 rate = rv1126_dclk_decom_get_clk(priv); in rv1126_clk_get_rate()
1735 struct rv1126_clk_priv *priv = dev_get_priv(clk->dev); in rv1126_clk_set_rate() local
1738 if (!priv->gpll_hz) { in rv1126_clk_set_rate()
1739 printf("%s gpll=%lu\n", __func__, priv->gpll_hz); in rv1126_clk_set_rate()
1746 if (priv->armclk_hz) in rv1126_clk_set_rate()
1747 rv1126_armclk_set_clk(priv, rate); in rv1126_clk_set_rate()
1748 priv->armclk_hz = rate; in rv1126_clk_set_rate()
1751 ret = rockchip_pll_set_rate(&rv1126_pll_clks[CPLL], priv->cru, in rv1126_clk_set_rate()
1755 ret = rockchip_pll_set_rate(&rv1126_pll_clks[HPLL], priv->cru, in rv1126_clk_set_rate()
1762 ret = rv1126_pdbus_set_clk(priv, clk->id, rate); in rv1126_clk_set_rate()
1766 ret = rv1126_pdphp_set_clk(priv, clk->id, rate); in rv1126_clk_set_rate()
1769 ret = rv1126_pdcore_set_clk(priv, rate); in rv1126_clk_set_rate()
1772 ret = rv1126_pdaudio_set_clk(priv, rate); in rv1126_clk_set_rate()
1778 ret = rv1126_i2c_set_clk(priv, clk->id, rate); in rv1126_clk_set_rate()
1781 ret = rv1126_spi_set_clk(priv, rate); in rv1126_clk_set_rate()
1784 ret = rv1126_pwm_set_clk(priv, rate); in rv1126_clk_set_rate()
1787 ret = rv1126_saradc_set_clk(priv, rate); in rv1126_clk_set_rate()
1792 ret = rv1126_crypto_set_clk(priv, clk->id, rate); in rv1126_clk_set_rate()
1800 ret = rv1126_mmc_set_clk(priv, clk->id, rate); in rv1126_clk_set_rate()
1803 ret = rv1126_sfc_set_clk(priv, rate); in rv1126_clk_set_rate()
1806 ret = rv1126_nand_set_clk(priv, rate); in rv1126_clk_set_rate()
1810 ret = rv1126_aclk_vop_set_clk(priv, rate); in rv1126_clk_set_rate()
1813 ret = rv1126_dclk_vop_set_clk(priv, rate); in rv1126_clk_set_rate()
1816 ret = rv1126_scr1_set_clk(priv, rate); in rv1126_clk_set_rate()
1819 ret = rv1126_gmac_src_set_clk(priv, rate); in rv1126_clk_set_rate()
1822 ret = rv1126_gmac_out_set_clk(priv, rate); in rv1126_clk_set_rate()
1825 ret = rv1126_gmac_tx_rx_set_clk(priv, rate); in rv1126_clk_set_rate()
1829 ret = rv1126_clk_mipicsi_out_set_clk(priv, rate); in rv1126_clk_set_rate()
1832 ret = rv1126_clk_isp_set_clk(priv, rate); in rv1126_clk_set_rate()
1837 ret = rv1126_clk_pdvi_ispp_set_clk(priv, clk->id, rate); in rv1126_clk_set_rate()
1841 ret = rv1126_dclk_decom_set_clk(priv, rate); in rv1126_clk_set_rate()
1864 struct rv1126_clk_priv *priv = dev_get_priv(clk->dev); in rv1126_mmc_get_phase() local
1865 struct rv1126_cru *cru = priv->cru; in rv1126_mmc_get_phase()
1899 struct rv1126_clk_priv *priv = dev_get_priv(clk->dev); in rv1126_mmc_set_phase() local
1900 struct rv1126_cru *cru = priv->cru; in rv1126_mmc_set_phase()
1980 struct rv1126_clk_priv *priv = dev_get_priv(clk->dev); in rv1126_gmac_src_set_parent() local
1981 struct rv1126_grf *grf = priv->grf; in rv1126_gmac_src_set_parent()
1995 struct rv1126_clk_priv *priv = dev_get_priv(clk->dev); in rv1126_gmac_src_m0_set_parent() local
1996 struct rv1126_cru *cru = priv->cru; in rv1126_gmac_src_m0_set_parent()
2010 struct rv1126_clk_priv *priv = dev_get_priv(clk->dev); in rv1126_gmac_src_m1_set_parent() local
2011 struct rv1126_cru *cru = priv->cru; in rv1126_gmac_src_m1_set_parent()
2025 struct rv1126_clk_priv *priv = dev_get_priv(clk->dev); in rv1126_gmac_tx_rx_set_parent() local
2026 struct rv1126_cru *cru = priv->cru; in rv1126_gmac_tx_rx_set_parent()
2067 static ulong rv1126_gpll_set_rate(struct rv1126_clk_priv *priv, in rv1126_gpll_set_rate() argument
2074 if (priv->gpll_hz != OSC_HZ) { in rv1126_gpll_set_rate()
2075 emmc_rate = rv1126_mmc_get_clk(priv, CLK_EMMC); in rv1126_gpll_set_rate()
2076 sfc_rate = rv1126_sfc_get_clk(priv); in rv1126_gpll_set_rate()
2077 nandc_rate = rv1126_nand_get_clk(priv); in rv1126_gpll_set_rate()
2091 priv->gpll_hz = rate; in rv1126_gpll_set_rate()
2094 rv1126_mmc_set_clk(priv, CLK_EMMC, emmc_rate); in rv1126_gpll_set_rate()
2095 rv1126_sfc_set_clk(priv, sfc_rate); in rv1126_gpll_set_rate()
2096 rv1126_nand_set_clk(priv, nandc_rate); in rv1126_gpll_set_rate()
2102 static int rv1126_gpll_set_clk(struct rv1126_clk_priv *priv, ulong rate) in rv1126_gpll_set_clk() argument
2116 priv->gpll_hz = pmu_priv->gpll_hz; in rv1126_gpll_set_clk()
2118 if (rv1126_gpll_set_rate(priv, pmu_priv, rate)) { in rv1126_gpll_set_clk()
2129 static void rv1126_clk_init(struct rv1126_clk_priv *priv) in rv1126_clk_init() argument
2133 priv->sync_kernel = false; in rv1126_clk_init()
2134 if (!priv->armclk_enter_hz) { in rv1126_clk_init()
2135 priv->armclk_enter_hz = in rv1126_clk_init()
2137 priv->cru, APLL); in rv1126_clk_init()
2138 priv->armclk_init_hz = priv->armclk_enter_hz ; in rv1126_clk_init()
2141 if (priv->armclk_init_hz != APLL_HZ) { in rv1126_clk_init()
2142 ret = rv1126_armclk_set_clk(priv, APLL_HZ); in rv1126_clk_init()
2144 priv->armclk_init_hz = APLL_HZ; in rv1126_clk_init()
2146 if (priv->cpll_hz != CPLL_HZ) { in rv1126_clk_init()
2147 ret = rockchip_pll_set_rate(&rv1126_pll_clks[CPLL], priv->cru, in rv1126_clk_init()
2150 priv->cpll_hz = CPLL_HZ; in rv1126_clk_init()
2152 if (priv->hpll_hz != HPLL_HZ) { in rv1126_clk_init()
2153 ret = rockchip_pll_set_rate(&rv1126_pll_clks[HPLL], priv->cru, in rv1126_clk_init()
2156 priv->hpll_hz = HPLL_HZ; in rv1126_clk_init()
2158 if (priv->gpll_hz != GPLL_HZ) in rv1126_clk_init()
2159 rv1126_gpll_set_clk(priv, GPLL_HZ); in rv1126_clk_init()
2161 rv1126_pdbus_set_clk(priv, ACLK_PDBUS, ACLK_PDBUS_HZ); in rv1126_clk_init()
2162 rv1126_pdbus_set_clk(priv, HCLK_PDBUS, HCLK_PDBUS_HZ); in rv1126_clk_init()
2163 rv1126_pdbus_set_clk(priv, PCLK_PDBUS, PCLK_PDBUS_HZ); in rv1126_clk_init()
2164 rv1126_pdphp_set_clk(priv, ACLK_PDPHP, ACLK_PDPHP_HZ); in rv1126_clk_init()
2165 rv1126_pdphp_set_clk(priv, HCLK_PDPHP, HCLK_PDPHP_HZ); in rv1126_clk_init()
2166 rv1126_pdcore_set_clk(priv, HCLK_PDCORE_HZ); in rv1126_clk_init()
2167 rv1126_pdaudio_set_clk(priv, HCLK_PDAUDIO_HZ); in rv1126_clk_init()
2169 rv1126_clk_pdvi_ispp_set_clk(priv, ACLK_PDVI, ACLK_PDVI_HZ); in rv1126_clk_init()
2170 rv1126_clk_isp_set_clk(priv, CLK_ISP_HZ); in rv1126_clk_init()
2171 rv1126_clk_pdvi_ispp_set_clk(priv, ACLK_PDISPP, ACLK_PDISPP_HZ); in rv1126_clk_init()
2172 rv1126_clk_pdvi_ispp_set_clk(priv, CLK_ISPP, CLK_ISPP_HZ); in rv1126_clk_init()
2173 rv1126_aclk_vop_set_clk(priv, ACLK_VOP_HZ); in rv1126_clk_init()
2174 rv1126_dclk_vop_set_clk(priv, DCLK_VOP_HZ); in rv1126_clk_init()
2180 struct rv1126_clk_priv *priv = dev_get_priv(dev); in rv1126_clk_probe() local
2183 priv->grf = syscon_get_first_range(ROCKCHIP_SYSCON_GRF); in rv1126_clk_probe()
2184 if (IS_ERR(priv->grf)) in rv1126_clk_probe()
2185 return PTR_ERR(priv->grf); in rv1126_clk_probe()
2187 rv1126_clk_init(priv); in rv1126_clk_probe()
2194 priv->sync_kernel = true; in rv1126_clk_probe()
2201 struct rv1126_clk_priv *priv = dev_get_priv(dev); in rv1126_clk_ofdata_to_platdata() local
2203 priv->cru = dev_read_addr_ptr(dev); in rv1126_clk_ofdata_to_platdata()
2212 struct sysreset_reg *priv; in rv1126_clk_bind() local
2221 priv = malloc(sizeof(struct sysreset_reg)); in rv1126_clk_bind()
2222 priv->glb_srst_fst_value = offsetof(struct rv1126_cru, in rv1126_clk_bind()
2224 priv->glb_srst_snd_value = offsetof(struct rv1126_cru, in rv1126_clk_bind()
2226 sys_child->priv = priv; in rv1126_clk_bind()
2238 sf_child->priv = sf_priv; in rv1126_clk_bind()
2270 struct rv1126_clk_priv *priv; in soc_clk_dump() local
2293 priv = dev_get_priv(cru_dev); in soc_clk_dump()
2295 priv->sync_kernel ? "sync kernel" : "uboot", in soc_clk_dump()
2296 priv->armclk_enter_hz / 1000, in soc_clk_dump()
2297 priv->armclk_init_hz / 1000, in soc_clk_dump()
2298 priv->set_armclk_rate ? priv->armclk_hz / 1000 : 0, in soc_clk_dump()
2299 priv->set_armclk_rate ? " KHz" : "N/A"); in soc_clk_dump()