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

Mike Frysinger vapier.adi at gmail.com
Thu Nov 1 18:51:55 CET 2007


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

> +       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()

> --- 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



More information about the i2c mailing list