From: Johan Hovold <johan@kernel.org>
To: Tung Pham <Tung.Pham@silabs.com>
Cc: "gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
Pho Tran <Pho.Tran@silabs.com>,
Hung Nguyen <Hung.Nguyen@silabs.com>,
linux-usb@vger.kernel.org
Subject: Re: patch "USB: serial: cp210x: add support for GPIOs on CP2108" added to usb-next
Date: Wed, 30 Jun 2021 12:05:58 +0200 [thread overview]
Message-ID: <YNxCBreFm7uisstJ@hovoldconsulting.com> (raw)
In-Reply-To: <PH0PR11MB4888B9D24A5F90E8AA02B28B81019@PH0PR11MB4888.namprd11.prod.outlook.com>
Hi Tung,
On Wed, Jun 30, 2021 at 08:58:29AM +0000, Tung Pham wrote:
First, thanks for testing the patch.
Please make sure to CC the usb list when reporting problems. I've added
it to CC now.
> When I test the apply patch with Linux kernel.
> https://github.com/torvalds/linux/blob/master/drivers/usb/serial/cp210x.c
>
> when I setting the CP2108 with GPIO 0 and GPIO 1 are alternative
> functions (not GPIO) using simplicity studio.
> And then test with the driver, it shows:
> root@ubuntu:/sys/class/gpio# ls
> export gpiochip496 unexport
> root@ubuntu:/sys/class/gpio# echo 496 > /sys/class/gpio/export
> bash: echo: write error: No such device
> root@ubuntu:/sys/class/gpio# echo 497 > /sys/class/gpio/export
> bash: echo: write error: No such device
> This is what we expected because the GPIO 0 and GPIO 1 are alternative
> functions (not GPIO).
Are you sure you're using the latest mainline kernel here, that is,
5.13 here?
With recent kernel's you would not see -ENODEV ("No such device") but
rather -EINVAL ("Invalid argument").
What does "uname -a" say?
And which version of the patch are you applying? Are you sure it's the
latest?
> But when I test the branch of Mr Gregkh.
> https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/tree/drivers/usb/serial/cp210x.c?h=usb-testing
> when I setting the CP2108 with GPIO 0 and GPIO 1 are alternative
> functions (not GPIO) using simplicity studio.
> And then test with the driver, it shows:
> root@ubuntu:/sys/class/gpio# ls
> export gpiochip496 unexport
> root@ubuntu:/sys/class/gpio# echo 496 > /sys/class/gpio/export
> root@ubuntu:/sys/class/gpio# echo 497 > /sys/class/gpio/export
> That mean it still use GPIO 0 and GPIO 1 as GPIO functions.
It does seem that way, but to be sure, do the
/sys/class/gpio/gpio496
/sys/class/gpio/gpio497
directories show up as well?
> I don't know why there is that different. We can discuss more if you
> know the information.
I just did a quick test using the code in the usb-next (testing) branch
and it seems to work as expected when hard-coding alternate functions
for some of the pins in the driver.
I did not actually reprogram the device so perhaps something is broken
with regards to reading the port configuration. But then you should see
the problem if you apply the patch to an earlier kernel as well.
Can you apply the below patch on top of Greg's usb-next (or usb-testing)
branch and send me the logs from when connecting the device?
Johan
From 4ac38b282cfa1e6a17ff9d11b886cbebce3b9654 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan@kernel.org>
Date: Wed, 30 Jun 2021 11:59:28 +0200
Subject: [PATCH] dbg: USB: serial: cp210x: dump CP2108 alternate function
config
---
drivers/usb/serial/cp210x.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
index 09b845d0da41..1628ea1e9948 100644
--- a/drivers/usb/serial/cp210x.c
+++ b/drivers/usb/serial/cp210x.c
@@ -1797,6 +1797,9 @@ static int cp2108_gpio_init(struct usb_serial *serial)
if (result < 0)
return result;
+ dev_info(&serial->interface->dev, "%s - %*ph\n", __func__,
+ 4, config.enhancedfxn_ifc);
+
priv->gc.ngpio = 16;
priv->gpio_pushpull = le16_to_cpu(config.reset_state.gpio_mode_pb1);
gpio_latch = le16_to_cpu(config.reset_state.gpio_latch_pb1);
--
2.31.1
next parent reply other threads:[~2021-06-30 10:06 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1624532158188214@kroah.com>
[not found] ` <PH0PR11MB4888B9D24A5F90E8AA02B28B81019@PH0PR11MB4888.namprd11.prod.outlook.com>
2021-06-30 10:05 ` Johan Hovold [this message]
2021-07-01 4:58 ` patch "USB: serial: cp210x: add support for GPIOs on CP2108" added to usb-next Tung Pham
2021-07-01 7:02 ` Johan Hovold
2021-07-01 7:46 ` Tung Pham
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YNxCBreFm7uisstJ@hovoldconsulting.com \
--to=johan@kernel.org \
--cc=Hung.Nguyen@silabs.com \
--cc=Pho.Tran@silabs.com \
--cc=Tung.Pham@silabs.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-usb@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.