노트 - IMX6ULL ADC 채집

1. 장치 트리arch/arm/boot/dts/imx6ull-xx를 엽니다.dts, xxx는 자신의 판에 대응하여 대응하는 코드 필름을 찾습니다. 없으면 스스로 추가:regulator 설정 참고
   reg_vref_3v3: regulator@2 {
			compatible = "regulator-fixed";
			regulator-name = "vref-3v3";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
		};	
&adc1 {
	pinctrl-names = "default";
	pinctrl-0 = ;
	vref-supply = ;
	num-channels = <2>; //    ADC   ,  2   ,0-1
	status = "okay";
};

2. tsc 인발을 ADC 기능으로 하기 때문에 tsc 인발은 tsc 기능으로 할 수 없습니다. 이 기능을 차단해야 합니다.
&tsc{
......
        status = "disabled";
};

원래 status = "okay"를 disabled 3으로 변경하고 다른 기능의 파이프 정의를 참고하여 tsc의 ADC 파이프 정의를 추가합니다.
pinctrl_adc1: adc1grp {
	fsl,pins = <                                          
		MX6UL_PAD_GPIO1_IO01__GPIO1_IO01              0xb0      
	>;
	/  ADC  ...
      };

4、대응하는imx6ull.dtsi 파일은 다음과 같이 정의됩니다
adc1: adc@02198000 {
compatible = "fsl,imx6ul-adc", "fsl,vf610-adc";
reg = <0x02198000 0x4000>;
interrupts = ;
clocks = ;
num-channels = <2>;
clock-names = "adc";
status = "disabled";
};

5, 추가 성공 후 다시 쓰기 장치 트리 tq-imx6ull.dtb, tsc 인발은 ADC 기능으로 ADC 값을 읽을 수 있는지 테스트할 수 있습니다
adc 장치 제어 디렉토리:
cat/sys/devices/platform/soc/2100000.aips-bus/2198000.adc/iio:device0/in_voltage1_raw
첨부: 사용자 정의 설정 채널 수
사용에 대해 ADC1에서만 3, 4, 6, 7을 입력하면 다음 변경 사항을 시도할 수 있습니다:imx6ull.dtsi에서 num-channels = 4를 변경합니다.
adc1:adc @ 02198000 {
  ...
  num-channels = <4>;

drivers/iio/adc/imx7d 수정adc.c
static const struct iio_chan_spec vf610_adc_iio_channels[] = {
    VF610_ADC_CHAN(3, IIO_VOLTAGE),
    VF610_ADC_CHAN(4, IIO_VOLTAGE),
    VF610_ADC_CHAN(6, IIO_VOLTAGE),
    VF610_ADC_CHAN(7, IIO_VOLTAGE),
          ...

좋은 웹페이지 즐겨찾기