Lines Matching refs:hwdata

308 	struct si5351_hw_data *hwdata =  in si5351_vxco_prepare()  local
311 dev_warn(&hwdata->drvdata->client->dev, "VXCO currently unsupported\n"); in si5351_vxco_prepare()
387 struct si5351_hw_data *hwdata = in si5351_pll_get_parent() local
389 u8 mask = (hwdata->num == 0) ? SI5351_PLLA_SOURCE : SI5351_PLLB_SOURCE; in si5351_pll_get_parent()
392 val = si5351_reg_read(hwdata->drvdata, SI5351_PLL_INPUT_SOURCE); in si5351_pll_get_parent()
399 struct si5351_hw_data *hwdata = in si5351_pll_set_parent() local
402 if (hwdata->drvdata->variant != SI5351_VARIANT_C && in si5351_pll_set_parent()
409 return _si5351_pll_reparent(hwdata->drvdata, hwdata->num, in si5351_pll_set_parent()
417 struct si5351_hw_data *hwdata = in si5351_pll_recalc_rate() local
419 u8 reg = (hwdata->num == 0) ? SI5351_PLLA_PARAMETERS : in si5351_pll_recalc_rate()
423 if (!hwdata->params.valid) in si5351_pll_recalc_rate()
424 si5351_read_parameters(hwdata->drvdata, reg, &hwdata->params); in si5351_pll_recalc_rate()
426 if (hwdata->params.p3 == 0) in si5351_pll_recalc_rate()
430 rate = hwdata->params.p1 * hwdata->params.p3; in si5351_pll_recalc_rate()
431 rate += 512 * hwdata->params.p3; in si5351_pll_recalc_rate()
432 rate += hwdata->params.p2; in si5351_pll_recalc_rate()
434 do_div(rate, 128 * hwdata->params.p3); in si5351_pll_recalc_rate()
436 dev_dbg(&hwdata->drvdata->client->dev, in si5351_pll_recalc_rate()
439 hwdata->params.p1, hwdata->params.p2, hwdata->params.p3, in si5351_pll_recalc_rate()
448 struct si5351_hw_data *hwdata = in si5351_pll_determine_rate() local
481 hwdata->params.p3 = c; in si5351_pll_determine_rate()
482 hwdata->params.p2 = (128 * b) % c; in si5351_pll_determine_rate()
483 hwdata->params.p1 = 128 * a; in si5351_pll_determine_rate()
484 hwdata->params.p1 += (128 * b / c); in si5351_pll_determine_rate()
485 hwdata->params.p1 -= 512; in si5351_pll_determine_rate()
495 dev_dbg(&hwdata->drvdata->client->dev, in si5351_pll_determine_rate()
507 struct si5351_hw_data *hwdata = in si5351_pll_set_rate() local
510 hwdata->drvdata->client->dev.platform_data; in si5351_pll_set_rate()
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()
523 if (pdata->pll_reset[hwdata->num]) in si5351_pll_set_rate()
524 si5351_reg_write(hwdata->drvdata, SI5351_PLL_RESET, in si5351_pll_set_rate()
525 hwdata->num == 0 ? SI5351_PLL_RESET_A : in si5351_pll_set_rate()
528 dev_dbg(&hwdata->drvdata->client->dev, in si5351_pll_set_rate()
531 hwdata->params.p1, hwdata->params.p2, hwdata->params.p3, in si5351_pll_set_rate()
585 struct si5351_hw_data *hwdata = in si5351_msynth_get_parent() local
589 val = si5351_reg_read(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num); in si5351_msynth_get_parent()
596 struct si5351_hw_data *hwdata = in si5351_msynth_set_parent() local
599 return _si5351_msynth_reparent(hwdata->drvdata, hwdata->num, in si5351_msynth_set_parent()
607 struct si5351_hw_data *hwdata = in si5351_msynth_recalc_rate() local
609 u8 reg = si5351_msynth_params_address(hwdata->num); in si5351_msynth_recalc_rate()
613 if (!hwdata->params.valid) in si5351_msynth_recalc_rate()
614 si5351_read_parameters(hwdata->drvdata, reg, &hwdata->params); in si5351_msynth_recalc_rate()
621 if (hwdata->num > 5) { in si5351_msynth_recalc_rate()
622 m = hwdata->params.p1; in si5351_msynth_recalc_rate()
623 } else if (hwdata->params.p3 == 0) { in si5351_msynth_recalc_rate()
625 } else if ((si5351_reg_read(hwdata->drvdata, reg + 2) & in si5351_msynth_recalc_rate()
629 rate *= 128 * hwdata->params.p3; in si5351_msynth_recalc_rate()
630 m = hwdata->params.p1 * hwdata->params.p3; in si5351_msynth_recalc_rate()
631 m += hwdata->params.p2; in si5351_msynth_recalc_rate()
632 m += 512 * hwdata->params.p3; in si5351_msynth_recalc_rate()
639 dev_dbg(&hwdata->drvdata->client->dev, in si5351_msynth_recalc_rate()
642 hwdata->params.p1, hwdata->params.p2, hwdata->params.p3, in si5351_msynth_recalc_rate()
651 struct si5351_hw_data *hwdata = in si5351_msynth_determine_rate() local
659 if (hwdata->num >= 6 && rate > SI5351_MULTISYNTH67_MAX_FREQ) in si5351_msynth_determine_rate()
689 } else if (hwdata->num >= 6) { in si5351_msynth_determine_rate()
738 hwdata->params.p3 = 1; in si5351_msynth_determine_rate()
739 hwdata->params.p2 = 0; in si5351_msynth_determine_rate()
740 hwdata->params.p1 = 0; in si5351_msynth_determine_rate()
741 } else if (hwdata->num >= 6) { in si5351_msynth_determine_rate()
742 hwdata->params.p3 = 0; in si5351_msynth_determine_rate()
743 hwdata->params.p2 = 0; in si5351_msynth_determine_rate()
744 hwdata->params.p1 = a; in si5351_msynth_determine_rate()
746 hwdata->params.p3 = c; in si5351_msynth_determine_rate()
747 hwdata->params.p2 = (128 * b) % c; in si5351_msynth_determine_rate()
748 hwdata->params.p1 = 128 * a; in si5351_msynth_determine_rate()
749 hwdata->params.p1 += (128 * b / c); in si5351_msynth_determine_rate()
750 hwdata->params.p1 -= 512; in si5351_msynth_determine_rate()
753 dev_dbg(&hwdata->drvdata->client->dev, in si5351_msynth_determine_rate()
766 struct si5351_hw_data *hwdata = in si5351_msynth_set_rate() local
768 u8 reg = si5351_msynth_params_address(hwdata->num); in si5351_msynth_set_rate()
772 si5351_write_parameters(hwdata->drvdata, reg, &hwdata->params); in si5351_msynth_set_rate()
778 if (hwdata->num < 6) { in si5351_msynth_set_rate()
779 si5351_set_bits(hwdata->drvdata, reg + 2, in si5351_msynth_set_rate()
782 si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num, in si5351_msynth_set_rate()
784 (hwdata->params.p2 == 0) ? SI5351_CLK_INTEGER_MODE : 0); in si5351_msynth_set_rate()
787 dev_dbg(&hwdata->drvdata->client->dev, in si5351_msynth_set_rate()
790 hwdata->params.p1, hwdata->params.p2, hwdata->params.p3, in si5351_msynth_set_rate()
938 struct si5351_hw_data *hwdata = in si5351_clkout_prepare() local
941 hwdata->drvdata->client->dev.platform_data; in si5351_clkout_prepare()
943 si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num, in si5351_clkout_prepare()
950 if (pdata->clkout[hwdata->num].pll_reset) in si5351_clkout_prepare()
951 _si5351_clkout_reset_pll(hwdata->drvdata, hwdata->num); in si5351_clkout_prepare()
953 si5351_set_bits(hwdata->drvdata, SI5351_OUTPUT_ENABLE_CTRL, in si5351_clkout_prepare()
954 (1 << hwdata->num), 0); in si5351_clkout_prepare()
960 struct si5351_hw_data *hwdata = in si5351_clkout_unprepare() local
963 si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num, in si5351_clkout_unprepare()
965 si5351_set_bits(hwdata->drvdata, SI5351_OUTPUT_ENABLE_CTRL, in si5351_clkout_unprepare()
966 (1 << hwdata->num), (1 << hwdata->num)); in si5351_clkout_unprepare()
971 struct si5351_hw_data *hwdata = in si5351_clkout_get_parent() local
976 val = si5351_reg_read(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num); in si5351_clkout_get_parent()
997 struct si5351_hw_data *hwdata = in si5351_clkout_set_parent() local
1016 return _si5351_clkout_reparent(hwdata->drvdata, hwdata->num, parent); in si5351_clkout_set_parent()
1022 struct si5351_hw_data *hwdata = in si5351_clkout_recalc_rate() local
1027 if (hwdata->num <= 5) in si5351_clkout_recalc_rate()
1028 reg = si5351_msynth_params_address(hwdata->num) + 2; in si5351_clkout_recalc_rate()
1032 rdiv = si5351_reg_read(hwdata->drvdata, reg); in si5351_clkout_recalc_rate()
1033 if (hwdata->num == 6) { in si5351_clkout_recalc_rate()
1046 struct si5351_hw_data *hwdata = in si5351_clkout_determine_rate() local
1052 if (hwdata->num >= 6 && rate > SI5351_CLKOUT67_MAX_FREQ) in si5351_clkout_determine_rate()
1089 dev_dbg(&hwdata->drvdata->client->dev, in si5351_clkout_determine_rate()
1101 struct si5351_hw_data *hwdata = in si5351_clkout_set_rate() local
1120 switch (hwdata->num) { in si5351_clkout_set_rate()
1122 si5351_set_bits(hwdata->drvdata, SI5351_CLK6_7_OUTPUT_DIVIDER, in si5351_clkout_set_rate()
1126 si5351_set_bits(hwdata->drvdata, SI5351_CLK6_7_OUTPUT_DIVIDER, in si5351_clkout_set_rate()
1131 si5351_set_bits(hwdata->drvdata, in si5351_clkout_set_rate()
1132 si5351_msynth_params_address(hwdata->num) + 2, in si5351_clkout_set_rate()
1138 si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num, in si5351_clkout_set_rate()
1141 dev_dbg(&hwdata->drvdata->client->dev, in si5351_clkout_set_rate()