工具与软件:
您好!
我正在进行以下设置:
CPU:iMX93
IC:ADS7950
SPI:GPIO2上的 LPSPI7芯片选择4.
操作系统:基于内核版本 L6.1.22的 Yocto Linux
尝试读取 sysfs 中的 ADC 通道值时出现 I/O 错误。
以下是相关的设备树配置:
lpspi7:SPI@42710000{
#address-cells =<1>;
#size-cells =<0>;
Compatible ="FSL、imx93-SPI"、"FSL、imx7ulp-SPI";
REG =<0x42710000 0x10000>;
中断= ;
时钟=<&clk IMX93_CLK_LPSPI7_gate>
<&clk IMX93_CLK_BUS_WAKEUP>;
时钟名称="PER"、"IPG";
};
&lpspi7 {
fsl、spi-num-chipselect =<1>;
pinctrl-names ="默认值"、"睡眠";
pinctrl-0 =<&pinctrl_lpspi7>、<&pinctrl_lpspi7_cs>;
pinctrl-1 =<&pinctrl_lpspi7>、<&pinctrl_lpspi7_cs>;
CS-GPIO =<&GPIO2 4 GPIO_ACTIVE_LOW>;
DMA =<&edma2 83 0 0>、<&edma2 84 0 1>;
DMA-names ="TX"、"Rx";
分配的时钟速率=<30000000>;
状态="正常";
ADC@0{
兼容="ti、ads7950";
REG =<0>;/* SPI 芯片选择0 */
VREF-SUPPLY =<_5V>;
SPI-max-frequency =<10000000>;
#io-channel-cells =<1>;
状态="正常";
};
};
pinctrl_lpspi7:lpspi7grp{/* LPSPI7:LPSPI7 IOMUX 引脚配置*/
FSL、PINS =<
MX93_PAD_GPIO_IO07__LPSPI7_SCK 0x3fe
MX93_PAD_GPIO_IO06__LPSPI7_SOUT 0x3fe
MX93_PAD_GPIO_IO05__LPSPI7_SIN 0x3fe
>;
};
pinctrl_lpspi7_cs:lpspi7_cs_grp{
FSL、PINS =<
MX93_pad_GPIO_IO04__GPIO2_IO04 0x31e
>;
};
为了调试此问题、我在 TI ADS7950驱动程序代码中添加了日志记录、如下所示:
驱动程序代码:
diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/io/adc/ti-ads7950.c
索引2cc9a9bd9db6..d4ce4917d1fb 100644
--- a/drivers/io/adc/ti-ads7950.c.
++ b/drivers/io/adc/ti-ads7950.c
@@-377、6 +377、8 @@ static int ti_ads7950_read_raw (struct iio_dev * Indio_dev、
如果(ret < 0)
回流塔;
+ printk ("Address:%u\n"、(unsigned int)chan->address);
+ printk ("提取值:%u\n"、(unsigned int) TI_ADS7950_extract (ret、12、4));
if (chan->address!= TI_ADS7950_extract (ret、12、4))
返回-EIO;
错误:
root@imx93-iwg50M-SODIMM:~# cat /sys/bus/iio/devices/iio:device1/in_voltage0_raw
[ 100.929228]地址:0
[100.931641] Extract value: 15.
CAT:"/sys/bus/iio/devices/iio:device1/in_voltage0_raw":输入/输出错误
root@imx93-iwg50M-SODIMM:~# cat /sys/bus/iio/devices/iio:device1/in_voltage1_raw
[ 103.849178]地址:1.
[ 103.851563]提取值:15
CAT:"/sys/bus/iio/devices/iio:device1/in_voltage1_raw":输入/输出错误
root@imx93-iwg50M-SODIMM:~# cat /sys/bus/iio/devices/iio:device1/in_voltage2_raw
[ 106.253289]地址:2
[ 106.255694]提取值:15.
CAT:"/sys/bus/iio/devices/iio:device1/in_voltage2_raw":输入/输出错误
root@imx93-iwg50M-SODIMM:~# cat /sys/bus/iio/devices/iio:device1/in_voltage3_raw
[ 108.949172]地址:3.
[ 108.951597]提取值:15.
CAT:"/sys/bus/iio/devices/iio:device1/in_voltage3_raw":输入/输出错误
root@imx93-iwg50M-SODIMM:~#
您能否说明导致此行为的原因、或者我的配置或设置中是否存在任何潜在问题?
此致、
Daniel