Драйвер I2C изменяется для распознавания нескольких шин
Мы определили определение аппаратного обеспечения метаданных аналога videoIn adv7180 в узле i2c2 в одном файле дерева устройств iMX. Конечная цель - распознать драйвер adv7180 по шине i2c2.
Во время процесса загрузки процессора с использованием образа linux с изменениями defconfig для I2C вторая шина I2C не распознается.
Ниже приведены операторы печати последовательной консоли:
U-Boot 2015.10+fslc+g1b6aee7 (Jan 16 2018 - 14:57:01 +0530)
CPU: Freescale i.MX6Q rev1.2 996 MHz (running at 792 MHz)
CPU: Automotive temperature grade (-40C to 125C) at 26C
Reset cause: POR
Board: MX6-SabreSD
I2C: ready
Line 129: i2c i2c-1: IMX I2C adapter registered //i2c-2 not registered??
Line 272 onwards: i2c /dev entries driver
IR NEC protocol handler initialized
IR RC5(x) protocol handler initialized
IR RC6 protocol handler initialized
IR JVC protocol handler initialized
IR Sony protocol handler initialized
IR RC5 (streamzap) protocol handler initialized
IR SANYO protocol handler initialized
IR MCE Keyboard/mouse protocol handler initialized
mxc_v4l2_output v4l2_out.28: V4L2 device registered as video16
mxc_v4l2_output v4l2_out.28: V4L2 device registered as video17
i2c-core: driver [mag3110] using legacy suspend method
i2c-core: driver [mag3110] using legacy resume method
Я написал эти дополнительные строки в файлах defconfig в исходном каталоге моего Yocto Built.
CONFIG_IMX_HAVE_PLATFORM_IMX_I2C=y
# CONFIG_I2C_COMPAT is not set
CONFIG_I2C_CHARDEV=y
# CONFIG_I2C_HELPER_AUTO is not set
CONFIG_I2C_ALGOPCF=m
CONFIG_I2C_ALGOPCA=m
CONFIG_I2C_ALGOBIT=y
CONFIG_I2C_IMX=y
CONFIG_I2C_MUX=y
CONFIG_I2C_MUX=y
Я также проверил файлы Kconfig и увидел, что драйвер i2c передается из каталога kernel-source в build.
Нужно ли вносить изменения в C-файлы (файлы драйверов), сделанные по пути /home/fsl-community-bsp-myproject/build/tmp/work-shared/imx6qonlinepdd/kernel-source/drivers/i2c
моего йокто построен?
Существует даже файл C для adv7180 в подкаталоге / drivers / media, его можно изменить?
1 ответ
Вы должны посмотреть в дереве устройств, которое вы используете, если включена шина i2c.
Вам нужно добавить следующую строку в ваш dts:
&i2c2 { // Change the name as needed
status = "okay";
pinctrl-names = "default";
}
Вы, вероятно, статус = "отключен"; в узле i2c, который вы ищете.
С Уважением,