Нужны 3 порта USB в режиме хост
АрсТерм
Пункты: 173
Регистрация: 23.11.2016
A40i должен поддерживать 3 хост порта USB
В сборке есть 2 хоста и USB0 только в режиме slave device.
Как дособрать чтобы было 3 хоста?
Предложите решение...
sasamy
Пункты: 83777
Регистрация: 14.08.2009
На usb0 доступен на данный момент только device, надо разбираться с драйвером phy чтобы хост запустить, готового рецепта пока нет.
sasamy
Пункты: 83777
Регистрация: 14.08.2009
Цитата На usb0 доступен на данный момент только device, надо разбираться с драйвером phy чтобы хост запустить, готового рецепта пока нет.
Чтобы включить хост вместо девайса
1) Добавить в DT своей платы выделенный текст, например sodimm с выходом hdmi
output/build/linux-custom/arch/arm/boot/dts/sun8i-a40i-sodimm-hdmi-sk.dts
/ {
model = "Starterkit SK-A40i-SODIMM";
compatible = "sk,a40i-sodimm", "allwinner,sun8i-r40";
.....
iio-hwmon-axp {
compatible = "iio-hwmon";
io-channels = <&axp_adc 0>, <&axp_adc 1>, <&axp_adc 2>;
};
ehci0: usb@1c14000 {
compatible = "allwinner,sun8i-r40-ehci", "generic-ehci";
reg = <0x01c14000 0x100>;
interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>;
resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>;
status = "okay";
};
ohci0: usb@1c14400 {
compatible = "allwinner,sun8i-r40-ohci", "generic-ohci";
reg = <0x01c14400 0x100>;
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>,
<&ccu CLK_USB_OHCI0>;
resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>;
status = "okay";
};
};
.....
2) В том же файле указать роль host для otg порта
&usb_otg {
dr_mode = "host";
status = "okay";
};
3) Отключить консоль на USB - удалить или закоментировать выделенный текст в файле
output/target/etc/inittab
ttyGS0::respawn:/sbin/getty -L ttyGS0 115200 linux # usb
sasamy
Пункты: 83777
Регистрация: 14.08.2009
Цитата
Чтобы включить хост вместо девайса
1) Добавить в DT своей платы выделенный текст, например sodimm с выходом hdmi
output/build/linux-custom/arch/arm/boot/dts/sun8i-a40i-sodimm-hdmi-sk.dts
/ {
model = "Starterkit SK-A40i-SODIMM";
compatible = "sk,a40i-sodimm", "allwinner,sun8i-r40";
.....
iio-hwmon-axp {
compatible = "iio-hwmon";
io-channels = <&axp_adc 0>, <&axp_adc 1>, <&axp_adc 2>;
};
ehci0: usb@1c14000 {
compatible = "allwinner,sun8i-r40-ehci", "generic-ehci";
reg = <0x01c14000 0x100>;
interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>;
resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>;
status = "okay";
};
ohci0: usb@1c14400 {
compatible = "allwinner,sun8i-r40-ohci", "generic-ohci";
reg = <0x01c14400 0x100>;
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>,
<&ccu CLK_USB_OHCI0>;
resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>;
status = "okay";
};
};
.....
1) в последних версиях эти хосты описаны в dtsi soc общем для всех плат sun8i-r40.dtsi, поэтому в DT своей платы вместо полного описания нужно их просто включить
...
&ehci0 {
status = "okay";
};
&ohci0 {
status = "okay";
};
&usb_otg {
...
пункты 2) и 3) выполнить так же как раньше