Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Процессорные модули » SK-A40i-SODIMM
Настройка тачскрина i2c
incredi
Добавлено 13.02.2023 17:46 Редактировалось 13.02.2023 17:55
0
Сообщение: 1
incredi
0

Пункты: 3134
Регистрация: 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
Добавлено 14.02.2023 21:39 Сообщение: 2
sasamy
4.70

Пункты: 77090
Регистрация: 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
Добавлено 15.02.2023 11:51 Редактировалось 15.02.2023 12:52 Сообщение: 3
incredi
0

Пункты: 3134
Регистрация: 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
Добавлено 15.02.2023 15:37 Редактировалось 15.02.2023 16:28 Сообщение: 4
sasamy
4.70

Пункты: 77090
Регистрация: 14.08.2009
Цитата

Но в interrupt-parent должен быть контроллер. Какое у него обозначение?


не могу счас сказать может ли произвольный пин быть источником прерывания как на imx6, пример можно на других платах посмотреть

https://elixir.bootlin.com/linux/latest/source/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts#L138

https://elixir.bootlin.com/linux/latest/source/include/dt-bindings/interrupt-controller/irq.h#L18

Цитата

на PIN_PA 16


у вас получается так

interrupt-parent = <&pio>; // что задавать здесь вместо PIN_PA?
interrupts = <0 16 IRQ_TYPE_NONE>; // ??? два параметра?
reset-gpios = <PIN_PA 17 GPIO_ACTIVE_LOW>;

PIN_PA и прочие задейфанены в начале DTS

#define PIN_PA &pio 0
#define PIN_PB &pio 1
#define PIN_PC &pio 2
#define PIN_PD &pio 3
#define PIN_PE &pio 4
#define PIN_PF &pio 5
#define PIN_PG &pio 6
#define PIN_PH &pio 7
#define PIN_PI &pio 8
Спуститься к концу Подняться к началу
Персональная информация
incredi
Добавлено 15.02.2023 17:50 Редактировалось 15.02.2023 18:00 Сообщение: 5
incredi
0

Пункты: 3134
Регистрация: 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
Добавлено 15.02.2023 22:24 Редактировалось 15.02.2023 22:25 Сообщение: 6
sasamy
4.70

Пункты: 77090
Регистрация: 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;
};
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » SK-A40i-SODIMM