노트 - IMX6ULL ADC 채집
2000 단어 내장형 소프트웨어
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),
...