Re: CP2105 GPIO Pins

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 14/01/16 09:24, Linus Walleij wrote:
On Wed, Jan 13, 2016 at 5:10 PM, Martyn Welch
<martyn.welch@xxxxxxxxxxxxxxx> wrote:
On 13/01/16 14:58, Linus Walleij wrote:

(Adding Johan Hovold, serial-usb-maintainer)

On Fri, Jan 8, 2016 at 12:14 PM, Martyn Welch
<martyn.welch@xxxxxxxxxxxxxxx> wrote:

I'm working on adding support to the cp210x driver for the optional GPIO
pins available on Silicon Labs CP2105 USB to serial bridge.


Do you have a data sheet?

Yes.

So can you share it or is it online somewhere?


FWIW, It's online:

https://www.silabs.com/Support%20Documents/TechnicalDocs/CP2105.pdf

Unfortunately it isn't particularly informative when it comes to the gpio, though they do provide a driver (which uses custom ioctls in the serial device, ick) and a user space test application that gives a good idea of how to drive it (well, how to toggle all of the bits simultaneously anyway).

For the vendor specific stuff, they provide further code to enable the manufacturing programming which makes use of that. With a little bit of digging I was able to ascertain what codes were sent to retrieve the information I required and which bits of the returned value were important for my use case.

Martyn

I don't get it? Do you mean that the two serial ports will be able on
some serial port pins and then *also* on these extra pins in this
case, or do you mean that this is the only way for the serial
lines to get out of the chip?

You loose DTR, DSR, DCD and RI on each serial port when GPIO is enabled on
that port. Two of these pins on one port and 3 on the other become GPIO.
Both serial ports are still available, but only provide TX, RX, RTS and CTS
(which is more than enough for a lot of uses).

OK modem signals go out the window and instead these pins
are used for GPIO, because noone is using modems any more.
Makes perfect sense.

In any case, multiplexing is really a task for the pin control
framework, if you desire to switch this muxing at runtime.

You can't do it at runtime. The choice is programmed into a PROM, typically
at manufacture time (OEM, not chip) and can't be reverted.

OK then you should just go with the manufacturing setup
and you probably do not need pin control at all.

OK how do you determine this then?

There are some vendor specific USB calls that can be used to determine this.

OK fair enough.

Isn't it possible to read/query the PROM about the settings?

And I guess that is what it does.

Looking forward to the patch :)

Yours,
Linus Walleij

--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux