[i2c] [PATCH 2/2] Blackfin I2C/TWI driver: add missing pin mux operation

Bryan Wu cooloney.lkml at gmail.com
Fri Nov 2 02:48:37 CET 2007


On 11/2/07, Mike Frysinger <vapier.adi at gmail.com> wrote:
> On 10/30/07, Bryan Wu <bryan.wu at analog.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 at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>



More information about the i2c mailing list