USB-Host/OTG möglich?

  • 16 Antworten
  • Neuster Beitrag
F

floe

Ambitioniertes Mitglied
Threadstarter
Hallo allerseits,

weiss evtl. jemand, ob das SoC im Galaxy zumindest theoretisch USB-Host sein kann? Bei manchen Embedded-Systemen läuft ja der USB-Controller standardmässig als Device, aber kann auf Host umgeschaltet werden (mit passendem Treiber natürlich). Gibts da irgendwelche Infos?

Floe
 
sonic

sonic

Neues Mitglied
floe schrieb:
weiss evtl. jemand, ob das SoC im Galaxy zumindest theoretisch USB-Host sein kann? Bei manchen Embedded-Systemen läuft ja der USB-Controller standardmässig als Device, aber kann auf Host umgeschaltet werden (mit passendem Treiber natürlich). Gibts da irgendwelche Infos?
Interessiert mich aus naheliegenden ;) gründen auch sehr :) Hab' aber bisher nur das hier gefunden...
 
sonic

sonic

Neues Mitglied
Hier ein Prospekt zum wohl verbauten Qualcomm MSM7200A. Demnach sollt' USB OTG eingebaut sein.
 
koy

koy

Fortgeschrittenes Mitglied
floe schrieb:
Hallo allerseits,

weiss evtl. jemand, ob das SoC im Galaxy zumindest theoretisch USB-Host sein kann? Bei manchen Embedded-Systemen läuft ja der USB-Controller standardmässig als Device, aber kann auf Host umgeschaltet werden (mit passendem Treiber natürlich). Gibts da irgendwelche Infos?

Floe
Könntest du mir erklären was dies heißt, und was man damit machen könnte? :)
 
Melkor

Melkor

Senior-Moderator
Teammitglied
Ganz einfach:
Anschluß von USB Festplatten und ext. Kartenreadern (so ziemlich alles was mit Massstorage Treibern geht)...sehr nett für den Urlaub

Allerdings sid das dieselben Fragen wie bei WM devices und auch hier gilt:
- USB Host und USB on the go ist standardmäßig im chip
- diese benötigen eine Lizenz und Treiber, aber was am wichtigsten ist: entsprechende Leiterbahnen zum USB Anschluß...ist auch der Grund warum die XDA-Developers keine Teiber bereitstellen....es bringt nichts, weil normalerweise nicht vorhanden (sonst wäre für G1 und Co schon sowas vorhanden)

Melkor
 
sonic

sonic

Neues Mitglied
Melkor schrieb:
Ganz einfach:
Anschluß von USB Festplatten und ext. Kartenreadern (so ziemlich alles was mit Massstorage Treibern geht)
Nicht unbedingt beschrängt auf mass storage class. Externe USB-Monitore sollten z.B. mit libusb und entsprechenden Treibern auch funktionieren...

Melkor schrieb:
- diese benötigen eine Lizenz und Treiber, aber was am wichtigsten ist: entsprechende Leiterbahnen zum USB Anschluß...ist auch der Grund warum die XDA-Developers keine Teiber bereitstellen....es bringt nichts, weil normalerweise nicht vorhanden (sonst wäre für G1 und Co schon sowas vorhanden)
Die essentiellen (D+, D-) sind doch vorhanden. ID scheint nur für cable select benötigt zu werden, das kann man vielleicht overriden. Vbus sollte man extern zuführen können.

Oder?
 
Melkor

Melkor

Senior-Moderator
Teammitglied
ICh kann es halt aus der WM Ecke berichten, wo der MSM7200 und Konsorten ja von HTC Samsung und LG seit Jahren verwendet wird
Bis jetzt hat es niemand geschafft, auch nur annähernd da was zu programmieren. Das G1 mit 7201 (ist ja quasi baugleich) ist bis jetzt auch nicht geknackt worden, deshalb ist wohl anzunehmen, dass dort auch (wie bei WM-Devices) ein paar Drähte auf der Platine fehlen

Darfst mir aber gerne vom Gegenteil überzeugen ;) (Feature halte ich für sinnvoll)
 
sonic

sonic

Neues Mitglied
Auf'm Neo FreeRunner funktioniert bereits gPhoto2 (!).
Interessant in GT-I7500_OpenSource.zip\BSP\kernel_2.6.27\drivers\usb\function\Kconfig:
config USB_MSM_OTG
bool "OTG support for Qualcomm on-chip USB controller"
depends on USB && USB_FUNCTION && USB_EHCI_MSM
help
USB OTG driver.
This driver is required if you want to use USB in
Host mode and Device mode.
dann gibt's dort noch ein msm_otg.c ...
 
