Цитата(Tarbal)
А найти код драйвера CP2102N и посмотреть как там сделано не пробовали?
Пробовал, находил. В первом посте написано.
Цитата(Tarbal)
Вот ключевая структура, определяющая девайс:
Да, я видел эту структуру. Там в коде драйвера ещё есть функции для работы с gpio (cp210x_gpio_*). Но не могу понять, как из пользовательского пространства получить доступ к этим функциям.
Цитата(Tarbal)
Проверьте если в ядре включено CONFIG_GPIOLIB.
Проверил, включен (CONFIG_GPIOLIB=y).
Цитата(Olej)
А вы совершенно уверены, что "при подключении" нормально отрабатывается? Что говорят dmesg, lsmod и т.д.?
Да вроде нормально всё
dmesg:
Код
[43684.566224] usb 2-2: new full-speed USB device number 8 using uhci_hcd
[43684.763274] usb 2-2: New USB device found, idVendor=10c4, idProduct=ea60
[43684.763276] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[43684.763278] usb 2-2: Product: CP2102N USB to UART Bridge Controller
[43684.763279] usb 2-2: Manufacturer: Silicon Labs
[43684.763280] usb 2-2: SerialNumber: 3c5e2951f9f3e7119e656e160c17285f
[43684.766413] cp210x 2-2:1.0: cp210x converter detected
[43684.772296] usb 2-2: cp210x converter now attached to ttyUSB0
lsmod:
CODE
Module Size Used by
cp210x 28672 1
usbserial 45056 3 cp210x
cdc_acm 32768 0
btrfs 1122304 0
zstd_compress 163840 1 btrfs
xor 24576 1 btrfs
raid6_pq 114688 1 btrfs
ufs 77824 0
qnx4 16384 0
hfsplus 106496 0
hfs 57344 0
minix 32768 0
ntfs 102400 0
msdos 20480 0
jfs 188416 0
xfs 1200128 0
libcrc32c 16384 1 xfs
cpuid 16384 0
pci_stub 16384 1
vboxpci 24576 0
vboxnetadp 28672 0
vboxnetflt 28672 0
vboxdrv 471040 3 vboxnetadp,vboxnetflt,vboxpci
binfmt_misc 20480 1
snd_hda_codec_hdmi 49152 1
edac_mce_amd 28672 0
sch_fq_codel 20480 2
cuse 16384 3
joydev 24576 0
input_leds 16384 0
snd_hda_codec_realtek 94208 1
snd_hda_codec_generic 73728 1 snd_hda_codec_realtek
kvm_amd 86016 0
kvm 593920 1 kvm_amd
snd_hda_intel 40960 6
snd_hda_codec 126976 4 snd_hda_intel,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hda_core 81920 5 snd_hda_intel,snd_hda_codec,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_cod
ec_realtek
irqbypass 16384 1 kvm
snd_hwdep 20480 1 snd_hda_codec
snd_pcm 98304 5 snd_hda_intel,snd_hda_codec,snd_hda_core,snd_hda_codec_hdmi
eeepc_wmi 16384 0
asus_wmi 28672 1 eeepc_wmi
crct10dif_pclmul 16384 0
sparse_keymap 16384 1 asus_wmi
crc32_pclmul 16384 0
snd_seq_midi 16384 0
video 45056 1 asus_wmi
wmi_bmof 16384 0
snd_seq_midi_event 16384 1 snd_seq_midi
ghash_clmulni_intel 16384 0
pcbc 16384 0
snd_rawmidi 32768 1 snd_seq_midi
snd_seq 65536 2 snd_seq_midi_event,snd_seq_midi
snd_seq_device 16384 3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer 32768 2 snd_seq,snd_pcm
aesni_intel 188416 0
aes_x86_64 20480 1 aesni_intel
crypto_simd 16384 1 aesni_intel
glue_helper 16384 1 aesni_intel
cryptd 24576 3 crypto_simd,ghash_clmulni_intel,aesni_intel
k10temp 16384 0
snd 81920 22 snd_hda_intel,snd_hwdep,snd_seq,snd_hda_codec,snd_timer,snd_rawmidi,snd_hda_code
c_hdmi,snd_hda_codec_generic,snd_seq_device,snd_hda_codec_realtek,snd_pcm
ccp 73728 0
soundcore 16384 1 snd
nvidia_uvm 757760 0
shpchp 36864 0
wmi 24576 2 asus_wmi,wmi_bmof
mac_hid 16384 0
lm78 20480 0
hwmon_vid 16384 1 lm78
nfsd 339968 13
parport_pc 36864 0
auth_rpcgss 61440 1 nfsd
ppdev 20480 0
nfs_acl 16384 1 nfsd
lockd 90112 1 nfsd
lp 20480 0
grace 16384 2 nfsd,lockd
parport 49152 3 lp,parport_pc,ppdev
sunrpc 335872 18 auth_rpcgss,nfsd,nfs_acl,lockd
ip_tables 28672 0
x_tables 40960 1 ip_tables
autofs4 40960 2
hid_generic 16384 0
usbhid 49152 0
hid 118784 2 hid_generic,usbhid
nvidia_drm 40960 2
nvidia_modeset 1110016 8 nvidia_drm
nvidia 14340096 460 nvidia_modeset,nvidia_uvm
drm_kms_helper 172032 1 nvidia_drm
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
fb_sys_fops 16384 1 drm_kms_helper
drm 401408 5 nvidia_drm,drm_kms_helper
i2c_piix4 24576 0
ipmi_devintf 20480 0
ipmi_msghandler 53248 2 nvidia,ipmi_devintf
r8169 86016 0
ahci 36864 4
mii 16384 1 r8169
libahci 32768 1 ahci
gpio_amdpt 16384 0
gpio_generic 20480 1 gpio_amdpt
Цитата(makc)
У меня есть положительный опыт управления CP2103 с использованием libusb из userspace.
Вполне рабочая программа во вложении. Думаю, что обеспечить в ней поддержку для CP2102 особых проблем не составит.
Спасибо, посмотрю, если не получится работать через стандартный драйвер.
Вообще, как я понял, стандарный драйвер должен предоставлять доступ к этим GPIO через интерфейс gpio uapi. Про него обзор
тут есть. Но lsgpio/gpiodetect/gpioinfo видят только 2 устройства, относящиеся к материнской плате (gpiochip0 [AMDI0030:00] (256 lines) и gpiochip1 [AMDIF030:00] (8 lines)).