diff options
Diffstat (limited to 'Documentation')
28 files changed, 1063 insertions, 150 deletions
diff --git a/Documentation/ABI/testing/sysfs-bus-mei b/Documentation/ABI/testing/sysfs-bus-mei new file mode 100644 index 000000000000..2066f0bbd453 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-bus-mei | |||
@@ -0,0 +1,7 @@ | |||
1 | What: /sys/bus/mei/devices/.../modalias | ||
2 | Date: March 2013 | ||
3 | KernelVersion: 3.10 | ||
4 | Contact: Samuel Ortiz <sameo@linux.intel.com> | ||
5 | linux-mei@linux.intel.com | ||
6 | Description: Stores the same MODALIAS value emitted by uevent | ||
7 | Format: mei:<mei device name> | ||
diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu index 9c978dcae07d..2447698aed41 100644 --- a/Documentation/ABI/testing/sysfs-devices-system-cpu +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu | |||
@@ -173,3 +173,15 @@ Description: Processor frequency boosting control | |||
173 | Boosting allows the CPU and the firmware to run at a frequency | 173 | Boosting allows the CPU and the firmware to run at a frequency |
174 | beyound it's nominal limit. | 174 | beyound it's nominal limit. |
175 | More details can be found in Documentation/cpu-freq/boost.txt | 175 | More details can be found in Documentation/cpu-freq/boost.txt |
176 | |||
177 | |||
178 | What: /sys/devices/system/cpu/cpu#/crash_notes | ||
179 | /sys/devices/system/cpu/cpu#/crash_notes_size | ||
180 | Date: April 2013 | ||
181 | Contact: kexec@lists.infradead.org | ||
182 | Description: address and size of the percpu note. | ||
183 | |||
184 | crash_notes: the physical address of the memory that holds the | ||
185 | note of cpu#. | ||
186 | |||
187 | crash_notes_size: size of the note of cpu#. | ||
diff --git a/Documentation/devicetree/bindings/arm/atmel-adc.txt b/Documentation/devicetree/bindings/arm/atmel-adc.txt index c63097d6afeb..16769d9cedd6 100644 --- a/Documentation/devicetree/bindings/arm/atmel-adc.txt +++ b/Documentation/devicetree/bindings/arm/atmel-adc.txt | |||
@@ -14,9 +14,19 @@ Required properties: | |||
14 | - atmel,adc-status-register: Offset of the Interrupt Status Register | 14 | - atmel,adc-status-register: Offset of the Interrupt Status Register |
15 | - atmel,adc-trigger-register: Offset of the Trigger Register | 15 | - atmel,adc-trigger-register: Offset of the Trigger Register |
16 | - atmel,adc-vref: Reference voltage in millivolts for the conversions | 16 | - atmel,adc-vref: Reference voltage in millivolts for the conversions |
17 | - atmel,adc-res: List of resolution in bits supported by the ADC. List size | ||
18 | must be two at least. | ||
19 | - atmel,adc-res-names: Contains one identifier string for each resolution | ||
20 | in atmel,adc-res property. "lowres" and "highres" | ||
21 | identifiers are required. | ||
17 | 22 | ||
18 | Optional properties: | 23 | Optional properties: |
19 | - atmel,adc-use-external: Boolean to enable of external triggers | 24 | - atmel,adc-use-external: Boolean to enable of external triggers |
25 | - atmel,adc-use-res: String corresponding to an identifier from | ||
26 | atmel,adc-res-names property. If not specified, the highest | ||
27 | resolution will be used. | ||
28 | - atmel,adc-sleep-mode: Boolean to enable sleep mode when no conversion | ||
29 | - atmel,adc-sample-hold-time: Sample and Hold Time in microseconds | ||
20 | 30 | ||
21 | Optional trigger Nodes: | 31 | Optional trigger Nodes: |
22 | - Required properties: | 32 | - Required properties: |
@@ -40,6 +50,9 @@ adc0: adc@fffb0000 { | |||
40 | atmel,adc-trigger-register = <0x08>; | 50 | atmel,adc-trigger-register = <0x08>; |
41 | atmel,adc-use-external; | 51 | atmel,adc-use-external; |
42 | atmel,adc-vref = <3300>; | 52 | atmel,adc-vref = <3300>; |
53 | atmel,adc-res = <8 10>; | ||
54 | atmel,adc-res-names = "lowres", "highres"; | ||
55 | atmel,adc-use-res = "lowres"; | ||
43 | 56 | ||
44 | trigger@0 { | 57 | trigger@0 { |
45 | trigger-name = "external-rising"; | 58 | trigger-name = "external-rising"; |
diff --git a/Documentation/devicetree/bindings/arm/msm/ssbi.txt b/Documentation/devicetree/bindings/arm/msm/ssbi.txt new file mode 100644 index 000000000000..54fd5ced3401 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/msm/ssbi.txt | |||
@@ -0,0 +1,18 @@ | |||
1 | * Qualcomm SSBI | ||
2 | |||
3 | Some Qualcomm MSM devices contain a point-to-point serial bus used to | ||
4 | communicate with a limited range of devices (mostly power management | ||
5 | chips). | ||
6 | |||
7 | These require the following properties: | ||
8 | |||
9 | - compatible: "qcom,ssbi" | ||
10 | |||
11 | - qcom,controller-type | ||
12 | indicates the SSBI bus variant the controller should use to talk | ||
13 | with the slave device. This should be one of "ssbi", "ssbi2", or | ||
14 | "pmic-arbiter". The type chosen is determined by the attached | ||
15 | slave. | ||
16 | |||
17 | The slave device should be the single child node of the ssbi device | ||
18 | with a compatible field. | ||
diff --git a/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt b/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt new file mode 100644 index 000000000000..47ada1dff216 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt | |||
@@ -0,0 +1,60 @@ | |||
1 | Samsung Exynos Analog to Digital Converter bindings | ||
2 | |||
3 | The devicetree bindings are for the new ADC driver written for | ||
4 | Exynos4 and upward SoCs from Samsung. | ||
5 | |||
6 | New driver handles the following | ||
7 | 1. Supports ADC IF found on EXYNOS4412/EXYNOS5250 | ||
8 | and future SoCs from Samsung | ||
9 | 2. Add ADC driver under iio/adc framework | ||
10 | 3. Also adds the Documentation for device tree bindings | ||
11 | |||
12 | Required properties: | ||
13 | - compatible: Must be "samsung,exynos-adc-v1" | ||
14 | for exynos4412/5250 controllers. | ||
15 | Must be "samsung,exynos-adc-v2" for | ||
16 | future controllers. | ||
17 | - reg: Contains ADC register address range (base address and | ||
18 | length) and the address of the phy enable register. | ||
19 | - interrupts: Contains the interrupt information for the timer. The | ||
20 | format is being dependent on which interrupt controller | ||
21 | the Samsung device uses. | ||
22 | - #io-channel-cells = <1>; As ADC has multiple outputs | ||
23 | - clocks From common clock binding: handle to adc clock. | ||
24 | - clock-names From common clock binding: Shall be "adc". | ||
25 | - vdd-supply VDD input supply. | ||
26 | |||
27 | Note: child nodes can be added for auto probing from device tree. | ||
28 | |||
29 | Example: adding device info in dtsi file | ||
30 | |||
31 | adc: adc@12D10000 { | ||
32 | compatible = "samsung,exynos-adc-v1"; | ||
33 | reg = <0x12D10000 0x100>, <0x10040718 0x4>; | ||
34 | interrupts = <0 106 0>; | ||
35 | #io-channel-cells = <1>; | ||
36 | io-channel-ranges; | ||
37 | |||
38 | clocks = <&clock 303>; | ||
39 | clock-names = "adc"; | ||
40 | |||
41 | vdd-supply = <&buck5_reg>; | ||
42 | }; | ||
43 | |||
44 | |||
45 | Example: Adding child nodes in dts file | ||
46 | |||
47 | adc@12D10000 { | ||
48 | |||
49 | /* NTC thermistor is a hwmon device */ | ||
50 | ncp15wb473@0 { | ||
51 | compatible = "ntc,ncp15wb473"; | ||
52 | pullup-uV = <1800000>; | ||
53 | pullup-ohm = <47000>; | ||
54 | pulldown-ohm = <0>; | ||
55 | io-channels = <&adc 4>; | ||
56 | }; | ||
57 | }; | ||
58 | |||
59 | Note: Does not apply to ADC driver under arch/arm/plat-samsung/ | ||
60 | Note: The child node can be added under the adc node or separately. | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio.txt b/Documentation/devicetree/bindings/gpio/gpio.txt index a33628759d36..d933af370697 100644 --- a/Documentation/devicetree/bindings/gpio/gpio.txt +++ b/Documentation/devicetree/bindings/gpio/gpio.txt | |||
@@ -98,7 +98,7 @@ announce the pinrange to the pin ctrl subsystem. For example, | |||
98 | compatible = "fsl,qe-pario-bank-e", "fsl,qe-pario-bank"; | 98 | compatible = "fsl,qe-pario-bank-e", "fsl,qe-pario-bank"; |
99 | reg = <0x1460 0x18>; | 99 | reg = <0x1460 0x18>; |
100 | gpio-controller; | 100 | gpio-controller; |
101 | gpio-ranges = <&pinctrl1 20 10>, <&pinctrl2 50 20>; | 101 | gpio-ranges = <&pinctrl1 0 20 10>, <&pinctrl2 10 50 20>; |
102 | 102 | ||
103 | } | 103 | } |
104 | 104 | ||
@@ -107,8 +107,8 @@ where, | |||
107 | 107 | ||
108 | Next values specify the base pin and number of pins for the range | 108 | Next values specify the base pin and number of pins for the range |
109 | handled by 'qe_pio_e' gpio. In the given example from base pin 20 to | 109 | handled by 'qe_pio_e' gpio. In the given example from base pin 20 to |
110 | pin 29 under pinctrl1 and pin 50 to pin 69 under pinctrl2 is handled | 110 | pin 29 under pinctrl1 with gpio offset 0 and pin 50 to pin 69 under |
111 | by this gpio controller. | 111 | pinctrl2 with gpio offset 10 is handled by this gpio controller. |
112 | 112 | ||
113 | The pinctrl node must have "#gpio-range-cells" property to show number of | 113 | The pinctrl node must have "#gpio-range-cells" property to show number of |
114 | arguments to pass with phandle from gpio controllers node. | 114 | arguments to pass with phandle from gpio controllers node. |
diff --git a/Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt b/Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt new file mode 100644 index 000000000000..c6f66674f19c --- /dev/null +++ b/Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt | |||
@@ -0,0 +1,29 @@ | |||
1 | NTC Thermistor hwmon sensors | ||
2 | ------------------------------- | ||
3 | |||
4 | Requires node properties: | ||
5 | - "compatible" value : one of | ||
6 | "ntc,ncp15wb473" | ||
7 | "ntc,ncp18wb473" | ||
8 | "ntc,ncp21wb473" | ||
9 | "ntc,ncp03wb473" | ||
10 | "ntc,ncp15wl333" | ||
11 | - "pullup-uv" Pull up voltage in micro volts | ||
12 | - "pullup-ohm" Pull up resistor value in ohms | ||
13 | - "pulldown-ohm" Pull down resistor value in ohms | ||
14 | - "connected-positive" Always ON, If not specified. | ||
15 | Status change is possible. | ||
16 | - "io-channels" Channel node of ADC to be used for | ||
17 | conversion. | ||
18 | |||
19 | Read more about iio bindings at | ||
20 | Documentation/devicetree/bindings/iio/iio-bindings.txt | ||
21 | |||
22 | Example: | ||
23 | ncp15wb473@0 { | ||
24 | compatible = "ntc,ncp15wb473"; | ||
25 | pullup-uv = <1800000>; | ||
26 | pullup-ohm = <47000>; | ||
27 | pulldown-ohm = <0>; | ||
28 | io-channels = <&adc 3>; | ||
29 | }; | ||
diff --git a/Documentation/devicetree/bindings/iio/iio-bindings.txt b/Documentation/devicetree/bindings/iio/iio-bindings.txt new file mode 100644 index 000000000000..0b447d9ad196 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/iio-bindings.txt | |||
@@ -0,0 +1,97 @@ | |||
1 | This binding is derived from clock bindings, and based on suggestions | ||
2 | from Lars-Peter Clausen [1]. | ||
3 | |||
4 | Sources of IIO channels can be represented by any node in the device | ||
5 | tree. Those nodes are designated as IIO providers. IIO consumer | ||
6 | nodes use a phandle and IIO specifier pair to connect IIO provider | ||
7 | outputs to IIO inputs. Similar to the gpio specifiers, an IIO | ||
8 | specifier is an array of one or more cells identifying the IIO | ||
9 | output on a device. The length of an IIO specifier is defined by the | ||
10 | value of a #io-channel-cells property in the IIO provider node. | ||
11 | |||
12 | [1] http://marc.info/?l=linux-iio&m=135902119507483&w=2 | ||
13 | |||
14 | ==IIO providers== | ||
15 | |||
16 | Required properties: | ||
17 | #io-channel-cells: Number of cells in an IIO specifier; Typically 0 for nodes | ||
18 | with a single IIO output and 1 for nodes with multiple | ||
19 | IIO outputs. | ||
20 | |||
21 | Example for a simple configuration with no trigger: | ||
22 | |||
23 | adc: voltage-sensor@35 { | ||
24 | compatible = "maxim,max1139"; | ||
25 | reg = <0x35>; | ||
26 | #io-channel-cells = <1>; | ||
27 | }; | ||
28 | |||
29 | Example for a configuration with trigger: | ||
30 | |||
31 | adc@35 { | ||
32 | compatible = "some-vendor,some-adc"; | ||
33 | reg = <0x35>; | ||
34 | |||
35 | adc1: iio-device@0 { | ||
36 | #io-channel-cells = <1>; | ||
37 | /* other properties */ | ||
38 | }; | ||
39 | adc2: iio-device@1 { | ||
40 | #io-channel-cells = <1>; | ||
41 | /* other properties */ | ||
42 | }; | ||
43 | }; | ||
44 | |||
45 | ==IIO consumers== | ||
46 | |||
47 | Required properties: | ||
48 | io-channels: List of phandle and IIO specifier pairs, one pair | ||
49 | for each IIO input to the device. Note: if the | ||
50 | IIO provider specifies '0' for #io-channel-cells, | ||
51 | then only the phandle portion of the pair will appear. | ||
52 | |||
53 | Optional properties: | ||
54 | io-channel-names: | ||
55 | List of IIO input name strings sorted in the same | ||
56 | order as the io-channels property. Consumers drivers | ||
57 | will use io-channel-names to match IIO input names | ||
58 | with IIO specifiers. | ||
59 | io-channel-ranges: | ||
60 | Empty property indicating that child nodes can inherit named | ||
61 | IIO channels from this node. Useful for bus nodes to provide | ||
62 | and IIO channel to their children. | ||
63 | |||
64 | For example: | ||
65 | |||
66 | device { | ||
67 | io-channels = <&adc 1>, <&ref 0>; | ||
68 | io-channel-names = "vcc", "vdd"; | ||
69 | }; | ||
70 | |||
71 | This represents a device with two IIO inputs, named "vcc" and "vdd". | ||
72 | The vcc channel is connected to output 1 of the &adc device, and the | ||
73 | vdd channel is connected to output 0 of the &ref device. | ||
74 | |||
75 | ==Example== | ||
76 | |||
77 | adc: max1139@35 { | ||
78 | compatible = "maxim,max1139"; | ||
79 | reg = <0x35>; | ||
80 | #io-channel-cells = <1>; | ||
81 | }; | ||
82 | |||
83 | ... | ||
84 | |||
85 | iio_hwmon { | ||
86 | compatible = "iio-hwmon"; | ||
87 | io-channels = <&adc 0>, <&adc 1>, <&adc 2>, | ||
88 | <&adc 3>, <&adc 4>, <&adc 5>, | ||
89 | <&adc 6>, <&adc 7>, <&adc 8>, | ||
90 | <&adc 9>; | ||
91 | }; | ||
92 | |||
93 | some_consumer { | ||
94 | compatible = "some-consumer"; | ||
95 | io-channels = <&adc 10>, <&adc 11>; | ||
96 | io-channel-names = "adc1", "adc2"; | ||
97 | }; | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt index 2c81e45f1374..08f0c3d01575 100644 --- a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt | |||
@@ -1,7 +1,9 @@ | |||
1 | One-register-per-pin type device tree based pinctrl driver | 1 | One-register-per-pin type device tree based pinctrl driver |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : "pinctrl-single" | 4 | - compatible : "pinctrl-single" or "pinconf-single". |
5 | "pinctrl-single" means that pinconf isn't supported. | ||
6 | "pinconf-single" means that generic pinconf is supported. | ||
5 | 7 | ||
6 | - reg : offset and length of the register set for the mux registers | 8 | - reg : offset and length of the register set for the mux registers |
7 | 9 | ||
@@ -14,9 +16,61 @@ Optional properties: | |||
14 | - pinctrl-single,function-off : function off mode for disabled state if | 16 | - pinctrl-single,function-off : function off mode for disabled state if |
15 | available and same for all registers; if not specified, disabling of | 17 | available and same for all registers; if not specified, disabling of |
16 | pin functions is ignored | 18 | pin functions is ignored |
19 | |||
17 | - pinctrl-single,bit-per-mux : boolean to indicate that one register controls | 20 | - pinctrl-single,bit-per-mux : boolean to indicate that one register controls |
18 | more than one pin | 21 | more than one pin |
19 | 22 | ||
23 | - pinctrl-single,drive-strength : array of value that are used to configure | ||
24 | drive strength in the pinmux register. They're value of drive strength | ||
25 | current and drive strength mask. | ||
26 | |||
27 | /* drive strength current, mask */ | ||
28 | pinctrl-single,power-source = <0x30 0xf0>; | ||
29 | |||
30 | - pinctrl-single,bias-pullup : array of value that are used to configure the | ||
31 | input bias pullup in the pinmux register. | ||
32 | |||
33 | /* input, enabled pullup bits, disabled pullup bits, mask */ | ||
34 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
35 | |||
36 | - pinctrl-single,bias-pulldown : array of value that are used to configure the | ||
37 | input bias pulldown in the pinmux register. | ||
38 | |||
39 | /* input, enabled pulldown bits, disabled pulldown bits, mask */ | ||
40 | pinctrl-single,bias-pulldown = <2 2 0 2>; | ||
41 | |||
42 | * Two bits to control input bias pullup and pulldown: User should use | ||
43 | pinctrl-single,bias-pullup & pinctrl-single,bias-pulldown. One bit means | ||
44 | pullup, and the other one bit means pulldown. | ||
45 | * Three bits to control input bias enable, pullup and pulldown. User should | ||
46 | use pinctrl-single,bias-pullup & pinctrl-single,bias-pulldown. Input bias | ||
47 | enable bit should be included in pullup or pulldown bits. | ||
48 | * Although driver could set PIN_CONFIG_BIAS_DISABLE, there's no property as | ||
49 | pinctrl-single,bias-disable. Because pinctrl single driver could implement | ||
50 | it by calling pulldown, pullup disabled. | ||
51 | |||
52 | - pinctrl-single,input-schmitt : array of value that are used to configure | ||
53 | input schmitt in the pinmux register. In some silicons, there're two input | ||
54 | schmitt value (rising-edge & falling-edge) in the pinmux register. | ||
55 | |||
56 | /* input schmitt value, mask */ | ||
57 | pinctrl-single,input-schmitt = <0x30 0x70>; | ||
58 | |||
59 | - pinctrl-single,input-schmitt-enable : array of value that are used to | ||
60 | configure input schmitt enable or disable in the pinmux register. | ||
61 | |||
62 | /* input, enable bits, disable bits, mask */ | ||
63 | pinctrl-single,input-schmitt-enable = <0x30 0x40 0 0x70>; | ||
64 | |||
65 | - pinctrl-single,gpio-range : list of value that are used to configure a GPIO | ||
66 | range. They're value of subnode phandle, pin base in pinctrl device, pin | ||
67 | number in this range, GPIO function value of this GPIO range. | ||
68 | The number of parameters is depend on #pinctrl-single,gpio-range-cells | ||
69 | property. | ||
70 | |||
71 | /* pin base, nr pins & gpio function */ | ||
72 | pinctrl-single,gpio-range = <&range 0 3 0 &range 3 9 1>; | ||
73 | |||
20 | This driver assumes that there is only one register for each pin (unless the | 74 | This driver assumes that there is only one register for each pin (unless the |
21 | pinctrl-single,bit-per-mux is set), and uses the common pinctrl bindings as | 75 | pinctrl-single,bit-per-mux is set), and uses the common pinctrl bindings as |
22 | specified in the pinctrl-bindings.txt document in this directory. | 76 | specified in the pinctrl-bindings.txt document in this directory. |
@@ -42,6 +96,20 @@ Where 0xdc is the offset from the pinctrl register base address for the | |||
42 | device pinctrl register, 0x18 is the desired value, and 0xff is the sub mask to | 96 | device pinctrl register, 0x18 is the desired value, and 0xff is the sub mask to |
43 | be used when applying this change to the register. | 97 | be used when applying this change to the register. |
44 | 98 | ||
99 | |||
100 | Optional sub-node: In case some pins could be configured as GPIO in the pinmux | ||
101 | register, those pins could be defined as a GPIO range. This sub-node is required | ||
102 | by pinctrl-single,gpio-range property. | ||
103 | |||
104 | Required properties in sub-node: | ||
105 | - #pinctrl-single,gpio-range-cells : the number of parameters after phandle in | ||
106 | pinctrl-single,gpio-range property. | ||
107 | |||
108 | range: gpio-range { | ||
109 | #pinctrl-single,gpio-range-cells = <3>; | ||
110 | }; | ||
111 | |||
112 | |||
45 | Example: | 113 | Example: |
46 | 114 | ||
47 | /* SoC common file */ | 115 | /* SoC common file */ |
@@ -58,7 +126,7 @@ pmx_core: pinmux@4a100040 { | |||
58 | 126 | ||
59 | /* second controller instance for pins in wkup domain */ | 127 | /* second controller instance for pins in wkup domain */ |
60 | pmx_wkup: pinmux@4a31e040 { | 128 | pmx_wkup: pinmux@4a31e040 { |
61 | compatible = "pinctrl-single; | 129 | compatible = "pinctrl-single"; |
62 | reg = <0x4a31e040 0x0038>; | 130 | reg = <0x4a31e040 0x0038>; |
63 | #address-cells = <1>; | 131 | #address-cells = <1>; |
64 | #size-cells = <0>; | 132 | #size-cells = <0>; |
@@ -76,6 +144,29 @@ control_devconf0: pinmux@48002274 { | |||
76 | pinctrl-single,function-mask = <0x5F>; | 144 | pinctrl-single,function-mask = <0x5F>; |
77 | }; | 145 | }; |
78 | 146 | ||
147 | /* third controller instance for pins in gpio domain */ | ||
148 | pmx_gpio: pinmux@d401e000 { | ||
149 | compatible = "pinconf-single"; | ||
150 | reg = <0xd401e000 0x0330>; | ||
151 | #address-cells = <1>; | ||
152 | #size-cells = <1>; | ||
153 | ranges; | ||
154 | |||
155 | pinctrl-single,register-width = <32>; | ||
156 | pinctrl-single,function-mask = <7>; | ||
157 | |||
158 | /* sparse GPIO range could be supported */ | ||
159 | pinctrl-single,gpio-range = <&range 0 3 0 &range 3 9 1 | ||
160 | &range 12 1 0 &range 13 29 1 | ||
161 | &range 43 1 0 &range 44 49 1 | ||
162 | &range 94 1 1 &range 96 2 1>; | ||
163 | |||
164 | range: gpio-range { | ||
165 | #pinctrl-single,gpio-range-cells = <3>; | ||
166 | }; | ||
167 | }; | ||
168 | |||
169 | |||
79 | /* board specific .dts file */ | 170 | /* board specific .dts file */ |
80 | 171 | ||
81 | &pmx_core { | 172 | &pmx_core { |
@@ -96,6 +187,15 @@ control_devconf0: pinmux@48002274 { | |||
96 | >; | 187 | >; |
97 | }; | 188 | }; |
98 | 189 | ||
190 | uart0_pins: pinmux_uart0_pins { | ||
191 | pinctrl-single,pins = < | ||
192 | 0x208 0 /* UART0_RXD (IOCFG138) */ | ||
193 | 0x20c 0 /* UART0_TXD (IOCFG139) */ | ||
194 | >; | ||
195 | pinctrl-single,bias-pulldown = <0 2 2>; | ||
196 | pinctrl-single,bias-pullup = <0 1 1>; | ||
197 | }; | ||
198 | |||
99 | /* map uart2 pins */ | 199 | /* map uart2 pins */ |
100 | uart2_pins: pinmux_uart2_pins { | 200 | uart2_pins: pinmux_uart2_pins { |
101 | pinctrl-single,pins = < | 201 | pinctrl-single,pins = < |
@@ -122,6 +222,11 @@ control_devconf0: pinmux@48002274 { | |||
122 | 222 | ||
123 | }; | 223 | }; |
124 | 224 | ||
225 | &uart1 { | ||
226 | pinctrl-names = "default"; | ||
227 | pinctrl-0 = <&uart0_pins>; | ||
228 | }; | ||
229 | |||
125 | &uart2 { | 230 | &uart2 { |
126 | pinctrl-names = "default"; | 231 | pinctrl-names = "default"; |
127 | pinctrl-0 = <&uart2_pins>; | 232 | pinctrl-0 = <&uart2_pins>; |
diff --git a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt index 4598a47aa0cd..c70fca146e91 100644 --- a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt | |||
@@ -7,6 +7,7 @@ on-chip controllers onto these pads. | |||
7 | 7 | ||
8 | Required Properties: | 8 | Required Properties: |
9 | - compatible: should be one of the following. | 9 | - compatible: should be one of the following. |
10 | - "samsung,s3c64xx-pinctrl": for S3C64xx-compatible pin-controller, | ||
10 | - "samsung,exynos4210-pinctrl": for Exynos4210 compatible pin-controller. | 11 | - "samsung,exynos4210-pinctrl": for Exynos4210 compatible pin-controller. |
11 | - "samsung,exynos4x12-pinctrl": for Exynos4x12 compatible pin-controller. | 12 | - "samsung,exynos4x12-pinctrl": for Exynos4x12 compatible pin-controller. |
12 | - "samsung,exynos5250-pinctrl": for Exynos5250 compatible pin-controller. | 13 | - "samsung,exynos5250-pinctrl": for Exynos5250 compatible pin-controller. |
@@ -105,6 +106,8 @@ B. External Wakeup Interrupts: For supporting external wakeup interrupts, a | |||
105 | 106 | ||
106 | - compatible: identifies the type of the external wakeup interrupt controller | 107 | - compatible: identifies the type of the external wakeup interrupt controller |
107 | The possible values are: | 108 | The possible values are: |
109 | - samsung,s3c64xx-wakeup-eint: represents wakeup interrupt controller | ||
110 | found on Samsung S3C64xx SoCs, | ||
108 | - samsung,exynos4210-wakeup-eint: represents wakeup interrupt controller | 111 | - samsung,exynos4210-wakeup-eint: represents wakeup interrupt controller |
109 | found on Samsung Exynos4210 SoC. | 112 | found on Samsung Exynos4210 SoC. |
110 | - interrupt-parent: phandle of the interrupt parent to which the external | 113 | - interrupt-parent: phandle of the interrupt parent to which the external |
diff --git a/Documentation/devicetree/bindings/staging/dwc2.txt b/Documentation/devicetree/bindings/staging/dwc2.txt new file mode 100644 index 000000000000..1a1b7cfa4845 --- /dev/null +++ b/Documentation/devicetree/bindings/staging/dwc2.txt | |||
@@ -0,0 +1,15 @@ | |||
1 | Platform DesignWare HS OTG USB 2.0 controller | ||
2 | ----------------------------------------------------- | ||
3 | |||
4 | Required properties: | ||
5 | - compatible : "snps,dwc2" | ||
6 | - reg : Should contain 1 register range (address and length) | ||
7 | - interrupts : Should contain 1 interrupt | ||
8 | |||
9 | Example: | ||
10 | |||
11 | usb@101c0000 { | ||
12 | compatible = "ralink,rt3050-usb, snps,dwc2"; | ||
13 | reg = <0x101c0000 40000>; | ||
14 | interrupts = <18>; | ||
15 | }; | ||
diff --git a/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt b/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt index 07654f0338b6..8071ac20d4b3 100644 --- a/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt +++ b/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt | |||
@@ -26,7 +26,7 @@ Required properties: | |||
26 | - crtc: the crtc this display is connected to, see below | 26 | - crtc: the crtc this display is connected to, see below |
27 | Optional properties: | 27 | Optional properties: |
28 | - interface_pix_fmt: How this display is connected to the | 28 | - interface_pix_fmt: How this display is connected to the |
29 | crtc. Currently supported types: "rgb24", "rgb565" | 29 | crtc. Currently supported types: "rgb24", "rgb565", "bgr666" |
30 | - edid: verbatim EDID data block describing attached display. | 30 | - edid: verbatim EDID data block describing attached display. |
31 | - ddc: phandle describing the i2c bus handling the display data | 31 | - ddc: phandle describing the i2c bus handling the display data |
32 | channel | 32 | channel |
diff --git a/Documentation/devicetree/bindings/video/via,vt8500-fb.txt b/Documentation/devicetree/bindings/video/via,vt8500-fb.txt index c870b6478ec8..2871e218a0fb 100644 --- a/Documentation/devicetree/bindings/video/via,vt8500-fb.txt +++ b/Documentation/devicetree/bindings/video/via,vt8500-fb.txt | |||
@@ -5,58 +5,32 @@ Required properties: | |||
5 | - compatible : "via,vt8500-fb" | 5 | - compatible : "via,vt8500-fb" |
6 | - reg : Should contain 1 register ranges(address and length) | 6 | - reg : Should contain 1 register ranges(address and length) |
7 | - interrupts : framebuffer controller interrupt | 7 | - interrupts : framebuffer controller interrupt |
8 | - display: a phandle pointing to the display node | 8 | - bits-per-pixel : bit depth of framebuffer (16 or 32) |
9 | 9 | ||
10 | Required nodes: | 10 | Required subnodes: |
11 | - display: a display node is required to initialize the lcd panel | 11 | - display-timings: see display-timing.txt for information |
12 | This should be in the board dts. | ||
13 | - default-mode: a videomode within the display with timing parameters | ||
14 | as specified below. | ||
15 | 12 | ||
16 | Example: | 13 | Example: |
17 | 14 | ||
18 | fb@d800e400 { | 15 | fb@d8050800 { |
19 | compatible = "via,vt8500-fb"; | 16 | compatible = "via,vt8500-fb"; |
20 | reg = <0xd800e400 0x400>; | 17 | reg = <0xd800e400 0x400>; |
21 | interrupts = <12>; | 18 | interrupts = <12>; |
22 | display = <&display>; | 19 | bits-per-pixel = <16>; |
23 | default-mode = <&mode0>; | ||
24 | }; | ||
25 | |||
26 | VIA VT8500 Display | ||
27 | ----------------------------------------------------- | ||
28 | Required properties (as per of_videomode_helper): | ||
29 | |||
30 | - hactive, vactive: Display resolution | ||
31 | - hfront-porch, hback-porch, hsync-len: Horizontal Display timing parameters | ||
32 | in pixels | ||
33 | vfront-porch, vback-porch, vsync-len: Vertical display timing parameters in | ||
34 | lines | ||
35 | - clock: displayclock in Hz | ||
36 | - bpp: lcd panel bit-depth. | ||
37 | <16> for RGB565, <32> for RGB888 | ||
38 | |||
39 | Optional properties (as per of_videomode_helper): | ||
40 | - width-mm, height-mm: Display dimensions in mm | ||
41 | - hsync-active-high (bool): Hsync pulse is active high | ||
42 | - vsync-active-high (bool): Vsync pulse is active high | ||
43 | - interlaced (bool): This is an interlaced mode | ||
44 | - doublescan (bool): This is a doublescan mode | ||
45 | 20 | ||
46 | Example: | 21 | display-timings { |
47 | display: display@0 { | 22 | native-mode = <&timing0>; |
48 | modes { | 23 | timing0: 800x480 { |
49 | mode0: mode@0 { | 24 | clock-frequency = <0>; /* unused but required */ |
50 | hactive = <800>; | 25 | hactive = <800>; |
51 | vactive = <480>; | 26 | vactive = <480>; |
52 | hback-porch = <88>; | ||
53 | hfront-porch = <40>; | 27 | hfront-porch = <40>; |
28 | hback-porch = <88>; | ||
54 | hsync-len = <0>; | 29 | hsync-len = <0>; |
55 | vback-porch = <32>; | 30 | vback-porch = <32>; |
56 | vfront-porch = <11>; | 31 | vfront-porch = <11>; |
57 | vsync-len = <1>; | 32 | vsync-len = <1>; |
58 | clock = <0>; /* unused but required */ | ||
59 | bpp = <16>; /* non-standard but required */ | ||
60 | }; | 33 | }; |
61 | }; | 34 | }; |
62 | }; | 35 | }; |
36 | |||
diff --git a/Documentation/devicetree/bindings/video/wm,wm8505-fb.txt b/Documentation/devicetree/bindings/video/wm,wm8505-fb.txt index 3d325e1d11ee..0bcadb2840a5 100644 --- a/Documentation/devicetree/bindings/video/wm,wm8505-fb.txt +++ b/Documentation/devicetree/bindings/video/wm,wm8505-fb.txt | |||
@@ -4,20 +4,30 @@ Wondermedia WM8505 Framebuffer | |||
4 | Required properties: | 4 | Required properties: |
5 | - compatible : "wm,wm8505-fb" | 5 | - compatible : "wm,wm8505-fb" |
6 | - reg : Should contain 1 register ranges(address and length) | 6 | - reg : Should contain 1 register ranges(address and length) |
7 | - via,display: a phandle pointing to the display node | 7 | - bits-per-pixel : bit depth of framebuffer (16 or 32) |
8 | 8 | ||
9 | Required nodes: | 9 | Required subnodes: |
10 | - display: a display node is required to initialize the lcd panel | 10 | - display-timings: see display-timing.txt for information |
11 | This should be in the board dts. See definition in | ||
12 | Documentation/devicetree/bindings/video/via,vt8500-fb.txt | ||
13 | - default-mode: a videomode node as specified in | ||
14 | Documentation/devicetree/bindings/video/via,vt8500-fb.txt | ||
15 | 11 | ||
16 | Example: | 12 | Example: |
17 | 13 | ||
18 | fb@d8050800 { | 14 | fb@d8051700 { |
19 | compatible = "wm,wm8505-fb"; | 15 | compatible = "wm,wm8505-fb"; |
20 | reg = <0xd8050800 0x200>; | 16 | reg = <0xd8051700 0x200>; |
21 | display = <&display>; | 17 | bits-per-pixel = <16>; |
22 | default-mode = <&mode0>; | 18 | |
19 | display-timings { | ||
20 | native-mode = <&timing0>; | ||
21 | timing0: 800x480 { | ||
22 | clock-frequency = <0>; /* unused but required */ | ||
23 | hactive = <800>; | ||
24 | vactive = <480>; | ||
25 | hfront-porch = <40>; | ||
26 | hback-porch = <88>; | ||
27 | hsync-len = <0>; | ||
28 | vback-porch = <32>; | ||
29 | vfront-porch = <11>; | ||
30 | vsync-len = <1>; | ||
31 | }; | ||
32 | }; | ||
23 | }; | 33 | }; |
diff --git a/Documentation/hwmon/adt7410 b/Documentation/hwmon/adt7410 index 58150c480e56..9817941e5f19 100644 --- a/Documentation/hwmon/adt7410 +++ b/Documentation/hwmon/adt7410 | |||
@@ -12,29 +12,42 @@ Supported chips: | |||
12 | Addresses scanned: None | 12 | Addresses scanned: None |
13 | Datasheet: Publicly available at the Analog Devices website | 13 | Datasheet: Publicly available at the Analog Devices website |
14 | http://www.analog.com/static/imported-files/data_sheets/ADT7420.pdf | 14 | http://www.analog.com/static/imported-files/data_sheets/ADT7420.pdf |
15 | * Analog Devices ADT7310 | ||
16 | Prefix: 'adt7310' | ||
17 | Addresses scanned: None | ||
18 | Datasheet: Publicly available at the Analog Devices website | ||
19 | http://www.analog.com/static/imported-files/data_sheets/ADT7310.pdf | ||
20 | * Analog Devices ADT7320 | ||
21 | Prefix: 'adt7320' | ||
22 | Addresses scanned: None | ||
23 | Datasheet: Publicly available at the Analog Devices website | ||
24 | http://www.analog.com/static/imported-files/data_sheets/ADT7320.pdf | ||
15 | 25 | ||
16 | Author: Hartmut Knaack <knaack.h@gmx.de> | 26 | Author: Hartmut Knaack <knaack.h@gmx.de> |
17 | 27 | ||
18 | Description | 28 | Description |
19 | ----------- | 29 | ----------- |
20 | 30 | ||
21 | The ADT7410 is a temperature sensor with rated temperature range of -55°C to | 31 | The ADT7310/ADT7410 is a temperature sensor with rated temperature range of |
22 | +150°C. It has a high accuracy of +/-0.5°C and can be operated at a resolution | 32 | -55°C to +150°C. It has a high accuracy of +/-0.5°C and can be operated at a |
23 | of 13 bits (0.0625°C) or 16 bits (0.0078°C). The sensor provides an INT pin to | 33 | resolution of 13 bits (0.0625°C) or 16 bits (0.0078°C). The sensor provides an |
24 | indicate that a minimum or maximum temperature set point has been exceeded, as | 34 | INT pin to indicate that a minimum or maximum temperature set point has been |
25 | well as a critical temperature (CT) pin to indicate that the critical | 35 | exceeded, as well as a critical temperature (CT) pin to indicate that the |
26 | temperature set point has been exceeded. Both pins can be set up with a common | 36 | critical temperature set point has been exceeded. Both pins can be set up with a |
27 | hysteresis of 0°C - 15°C and a fault queue, ranging from 1 to 4 events. Both | 37 | common hysteresis of 0°C - 15°C and a fault queue, ranging from 1 to 4 events. |
28 | pins can individually set to be active-low or active-high, while the whole | 38 | Both pins can individually set to be active-low or active-high, while the whole |
29 | device can either run in comparator mode or interrupt mode. The ADT7410 | 39 | device can either run in comparator mode or interrupt mode. The ADT7410 supports |
30 | supports continous temperature sampling, as well as sampling one temperature | 40 | continuous temperature sampling, as well as sampling one temperature value per |
31 | value per second or even justget one sample on demand for power saving. | 41 | second or even just get one sample on demand for power saving. Besides, it can |
32 | Besides, it can completely power down its ADC, if power management is | 42 | completely power down its ADC, if power management is required. |
33 | required. | 43 | |
34 | 44 | The ADT7320/ADT7420 is register compatible, the only differences being the | |
35 | The ADT7420 is register compatible, the only differences being the package, | 45 | package, a slightly narrower operating temperature range (-40°C to +150°C), and |
36 | a slightly narrower operating temperature range (-40°C to +150°C), and a | 46 | a better accuracy (0.25°C instead of 0.50°C.) |
37 | better accuracy (0.25°C instead of 0.50°C.) | 47 | |
48 | The difference between the ADT7310/ADT7320 and ADT7410/ADT7420 is the control | ||
49 | interface, the ADT7310 and ADT7320 use SPI while the ADT7410 and ADT7420 use | ||
50 | I2C. | ||
38 | 51 | ||
39 | Configuration Notes | 52 | Configuration Notes |
40 | ------------------- | 53 | ------------------- |
diff --git a/Documentation/hwmon/lm25066 b/Documentation/hwmon/lm25066 index 26025e419d35..c1b57d72efc3 100644 --- a/Documentation/hwmon/lm25066 +++ b/Documentation/hwmon/lm25066 | |||
@@ -1,7 +1,13 @@ | |||
1 | Kernel driver max8688 | 1 | Kernel driver lm25066 |
2 | ===================== | 2 | ===================== |
3 | 3 | ||
4 | Supported chips: | 4 | Supported chips: |
5 | * TI LM25056 | ||
6 | Prefix: 'lm25056' | ||
7 | Addresses scanned: - | ||
8 | Datasheets: | ||
9 | http://www.ti.com/lit/gpn/lm25056 | ||
10 | http://www.ti.com/lit/gpn/lm25056a | ||
5 | * National Semiconductor LM25066 | 11 | * National Semiconductor LM25066 |
6 | Prefix: 'lm25066' | 12 | Prefix: 'lm25066' |
7 | Addresses scanned: - | 13 | Addresses scanned: - |
@@ -25,8 +31,9 @@ Author: Guenter Roeck <linux@roeck-us.net> | |||
25 | Description | 31 | Description |
26 | ----------- | 32 | ----------- |
27 | 33 | ||
28 | This driver supports hardware montoring for National Semiconductor LM25066, | 34 | This driver supports hardware montoring for National Semiconductor / TI LM25056, |
29 | LM5064, and LM5064 Power Management, Monitoring, Control, and Protection ICs. | 35 | LM25066, LM5064, and LM5064 Power Management, Monitoring, Control, and |
36 | Protection ICs. | ||
30 | 37 | ||
31 | The driver is a client driver to the core PMBus driver. Please see | 38 | The driver is a client driver to the core PMBus driver. Please see |
32 | Documentation/hwmon/pmbus for details on PMBus client drivers. | 39 | Documentation/hwmon/pmbus for details on PMBus client drivers. |
@@ -60,14 +67,19 @@ in1_max Maximum input voltage. | |||
60 | in1_min_alarm Input voltage low alarm. | 67 | in1_min_alarm Input voltage low alarm. |
61 | in1_max_alarm Input voltage high alarm. | 68 | in1_max_alarm Input voltage high alarm. |
62 | 69 | ||
63 | in2_label "vout1" | 70 | in2_label "vmon" |
64 | in2_input Measured output voltage. | 71 | in2_input Measured voltage on VAUX pin |
65 | in2_average Average measured output voltage. | 72 | in2_min Minimum VAUX voltage (LM25056 only). |
66 | in2_min Minimum output voltage. | 73 | in2_max Maximum VAUX voltage (LM25056 only). |
67 | in2_min_alarm Output voltage low alarm. | 74 | in2_min_alarm VAUX voltage low alarm (LM25056 only). |
68 | 75 | in2_max_alarm VAUX voltage high alarm (LM25056 only). | |
69 | in3_label "vout2" | 76 | |
70 | in3_input Measured voltage on vaux pin | 77 | in3_label "vout1" |
78 | Not supported on LM25056. | ||
79 | in3_input Measured output voltage. | ||
80 | in3_average Average measured output voltage. | ||
81 | in3_min Minimum output voltage. | ||
82 | in3_min_alarm Output voltage low alarm. | ||
71 | 83 | ||
72 | curr1_label "iin" | 84 | curr1_label "iin" |
73 | curr1_input Measured input current. | 85 | curr1_input Measured input current. |
diff --git a/Documentation/hwmon/lm95234 b/Documentation/hwmon/lm95234 new file mode 100644 index 000000000000..a0e95ddfd372 --- /dev/null +++ b/Documentation/hwmon/lm95234 | |||
@@ -0,0 +1,36 @@ | |||
1 | Kernel driver lm95234 | ||
2 | ===================== | ||
3 | |||
4 | Supported chips: | ||
5 | * National Semiconductor / Texas Instruments LM95234 | ||
6 | Addresses scanned: I2C 0x18, 0x4d, 0x4e | ||
7 | Datasheet: Publicly available at the Texas Instruments website | ||
8 | http://www.ti.com/product/lm95234 | ||
9 | |||
10 | |||
11 | Author: Guenter Roeck <linux@roeck-us.net> | ||
12 | |||
13 | Description | ||
14 | ----------- | ||
15 | |||
16 | LM95234 is an 11-bit digital temperature sensor with a 2-wire System Management | ||
17 | Bus (SMBus) interface and TrueTherm technology that can very accurately monitor | ||
18 | the temperature of four remote diodes as well as its own temperature. | ||
19 | The four remote diodes can be external devices such as microprocessors, | ||
20 | graphics processors or diode-connected 2N3904s. The LM95234's TruTherm | ||
21 | beta compensation technology allows sensing of 90 nm or 65 nm process | ||
22 | thermal diodes accurately. | ||
23 | |||
24 | All temperature values are given in millidegrees Celsius. Temperature | ||
25 | is provided within a range of -127 to +255 degrees (+127.875 degrees for | ||
26 | the internal sensor). Resolution depends on temperature input and range. | ||
27 | |||
28 | Each sensor has its own maximum limit, but the hysteresis is common to all | ||
29 | channels. The hysteresis is configurable with the tem1_max_hyst attribute and | ||
30 | affects the hysteresis on all channels. The first two external sensors also | ||
31 | have a critical limit. | ||
32 | |||
33 | The lm95234 driver can change its update interval to a fixed set of values. | ||
34 | It will round up to the next selectable interval. See the datasheet for exact | ||
35 | values. Reading sensor values more often will do no harm, but will return | ||
36 | 'old' values. | ||
diff --git a/Documentation/hwmon/ltc2978 b/Documentation/hwmon/ltc2978 index e4d75c606c97..dc0d08c61305 100644 --- a/Documentation/hwmon/ltc2978 +++ b/Documentation/hwmon/ltc2978 | |||
@@ -2,6 +2,10 @@ Kernel driver ltc2978 | |||
2 | ===================== | 2 | ===================== |
3 | 3 | ||
4 | Supported chips: | 4 | Supported chips: |
5 | * Linear Technology LTC2974 | ||
6 | Prefix: 'ltc2974' | ||
7 | Addresses scanned: - | ||
8 | Datasheet: http://www.linear.com/product/ltc2974 | ||
5 | * Linear Technology LTC2978 | 9 | * Linear Technology LTC2978 |
6 | Prefix: 'ltc2978' | 10 | Prefix: 'ltc2978' |
7 | Addresses scanned: - | 11 | Addresses scanned: - |
@@ -10,6 +14,10 @@ Supported chips: | |||
10 | Prefix: 'ltc3880' | 14 | Prefix: 'ltc3880' |
11 | Addresses scanned: - | 15 | Addresses scanned: - |
12 | Datasheet: http://www.linear.com/product/ltc3880 | 16 | Datasheet: http://www.linear.com/product/ltc3880 |
17 | * Linear Technology LTC3883 | ||
18 | Prefix: 'ltc3883' | ||
19 | Addresses scanned: - | ||
20 | Datasheet: http://www.linear.com/product/ltc3883 | ||
13 | 21 | ||
14 | Author: Guenter Roeck <linux@roeck-us.net> | 22 | Author: Guenter Roeck <linux@roeck-us.net> |
15 | 23 | ||
@@ -17,9 +25,9 @@ Author: Guenter Roeck <linux@roeck-us.net> | |||
17 | Description | 25 | Description |
18 | ----------- | 26 | ----------- |
19 | 27 | ||
20 | The LTC2978 is an octal power supply monitor, supervisor, sequencer and | 28 | LTC2974 is a quad digital power supply manager. LTC2978 is an octal power supply |
21 | margin controller. The LTC3880 is a dual, PolyPhase DC/DC synchronous | 29 | monitor. LTC3880 is a dual output poly-phase step-down DC/DC controller. LTC3883 |
22 | step-down switching regulator controller. | 30 | is a single phase step-down DC/DC controller. |
23 | 31 | ||
24 | 32 | ||
25 | Usage Notes | 33 | Usage Notes |
@@ -41,63 +49,90 @@ Sysfs attributes | |||
41 | in1_label "vin" | 49 | in1_label "vin" |
42 | in1_input Measured input voltage. | 50 | in1_input Measured input voltage. |
43 | in1_min Minimum input voltage. | 51 | in1_min Minimum input voltage. |
44 | in1_max Maximum input voltage. | 52 | in1_max Maximum input voltage. LTC2974 and LTC2978 only. |
45 | in1_lcrit Critical minimum input voltage. | 53 | in1_lcrit Critical minimum input voltage. LTC2974 and LTC2978 |
54 | only. | ||
46 | in1_crit Critical maximum input voltage. | 55 | in1_crit Critical maximum input voltage. |
47 | in1_min_alarm Input voltage low alarm. | 56 | in1_min_alarm Input voltage low alarm. |
48 | in1_max_alarm Input voltage high alarm. | 57 | in1_max_alarm Input voltage high alarm. LTC2974 and LTC2978 only. |
49 | in1_lcrit_alarm Input voltage critical low alarm. | 58 | in1_lcrit_alarm Input voltage critical low alarm. LTC2974 and LTC2978 |
59 | only. | ||
50 | in1_crit_alarm Input voltage critical high alarm. | 60 | in1_crit_alarm Input voltage critical high alarm. |
51 | in1_lowest Lowest input voltage. LTC2978 only. | 61 | in1_lowest Lowest input voltage. LTC2974 and LTC2978 only. |
52 | in1_highest Highest input voltage. | 62 | in1_highest Highest input voltage. |
53 | in1_reset_history Reset history. Writing into this attribute will reset | 63 | in1_reset_history Reset input voltage history. |
54 | history for all attributes. | 64 | |
55 | 65 | in[N]_label "vout[1-8]". | |
56 | in[2-9]_label "vout[1-8]". Channels 3 to 9 on LTC2978 only. | 66 | LTC2974: N=2-5 |
57 | in[2-9]_input Measured output voltage. | 67 | LTC2978: N=2-9 |
58 | in[2-9]_min Minimum output voltage. | 68 | LTC3880: N=2-3 |
59 | in[2-9]_max Maximum output voltage. | 69 | LTC3883: N=2 |
60 | in[2-9]_lcrit Critical minimum output voltage. | 70 | in[N]_input Measured output voltage. |
61 | in[2-9]_crit Critical maximum output voltage. | 71 | in[N]_min Minimum output voltage. |
62 | in[2-9]_min_alarm Output voltage low alarm. | 72 | in[N]_max Maximum output voltage. |
63 | in[2-9]_max_alarm Output voltage high alarm. | 73 | in[N]_lcrit Critical minimum output voltage. |
64 | in[2-9]_lcrit_alarm Output voltage critical low alarm. | 74 | in[N]_crit Critical maximum output voltage. |
65 | in[2-9]_crit_alarm Output voltage critical high alarm. | 75 | in[N]_min_alarm Output voltage low alarm. |
66 | in[2-9]_lowest Lowest output voltage. LTC2978 only. | 76 | in[N]_max_alarm Output voltage high alarm. |
67 | in[2-9]_highest Lowest output voltage. | 77 | in[N]_lcrit_alarm Output voltage critical low alarm. |
68 | in[2-9]_reset_history Reset history. Writing into this attribute will reset | 78 | in[N]_crit_alarm Output voltage critical high alarm. |
69 | history for all attributes. | 79 | in[N]_lowest Lowest output voltage. LTC2974 and LTC2978 only. |
70 | 80 | in[N]_highest Highest output voltage. | |
71 | temp[1-3]_input Measured temperature. | 81 | in[N]_reset_history Reset output voltage history. |
82 | |||
83 | temp[N]_input Measured temperature. | ||
84 | On LTC2974, temp[1-4] report external temperatures, | ||
85 | and temp5 reports the chip temperature. | ||
72 | On LTC2978, only one temperature measurement is | 86 | On LTC2978, only one temperature measurement is |
73 | supported and reflects the internal temperature. | 87 | supported and reports the chip temperature. |
74 | On LTC3880, temp1 and temp2 report external | 88 | On LTC3880, temp1 and temp2 report external |
75 | temperatures, and temp3 reports the internal | 89 | temperatures, and temp3 reports the chip temperature. |
76 | temperature. | 90 | On LTC3883, temp1 reports an external temperature, |
77 | temp[1-3]_min Mimimum temperature. | 91 | and temp2 reports the chip temperature. |
78 | temp[1-3]_max Maximum temperature. | 92 | temp[N]_min Mimimum temperature. LTC2974 and LTC2978 only. |
79 | temp[1-3]_lcrit Critical low temperature. | 93 | temp[N]_max Maximum temperature. |
80 | temp[1-3]_crit Critical high temperature. | 94 | temp[N]_lcrit Critical low temperature. |
81 | temp[1-3]_min_alarm Chip temperature low alarm. | 95 | temp[N]_crit Critical high temperature. |
82 | temp[1-3]_max_alarm Chip temperature high alarm. | 96 | temp[N]_min_alarm Temperature low alarm. LTC2974 and LTC2978 only. |
83 | temp[1-3]_lcrit_alarm Chip temperature critical low alarm. | 97 | temp[N]_max_alarm Temperature high alarm. |
84 | temp[1-3]_crit_alarm Chip temperature critical high alarm. | 98 | temp[N]_lcrit_alarm Temperature critical low alarm. |
85 | temp[1-3]_lowest Lowest measured temperature. LTC2978 only. | 99 | temp[N]_crit_alarm Temperature critical high alarm. |
86 | temp[1-3]_highest Highest measured temperature. | 100 | temp[N]_lowest Lowest measured temperature. LTC2974 and LTC2978 only. |
87 | temp[1-3]_reset_history Reset history. Writing into this attribute will reset | 101 | Not supported for chip temperature sensor on LTC2974. |
88 | history for all attributes. | 102 | temp[N]_highest Highest measured temperature. Not supported for chip |
89 | 103 | temperature sensor on LTC2974. | |
90 | power[1-2]_label "pout[1-2]". LTC3880 only. | 104 | temp[N]_reset_history Reset temperature history. Not supported for chip |
91 | power[1-2]_input Measured power. | 105 | temperature sensor on LTC2974. |
92 | 106 | ||
93 | curr1_label "iin". LTC3880 only. | 107 | power1_label "pin". LTC3883 only. |
108 | power1_input Measured input power. | ||
109 | |||
110 | power[N]_label "pout[1-4]". | ||
111 | LTC2974: N=1-4 | ||
112 | LTC2978: Not supported | ||
113 | LTC3880: N=1-2 | ||
114 | LTC3883: N=2 | ||
115 | power[N]_input Measured output power. | ||
116 | |||
117 | curr1_label "iin". LTC3880 and LTC3883 only. | ||
94 | curr1_input Measured input current. | 118 | curr1_input Measured input current. |
95 | curr1_max Maximum input current. | 119 | curr1_max Maximum input current. |
96 | curr1_max_alarm Input current high alarm. | 120 | curr1_max_alarm Input current high alarm. |
97 | 121 | curr1_highest Highest input current. LTC3883 only. | |
98 | curr[2-3]_label "iout[1-2]". LTC3880 only. | 122 | curr1_reset_history Reset input current history. LTC3883 only. |
99 | curr[2-3]_input Measured input current. | 123 | |
100 | curr[2-3]_max Maximum input current. | 124 | curr[N]_label "iout[1-4]". |
101 | curr[2-3]_crit Critical input current. | 125 | LTC2974: N=1-4 |
102 | curr[2-3]_max_alarm Input current high alarm. | 126 | LTC2978: not supported |
103 | curr[2-3]_crit_alarm Input current critical high alarm. | 127 | LTC3880: N=2-3 |
128 | LTC3883: N=2 | ||
129 | curr[N]_input Measured output current. | ||
130 | curr[N]_max Maximum output current. | ||
131 | curr[N]_crit Critical high output current. | ||
132 | curr[N]_lcrit Critical low output current. LTC2974 only. | ||
133 | curr[N]_max_alarm Output current high alarm. | ||
134 | curr[N]_crit_alarm Output current critical high alarm. | ||
135 | curr[N]_lcrit_alarm Output current critical low alarm. LTC2974 only. | ||
136 | curr[N]_lowest Lowest output current. LTC2974 only. | ||
137 | curr[N]_highest Highest output current. | ||
138 | curr[N]_reset_history Reset output current history. | ||
diff --git a/Documentation/hwmon/nct6775 b/Documentation/hwmon/nct6775 new file mode 100644 index 000000000000..4e9ef60e8c6c --- /dev/null +++ b/Documentation/hwmon/nct6775 | |||
@@ -0,0 +1,188 @@ | |||
1 | Note | ||
2 | ==== | ||
3 | |||
4 | This driver supersedes the NCT6775F and NCT6776F support in the W83627EHF | ||
5 | driver. | ||
6 | |||
7 | Kernel driver NCT6775 | ||
8 | ===================== | ||
9 | |||
10 | Supported chips: | ||
11 | * Nuvoton NCT5572D/NCT6771F/NCT6772F/NCT6775F/W83677HG-I | ||
12 | Prefix: 'nct6775' | ||
13 | Addresses scanned: ISA address retrieved from Super I/O registers | ||
14 | Datasheet: Available from Nuvoton upon request | ||
15 | * Nuvoton NCT5577D/NCT6776D/NCT6776F | ||
16 | Prefix: 'nct6776' | ||
17 | Addresses scanned: ISA address retrieved from Super I/O registers | ||
18 | Datasheet: Available from Nuvoton upon request | ||
19 | * Nuvoton NCT5532D/NCT6779D | ||
20 | Prefix: 'nct6779' | ||
21 | Addresses scanned: ISA address retrieved from Super I/O registers | ||
22 | Datasheet: Available from Nuvoton upon request | ||
23 | |||
24 | Authors: | ||
25 | Guenter Roeck <linux@roeck-us.net> | ||
26 | |||
27 | Description | ||
28 | ----------- | ||
29 | |||
30 | This driver implements support for the Nuvoton NCT6775F, NCT6776F, and NCT6779D | ||
31 | and compatible super I/O chips. | ||
32 | |||
33 | The chips support up to 25 temperature monitoring sources. Up to 6 of those are | ||
34 | direct temperature sensor inputs, the others are special sources such as PECI, | ||
35 | PCH, and SMBUS. Depending on the chip type, 2 to 6 of the temperature sources | ||
36 | can be monitored and compared against minimum, maximum, and critical | ||
37 | temperatures. The driver reports up to 10 of the temperatures to the user. | ||
38 | There are 4 to 5 fan rotation speed sensors, 8 to 15 analog voltage sensors, | ||
39 | one VID, alarms with beep warnings (control unimplemented), and some automatic | ||
40 | fan regulation strategies (plus manual fan control mode). | ||
41 | |||
42 | The temperature sensor sources on all chips are configurable. The configured | ||
43 | source for each of the temperature sensors is provided in tempX_label. | ||
44 | |||
45 | Temperatures are measured in degrees Celsius and measurement resolution is | ||
46 | either 1 degC or 0.5 degC, depending on the temperature source and | ||
47 | configuration. An alarm is triggered when the temperature gets higher than | ||
48 | the high limit; it stays on until the temperature falls below the hysteresis | ||
49 | value. Alarms are only supported for temp1 to temp6, depending on the chip type. | ||
50 | |||
51 | Fan rotation speeds are reported in RPM (rotations per minute). An alarm is | ||
52 | triggered if the rotation speed has dropped below a programmable limit. On | ||
53 | NCT6775F, fan readings can be divided by a programmable divider (1, 2, 4, 8, | ||
54 | 16, 32, 64 or 128) to give the readings more range or accuracy; the other chips | ||
55 | do not have a fan speed divider. The driver sets the most suitable fan divisor | ||
56 | itself; specifically, it increases the divider value each time a fan speed | ||
57 | reading returns an invalid value, and it reduces it if the fan speed reading | ||
58 | is lower than optimal. Some fans might not be present because they share pins | ||
59 | with other functions. | ||
60 | |||
61 | Voltage sensors (also known as IN sensors) report their values in millivolts. | ||
62 | An alarm is triggered if the voltage has crossed a programmable minimum | ||
63 | or maximum limit. | ||
64 | |||
65 | The driver supports automatic fan control mode known as Thermal Cruise. | ||
66 | In this mode, the chip attempts to keep the measured temperature in a | ||
67 | predefined temperature range. If the temperature goes out of range, fan | ||
68 | is driven slower/faster to reach the predefined range again. | ||
69 | |||
70 | The mode works for fan1-fan5. | ||
71 | |||
72 | sysfs attributes | ||
73 | ---------------- | ||
74 | |||
75 | pwm[1-5] - this file stores PWM duty cycle or DC value (fan speed) in range: | ||
76 | 0 (lowest speed) to 255 (full) | ||
77 | |||
78 | pwm[1-5]_enable - this file controls mode of fan/temperature control: | ||
79 | * 0 Fan control disabled (fans set to maximum speed) | ||
80 | * 1 Manual mode, write to pwm[0-5] any value 0-255 | ||
81 | * 2 "Thermal Cruise" mode | ||
82 | * 3 "Fan Speed Cruise" mode | ||
83 | * 4 "Smart Fan III" mode (NCT6775F only) | ||
84 | * 5 "Smart Fan IV" mode | ||
85 | |||
86 | pwm[1-5]_mode - controls if output is PWM or DC level | ||
87 | * 0 DC output | ||
88 | * 1 PWM output | ||
89 | |||
90 | Common fan control attributes | ||
91 | ----------------------------- | ||
92 | |||
93 | pwm[1-5]_temp_sel Temperature source. Value is temperature sensor index. | ||
94 | For example, select '1' for temp1_input. | ||
95 | pwm[1-5]_weight_temp_sel | ||
96 | Secondary temperature source. Value is temperature | ||
97 | sensor index. For example, select '1' for temp1_input. | ||
98 | Set to 0 to disable secondary temperature control. | ||
99 | |||
100 | If secondary temperature functionality is enabled, it is controlled with the | ||
101 | following attributes. | ||
102 | |||
103 | pwm[1-5]_weight_duty_step | ||
104 | Duty step size. | ||
105 | pwm[1-5]_weight_temp_step | ||
106 | Temperature step size. With each step over | ||
107 | temp_step_base, the value of weight_duty_step is added | ||
108 | to the current pwm value. | ||
109 | pwm[1-5]_weight_temp_step_base | ||
110 | Temperature at which secondary temperature control kicks | ||
111 | in. | ||
112 | pwm[1-5]_weight_temp_step_tol | ||
113 | Temperature step tolerance. | ||
114 | |||
115 | Thermal Cruise mode (2) | ||
116 | ----------------------- | ||
117 | |||
118 | If the temperature is in the range defined by: | ||
119 | |||
120 | pwm[1-5]_target_temp Target temperature, unit millidegree Celsius | ||
121 | (range 0 - 127000) | ||
122 | pwm[1-5]_temp_tolerance | ||
123 | Target temperature tolerance, unit millidegree Celsius | ||
124 | |||
125 | there are no changes to fan speed. Once the temperature leaves the interval, fan | ||
126 | speed increases (if temperature is higher that desired) or decreases (if | ||
127 | temperature is lower than desired), using the following limits and time | ||
128 | intervals. | ||
129 | |||
130 | pwm[1-5]_start fan pwm start value (range 1 - 255), to start fan | ||
131 | when the temperature is above defined range. | ||
132 | pwm[1-5]_floor lowest fan pwm (range 0 - 255) if temperature is below | ||
133 | the defined range. If set to 0, the fan is expected to | ||
134 | stop if the temperature is below the defined range. | ||
135 | pwm[1-5]_step_up_time milliseconds before fan speed is increased | ||
136 | pwm[1-5]_step_down_time milliseconds before fan speed is decreased | ||
137 | pwm[1-5]_stop_time how many milliseconds must elapse to switch | ||
138 | corresponding fan off (when the temperature was below | ||
139 | defined range). | ||
140 | |||
141 | Speed Cruise mode (3) | ||
142 | --------------------- | ||
143 | |||
144 | This modes tries to keep the fan speed constant. | ||
145 | |||
146 | fan[1-5]_target Target fan speed | ||
147 | fan[1-5]_tolerance | ||
148 | Target speed tolerance | ||
149 | |||
150 | |||
151 | Untested; use at your own risk. | ||
152 | |||
153 | Smart Fan IV mode (5) | ||
154 | --------------------- | ||
155 | |||
156 | This mode offers multiple slopes to control the fan speed. The slopes can be | ||
157 | controlled by setting the pwm and temperature attributes. When the temperature | ||
158 | rises, the chip will calculate the DC/PWM output based on the current slope. | ||
159 | There are up to seven data points depending on the chip type. Subsequent data | ||
160 | points should be set to higher temperatures and higher pwm values to achieve | ||
161 | higher fan speeds with increasing temperature. The last data point reflects | ||
162 | critical temperature mode, in which the fans should run at full speed. | ||
163 | |||
164 | pwm[1-5]_auto_point[1-7]_pwm | ||
165 | pwm value to be set if temperature reaches matching | ||
166 | temperature range. | ||
167 | pwm[1-5]_auto_point[1-7]_temp | ||
168 | Temperature over which the matching pwm is enabled. | ||
169 | pwm[1-5]_temp_tolerance | ||
170 | Temperature tolerance, unit millidegree Celsius | ||
171 | pwm[1-5]_crit_temp_tolerance | ||
172 | Temperature tolerance for critical temperature, | ||
173 | unit millidegree Celsius | ||
174 | |||
175 | pwm[1-5]_step_up_time milliseconds before fan speed is increased | ||
176 | pwm[1-5]_step_down_time milliseconds before fan speed is decreased | ||
177 | |||
178 | Usage Notes | ||
179 | ----------- | ||
180 | |||
181 | On various ASUS boards with NCT6776F, it appears that CPUTIN is not really | ||
182 | connected to anything and floats, or that it is connected to some non-standard | ||
183 | temperature measurement device. As a result, the temperature reported on CPUTIN | ||
184 | will not reflect a usable value. It often reports unreasonably high | ||
185 | temperatures, and in some cases the reported temperature declines if the actual | ||
186 | temperature increases (similar to the raw PECI temperature value - see PECI | ||
187 | specification for details). CPUTIN should therefore be be ignored on ASUS | ||
188 | boards. The CPU temperature on ASUS boards is reported from PECI 0. | ||
diff --git a/Documentation/hwmon/sht15 b/Documentation/hwmon/sht15 index 02850bdfac18..778987d1856f 100644 --- a/Documentation/hwmon/sht15 +++ b/Documentation/hwmon/sht15 | |||
@@ -40,7 +40,7 @@ bits for humidity, or 12 bits for temperature and 8 bits for humidity. | |||
40 | The humidity calibration coefficients are programmed into an OTP memory on the | 40 | The humidity calibration coefficients are programmed into an OTP memory on the |
41 | chip. These coefficients are used to internally calibrate the signals from the | 41 | chip. These coefficients are used to internally calibrate the signals from the |
42 | sensors. Disabling the reload of those coefficients allows saving 10ms for each | 42 | sensors. Disabling the reload of those coefficients allows saving 10ms for each |
43 | measurement and decrease power consumption, while loosing on precision. | 43 | measurement and decrease power consumption, while losing on precision. |
44 | 44 | ||
45 | Some options may be set directly in the sht15_platform_data structure | 45 | Some options may be set directly in the sht15_platform_data structure |
46 | or via sysfs attributes. | 46 | or via sysfs attributes. |
diff --git a/Documentation/hwmon/tmp401 b/Documentation/hwmon/tmp401 index 9fc447249212..f91e3fa7e5ec 100644 --- a/Documentation/hwmon/tmp401 +++ b/Documentation/hwmon/tmp401 | |||
@@ -8,8 +8,16 @@ Supported chips: | |||
8 | Datasheet: http://focus.ti.com/docs/prod/folders/print/tmp401.html | 8 | Datasheet: http://focus.ti.com/docs/prod/folders/print/tmp401.html |
9 | * Texas Instruments TMP411 | 9 | * Texas Instruments TMP411 |
10 | Prefix: 'tmp411' | 10 | Prefix: 'tmp411' |
11 | Addresses scanned: I2C 0x4c | 11 | Addresses scanned: I2C 0x4c, 0x4d, 0x4e |
12 | Datasheet: http://focus.ti.com/docs/prod/folders/print/tmp411.html | 12 | Datasheet: http://focus.ti.com/docs/prod/folders/print/tmp411.html |
13 | * Texas Instruments TMP431 | ||
14 | Prefix: 'tmp431' | ||
15 | Addresses scanned: I2C 0x4c, 0x4d | ||
16 | Datasheet: http://focus.ti.com/docs/prod/folders/print/tmp431.html | ||
17 | * Texas Instruments TMP432 | ||
18 | Prefix: 'tmp432' | ||
19 | Addresses scanned: I2C 0x4c, 0x4d | ||
20 | Datasheet: http://focus.ti.com/docs/prod/folders/print/tmp432.html | ||
13 | 21 | ||
14 | Authors: | 22 | Authors: |
15 | Hans de Goede <hdegoede@redhat.com> | 23 | Hans de Goede <hdegoede@redhat.com> |
@@ -18,19 +26,19 @@ Authors: | |||
18 | Description | 26 | Description |
19 | ----------- | 27 | ----------- |
20 | 28 | ||
21 | This driver implements support for Texas Instruments TMP401 and | 29 | This driver implements support for Texas Instruments TMP401, TMP411, |
22 | TMP411 chips. These chips implements one remote and one local | 30 | TMP431, and TMP432 chips. These chips implement one or two remote and |
23 | temperature sensor. Temperature is measured in degrees | 31 | one local temperature sensors. Temperature is measured in degrees |
24 | Celsius. Resolution of the remote sensor is 0.0625 degree. Local | 32 | Celsius. Resolution of the remote sensor is 0.0625 degree. Local |
25 | sensor resolution can be set to 0.5, 0.25, 0.125 or 0.0625 degree (not | 33 | sensor resolution can be set to 0.5, 0.25, 0.125 or 0.0625 degree (not |
26 | supported by the driver so far, so using the default resolution of 0.5 | 34 | supported by the driver so far, so using the default resolution of 0.5 |
27 | degree). | 35 | degree). |
28 | 36 | ||
29 | The driver provides the common sysfs-interface for temperatures (see | 37 | The driver provides the common sysfs-interface for temperatures (see |
30 | /Documentation/hwmon/sysfs-interface under Temperatures). | 38 | Documentation/hwmon/sysfs-interface under Temperatures). |
31 | 39 | ||
32 | The TMP411 chip is compatible with TMP401. It provides some additional | 40 | The TMP411 and TMP431 chips are compatible with TMP401. TMP411 provides |
33 | features. | 41 | some additional features. |
34 | 42 | ||
35 | * Minimum and Maximum temperature measured since power-on, chip-reset | 43 | * Minimum and Maximum temperature measured since power-on, chip-reset |
36 | 44 | ||
@@ -40,3 +48,6 @@ features. | |||
40 | 48 | ||
41 | Exported via sysfs attribute temp_reset_history. Writing 1 to this | 49 | Exported via sysfs attribute temp_reset_history. Writing 1 to this |
42 | file triggers a reset. | 50 | file triggers a reset. |
51 | |||
52 | TMP432 is compatible with TMP401 and TMP431. It supports two external | ||
53 | temperature sensors. | ||
diff --git a/Documentation/hwmon/zl6100 b/Documentation/hwmon/zl6100 index 756b57c6b73e..33908a4d68ff 100644 --- a/Documentation/hwmon/zl6100 +++ b/Documentation/hwmon/zl6100 | |||
@@ -125,7 +125,7 @@ in2_label "vmon" | |||
125 | in2_input Measured voltage on VMON (ZL2004) or VDRV (ZL9101M, | 125 | in2_input Measured voltage on VMON (ZL2004) or VDRV (ZL9101M, |
126 | ZL9117M) pin. Reported voltage is 16x the voltage on the | 126 | ZL9117M) pin. Reported voltage is 16x the voltage on the |
127 | pin (adjusted internally by the chip). | 127 | pin (adjusted internally by the chip). |
128 | in2_lcrit Critical minumum VMON/VDRV Voltage. | 128 | in2_lcrit Critical minimum VMON/VDRV Voltage. |
129 | in2_crit Critical maximum VMON/VDRV voltage. | 129 | in2_crit Critical maximum VMON/VDRV voltage. |
130 | in2_lcrit_alarm VMON/VDRV voltage critical low alarm. | 130 | in2_lcrit_alarm VMON/VDRV voltage critical low alarm. |
131 | in2_crit_alarm VMON/VDRV voltage critical high alarm. | 131 | in2_crit_alarm VMON/VDRV voltage critical high alarm. |
diff --git a/Documentation/ia64/err_inject.txt b/Documentation/ia64/err_inject.txt index 223e4f0582d0..9f651c181429 100644 --- a/Documentation/ia64/err_inject.txt +++ b/Documentation/ia64/err_inject.txt | |||
@@ -882,7 +882,7 @@ int err_inj() | |||
882 | cpu=parameters[i].cpu; | 882 | cpu=parameters[i].cpu; |
883 | k = cpu%64; | 883 | k = cpu%64; |
884 | j = cpu/64; | 884 | j = cpu/64; |
885 | mask[j]=1<<k; | 885 | mask[j] = 1UL << k; |
886 | 886 | ||
887 | if (sched_setaffinity(0, MASK_SIZE*8, mask)==-1) { | 887 | if (sched_setaffinity(0, MASK_SIZE*8, mask)==-1) { |
888 | perror("Error sched_setaffinity:"); | 888 | perror("Error sched_setaffinity:"); |
diff --git a/Documentation/kdump/kdump.txt b/Documentation/kdump/kdump.txt index 13f1aa09b938..9c7fd988e299 100644 --- a/Documentation/kdump/kdump.txt +++ b/Documentation/kdump/kdump.txt | |||
@@ -297,6 +297,7 @@ Boot into System Kernel | |||
297 | On ia64, 256M@256M is a generous value that typically works. | 297 | On ia64, 256M@256M is a generous value that typically works. |
298 | The region may be automatically placed on ia64, see the | 298 | The region may be automatically placed on ia64, see the |
299 | dump-capture kernel config option notes above. | 299 | dump-capture kernel config option notes above. |
300 | If use sparse memory, the size should be rounded to GRANULE boundaries. | ||
300 | 301 | ||
301 | On s390x, typically use "crashkernel=xxM". The value of xx is dependent | 302 | On s390x, typically use "crashkernel=xxM". The value of xx is dependent |
302 | on the memory consumption of the kdump system. In general this is not | 303 | on the memory consumption of the kdump system. In general this is not |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 4609e81dbc37..8ccbf27aead4 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -596,9 +596,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
596 | is selected automatically. Check | 596 | is selected automatically. Check |
597 | Documentation/kdump/kdump.txt for further details. | 597 | Documentation/kdump/kdump.txt for further details. |
598 | 598 | ||
599 | crashkernel_low=size[KMG] | ||
600 | [KNL, x86] parts under 4G. | ||
601 | |||
602 | crashkernel=range1:size1[,range2:size2,...][@offset] | 599 | crashkernel=range1:size1[,range2:size2,...][@offset] |
603 | [KNL] Same as above, but depends on the memory | 600 | [KNL] Same as above, but depends on the memory |
604 | in the running system. The syntax of range is | 601 | in the running system. The syntax of range is |
@@ -606,6 +603,26 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
606 | a memory unit (amount[KMG]). See also | 603 | a memory unit (amount[KMG]). See also |
607 | Documentation/kdump/kdump.txt for an example. | 604 | Documentation/kdump/kdump.txt for an example. |
608 | 605 | ||
606 | crashkernel=size[KMG],high | ||
607 | [KNL, x86_64] range could be above 4G. Allow kernel | ||
608 | to allocate physical memory region from top, so could | ||
609 | be above 4G if system have more than 4G ram installed. | ||
610 | Otherwise memory region will be allocated below 4G, if | ||
611 | available. | ||
612 | It will be ignored if crashkernel=X is specified. | ||
613 | crashkernel=size[KMG],low | ||
614 | [KNL, x86_64] range under 4G. When crashkernel=X,high | ||
615 | is passed, kernel could allocate physical memory region | ||
616 | above 4G, that cause second kernel crash on system | ||
617 | that require some amount of low memory, e.g. swiotlb | ||
618 | requires at least 64M+32K low memory. Kernel would | ||
619 | try to allocate 72M below 4G automatically. | ||
620 | This one let user to specify own low range under 4G | ||
621 | for second kernel instead. | ||
622 | 0: to disable low allocation. | ||
623 | It will be ignored when crashkernel=X,high is not used | ||
624 | or memory reserved is below 4G. | ||
625 | |||
609 | cs89x0_dma= [HW,NET] | 626 | cs89x0_dma= [HW,NET] |
610 | Format: <dma> | 627 | Format: <dma> |
611 | 628 | ||
@@ -788,6 +805,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
788 | edd= [EDD] | 805 | edd= [EDD] |
789 | Format: {"off" | "on" | "skip[mbr]"} | 806 | Format: {"off" | "on" | "skip[mbr]"} |
790 | 807 | ||
808 | efi_no_storage_paranoia [EFI; X86] | ||
809 | Using this parameter you can use more than 50% of | ||
810 | your efi variable storage. Use this parameter only if | ||
811 | you are really sure that your UEFI does sane gc and | ||
812 | fulfills the spec otherwise your board may brick. | ||
813 | |||
791 | eisa_irq_edge= [PARISC,HW] | 814 | eisa_irq_edge= [PARISC,HW] |
792 | See header of drivers/parisc/eisa.c. | 815 | See header of drivers/parisc/eisa.c. |
793 | 816 | ||
diff --git a/Documentation/misc-devices/mei/mei-client-bus.txt b/Documentation/misc-devices/mei/mei-client-bus.txt new file mode 100644 index 000000000000..f83910a8ce76 --- /dev/null +++ b/Documentation/misc-devices/mei/mei-client-bus.txt | |||
@@ -0,0 +1,138 @@ | |||
1 | Intel(R) Management Engine (ME) Client bus API | ||
2 | =============================================== | ||
3 | |||
4 | |||
5 | Rationale | ||
6 | ========= | ||
7 | MEI misc character device is useful for dedicated applications to send and receive | ||
8 | data to the many FW appliance found in Intel's ME from the user space. | ||
9 | However for some of the ME functionalities it make sense to leverage existing software | ||
10 | stack and expose them through existing kernel subsystems. | ||
11 | |||
12 | In order to plug seamlessly into the kernel device driver model we add kernel virtual | ||
13 | bus abstraction on top of the MEI driver. This allows implementing linux kernel drivers | ||
14 | for the various MEI features as a stand alone entities found in their respective subsystem. | ||
15 | Existing device drivers can even potentially be re-used by adding an MEI CL bus layer to | ||
16 | the existing code. | ||
17 | |||
18 | |||
19 | MEI CL bus API | ||
20 | =========== | ||
21 | A driver implementation for an MEI Client is very similar to existing bus | ||
22 | based device drivers. The driver registers itself as an MEI CL bus driver through | ||
23 | the mei_cl_driver structure: | ||
24 | |||
25 | struct mei_cl_driver { | ||
26 | struct device_driver driver; | ||
27 | const char *name; | ||
28 | |||
29 | const struct mei_cl_device_id *id_table; | ||
30 | |||
31 | int (*probe)(struct mei_cl_device *dev, const struct mei_cl_id *id); | ||
32 | int (*remove)(struct mei_cl_device *dev); | ||
33 | }; | ||
34 | |||
35 | struct mei_cl_id { | ||
36 | char name[MEI_NAME_SIZE]; | ||
37 | kernel_ulong_t driver_info; | ||
38 | }; | ||
39 | |||
40 | The mei_cl_id structure allows the driver to bind itself against a device name. | ||
41 | |||
42 | To actually register a driver on the ME Client bus one must call the mei_cl_add_driver() | ||
43 | API. This is typically called at module init time. | ||
44 | |||
45 | Once registered on the ME Client bus, a driver will typically try to do some I/O on | ||
46 | this bus and this should be done through the mei_cl_send() and mei_cl_recv() | ||
47 | routines. The latter is synchronous (blocks and sleeps until data shows up). | ||
48 | In order for drivers to be notified of pending events waiting for them (e.g. | ||
49 | an Rx event) they can register an event handler through the | ||
50 | mei_cl_register_event_cb() routine. Currently only the MEI_EVENT_RX event | ||
51 | will trigger an event handler call and the driver implementation is supposed | ||
52 | to call mei_recv() from the event handler in order to fetch the pending | ||
53 | received buffers. | ||
54 | |||
55 | |||
56 | Example | ||
57 | ======= | ||
58 | As a theoretical example let's pretend the ME comes with a "contact" NFC IP. | ||
59 | The driver init and exit routines for this device would look like: | ||
60 | |||
61 | #define CONTACT_DRIVER_NAME "contact" | ||
62 | |||
63 | static struct mei_cl_device_id contact_mei_cl_tbl[] = { | ||
64 | { CONTACT_DRIVER_NAME, }, | ||
65 | |||
66 | /* required last entry */ | ||
67 | { } | ||
68 | }; | ||
69 | MODULE_DEVICE_TABLE(mei_cl, contact_mei_cl_tbl); | ||
70 | |||
71 | static struct mei_cl_driver contact_driver = { | ||
72 | .id_table = contact_mei_tbl, | ||
73 | .name = CONTACT_DRIVER_NAME, | ||
74 | |||
75 | .probe = contact_probe, | ||
76 | .remove = contact_remove, | ||
77 | }; | ||
78 | |||
79 | static int contact_init(void) | ||
80 | { | ||
81 | int r; | ||
82 | |||
83 | r = mei_cl_driver_register(&contact_driver); | ||
84 | if (r) { | ||
85 | pr_err(CONTACT_DRIVER_NAME ": driver registration failed\n"); | ||
86 | return r; | ||
87 | } | ||
88 | |||
89 | return 0; | ||
90 | } | ||
91 | |||
92 | static void __exit contact_exit(void) | ||
93 | { | ||
94 | mei_cl_driver_unregister(&contact_driver); | ||
95 | } | ||
96 | |||
97 | module_init(contact_init); | ||
98 | module_exit(contact_exit); | ||
99 | |||
100 | And the driver's simplified probe routine would look like that: | ||
101 | |||
102 | int contact_probe(struct mei_cl_device *dev, struct mei_cl_device_id *id) | ||
103 | { | ||
104 | struct contact_driver *contact; | ||
105 | |||
106 | [...] | ||
107 | mei_cl_enable_device(dev); | ||
108 | |||
109 | mei_cl_register_event_cb(dev, contact_event_cb, contact); | ||
110 | |||
111 | return 0; | ||
112 | } | ||
113 | |||
114 | In the probe routine the driver first enable the MEI device and then registers | ||
115 | an ME bus event handler which is as close as it can get to registering a | ||
116 | threaded IRQ handler. | ||
117 | The handler implementation will typically call some I/O routine depending on | ||
118 | the pending events: | ||
119 | |||
120 | #define MAX_NFC_PAYLOAD 128 | ||
121 | |||
122 | static void contact_event_cb(struct mei_cl_device *dev, u32 events, | ||
123 | void *context) | ||
124 | { | ||
125 | struct contact_driver *contact = context; | ||
126 | |||
127 | if (events & BIT(MEI_EVENT_RX)) { | ||
128 | u8 payload[MAX_NFC_PAYLOAD]; | ||
129 | int payload_size; | ||
130 | |||
131 | payload_size = mei_recv(dev, payload, MAX_NFC_PAYLOAD); | ||
132 | if (payload_size <= 0) | ||
133 | return; | ||
134 | |||
135 | /* Hook to the NFC subsystem */ | ||
136 | nfc_hci_recv_frame(contact->hdev, payload, payload_size); | ||
137 | } | ||
138 | } | ||
diff --git a/Documentation/pinctrl.txt b/Documentation/pinctrl.txt index a2b57e0a1db0..447fd4cd54ec 100644 --- a/Documentation/pinctrl.txt +++ b/Documentation/pinctrl.txt | |||
@@ -736,6 +736,13 @@ All the above functions are mandatory to implement for a pinmux driver. | |||
736 | Pin control interaction with the GPIO subsystem | 736 | Pin control interaction with the GPIO subsystem |
737 | =============================================== | 737 | =============================================== |
738 | 738 | ||
739 | Note that the following implies that the use case is to use a certain pin | ||
740 | from the Linux kernel using the API in <linux/gpio.h> with gpio_request() | ||
741 | and similar functions. There are cases where you may be using something | ||
742 | that your datasheet calls "GPIO mode" but actually is just an electrical | ||
743 | configuration for a certain device. See the section below named | ||
744 | "GPIO mode pitfalls" for more details on this scenario. | ||
745 | |||
739 | The public pinmux API contains two functions named pinctrl_request_gpio() | 746 | The public pinmux API contains two functions named pinctrl_request_gpio() |
740 | and pinctrl_free_gpio(). These two functions shall *ONLY* be called from | 747 | and pinctrl_free_gpio(). These two functions shall *ONLY* be called from |
741 | gpiolib-based drivers as part of their gpio_request() and | 748 | gpiolib-based drivers as part of their gpio_request() and |
@@ -774,6 +781,111 @@ obtain the function "gpioN" where "N" is the global GPIO pin number if no | |||
774 | special GPIO-handler is registered. | 781 | special GPIO-handler is registered. |
775 | 782 | ||
776 | 783 | ||
784 | GPIO mode pitfalls | ||
785 | ================== | ||
786 | |||
787 | Sometime the developer may be confused by a datasheet talking about a pin | ||
788 | being possible to set into "GPIO mode". It appears that what hardware | ||
789 | engineers mean with "GPIO mode" is not necessarily the use case that is | ||
790 | implied in the kernel interface <linux/gpio.h>: a pin that you grab from | ||
791 | kernel code and then either listen for input or drive high/low to | ||
792 | assert/deassert some external line. | ||
793 | |||
794 | Rather hardware engineers think that "GPIO mode" means that you can | ||
795 | software-control a few electrical properties of the pin that you would | ||
796 | not be able to control if the pin was in some other mode, such as muxed in | ||
797 | for a device. | ||
798 | |||
799 | Example: a pin is usually muxed in to be used as a UART TX line. But during | ||
800 | system sleep, we need to put this pin into "GPIO mode" and ground it. | ||
801 | |||
802 | If you make a 1-to-1 map to the GPIO subsystem for this pin, you may start | ||
803 | to think that you need to come up with something real complex, that the | ||
804 | pin shall be used for UART TX and GPIO at the same time, that you will grab | ||
805 | a pin control handle and set it to a certain state to enable UART TX to be | ||
806 | muxed in, then twist it over to GPIO mode and use gpio_direction_output() | ||
807 | to drive it low during sleep, then mux it over to UART TX again when you | ||
808 | wake up and maybe even gpio_request/gpio_free as part of this cycle. This | ||
809 | all gets very complicated. | ||
810 | |||
811 | The solution is to not think that what the datasheet calls "GPIO mode" | ||
812 | has to be handled by the <linux/gpio.h> interface. Instead view this as | ||
813 | a certain pin config setting. Look in e.g. <linux/pinctrl/pinconf-generic.h> | ||
814 | and you find this in the documentation: | ||
815 | |||
816 | PIN_CONFIG_OUTPUT: this will configure the pin in output, use argument | ||
817 | 1 to indicate high level, argument 0 to indicate low level. | ||
818 | |||
819 | So it is perfectly possible to push a pin into "GPIO mode" and drive the | ||
820 | line low as part of the usual pin control map. So for example your UART | ||
821 | driver may look like this: | ||
822 | |||
823 | #include <linux/pinctrl/consumer.h> | ||
824 | |||
825 | struct pinctrl *pinctrl; | ||
826 | struct pinctrl_state *pins_default; | ||
827 | struct pinctrl_state *pins_sleep; | ||
828 | |||
829 | pins_default = pinctrl_lookup_state(uap->pinctrl, PINCTRL_STATE_DEFAULT); | ||
830 | pins_sleep = pinctrl_lookup_state(uap->pinctrl, PINCTRL_STATE_SLEEP); | ||
831 | |||
832 | /* Normal mode */ | ||
833 | retval = pinctrl_select_state(pinctrl, pins_default); | ||
834 | /* Sleep mode */ | ||
835 | retval = pinctrl_select_state(pinctrl, pins_sleep); | ||
836 | |||
837 | And your machine configuration may look like this: | ||
838 | -------------------------------------------------- | ||
839 | |||
840 | static unsigned long uart_default_mode[] = { | ||
841 | PIN_CONF_PACKED(PIN_CONFIG_DRIVE_PUSH_PULL, 0), | ||
842 | }; | ||
843 | |||
844 | static unsigned long uart_sleep_mode[] = { | ||
845 | PIN_CONF_PACKED(PIN_CONFIG_OUTPUT, 0), | ||
846 | }; | ||
847 | |||
848 | static struct pinctrl_map __initdata pinmap[] = { | ||
849 | PIN_MAP_MUX_GROUP("uart", PINCTRL_STATE_DEFAULT, "pinctrl-foo", | ||
850 | "u0_group", "u0"), | ||
851 | PIN_MAP_CONFIGS_PIN("uart", PINCTRL_STATE_DEFAULT, "pinctrl-foo", | ||
852 | "UART_TX_PIN", uart_default_mode), | ||
853 | PIN_MAP_MUX_GROUP("uart", PINCTRL_STATE_SLEEP, "pinctrl-foo", | ||
854 | "u0_group", "gpio-mode"), | ||
855 | PIN_MAP_CONFIGS_PIN("uart", PINCTRL_STATE_SLEEP, "pinctrl-foo", | ||
856 | "UART_TX_PIN", uart_sleep_mode), | ||
857 | }; | ||
858 | |||
859 | foo_init(void) { | ||
860 | pinctrl_register_mappings(pinmap, ARRAY_SIZE(pinmap)); | ||
861 | } | ||
862 | |||
863 | Here the pins we want to control are in the "u0_group" and there is some | ||
864 | function called "u0" that can be enabled on this group of pins, and then | ||
865 | everything is UART business as usual. But there is also some function | ||
866 | named "gpio-mode" that can be mapped onto the same pins to move them into | ||
867 | GPIO mode. | ||
868 | |||
869 | This will give the desired effect without any bogus interaction with the | ||
870 | GPIO subsystem. It is just an electrical configuration used by that device | ||
871 | when going to sleep, it might imply that the pin is set into something the | ||
872 | datasheet calls "GPIO mode" but that is not the point: it is still used | ||
873 | by that UART device to control the pins that pertain to that very UART | ||
874 | driver, putting them into modes needed by the UART. GPIO in the Linux | ||
875 | kernel sense are just some 1-bit line, and is a different use case. | ||
876 | |||
877 | How the registers are poked to attain the push/pull and output low | ||
878 | configuration and the muxing of the "u0" or "gpio-mode" group onto these | ||
879 | pins is a question for the driver. | ||
880 | |||
881 | Some datasheets will be more helpful and refer to the "GPIO mode" as | ||
882 | "low power mode" rather than anything to do with GPIO. This often means | ||
883 | the same thing electrically speaking, but in this latter case the | ||
884 | software engineers will usually quickly identify that this is some | ||
885 | specific muxing/configuration rather than anything related to the GPIO | ||
886 | API. | ||
887 | |||
888 | |||
777 | Board/machine configuration | 889 | Board/machine configuration |
778 | ================================== | 890 | ================================== |
779 | 891 | ||
diff --git a/Documentation/s390/s390dbf.txt b/Documentation/s390/s390dbf.txt index ae66f9b90a25..fcaf0b4efba2 100644 --- a/Documentation/s390/s390dbf.txt +++ b/Documentation/s390/s390dbf.txt | |||
@@ -143,7 +143,8 @@ Parameter: id: handle for debug log | |||
143 | 143 | ||
144 | Return Value: none | 144 | Return Value: none |
145 | 145 | ||
146 | Description: frees memory for a debug log | 146 | Description: frees memory for a debug log and removes all registered debug |
147 | views. | ||
147 | Must not be called within an interrupt handler | 148 | Must not be called within an interrupt handler |
148 | 149 | ||
149 | --------------------------------------------------------------------------- | 150 | --------------------------------------------------------------------------- |