AnsweredAssumed Answered

vf610.c  How to achieve high precision sampling using vf610 driver? 

Question asked by liu jun on Nov 26, 2018
Latest reply on Nov 28, 2018 by igorpadykov

platform:   imx6ul evk

Adds a description of the device tree ,as follows:

329 &adc1 {
330 pinctrl-names = "default";
331 pinctrl-0 = <&pinctrl_adc1>;
332 vref-supply = <&reg_vref_3v3>;
333 fsl,adck-max-frequency = <50000>,<50000>,<50000>;
334 min-sample-time = <1000>;
335 status = "okay";
336 };
337

653 pinctrl_adc1: adc1grp {
654 fsl,pins = <
655 MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0xb0
656 MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0xb0
657 //MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0xb0
658 //MX6UL_PAD_GPIO1_IO08__GPIO1_IO08 0xb0
659 >;
660 };

142 reg_vref_3v3: regulator@2 {
143 compatible = "regulator-fixed";
144 regulator-name = "vref-3v3";
145 regulator-min-microvolt = <3300000>;
146 regulator-max-microvolt = <3300000>;
147 };

imx6ul.dtsi

 

 

962 adc1: adc@02198000 {
963 compatible = "fsl,imx6ul-adc", "fsl,vf610-adc";
964 reg = <0x02198000 0x4000>;
965 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
966 clocks = <&clks IMX6UL_CLK_ADC1>;
967 num-channels = <2>;
968 clock-names = "adc";
969 status = "disabled";
970 };

 

I want to use the long-sampling mode to collect data and update the source code of the latest kernel driver. However, once long-sampling mode is turned on, the CPU is always occupied by this driver

 

root@imx6ulevk:/sys/bus/iio/devices/iio:device0/buffer# echo 1 > enable
vf610_adc_buffer_postenable
vf610_adc_isr
vf610_adc_read_data
vf610_adc_isr
vf610_adc_read_data
vf610_adc_isr
vf610_adc_read_data
vf610_adc_isr
vf610_adc_read_data

 

can*t stop!!!

Outcomes