Skip to content

Commit

Permalink
[ALPS04794628] ccci:Seprate platform
Browse files Browse the repository at this point in the history
porting platform mt6761 ccci code

MTK-Commit-Id: a67a8aea6a6668636ddec50fb8d0ac19154b5bc2

Change-Id: I4c649a06ffb17ce70f6e1cb4d3915f33ef768a26
Signed-off-by: Yanjie Jiang <[email protected]>
Signed-off-by: yubing lin <[email protected]>
CR-Id: ALPS04794628
Feature: Modem Interface Driver
  • Loading branch information
Yanjie Jiang authored and Chao Song committed Jan 28, 2021
1 parent 7040b45 commit 19df672
Show file tree
Hide file tree
Showing 80 changed files with 4,709 additions and 1,988 deletions.
40 changes: 37 additions & 3 deletions arch/arm/boot/dts/mt6761.dts
Original file line number Diff line number Diff line change
Expand Up @@ -416,7 +416,7 @@
interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_LOW>;
wakeup-source = <&keypad 0 (1 << 2)>,
<&consys 1 (1 << 5)>,
<&mdcldma 3 (1 << 25)>;
<&mddriver 3 (1 << 25)>;
};

eint: eint@1000b000 {
Expand Down Expand Up @@ -1038,8 +1038,30 @@
reg = <0 0x1021c800 0 0x1000>;
};

