msm: 8064: Add support for GSBI4 based UARTDM
GSBI4 based UARTDM is used for primary IPC between APPS
and QSC on 8064 SGLTE2 platform. Hence add required resources
and configuration (i.e. GSBI4 UARTDM as platform device, clocks,
interrupts, DMA channels) for GSBI4 based UARTDM and enable the
same for 8064 SGLTE2 platform.
Change-Id: I3623e4b09d6d3e2d344f1fb7fbbbce75fe008ff4
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
diff --git a/arch/arm/mach-msm/devices-8064.c b/arch/arm/mach-msm/devices-8064.c
index 60ce99b..fb59c40 100644
--- a/arch/arm/mach-msm/devices-8064.c
+++ b/arch/arm/mach-msm/devices-8064.c
@@ -336,6 +336,50 @@
.resource = resources_uart_gsbi4,
};
+/* GSBI 4 used into UARTDM Mode for 8064 SGLTE */
+static struct resource msm_uart_dm4_resources[] = {
+ {
+ .start = MSM_UART4DM_PHYS,
+ .end = MSM_UART4DM_PHYS + PAGE_SIZE - 1,
+ .name = "uartdm_resource",
+ .flags = IORESOURCE_MEM,
+ },
+ {
+ .start = GSBI4_UARTDM_IRQ,
+ .end = GSBI4_UARTDM_IRQ,
+ .flags = IORESOURCE_IRQ,
+ },
+ {
+ .start = MSM_GSBI4_PHYS,
+ .end = MSM_GSBI4_PHYS + 4 - 1,
+ .name = "gsbi_resource",
+ .flags = IORESOURCE_MEM,
+ },
+ {
+ .start = DMOV_APQ8064_HSUART_GSBI4_TX_CHAN,
+ .end = DMOV_APQ8064_HSUART_GSBI4_RX_CHAN,
+ .name = "uartdm_channels",
+ .flags = IORESOURCE_DMA,
+ },
+ {
+ .start = DMOV_APQ8064_HSUART_GSBI4_TX_CRCI,
+ .end = DMOV_APQ8064_HSUART_GSBI4_RX_CRCI,
+ .name = "uartdm_crci",
+ .flags = IORESOURCE_DMA,
+ },
+};
+static u64 msm_uart_dm4_dma_mask = DMA_BIT_MASK(32);
+struct platform_device apq8064_device_uartdm_gsbi4 = {
+ .name = "msm_serial_hs",
+ .id = 1,
+ .num_resources = ARRAY_SIZE(msm_uart_dm4_resources),
+ .resource = msm_uart_dm4_resources,
+ .dev = {
+ .dma_mask = &msm_uart_dm4_dma_mask,
+ .coherent_dma_mask = DMA_BIT_MASK(32),
+ },
+};
+
static struct resource resources_qup_i2c_gsbi4[] = {
{
.name = "gsbi_qup_i2c_addr",