1.创建包含所有文件的ASM驱动程序rfdevice_fem/asm/src/:
a. Create the rfdevice_asm_XYZ_data_ag.h file
b. Create the rfdevice_asm_XYZ_data.ag.cpp file
c. Modify the rfdevice_asm_factory.cpp file
ASM ENABLE REG/DATA保存射频操作中打开ASM时的寄存器地址和软件写入的内容。ASM驱动中的端口是现代软件中的一个逻辑概念。软件使用一个端口来恢复每个ASM操作状态的寄存器设置。
idx总线是为将来的发展而保留的
所有场景都设置为0x00
在每个ASM结构中增加新的RFFE写掩码字段
每个寄存器地址都有一个数据项和写mask item。
为了节省电流,当ASM不活动时,将其置于休眠状态。
寄存器0x1C位[7:6]在MIPI RFFE规范中被定义为PM TRIG。
在默认的ASM实现中,使用寄存器0x1C = 0x80作为sleep命令。
如果在进入休眠前需要将寄存器0x00放置到特殊状态,则展开寄存器如下所示。
0x1C写在中间需要登记寄存器0x00写。
ASM触发器用于在单个RFFE总线上同时执行多个MIPI命令。
调制解调器按顺序发送下一个模式的ASM寄存器设置,但是直到收到触发器后才执行命令。当ASM接收到触发器命令时,它根据之前接收到的命令重写MIPI寄存器。详细信息请参见RFFE厂商规格(80-N7876-1)。
ASM驱动程序中必须设置两个标志:
asm_sleep_self_trigger
ca_register_merge
- mfg_id and prd_id匹配ASM数据表中的值。
- Prd_rev是由QTI软件中使用的逻辑概念定义的,而不是ASM供应商。它允许软件用相同的mfg id和prd id为两个不同的ASM部件填充不同的ASM驱动程序。
- 在某些情况下,两个ASM部件可能具有相同的mfg id和prd id,但不同的寄存器设置需要不同的ASM驱动程序。软件通过在ASM驱动和rfdevice_asm_factory_ag.cpp中分配一个不同的prd rev来支持这个场景
9.修改rfdevice_asm_factory_ag.cpp
a.Add the header file of rfdevice_asm_XYZ_data.h
b.Add the if-else condition for the new ASM.
注意:else if条件中的prd rev必须与rfdevice asm XYZ data ag.cpp中的prd rev相同
10.MIPI Device Setting in cmn_devices_list
File:\modem_proc\rfc_atlas\rf_card\rfc_wtr5975_gsku\src\rfc_wtr5975_gsku_cmn_ag.cpp
11.在 Each Band中的设置