Hi Harm, On Mon, 8 Mar 2021 at 14:07, Harm Berntsen <harm.bernt...@nedap.com> wrote: > > The dm_gpio_set_dir_flags does a bitwise OR with the new flags. This > means that the i2c driver cannot switch the pin from input to output or > vice versa. check_dir_flags fails here: > > check_dir_flags: flags 0x6 has GPIOD_IS_OUT and GPIOD_IS_IN > > On my board, removing the logical OR in dm_gpio_set_dir_flags fixes the > issue. The _dm_gpio_set_dir_flags function stores the passed flags > directly into the descriptor. This means that by removing the logical > OR all the existing flags will be lost which is also not what we want. > > So the code needs to be able to unset the IN/OUT direction bits. I > don't feel like I'm familiar enough with the GPIO code to do a good > suggestion. Maybe Patrick could help us out here?
Ah yes I had forgotten about that little quirk. I will send a new patch. Thank you for your help. Regards, Simon > > -----Original Message----- > From: Simon Glass <s...@chromium.org> > To: Harm Berntsen <harm.bernt...@nedap.com> > Cc: h...@denx.de <h...@denx.de>, tr...@konsulko.com <tr...@konsulko.com>, > u-boot@lists.denx.de <u-boot@lists.denx.de>, patrick.delau...@st.com > <patrick.delau...@st.com> > Subject: Re: [PATCH v5 1/2] gpio: i2c-gpio: Drop use of > dm_gpio_set_dir() > Date: Mon, 08 Mar 2021 10:05:24 -0500 > > Hi Harm, > > On Mon, 8 Mar 2021 at 09:35, Harm Berntsen <harm.bernt...@nedap.com> > wrote: > > > > I've just tested this on top of the current master (90964ab5) and > > this > > breaks my board (Kirkwood CPU with MVEBU_GPIO=y and DM_I2C_GPIO=y). > > I'll do some debugging to see what goes wrong. > > Thank you for that. > > Once we figure this out we should add a test. > > > > > -----Original Message----- > > From: Tom Rini <tr...@konsulko.com> > > To: Heiko Schocher <h...@denx.de>, Harm Berntsen > > <harm.bernt...@nedap.com> > > Cc: Simon Glass <s...@chromium.org>, U-Boot Mailing List > > <u-boot@lists.denx.de>, Patrick Delaunay <patrick.delau...@st.com> > > Subject: Re: [PATCH v5 1/2] gpio: i2c-gpio: Drop use of > > dm_gpio_set_dir() > > Date: Mon, 08 Mar 2021 08:16:53 -0500 > > > > On Mon, Mar 08, 2021 at 05:59:45AM +0100, Heiko Schocher wrote: > > > Hello Simon, > > > > > > On 08.03.21 04:45, Simon Glass wrote: > > > > This is the only driver that uses this function. Update it to use > > > > the > > > > alternative which is dm_gpio_set_dir_flags(). > > > > > > > > Signed-off-by: Simon Glass <s...@chromium.org> > > > > --- > > > > > > > > (no changes since v1) > > > > > > > > drivers/i2c/i2c-gpio.c | 19 +++++++++---------- > > > > 1 file changed, 9 insertions(+), 10 deletions(-) > > > > > > Reviewed-by: Heiko Schocher <h...@denx.de> > > > > The series is at: > > https://patchwork.ozlabs.org/project/uboot/list/?series=232639&state=* > > and I'd really like to see a tested-by. Harm, are you able to test > > this > > still since you had to fix this area before? Thanks! > > Regards, > Simon >