Melkor

Melkor

Senior-Moderator
Teammitglied
OTG ist ne andere Form mit dem ext. Gerät zu kommunizieren (ist gleiches Level, während Host-Client sozusagen hierachisch vom Host gesteuert wird)

Allerdings möchte ich anmerken, dass das Neo einen Host mit Spannungsversorgung bereits integriert hat und somit auch hardwaretechnische Voraussetzungen da sind (wie zB die Stromversorgung)

Denkst du, du kannst "was" machen bzgl. Treiber irgendwie in dein ROM zu bekommen?
 
sonic

sonic

Neues Mitglied
Melkor schrieb:
OTG ist ne andere Form mit dem ext. Gerät zu kommunizieren (ist gleiches Level, während Host-Client sozusagen hierachisch vom Host gesteuert wird)
In msm_otg.c ist viel vom host mode die rede.
Melkor schrieb:
Allerdings möchte ich anmerken, dass das Neo einen Host mit Spannungsversorgung bereits integriert hat und somit auch hardwaretechnische Voraussetzungen da sind (wie zB die Stromversorgung)
In meiner E-technischen Naivität hoff' ich immer noch, das mit 'nem self powered hub lösen zu können.
Melkor schrieb:
Denkst du, du kannst "was" machen bzgl. Treiber irgendwie in dein ROM zu bekommen?
Bin leider (noch?) nich' so der kernel hacker. Hab' mir vorhin schon diesen Beitrag durchgelesen und bin am überlegen, ob ich's wagen soll...
 
sonic

sonic