mdcldma:mdcldma@10014000 {
compatible = "mediatek,mdcldma";
ccifdriver:ccifdriver@10209000 {
compatible = "mediatek,ccci_ccif";
reg = <0 0x10209000 0 0x1000>, /*AP_CCIF_BASE*/
<0 0x1020a000 0 0x1000>; /*MD_CCIF_BASE*/
mediatek,sram_size = <512>;
/*CCIF0 174/206, CCIF0 175/207*/
interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>,
<GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
clocks = <&infracfg_ao CLK_IFR_CCIF_AP>,
<&infracfg_ao CLK_IFR_CCIF_MD>,
<&infracfg_ao CLK_IFR_CCIF1_AP>,
<&infracfg_ao CLK_IFR_CCIF1_MD>,
<&infracfg_ao CLK_IFR_CCIF2_AP>,
<&infracfg_ao CLK_IFR_CCIF2_MD>;
clock-names = "infra-ccif-ap",
"infra-ccif-md",
"infra-ccif1-ap",
"infra-ccif1-md",
"infra-ccif2-ap",
"infra-ccif2-md";
};

mddriver:mddriver@10014000 {
compatible = "mediatek,mddriver", "mediatek,mddriver-mt6761";
/*
* AP_CLDMA_AO "mediatek,apcldmain_ao"
* AP_CLDMA_PDN "mediatek,apcldmain"
Expand All @@ -1060,7 +1082,11 @@
<GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>,
<GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>,
<GIC_SPI 205 IRQ_TYPE_EDGE_FALLING>;
mediatek,mdhif_type = <3>; /* bit0~3: CLDMA|CCIF|DPMAIF */
mediatek,md_id = <0>;
mediatek,ap_plat_info = <6761>;
mediatek,md_generation = <6293>;
mediatek,offset_apon_md1 = <0x1C24>;
mediatek,cldma_capability = <6>;
clocks = <&scpsys SCP_SYS_MD1>,
<&infracfg_ao CLK_IFR_CLDMA_BCLK>,
Expand All @@ -1078,6 +1104,14 @@
"infra-ccif1-md",
"infra-ccif2-ap",
"infra-ccif2-md";
_vmodem-supply = <&mt_pmic_vmodem_buck_reg>;
_vcore-supply = <&mt_pmic_vcore_buck_reg>;
};
md_auxadc:md_auxadc {
compatible = "mediatek,md_auxadc";
io-channels = <&auxadc 2>;
io-channel-names = "md-channel",
"md-battery";
};

bpi_bsi_slv0@1021e000 {
Expand Down
4 changes: 4 additions & 0 deletions arch/arm/configs/k61v1_32_bsp_1g_debug_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,10 @@ CONFIG_MTK_ROUND_CORNER_SUPPORT=y
CONFIG_LCM_HEIGHT="1280"
CONFIG_LCM_WIDTH="720"
CONFIG_MTK_M4U=y
CONFIG_MTK_CCCI_DEVICES=y
CONFIG_MTK_MD1_SUPPORT=12
CONFIG_MTK_ECCCI_DRIVER=y
CONFIG_MTK_ECCCI_C2K=y
CONFIG_MTK_BTIF=y
CONFIG_MTK_COMBO=y
CONFIG_MTK_COMBO_CHIP_CONSYS_6761=y
Expand Down
4 changes: 4 additions & 0 deletions arch/arm/configs/k61v1_32_bsp_1g_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,10 @@ CONFIG_MTK_ROUND_CORNER_SUPPORT=y
CONFIG_LCM_HEIGHT="1280"
CONFIG_LCM_WIDTH="720"
CONFIG_MTK_M4U=y
CONFIG_MTK_CCCI_DEVICES=y
CONFIG_MTK_MD1_SUPPORT=12
CONFIG_MTK_ECCCI_DRIVER=y
CONFIG_MTK_ECCCI_C2K=y
CONFIG_MTK_BTIF=y
CONFIG_MTK_COMBO=y
CONFIG_MTK_COMBO_CHIP_CONSYS_6761=y
Expand Down
4 changes: 4 additions & 0 deletions arch/arm/configs/k61v1_32_bsp_hdp_debug_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,10 @@ CONFIG_LCM_HEIGHT="1440"
CONFIG_LCM_WIDTH="720"
CONFIG_MTK_AAL_SUPPORT=y
CONFIG_MTK_M4U=y
CONFIG_MTK_CCCI_DEVICES=y
CONFIG_MTK_MD1_SUPPORT=12
CONFIG_MTK_ECCCI_DRIVER=y
CONFIG_MTK_ECCCI_C2K=y
CONFIG_MTK_BTIF=y
CONFIG_MTK_COMBO=y
CONFIG_MTK_COMBO_CHIP_CONSYS_6761=y
Expand Down
4 changes: 4 additions & 0 deletions arch/arm/configs/k61v1_32_bsp_hdp_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,10 @@ CONFIG_LCM_HEIGHT="1440"
CONFIG_LCM_WIDTH="720"
CONFIG_MTK_AAL_SUPPORT=y
CONFIG_MTK_M4U=y
CONFIG_MTK_CCCI_DEVICES=y
CONFIG_MTK_MD1_SUPPORT=12
CONFIG_MTK_ECCCI_DRIVER=y
CONFIG_MTK_ECCCI_C2K=y
CONFIG_MTK_BTIF=y
CONFIG_MTK_COMBO=y
CONFIG_MTK_COMBO_CHIP_CONSYS_6761=y
Expand Down
41 changes: 38 additions & 3 deletions arch/arm64/boot/dts/mediatek/mt6761.dts
Original file line number Diff line number Diff line change
Expand Up @@ -424,7 +424,7 @@ firmware_class.path=/vendor/firmware";
interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_LOW>;
wakeup-source = <&keypad 0 (1 << 2)>,
<&consys 1 (1 << 5)>,
<&mdcldma 3 (1 << 25)>;
<&mddriver 3 (1 << 25)>;
};

eint: eint@1000b000 {
Expand Down Expand Up @@ -1037,8 +1037,30 @@ firmware_class.path=/vendor/firmware";
reg = <0 0x1021c800 0 0x1000>;
};

mdcldma:mdcldma@10014000 {
compatible = "mediatek,mdcldma";
ccifdriver:ccifdriver@10209000 {
compatible = "mediatek,ccci_ccif";
reg = <0 0x10209000 0 0x1000>, /*AP_CCIF_BASE*/
<0 0x1020a000 0 0x1000>; /*MD_CCIF_BASE*/
mediatek,sram_size = <512>;
/*CCIF0 174/206, CCIF0 175/207*/
interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>,
<GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
clocks = <&infracfg_ao CLK_IFR_CCIF_AP>,
<&infracfg_ao CLK_IFR_CCIF_MD>,
<&infracfg_ao CLK_IFR_CCIF1_AP>,
<&infracfg_ao CLK_IFR_CCIF1_MD>,
<&infracfg_ao CLK_IFR_CCIF2_AP>,
<&infracfg_ao CLK_IFR_CCIF2_MD>;
clock-names = "infra-ccif-ap",
"infra-ccif-md",
"infra-ccif1-ap",
"infra-ccif1-md",
"infra-ccif2-ap",
"infra-ccif2-md";
};

mddriver:mddriver@10014000 {
compatible = "mediatek,mddriver", "mediatek,mddriver-mt6761";
/*
* AP_CLDMA_AO "mediatek,apcldmain_ao"
* AP_CLDMA_PDN "mediatek,apcldmain"
Expand All @@ -1059,7 +1081,11 @@ firmware_class.path=/vendor/firmware";
<GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>,
<GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>,
<GIC_SPI 205 IRQ_TYPE_EDGE_FALLING>;
mediatek,mdhif_type = <3>; /* bit0~3: CLDMA|CCIF|DPMAIF */
mediatek,md_id = <0>;
mediatek,ap_plat_info = <6761>;
mediatek,md_generation = <6293>;
mediatek,offset_apon_md1 = <0x1C24>;
mediatek,cldma_capability = <6>;
clocks = <&scpsys SCP_SYS_MD1>,
<&infracfg_ao CLK_IFR_CLDMA_BCLK>,
Expand All @@ -1077,6 +1103,15 @@ firmware_class.path=/vendor/firmware";
"infra-ccif1-md",
"infra-ccif2-ap",
"infra-ccif2-md";
_vmodem-supply = <&mt_pmic_vmodem_buck_reg>;
_vcore-supply = <&mt_pmic_vcore_buck_reg>;

};
md_auxadc:md_auxadc {
compatible = "mediatek,md_auxadc";
io-channels = <&auxadc 2>;
io-channel-names = "md-channel",
"md-battery";
};

bpi_bsi_slv0@1021e000 {
Expand Down
29 changes: 28 additions & 1 deletion arch/arm64/boot/dts/mediatek/mt6779.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -1458,6 +1458,30 @@ firmware_class.path=/vendor/firmware loop.max_part=7";
interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_LOW>;
};

ccifdriver:ccifdriver@10209000 {
compatible = "mediatek,ccci_ccif";
reg = <0 0x10209000 0 0x1000>, /*AP_CCIF_BASE*/
<0 0x1020a000 0 0x1000>; /*MD_CCIF_BASE*/
mediatek,sram_size = <512>;
/*CCIF0 174/206, CCIF0 175/207*/
interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_LOW>,
<GIC_SPI 175 IRQ_TYPE_LEVEL_LOW>;
clocks = <&infracfg_ao CLK_INFRA_CCIF_AP>,
<&infracfg_ao CLK_INFRA_CCIF_MD>,
<&infracfg_ao CLK_INFRA_CCIF1_AP>,
<&infracfg_ao CLK_INFRA_CCIF1_MD>,
<&infracfg_ao CLK_INFRA_CCIF2_AP>,
<&infracfg_ao CLK_INFRA_CCIF2_MD>,
<&infracfg_ao CLK_INFRA_CCIF4_MD>;
clock-names = "infra-ccif-ap",
"infra-ccif-md",
"infra-ccif1-ap",
"infra-ccif1-md",
"infra-ccif2-ap",
"infra-ccif2-md",
"infra-ccif4-md";
};

infracfg: infracfg@1020e000 {
compatible = "syscon";
reg = <0 0x1020e000 0 0x1000>;
Expand Down Expand Up @@ -3534,9 +3558,12 @@ firmware_class.path=/vendor/firmware loop.max_part=7";
};

mddriver:mddriver {
compatible = "mediatek,mddriver";
compatible = "mediatek,mddriver", "mediatek,mddriver-mt6779";
mediatek,mdhif_type = <6>; /* bit0~3: CLDMA|CCIF|DPMAIF */
mediatek,md_id = <0>;
mediatek,ap_plat_info = <6779>;
mediatek,md_generation = <6295>;
mediatek,offset_apon_md1 = <0x1C24>;
mediatek,cldma_capability = <6>;
reg = <0 0x10209000 0 0x1000>, /*AP_CCIF_BASE*/
<0 0x1020a000 0 0x1000>; /*MD_CCIF_BASE*/
Expand Down
4 changes: 0 additions & 4 deletions drivers/misc/mediatek/ccci_util/ccci_util_dummy.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,6 @@ void __weak spm_ap_mdsrc_req(u8 lock)
pr_notice("[ccci/dummy] %s is not supported!\n", __func__);
}

void __weak ccci_power_off(void)
{

}
int __weak exec_ccci_kern_func_by_md_id(int md_id, unsigned int id, char *buf,
unsigned int len)
{
Expand Down
2 changes: 1 addition & 1 deletion drivers/misc/mediatek/ccci_util/ccci_util_lib_fo.c
Original file line number Diff line number Diff line change
Expand Up @@ -1646,7 +1646,7 @@ static void cal_md_settings(int md_id)
/* MD*_SMEM_SIZE */
if (md_id == MD_SYS1) {
/* For cldma case */
node_name = "mediatek,mdcldma";
node_name = "mediatek,mddriver";
/* For ccif case */
node_name2 = "mediatek,ap_ccif0";
} else if (md_id == MD_SYS2) {
Expand Down
18 changes: 12 additions & 6 deletions drivers/misc/mediatek/ccci_util/ccci_util_lib_load_img.c
Original file line number Diff line number Diff line change
Expand Up @@ -84,11 +84,20 @@ static struct md_check_header_v6 md_img_header_v6[MAX_MD_NUM];
/*static struct ccci_image_info img_info[MAX_MD_NUM][IMG_NUM]; */
char md_img_info_str[MAX_MD_NUM][256];

#define AP_PLATFORM_INFO "MT6779"

char *ccci_get_ap_platform(void)
{
return AP_PLATFORM_INFO;
struct device_node *node;
int ap_plat_info;
char *ap_platform = NULL;

node = of_find_compatible_node(NULL, NULL,
"mediatek,mddriver");
of_property_read_u32(node,
"mediatek,ap_plat_info", &ap_plat_info);
ap_platform = kzalloc(sizeof(int), GFP_KERNEL);
sprintf(ap_platform, "%d", ap_plat_info);

return ap_platform;
}

/*--- MD header check ------------ */
Expand Down Expand Up @@ -386,7 +395,6 @@ static int md_check_header_parser(int md_id, void *parse_addr,
head = (struct md_check_header_struct *)headv12;
header_up = 2;
}

start = (unsigned char *)(head);
ptr = (unsigned char *)(parse_addr - header_size);
for (idx = 0; idx < header_size; idx++)
Expand Down Expand Up @@ -1194,7 +1202,6 @@ int ccci_get_md_check_hdr_inf(int md_id, void *img_inf, char post_fix[])
"fail to allocate memor for chk_hdr\n");
return -1;
}

img_str = md_img_info_str[md_id];

ret = get_raw_check_hdr(md_id, buf, 1024);
Expand All @@ -1204,7 +1211,6 @@ int ccci_get_md_check_hdr_inf(int md_id, void *img_inf, char post_fix[])
kfree(buf);
return -1;
}

img_ptr->size = get_md_img_raw_size(md_id);
ret = check_md_header(md_id, buf+ret, img_ptr);
if (ret < 0) {
Expand Down
2 changes: 1 addition & 1 deletion drivers/misc/mediatek/ccci_util/ccci_util_log.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#ifndef __CCCI_UTIL_LOG_H__
#define __CCCI_UTIL_LOG_H__

/* #define BRING_UP_LOG_MODE */
/*#define BRING_UP_LOG_MODE*/
#ifndef BRING_UP_LOG_MODE
/* ------------------------------------------------------------------------- */
/* For normal stage log */
Expand Down
25 changes: 13 additions & 12 deletions drivers/misc/mediatek/eccci/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ $(info MTK_PLATFORM := $(MTK_PLATFORM))


ccflags-y += -I$(srctree)/drivers/misc/mediatek/eccci/inc/
ccflags-y += -I$(srctree)/drivers/misc/mediatek/eccci/mt6779/
ccflags-y += -I$(srctree)/drivers/misc/mediatek/eccci/$(MTK_PLATFORM)
ccflags-y += -I$(srctree)/drivers/misc/mediatek/ccmni/
ccflags-y += -I$(srctree)/drivers/misc/mediatek/conn_md/include/
ccflags-y += -I$(srctree)/drivers/misc/mediatek/base/power/mt6779/
ccflags-y += -I$(srctree)/drivers/misc/mediatek/base/power/$(MTK_PLATFORM)
ccflags-y += -I$(srctree)/drivers/misc/mediatek/base/power/include
ccflags-y += -I$(srctree)/drivers/misc/mediatek/scp/include/
ccflags-y += -I$(srctree)/drivers/misc/mediatek/memory-amms
Expand All @@ -49,7 +49,7 @@ endif
obj-$(CCCI_OBJ) += ccci_md_all.o
ccci_md_all-$(CCCI_OBJ) := ccci_core.o ccci_bm.o ccci_modem.o modem_sys1.o \
udc/udc.o \
hif/ccci_hif.o hif/ccci_hif_cldma.o hif/ccci_ringbuf.o hif/ccci_hif_ccif.o
hif/ccci_hif.o hif/ccci_hif_cldma.o

# port start
ccflags-y += -I$(srctree)/drivers/misc/mediatek/eccci/port/
Expand All @@ -73,7 +73,7 @@ ccci_md_all-$(CCCI_OBJ) += port/port_cfg.o \
# port end
# fsm start
ccflags-y += -I$(srctree)/drivers/misc/mediatek/eccci/fsm/
ccflags-y += -I$(srctree)/drivers/misc/mediatek/scp/mt6779/
ccflags-y += -I$(srctree)/drivers/misc/mediatek/scp/$(MTK_PLATFORM)
ccci_md_all-$(CCCI_OBJ) += fsm/ccci_fsm.o \
fsm/ccci_fsm_ioctl.o \
fsm/ccci_fsm_monitor.o \
Expand All @@ -87,12 +87,10 @@ ccci_md_all-$(CCCI_OBJ) += fsm/ccci_fsm.o \
# fsm end

# plat start
#ccflags-y += -I$(srctree)/drivers/misc/mediatek/base/power/$(MTK_PLATFORM)
ccflags-y += -I$(srctree)/drivers/misc/mediatek/base/power/mt6779/
ccflags-y += -I$(srctree)/drivers/misc/mediatek/base/power/$(MTK_PLATFORM)
ccflags-y += -I$(srctree)/drivers/misc/mediatek/base/power/include
ccflags-y += -I$(srctree)/drivers/misc/mediatek/pmic/
#ccflags-y += -I$(srctree)/drivers/misc/mediatek/emi_bwl/$(MTK_PLATFORM)
ccflags-y += -I$(srctree)/drivers/misc/mediatek/emi_bwl/mt6779/
ccflags-y += -I$(srctree)/drivers/misc/mediatek/emi_bwl/$(MTK_PLATFORM)
ccflags-y += -I$(srctree)/drivers/clk/mediatek
# security objects
MASP_CORE_DRIVER_DIR := $(srctree)/drivers/misc/mediatek/drivers/masp
Expand Down Expand Up @@ -123,15 +121,18 @@ endif
ifeq ($(CONFIG_MTK_SEC_MODEM_NVRAM_ANTI_CLONE), y)
ccflags-y += -DMTK_SEC_MODEM_NVRAM_ANTI_CLONE
endif
ccci_md_all-$(CCCI_OBJ) += mt6779/ccci_platform.o $(core_obj) $(mach_obj) $(sec_obj) \
mt6779/ap_md_reg_dump.o \
mt6779/md_sys1_platform.o
ccci_md_all-$(CCCI_OBJ) += $(MTK_PLATFORM)/ccci_platform.o $(core_obj) $(mach_obj) $(sec_obj) \
$(MTK_PLATFORM)/ap_md_reg_dump.o \
$(MTK_PLATFORM)/md_sys1_platform.o
# plat end

ifeq ($(CONFIG_MTK_ECCCI_C2K), y)
ccci_md_all-$(CCCI_OBJ) += modem_sys3.o
endif

# ccci_ccif.ko
ccci_ccif-y := hif/ccci_ringbuf.o hif/ccci_hif_ccif.o
obj-$(CCCI_OBJ) += ccci_ccif.o

# ccci_dpmaif.ko
ccci_dpmaif-y := hif/ccci_hif_dpmaif.o hif/dpmaif_drv.o
Expand Down Expand Up @@ -163,7 +164,7 @@ $(info MTK_PLATFORM := $(MTK_PLATFORM))

# platform code
#obj-y += $(subst ",,$(CONFIG_MTK_PLATFORM))/
obj-$(CCCI_OBJ) += mt6779/
obj-$(CCCI_OBJ) += $(MTK_PLATFORM)/

endif

Expand Down
1 change: 1 addition & 0 deletions drivers/misc/mediatek/eccci/ccci_auxadc.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include <linux/iio/iio.h>

#include "ccci_config.h"
#include "ccci_common_config.h"
#include "ccci_core.h"
#include "ccci_debug.h"

Expand Down
Loading

0 comments on commit 19df672

Please sign in to comment.