Loading arch/arm/mach-ux500/board-mop500-sdi.c +38 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,42 @@ void mop500_sdi_tc35892_init(void) sdi0_configure(); } /* * SDI1 (SDIO WLAN) */ #ifdef CONFIG_STE_DMA40 static struct stedma40_chan_cfg sdi1_dma_cfg_rx = { .mode = STEDMA40_MODE_LOGICAL, .dir = STEDMA40_PERIPH_TO_MEM, .src_dev_type = DB8500_DMA_DEV32_SD_MM1_RX, .dst_dev_type = STEDMA40_DEV_DST_MEMORY, .src_info.data_width = STEDMA40_WORD_WIDTH, .dst_info.data_width = STEDMA40_WORD_WIDTH, }; static struct stedma40_chan_cfg sdi1_dma_cfg_tx = { .mode = STEDMA40_MODE_LOGICAL, .dir = STEDMA40_MEM_TO_PERIPH, .src_dev_type = STEDMA40_DEV_SRC_MEMORY, .dst_dev_type = DB8500_DMA_DEV32_SD_MM1_TX, .src_info.data_width = STEDMA40_WORD_WIDTH, .dst_info.data_width = STEDMA40_WORD_WIDTH, }; #endif static struct mmci_platform_data mop500_sdi1_data = { .ocr_mask = MMC_VDD_29_30, .f_max = 50000000, .capabilities = MMC_CAP_4_BIT_DATA, .gpio_cd = -1, .gpio_wp = -1, #ifdef CONFIG_STE_DMA40 .dma_filter = stedma40_filter, .dma_rx_param = &sdi1_dma_cfg_rx, .dma_tx_param = &sdi1_dma_cfg_tx, #endif }; /* * SDI 2 (POP eMMC, not on DB8500ed) */ Loading Loading @@ -260,4 +296,6 @@ void __init hrefv60_sdi_init(void) sdi0_en = HREFV60_SDMMC_EN_GPIO; sdi0_vsel = HREFV60_SDMMC_1V8_3V_GPIO; sdi0_configure(); db8500_add_sdi1(&mop500_sdi1_data, periphid); } arch/arm/mach-ux500/board-mop500.c +1 −1 Original line number Diff line number Diff line Loading @@ -672,7 +672,7 @@ static void __init hrefv60_init_machine(void) ARRAY_SIZE(mop500_platform_devs)); mop500_i2c_init(); mop500_sdi_init(); hrefv60_sdi_init(); mop500_spi_init(); mop500_uart_init(); Loading arch/arm/mach-ux500/board-mop500.h +50 −13 Original line number Diff line number Diff line Loading @@ -7,40 +7,77 @@ #ifndef __BOARD_MOP500_H #define __BOARD_MOP500_H /* snowball GPIO for MMC card */ /* Snowball specific GPIO assignments, this board has no GPIO expander */ #define SNOWBALL_ACCEL_INT1_GPIO 163 #define SNOWBALL_ACCEL_INT2_GPIO 164 #define SNOWBALL_MAGNET_DRDY_GPIO 165 #define SNOWBALL_SDMMC_EN_GPIO 217 #define SNOWBALL_SDMMC_1V8_3V_GPIO 228 #define SNOWBALL_SDMMC_CD_GPIO 218 /* HREFv60-specific GPIO assignments, this board has no GPIO expander */ #define HREFV60_TOUCH_RST_GPIO 143 #define HREFV60_PROX_SENSE_GPIO 217 #define HREFV60_HAL_SW_GPIO 145 #define HREFV60_SDMMC_EN_GPIO 169 #define HREFV60_SDMMC_1V8_3V_GPIO 5 #define HREFV60_SDMMC_CD_GPIO 95 #define HREFV60_ACCEL_INT1_GPIO 82 #define HREFV60_ACCEL_INT2_GPIO 83 #define HREFV60_CAMERA_FLASH_ENABLE 21 #define HREFV60_MAGNET_DRDY_GPIO 32 #define HREFV60_DISP1_RST_GPIO 65 #define HREFV60_DISP2_RST_GPIO 66 #define HREFV60_ACCEL_INT1_GPIO 82 #define HREFV60_ACCEL_INT2_GPIO 83 #define HREFV60_SDMMC_CD_GPIO 95 #define HREFV60_XSHUTDOWN_SECONDARY_SENSOR 140 #define HREFV60_TOUCH_RST_GPIO 143 #define HREFV60_HAL_SW_GPIO 145 #define HREFV60_SDMMC_EN_GPIO 169 #define HREFV60_MMIO_XENON_CHARGE 170 #define HREFV60_PROX_SENSE_GPIO 217 /* MOP500 generic GPIOs */ #define CAMERA_FLASH_INT_PIN 7 #define CYPRESS_TOUCH_INT_PIN 84 #define XSHUTDOWN_PRIMARY_SENSOR 141 #define XSHUTDOWN_SECONDARY_SENSOR 142 #define CYPRESS_TOUCH_RST_GPIO 143 #define MOP500_HDMI_RST_GPIO 196 #define CYPRESS_SLAVE_SELECT_GPIO 216 /* GPIOs on the TC35892 expander */ #define MOP500_EGPIO(x) (NOMADIK_NR_GPIO + (x)) #define GPIO_MAGNET_DRDY MOP500_EGPIO(1) #define GPIO_SDMMC_CD MOP500_EGPIO(3) #define GPIO_CAMERA_FLASH_ENABLE MOP500_EGPIO(4) #define GPIO_MMIO_XENON_CHARGE MOP500_EGPIO(5) #define GPIO_PROX_SENSOR MOP500_EGPIO(7) #define GPIO_HAL_SENSOR MOP500_EGPIO(8) #define GPIO_ACCEL_INT1 MOP500_EGPIO(10) #define GPIO_ACCEL_INT2 MOP500_EGPIO(11) #define GPIO_BU21013_CS MOP500_EGPIO(13) #define MOP500_DISP2_RST_GPIO MOP500_EGPIO(14) #define MOP500_DISP1_RST_GPIO MOP500_EGPIO(15) #define GPIO_SDMMC_EN MOP500_EGPIO(17) #define GPIO_SDMMC_1V8_3V_SEL MOP500_EGPIO(18) #define MOP500_EGPIO_END MOP500_EGPIO(24) /* GPIOs on the AB8500 mixed-signals circuit */ #define MOP500_AB8500_GPIO(x) (MOP500_EGPIO_END + (x)) /* * GPIOs on the AB8500 mixed-signals circuit * Notice that we subtract 1 from the number passed into the macro, this is * because the AB8500 GPIO pins are enumbered starting from 1, so the value in * parens matches the GPIO pin number in the data sheet. */ #define MOP500_AB8500_GPIO(x) (MOP500_EGPIO_END + (x) - 1) /*Snowball AB8500 GPIO */ #define SNOWBALL_VSMPS2_1V8_GPIO MOP500_AB8500_PIN_GPIO(1) /* SYSCLKREQ2/GPIO1 */ #define SNOWBALL_PM_GPIO1_GPIO MOP500_AB8500_PIN_GPIO(2) /* SYSCLKREQ3/GPIO2 */ #define SNOWBALL_WLAN_CLK_REQ_GPIO MOP500_AB8500_PIN_GPIO(3) /* SYSCLKREQ4/GPIO3 */ #define SNOWBALL_PM_GPIO4_GPIO MOP500_AB8500_PIN_GPIO(4) /* SYSCLKREQ6/GPIO4 */ #define SNOWBALL_EN_3V6_GPIO MOP500_AB8500_PIN_GPIO(16) /* PWMOUT3/GPIO16 */ #define SNOWBALL_PME_ETH_GPIO MOP500_AB8500_PIN_GPIO(24) /* SYSCLKREQ7/GPIO24 */ #define SNOWBALL_EN_3V3_ETH_GPIO MOP500_AB8500_PIN_GPIO(26) /* GPIO26 */ struct i2c_board_info; extern void mop500_sdi_init(void); extern void snowball_sdi_init(void); extern void hrefv60_sdi_init(void); extern void mop500_sdi_tc35892_init(void); void __init mop500_u8500uib_init(void); void __init mop500_stuib_init(void); Loading Loading
arch/arm/mach-ux500/board-mop500-sdi.c +38 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,42 @@ void mop500_sdi_tc35892_init(void) sdi0_configure(); } /* * SDI1 (SDIO WLAN) */ #ifdef CONFIG_STE_DMA40 static struct stedma40_chan_cfg sdi1_dma_cfg_rx = { .mode = STEDMA40_MODE_LOGICAL, .dir = STEDMA40_PERIPH_TO_MEM, .src_dev_type = DB8500_DMA_DEV32_SD_MM1_RX, .dst_dev_type = STEDMA40_DEV_DST_MEMORY, .src_info.data_width = STEDMA40_WORD_WIDTH, .dst_info.data_width = STEDMA40_WORD_WIDTH, }; static struct stedma40_chan_cfg sdi1_dma_cfg_tx = { .mode = STEDMA40_MODE_LOGICAL, .dir = STEDMA40_MEM_TO_PERIPH, .src_dev_type = STEDMA40_DEV_SRC_MEMORY, .dst_dev_type = DB8500_DMA_DEV32_SD_MM1_TX, .src_info.data_width = STEDMA40_WORD_WIDTH, .dst_info.data_width = STEDMA40_WORD_WIDTH, }; #endif static struct mmci_platform_data mop500_sdi1_data = { .ocr_mask = MMC_VDD_29_30, .f_max = 50000000, .capabilities = MMC_CAP_4_BIT_DATA, .gpio_cd = -1, .gpio_wp = -1, #ifdef CONFIG_STE_DMA40 .dma_filter = stedma40_filter, .dma_rx_param = &sdi1_dma_cfg_rx, .dma_tx_param = &sdi1_dma_cfg_tx, #endif }; /* * SDI 2 (POP eMMC, not on DB8500ed) */ Loading Loading @@ -260,4 +296,6 @@ void __init hrefv60_sdi_init(void) sdi0_en = HREFV60_SDMMC_EN_GPIO; sdi0_vsel = HREFV60_SDMMC_1V8_3V_GPIO; sdi0_configure(); db8500_add_sdi1(&mop500_sdi1_data, periphid); }
arch/arm/mach-ux500/board-mop500.c +1 −1 Original line number Diff line number Diff line Loading @@ -672,7 +672,7 @@ static void __init hrefv60_init_machine(void) ARRAY_SIZE(mop500_platform_devs)); mop500_i2c_init(); mop500_sdi_init(); hrefv60_sdi_init(); mop500_spi_init(); mop500_uart_init(); Loading
arch/arm/mach-ux500/board-mop500.h +50 −13 Original line number Diff line number Diff line Loading @@ -7,40 +7,77 @@ #ifndef __BOARD_MOP500_H #define __BOARD_MOP500_H /* snowball GPIO for MMC card */ /* Snowball specific GPIO assignments, this board has no GPIO expander */ #define SNOWBALL_ACCEL_INT1_GPIO 163 #define SNOWBALL_ACCEL_INT2_GPIO 164 #define SNOWBALL_MAGNET_DRDY_GPIO 165 #define SNOWBALL_SDMMC_EN_GPIO 217 #define SNOWBALL_SDMMC_1V8_3V_GPIO 228 #define SNOWBALL_SDMMC_CD_GPIO 218 /* HREFv60-specific GPIO assignments, this board has no GPIO expander */ #define HREFV60_TOUCH_RST_GPIO 143 #define HREFV60_PROX_SENSE_GPIO 217 #define HREFV60_HAL_SW_GPIO 145 #define HREFV60_SDMMC_EN_GPIO 169 #define HREFV60_SDMMC_1V8_3V_GPIO 5 #define HREFV60_SDMMC_CD_GPIO 95 #define HREFV60_ACCEL_INT1_GPIO 82 #define HREFV60_ACCEL_INT2_GPIO 83 #define HREFV60_CAMERA_FLASH_ENABLE 21 #define HREFV60_MAGNET_DRDY_GPIO 32 #define HREFV60_DISP1_RST_GPIO 65 #define HREFV60_DISP2_RST_GPIO 66 #define HREFV60_ACCEL_INT1_GPIO 82 #define HREFV60_ACCEL_INT2_GPIO 83 #define HREFV60_SDMMC_CD_GPIO 95 #define HREFV60_XSHUTDOWN_SECONDARY_SENSOR 140 #define HREFV60_TOUCH_RST_GPIO 143 #define HREFV60_HAL_SW_GPIO 145 #define HREFV60_SDMMC_EN_GPIO 169 #define HREFV60_MMIO_XENON_CHARGE 170 #define HREFV60_PROX_SENSE_GPIO 217 /* MOP500 generic GPIOs */ #define CAMERA_FLASH_INT_PIN 7 #define CYPRESS_TOUCH_INT_PIN 84 #define XSHUTDOWN_PRIMARY_SENSOR 141 #define XSHUTDOWN_SECONDARY_SENSOR 142 #define CYPRESS_TOUCH_RST_GPIO 143 #define MOP500_HDMI_RST_GPIO 196 #define CYPRESS_SLAVE_SELECT_GPIO 216 /* GPIOs on the TC35892 expander */ #define MOP500_EGPIO(x) (NOMADIK_NR_GPIO + (x)) #define GPIO_MAGNET_DRDY MOP500_EGPIO(1) #define GPIO_SDMMC_CD MOP500_EGPIO(3) #define GPIO_CAMERA_FLASH_ENABLE MOP500_EGPIO(4) #define GPIO_MMIO_XENON_CHARGE MOP500_EGPIO(5) #define GPIO_PROX_SENSOR MOP500_EGPIO(7) #define GPIO_HAL_SENSOR MOP500_EGPIO(8) #define GPIO_ACCEL_INT1 MOP500_EGPIO(10) #define GPIO_ACCEL_INT2 MOP500_EGPIO(11) #define GPIO_BU21013_CS MOP500_EGPIO(13) #define MOP500_DISP2_RST_GPIO MOP500_EGPIO(14) #define MOP500_DISP1_RST_GPIO MOP500_EGPIO(15) #define GPIO_SDMMC_EN MOP500_EGPIO(17) #define GPIO_SDMMC_1V8_3V_SEL MOP500_EGPIO(18) #define MOP500_EGPIO_END MOP500_EGPIO(24) /* GPIOs on the AB8500 mixed-signals circuit */ #define MOP500_AB8500_GPIO(x) (MOP500_EGPIO_END + (x)) /* * GPIOs on the AB8500 mixed-signals circuit * Notice that we subtract 1 from the number passed into the macro, this is * because the AB8500 GPIO pins are enumbered starting from 1, so the value in * parens matches the GPIO pin number in the data sheet. */ #define MOP500_AB8500_GPIO(x) (MOP500_EGPIO_END + (x) - 1) /*Snowball AB8500 GPIO */ #define SNOWBALL_VSMPS2_1V8_GPIO MOP500_AB8500_PIN_GPIO(1) /* SYSCLKREQ2/GPIO1 */ #define SNOWBALL_PM_GPIO1_GPIO MOP500_AB8500_PIN_GPIO(2) /* SYSCLKREQ3/GPIO2 */ #define SNOWBALL_WLAN_CLK_REQ_GPIO MOP500_AB8500_PIN_GPIO(3) /* SYSCLKREQ4/GPIO3 */ #define SNOWBALL_PM_GPIO4_GPIO MOP500_AB8500_PIN_GPIO(4) /* SYSCLKREQ6/GPIO4 */ #define SNOWBALL_EN_3V6_GPIO MOP500_AB8500_PIN_GPIO(16) /* PWMOUT3/GPIO16 */ #define SNOWBALL_PME_ETH_GPIO MOP500_AB8500_PIN_GPIO(24) /* SYSCLKREQ7/GPIO24 */ #define SNOWBALL_EN_3V3_ETH_GPIO MOP500_AB8500_PIN_GPIO(26) /* GPIO26 */ struct i2c_board_info; extern void mop500_sdi_init(void); extern void snowball_sdi_init(void); extern void hrefv60_sdi_init(void); extern void mop500_sdi_tc35892_init(void); void __init mop500_u8500uib_init(void); void __init mop500_stuib_init(void); Loading