Lines Matching refs:hwdata
308 struct si5351_hw_data *hwdata =
311 dev_warn(&hwdata->drvdata->client->dev, "VXCO currently unsupported\n");
387 struct si5351_hw_data *hwdata =
389 u8 mask = (hwdata->num == 0) ? SI5351_PLLA_SOURCE : SI5351_PLLB_SOURCE;
392 val = si5351_reg_read(hwdata->drvdata, SI5351_PLL_INPUT_SOURCE);
399 struct si5351_hw_data *hwdata =
402 if (hwdata->drvdata->variant != SI5351_VARIANT_C &&
409 return _si5351_pll_reparent(hwdata->drvdata, hwdata->num,
417 struct si5351_hw_data *hwdata =
419 u8 reg = (hwdata->num == 0) ? SI5351_PLLA_PARAMETERS :
423 if (!hwdata->params.valid)
424 si5351_read_parameters(hwdata->drvdata, reg, &hwdata->params);
426 if (hwdata->params.p3 == 0)
430 rate = hwdata->params.p1 * hwdata->params.p3;
431 rate += 512 * hwdata->params.p3;
432 rate += hwdata->params.p2;
434 do_div(rate, 128 * hwdata->params.p3);
436 dev_dbg(&hwdata->drvdata->client->dev,
439 hwdata->params.p1, hwdata->params.p2, hwdata->params.p3,
448 struct si5351_hw_data *hwdata =
481 hwdata->params.p3 = c;
482 hwdata->params.p2 = (128 * b) % c;
483 hwdata->params.p1 = 128 * a;
484 hwdata->params.p1 += (128 * b / c);
485 hwdata->params.p1 -= 512;
495 dev_dbg(&hwdata->drvdata->client->dev,
507 struct si5351_hw_data *hwdata =
509 u8 reg = (hwdata->num == 0) ? SI5351_PLLA_PARAMETERS :
513 si5351_write_parameters(hwdata->drvdata, reg, &hwdata->params);
516 si5351_set_bits(hwdata->drvdata, SI5351_CLK6_CTRL + hwdata->num,
518 (hwdata->params.p2 == 0) ? SI5351_CLK_INTEGER_MODE : 0);
521 si5351_reg_write(hwdata->drvdata, SI5351_PLL_RESET,
522 hwdata->num == 0 ? SI5351_PLL_RESET_A :
525 dev_dbg(&hwdata->drvdata->client->dev,
528 hwdata->params.p1, hwdata->params.p2, hwdata->params.p3,
582 struct si5351_hw_data *hwdata =
586 val = si5351_reg_read(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num);
593 struct si5351_hw_data *hwdata =
596 return _si5351_msynth_reparent(hwdata->drvdata, hwdata->num,
604 struct si5351_hw_data *hwdata =
606 u8 reg = si5351_msynth_params_address(hwdata->num);
610 if (!hwdata->params.valid)
611 si5351_read_parameters(hwdata->drvdata, reg, &hwdata->params);
618 if (hwdata->num > 5) {
619 m = hwdata->params.p1;
620 } else if (hwdata->params.p3 == 0) {
622 } else if ((si5351_reg_read(hwdata->drvdata, reg + 2) &
626 rate *= 128 * hwdata->params.p3;
627 m = hwdata->params.p1 * hwdata->params.p3;
628 m += hwdata->params.p2;
629 m += 512 * hwdata->params.p3;
636 dev_dbg(&hwdata->drvdata->client->dev,
639 hwdata->params.p1, hwdata->params.p2, hwdata->params.p3,
648 struct si5351_hw_data *hwdata =
656 if (hwdata->num >= 6 && rate > SI5351_MULTISYNTH67_MAX_FREQ)
686 } else if (hwdata->num >= 6) {
735 hwdata->params.p3 = 1;
736 hwdata->params.p2 = 0;
737 hwdata->params.p1 = 0;
738 } else if (hwdata->num >= 6) {
739 hwdata->params.p3 = 0;
740 hwdata->params.p2 = 0;
741 hwdata->params.p1 = a;
743 hwdata->params.p3 = c;
744 hwdata->params.p2 = (128 * b) % c;
745 hwdata->params.p1 = 128 * a;
746 hwdata->params.p1 += (128 * b / c);
747 hwdata->params.p1 -= 512;
750 dev_dbg(&hwdata->drvdata->client->dev,
763 struct si5351_hw_data *hwdata =
765 u8 reg = si5351_msynth_params_address(hwdata->num);
769 si5351_write_parameters(hwdata->drvdata, reg, &hwdata->params);
775 if (hwdata->num < 6) {
776 si5351_set_bits(hwdata->drvdata, reg + 2,
779 si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num,
781 (hwdata->params.p2 == 0) ? SI5351_CLK_INTEGER_MODE : 0);
784 dev_dbg(&hwdata->drvdata->client->dev,
787 hwdata->params.p1, hwdata->params.p2, hwdata->params.p3,
935 struct si5351_hw_data *hwdata =
938 hwdata->drvdata->client->dev.platform_data;
940 si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num,
947 if (pdata->clkout[hwdata->num].pll_reset)
948 _si5351_clkout_reset_pll(hwdata->drvdata, hwdata->num);
950 si5351_set_bits(hwdata->drvdata, SI5351_OUTPUT_ENABLE_CTRL,
951 (1 << hwdata->num), 0);
957 struct si5351_hw_data *hwdata =
960 si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num,
962 si5351_set_bits(hwdata->drvdata, SI5351_OUTPUT_ENABLE_CTRL,
963 (1 << hwdata->num), (1 << hwdata->num));
968 struct si5351_hw_data *hwdata =
973 val = si5351_reg_read(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num);
994 struct si5351_hw_data *hwdata =
1013 return _si5351_clkout_reparent(hwdata->drvdata, hwdata->num, parent);
1019 struct si5351_hw_data *hwdata =
1024 if (hwdata->num <= 5)
1025 reg = si5351_msynth_params_address(hwdata->num) + 2;
1029 rdiv = si5351_reg_read(hwdata->drvdata, reg);
1030 if (hwdata->num == 6) {
1043 struct si5351_hw_data *hwdata =
1049 if (hwdata->num >= 6 && rate > SI5351_CLKOUT67_MAX_FREQ)
1086 dev_dbg(&hwdata->drvdata->client->dev,
1098 struct si5351_hw_data *hwdata =
1117 switch (hwdata->num) {
1119 si5351_set_bits(hwdata->drvdata, SI5351_CLK6_7_OUTPUT_DIVIDER,
1123 si5351_set_bits(hwdata->drvdata, SI5351_CLK6_7_OUTPUT_DIVIDER,
1128 si5351_set_bits(hwdata->drvdata,
1129 si5351_msynth_params_address(hwdata->num) + 2,
1135 si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num,
1138 dev_dbg(&hwdata->drvdata->client->dev,