Here are just a few updates from things that I tried with my Motorola
V120c phone over USB this past weekend.

I can get the usbserial driver to talk to it by specifying the
vendor and product.  It looks like this:

T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#=  4 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=02(comm.) Sub=02 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=22b8 ProdID=0005 Rev= 0.01
S:  Manufacturer=Motorola Inc.
S:  Product=Motorola Phone
C:* #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr= 20mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=(none)
E:  Ad=88(I) Atr=03(Int.) MxPS=  16 Ivl= 10ms
I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=serial
E:  Ad=01(O) Atr=02(Bulk) MxPS=  16 Ivl=  0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  16 Ivl=  0ms

Notice the data line has the serial driver, while comm has none.

Because of the two interfaces the phone presents I thought the acm
driver might not be a bad thing to try.  Unfortunately it won't
recognize it, but I found that modifying the source acm.c can fix this.

static struct usb_device_id acm_ids[] = {
        /*{ USB_DEVICE_INFO(USB_CLASS_COMM, 0, 0) },*//* LHJ changed */
        { USB_DEVICE_INFO(USB_CLASS_COMM, 2, 0) },
        { }
};

If you compile the driver with

gcc -D__KERNEL__ -I/tmp/linux/include -Wall -Wstrict-prototypes \
-Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common \
-pipe -mpreferred-stack-boundary=2 -march=i586 -DMODULE \
-DKBUILD_BASENAME=acm -c -o acm.o acm.c

it will recognize the phone and you see this:

T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#=  4 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=02(comm.) Sub=02 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=22b8 ProdID=0005 Rev= 0.01
S:  Manufacturer=Motorola Inc.
S:  Product=Motorola Phone
C:* #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr= 20mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=acm
E:  Ad=88(I) Atr=03(Int.) MxPS=  16 Ivl= 10ms
I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=acm
E:  Ad=01(O) Atr=02(Bulk) MxPS=  16 Ivl=  0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  16 Ivl=  0ms

So there are two ways to communicate to the driver.  I have been using
"tee logfile < /dev/ttyXXX0" and "cat >/dev/ttyXXX0" together to
test the phone.  Here XXX is USB or ACM depending on the driver.

The most interesting behavior I saw was when I set the phone to answer
the next call as a data call and then called it with minicom from my
desktop computer on a landline.  The phone will send RING notices and
if you respond with ATA it will pick up and both ends report CONNECT.
Unfortunately, I couldn't yet get any data to exchange past this point.

I have had no luck telling the phone to dial out with AT commands.  It
always reports NO CARRIER immediately.

Anyone with ideas, let me know what you think.  I don't have software
for this phone on Windows and I have done nothing with usb or device
drivers before.

Best,
Leif

On Fri, 1 Mar 2002, Nick Papadonis wrote:
> I have a Motorola v60c with USB cable.  I am also trying to develop a
> driver to exchange data.  What have you found out about the protocol
> over USB?
>
> Do you have any past posts or a website with some information?  I was
> going to use usbsnoop and try reverse engineering this.
>
> Any insight appreciated.
>
> - Nick
>


_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users

Reply via email to