Neues Mitglied
hmm, fast:
Code:
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
ehci_hcd: block sizes: qh 128 qtd 96 itd 160 sitd 96
msm_hsusb: vbus online, clock enable
msm_hsusb_rpc_connect: usb_ep already connected
msm_hsusb_phy_reset
msm_hsusb: vbus online, clock enable
msm_hsusb: vbus offline, clock disable
msm_hsusb_host msm_hsusb_host: Qualcomm On-Chip EHCI Host Controller
drivers/usb/core/inode.c: creating file 'devices'
drivers/usb/core/inode.c: creating file '001'
msm_hsusb_host msm_hsusb_host: new USB bus registered, assigned bus number 1
msm_hsusb_host msm_hsusb_host: park 0
msm_hsusb_host msm_hsusb_host: reset command 080b02 park=3 ithresh=8 period=1024 Reset HALT
msm_hsusb_host msm_hsusb_host: supports USB remote wakeup
msm_hsusb_host msm_hsusb_host: irq 47, io base 0xa0800000
msm_hsusb_host msm_hsusb_host: reset command 080b02 park=3 ithresh=8 period=1024 Reset HALT
usb usb1: default language 0x0409
usb usb1: uevent
usb usb1: usb_probe_device
usb usb1: configuration #1 chosen from 1 choice
usb usb1: adding 1-0:1.0 (config #1, interface 0)
usb 1-0:1.0: uevent
hub 1-0:1.0: usb_probe_interface
hub 1-0:1.0: usb_probe_interface - got id
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
hub 1-0:1.0: standalone hub
hub 1-0:1.0: individual port power switching
hub 1-0:1.0: individual port over-current protection
hub 1-0:1.0: Single TT
hub 1-0:1.0: TT requires at most 8 FS bit times (666 ns)
hub 1-0:1.0: power on to power good time: 20ms
hub 1-0:1.0: local power source is good
hub 1-0:1.0: enabling power on all ports
msm_hsusb_host msm_hsusb_host: GetStatus port 1 status 80001803 POWER sig=j CSC CONNECT
hub 1-0:1.0: port 1: status 0501 change 0001
hub 1-0:1.0: state 7 ports 1 chg 0002 evt 0000
drivers/usb/core/inode.c: creating file '001'
hub 1-0:1.0: port 1, status 0501, change 0000, 480 Mb/s
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: Qualcomm On-Chip EHCI Host Controller
usb usb1: Manufacturer: Linux 2.6.27 ehci_hcd
usb usb1: SerialNumber: msm_hsusb_host
msm_hsusb_vbus_shutdown
msm_hsusb_host msm_hsusb_host: GetStatus port 1 status 8000180b POWER sig=j PEC CSC CONNECT
hub 1-0:1.0: unable to enumerate USB device on port 1
Wenn jemand 'ne Idee hat... Kabel gibt's hier.
 
sonic

sonic

Neues Mitglied
Langsam kommt Bewegung in die Sache. Hier hat's jemand mit einem (ebenfalls MSM720X-basierten) Hero geschafft :)
 
M

marwei27

Fortgeschrittenes Mitglied
na dann kannste dich ja eventuell ranwagen :D

wäre auf jedenfall ne krasse sache sowas hinzubekommen.

aber seh ich das richtig das er am usb hub seine tastatur angeschlossen hat??
würde ja nen bissl dumm sein, denn das teil brauch ja strom :D

muss dazu sagen das ich mir den artikel noch nicht durch gelesen :D
 
Zuletzt bearbeitet:
FadeFX

FadeFX

Experte
dann mach das mal, aber ja, er hat in dem beispiel die tastatur an den hub angeschlossen "WEIL" der strom braucht (und auch zur verfügung stellt) was der usb chip leider nicht tut...
 
sonic

sonic

Neues Mitglied
Inzwischen hab' ich ein Nexus One. Dafür hab' ich's geschafft :) Mein Galaxy hab' ich eigentlich schon wieder originalverpackt. Könnte aber auch klappen...
 
M

Micron

Ambitioniertes Mitglied
gibts hierzu schon neuigkeiten?
 
M

mainster

Neues Mitglied
Hallo,
von mir mal ein push und eine Frage zum Thema "Phone powered device".

Zu der Aussage von FadeFX:
Ist es grundsätzlich so, dass diese integrierten "USB switches" keine usb- Geräte treiben können,
slebst solche nicht die OTG/Host- mode zur Verfügung stellen?
Ich war nämlich voller Hoffnung eine kleine µC- Schaltung direkt über den Micro- USB Port an
meinem Galaxy i9000 versorgen zu können. Im i9000 ist der USB switch fsa9480
verbaut und in einem Thread aus dem XDA- Forum hab ich folgendes gefunden:
Code:
RID_RESERVED_5,        /* 1 0 0 1 0     64.9K        Reserved Accessory #5 */
RID_AUD_DEV_TY_2,    /* 1 0 0 1 1     80.07K        Audio Device Type 2 */
[B]RID_PHONE_PWD_DEV,    /* 1 0 1 0 0     102K        Phone Powered Device */[/B]
RID_TTY_CONVERTER,    /* 1 0 1 0 1     121K        TTY Converter */
Laut diesem fsa9480- header aus den Samsung Galaxy S- Sourcen gibt es einen Modus
"Phone powered device" welcher mittels 102k Widerstand über den 5. Pin des Micro- USB Port
angesteuert werden kann.

Auszug aus meinem Kernellog nach einschalten/auschalten eines 102k Widerstandes:
Code:
[COLOR=Lime][COLOR=SeaGreen]<4>fsa9480_interrupt
<4>[FSA9480] FSA9480_ReadIntRegister
<6>ldo38_control : turn ON LDO3 and LDO8 (cur_stat=0, req=1)
<4>[otg_clock_enable] clk_enable(otg_clock) OK.
<4>[FSA9480] FSA9480_ProcessDevice (dev1 : 0x0, dev2 : 0x10)
<4>PPD[/COLOR] [/COLOR]
---------------------------------------------------------------
[COLOR=Red]<4>fsa9480_interrupt
<4>[FSA9480] FSA9480_ReadIntRegister
<4>[FSA9480] FSA9480_ProcessDevice (dev1 : 0x0, dev2 : 0x10)
<4>PPD 
<4>[otg_clock_enable] clk_disable(otg_clock) OK.
<6>ldo38_control : turn OFF LDO3 and LDO8 (cur_stat=1, req=1)[/COLOR]
LDO3 und 8 sind meines Wissens LowVoltageDropoutRegler, also werden doch Spannungsregler
zu geschalten oder bin ich da total auf dem Holzweg?

Laut Oszi tut sich leider nix an den Micro- USB Versorgungspins.
Ich habe bis jetzt nur den Widerstand angeschlossen, vorerst noch keinen USB- Stick o.ä.

Hat mir da jemand passende Infos?
Mainster
 
Oben Unten