Làm cách nào để có thể quét lại một bus SDIO từ không gian người dùng Linux?


8

Trên nền tảng nhúng Linux, tôi có bộ điều hợp mạng được gắn vào giao diện SDIO. Không có tín hiệu Phát hiện Thẻ trên xe buýt cụ thể này. Ví dụ, nếu tôi bật hoặc tắt bộ điều hợp mạng, có cách nào để tôi có thể quét lại bus SDIO từ không gian người dùng không?

Câu trả lời:


6

Như được đề cập bởi 0andriy, bạn có thể sử dụng bind / unbind. Tôi đang làm một cái gì đó tương tự nhưng điều này sẽ khác vì nó phụ thuộc vào phần cứng. Để hủy kết nối mô-đun wifi sdio của tôi, tôi sử dụng:

echo -n "2190000.usdhc" > /sys/devices/soc0/soc/2100000.aips-bus/2190000.usdhc/driver/unbind

Điều này sẽ cung cấp cho bạn một cái gì đó như mmc1: card 0001 removedtrong dmesg.

Sau đó tôi bật một pin gpio để đặt lại mô-đun wifi của mình

Sau đó để rebind:

echo -n "2190000.usdhc" > /sys/bus/soc/devices/soc0/soc/2100000.aips-bus/2190000.usdhc/subsystem/drivers/sdhci-esdhc-imx/bind

Tại điểm đó dmesg sẽ in một cái gì đó như:

mmc1: SDHCI controller on 2190000.usdhc [2190000.usdhc] using ADMA
mmc1: new high speed SDIO card at address 0001

Quá trình liên kết / hủy kết nối được giải thích tốt bằng bài viết cũ này của LWN.net .


Lưu ý rằng dựa trên câu hỏi liên quan , nếu bạn đang sử dụng thiết bị TI SDIO, nó sẽ không hoạt động mà không bị gián đoạn.
minghua

2

Có vẻ như đã có một bản vá được gửi đến danh sách gửi thư linux-mmc để thêm tính năng này, tuy nhiên nhìn vào nguồn hiện tại , nó dường như không được thêm vào.

Thật không may, tôi đoán điều này làm cho câu trả lời: bạn không thể.


1
Điều đó không hoàn toàn đúng. Cách dễ nhất để làm việc xung quanh là hủy liên kết / liên kết chu kỳ của bộ điều khiển máy chủ. Ngoài ra có một cách khác để mô phỏng phát hiện thẻ trong trình điều khiển, nhưng nó có thể là giải pháp không thể ngược dòng.
0andriy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.