int dm355evm_msp_read(u8 reg) { return i2c_smbus_read_byte_data(msp430, reg); } EXPORT_SYMBOL(dm355evm_msp_read); #define MSP_GPIO(bit,reg) ((DM355EVM_MSP_ ## reg) << 3 | (bit)) static const u8 msp_gpios[] = { MSP_GPIO(0, LED), MSP_GPIO(1, LED), MSP_GPIO(2, LED), MSP_GPIO(3, LED), MSP_GPIO(4, LED), MSP_GPIO(5, LED), MSP_GPIO(6, LED), MSP_GPIO(7, LED), MSP_GPIO(0, SWITCH1), MSP_GPIO(1, SWITCH1), MSP_GPIO(2, SWITCH1), MSP_GPIO(3, SWITCH1), MSP_GPIO(4, SWITCH1), MSP_GPIO(2, SDMMC), MSP_GPIO(1, SDMMC), MSP_GPIO(4, SDMMC), MSP_GPIO(3, SDMMC), }; #define MSP_GPIO_REG(offset) (msp_gpios[(offset)] >> 3) #define MSP_GPIO_MASK(offset) BIT(msp_gpios[(offset)] & 0x07)
{ return i2c_smbus_read_byte_data(msp430, reg); } EXPORT_SYMBOL(dm355evm_msp_read); /*----------------------------------------------------------------------*/ /* * Many of the msp430 pins are just used as fixed-direction GPIOs. * We could export a few more of them this way, if we wanted. */ #define MSP_GPIO(bit,reg) ((DM355EVM_MSP_ ## reg) << 3 | (bit)) static const u8 msp_gpios[] = { /* eight leds */ MSP_GPIO(0, LED), MSP_GPIO(1, LED), MSP_GPIO(2, LED), MSP_GPIO(3, LED), MSP_GPIO(4, LED), MSP_GPIO(5, LED), MSP_GPIO(6, LED), MSP_GPIO(7, LED), /* SW6 and the NTSC/nPAL jumper */ MSP_GPIO(0, SWITCH1), MSP_GPIO(1, SWITCH1), MSP_GPIO(2, SWITCH1), MSP_GPIO(3, SWITCH1), MSP_GPIO(4, SWITCH1), /* switches on MMC/SD sockets */ MSP_GPIO(1, SDMMC), MSP_GPIO(2, SDMMC), /* mmc0 WP, nCD */ MSP_GPIO(3, SDMMC), MSP_GPIO(4, SDMMC), /* mmc1 WP, nCD */ }; #define MSP_GPIO_REG(offset) (msp_gpios[(offset)] >> 3) #define MSP_GPIO_MASK(offset) BIT(msp_gpios[(offset)] & 0x07)