incredi
Пункты: 3192
Регистрация: 11.12.2014
Подскажите, как настроить тачскрин по аналогии с imx6.
Было так:
Код
&i2c2 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2_sodimm>;
status = "okay";
polytouch: ilitek_ts_i2c@41 {
compatible = "ilitek,ili2130", "ilitek,ili2131";
reg = <0x41>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ilitek_ts_i2c>;
interrupt-parent = <&gpio4>;
interrupts = <10 0>;
reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
};
};
&iomuxc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hog>;
i2c2 {
pinctrl_i2c2_sodimm: i2c2-sodimm {
fsl,pins = <
MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1
MX6QDL_PAD_EIM_D16__I2C2_SDA 0x4001b8b1
>;
};
pinctrl_ilitek_ts_i2c: ilitek_ts_i2c-sodimm {
fsl,pins = <
MX6QDL_PAD_KEY_COL2__GPIO4_IO10 0x80000000
MX6QDL_PAD_KEY_ROW2__GPIO4_IO11 0x80000000
>;
};
};
};
Как правильно это переписать в нужных обозначениях для A40i?
sasamy
Пункты: 83540
Регистрация: 14.08.2009
Цитата
Как правильно это переписать в нужных обозначениях для A40i?
у sodimm imx6 i2c интерфейс
MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1
MX6QDL_PAD_EIM_D16__I2C2_SDA 0x4001b8b1
на контактах 42, 44, у a40i на этих контактах выведен hdmi i2c - на него не повесить другие устройства как на imx6, так что напрямую не перенести
incredi
Пункты: 3192
Регистрация: 11.12.2014
Цитата
контактах 42, 44, у a40i на этих контактах выведен hdmi i2c - на него не повесить другие устройства как на imx6, так что напрямую не перенести
Прошу прощения, если ввёл в заблуждение.
Вопрос был о том, что именно писать в настройках i2c3 вместо gpio4 (естественно, мы подключаемся к рабочим выводам) для подключения тачскрина как такового на PIN_PA 16.
Должно получиться что-то типа этого, прошу указать на ошибки:
Цитата
interrupt-parent = <PIN_PA>; // что задавать здесь вместо PIN_PA?
interrupts = <16 0>; // ??? два параметра?
reset-gpios = <PIN_PA 17 GPIO_ACTIVE_LOW>;
Но в interrupt-parent должен быть контроллер. Какое у него обозначение?
sasamy
Пункты: 83540
Регистрация: 14.08.2009
incredi
Пункты: 3192
Регистрация: 11.12.2014
Цитата
PIN_PA и прочие задейфанены в начале DTS
Спасибо. Всё прописал. Но не пойму, что за ошибка при проверке:
Код
# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: [ 182.485138] i2c i2c-1: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 184.565117] i2c i2c-1: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 186.645127] i2c i2c-1: mv64xxx: I2C bus locked, block: 1, time_left: 0
-- [ 188.725130] i2c i2c-1: mv64xxx: I2C bus locked, block: 1, time_left: 0
Обнаружил, что и при загрузке тоже:
Код
[ 5.124212] i2c i2c-1: mv64xxx: I2C bus locked, block: 1, time_left: 0
[ 7.204233] i2c i2c-1: mv64xxx: I2C bus locked, block: 1, time_left: 0
То есть i2c3 не работает?
sasamy
Пункты: 83540
Регистрация: 14.08.2009
Цитата
Всё прописал. Но не пойму, что за ошибка при проверке:
# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: [ 182.485138] i2c i2c-1: mv64xxx: I2C bus locked, block: 1, time_left: 0
То есть i2c3 не работает?
скорей всего проверяете на пустой шине без подключенных уcтройств и подтяжек
Для теста включите встроенные подтяжки
output/build/linux-custom/arch/arm/boot/dts/sun8i-r40.dtsi
Цитата
i2c3_pins: i2c3-pins {
pins = "PI0", "PI1";
function = "i2c3";
bias-pull-up;
};