| 1 | Parameters for modprobe and insmod |
|---|
| 2 | ================================== |
|---|
| 3 | ================================== |
|---|
| 4 | SUMMARY |
|---|
| 5 | |
|---|
| 6 | [modprobe,insmod] module {parameter...} |
|---|
| 7 | Parameters: |
|---|
| 8 | force=bus,address{,bus,address} |
|---|
| 9 | force_addr=address{,address} |
|---|
| 10 | force_[chipname]=bus,address{,bus,address} |
|---|
| 11 | force_subclients=bus,caddr,saddr,saddr |
|---|
| 12 | ignore=bus,address{,bus,address} |
|---|
| 13 | ignore_range=bus,start,end{,bus,start,end} |
|---|
| 14 | probe=bus,address{,bus,address} |
|---|
| 15 | probe_range=bus,start,end{,bus,start,end} |
|---|
| 16 | init=[0,1] (default 1) |
|---|
| 17 | |
|---|
| 18 | All arguments are in decimal unless prefixed by "0x". |
|---|
| 19 | No spaces are allowed. |
|---|
| 20 | |
|---|
| 21 | ================================== |
|---|
| 22 | OVERVIEW |
|---|
| 23 | |
|---|
| 24 | All chip drivers have a few modprobe module parameters in common. |
|---|
| 25 | (Insmod can also be used, but we recommend modprobe so that |
|---|
| 26 | other required modules are automatically loaded.) These |
|---|
| 27 | parameters can be used when a module is inserted, to give some additional |
|---|
| 28 | information about how it should function. In this case, they tell where |
|---|
| 29 | the module should look for what chips. Usually, you don't need them, and |
|---|
| 30 | if you do, you are often told by sensors-detect which ones you need. |
|---|
| 31 | |
|---|
| 32 | If a module doesn't load with no parameters, you may need to |
|---|
| 33 | add parameters. Check 'dmesg' for clues to what went wrong. |
|---|
| 34 | |
|---|
| 35 | |
|---|
| 36 | BUS NUMBERING |
|---|
| 37 | ------------- |
|---|
| 38 | I2C/SMBus adapters are numbered in the order they are inserted. If you want |
|---|
| 39 | to know what number an adapter has, please make sure module `i2c-proc' is |
|---|
| 40 | inserted, and look at file /proc/bus/i2c. The ISA bus always has the |
|---|
| 41 | symbolic number 9191 (`I' is the ninth letter of the alphabet, `S' the |
|---|
| 42 | nineteenth and `A' the first). Do not use the ISA Bus number from |
|---|
| 43 | /proc/bus/i2c. If you want 'any I2C bus', use '-1' (or 65535). |
|---|
| 44 | So to summarize: |
|---|
| 45 | -1 Any Bus |
|---|
| 46 | 0-15 Specific I2C Bus |
|---|
| 47 | 9191 ISA BUS |
|---|
| 48 | |
|---|
| 49 | |
|---|
| 50 | ADDRESS NUMBERING |
|---|
| 51 | ----------------- |
|---|
| 52 | Each adapter has a number of addresses on I2C/SMBus adapters and/or the |
|---|
| 53 | ISA bus that are always scanned if no modprobe parameters are given. The |
|---|
| 54 | parameters below override those addresses that are scanned by default. |
|---|
| 55 | |
|---|
| 56 | All modprobe parameters described below take lists of positive integers |
|---|
| 57 | (unsigned, in the range of 0 to 65535) as their arguments. Integers |
|---|
| 58 | are separated by comma's, and may be given as ordinary decimal numbers, |
|---|
| 59 | as octal numbers (by starting them with a `0') or as hexadecimal numbers |
|---|
| 60 | (by starting them with a `0x'). More information can be found by |
|---|
| 61 | entering `man modprobe' or `man insmod'. |
|---|
| 62 | So to summarize: |
|---|
| 63 | 0x00 - 0x7f Valid I2C Addresses |
|---|
| 64 | 0x0000 - 0xffff Valid ISA Bus Addresses |
|---|
| 65 | |
|---|
| 66 | |
|---|
| 67 | ================================== |
|---|
| 68 | PARAMETER DETAILS |
|---|
| 69 | |
|---|
| 70 | `force', `force_*', `ignore' and `probe' parameters take pairs of numbers. |
|---|
| 71 | Each first (odd) number is a bus number, each second (even) number is |
|---|
| 72 | an (I2C or ISA) address. |
|---|
| 73 | |
|---|
| 74 | `ignore_range' and `probe_range' parameters take triples of numbers. |
|---|
| 75 | Each first number is a bus number, each second number is the start address |
|---|
| 76 | of a range, and each third number is the end address of a range. Ranges |
|---|
| 77 | are always inclusive. |
|---|
| 78 | |
|---|
| 79 | `probe' and `probe_range' parameters tell the module to scan additional |
|---|
| 80 | addresses for a specific bus. These are treated just as the ordinary |
|---|
| 81 | addresses scanned. This is useful for some chips that can be anywhere; |
|---|
| 82 | to keep loading time (and false detections) down, only the most common |
|---|
| 83 | addresses are scanned by default. |
|---|
| 84 | |
|---|
| 85 | `ignore' and `ignore_range' parameters tell the module not to scan |
|---|
| 86 | specific addresses. They overrule the default addresses and any |
|---|
| 87 | addresses specified by `probe' and `probe_range' statements. |
|---|
| 88 | |
|---|
| 89 | The `force' parameter tells the module a supported chip is found at |
|---|
| 90 | a specific address. It overrules all previously mentioned parameters. |
|---|
| 91 | Sometimes, a chip can be in a specific internal state that makes |
|---|
| 92 | detection impossible. If you specify it with the `force' parameter, |
|---|
| 93 | it is first put into a recognizable state. Also, some detection routines |
|---|
| 94 | are skipped. If the module supports several chips, it will still try |
|---|
| 95 | to determine what chip is found on that address. If it can't determine |
|---|
| 96 | this, the address will still not be used. |
|---|
| 97 | |
|---|
| 98 | There is a `force_*' parameter for each type of chip supported by a |
|---|
| 99 | module. This is the strongest statement possible - it says that a |
|---|
| 100 | specific type of chip is found on a specific address, and the module |
|---|
| 101 | will skip all detection and recognition routines. This can lead to |
|---|
| 102 | very strange results... |
|---|
| 103 | |
|---|
| 104 | `force_addr' is a parameter used for PCI sensor adapters. |
|---|
| 105 | It is used to program the base address of the sensor registers. |
|---|
| 106 | This is required if the BIOS does not initialize the base address. |
|---|
| 107 | |
|---|
| 108 | `force_subclients' is used to force the i2c addresses for subclients of |
|---|
| 109 | a certain chip. Typical usage is `force_subclients=0,0x2d,0x4a,0x4b' |
|---|
| 110 | to force the subclients of chip 0x2d on bus 0 to i2c addresses |
|---|
| 111 | 0x4a and 0x4b. |
|---|
| 112 | This parameter is currently supported only by the w83781d driver |
|---|
| 113 | and is useful for certain Tyan boards. |
|---|
| 114 | |
|---|
| 115 | `init' is used to tell a driver to bypass initializing a chip. |
|---|
| 116 | This may be necessary if the BIOS has initialized the chip a certain way |
|---|
| 117 | and the driver should not overwrite that initialization. |
|---|
| 118 | It is also useful if normal initialization crashes the system. |
|---|
| 119 | The default is 1, so the only useful value is `init=0'. |
|---|
| 120 | This parameter is currently supported only by the w83781d driver. |
|---|
| 121 | |
|---|
| 122 | ================================== |
|---|
| 123 | EXAMPLE |
|---|
| 124 | |
|---|
| 125 | # ISA address 0x390 contains a LM79 |
|---|
| 126 | # Scan all I2C addresses (from 0 to 0x7f) for all I2C adapters |
|---|
| 127 | # But skip address 0x2d on adapter 0, and address 0x20 on adapter 1 |
|---|
| 128 | |
|---|
| 129 | modprobe lm78 force_lm79=9191,0x390 ignore=0,0x2d,1,0x20 probe_range=-1,0,0x7f |
|---|