@@ -390,7 +390,8 @@ static void cf_axi_dds_set_sed_pattern(struct iio_dev *indio_dev, unsigned chan,
390
390
}
391
391
392
392
static int cf_axi_dds_default_setup (struct cf_axi_dds_state * st , u32 chan ,
393
- u32 phase , u32 freq , u32 scale ) {
393
+ u32 phase , u32 freq , u32 scale )
394
+ {
394
395
395
396
unsigned long long val64 ;
396
397
u32 val ;
@@ -408,15 +409,6 @@ static int cf_axi_dds_default_setup(struct cf_axi_dds_state *st, u32 chan,
408
409
dds_write (st , ADI_REG_CHAN_CNTRL_1_IIOCHAN (chan ), ADI_DDS_SCALE (scale ));
409
410
dds_write (st , ADI_REG_CHAN_CNTRL_2_IIOCHAN (chan ), val );
410
411
411
- if (chan % 2 )
412
- dds_write (st , ADI_REG_CHAN_CNTRL_8 (chan ),
413
- ADI_IQCOR_COEFF_2 (0x4000 ) |
414
- ADI_IQCOR_COEFF_1 (0 ));
415
- else
416
- dds_write (st , ADI_REG_CHAN_CNTRL_8 (chan ),
417
- ADI_IQCOR_COEFF_2 (0 ) |
418
- ADI_IQCOR_COEFF_1 (0x4000 ));
419
-
420
412
return 0 ;
421
413
}
422
414
@@ -1789,40 +1781,35 @@ static int cf_axi_dds_probe(struct platform_device *pdev)
1789
1781
cf_axi_dds_datasel (st , -1 , DATA_SEL_DDS );
1790
1782
1791
1783
if (!st -> dp_disable ) {
1792
- unsigned scale , frequency ;
1784
+ u32 scale , frequency , phase , i ;
1793
1785
scale = 0x1000 ; /* 0.250 */
1794
1786
frequency = 40000000 ;
1795
1787
1796
1788
of_property_read_u32 (np , "adi,axi-dds-default-scale" , & scale );
1797
1789
of_property_read_u32 (np , "adi,axi-dds-default-frequency" ,
1798
1790
& frequency );
1799
1791
1800
- cf_axi_dds_default_setup (st , 0 , 90000 , frequency , scale );
1801
- cf_axi_dds_default_setup (st , 1 , 90000 , frequency , scale );
1802
-
1803
-
1804
- if (st -> chip_info -> num_dds_channels >= 4 ) {
1805
- cf_axi_dds_default_setup (st , 2 , 0 , frequency , scale );
1806
- cf_axi_dds_default_setup (st , 3 , 0 , frequency , scale );
1807
- }
1792
+ for (i = 0 ; i < st -> chip_info -> num_dds_channels ; i += 2 ) {
1793
+ if ((i / 2 ) % 2 )
1794
+ phase = 0 ;
1795
+ else
1796
+ phase = 90000 ;
1808
1797
1809
- if (st -> chip_info -> num_dds_channels >= 8 ) {
1810
- cf_axi_dds_default_setup (st , 4 , 90000 , frequency , scale );
1811
- cf_axi_dds_default_setup (st , 5 , 90000 , frequency , scale );
1812
- cf_axi_dds_default_setup (st , 6 , 0 , frequency , scale );
1813
- cf_axi_dds_default_setup (st , 7 , 0 , frequency , scale );
1798
+ cf_axi_dds_default_setup (st , i , phase ,
1799
+ frequency , scale );
1800
+ cf_axi_dds_default_setup (st , i + 1 , phase ,
1801
+ frequency , scale );
1814
1802
}
1815
1803
1816
- if (st -> chip_info -> num_dds_channels >= 16 ) {
1817
- cf_axi_dds_default_setup (st , 8 , 90000 , frequency , scale );
1818
- cf_axi_dds_default_setup (st , 9 , 90000 , frequency , scale );
1819
- cf_axi_dds_default_setup (st , 10 , 0 , frequency , scale );
1820
- cf_axi_dds_default_setup (st , 11 , 0 , frequency , scale );
1821
- cf_axi_dds_default_setup (st , 12 , 90000 , frequency , scale );
1822
- cf_axi_dds_default_setup (st , 13 , 90000 , frequency , scale );
1823
- cf_axi_dds_default_setup (st , 14 , 0 , frequency , scale );
1824
- cf_axi_dds_default_setup (st , 15 , 0 , frequency , scale );
1825
- }
1804
+ for (i = 0 ; i < st -> chip_info -> num_buf_channels ; i ++ )
1805
+ if (i % 2 )
1806
+ dds_write (st , ADI_REG_CHAN_CNTRL_8 (i ),
1807
+ ADI_IQCOR_COEFF_2 (0x4000 ) |
1808
+ ADI_IQCOR_COEFF_1 (0 ));
1809
+ else
1810
+ dds_write (st , ADI_REG_CHAN_CNTRL_8 (i ),
1811
+ ADI_IQCOR_COEFF_2 (0 ) |
1812
+ ADI_IQCOR_COEFF_1 (0x4000 ));
1826
1813
1827
1814
cf_axi_dds_update_chan_spec (st , st -> chip_info -> channel ,
1828
1815
st -> chip_info -> num_channels );
0 commit comments