aboutsummaryrefslogtreecommitdiff
path: root/plugins/qcom-soc/77-mm-qcom-soc.rules
blob: 772f498cb2699a572c33f7544b144c69c83918d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# do not edit this file, it will be overwritten on update

ACTION!="add|change|move|bind", GOTO="mm_qcom_soc_end"

# Process only known net and rpmsg ports
SUBSYSTEM=="net",   DRIVERS=="bam-dmux",      GOTO="mm_qcom_soc_process"
SUBSYSTEM=="rpmsg", DRIVERS=="qcom-q6v5-mss", GOTO="mm_qcom_soc_process"
GOTO="mm_qcom_soc_end"

LABEL="mm_qcom_soc_process"

#
# Add a common physdev UID to all ports in the Qualcomm SoC, so that they
# are all bound together to the same modem object.
#
# The MSM8916, MSM8974, .... Qualcomm SoCs use the combination of RPMSG
# based control ports plus BAM-DMUX based network ports.
#
ENV{ID_MM_PHYSDEV_UID}="qcom-soc"

# port type hints for the rpmsgexport-ed ports
SUBSYSTEM=="rpmsg", ATTR{name}=="DATA5_CNTL",  ENV{ID_MM_PORT_TYPE_QMI}="1"
SUBSYSTEM=="rpmsg", ATTR{name}=="DATA6_CNTL",  ENV{ID_MM_PORT_TYPE_QMI}="1"
SUBSYSTEM=="rpmsg", ATTR{name}=="DATA7_CNTL",  ENV{ID_MM_PORT_TYPE_QMI}="1"
SUBSYSTEM=="rpmsg", ATTR{name}=="DATA8_CNTL",  ENV{ID_MM_PORT_TYPE_QMI}="1"
SUBSYSTEM=="rpmsg", ATTR{name}=="DATA9_CNTL",  ENV{ID_MM_PORT_TYPE_QMI}="1"
SUBSYSTEM=="rpmsg", ATTR{name}=="DATA12_CNTL", ENV{ID_MM_PORT_TYPE_QMI}="1"
SUBSYSTEM=="rpmsg", ATTR{name}=="DATA13_CNTL", ENV{ID_MM_PORT_TYPE_QMI}="1"
SUBSYSTEM=="rpmsg", ATTR{name}=="DATA14_CNTL", ENV{ID_MM_PORT_TYPE_QMI}="1"
SUBSYSTEM=="rpmsg", ATTR{name}=="DATA15_CNTL", ENV{ID_MM_PORT_TYPE_QMI}="1"
SUBSYSTEM=="rpmsg", ATTR{name}=="DATA16_CNTL", ENV{ID_MM_PORT_TYPE_QMI}="1"
SUBSYSTEM=="rpmsg", ATTR{name}=="DATA1",       ENV{ID_MM_PORT_TYPE_AT_SECONDARY}="1"
SUBSYSTEM=="rpmsg", ATTR{name}=="DATA2",       ENV{ID_MM_PORT_TYPE_AT_SECONDARY}="1"
SUBSYSTEM=="rpmsg", ATTR{name}=="DATA3",       ENV{ID_MM_PORT_TYPE_AT_SECONDARY}="1"
SUBSYSTEM=="rpmsg", ATTR{name}=="DATA4",       ENV{ID_MM_PORT_TYPE_AT_SECONDARY}="1"

# ignore every other port without explicit hints
SUBSYSTEM=="rpmsg", ENV{ID_MM_PORT_TYPE_QMI}!="1", ENV{ID_MM_PORT_TYPE_AT_SECONDARY}!="1", ENV{ID_MM_PORT_IGNORE}="1"

# explicitly ignore bam-dmux network ports like rmnet_usb0
KERNEL=="rmnet_usb[0-9]*", ENV{ID_MM_PORT_IGNORE}="1"

# flag all rpmsg ports under this plugin as candidate
KERNEL=="rpmsg[0-9]*", SUBSYSTEM=="rpmsg", ENV{ID_MM_CANDIDATE}="1"

LABEL="mm_qcom_soc_end"