From 32142dc8a05c653308de0d0106e9036bd3655f78 Mon Sep 17 00:00:00 2001 From: Riaz Rahaman Date: Tue, 26 Jun 2012 18:42:36 +0530 Subject: [PATCH] msm: Add platform driver support for qseecom. qseecom device is not registered on msm8x60 and this change helps register qseecom device on msm8x60 targets. Change-Id: I06ed6e5a327028694185c39eefda886c65e070e3 Signed-off-by: Riaz Ur Rahaman --- arch/arm/mach-msm/board-msm8x60.c | 76 +++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/arch/arm/mach-msm/board-msm8x60.c b/arch/arm/mach-msm/board-msm8x60.c index 1bb69b51b5e..4e50ce5d484 100644 --- a/arch/arm/mach-msm/board-msm8x60.c +++ b/arch/arm/mach-msm/board-msm8x60.c @@ -5133,6 +5133,81 @@ static struct platform_device *asoc_devices[] __initdata = { &asoc_msm_dai1, }; +/* qseecom bus scaling */ +static struct msm_bus_vectors qseecom_clks_init_vectors[] = { + { + .src = MSM_BUS_MASTER_SPS, + .dst = MSM_BUS_SLAVE_EBI_CH0, + .ib = 0, + .ab = 0, + }, + { + .src = MSM_BUS_MASTER_SPDM, + .dst = MSM_BUS_SLAVE_SPDM, + .ib = 0, + .ab = 0, + }, +}; + +static struct msm_bus_vectors qseecom_enable_dfab_vectors[] = { + { + .src = MSM_BUS_MASTER_SPS, + .dst = MSM_BUS_SLAVE_EBI_CH0, + .ib = (492 * 8) * 1000000UL, + .ab = (492 * 8) * 100000UL, + }, + { + .src = MSM_BUS_MASTER_SPDM, + .dst = MSM_BUS_SLAVE_SPDM, + .ib = 0, + .ab = 0, + }, +}; + +static struct msm_bus_vectors qseecom_enable_sfpb_vectors[] = { + { + .src = MSM_BUS_MASTER_SPS, + .dst = MSM_BUS_SLAVE_EBI_CH0, + .ib = 0, + .ab = 0, + }, + { + .src = MSM_BUS_MASTER_SPDM, + .dst = MSM_BUS_SLAVE_SPDM, + .ib = (64 * 8) * 1000000UL, + .ab = (64 * 8) * 100000UL, + }, +}; + +static struct msm_bus_paths qseecom_hw_bus_scale_usecases[] = { + { + ARRAY_SIZE(qseecom_clks_init_vectors), + qseecom_clks_init_vectors, + }, + { + ARRAY_SIZE(qseecom_enable_dfab_vectors), + qseecom_enable_sfpb_vectors, + }, + { + ARRAY_SIZE(qseecom_enable_sfpb_vectors), + qseecom_enable_sfpb_vectors, + }, +}; + +static struct msm_bus_scale_pdata qseecom_bus_pdata = { + .usecase = qseecom_hw_bus_scale_usecases, + .num_usecases = ARRAY_SIZE(qseecom_hw_bus_scale_usecases), + .name = "qsee", +}; + +static struct platform_device qseecom_device = { + .name = "qseecom", + .id = -1, + .dev = { + .platform_data = &qseecom_bus_pdata, + }, +}; + static struct platform_device *surf_devices[] __initdata = { &msm8x60_device_acpuclk, &msm_device_smd, @@ -5141,6 +5216,7 @@ static struct platform_device *surf_devices[] __initdata = { &msm_pil_modem, &msm_pil_tzapps, &msm_pil_dsps, + &qseecom_device, #ifdef CONFIG_I2C_QUP &msm_gsbi3_qup_i2c_device, &msm_gsbi4_qup_i2c_device,