xref: /OK3568_Linux_fs/kernel/Documentation/pcmcia/driver.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun=============
2*4882a593SmuzhiyunPCMCIA Driver
3*4882a593Smuzhiyun=============
4*4882a593Smuzhiyun
5*4882a593Smuzhiyunsysfs
6*4882a593Smuzhiyun-----
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunNew PCMCIA IDs may be added to a device driver pcmcia_device_id table at
9*4882a593Smuzhiyunruntime as shown below::
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun  echo "match_flags manf_id card_id func_id function device_no \
12*4882a593Smuzhiyun  prod_id_hash[0] prod_id_hash[1] prod_id_hash[2] prod_id_hash[3]" > \
13*4882a593Smuzhiyun  /sys/bus/pcmcia/drivers/{driver}/new_id
14*4882a593Smuzhiyun
15*4882a593SmuzhiyunAll fields are passed in as hexadecimal values (no leading 0x).
16*4882a593SmuzhiyunThe meaning is described in the PCMCIA specification, the match_flags is
17*4882a593Smuzhiyuna bitwise or-ed combination from PCMCIA_DEV_ID_MATCH_* constants
18*4882a593Smuzhiyundefined in include/linux/mod_devicetable.h.
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunOnce added, the driver probe routine will be invoked for any unclaimed
21*4882a593SmuzhiyunPCMCIA device listed in its (newly updated) pcmcia_device_id list.
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunA common use-case is to add a new device according to the manufacturer ID
24*4882a593Smuzhiyunand the card ID (form the manf_id and card_id file in the device tree).
25*4882a593SmuzhiyunFor this, just use::
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun  echo "0x3 manf_id card_id 0 0 0 0 0 0 0" > \
28*4882a593Smuzhiyun    /sys/bus/pcmcia/drivers/{driver}/new_id
29*4882a593Smuzhiyun
30*4882a593Smuzhiyunafter loading the driver.
31