[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <386072610711011848x578dd4d8r6b530e5dfc33f4a8@mail.gmail.com>
Date: Fri, 2 Nov 2007 09:48:37 +0800
From: "Bryan Wu" <cooloney.lkml@...il.com>
To: "Mike Frysinger" <vapier.adi@...il.com>
Cc: "Bryan Wu" <bryan.wu@...log.com>, khali@...ux-fr.org,
i2c@...sensors.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/2] Blackfin I2C/TWI driver: add missing pin mux operation
On 11/2/07, Mike Frysinger <vapier.adi@...il.com> wrote:
> On 10/30/07, Bryan Wu <bryan.wu@...log.com> wrote:
> > --- a/drivers/i2c/busses/i2c-bfin-twi.c
> > +++ b/drivers/i2c/busses/i2c-bfin-twi.c
> > +static int setup_pin_mux(int action, struct bfin_twi_iface *iface)
> > +{
> > +
> > + u16 pin_req[2][3] = {
> > + {P_TWI0_SCL, P_TWI0_SDA, 0},
> > + {P_TWI1_SCL, P_TWI1_SDA, 0},
> > + };
>
> might be better to have this in the boards file ... consider the
> scenario on the BF54x where the user wants to use I2C0 and not I2C1 or
> vice versa so that they can use the set of pins for something else ...
> this would prevent such a setup
>
Yes, I plan to use new style I2C driver interface as Jean suggested before.
The whole hard coded pin_req list can be passed to the i2c-bfin-twi.c
dynamically.
> > + if (action) {
> > + if (peripheral_request_list(pin_req[iface->bus_num], DRV_NAME))
> > + return -EFAULT;
> > + } else {
> > + peripheral_free_list(pin_req[iface->bus_num]);
> > + }
> > +
> > + return 0;
> > +}
>
> EFAULT is incorrect i think ... want to pass back the actual value
> from peripheral_request_list()
>
It will be removed in the new style interface.
> > --- a/drivers/i2c/busses/i2c-bfin-twi.c
> > +++ b/drivers/i2c/busses/i2c-bfin-twi.c
> > +static int setup_pin_mux(int action, struct bfin_twi_iface *iface)
> > +{
> > +
> > + u16 pin_req[2][3] = {
> > + {P_TWI0_SCL, P_TWI0_SDA, 0},
> > + {P_TWI1_SCL, P_TWI1_SDA, 0},
> > + };
>
> might be better to have this in the boards file ... consider the
> scenario on the BF54x where the user wants to use I2C0 and not I2C1 or
> vice versa so that they can use the set of pins for something else ...
> this would prevent such a setup
>
> if (action)
> return peripheral_request_list(pin_req[iface->bus_num],
> DRV_NAME);
> else
> peripheral_free_list(pin_req[iface->bus_num]);
>
> return 0;
> -mike
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists