@@ -698,6 +698,52 @@ static const struct mhi_pci_dev_info mhi_telit_fe990a_info = {
698698 .mru_default = 32768 ,
699699};
700700
701+ static const struct mhi_channel_config mhi_telit_fn920c04_channels [] = {
702+ MHI_CHANNEL_CONFIG_UL_SBL (2 , "SAHARA" , 32 , 0 ),
703+ MHI_CHANNEL_CONFIG_DL_SBL (3 , "SAHARA" , 32 , 0 ),
704+ MHI_CHANNEL_CONFIG_UL (4 , "DIAG" , 64 , 1 ),
705+ MHI_CHANNEL_CONFIG_DL (5 , "DIAG" , 64 , 1 ),
706+ MHI_CHANNEL_CONFIG_UL (14 , "QMI" , 32 , 0 ),
707+ MHI_CHANNEL_CONFIG_DL (15 , "QMI" , 32 , 0 ),
708+ MHI_CHANNEL_CONFIG_UL (32 , "DUN" , 32 , 0 ),
709+ MHI_CHANNEL_CONFIG_DL (33 , "DUN" , 32 , 0 ),
710+ MHI_CHANNEL_CONFIG_UL_FP (34 , "FIREHOSE" , 32 , 0 ),
711+ MHI_CHANNEL_CONFIG_DL_FP (35 , "FIREHOSE" , 32 , 0 ),
712+ MHI_CHANNEL_CONFIG_UL (92 , "DUN2" , 32 , 1 ),
713+ MHI_CHANNEL_CONFIG_DL (93 , "DUN2" , 32 , 1 ),
714+ MHI_CHANNEL_CONFIG_HW_UL (100 , "IP_HW0" , 128 , 2 ),
715+ MHI_CHANNEL_CONFIG_HW_DL (101 , "IP_HW0" , 128 , 3 ),
716+ };
717+
718+ static const struct mhi_controller_config modem_telit_fn920c04_config = {
719+ .max_channels = 128 ,
720+ .timeout_ms = 50000 ,
721+ .num_channels = ARRAY_SIZE (mhi_telit_fn920c04_channels ),
722+ .ch_cfg = mhi_telit_fn920c04_channels ,
723+ .num_events = ARRAY_SIZE (mhi_telit_fn990_events ),
724+ .event_cfg = mhi_telit_fn990_events ,
725+ };
726+
727+ static const struct mhi_pci_dev_info mhi_telit_fn920c04_info = {
728+ .name = "telit-fn920c04" ,
729+ .config = & modem_telit_fn920c04_config ,
730+ .bar_num = MHI_PCI_DEFAULT_BAR_NUM ,
731+ .dma_data_width = 32 ,
732+ .sideband_wake = false,
733+ .mru_default = 32768 ,
734+ .edl_trigger = true,
735+ };
736+
737+ static const struct mhi_pci_dev_info mhi_telit_fn990b40_info = {
738+ .name = "telit-fn990b40" ,
739+ .config = & modem_telit_fn920c04_config ,
740+ .bar_num = MHI_PCI_DEFAULT_BAR_NUM ,
741+ .dma_data_width = 32 ,
742+ .sideband_wake = false,
743+ .mru_default = 32768 ,
744+ .edl_trigger = true,
745+ };
746+
701747static const struct mhi_pci_dev_info mhi_netprisma_lcur57_info = {
702748 .name = "netprisma-lcur57" ,
703749 .edl = "qcom/prog_firehose_sdx24.mbn" ,
@@ -720,6 +766,9 @@ static const struct mhi_pci_dev_info mhi_netprisma_fcun69_info = {
720766
721767/* Keep the list sorted based on the PID. New VID should be added as the last entry */
722768static const struct pci_device_id mhi_pci_id_table [] = {
769+ /* Telit FN920C04 (sdx35) */
770+ {PCI_DEVICE_SUB (PCI_VENDOR_ID_QCOM , 0x011a , 0x1c5d , 0x2020 ),
771+ .driver_data = (kernel_ulong_t ) & mhi_telit_fn920c04_info },
723772 { PCI_DEVICE (PCI_VENDOR_ID_QCOM , 0x0304 ),
724773 .driver_data = (kernel_ulong_t ) & mhi_qcom_sdx24_info },
725774 { PCI_DEVICE_SUB (PCI_VENDOR_ID_QCOM , 0x0306 , PCI_VENDOR_ID_QCOM , 0x010c ),
@@ -740,6 +789,9 @@ static const struct pci_device_id mhi_pci_id_table[] = {
740789 .driver_data = (kernel_ulong_t ) & mhi_telit_fe990a_info },
741790 { PCI_DEVICE (PCI_VENDOR_ID_QCOM , 0x0308 ),
742791 .driver_data = (kernel_ulong_t ) & mhi_qcom_sdx65_info },
792+ /* Telit FN990B40 (sdx72) */
793+ { PCI_DEVICE_SUB (PCI_VENDOR_ID_QCOM , 0x0309 , 0x1c5d , 0x201a ),
794+ .driver_data = (kernel_ulong_t ) & mhi_telit_fn990b40_info },
743795 { PCI_DEVICE (PCI_VENDOR_ID_QCOM , 0x0309 ),
744796 .driver_data = (kernel_ulong_t ) & mhi_qcom_sdx75_info },
745797 { PCI_DEVICE (PCI_VENDOR_ID_QUECTEL , 0x1001 ), /* EM120R-GL (sdx24) */
0 commit comments