Lines Matching refs:hwdata

312 	struct si5351_hw_data *hwdata =  in si5351_vxco_prepare()  local
315 dev_warn(&hwdata->drvdata->client->dev, "VXCO currently unsupported\n"); in si5351_vxco_prepare()
391 struct si5351_hw_data *hwdata = in si5351_pll_get_parent() local
393 u8 mask = (hwdata->num == 0) ? SI5351_PLLA_SOURCE : SI5351_PLLB_SOURCE; in si5351_pll_get_parent()
396 val = si5351_reg_read(hwdata->drvdata, SI5351_PLL_INPUT_SOURCE); in si5351_pll_get_parent()
403 struct si5351_hw_data *hwdata = in si5351_pll_set_parent() local
406 if (hwdata->drvdata->variant != SI5351_VARIANT_C && in si5351_pll_set_parent()
413 return _si5351_pll_reparent(hwdata->drvdata, hwdata->num, in si5351_pll_set_parent()
421 struct si5351_hw_data *hwdata = in si5351_pll_recalc_rate() local
423 u8 reg = (hwdata->num == 0) ? SI5351_PLLA_PARAMETERS : in si5351_pll_recalc_rate()
427 if (!hwdata->params.valid) in si5351_pll_recalc_rate()
428 si5351_read_parameters(hwdata->drvdata, reg, &hwdata->params); in si5351_pll_recalc_rate()
430 if (hwdata->params.p3 == 0) in si5351_pll_recalc_rate()
434 rate = hwdata->params.p1 * hwdata->params.p3; in si5351_pll_recalc_rate()
435 rate += 512 * hwdata->params.p3; in si5351_pll_recalc_rate()
436 rate += hwdata->params.p2; in si5351_pll_recalc_rate()
438 do_div(rate, 128 * hwdata->params.p3); in si5351_pll_recalc_rate()
440 dev_dbg(&hwdata->drvdata->client->dev, in si5351_pll_recalc_rate()
442 __func__, __clk_get_name(hwdata->hw.clk), in si5351_pll_recalc_rate()
443 hwdata->params.p1, hwdata->params.p2, hwdata->params.p3, in si5351_pll_recalc_rate()
452 struct si5351_hw_data *hwdata = in si5351_pll_round_rate() local
484 hwdata->params.p3 = c; in si5351_pll_round_rate()
485 hwdata->params.p2 = (128 * b) % c; in si5351_pll_round_rate()
486 hwdata->params.p1 = 128 * a; in si5351_pll_round_rate()
487 hwdata->params.p1 += (128 * b / c); in si5351_pll_round_rate()
488 hwdata->params.p1 -= 512; in si5351_pll_round_rate()
498 dev_dbg(&hwdata->drvdata->client->dev, in si5351_pll_round_rate()
500 __func__, __clk_get_name(hwdata->hw.clk), a, b, c, in si5351_pll_round_rate()
509 struct si5351_hw_data *hwdata = in si5351_pll_set_rate() local
511 u8 reg = (hwdata->num == 0) ? SI5351_PLLA_PARAMETERS : in si5351_pll_set_rate()
515 si5351_write_parameters(hwdata->drvdata, reg, &hwdata->params); in si5351_pll_set_rate()
518 si5351_set_bits(hwdata->drvdata, SI5351_CLK6_CTRL + hwdata->num, in si5351_pll_set_rate()
520 (hwdata->params.p2 == 0) ? SI5351_CLK_INTEGER_MODE : 0); in si5351_pll_set_rate()
522 dev_dbg(&hwdata->drvdata->client->dev, in si5351_pll_set_rate()
524 __func__, __clk_get_name(hwdata->hw.clk), in si5351_pll_set_rate()
525 hwdata->params.p1, hwdata->params.p2, hwdata->params.p3, in si5351_pll_set_rate()
578 struct si5351_hw_data *hwdata = in si5351_msynth_get_parent() local
582 val = si5351_reg_read(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num); in si5351_msynth_get_parent()
589 struct si5351_hw_data *hwdata = in si5351_msynth_set_parent() local
592 return _si5351_msynth_reparent(hwdata->drvdata, hwdata->num, in si5351_msynth_set_parent()
600 struct si5351_hw_data *hwdata = in si5351_msynth_recalc_rate() local
602 u8 reg = si5351_msynth_params_address(hwdata->num); in si5351_msynth_recalc_rate()
606 if (!hwdata->params.valid) in si5351_msynth_recalc_rate()
607 si5351_read_parameters(hwdata->drvdata, reg, &hwdata->params); in si5351_msynth_recalc_rate()
609 if (hwdata->params.p3 == 0) in si5351_msynth_recalc_rate()
617 if (hwdata->num > 5) { in si5351_msynth_recalc_rate()
618 m = hwdata->params.p1; in si5351_msynth_recalc_rate()
619 } else if ((si5351_reg_read(hwdata->drvdata, reg + 2) & in si5351_msynth_recalc_rate()
623 rate *= 128 * hwdata->params.p3; in si5351_msynth_recalc_rate()
624 m = hwdata->params.p1 * hwdata->params.p3; in si5351_msynth_recalc_rate()
625 m += hwdata->params.p2; in si5351_msynth_recalc_rate()
626 m += 512 * hwdata->params.p3; in si5351_msynth_recalc_rate()
633 dev_dbg(&hwdata->drvdata->client->dev, in si5351_msynth_recalc_rate()
635 __func__, __clk_get_name(hwdata->hw.clk), in si5351_msynth_recalc_rate()
636 hwdata->params.p1, hwdata->params.p2, hwdata->params.p3, in si5351_msynth_recalc_rate()
645 struct si5351_hw_data *hwdata = in si5351_msynth_round_rate() local
652 if (hwdata->num >= 6 && rate > SI5351_MULTISYNTH67_MAX_FREQ) in si5351_msynth_round_rate()
666 if (__clk_get_flags(hwdata->hw.clk) & CLK_SET_RATE_PARENT) { in si5351_msynth_round_rate()
695 if (hwdata->num >= 6 && a > SI5351_MULTISYNTH67_A_MAX) in si5351_msynth_round_rate()
723 hwdata->params.p3 = 1; in si5351_msynth_round_rate()
724 hwdata->params.p2 = 0; in si5351_msynth_round_rate()
725 hwdata->params.p1 = 0; in si5351_msynth_round_rate()
727 hwdata->params.p3 = c; in si5351_msynth_round_rate()
728 hwdata->params.p2 = (128 * b) % c; in si5351_msynth_round_rate()
729 hwdata->params.p1 = 128 * a; in si5351_msynth_round_rate()
730 hwdata->params.p1 += (128 * b / c); in si5351_msynth_round_rate()
731 hwdata->params.p1 -= 512; in si5351_msynth_round_rate()
734 dev_dbg(&hwdata->drvdata->client->dev, in si5351_msynth_round_rate()
736 __func__, __clk_get_name(hwdata->hw.clk), a, b, c, divby4, in si5351_msynth_round_rate()
745 struct si5351_hw_data *hwdata = in si5351_msynth_set_rate() local
747 u8 reg = si5351_msynth_params_address(hwdata->num); in si5351_msynth_set_rate()
751 si5351_write_parameters(hwdata->drvdata, reg, &hwdata->params); in si5351_msynth_set_rate()
757 if (hwdata->num < 6) { in si5351_msynth_set_rate()
758 si5351_set_bits(hwdata->drvdata, reg + 2, in si5351_msynth_set_rate()
761 si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num, in si5351_msynth_set_rate()
763 (hwdata->params.p2 == 0) ? SI5351_CLK_INTEGER_MODE : 0); in si5351_msynth_set_rate()
766 dev_dbg(&hwdata->drvdata->client->dev, in si5351_msynth_set_rate()
768 __func__, __clk_get_name(hwdata->hw.clk), in si5351_msynth_set_rate()
769 hwdata->params.p1, hwdata->params.p2, hwdata->params.p3, in si5351_msynth_set_rate()
891 struct si5351_hw_data *hwdata = in si5351_clkout_prepare() local
894 si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num, in si5351_clkout_prepare()
896 si5351_set_bits(hwdata->drvdata, SI5351_OUTPUT_ENABLE_CTRL, in si5351_clkout_prepare()
897 (1 << hwdata->num), 0); in si5351_clkout_prepare()
903 struct si5351_hw_data *hwdata = in si5351_clkout_unprepare() local
906 si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num, in si5351_clkout_unprepare()
908 si5351_set_bits(hwdata->drvdata, SI5351_OUTPUT_ENABLE_CTRL, in si5351_clkout_unprepare()
909 (1 << hwdata->num), (1 << hwdata->num)); in si5351_clkout_unprepare()
914 struct si5351_hw_data *hwdata = in si5351_clkout_get_parent() local
919 val = si5351_reg_read(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num); in si5351_clkout_get_parent()
940 struct si5351_hw_data *hwdata = in si5351_clkout_set_parent() local
959 return _si5351_clkout_reparent(hwdata->drvdata, hwdata->num, parent); in si5351_clkout_set_parent()
965 struct si5351_hw_data *hwdata = in si5351_clkout_recalc_rate() local
970 if (hwdata->num <= 5) in si5351_clkout_recalc_rate()
971 reg = si5351_msynth_params_address(hwdata->num) + 2; in si5351_clkout_recalc_rate()
975 rdiv = si5351_reg_read(hwdata->drvdata, reg); in si5351_clkout_recalc_rate()
976 if (hwdata->num == 6) { in si5351_clkout_recalc_rate()
989 struct si5351_hw_data *hwdata = in si5351_clkout_round_rate() local
994 if (hwdata->num >= 6 && rate > SI5351_CLKOUT67_MAX_FREQ) in si5351_clkout_round_rate()
1004 if (__clk_get_flags(hwdata->hw.clk) & CLK_SET_RATE_PARENT) { in si5351_clkout_round_rate()
1031 dev_dbg(&hwdata->drvdata->client->dev, in si5351_clkout_round_rate()
1033 __func__, __clk_get_name(hwdata->hw.clk), (1 << rdiv), in si5351_clkout_round_rate()
1042 struct si5351_hw_data *hwdata = in si5351_clkout_set_rate() local
1061 switch (hwdata->num) { in si5351_clkout_set_rate()
1063 si5351_set_bits(hwdata->drvdata, SI5351_CLK6_7_OUTPUT_DIVIDER, in si5351_clkout_set_rate()
1067 si5351_set_bits(hwdata->drvdata, SI5351_CLK6_7_OUTPUT_DIVIDER, in si5351_clkout_set_rate()
1072 si5351_set_bits(hwdata->drvdata, in si5351_clkout_set_rate()
1073 si5351_msynth_params_address(hwdata->num) + 2, in si5351_clkout_set_rate()
1079 si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num, in si5351_clkout_set_rate()
1082 dev_dbg(&hwdata->drvdata->client->dev, in si5351_clkout_set_rate()
1084 __func__, __clk_get_name(hwdata->hw.clk), (1 << rdiv), in si5351_clkout_set_rate()