summaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/00-INDEX2
-rw-r--r--Documentation/ABI/stable/sysfs-firmware-opal-dump41
-rw-r--r--Documentation/ABI/stable/sysfs-firmware-opal-elog60
-rw-r--r--Documentation/ABI/testing/sysfs-bus-event_source-devices-events517
-rw-r--r--Documentation/ABI/testing/sysfs-bus-event_source-devices-hv_24x723
-rw-r--r--Documentation/ABI/testing/sysfs-bus-event_source-devices-hv_gpci43
-rw-r--r--Documentation/ABI/testing/sysfs-class-scsi_host16
-rw-r--r--Documentation/ABI/testing/sysfs-devices-power27
-rw-r--r--Documentation/ABI/testing/sysfs-firmware-ofw28
-rw-r--r--Documentation/ABI/testing/sysfs-power5
-rw-r--r--Documentation/ABI/testing/sysfs-tty3
-rw-r--r--Documentation/DocBook/Makefile2
-rw-r--r--Documentation/DocBook/w1.tmpl101
-rw-r--r--Documentation/DocBook/writing-an-alsa-driver.tmpl72
-rw-r--r--Documentation/PCI/MSI-HOWTO.txt119
-rw-r--r--Documentation/PCI/pci-iov-howto.txt4
-rw-r--r--Documentation/RCU/RTFP.txt149
-rw-r--r--Documentation/RCU/checklist.txt18
-rw-r--r--Documentation/arm64/memory.txt16
-rw-r--r--Documentation/blockdev/drbd/data-structure-v9.txt38
-rw-r--r--Documentation/connector/cn_test.c2
-rw-r--r--Documentation/cpu-freq/core.txt4
-rw-r--r--Documentation/cpu-freq/cpu-drivers.txt8
-rw-r--r--Documentation/device-mapper/cache.txt11
-rw-r--r--Documentation/device-mapper/thin-provisioning.txt34
-rw-r--r--Documentation/devices.txt2
-rw-r--r--Documentation/devicetree/bindings/arm/armada-370-xp-mpic.txt8
-rw-r--r--Documentation/devicetree/bindings/arm/atmel-adc.txt5
-rw-r--r--Documentation/devicetree/bindings/arm/marvell,dove.txt22
-rw-r--r--Documentation/devicetree/bindings/arm/omap/omap.txt2
-rw-r--r--Documentation/devicetree/bindings/ata/ahci-platform.txt22
-rw-r--r--Documentation/devicetree/bindings/ata/apm-xgene.txt76
-rw-r--r--Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt4
-rw-r--r--Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt16
-rw-r--r--Documentation/devicetree/bindings/graph.txt129
-rw-r--r--Documentation/devicetree/bindings/i2c/trivial-devices.txt1
-rw-r--r--Documentation/devicetree/bindings/iio/adc/vf610-adc.txt22
-rw-r--r--Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt113
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt4
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/allwinner,sun67i-sc-nmi.txt27
-rw-r--r--Documentation/devicetree/bindings/memory-controllers/fsl/ifc.txt (renamed from Documentation/devicetree/bindings/powerpc/fsl/ifc.txt)0
-rw-r--r--Documentation/devicetree/bindings/memory-controllers/ti-aemif.txt210
-rw-r--r--Documentation/devicetree/bindings/mfd/s2mpa01.txt90
-rw-r--r--Documentation/devicetree/bindings/mfd/s2mps11.txt12
-rw-r--r--Documentation/devicetree/bindings/mfd/tps65910.txt2
-rw-r--r--Documentation/devicetree/bindings/misc/allwinner,sunxi-sid.txt4
-rw-r--r--Documentation/devicetree/bindings/misc/atmel-ssc.txt8
-rw-r--r--Documentation/devicetree/bindings/misc/sram.txt35
-rw-r--r--Documentation/devicetree/bindings/net/micrel-ks8851.txt1
-rw-r--r--Documentation/devicetree/bindings/net/opencores-ethoc.txt22
-rw-r--r--Documentation/devicetree/bindings/net/sti-dwmac.txt58
-rw-r--r--Documentation/devicetree/bindings/phy/apm-xgene-phy.txt79
-rw-r--r--Documentation/devicetree/bindings/phy/samsung-phy.txt54
-rw-r--r--Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt26
-rw-r--r--Documentation/devicetree/bindings/phy/ti-phy.txt86
-rw-r--r--Documentation/devicetree/bindings/pinctrl/brcm,bcm11351-pinctrl.txt (renamed from Documentation/devicetree/bindings/pinctrl/brcm,capri-pinctrl.txt)8
-rw-r--r--Documentation/devicetree/bindings/pinctrl/marvell,armada-370-pinctrl.txt1
-rw-r--r--Documentation/devicetree/bindings/pinctrl/marvell,armada-375-pinctrl.txt82
-rw-r--r--Documentation/devicetree/bindings/pinctrl/marvell,armada-38x-pinctrl.txt80
-rw-r--r--Documentation/devicetree/bindings/pinctrl/marvell,armada-xp-pinctrl.txt1
-rw-r--r--Documentation/devicetree/bindings/pinctrl/marvell,dove-pinctrl.txt1
-rw-r--r--Documentation/devicetree/bindings/pinctrl/marvell,kirkwood-pinctrl.txt1
-rw-r--r--Documentation/devicetree/bindings/pinctrl/marvell,mvebu-pinctrl.txt2
-rw-r--r--Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt7
-rw-r--r--Documentation/devicetree/bindings/pinctrl/pinctrl-st.txt73
-rw-r--r--Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt14
-rw-r--r--Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt1
-rw-r--r--Documentation/devicetree/bindings/powerpc/fsl/l2cache.txt23
-rw-r--r--Documentation/devicetree/bindings/powerpc/fsl/mem-ctrlr.txt27
-rw-r--r--Documentation/devicetree/bindings/regulator/gpio-regulator.txt4
-rw-r--r--Documentation/devicetree/bindings/regulator/pfuze100.txt96
-rw-r--r--Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt13
-rw-r--r--Documentation/devicetree/bindings/regulator/ti-abb-regulator.txt6
-rw-r--r--Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt133
-rw-r--r--Documentation/devicetree/bindings/serial/efm32-uart.txt4
-rw-r--r--Documentation/devicetree/bindings/serial/fsl-lpuart.txt21
-rw-r--r--Documentation/devicetree/bindings/serial/maxim,max310x.txt36
-rw-r--r--Documentation/devicetree/bindings/serial/renesas,sci-serial.txt2
-rw-r--r--Documentation/devicetree/bindings/sound/armada-370db-audio.txt27
-rw-r--r--Documentation/devicetree/bindings/sound/cs42xx8.txt28
-rw-r--r--Documentation/devicetree/bindings/sound/da9055.txt22
-rw-r--r--Documentation/devicetree/bindings/sound/davinci-evm-audio.txt9
-rw-r--r--Documentation/devicetree/bindings/sound/eukrea-tlv320.txt21
-rw-r--r--Documentation/devicetree/bindings/sound/fsl,esai.txt5
-rw-r--r--Documentation/devicetree/bindings/sound/fsl,spdif.txt5
-rw-r--r--Documentation/devicetree/bindings/sound/mvebu-audio.txt1
-rw-r--r--Documentation/devicetree/bindings/sound/pcm512x.txt30
-rw-r--r--Documentation/devicetree/bindings/sound/renesas,rsnd.txt105
-rw-r--r--Documentation/devicetree/bindings/sound/simple-card.txt65
-rw-r--r--Documentation/devicetree/bindings/sound/sirf-audio-codec.txt17
-rw-r--r--Documentation/devicetree/bindings/sound/sirf-audio-port.txt20
-rw-r--r--Documentation/devicetree/bindings/sound/sirf-audio.txt41
-rw-r--r--Documentation/devicetree/bindings/sound/tdm-slot.txt20
-rw-r--r--Documentation/devicetree/bindings/sound/tlv320aic31xx.txt61
-rw-r--r--Documentation/devicetree/bindings/sound/tlv320aic32x4.txt30
-rw-r--r--Documentation/devicetree/bindings/sound/tlv320aic3x.txt1
-rw-r--r--Documentation/devicetree/bindings/sound/widgets.txt20
-rw-r--r--Documentation/devicetree/bindings/spi/efm32-spi.txt8
-rw-r--r--Documentation/devicetree/bindings/spi/qcom,spi-qup.txt85
-rw-r--r--Documentation/devicetree/bindings/spi/sh-hspi.txt28
-rw-r--r--Documentation/devicetree/bindings/spi/sh-msiof.txt42
-rw-r--r--Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt2
-rw-r--r--Documentation/devicetree/bindings/spi/spi-rspi.txt61
-rw-r--r--Documentation/devicetree/bindings/spi/spi-sun4i.txt24
-rw-r--r--Documentation/devicetree/bindings/spi/spi-sun6i.txt24
-rw-r--r--Documentation/devicetree/bindings/spi/spi-xtensa-xtfpga.txt9
-rw-r--r--Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.txt61
-rw-r--r--Documentation/devicetree/bindings/spmi/spmi.txt41
-rw-r--r--Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt48
-rw-r--r--Documentation/devicetree/bindings/staging/imx-drm/hdmi.txt58
-rw-r--r--Documentation/devicetree/bindings/staging/imx-drm/ldb.txt20
-rw-r--r--Documentation/devicetree/bindings/timer/allwinner,sun4i-timer.txt4
-rw-r--r--Documentation/devicetree/bindings/timer/ti,keystone-timer.txt29
-rw-r--r--Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt2
-rw-r--r--Documentation/devicetree/bindings/usb/ci-hdrc-zevio.txt17
-rw-r--r--Documentation/devicetree/bindings/usb/dwc3.txt6
-rw-r--r--Documentation/devicetree/bindings/usb/fsl-usb.txt4
-rw-r--r--Documentation/devicetree/bindings/usb/mxs-phy.txt8
-rw-r--r--Documentation/devicetree/bindings/usb/omap-usb.txt24
-rw-r--r--Documentation/devicetree/bindings/usb/usb-ehci.txt27
-rw-r--r--Documentation/devicetree/bindings/usb/usb-ohci.txt25
-rw-r--r--Documentation/devicetree/bindings/usb/usb-phy.txt48
-rw-r--r--Documentation/devicetree/bindings/usb/usb-uhci.txt (renamed from Documentation/devicetree/bindings/usb/platform-uhci.txt)4
-rw-r--r--Documentation/devicetree/bindings/usb/usb-xhci.txt4
-rw-r--r--Documentation/devicetree/bindings/usb/via,vt8500-ehci.txt15
-rw-r--r--Documentation/devicetree/bindings/usb/vt8500-ehci.txt12
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt17
-rw-r--r--Documentation/devicetree/bindings/watchdog/of-xilinx-wdt.txt23
-rw-r--r--Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt6
-rw-r--r--Documentation/fmc/fmc-write-eeprom.txt77
-rw-r--r--Documentation/hwmon/adc128d81847
-rw-r--r--Documentation/hwmon/lm952458
-rw-r--r--Documentation/hwmon/ltc294584
-rw-r--r--Documentation/hwmon/ltc297817
-rw-r--r--Documentation/hwmon/ltc426056
-rw-r--r--Documentation/kernel-parameters.txt51
-rw-r--r--Documentation/kernel-per-CPU-kthreads.txt13
-rw-r--r--Documentation/memory-barriers.txt137
-rw-r--r--Documentation/networking/3c505.txt45
-rw-r--r--Documentation/networking/can.txt6
-rw-r--r--Documentation/networking/netlink_mmap.txt4
-rw-r--r--Documentation/networking/packet_mmap.txt2
-rw-r--r--Documentation/networking/timestamping.txt52
-rw-r--r--Documentation/phy/samsung-usb2.txt135
-rw-r--r--Documentation/power/pm_qos_interface.txt82
-rw-r--r--Documentation/power/runtime_pm.txt29
-rw-r--r--Documentation/scsi/ChangeLog.megaraid_sas13
-rw-r--r--Documentation/sgi-visws.txt13
-rw-r--r--Documentation/sound/oss/vwsnd293
-rw-r--r--Documentation/spi/spidev6
-rw-r--r--Documentation/spi/spidev_fdx.c8
-rw-r--r--Documentation/spi/spidev_test.c45
-rw-r--r--Documentation/sysctl/kernel.txt15
-rw-r--r--Documentation/trace/events-power.txt2
-rw-r--r--Documentation/virtual/kvm/api.txt47
-rw-r--r--Documentation/virtual/kvm/devices/s390_flic.txt91
-rw-r--r--Documentation/w1/masters/ds24902
-rw-r--r--Documentation/w1/w1.netlink8
-rw-r--r--Documentation/watchdog/watchdog-parameters.txt7
-rw-r--r--Documentation/x86/boot.txt4
160 files changed, 4952 insertions, 880 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX
index 07de7e19b4ce..27e67a98b7be 100644
--- a/Documentation/00-INDEX
+++ b/Documentation/00-INDEX
@@ -413,8 +413,6 @@ serial-console.txt
413 - how to set up Linux with a serial line console as the default. 413 - how to set up Linux with a serial line console as the default.
414sgi-ioc4.txt 414sgi-ioc4.txt
415 - description of the SGI IOC4 PCI (multi function) device. 415 - description of the SGI IOC4 PCI (multi function) device.
416sgi-visws.txt
417 - short blurb on the SGI Visual Workstations.
418sh/ 416sh/
419 - directory with info on porting Linux to a new architecture. 417 - directory with info on porting Linux to a new architecture.
420smsc_ece1099.txt 418smsc_ece1099.txt
diff --git a/Documentation/ABI/stable/sysfs-firmware-opal-dump b/Documentation/ABI/stable/sysfs-firmware-opal-dump
new file mode 100644
index 000000000000..32fe7f5c4880
--- /dev/null
+++ b/Documentation/ABI/stable/sysfs-firmware-opal-dump
@@ -0,0 +1,41 @@
1What: /sys/firmware/opal/dump
2Date: Feb 2014
3Contact: Stewart Smith <stewart@linux.vnet.ibm.com>
4Description:
5 This directory exposes interfaces for interacting with
6 the FSP and platform dumps through OPAL firmware interface.
7
8 This is only for the powerpc/powernv platform.
9
10 initiate_dump: When '1' is written to it,
11 we will initiate a dump.
12 Read this file for supported commands.
13
14 0xXX-0xYYYY: A directory for dump of type 0xXX and
15 id 0xYYYY (in hex). The name of this
16 directory should not be relied upon to
17 be in this format, only that it's unique
18 among all dumps. For determining the type
19 and ID of the dump, use the id and type files.
20 Do not rely on any particular size of dump
21 type or dump id.
22
23 Each dump has the following files:
24 id: An ASCII representation of the dump ID
25 in hex (e.g. '0x01')
26 type: An ASCII representation of the type of
27 dump in the format "0x%x %s" with the ID
28 in hex and a description of the dump type
29 (or 'unknown').
30 Type '0xffffffff unknown' is used when
31 we could not get the type from firmware.
32 e.g. '0x02 System/Platform Dump'
33 dump: A binary file containing the dump.
34 The size of the dump is the size of this file.
35 acknowledge: When 'ack' is written to this, we will
36 acknowledge that we've retrieved the
37 dump to the service processor. It will
38 then remove it, making the dump
39 inaccessible.
40 Reading this file will get a list of
41 supported actions.
diff --git a/Documentation/ABI/stable/sysfs-firmware-opal-elog b/Documentation/ABI/stable/sysfs-firmware-opal-elog
new file mode 100644
index 000000000000..e1f3058f5954
--- /dev/null
+++ b/Documentation/ABI/stable/sysfs-firmware-opal-elog
@@ -0,0 +1,60 @@
1What: /sys/firmware/opal/elog
2Date: Feb 2014
3Contact: Stewart Smith <stewart@linux.vnet.ibm.com>
4Description:
5 This directory exposes error log entries retrieved
6 through the OPAL firmware interface.
7
8 Each error log is identified by a unique ID and will
9 exist until explicitly acknowledged to firmware.
10
11 Each log entry has a directory in /sys/firmware/opal/elog.
12
13 Log entries may be purged by the service processor
14 before retrieved by firmware or retrieved/acknowledged by
15 Linux if there is no room for more log entries.
16
17 In the event that Linux has retrieved the log entries
18 but not explicitly acknowledged them to firmware and
19 the service processor needs more room for log entries,
20 the only remaining copy of a log message may be in
21 Linux.
22
23 Typically, a user space daemon will monitor for new
24 entries, read them out and acknowledge them.
25
26 The service processor may be able to store more log
27 entries than firmware can, so after you acknowledge
28 an event from Linux you may instantly get another one
29 from the queue that was generated some time in the past.
30
31 The raw log format is a binary format. We currently
32 do not parse this at all in kernel, leaving it up to
33 user space to solve the problem. In future, we may
34 do more parsing in kernel and add more files to make
35 it easier for simple user space processes to extract
36 more information.
37
38 For each log entry (directory), there are the following
39 files:
40
41 id: An ASCII representation of the ID of the
42 error log, in hex - e.g. "0x01".
43
44 type: An ASCII representation of the type id and
45 description of the type of error log.
46 Currently just "0x00 PEL" - platform error log.
47 In the future there may be additional types.
48
49 raw: A read-only binary file that can be read
50 to get the raw log entry. These are
51 <16kb, often just hundreds of bytes and
52 "average" 2kb.
53
54 acknowledge: Writing 'ack' to this file will acknowledge
55 the error log to firmware (and in turn
56 the service processor, if applicable).
57 Shortly after acknowledging it, the log
58 entry will be removed from sysfs.
59 Reading this file will list the supported
60 operations (curently just acknowledge). \ No newline at end of file
diff --git a/Documentation/ABI/testing/sysfs-bus-event_source-devices-events b/Documentation/ABI/testing/sysfs-bus-event_source-devices-events
index 3c1cc24361bd..7b40a3cbc26a 100644
--- a/Documentation/ABI/testing/sysfs-bus-event_source-devices-events
+++ b/Documentation/ABI/testing/sysfs-bus-event_source-devices-events
@@ -57,6 +57,523 @@ What: /sys/devices/cpu/events/PM_1PLUS_PPC_CMPL
57 /sys/devices/cpu/events/PM_LD_REF_L1 57 /sys/devices/cpu/events/PM_LD_REF_L1
58 /sys/devices/cpu/events/PM_RUN_CYC 58 /sys/devices/cpu/events/PM_RUN_CYC
59 /sys/devices/cpu/events/PM_RUN_INST_CMPL 59 /sys/devices/cpu/events/PM_RUN_INST_CMPL
60 /sys/devices/cpu/events/PM_IC_DEMAND_L2_BR_ALL
61 /sys/devices/cpu/events/PM_GCT_UTIL_7_TO_10_SLOTS
62 /sys/devices/cpu/events/PM_PMC2_SAVED
63 /sys/devices/cpu/events/PM_VSU0_16FLOP
64 /sys/devices/cpu/events/PM_MRK_LSU_DERAT_MISS
65 /sys/devices/cpu/events/PM_MRK_ST_CMPL
66 /sys/devices/cpu/events/PM_NEST_PAIR3_ADD
67 /sys/devices/cpu/events/PM_L2_ST_DISP
68 /sys/devices/cpu/events/PM_L2_CASTOUT_MOD
69 /sys/devices/cpu/events/PM_ISEG
70 /sys/devices/cpu/events/PM_MRK_INST_TIMEO
71 /sys/devices/cpu/events/PM_L2_RCST_DISP_FAIL_ADDR
72 /sys/devices/cpu/events/PM_LSU1_DC_PREF_STREAM_CONFIRM
73 /sys/devices/cpu/events/PM_IERAT_WR_64K
74 /sys/devices/cpu/events/PM_MRK_DTLB_MISS_16M
75 /sys/devices/cpu/events/PM_IERAT_MISS
76 /sys/devices/cpu/events/PM_MRK_PTEG_FROM_LMEM
77 /sys/devices/cpu/events/PM_FLOP
78 /sys/devices/cpu/events/PM_THRD_PRIO_4_5_CYC
79 /sys/devices/cpu/events/PM_BR_PRED_TA
80 /sys/devices/cpu/events/PM_EXT_INT
81 /sys/devices/cpu/events/PM_VSU_FSQRT_FDIV
82 /sys/devices/cpu/events/PM_MRK_LD_MISS_EXPOSED_CYC
83 /sys/devices/cpu/events/PM_LSU1_LDF
84 /sys/devices/cpu/events/PM_IC_WRITE_ALL
85 /sys/devices/cpu/events/PM_LSU0_SRQ_STFWD
86 /sys/devices/cpu/events/PM_PTEG_FROM_RL2L3_MOD
87 /sys/devices/cpu/events/PM_MRK_DATA_FROM_L31_SHR
88 /sys/devices/cpu/events/PM_DATA_FROM_L21_MOD
89 /sys/devices/cpu/events/PM_VSU1_SCAL_DOUBLE_ISSUED
90 /sys/devices/cpu/events/PM_VSU0_8FLOP
91 /sys/devices/cpu/events/PM_POWER_EVENT1
92 /sys/devices/cpu/events/PM_DISP_CLB_HELD_BAL
93 /sys/devices/cpu/events/PM_VSU1_2FLOP
94 /sys/devices/cpu/events/PM_LWSYNC_HELD
95 /sys/devices/cpu/events/PM_PTEG_FROM_DL2L3_SHR
96 /sys/devices/cpu/events/PM_INST_FROM_L21_MOD
97 /sys/devices/cpu/events/PM_IERAT_XLATE_WR_16MPLUS
98 /sys/devices/cpu/events/PM_IC_REQ_ALL
99 /sys/devices/cpu/events/PM_DSLB_MISS
100 /sys/devices/cpu/events/PM_L3_MISS
101 /sys/devices/cpu/events/PM_LSU0_L1_PREF
102 /sys/devices/cpu/events/PM_VSU_SCALAR_SINGLE_ISSUED
103 /sys/devices/cpu/events/PM_LSU1_DC_PREF_STREAM_CONFIRM_STRIDE
104 /sys/devices/cpu/events/PM_L2_INST
105 /sys/devices/cpu/events/PM_VSU0_FRSP
106 /sys/devices/cpu/events/PM_FLUSH_DISP
107 /sys/devices/cpu/events/PM_PTEG_FROM_L2MISS
108 /sys/devices/cpu/events/PM_VSU1_DQ_ISSUED
109 /sys/devices/cpu/events/PM_MRK_DATA_FROM_DMEM
110 /sys/devices/cpu/events/PM_LSU_FLUSH_ULD
111 /sys/devices/cpu/events/PM_PTEG_FROM_LMEM
112 /sys/devices/cpu/events/PM_MRK_DERAT_MISS_16M
113 /sys/devices/cpu/events/PM_THRD_ALL_RUN_CYC
114 /sys/devices/cpu/events/PM_MEM0_PREFETCH_DISP
115 /sys/devices/cpu/events/PM_MRK_STALL_CMPLU_CYC_COUNT
116 /sys/devices/cpu/events/PM_DATA_FROM_DL2L3_MOD
117 /sys/devices/cpu/events/PM_VSU_FRSP
118 /sys/devices/cpu/events/PM_MRK_DATA_FROM_L21_MOD
119 /sys/devices/cpu/events/PM_PMC1_OVERFLOW
120 /sys/devices/cpu/events/PM_VSU0_SINGLE
121 /sys/devices/cpu/events/PM_MRK_PTEG_FROM_L3MISS
122 /sys/devices/cpu/events/PM_MRK_PTEG_FROM_L31_SHR
123 /sys/devices/cpu/events/PM_VSU0_VECTOR_SP_ISSUED
124 /sys/devices/cpu/events/PM_VSU1_FEST
125 /sys/devices/cpu/events/PM_MRK_INST_DISP
126 /sys/devices/cpu/events/PM_VSU0_COMPLEX_ISSUED
127 /sys/devices/cpu/events/PM_LSU1_FLUSH_UST
128 /sys/devices/cpu/events/PM_FXU_IDLE
129 /sys/devices/cpu/events/PM_LSU0_FLUSH_ULD
130 /sys/devices/cpu/events/PM_MRK_DATA_FROM_DL2L3_MOD
131 /sys/devices/cpu/events/PM_LSU_LMQ_SRQ_EMPTY_ALL_CYC
132 /sys/devices/cpu/events/PM_LSU1_REJECT_LMQ_FULL
133 /sys/devices/cpu/events/PM_INST_PTEG_FROM_L21_MOD
134 /sys/devices/cpu/events/PM_INST_FROM_RL2L3_MOD
135 /sys/devices/cpu/events/PM_SHL_CREATED
136 /sys/devices/cpu/events/PM_L2_ST_HIT
137 /sys/devices/cpu/events/PM_DATA_FROM_DMEM
138 /sys/devices/cpu/events/PM_L3_LD_MISS
139 /sys/devices/cpu/events/PM_FXU1_BUSY_FXU0_IDLE
140 /sys/devices/cpu/events/PM_DISP_CLB_HELD_RES
141 /sys/devices/cpu/events/PM_L2_SN_SX_I_DONE
142 /sys/devices/cpu/events/PM_STCX_CMPL
143 /sys/devices/cpu/events/PM_VSU0_2FLOP
144 /sys/devices/cpu/events/PM_L3_PREF_MISS
145 /sys/devices/cpu/events/PM_LSU_SRQ_SYNC_CYC
146 /sys/devices/cpu/events/PM_LSU_REJECT_ERAT_MISS
147 /sys/devices/cpu/events/PM_L1_ICACHE_MISS
148 /sys/devices/cpu/events/PM_LSU1_FLUSH_SRQ
149 /sys/devices/cpu/events/PM_LD_REF_L1_LSU0
150 /sys/devices/cpu/events/PM_VSU0_FEST
151 /sys/devices/cpu/events/PM_VSU_VECTOR_SINGLE_ISSUED
152 /sys/devices/cpu/events/PM_FREQ_UP
153 /sys/devices/cpu/events/PM_DATA_FROM_LMEM
154 /sys/devices/cpu/events/PM_LSU1_LDX
155 /sys/devices/cpu/events/PM_PMC3_OVERFLOW
156 /sys/devices/cpu/events/PM_MRK_BR_MPRED
157 /sys/devices/cpu/events/PM_SHL_MATCH
158 /sys/devices/cpu/events/PM_MRK_BR_TAKEN
159 /sys/devices/cpu/events/PM_ISLB_MISS
160 /sys/devices/cpu/events/PM_DISP_HELD_THERMAL
161 /sys/devices/cpu/events/PM_INST_PTEG_FROM_RL2L3_SHR
162 /sys/devices/cpu/events/PM_LSU1_SRQ_STFWD
163 /sys/devices/cpu/events/PM_PTEG_FROM_DMEM
164 /sys/devices/cpu/events/PM_VSU_2FLOP
165 /sys/devices/cpu/events/PM_GCT_FULL_CYC
166 /sys/devices/cpu/events/PM_MRK_DATA_FROM_L3_CYC
167 /sys/devices/cpu/events/PM_LSU_SRQ_S0_ALLOC
168 /sys/devices/cpu/events/PM_MRK_DERAT_MISS_4K
169 /sys/devices/cpu/events/PM_BR_MPRED_TA
170 /sys/devices/cpu/events/PM_INST_PTEG_FROM_L2MISS
171 /sys/devices/cpu/events/PM_DPU_HELD_POWER
172 /sys/devices/cpu/events/PM_MRK_VSU_FIN
173 /sys/devices/cpu/events/PM_LSU_SRQ_S0_VALID
174 /sys/devices/cpu/events/PM_GCT_EMPTY_CYC
175 /sys/devices/cpu/events/PM_IOPS_DISP
176 /sys/devices/cpu/events/PM_RUN_SPURR
177 /sys/devices/cpu/events/PM_PTEG_FROM_L21_MOD
178 /sys/devices/cpu/events/PM_VSU0_1FLOP
179 /sys/devices/cpu/events/PM_SNOOP_TLBIE
180 /sys/devices/cpu/events/PM_DATA_FROM_L3MISS
181 /sys/devices/cpu/events/PM_VSU_SINGLE
182 /sys/devices/cpu/events/PM_DTLB_MISS_16G
183 /sys/devices/cpu/events/PM_FLUSH
184 /sys/devices/cpu/events/PM_L2_LD_HIT
185 /sys/devices/cpu/events/PM_NEST_PAIR2_AND
186 /sys/devices/cpu/events/PM_VSU1_1FLOP
187 /sys/devices/cpu/events/PM_IC_PREF_REQ
188 /sys/devices/cpu/events/PM_L3_LD_HIT
189 /sys/devices/cpu/events/PM_DISP_HELD
190 /sys/devices/cpu/events/PM_L2_LD
191 /sys/devices/cpu/events/PM_LSU_FLUSH_SRQ
192 /sys/devices/cpu/events/PM_BC_PLUS_8_CONV
193 /sys/devices/cpu/events/PM_MRK_DATA_FROM_L31_MOD_CYC
194 /sys/devices/cpu/events/PM_L2_RCST_BUSY_RC_FULL
195 /sys/devices/cpu/events/PM_TB_BIT_TRANS
196 /sys/devices/cpu/events/PM_THERMAL_MAX
197 /sys/devices/cpu/events/PM_LSU1_FLUSH_ULD
198 /sys/devices/cpu/events/PM_LSU1_REJECT_LHS
199 /sys/devices/cpu/events/PM_LSU_LRQ_S0_ALLOC
200 /sys/devices/cpu/events/PM_L3_CO_L31
201 /sys/devices/cpu/events/PM_POWER_EVENT4
202 /sys/devices/cpu/events/PM_DATA_FROM_L31_SHR
203 /sys/devices/cpu/events/PM_BR_UNCOND
204 /sys/devices/cpu/events/PM_LSU1_DC_PREF_STREAM_ALLOC
205 /sys/devices/cpu/events/PM_PMC4_REWIND
206 /sys/devices/cpu/events/PM_L2_RCLD_DISP
207 /sys/devices/cpu/events/PM_THRD_PRIO_2_3_CYC
208 /sys/devices/cpu/events/PM_MRK_PTEG_FROM_L2MISS
209 /sys/devices/cpu/events/PM_IC_DEMAND_L2_BHT_REDIRECT
210 /sys/devices/cpu/events/PM_DATA_FROM_L31_SHR
211 /sys/devices/cpu/events/PM_IC_PREF_CANCEL_L2
212 /sys/devices/cpu/events/PM_MRK_FIN_STALL_CYC_COUNT
213 /sys/devices/cpu/events/PM_BR_PRED_CCACHE
214 /sys/devices/cpu/events/PM_GCT_UTIL_1_TO_2_SLOTS
215 /sys/devices/cpu/events/PM_MRK_ST_CMPL_INT
216 /sys/devices/cpu/events/PM_LSU_TWO_TABLEWALK_CYC
217 /sys/devices/cpu/events/PM_MRK_DATA_FROM_L3MISS
218 /sys/devices/cpu/events/PM_LSU_SET_MPRED
219 /sys/devices/cpu/events/PM_FLUSH_DISP_TLBIE
220 /sys/devices/cpu/events/PM_VSU1_FCONV
221 /sys/devices/cpu/events/PM_DERAT_MISS_16G
222 /sys/devices/cpu/events/PM_INST_FROM_LMEM
223 /sys/devices/cpu/events/PM_IC_DEMAND_L2_BR_REDIRECT
224 /sys/devices/cpu/events/PM_INST_PTEG_FROM_L2
225 /sys/devices/cpu/events/PM_PTEG_FROM_L2
226 /sys/devices/cpu/events/PM_MRK_DATA_FROM_L21_SHR_CYC
227 /sys/devices/cpu/events/PM_MRK_DTLB_MISS_4K
228 /sys/devices/cpu/events/PM_VSU0_FPSCR
229 /sys/devices/cpu/events/PM_VSU1_VECT_DOUBLE_ISSUED
230 /sys/devices/cpu/events/PM_MRK_PTEG_FROM_RL2L3_MOD
231 /sys/devices/cpu/events/PM_MEM0_RQ_DISP
232 /sys/devices/cpu/events/PM_L2_LD_MISS
233 /sys/devices/cpu/events/PM_VMX_RESULT_SAT_1
234 /sys/devices/cpu/events/PM_L1_PREF
235 /sys/devices/cpu/events/PM_MRK_DATA_FROM_LMEM_CYC
236 /sys/devices/cpu/events/PM_GRP_IC_MISS_NONSPEC
237 /sys/devices/cpu/events/PM_PB_NODE_PUMP
238 /sys/devices/cpu/events/PM_SHL_MERGED
239 /sys/devices/cpu/events/PM_NEST_PAIR1_ADD
240 /sys/devices/cpu/events/PM_DATA_FROM_L3
241 /sys/devices/cpu/events/PM_LSU_FLUSH
242 /sys/devices/cpu/events/PM_LSU_SRQ_SYNC_COUNT
243 /sys/devices/cpu/events/PM_PMC2_OVERFLOW
244 /sys/devices/cpu/events/PM_LSU_LDF
245 /sys/devices/cpu/events/PM_POWER_EVENT3
246 /sys/devices/cpu/events/PM_DISP_WT
247 /sys/devices/cpu/events/PM_IC_BANK_CONFLICT
248 /sys/devices/cpu/events/PM_BR_MPRED_CR_TA
249 /sys/devices/cpu/events/PM_L2_INST_MISS
250 /sys/devices/cpu/events/PM_NEST_PAIR2_ADD
251 /sys/devices/cpu/events/PM_MRK_LSU_FLUSH
252 /sys/devices/cpu/events/PM_L2_LDST
253 /sys/devices/cpu/events/PM_INST_FROM_L31_SHR
254 /sys/devices/cpu/events/PM_VSU0_FIN
255 /sys/devices/cpu/events/PM_VSU1_FCONV
256 /sys/devices/cpu/events/PM_INST_FROM_RMEM
257 /sys/devices/cpu/events/PM_DISP_CLB_HELD_TLBIE
258 /sys/devices/cpu/events/PM_MRK_DATA_FROM_DMEM_CYC
259 /sys/devices/cpu/events/PM_BR_PRED_CR
260 /sys/devices/cpu/events/PM_LSU_REJECT
261 /sys/devices/cpu/events/PM_GCT_UTIL_3_TO_6_SLOTS
262 /sys/devices/cpu/events/PM_CMPLU_STALL_END_GCT_NOSLOT
263 /sys/devices/cpu/events/PM_LSU0_REJECT_LMQ_FULL
264 /sys/devices/cpu/events/PM_VSU_FEST
265 /sys/devices/cpu/events/PM_NEST_PAIR0_AND
266 /sys/devices/cpu/events/PM_PTEG_FROM_L3
267 /sys/devices/cpu/events/PM_POWER_EVENT2
268 /sys/devices/cpu/events/PM_IC_PREF_CANCEL_PAGE
269 /sys/devices/cpu/events/PM_VSU0_FSQRT_FDIV
270 /sys/devices/cpu/events/PM_MRK_GRP_CMPL
271 /sys/devices/cpu/events/PM_VSU0_SCAL_DOUBLE_ISSUED
272 /sys/devices/cpu/events/PM_GRP_DISP
273 /sys/devices/cpu/events/PM_LSU0_LDX
274 /sys/devices/cpu/events/PM_DATA_FROM_L2
275 /sys/devices/cpu/events/PM_MRK_DATA_FROM_RL2L3_MOD
276 /sys/devices/cpu/events/PM_VSU0_VECT_DOUBLE_ISSUED
277 /sys/devices/cpu/events/PM_VSU1_2FLOP_DOUBLE
278 /sys/devices/cpu/events/PM_THRD_PRIO_6_7_CYC
279 /sys/devices/cpu/events/PM_BC_PLUS_8_RSLV_TAKEN
280 /sys/devices/cpu/events/PM_BR_MPRED_CR
281 /sys/devices/cpu/events/PM_L3_CO_MEM
282 /sys/devices/cpu/events/PM_DATA_FROM_RL2L3_MOD
283 /sys/devices/cpu/events/PM_LSU_SRQ_FULL_CYC
284 /sys/devices/cpu/events/PM_TABLEWALK_CYC
285 /sys/devices/cpu/events/PM_MRK_PTEG_FROM_RMEM
286 /sys/devices/cpu/events/PM_LSU_SRQ_STFWD
287 /sys/devices/cpu/events/PM_INST_PTEG_FROM_RMEM
288 /sys/devices/cpu/events/PM_FXU0_FIN
289 /sys/devices/cpu/events/PM_LSU1_L1_SW_PREF
290 /sys/devices/cpu/events/PM_PTEG_FROM_L31_MOD
291 /sys/devices/cpu/events/PM_PMC5_OVERFLOW
292 /sys/devices/cpu/events/PM_LD_REF_L1_LSU1
293 /sys/devices/cpu/events/PM_INST_PTEG_FROM_L21_SHR
294 /sys/devices/cpu/events/PM_DATA_FROM_RMEM
295 /sys/devices/cpu/events/PM_VSU0_SCAL_SINGLE_ISSUED
296 /sys/devices/cpu/events/PM_BR_MPRED_LSTACK
297 /sys/devices/cpu/events/PM_MRK_DATA_FROM_RL2L3_MOD_CYC
298 /sys/devices/cpu/events/PM_LSU0_FLUSH_UST
299 /sys/devices/cpu/events/PM_LSU_NCST
300 /sys/devices/cpu/events/PM_BR_TAKEN
301 /sys/devices/cpu/events/PM_INST_PTEG_FROM_LMEM
302 /sys/devices/cpu/events/PM_DTLB_MISS_4K
303 /sys/devices/cpu/events/PM_PMC4_SAVED
304 /sys/devices/cpu/events/PM_VSU1_PERMUTE_ISSUED
305 /sys/devices/cpu/events/PM_SLB_MISS
306 /sys/devices/cpu/events/PM_LSU1_FLUSH_LRQ
307 /sys/devices/cpu/events/PM_DTLB_MISS
308 /sys/devices/cpu/events/PM_VSU1_FRSP
309 /sys/devices/cpu/events/PM_VSU_VECTOR_DOUBLE_ISSUED
310 /sys/devices/cpu/events/PM_L2_CASTOUT_SHR
311 /sys/devices/cpu/events/PM_DATA_FROM_DL2L3_SHR
312 /sys/devices/cpu/events/PM_VSU1_STF
313 /sys/devices/cpu/events/PM_ST_FIN
314 /sys/devices/cpu/events/PM_PTEG_FROM_L21_SHR
315 /sys/devices/cpu/events/PM_L2_LOC_GUESS_WRONG
316 /sys/devices/cpu/events/PM_MRK_STCX_FAIL
317 /sys/devices/cpu/events/PM_LSU0_REJECT_LHS
318 /sys/devices/cpu/events/PM_IC_PREF_CANCEL_HIT
319 /sys/devices/cpu/events/PM_L3_PREF_BUSY
320 /sys/devices/cpu/events/PM_MRK_BRU_FIN
321 /sys/devices/cpu/events/PM_LSU1_NCLD
322 /sys/devices/cpu/events/PM_INST_PTEG_FROM_L31_MOD
323 /sys/devices/cpu/events/PM_LSU_NCLD
324 /sys/devices/cpu/events/PM_LSU_LDX
325 /sys/devices/cpu/events/PM_L2_LOC_GUESS_CORRECT
326 /sys/devices/cpu/events/PM_THRESH_TIMEO
327 /sys/devices/cpu/events/PM_L3_PREF_ST
328 /sys/devices/cpu/events/PM_DISP_CLB_HELD_SYNC
329 /sys/devices/cpu/events/PM_VSU_SIMPLE_ISSUED
330 /sys/devices/cpu/events/PM_VSU1_SINGLE
331 /sys/devices/cpu/events/PM_DATA_TABLEWALK_CYC
332 /sys/devices/cpu/events/PM_L2_RC_ST_DONE
333 /sys/devices/cpu/events/PM_MRK_PTEG_FROM_L21_MOD
334 /sys/devices/cpu/events/PM_LARX_LSU1
335 /sys/devices/cpu/events/PM_MRK_DATA_FROM_RMEM
336 /sys/devices/cpu/events/PM_DISP_CLB_HELD
337 /sys/devices/cpu/events/PM_DERAT_MISS_4K
338 /sys/devices/cpu/events/PM_L2_RCLD_DISP_FAIL_ADDR
339 /sys/devices/cpu/events/PM_SEG_EXCEPTION
340 /sys/devices/cpu/events/PM_FLUSH_DISP_SB
341 /sys/devices/cpu/events/PM_L2_DC_INV
342 /sys/devices/cpu/events/PM_PTEG_FROM_DL2L3_MOD
343 /sys/devices/cpu/events/PM_DSEG
344 /sys/devices/cpu/events/PM_BR_PRED_LSTACK
345 /sys/devices/cpu/events/PM_VSU0_STF
346 /sys/devices/cpu/events/PM_LSU_FX_FIN
347 /sys/devices/cpu/events/PM_DERAT_MISS_16M
348 /sys/devices/cpu/events/PM_MRK_PTEG_FROM_DL2L3_MOD
349 /sys/devices/cpu/events/PM_GCT_UTIL_11_PLUS_SLOTS
350 /sys/devices/cpu/events/PM_INST_FROM_L3
351 /sys/devices/cpu/events/PM_MRK_IFU_FIN
352 /sys/devices/cpu/events/PM_ITLB_MISS
353 /sys/devices/cpu/events/PM_VSU_STF
354 /sys/devices/cpu/events/PM_LSU_FLUSH_UST
355 /sys/devices/cpu/events/PM_L2_LDST_MISS
356 /sys/devices/cpu/events/PM_FXU1_FIN
357 /sys/devices/cpu/events/PM_SHL_DEALLOCATED
358 /sys/devices/cpu/events/PM_L2_SN_M_WR_DONE
359 /sys/devices/cpu/events/PM_LSU_REJECT_SET_MPRED
360 /sys/devices/cpu/events/PM_L3_PREF_LD
361 /sys/devices/cpu/events/PM_L2_SN_M_RD_DONE
362 /sys/devices/cpu/events/PM_MRK_DERAT_MISS_16G
363 /sys/devices/cpu/events/PM_VSU_FCONV
364 /sys/devices/cpu/events/PM_ANY_THRD_RUN_CYC
365 /sys/devices/cpu/events/PM_LSU_LMQ_FULL_CYC
366 /sys/devices/cpu/events/PM_MRK_LSU_REJECT_LHS
367 /sys/devices/cpu/events/PM_MRK_LD_MISS_L1_CYC
368 /sys/devices/cpu/events/PM_MRK_DATA_FROM_L2_CYC
369 /sys/devices/cpu/events/PM_INST_IMC_MATCH_DISP
370 /sys/devices/cpu/events/PM_MRK_DATA_FROM_RMEM_CYC
371 /sys/devices/cpu/events/PM_VSU0_SIMPLE_ISSUED
372 /sys/devices/cpu/events/PM_MRK_PTEG_FROM_RL2L3_SHR
373 /sys/devices/cpu/events/PM_VSU_FMA_DOUBLE
374 /sys/devices/cpu/events/PM_VSU_4FLOP
375 /sys/devices/cpu/events/PM_VSU1_FIN
376 /sys/devices/cpu/events/PM_NEST_PAIR1_AND
377 /sys/devices/cpu/events/PM_INST_PTEG_FROM_RL2L3_MOD
378 /sys/devices/cpu/events/PM_PTEG_FROM_RMEM
379 /sys/devices/cpu/events/PM_LSU_LRQ_S0_VALID
380 /sys/devices/cpu/events/PM_LSU0_LDF
381 /sys/devices/cpu/events/PM_FLUSH_COMPLETION
382 /sys/devices/cpu/events/PM_ST_MISS_L1
383 /sys/devices/cpu/events/PM_L2_NODE_PUMP
384 /sys/devices/cpu/events/PM_INST_FROM_DL2L3_SHR
385 /sys/devices/cpu/events/PM_MRK_STALL_CMPLU_CYC
386 /sys/devices/cpu/events/PM_VSU1_DENORM
387 /sys/devices/cpu/events/PM_MRK_DATA_FROM_L31_SHR_CYC
388 /sys/devices/cpu/events/PM_NEST_PAIR0_ADD
389 /sys/devices/cpu/events/PM_INST_FROM_L3MISS
390 /sys/devices/cpu/events/PM_EE_OFF_EXT_INT
391 /sys/devices/cpu/events/PM_INST_PTEG_FROM_DMEM
392 /sys/devices/cpu/events/PM_INST_FROM_DL2L3_MOD
393 /sys/devices/cpu/events/PM_PMC6_OVERFLOW
394 /sys/devices/cpu/events/PM_VSU_2FLOP_DOUBLE
395 /sys/devices/cpu/events/PM_TLB_MISS
396 /sys/devices/cpu/events/PM_FXU_BUSY
397 /sys/devices/cpu/events/PM_L2_RCLD_DISP_FAIL_OTHER
398 /sys/devices/cpu/events/PM_LSU_REJECT_LMQ_FULL
399 /sys/devices/cpu/events/PM_IC_RELOAD_SHR
400 /sys/devices/cpu/events/PM_GRP_MRK
401 /sys/devices/cpu/events/PM_MRK_ST_NEST
402 /sys/devices/cpu/events/PM_VSU1_FSQRT_FDIV
403 /sys/devices/cpu/events/PM_LSU0_FLUSH_LRQ
404 /sys/devices/cpu/events/PM_LARX_LSU0
405 /sys/devices/cpu/events/PM_IBUF_FULL_CYC
406 /sys/devices/cpu/events/PM_MRK_DATA_FROM_DL2L3_SHR_CYC
407 /sys/devices/cpu/events/PM_LSU_DC_PREF_STREAM_ALLOC
408 /sys/devices/cpu/events/PM_GRP_MRK_CYC
409 /sys/devices/cpu/events/PM_MRK_DATA_FROM_RL2L3_SHR_CYC
410 /sys/devices/cpu/events/PM_L2_GLOB_GUESS_CORRECT
411 /sys/devices/cpu/events/PM_LSU_REJECT_LHS
412 /sys/devices/cpu/events/PM_MRK_DATA_FROM_LMEM
413 /sys/devices/cpu/events/PM_INST_PTEG_FROM_L3
414 /sys/devices/cpu/events/PM_FREQ_DOWN
415 /sys/devices/cpu/events/PM_PB_RETRY_NODE_PUMP
416 /sys/devices/cpu/events/PM_INST_FROM_RL2L3_SHR
417 /sys/devices/cpu/events/PM_MRK_INST_ISSUED
418 /sys/devices/cpu/events/PM_PTEG_FROM_L3MISS
419 /sys/devices/cpu/events/PM_RUN_PURR
420 /sys/devices/cpu/events/PM_MRK_GRP_IC_MISS
421 /sys/devices/cpu/events/PM_MRK_DATA_FROM_L3
422 /sys/devices/cpu/events/PM_PTEG_FROM_RL2L3_SHR
423 /sys/devices/cpu/events/PM_LSU_FLUSH_LRQ
424 /sys/devices/cpu/events/PM_MRK_DERAT_MISS_64K
425 /sys/devices/cpu/events/PM_INST_PTEG_FROM_DL2L3_MOD
426 /sys/devices/cpu/events/PM_L2_ST_MISS
427 /sys/devices/cpu/events/PM_MRK_PTEG_FROM_L21_SHR
428 /sys/devices/cpu/events/PM_LWSYNC
429 /sys/devices/cpu/events/PM_LSU0_DC_PREF_STREAM_CONFIRM_STRIDE
430 /sys/devices/cpu/events/PM_MRK_LSU_FLUSH_LRQ
431 /sys/devices/cpu/events/PM_INST_IMC_MATCH_CMPL
432 /sys/devices/cpu/events/PM_NEST_PAIR3_AND
433 /sys/devices/cpu/events/PM_PB_RETRY_SYS_PUMP
434 /sys/devices/cpu/events/PM_MRK_INST_FIN
435 /sys/devices/cpu/events/PM_MRK_PTEG_FROM_DL2L3_SHR
436 /sys/devices/cpu/events/PM_INST_FROM_L31_MOD
437 /sys/devices/cpu/events/PM_MRK_DTLB_MISS_64K
438 /sys/devices/cpu/events/PM_LSU_FIN
439 /sys/devices/cpu/events/PM_MRK_LSU_REJECT
440 /sys/devices/cpu/events/PM_L2_CO_FAIL_BUSY
441 /sys/devices/cpu/events/PM_MEM0_WQ_DISP
442 /sys/devices/cpu/events/PM_DATA_FROM_L31_MOD
443 /sys/devices/cpu/events/PM_THERMAL_WARN
444 /sys/devices/cpu/events/PM_VSU0_4FLOP
445 /sys/devices/cpu/events/PM_BR_MPRED_CCACHE
446 /sys/devices/cpu/events/PM_L1_DEMAND_WRITE
447 /sys/devices/cpu/events/PM_FLUSH_BR_MPRED
448 /sys/devices/cpu/events/PM_MRK_DTLB_MISS_16G
449 /sys/devices/cpu/events/PM_MRK_PTEG_FROM_DMEM
450 /sys/devices/cpu/events/PM_L2_RCST_DISP
451 /sys/devices/cpu/events/PM_LSU_PARTIAL_CDF
452 /sys/devices/cpu/events/PM_DISP_CLB_HELD_SB
453 /sys/devices/cpu/events/PM_VSU0_FMA_DOUBLE
454 /sys/devices/cpu/events/PM_FXU0_BUSY_FXU1_IDLE
455 /sys/devices/cpu/events/PM_IC_DEMAND_CYC
456 /sys/devices/cpu/events/PM_MRK_DATA_FROM_L21_SHR
457 /sys/devices/cpu/events/PM_MRK_LSU_FLUSH_UST
458 /sys/devices/cpu/events/PM_INST_PTEG_FROM_L3MISS
459 /sys/devices/cpu/events/PM_VSU_DENORM
460 /sys/devices/cpu/events/PM_MRK_LSU_PARTIAL_CDF
461 /sys/devices/cpu/events/PM_INST_FROM_L21_SHR
462 /sys/devices/cpu/events/PM_IC_PREF_WRITE
463 /sys/devices/cpu/events/PM_BR_PRED
464 /sys/devices/cpu/events/PM_INST_FROM_DMEM
465 /sys/devices/cpu/events/PM_IC_PREF_CANCEL_ALL
466 /sys/devices/cpu/events/PM_LSU_DC_PREF_STREAM_CONFIRM
467 /sys/devices/cpu/events/PM_MRK_LSU_FLUSH_SRQ
468 /sys/devices/cpu/events/PM_MRK_FIN_STALL_CYC
469 /sys/devices/cpu/events/PM_L2_RCST_DISP_FAIL_OTHER
470 /sys/devices/cpu/events/PM_VSU1_DD_ISSUED
471 /sys/devices/cpu/events/PM_PTEG_FROM_L31_SHR
472 /sys/devices/cpu/events/PM_DATA_FROM_L21_SHR
473 /sys/devices/cpu/events/PM_LSU0_NCLD
474 /sys/devices/cpu/events/PM_VSU1_4FLOP
475 /sys/devices/cpu/events/PM_VSU1_8FLOP
476 /sys/devices/cpu/events/PM_VSU_8FLOP
477 /sys/devices/cpu/events/PM_LSU_LMQ_SRQ_EMPTY_CYC
478 /sys/devices/cpu/events/PM_DTLB_MISS_64K
479 /sys/devices/cpu/events/PM_THRD_CONC_RUN_INST
480 /sys/devices/cpu/events/PM_MRK_PTEG_FROM_L2
481 /sys/devices/cpu/events/PM_PB_SYS_PUMP
482 /sys/devices/cpu/events/PM_VSU_FIN
483 /sys/devices/cpu/events/PM_MRK_DATA_FROM_L31_MOD
484 /sys/devices/cpu/events/PM_THRD_PRIO_0_1_CYC
485 /sys/devices/cpu/events/PM_DERAT_MISS_64K
486 /sys/devices/cpu/events/PM_PMC2_REWIND
487 /sys/devices/cpu/events/PM_INST_FROM_L2
488 /sys/devices/cpu/events/PM_GRP_BR_MPRED_NONSPEC
489 /sys/devices/cpu/events/PM_INST_DISP
490 /sys/devices/cpu/events/PM_MEM0_RD_CANCEL_TOTAL
491 /sys/devices/cpu/events/PM_LSU0_DC_PREF_STREAM_CONFIRM
492 /sys/devices/cpu/events/PM_L1_DCACHE_RELOAD_VALID
493 /sys/devices/cpu/events/PM_VSU_SCALAR_DOUBLE_ISSUED
494 /sys/devices/cpu/events/PM_L3_PREF_HIT
495 /sys/devices/cpu/events/PM_MRK_PTEG_FROM_L31_MOD
496 /sys/devices/cpu/events/PM_MRK_FXU_FIN
497 /sys/devices/cpu/events/PM_PMC4_OVERFLOW
498 /sys/devices/cpu/events/PM_MRK_PTEG_FROM_L3
499 /sys/devices/cpu/events/PM_LSU0_LMQ_LHR_MERGE
500 /sys/devices/cpu/events/PM_BTAC_HIT
501 /sys/devices/cpu/events/PM_L3_RD_BUSY
502 /sys/devices/cpu/events/PM_LSU0_L1_SW_PREF
503 /sys/devices/cpu/events/PM_INST_FROM_L2MISS
504 /sys/devices/cpu/events/PM_LSU0_DC_PREF_STREAM_ALLOC
505 /sys/devices/cpu/events/PM_L2_ST
506 /sys/devices/cpu/events/PM_VSU0_DENORM
507 /sys/devices/cpu/events/PM_MRK_DATA_FROM_DL2L3_SHR
508 /sys/devices/cpu/events/PM_BR_PRED_CR_TA
509 /sys/devices/cpu/events/PM_VSU0_FCONV
510 /sys/devices/cpu/events/PM_MRK_LSU_FLUSH_ULD
511 /sys/devices/cpu/events/PM_BTAC_MISS
512 /sys/devices/cpu/events/PM_MRK_LD_MISS_EXPOSED_CYC_COUNT
513 /sys/devices/cpu/events/PM_MRK_DATA_FROM_L2
514 /sys/devices/cpu/events/PM_LSU_DCACHE_RELOAD_VALID
515 /sys/devices/cpu/events/PM_VSU_FMA
516 /sys/devices/cpu/events/PM_LSU0_FLUSH_SRQ
517 /sys/devices/cpu/events/PM_LSU1_L1_PREF
518 /sys/devices/cpu/events/PM_IOPS_CMPL
519 /sys/devices/cpu/events/PM_L2_SYS_PUMP
520 /sys/devices/cpu/events/PM_L2_RCLD_BUSY_RC_FULL
521 /sys/devices/cpu/events/PM_LSU_LMQ_S0_ALLOC
522 /sys/devices/cpu/events/PM_FLUSH_DISP_SYNC
523 /sys/devices/cpu/events/PM_MRK_DATA_FROM_DL2L3_MOD_CYC
524 /sys/devices/cpu/events/PM_L2_IC_INV
525 /sys/devices/cpu/events/PM_MRK_DATA_FROM_L21_MOD_CYC
526 /sys/devices/cpu/events/PM_L3_PREF_LDST
527 /sys/devices/cpu/events/PM_LSU_SRQ_EMPTY_CYC
528 /sys/devices/cpu/events/PM_LSU_LMQ_S0_VALID
529 /sys/devices/cpu/events/PM_FLUSH_PARTIAL
530 /sys/devices/cpu/events/PM_VSU1_FMA_DOUBLE
531 /sys/devices/cpu/events/PM_1PLUS_PPC_DISP
532 /sys/devices/cpu/events/PM_DATA_FROM_L2MISS
533 /sys/devices/cpu/events/PM_SUSPENDED
534 /sys/devices/cpu/events/PM_VSU0_FMA
535 /sys/devices/cpu/events/PM_STCX_FAIL
536 /sys/devices/cpu/events/PM_VSU0_FSQRT_FDIV_DOUBLE
537 /sys/devices/cpu/events/PM_DC_PREF_DST
538 /sys/devices/cpu/events/PM_VSU1_SCAL_SINGLE_ISSUED
539 /sys/devices/cpu/events/PM_L3_HIT
540 /sys/devices/cpu/events/PM_L2_GLOB_GUESS_WRONG
541 /sys/devices/cpu/events/PM_MRK_DFU_FIN
542 /sys/devices/cpu/events/PM_INST_FROM_L1
543 /sys/devices/cpu/events/PM_IC_DEMAND_REQ
544 /sys/devices/cpu/events/PM_VSU1_FSQRT_FDIV_DOUBLE
545 /sys/devices/cpu/events/PM_VSU1_FMA
546 /sys/devices/cpu/events/PM_MRK_LD_MISS_L1
547 /sys/devices/cpu/events/PM_VSU0_2FLOP_DOUBLE
548 /sys/devices/cpu/events/PM_LSU_DC_PREF_STRIDED_STREAM_CONFIRM
549 /sys/devices/cpu/events/PM_INST_PTEG_FROM_L31_SHR
550 /sys/devices/cpu/events/PM_MRK_LSU_REJECT_ERAT_MISS
551 /sys/devices/cpu/events/PM_MRK_DATA_FROM_L2MISS
552 /sys/devices/cpu/events/PM_DATA_FROM_RL2L3_SHR
553 /sys/devices/cpu/events/PM_INST_FROM_PREF
554 /sys/devices/cpu/events/PM_VSU1_SQ
555 /sys/devices/cpu/events/PM_L2_LD_DISP
556 /sys/devices/cpu/events/PM_L2_DISP_ALL
557 /sys/devices/cpu/events/PM_THRD_GRP_CMPL_BOTH_CYC
558 /sys/devices/cpu/events/PM_VSU_FSQRT_FDIV_DOUBLE
559 /sys/devices/cpu/events/PM_INST_PTEG_FROM_DL2L3_SHR
560 /sys/devices/cpu/events/PM_VSU_1FLOP
561 /sys/devices/cpu/events/PM_HV_CYC
562 /sys/devices/cpu/events/PM_MRK_LSU_FIN
563 /sys/devices/cpu/events/PM_MRK_DATA_FROM_RL2L3_SHR
564 /sys/devices/cpu/events/PM_DTLB_MISS_16M
565 /sys/devices/cpu/events/PM_LSU1_LMQ_LHR_MERGE
566 /sys/devices/cpu/events/PM_IFU_FIN
567 /sys/devices/cpu/events/PM_1THRD_CON_RUN_INSTR
568 /sys/devices/cpu/events/PM_CMPLU_STALL_COUNT
569 /sys/devices/cpu/events/PM_MEM0_PB_RD_CL
570 /sys/devices/cpu/events/PM_THRD_1_RUN_CYC
571 /sys/devices/cpu/events/PM_THRD_2_CONC_RUN_INSTR
572 /sys/devices/cpu/events/PM_THRD_2_RUN_CYC
573 /sys/devices/cpu/events/PM_THRD_3_CONC_RUN_INST
574 /sys/devices/cpu/events/PM_THRD_3_RUN_CYC
575 /sys/devices/cpu/events/PM_THRD_4_CONC_RUN_INST
576 /sys/devices/cpu/events/PM_THRD_4_RUN_CYC
60 577
61Date: 2013/01/08 578Date: 2013/01/08
62 579
diff --git a/Documentation/ABI/testing/sysfs-bus-event_source-devices-hv_24x7 b/Documentation/ABI/testing/sysfs-bus-event_source-devices-hv_24x7
new file mode 100644
index 000000000000..e78ee798d7bd
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-bus-event_source-devices-hv_24x7
@@ -0,0 +1,23 @@
1What: /sys/bus/event_source/devices/hv_24x7/interface/catalog
2Date: February 2014
3Contact: Cody P Schafer <cody@linux.vnet.ibm.com>
4Description:
5 Provides access to the binary "24x7 catalog" provided by the
6 hypervisor on POWER7 and 8 systems. This catalog lists events
7 avaliable from the powerpc "hv_24x7" pmu. Its format is
8 documented here:
9 https://raw.githubusercontent.com/jmesmon/catalog-24x7/master/hv-24x7-catalog.h
10
11What: /sys/bus/event_source/devices/hv_24x7/interface/catalog_length
12Date: February 2014
13Contact: Cody P Schafer <cody@linux.vnet.ibm.com>
14Description:
15 A number equal to the length in bytes of the catalog. This is
16 also extractable from the provided binary "catalog" sysfs entry.
17
18What: /sys/bus/event_source/devices/hv_24x7/interface/catalog_version
19Date: February 2014
20Contact: Cody P Schafer <cody@linux.vnet.ibm.com>
21Description:
22 Exposes the "version" field of the 24x7 catalog. This is also
23 extractable from the provided binary "catalog" sysfs entry.
diff --git a/Documentation/ABI/testing/sysfs-bus-event_source-devices-hv_gpci b/Documentation/ABI/testing/sysfs-bus-event_source-devices-hv_gpci
new file mode 100644
index 000000000000..3fa58c23f13b
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-bus-event_source-devices-hv_gpci
@@ -0,0 +1,43 @@
1What: /sys/bus/event_source/devices/hv_gpci/interface/collect_privileged
2Date: February 2014
3Contact: Cody P Schafer <cody@linux.vnet.ibm.com>
4Description:
5 '0' if the hypervisor is configured to forbid access to event
6 counters being accumulated by other guests and to physical
7 domain event counters.
8 '1' if that access is allowed.
9
10What: /sys/bus/event_source/devices/hv_gpci/interface/ga
11Date: February 2014
12Contact: Cody P Schafer <cody@linux.vnet.ibm.com>
13Description:
14 0 or 1. Indicates whether we have access to "GA" events (listed
15 in arch/powerpc/perf/hv-gpci.h).
16
17What: /sys/bus/event_source/devices/hv_gpci/interface/expanded
18Date: February 2014
19Contact: Cody P Schafer <cody@linux.vnet.ibm.com>
20Description:
21 0 or 1. Indicates whether we have access to "EXPANDED" events (listed
22 in arch/powerpc/perf/hv-gpci.h).
23
24What: /sys/bus/event_source/devices/hv_gpci/interface/lab
25Date: February 2014
26Contact: Cody P Schafer <cody@linux.vnet.ibm.com>
27Description:
28 0 or 1. Indicates whether we have access to "LAB" events (listed
29 in arch/powerpc/perf/hv-gpci.h).
30
31What: /sys/bus/event_source/devices/hv_gpci/interface/version
32Date: February 2014
33Contact: Cody P Schafer <cody@linux.vnet.ibm.com>
34Description:
35 A number indicating the version of the gpci interface that the
36 hypervisor reports supporting.
37
38What: /sys/bus/event_source/devices/hv_gpci/interface/kernel_version
39Date: February 2014
40Contact: Cody P Schafer <cody@linux.vnet.ibm.com>
41Description:
42 A number indicating the latest version of the gpci interface
43 that the kernel is aware of.
diff --git a/Documentation/ABI/testing/sysfs-class-scsi_host b/Documentation/ABI/testing/sysfs-class-scsi_host
index 29a4f892e433..0eb255e7db12 100644
--- a/Documentation/ABI/testing/sysfs-class-scsi_host
+++ b/Documentation/ABI/testing/sysfs-class-scsi_host
@@ -11,3 +11,19 @@ Description:
11 guaranteed. The 'isci_id' attribute unambiguously identifies 11 guaranteed. The 'isci_id' attribute unambiguously identifies
12 the controller index: '0' for the first controller, 12 the controller index: '0' for the first controller,
13 '1' for the second. 13 '1' for the second.
14
15What: /sys/class/scsi_host/hostX/acciopath_status
16Date: November 2013
17Contact: Stephen M. Cameron <scameron@beardog.cce.hp.com>
18Description: This file contains the current status of the "SSD Smart Path"
19 feature of HP Smart Array RAID controllers using the hpsa
20 driver. SSD Smart Path, when enabled permits the driver to
21 send i/o requests directly to physical devices that are part
22 of a logical drive, bypassing the controllers firmware RAID
23 stack for a performance advantage when possible. A value of
24 '1' indicates the feature is enabled, and the controller may
25 use the direct i/o path to physical devices. A value of zero
26 means the feature is disabled and the controller may not use
27 the direct i/o path to physical devices. This setting is
28 controller wide, affecting all configured logical drives on the
29 controller. This file is readable and writable.
diff --git a/Documentation/ABI/testing/sysfs-devices-power b/Documentation/ABI/testing/sysfs-devices-power
index efe449bdf811..7dbf96b724ed 100644
--- a/Documentation/ABI/testing/sysfs-devices-power
+++ b/Documentation/ABI/testing/sysfs-devices-power
@@ -187,7 +187,7 @@ Description:
187 Not all drivers support this attribute. If it isn't supported, 187 Not all drivers support this attribute. If it isn't supported,
188 attempts to read or write it will yield I/O errors. 188 attempts to read or write it will yield I/O errors.
189 189
190What: /sys/devices/.../power/pm_qos_latency_us 190What: /sys/devices/.../power/pm_qos_resume_latency_us
191Date: March 2012 191Date: March 2012
192Contact: Rafael J. Wysocki <rjw@rjwysocki.net> 192Contact: Rafael J. Wysocki <rjw@rjwysocki.net>
193Description: 193Description:
@@ -205,6 +205,31 @@ Description:
205 This attribute has no effect on system-wide suspend/resume and 205 This attribute has no effect on system-wide suspend/resume and
206 hibernation. 206 hibernation.
207 207
208What: /sys/devices/.../power/pm_qos_latency_tolerance_us
209Date: January 2014
210Contact: Rafael J. Wysocki <rjw@rjwysocki.net>
211Description:
212 The /sys/devices/.../power/pm_qos_latency_tolerance_us attribute
213 contains the PM QoS active state latency tolerance limit for the
214 given device in microseconds. That is the maximum memory access
215 latency the device can suffer without any visible adverse
216 effects on user space functionality. If that value is the
217 string "any", the latency does not matter to user space at all,
218 but hardware should not be allowed to set the latency tolerance
219 for the device automatically.
220
221 Reading "auto" from this file means that the maximum memory
222 access latency for the device may be determined automatically
223 by the hardware as needed. Writing "auto" to it allows the
224 hardware to be switched to this mode if there are no other
225 latency tolerance requirements from the kernel side.
226
227 This attribute is only present if the feature controlled by it
228 is supported by the hardware.
229
230 This attribute has no effect on runtime suspend and resume of
231 devices and on system-wide suspend/resume and hibernation.
232
208What: /sys/devices/.../power/pm_qos_no_power_off 233What: /sys/devices/.../power/pm_qos_no_power_off
209Date: September 2012 234Date: September 2012
210Contact: Rafael J. Wysocki <rjw@rjwysocki.net> 235Contact: Rafael J. Wysocki <rjw@rjwysocki.net>
diff --git a/Documentation/ABI/testing/sysfs-firmware-ofw b/Documentation/ABI/testing/sysfs-firmware-ofw
new file mode 100644
index 000000000000..f562b188e71d
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-firmware-ofw
@@ -0,0 +1,28 @@
1What: /sys/firmware/devicetree/*
2Date: November 2013
3Contact: Grant Likely <grant.likely@linaro.org>
4Description:
5 When using OpenFirmware or a Flattened Device Tree to enumerate
6 hardware, the device tree structure will be exposed in this
7 directory.
8
9 It is possible for multiple device-tree directories to exist.
10 Some device drivers use a separate detached device tree which
11 have no attachment to the system tree and will appear in a
12 different subdirectory under /sys/firmware/devicetree.
13
14 Userspace must not use the /sys/firmware/devicetree/base
15 path directly, but instead should follow /proc/device-tree
16 symlink. It is possible that the absolute path will change
17 in the future, but the symlink is the stable ABI.
18
19 The /proc/device-tree symlink replaces the devicetree /proc
20 filesystem support, and has largely the same semantics and
21 should be compatible with existing userspace.
22
23 The contents of /sys/firmware/devicetree/ is a
24 hierarchy of directories, one per device tree node. The
25 directory name is the resolved path component name (node
26 name plus address). Properties are represented as files
27 in the directory. The contents of each file is the exact
28 binary data from the device tree.
diff --git a/Documentation/ABI/testing/sysfs-power b/Documentation/ABI/testing/sysfs-power
index 205a73878441..64c9276e9421 100644
--- a/Documentation/ABI/testing/sysfs-power
+++ b/Documentation/ABI/testing/sysfs-power
@@ -12,8 +12,9 @@ Contact: Rafael J. Wysocki <rjw@rjwysocki.net>
12Description: 12Description:
13 The /sys/power/state file controls the system power state. 13 The /sys/power/state file controls the system power state.
14 Reading from this file returns what states are supported, 14 Reading from this file returns what states are supported,
15 which is hard-coded to 'standby' (Power-On Suspend), 'mem' 15 which is hard-coded to 'freeze' (Low-Power Idle), 'standby'
16 (Suspend-to-RAM), and 'disk' (Suspend-to-Disk). 16 (Power-On Suspend), 'mem' (Suspend-to-RAM), and 'disk'
17 (Suspend-to-Disk).
17 18
18 Writing to this file one of these strings causes the system to 19 Writing to this file one of these strings causes the system to
19 transition into that state. Please see the file 20 transition into that state. Please see the file
diff --git a/Documentation/ABI/testing/sysfs-tty b/Documentation/ABI/testing/sysfs-tty
index a2ccec35ffce..ad22fb0ee765 100644
--- a/Documentation/ABI/testing/sysfs-tty
+++ b/Documentation/ABI/testing/sysfs-tty
@@ -3,8 +3,7 @@ Date: Nov 2010
3Contact: Kay Sievers <kay.sievers@vrfy.org> 3Contact: Kay Sievers <kay.sievers@vrfy.org>
4Description: 4Description:
5 Shows the list of currently configured 5 Shows the list of currently configured
6 tty devices used for the console, 6 console devices, like 'tty1 ttyS0'.
7 like 'tty1 ttyS0'.
8 The last entry in the file is the active 7 The last entry in the file is the active
9 device connected to /dev/console. 8 device connected to /dev/console.
10 The file supports poll() to detect virtual 9 The file supports poll() to detect virtual
diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile
index 0f9c6ff41aac..8d96ebf524e9 100644
--- a/Documentation/DocBook/Makefile
+++ b/Documentation/DocBook/Makefile
@@ -14,7 +14,7 @@ DOCBOOKS := z8530book.xml device-drivers.xml \
14 genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \ 14 genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \
15 80211.xml debugobjects.xml sh.xml regulator.xml \ 15 80211.xml debugobjects.xml sh.xml regulator.xml \
16 alsa-driver-api.xml writing-an-alsa-driver.xml \ 16 alsa-driver-api.xml writing-an-alsa-driver.xml \
17 tracepoint.xml drm.xml media_api.xml 17 tracepoint.xml drm.xml media_api.xml w1.xml
18 18
19include $(srctree)/Documentation/DocBook/media/Makefile 19include $(srctree)/Documentation/DocBook/media/Makefile
20 20
diff --git a/Documentation/DocBook/w1.tmpl b/Documentation/DocBook/w1.tmpl
new file mode 100644
index 000000000000..b0228d4c81bb
--- /dev/null
+++ b/Documentation/DocBook/w1.tmpl
@@ -0,0 +1,101 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3 "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
4
5<book id="w1id">
6 <bookinfo>
7 <title>W1: Dallas' 1-wire bus</title>
8
9 <authorgroup>
10 <author>
11 <firstname>David</firstname>
12 <surname>Fries</surname>
13 <affiliation>
14 <address>
15 <email>David@Fries.net</email>
16 </address>
17 </affiliation>
18 </author>
19
20 </authorgroup>
21
22 <copyright>
23 <year>2013</year>
24 <!--
25 <holder></holder>
26 -->
27 </copyright>
28
29 <legalnotice>
30 <para>
31 This documentation is free software; you can redistribute
32 it and/or modify it under the terms of the GNU General Public
33 License version 2.
34 </para>
35
36 <para>
37 This program is distributed in the hope that it will be
38 useful, but WITHOUT ANY WARRANTY; without even the implied
39 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
40 For more details see the file COPYING in the source
41 distribution of Linux.
42 </para>
43 </legalnotice>
44 </bookinfo>
45
46 <toc></toc>
47
48 <chapter id="w1_internal">
49 <title>W1 API internal to the kernel</title>
50
51 <sect1 id="w1_internal_api">
52 <title>W1 API internal to the kernel</title>
53 <sect2 id="w1.h">
54 <title>drivers/w1/w1.h</title>
55 <para>W1 core functions.</para>
56!Idrivers/w1/w1.h
57 </sect2>
58
59 <sect2 id="w1.c">
60 <title>drivers/w1/w1.c</title>
61 <para>W1 core functions.</para>
62!Idrivers/w1/w1.c
63 </sect2>
64
65 <sect2 id="w1_family.h">
66 <title>drivers/w1/w1_family.h</title>
67 <para>Allows registering device family operations.</para>
68!Idrivers/w1/w1_family.h
69 </sect2>
70
71 <sect2 id="w1_family.c">
72 <title>drivers/w1/w1_family.c</title>
73 <para>Allows registering device family operations.</para>
74!Edrivers/w1/w1_family.c
75 </sect2>
76
77 <sect2 id="w1_int.c">
78 <title>drivers/w1/w1_int.c</title>
79 <para>W1 internal initialization for master devices.</para>
80!Edrivers/w1/w1_int.c
81 </sect2>
82
83 <sect2 id="w1_netlink.h">
84 <title>drivers/w1/w1_netlink.h</title>
85 <para>W1 external netlink API structures and commands.</para>
86!Idrivers/w1/w1_netlink.h
87 </sect2>
88
89 <sect2 id="w1_io.c">
90 <title>drivers/w1/w1_io.c</title>
91 <para>W1 input/output.</para>
92!Edrivers/w1/w1_io.c
93!Idrivers/w1/w1_io.c
94 </sect2>
95
96 </sect1>
97
98
99 </chapter>
100
101</book>
diff --git a/Documentation/DocBook/writing-an-alsa-driver.tmpl b/Documentation/DocBook/writing-an-alsa-driver.tmpl
index 06741e925985..d0056a4e9c53 100644
--- a/Documentation/DocBook/writing-an-alsa-driver.tmpl
+++ b/Documentation/DocBook/writing-an-alsa-driver.tmpl
@@ -468,8 +468,6 @@
468 return err; 468 return err;
469 } 469 }
470 470
471 snd_card_set_dev(card, &pci->dev);
472
473 *rchip = chip; 471 *rchip = chip;
474 return 0; 472 return 0;
475 } 473 }
@@ -492,7 +490,8 @@
492 } 490 }
493 491
494 /* (2) */ 492 /* (2) */
495 err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 493 err = snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE,
494 0, &card);
496 if (err < 0) 495 if (err < 0)
497 return err; 496 return err;
498 497
@@ -591,7 +590,8 @@
591 struct snd_card *card; 590 struct snd_card *card;
592 int err; 591 int err;
593 .... 592 ....
594 err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 593 err = snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE,
594 0, &card);
595]]> 595]]>
596 </programlisting> 596 </programlisting>
597 </informalexample> 597 </informalexample>
@@ -809,28 +809,34 @@
809 809
810 <para> 810 <para>
811 As mentioned above, to create a card instance, call 811 As mentioned above, to create a card instance, call
812 <function>snd_card_create()</function>. 812 <function>snd_card_new()</function>.
813 813
814 <informalexample> 814 <informalexample>
815 <programlisting> 815 <programlisting>
816<![CDATA[ 816<![CDATA[
817 struct snd_card *card; 817 struct snd_card *card;
818 int err; 818 int err;
819 err = snd_card_create(index, id, module, extra_size, &card); 819 err = snd_card_new(&pci->dev, index, id, module, extra_size, &card);
820]]> 820]]>
821 </programlisting> 821 </programlisting>
822 </informalexample> 822 </informalexample>
823 </para> 823 </para>
824 824
825 <para> 825 <para>
826 The function takes five arguments, the card-index number, the 826 The function takes six arguments: the parent device pointer,
827 id string, the module pointer (usually 827 the card-index number, the id string, the module pointer (usually
828 <constant>THIS_MODULE</constant>), 828 <constant>THIS_MODULE</constant>),
829 the size of extra-data space, and the pointer to return the 829 the size of extra-data space, and the pointer to return the
830 card instance. The extra_size argument is used to 830 card instance. The extra_size argument is used to
831 allocate card-&gt;private_data for the 831 allocate card-&gt;private_data for the
832 chip-specific data. Note that these data 832 chip-specific data. Note that these data
833 are allocated by <function>snd_card_create()</function>. 833 are allocated by <function>snd_card_new()</function>.
834 </para>
835
836 <para>
837 The first argument, the pointer of struct
838 <structname>device</structname>, specifies the parent device.
839 For PCI devices, typically &amp;pci-&gt; is passed there.
834 </para> 840 </para>
835 </section> 841 </section>
836 842
@@ -916,16 +922,16 @@
916 </para> 922 </para>
917 923
918 <section id="card-management-chip-specific-snd-card-new"> 924 <section id="card-management-chip-specific-snd-card-new">
919 <title>1. Allocating via <function>snd_card_create()</function>.</title> 925 <title>1. Allocating via <function>snd_card_new()</function>.</title>
920 <para> 926 <para>
921 As mentioned above, you can pass the extra-data-length 927 As mentioned above, you can pass the extra-data-length
922 to the 4th argument of <function>snd_card_create()</function>, i.e. 928 to the 5th argument of <function>snd_card_new()</function>, i.e.
923 929
924 <informalexample> 930 <informalexample>
925 <programlisting> 931 <programlisting>
926<![CDATA[ 932<![CDATA[
927 err = snd_card_create(index[dev], id[dev], THIS_MODULE, 933 err = snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE,
928 sizeof(struct mychip), &card); 934 sizeof(struct mychip), &card);
929]]> 935]]>
930 </programlisting> 936 </programlisting>
931 </informalexample> 937 </informalexample>
@@ -954,7 +960,7 @@
954 960
955 <para> 961 <para>
956 After allocating a card instance via 962 After allocating a card instance via
957 <function>snd_card_create()</function> (with 963 <function>snd_card_new()</function> (with
958 <constant>0</constant> on the 4th arg), call 964 <constant>0</constant> on the 4th arg), call
959 <function>kzalloc()</function>. 965 <function>kzalloc()</function>.
960 966
@@ -963,7 +969,8 @@
963<![CDATA[ 969<![CDATA[
964 struct snd_card *card; 970 struct snd_card *card;
965 struct mychip *chip; 971 struct mychip *chip;
966 err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 972 err = snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE,
973 0, &card);
967 ..... 974 .....
968 chip = kzalloc(sizeof(*chip), GFP_KERNEL); 975 chip = kzalloc(sizeof(*chip), GFP_KERNEL);
969]]> 976]]>
@@ -1170,8 +1177,6 @@
1170 return err; 1177 return err;
1171 } 1178 }
1172 1179
1173 snd_card_set_dev(card, &pci->dev);
1174
1175 *rchip = chip; 1180 *rchip = chip;
1176 return 0; 1181 return 0;
1177 } 1182 }
@@ -1526,30 +1531,6 @@
1526 1531
1527 </section> 1532 </section>
1528 1533
1529 <section id="pci-resource-device-struct">
1530 <title>Registration of Device Struct</title>
1531 <para>
1532 At some point, typically after calling <function>snd_device_new()</function>,
1533 you need to register the struct <structname>device</structname> of the chip
1534 you're handling for udev and co. ALSA provides a macro for compatibility with
1535 older kernels. Simply call like the following:
1536 <informalexample>
1537 <programlisting>
1538<![CDATA[
1539 snd_card_set_dev(card, &pci->dev);
1540]]>
1541 </programlisting>
1542 </informalexample>
1543 so that it stores the PCI's device pointer to the card. This will be
1544 referred by ALSA core functions later when the devices are registered.
1545 </para>
1546 <para>
1547 In the case of non-PCI, pass the proper device struct pointer of the BUS
1548 instead. (In the case of legacy ISA without PnP, you don't have to do
1549 anything.)
1550 </para>
1551 </section>
1552
1553 <section id="pci-resource-entries"> 1534 <section id="pci-resource-entries">
1554 <title>PCI Entries</title> 1535 <title>PCI Entries</title>
1555 <para> 1536 <para>
@@ -5740,7 +5721,8 @@ struct _snd_pcm_runtime {
5740 struct mychip *chip; 5721 struct mychip *chip;
5741 int err; 5722 int err;
5742 .... 5723 ....
5743 err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 5724 err = snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE,
5725 0, &card);
5744 .... 5726 ....
5745 chip = kzalloc(sizeof(*chip), GFP_KERNEL); 5727 chip = kzalloc(sizeof(*chip), GFP_KERNEL);
5746 .... 5728 ....
@@ -5752,7 +5734,7 @@ struct _snd_pcm_runtime {
5752 </informalexample> 5734 </informalexample>
5753 5735
5754 When you created the chip data with 5736 When you created the chip data with
5755 <function>snd_card_create()</function>, it's anyway accessible 5737 <function>snd_card_new()</function>, it's anyway accessible
5756 via <structfield>private_data</structfield> field. 5738 via <structfield>private_data</structfield> field.
5757 5739
5758 <informalexample> 5740 <informalexample>
@@ -5766,8 +5748,8 @@ struct _snd_pcm_runtime {
5766 struct mychip *chip; 5748 struct mychip *chip;
5767 int err; 5749 int err;
5768 .... 5750 ....
5769 err = snd_card_create(index[dev], id[dev], THIS_MODULE, 5751 err = snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE,
5770 sizeof(struct mychip), &card); 5752 sizeof(struct mychip), &card);
5771 .... 5753 ....
5772 chip = card->private_data; 5754 chip = card->private_data;
5773 .... 5755 ....
diff --git a/Documentation/PCI/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt
index a8d01005f480..10a93696e55a 100644
--- a/Documentation/PCI/MSI-HOWTO.txt
+++ b/Documentation/PCI/MSI-HOWTO.txt
@@ -82,7 +82,19 @@ Most of the hard work is done for the driver in the PCI layer. It simply
82has to request that the PCI layer set up the MSI capability for this 82has to request that the PCI layer set up the MSI capability for this
83device. 83device.
84 84
854.2.1 pci_enable_msi_range 854.2.1 pci_enable_msi
86
87int pci_enable_msi(struct pci_dev *dev)
88
89A successful call allocates ONE interrupt to the device, regardless
90of how many MSIs the device supports. The device is switched from
91pin-based interrupt mode to MSI mode. The dev->irq number is changed
92to a new number which represents the message signaled interrupt;
93consequently, this function should be called before the driver calls
94request_irq(), because an MSI is delivered via a vector that is
95different from the vector of a pin-based interrupt.
96
974.2.2 pci_enable_msi_range
86 98
87int pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec) 99int pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec)
88 100
@@ -147,6 +159,11 @@ static int foo_driver_enable_msi(struct pci_dev *pdev, int nvec)
147 return pci_enable_msi_range(pdev, nvec, nvec); 159 return pci_enable_msi_range(pdev, nvec, nvec);
148} 160}
149 161
162Note, unlike pci_enable_msi_exact() function, which could be also used to
163enable a particular number of MSI-X interrupts, pci_enable_msi_range()
164returns either a negative errno or 'nvec' (not negative errno or 0 - as
165pci_enable_msi_exact() does).
166
1504.2.1.3 Single MSI mode 1674.2.1.3 Single MSI mode
151 168
152The most notorious example of the request type described above is 169The most notorious example of the request type described above is
@@ -158,7 +175,27 @@ static int foo_driver_enable_single_msi(struct pci_dev *pdev)
158 return pci_enable_msi_range(pdev, 1, 1); 175 return pci_enable_msi_range(pdev, 1, 1);
159} 176}
160 177
1614.2.2 pci_disable_msi 178Note, unlike pci_enable_msi() function, which could be also used to
179enable the single MSI mode, pci_enable_msi_range() returns either a
180negative errno or 1 (not negative errno or 0 - as pci_enable_msi()
181does).
182
1834.2.3 pci_enable_msi_exact
184
185int pci_enable_msi_exact(struct pci_dev *dev, int nvec)
186
187This variation on pci_enable_msi_range() call allows a device driver to
188request exactly 'nvec' MSIs.
189
190If this function returns a negative number, it indicates an error and
191the driver should not attempt to request any more MSI interrupts for
192this device.
193
194By contrast with pci_enable_msi_range() function, pci_enable_msi_exact()
195returns zero in case of success, which indicates MSI interrupts have been
196successfully allocated.
197
1984.2.4 pci_disable_msi
162 199
163void pci_disable_msi(struct pci_dev *dev) 200void pci_disable_msi(struct pci_dev *dev)
164 201
@@ -172,7 +209,7 @@ on any interrupt for which it previously called request_irq().
172Failure to do so results in a BUG_ON(), leaving the device with 209Failure to do so results in a BUG_ON(), leaving the device with
173MSI enabled and thus leaking its vector. 210MSI enabled and thus leaking its vector.
174 211
1754.2.3 pci_msi_vec_count 2124.2.4 pci_msi_vec_count
176 213
177int pci_msi_vec_count(struct pci_dev *dev) 214int pci_msi_vec_count(struct pci_dev *dev)
178 215
@@ -257,8 +294,8 @@ possible, likely up to the limit returned by pci_msix_vec_count() function:
257 294
258static int foo_driver_enable_msix(struct foo_adapter *adapter, int nvec) 295static int foo_driver_enable_msix(struct foo_adapter *adapter, int nvec)
259{ 296{
260 return pci_enable_msi_range(adapter->pdev, adapter->msix_entries, 297 return pci_enable_msix_range(adapter->pdev, adapter->msix_entries,
261 1, nvec); 298 1, nvec);
262} 299}
263 300
264Note the value of 'minvec' parameter is 1. As 'minvec' is inclusive, 301Note the value of 'minvec' parameter is 1. As 'minvec' is inclusive,
@@ -269,8 +306,8 @@ In this case the function could look like this:
269 306
270static int foo_driver_enable_msix(struct foo_adapter *adapter, int nvec) 307static int foo_driver_enable_msix(struct foo_adapter *adapter, int nvec)
271{ 308{
272 return pci_enable_msi_range(adapter->pdev, adapter->msix_entries, 309 return pci_enable_msix_range(adapter->pdev, adapter->msix_entries,
273 FOO_DRIVER_MINIMUM_NVEC, nvec); 310 FOO_DRIVER_MINIMUM_NVEC, nvec);
274} 311}
275 312
2764.3.1.2 Exact number of MSI-X interrupts 3134.3.1.2 Exact number of MSI-X interrupts
@@ -282,10 +319,15 @@ parameters:
282 319
283static int foo_driver_enable_msix(struct foo_adapter *adapter, int nvec) 320static int foo_driver_enable_msix(struct foo_adapter *adapter, int nvec)
284{ 321{
285 return pci_enable_msi_range(adapter->pdev, adapter->msix_entries, 322 return pci_enable_msix_range(adapter->pdev, adapter->msix_entries,
286 nvec, nvec); 323 nvec, nvec);
287} 324}
288 325
326Note, unlike pci_enable_msix_exact() function, which could be also used to
327enable a particular number of MSI-X interrupts, pci_enable_msix_range()
328returns either a negative errno or 'nvec' (not negative errno or 0 - as
329pci_enable_msix_exact() does).
330
2894.3.1.3 Specific requirements to the number of MSI-X interrupts 3314.3.1.3 Specific requirements to the number of MSI-X interrupts
290 332
291As noted above, there could be devices that can not operate with just any 333As noted above, there could be devices that can not operate with just any
@@ -332,7 +374,64 @@ Note how pci_enable_msix_range() return value is analized for a fallback -
332any error code other than -ENOSPC indicates a fatal error and should not 374any error code other than -ENOSPC indicates a fatal error and should not
333be retried. 375be retried.
334 376
3354.3.2 pci_disable_msix 3774.3.2 pci_enable_msix_exact
378
379int pci_enable_msix_exact(struct pci_dev *dev,
380 struct msix_entry *entries, int nvec)
381
382This variation on pci_enable_msix_range() call allows a device driver to
383request exactly 'nvec' MSI-Xs.
384
385If this function returns a negative number, it indicates an error and
386the driver should not attempt to allocate any more MSI-X interrupts for
387this device.
388
389By contrast with pci_enable_msix_range() function, pci_enable_msix_exact()
390returns zero in case of success, which indicates MSI-X interrupts have been
391successfully allocated.
392
393Another version of a routine that enables MSI-X mode for a device with
394specific requirements described in chapter 4.3.1.3 might look like this:
395
396/*
397 * Assume 'minvec' and 'maxvec' are non-zero
398 */
399static int foo_driver_enable_msix(struct foo_adapter *adapter,
400 int minvec, int maxvec)
401{
402 int rc;
403
404 minvec = roundup_pow_of_two(minvec);
405 maxvec = rounddown_pow_of_two(maxvec);
406
407 if (minvec > maxvec)
408 return -ERANGE;
409
410retry:
411 rc = pci_enable_msix_exact(adapter->pdev,
412 adapter->msix_entries, maxvec);
413
414 /*
415 * -ENOSPC is the only error code allowed to be analyzed
416 */
417 if (rc == -ENOSPC) {
418 if (maxvec == 1)
419 return -ENOSPC;
420
421 maxvec /= 2;
422
423 if (minvec > maxvec)
424 return -ENOSPC;
425
426 goto retry;
427 } else if (rc < 0) {
428 return rc;
429 }
430
431 return maxvec;
432}
433
4344.3.3 pci_disable_msix
336 435
337void pci_disable_msix(struct pci_dev *dev) 436void pci_disable_msix(struct pci_dev *dev)
338 437
diff --git a/Documentation/PCI/pci-iov-howto.txt b/Documentation/PCI/pci-iov-howto.txt
index 86551cc72e03..2d91ae251982 100644
--- a/Documentation/PCI/pci-iov-howto.txt
+++ b/Documentation/PCI/pci-iov-howto.txt
@@ -68,10 +68,6 @@ To disable SR-IOV capability:
68 echo 0 > \ 68 echo 0 > \
69 /sys/bus/pci/devices/<DOMAIN:BUS:DEVICE.FUNCTION>/sriov_numvfs 69 /sys/bus/pci/devices/<DOMAIN:BUS:DEVICE.FUNCTION>/sriov_numvfs
70 70
71To notify SR-IOV core of Virtual Function Migration:
72(a) In the driver:
73 irqreturn_t pci_sriov_migration(struct pci_dev *dev);
74
753.2 Usage example 713.2 Usage example
76 72
77Following piece of code illustrates the usage of the SR-IOV API. 73Following piece of code illustrates the usage of the SR-IOV API.
diff --git a/Documentation/RCU/RTFP.txt b/Documentation/RCU/RTFP.txt
index 273e654d7d08..2f0fcb2112d2 100644
--- a/Documentation/RCU/RTFP.txt
+++ b/Documentation/RCU/RTFP.txt
@@ -31,6 +31,14 @@ has lapsed, so this approach may be used in non-GPL software, if desired.
31(In contrast, implementation of RCU is permitted only in software licensed 31(In contrast, implementation of RCU is permitted only in software licensed
32under either GPL or LGPL. Sorry!!!) 32under either GPL or LGPL. Sorry!!!)
33 33
34In 1987, Rashid et al. described lazy TLB-flush [RichardRashid87a].
35At first glance, this has nothing to do with RCU, but nevertheless
36this paper helped inspire the update-side batching used in the later
37RCU implementation in DYNIX/ptx. In 1988, Barbara Liskov published
38a description of Argus that noted that use of out-of-date values can
39be tolerated in some situations. Thus, this paper provides some early
40theoretical justification for use of stale data.
41
34In 1990, Pugh [Pugh90] noted that explicitly tracking which threads 42In 1990, Pugh [Pugh90] noted that explicitly tracking which threads
35were reading a given data structure permitted deferred free to operate 43were reading a given data structure permitted deferred free to operate
36in the presence of non-terminating threads. However, this explicit 44in the presence of non-terminating threads. However, this explicit
@@ -41,11 +49,11 @@ providing a fine-grained locking design, however, it would be interesting
41to see how much of the performance advantage reported in 1990 remains 49to see how much of the performance advantage reported in 1990 remains
42today. 50today.
43 51
44At about this same time, Adams [Adams91] described ``chaotic relaxation'', 52At about this same time, Andrews [Andrews91textbook] described ``chaotic
45where the normal barriers between successive iterations of convergent 53relaxation'', where the normal barriers between successive iterations
46numerical algorithms are relaxed, so that iteration $n$ might use 54of convergent numerical algorithms are relaxed, so that iteration $n$
47data from iteration $n-1$ or even $n-2$. This introduces error, 55might use data from iteration $n-1$ or even $n-2$. This introduces
48which typically slows convergence and thus increases the number of 56error, which typically slows convergence and thus increases the number of
49iterations required. However, this increase is sometimes more than made 57iterations required. However, this increase is sometimes more than made
50up for by a reduction in the number of expensive barrier operations, 58up for by a reduction in the number of expensive barrier operations,
51which are otherwise required to synchronize the threads at the end 59which are otherwise required to synchronize the threads at the end
@@ -55,7 +63,8 @@ is thus inapplicable to most data structures in operating-system kernels.
55 63
56In 1992, Henry (now Alexia) Massalin completed a dissertation advising 64In 1992, Henry (now Alexia) Massalin completed a dissertation advising
57parallel programmers to defer processing when feasible to simplify 65parallel programmers to defer processing when feasible to simplify
58synchronization. RCU makes extremely heavy use of this advice. 66synchronization [HMassalinPhD]. RCU makes extremely heavy use of
67this advice.
59 68
60In 1993, Jacobson [Jacobson93] verbally described what is perhaps the 69In 1993, Jacobson [Jacobson93] verbally described what is perhaps the
61simplest deferred-free technique: simply waiting a fixed amount of time 70simplest deferred-free technique: simply waiting a fixed amount of time
@@ -90,27 +99,29 @@ mechanism, which is quite similar to RCU [Gamsa99]. These operating
90systems made pervasive use of RCU in place of "existence locks", which 99systems made pervasive use of RCU in place of "existence locks", which
91greatly simplifies locking hierarchies and helps avoid deadlocks. 100greatly simplifies locking hierarchies and helps avoid deadlocks.
92 101
932001 saw the first RCU presentation involving Linux [McKenney01a] 102The year 2000 saw an email exchange that would likely have
94at OLS. The resulting abundance of RCU patches was presented the 103led to yet another independent invention of something like RCU
95following year [McKenney02a], and use of RCU in dcache was first 104[RustyRussell2000a,RustyRussell2000b]. Instead, 2001 saw the first
96described that same year [Linder02a]. 105RCU presentation involving Linux [McKenney01a] at OLS. The resulting
106abundance of RCU patches was presented the following year [McKenney02a],
107and use of RCU in dcache was first described that same year [Linder02a].
97 108
98Also in 2002, Michael [Michael02b,Michael02a] presented "hazard-pointer" 109Also in 2002, Michael [Michael02b,Michael02a] presented "hazard-pointer"
99techniques that defer the destruction of data structures to simplify 110techniques that defer the destruction of data structures to simplify
100non-blocking synchronization (wait-free synchronization, lock-free 111non-blocking synchronization (wait-free synchronization, lock-free
101synchronization, and obstruction-free synchronization are all examples of 112synchronization, and obstruction-free synchronization are all examples of
102non-blocking synchronization). In particular, this technique eliminates 113non-blocking synchronization). The corresponding journal article appeared
103locking, reduces contention, reduces memory latency for readers, and 114in 2004 [MagedMichael04a]. This technique eliminates locking, reduces
104parallelizes pipeline stalls and memory latency for writers. However, 115contention, reduces memory latency for readers, and parallelizes pipeline
105these techniques still impose significant read-side overhead in the 116stalls and memory latency for writers. However, these techniques still
106form of memory barriers. Researchers at Sun worked along similar lines 117impose significant read-side overhead in the form of memory barriers.
107in the same timeframe [HerlihyLM02]. These techniques can be thought 118Researchers at Sun worked along similar lines in the same timeframe
108of as inside-out reference counts, where the count is represented by the 119[HerlihyLM02]. These techniques can be thought of as inside-out reference
109number of hazard pointers referencing a given data structure rather than 120counts, where the count is represented by the number of hazard pointers
110the more conventional counter field within the data structure itself. 121referencing a given data structure rather than the more conventional
111The key advantage of inside-out reference counts is that they can be 122counter field within the data structure itself. The key advantage
112stored in immortal variables, thus allowing races between access and 123of inside-out reference counts is that they can be stored in immortal
113deletion to be avoided. 124variables, thus allowing races between access and deletion to be avoided.
114 125
115By the same token, RCU can be thought of as a "bulk reference count", 126By the same token, RCU can be thought of as a "bulk reference count",
116where some form of reference counter covers all reference by a given CPU 127where some form of reference counter covers all reference by a given CPU
@@ -123,8 +134,10 @@ can be thought of in other terms as well.
123 134
124In 2003, the K42 group described how RCU could be used to create 135In 2003, the K42 group described how RCU could be used to create
125hot-pluggable implementations of operating-system functions [Appavoo03a]. 136hot-pluggable implementations of operating-system functions [Appavoo03a].
126Later that year saw a paper describing an RCU implementation of System 137Later that year saw a paper describing an RCU implementation
127V IPC [Arcangeli03], and an introduction to RCU in Linux Journal 138of System V IPC [Arcangeli03] (following up on a suggestion by
139Hugh Dickins [Dickins02a] and an implementation by Mingming Cao
140[MingmingCao2002IPCRCU]), and an introduction to RCU in Linux Journal
128[McKenney03a]. 141[McKenney03a].
129 142
1302004 has seen a Linux-Journal article on use of RCU in dcache 1432004 has seen a Linux-Journal article on use of RCU in dcache
@@ -383,6 +396,21 @@ for Programming Languages and Operating Systems}"
383} 396}
384} 397}
385 398
399@phdthesis{HMassalinPhD
400,author="H. Massalin"
401,title="Synthesis: An Efficient Implementation of Fundamental Operating
402System Services"
403,school="Columbia University"
404,address="New York, NY"
405,year="1992"
406,annotation={
407 Mondo optimizing compiler.
408 Wait-free stuff.
409 Good advice: defer work to avoid synchronization. See page 90
410 (PDF page 106), Section 5.4, fourth bullet point.
411}
412}
413
386@unpublished{Jacobson93 414@unpublished{Jacobson93
387,author="Van Jacobson" 415,author="Van Jacobson"
388,title="Avoid Read-Side Locking Via Delayed Free" 416,title="Avoid Read-Side Locking Via Delayed Free"
@@ -671,6 +699,20 @@ Orran Krieger and Rusty Russell and Dipankar Sarma and Maneesh Soni"
671[Viewed October 18, 2004]" 699[Viewed October 18, 2004]"
672} 700}
673 701
702@conference{Michael02b
703,author="Maged M. Michael"
704,title="High Performance Dynamic Lock-Free Hash Tables and List-Based Sets"
705,Year="2002"
706,Month="August"
707,booktitle="{Proceedings of the 14\textsuperscript{th} Annual ACM
708Symposium on Parallel
709Algorithms and Architecture}"
710,pages="73-82"
711,annotation={
712Like the title says...
713}
714}
715
674@Conference{Linder02a 716@Conference{Linder02a
675,Author="Hanna Linder and Dipankar Sarma and Maneesh Soni" 717,Author="Hanna Linder and Dipankar Sarma and Maneesh Soni"
676,Title="Scalability of the Directory Entry Cache" 718,Title="Scalability of the Directory Entry Cache"
@@ -727,6 +769,24 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell"
727} 769}
728} 770}
729 771
772@conference{Michael02a
773,author="Maged M. Michael"
774,title="Safe Memory Reclamation for Dynamic Lock-Free Objects Using Atomic
775Reads and Writes"
776,Year="2002"
777,Month="August"
778,booktitle="{Proceedings of the 21\textsuperscript{st} Annual ACM
779Symposium on Principles of Distributed Computing}"
780,pages="21-30"
781,annotation={
782 Each thread keeps an array of pointers to items that it is
783 currently referencing. Sort of an inside-out garbage collection
784 mechanism, but one that requires the accessing code to explicitly
785 state its needs. Also requires read-side memory barriers on
786 most architectures.
787}
788}
789
730@unpublished{Dickins02a 790@unpublished{Dickins02a
731,author="Hugh Dickins" 791,author="Hugh Dickins"
732,title="Use RCU for System-V IPC" 792,title="Use RCU for System-V IPC"
@@ -735,6 +795,17 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell"
735,note="private communication" 795,note="private communication"
736} 796}
737 797
798@InProceedings{HerlihyLM02
799,author={Maurice Herlihy and Victor Luchangco and Mark Moir}
800,title="The Repeat Offender Problem: A Mechanism for Supporting Dynamic-Sized,
801Lock-Free Data Structures"
802,booktitle={Proceedings of 16\textsuperscript{th} International
803Symposium on Distributed Computing}
804,year=2002
805,month="October"
806,pages="339-353"
807}
808
738@unpublished{Sarma02b 809@unpublished{Sarma02b
739,Author="Dipankar Sarma" 810,Author="Dipankar Sarma"
740,Title="Some dcache\_rcu benchmark numbers" 811,Title="Some dcache\_rcu benchmark numbers"
@@ -749,6 +820,19 @@ Andrea Arcangeli and Andi Kleen and Orran Krieger and Rusty Russell"
749} 820}
750} 821}
751 822
823@unpublished{MingmingCao2002IPCRCU
824,Author="Mingming Cao"
825,Title="[PATCH]updated ipc lock patch"
826,month="October"
827,year="2002"
828,note="Available:
829\url{https://lkml.org/lkml/2002/10/24/262}
830[Viewed February 15, 2014]"
831,annotation={
832 Mingming Cao's patch to introduce RCU to SysV IPC.
833}
834}
835
752@unpublished{LinusTorvalds2003a 836@unpublished{LinusTorvalds2003a
753,Author="Linus Torvalds" 837,Author="Linus Torvalds"
754,Title="Re: {[PATCH]} small fixes in brlock.h" 838,Title="Re: {[PATCH]} small fixes in brlock.h"
@@ -982,6 +1066,23 @@ Realtime Applications"
982} 1066}
983} 1067}
984 1068
1069@article{MagedMichael04a
1070,author="Maged M. Michael"
1071,title="Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects"
1072,Year="2004"
1073,Month="June"
1074,journal="IEEE Transactions on Parallel and Distributed Systems"
1075,volume="15"
1076,number="6"
1077,pages="491-504"
1078,url="Available:
1079\url{http://www.research.ibm.com/people/m/michael/ieeetpds-2004.pdf}
1080[Viewed March 1, 2005]"
1081,annotation={
1082 New canonical hazard-pointer citation.
1083}
1084}
1085
985@phdthesis{PaulEdwardMcKenneyPhD 1086@phdthesis{PaulEdwardMcKenneyPhD
986,author="Paul E. McKenney" 1087,author="Paul E. McKenney"
987,title="Exploiting Deferred Destruction: 1088,title="Exploiting Deferred Destruction:
diff --git a/Documentation/RCU/checklist.txt b/Documentation/RCU/checklist.txt
index 91266193b8f4..9d10d1db16a5 100644
--- a/Documentation/RCU/checklist.txt
+++ b/Documentation/RCU/checklist.txt
@@ -256,10 +256,10 @@ over a rather long period of time, but improvements are always welcome!
256 variations on this theme. 256 variations on this theme.
257 257
258 b. Limiting update rate. For example, if updates occur only 258 b. Limiting update rate. For example, if updates occur only
259 once per hour, then no explicit rate limiting is required, 259 once per hour, then no explicit rate limiting is
260 unless your system is already badly broken. The dcache 260 required, unless your system is already badly broken.
261 subsystem takes this approach -- updates are guarded 261 Older versions of the dcache subsystem take this approach,
262 by a global lock, limiting their rate. 262 guarding updates with a global lock, limiting their rate.
263 263
264 c. Trusted update -- if updates can only be done manually by 264 c. Trusted update -- if updates can only be done manually by
265 superuser or some other trusted user, then it might not 265 superuser or some other trusted user, then it might not
@@ -268,7 +268,8 @@ over a rather long period of time, but improvements are always welcome!
268 the machine. 268 the machine.
269 269
270 d. Use call_rcu_bh() rather than call_rcu(), in order to take 270 d. Use call_rcu_bh() rather than call_rcu(), in order to take
271 advantage of call_rcu_bh()'s faster grace periods. 271 advantage of call_rcu_bh()'s faster grace periods. (This
272 is only a partial solution, though.)
272 273
273 e. Periodically invoke synchronize_rcu(), permitting a limited 274 e. Periodically invoke synchronize_rcu(), permitting a limited
274 number of updates per grace period. 275 number of updates per grace period.
@@ -276,6 +277,13 @@ over a rather long period of time, but improvements are always welcome!
276 The same cautions apply to call_rcu_bh(), call_rcu_sched(), 277 The same cautions apply to call_rcu_bh(), call_rcu_sched(),
277 call_srcu(), and kfree_rcu(). 278 call_srcu(), and kfree_rcu().
278 279
280 Note that although these primitives do take action to avoid memory
281 exhaustion when any given CPU has too many callbacks, a determined
282 user could still exhaust memory. This is especially the case
283 if a system with a large number of CPUs has been configured to
284 offload all of its RCU callbacks onto a single CPU, or if the
285 system has relatively little free memory.
286
2799. All RCU list-traversal primitives, which include 2879. All RCU list-traversal primitives, which include
280 rcu_dereference(), list_for_each_entry_rcu(), and 288 rcu_dereference(), list_for_each_entry_rcu(), and
281 list_for_each_safe_rcu(), must be either within an RCU read-side 289 list_for_each_safe_rcu(), must be either within an RCU read-side
diff --git a/Documentation/arm64/memory.txt b/Documentation/arm64/memory.txt
index 5e054bfe4dde..85e24c4f215c 100644
--- a/Documentation/arm64/memory.txt
+++ b/Documentation/arm64/memory.txt
@@ -35,11 +35,13 @@ ffffffbc00000000 ffffffbdffffffff 8GB vmemmap
35 35
36ffffffbe00000000 ffffffbffbbfffff ~8GB [guard, future vmmemap] 36ffffffbe00000000 ffffffbffbbfffff ~8GB [guard, future vmmemap]
37 37
38ffffffbffbc00000 ffffffbffbdfffff 2MB earlyprintk device 38ffffffbffa000000 ffffffbffaffffff 16MB PCI I/O space
39
40ffffffbffb000000 ffffffbffbbfffff 12MB [guard]
39 41
40ffffffbffbe00000 ffffffbffbe0ffff 64KB PCI I/O space 42ffffffbffbc00000 ffffffbffbdfffff 2MB earlyprintk device
41 43
42ffffffbffbe10000 ffffffbcffffffff ~2MB [guard] 44ffffffbffbe00000 ffffffbffbffffff 2MB [guard]
43 45
44ffffffbffc000000 ffffffbfffffffff 64MB modules 46ffffffbffc000000 ffffffbfffffffff 64MB modules
45 47
@@ -60,11 +62,13 @@ fffffdfc00000000 fffffdfdffffffff 8GB vmemmap
60 62
61fffffdfe00000000 fffffdfffbbfffff ~8GB [guard, future vmmemap] 63fffffdfe00000000 fffffdfffbbfffff ~8GB [guard, future vmmemap]
62 64
63fffffdfffbc00000 fffffdfffbdfffff 2MB earlyprintk device 65fffffdfffa000000 fffffdfffaffffff 16MB PCI I/O space
66
67fffffdfffb000000 fffffdfffbbfffff 12MB [guard]
64 68
65fffffdfffbe00000 fffffdfffbe0ffff 64KB PCI I/O space 69fffffdfffbc00000 fffffdfffbdfffff 2MB earlyprintk device
66 70
67fffffdfffbe10000 fffffdfffbffffff ~2MB [guard] 71fffffdfffbe00000 fffffdfffbffffff 2MB [guard]
68 72
69fffffdfffc000000 fffffdffffffffff 64MB modules 73fffffdfffc000000 fffffdffffffffff 64MB modules
70 74
diff --git a/Documentation/blockdev/drbd/data-structure-v9.txt b/Documentation/blockdev/drbd/data-structure-v9.txt
new file mode 100644
index 000000000000..1e52a0e32624
--- /dev/null
+++ b/Documentation/blockdev/drbd/data-structure-v9.txt
@@ -0,0 +1,38 @@
1This describes the in kernel data structure for DRBD-9. Starting with
2Linux v3.14 we are reorganizing DRBD to use this data structure.
3
4Basic Data Structure
5====================
6
7A node has a number of DRBD resources. Each such resource has a number of
8devices (aka volumes) and connections to other nodes ("peer nodes"). Each DRBD
9device is represented by a block device locally.
10
11The DRBD objects are interconnected to form a matrix as depicted below; a
12drbd_peer_device object sits at each intersection between a drbd_device and a
13drbd_connection:
14
15 /--------------+---------------+.....+---------------\
16 | resource | device | | device |
17 +--------------+---------------+.....+---------------+
18 | connection | peer_device | | peer_device |
19 +--------------+---------------+.....+---------------+
20 : : : : :
21 : : : : :
22 +--------------+---------------+.....+---------------+
23 | connection | peer_device | | peer_device |
24 \--------------+---------------+.....+---------------/
25
26In this table, horizontally, devices can be accessed from resources by their
27volume number. Likewise, peer_devices can be accessed from connections by
28their volume number. Objects in the vertical direction are connected by double
29linked lists. There are back pointers from peer_devices to their connections a
30devices, and from connections and devices to their resource.
31
32All resources are in the drbd_resources double-linked list. In addition, all
33devices can be accessed by their minor device number via the drbd_devices idr.
34
35The drbd_resource, drbd_connection, and drbd_device objects are reference
36counted. The peer_device objects only serve to establish the links between
37devices and connections; their lifetime is determined by the lifetime of the
38device and connection which they reference.
diff --git a/Documentation/connector/cn_test.c b/Documentation/connector/cn_test.c
index adcca0368d60..d12cc944b696 100644
--- a/Documentation/connector/cn_test.c
+++ b/Documentation/connector/cn_test.c
@@ -145,7 +145,7 @@ static void cn_test_timer_func(unsigned long __data)
145 145
146 memcpy(m + 1, data, m->len); 146 memcpy(m + 1, data, m->len);
147 147
148 cn_netlink_send(m, 0, GFP_ATOMIC); 148 cn_netlink_send(m, 0, 0, GFP_ATOMIC);
149 kfree(m); 149 kfree(m);
150 } 150 }
151 151
diff --git a/Documentation/cpu-freq/core.txt b/Documentation/cpu-freq/core.txt
index ce0666e51036..0060d76b445f 100644
--- a/Documentation/cpu-freq/core.txt
+++ b/Documentation/cpu-freq/core.txt
@@ -92,7 +92,3 @@ values:
92cpu - number of the affected CPU 92cpu - number of the affected CPU
93old - old frequency 93old - old frequency
94new - new frequency 94new - new frequency
95
96If the cpufreq core detects the frequency has changed while the system
97was suspended, these notifiers are called with CPUFREQ_RESUMECHANGE as
98second argument.
diff --git a/Documentation/cpu-freq/cpu-drivers.txt b/Documentation/cpu-freq/cpu-drivers.txt
index 8b1a4451422e..48da5fdcb9f1 100644
--- a/Documentation/cpu-freq/cpu-drivers.txt
+++ b/Documentation/cpu-freq/cpu-drivers.txt
@@ -61,7 +61,13 @@ target_index - See below on the differences.
61 61
62And optionally 62And optionally
63 63
64cpufreq_driver.exit - A pointer to a per-CPU cleanup function. 64cpufreq_driver.exit - A pointer to a per-CPU cleanup
65 function called during CPU_POST_DEAD
66 phase of cpu hotplug process.
67
68cpufreq_driver.stop_cpu - A pointer to a per-CPU stop function
69 called during CPU_DOWN_PREPARE phase of
70 cpu hotplug process.
65 71
66cpufreq_driver.resume - A pointer to a per-CPU resume function 72cpufreq_driver.resume - A pointer to a per-CPU resume function
67 which is called with interrupts disabled 73 which is called with interrupts disabled
diff --git a/Documentation/device-mapper/cache.txt b/Documentation/device-mapper/cache.txt
index e6b72d355151..68c0f517c60e 100644
--- a/Documentation/device-mapper/cache.txt
+++ b/Documentation/device-mapper/cache.txt
@@ -124,12 +124,11 @@ the default being 204800 sectors (or 100MB).
124Updating on-disk metadata 124Updating on-disk metadata
125------------------------- 125-------------------------
126 126
127On-disk metadata is committed every time a REQ_SYNC or REQ_FUA bio is 127On-disk metadata is committed every time a FLUSH or FUA bio is written.
128written. If no such requests are made then commits will occur every 128If no such requests are made then commits will occur every second. This
129second. This means the cache behaves like a physical disk that has a 129means the cache behaves like a physical disk that has a volatile write
130write cache (the same is true of the thin-provisioning target). If 130cache. If power is lost you may lose some recent writes. The metadata
131power is lost you may lose some recent writes. The metadata should 131should always be consistent in spite of any crash.
132always be consistent in spite of any crash.
133 132
134The 'dirty' state for a cache block changes far too frequently for us 133The 'dirty' state for a cache block changes far too frequently for us
135to keep updating it on the fly. So we treat it as a hint. In normal 134to keep updating it on the fly. So we treat it as a hint. In normal
diff --git a/Documentation/device-mapper/thin-provisioning.txt b/Documentation/device-mapper/thin-provisioning.txt
index 8a7a3d46e0da..05a27e9442bd 100644
--- a/Documentation/device-mapper/thin-provisioning.txt
+++ b/Documentation/device-mapper/thin-provisioning.txt
@@ -116,6 +116,35 @@ Resuming a device with a new table itself triggers an event so the
116userspace daemon can use this to detect a situation where a new table 116userspace daemon can use this to detect a situation where a new table
117already exceeds the threshold. 117already exceeds the threshold.
118 118
119A low water mark for the metadata device is maintained in the kernel and
120will trigger a dm event if free space on the metadata device drops below
121it.
122
123Updating on-disk metadata
124-------------------------
125
126On-disk metadata is committed every time a FLUSH or FUA bio is written.
127If no such requests are made then commits will occur every second. This
128means the thin-provisioning target behaves like a physical disk that has
129a volatile write cache. If power is lost you may lose some recent
130writes. The metadata should always be consistent in spite of any crash.
131
132If data space is exhausted the pool will either error or queue IO
133according to the configuration (see: error_if_no_space). If metadata
134space is exhausted or a metadata operation fails: the pool will error IO
135until the pool is taken offline and repair is performed to 1) fix any
136potential inconsistencies and 2) clear the flag that imposes repair.
137Once the pool's metadata device is repaired it may be resized, which
138will allow the pool to return to normal operation. Note that if a pool
139is flagged as needing repair, the pool's data and metadata devices
140cannot be resized until repair is performed. It should also be noted
141that when the pool's metadata space is exhausted the current metadata
142transaction is aborted. Given that the pool will cache IO whose
143completion may have already been acknowledged to upper IO layers
144(e.g. filesystem) it is strongly suggested that consistency checks
145(e.g. fsck) be performed on those layers when repair of the pool is
146required.
147
119Thin provisioning 148Thin provisioning
120----------------- 149-----------------
121 150
@@ -258,10 +287,9 @@ ii) Status
258 should register for the event and then check the target's status. 287 should register for the event and then check the target's status.
259 288
260 held metadata root: 289 held metadata root:
261 The location, in sectors, of the metadata root that has been 290 The location, in blocks, of the metadata root that has been
262 'held' for userspace read access. '-' indicates there is no 291 'held' for userspace read access. '-' indicates there is no
263 held root. This feature is not yet implemented so '-' is 292 held root.
264 always returned.
265 293
266 discard_passdown|no_discard_passdown 294 discard_passdown|no_discard_passdown
267 Whether or not discards are actually being passed down to the 295 Whether or not discards are actually being passed down to the
diff --git a/Documentation/devices.txt b/Documentation/devices.txt
index 10378cc48374..087d2122b204 100644
--- a/Documentation/devices.txt
+++ b/Documentation/devices.txt
@@ -410,6 +410,7 @@ Your cooperation is appreciated.
410 194 = /dev/zkshim Zero-Knowledge network shim control 410 194 = /dev/zkshim Zero-Knowledge network shim control
411 195 = /dev/elographics/e2201 Elographics touchscreen E271-2201 411 195 = /dev/elographics/e2201 Elographics touchscreen E271-2201
412 196 = /dev/vfio/vfio VFIO userspace driver interface 412 196 = /dev/vfio/vfio VFIO userspace driver interface
413 197 = /dev/pxa3xx-gcu PXA3xx graphics controller unit driver
413 198 = /dev/sexec Signed executable interface 414 198 = /dev/sexec Signed executable interface
414 199 = /dev/scanners/cuecat :CueCat barcode scanner 415 199 = /dev/scanners/cuecat :CueCat barcode scanner
415 200 = /dev/net/tun TAP/TUN network device 416 200 = /dev/net/tun TAP/TUN network device
@@ -451,6 +452,7 @@ Your cooperation is appreciated.
451 236 = /dev/mapper/control Device-Mapper control device 452 236 = /dev/mapper/control Device-Mapper control device
452 237 = /dev/loop-control Loopback control device 453 237 = /dev/loop-control Loopback control device
453 238 = /dev/vhost-net Host kernel accelerator for virtio net 454 238 = /dev/vhost-net Host kernel accelerator for virtio net
455 239 = /dev/uhid User-space I/O driver support for HID subsystem
454 456
455 240-254 Reserved for local use 457 240-254 Reserved for local use
456 255 Reserved for MISC_DYNAMIC_MINOR 458 255 Reserved for MISC_DYNAMIC_MINOR
diff --git a/Documentation/devicetree/bindings/arm/armada-370-xp-mpic.txt b/Documentation/devicetree/bindings/arm/armada-370-xp-mpic.txt
index d74091a8a3bf..5fc03134a999 100644
--- a/Documentation/devicetree/bindings/arm/armada-370-xp-mpic.txt
+++ b/Documentation/devicetree/bindings/arm/armada-370-xp-mpic.txt
@@ -1,4 +1,4 @@
1Marvell Armada 370 and Armada XP Interrupt Controller 1Marvell Armada 370, 375, 38x, XP Interrupt Controller
2----------------------------------------------------- 2-----------------------------------------------------
3 3
4Required properties: 4Required properties:
@@ -16,7 +16,13 @@ Required properties:
16 automatically map to the interrupt controller registers of the 16 automatically map to the interrupt controller registers of the
17 current CPU) 17 current CPU)
18 18
19Optional properties:
19 20
21- interrupts: If defined, then it indicates that this MPIC is
22 connected as a slave to another interrupt controller. This is
23 typically the case on Armada 375 and Armada 38x, where the MPIC is
24 connected as a slave to the Cortex-A9 GIC. The provided interrupt
25 indicate to which GIC interrupt the MPIC output is connected.
20 26
21Example: 27Example:
22 28
diff --git a/Documentation/devicetree/bindings/arm/atmel-adc.txt b/Documentation/devicetree/bindings/arm/atmel-adc.txt
index d1061469f63d..9a1175b46f49 100644
--- a/Documentation/devicetree/bindings/arm/atmel-adc.txt
+++ b/Documentation/devicetree/bindings/arm/atmel-adc.txt
@@ -5,6 +5,9 @@ Required properties:
5 <chip> can be "at91sam9260", "at91sam9g45" or "at91sam9x5" 5 <chip> can be "at91sam9260", "at91sam9g45" or "at91sam9x5"
6 - reg: Should contain ADC registers location and length 6 - reg: Should contain ADC registers location and length
7 - interrupts: Should contain the IRQ line for the ADC 7 - interrupts: Should contain the IRQ line for the ADC
8 - clock-names: tuple listing input clock names.
9 Required elements: "adc_clk", "adc_op_clk".
10 - clocks: phandles to input clocks.
8 - atmel,adc-channels-used: Bitmask of the channels muxed and enable for this 11 - atmel,adc-channels-used: Bitmask of the channels muxed and enable for this
9 device 12 device
10 - atmel,adc-startup-time: Startup Time of the ADC in microseconds as 13 - atmel,adc-startup-time: Startup Time of the ADC in microseconds as
@@ -44,6 +47,8 @@ adc0: adc@fffb0000 {
44 compatible = "atmel,at91sam9260-adc"; 47 compatible = "atmel,at91sam9260-adc";
45 reg = <0xfffb0000 0x100>; 48 reg = <0xfffb0000 0x100>;
46 interrupts = <20 4>; 49 interrupts = <20 4>;
50 clocks = <&adc_clk>, <&adc_op_clk>;
51 clock-names = "adc_clk", "adc_op_clk";
47 atmel,adc-channel-base = <0x30>; 52 atmel,adc-channel-base = <0x30>;
48 atmel,adc-channels-used = <0xff>; 53 atmel,adc-channels-used = <0xff>;
49 atmel,adc-drdy-mask = <0x10000>; 54 atmel,adc-drdy-mask = <0x10000>;
diff --git a/Documentation/devicetree/bindings/arm/marvell,dove.txt b/Documentation/devicetree/bindings/arm/marvell,dove.txt
new file mode 100644
index 000000000000..aaaf64c56e44
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/marvell,dove.txt
@@ -0,0 +1,22 @@
1Marvell Dove Platforms Device Tree Bindings
2-----------------------------------------------
3
4Boards with a Marvell Dove SoC shall have the following properties:
5
6Required root node property:
7- compatible: must contain "marvell,dove";
8
9* Global Configuration registers
10
11Global Configuration registers of Dove SoC are shared by a syscon node.
12
13Required properties:
14- compatible: must contain "marvell,dove-global-config" and "syscon".
15- reg: base address and size of the Global Configuration registers.
16
17Example:
18
19gconf: global-config@e802c {
20 compatible = "marvell,dove-global-config", "syscon";
21 reg = <0xe802c 0x14>;
22};
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
index 34dc40cffdfd..af9b4a0d902b 100644
--- a/Documentation/devicetree/bindings/arm/omap/omap.txt
+++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
@@ -91,7 +91,7 @@ Boards:
91 compatible = "ti,omap3-beagle", "ti,omap3" 91 compatible = "ti,omap3-beagle", "ti,omap3"
92 92
93- OMAP3 Tobi with Overo : Commercial expansion board with daughter board 93- OMAP3 Tobi with Overo : Commercial expansion board with daughter board
94 compatible = "ti,omap3-tobi", "ti,omap3-overo", "ti,omap3" 94 compatible = "gumstix,omap3-overo-tobi", "gumstix,omap3-overo", "ti,omap3"
95 95
96- OMAP4 SDP : Software Development Board 96- OMAP4 SDP : Software Development Board
97 compatible = "ti,omap4-sdp", "ti,omap4430" 97 compatible = "ti,omap4-sdp", "ti,omap4430"
diff --git a/Documentation/devicetree/bindings/ata/ahci-platform.txt b/Documentation/devicetree/bindings/ata/ahci-platform.txt
index 89de1564950c..48b285ffa3a6 100644
--- a/Documentation/devicetree/bindings/ata/ahci-platform.txt
+++ b/Documentation/devicetree/bindings/ata/ahci-platform.txt
@@ -4,17 +4,33 @@ SATA nodes are defined to describe on-chip Serial ATA controllers.
4Each SATA controller should have its own node. 4Each SATA controller should have its own node.
5 5
6Required properties: 6Required properties:
7- compatible : compatible list, contains "snps,spear-ahci" 7- compatible : compatible list, one of "snps,spear-ahci",
8 "snps,exynos5440-ahci", "ibm,476gtr-ahci",
9 "allwinner,sun4i-a10-ahci", "fsl,imx53-ahci"
10 "fsl,imx6q-ahci" or "snps,dwc-ahci"
8- interrupts : <interrupt mapping for SATA IRQ> 11- interrupts : <interrupt mapping for SATA IRQ>
9- reg : <registers mapping> 12- reg : <registers mapping>
10 13
11Optional properties: 14Optional properties:
12- dma-coherent : Present if dma operations are coherent 15- dma-coherent : Present if dma operations are coherent
16- clocks : a list of phandle + clock specifier pairs
17- target-supply : regulator for SATA target power
13 18
14Example: 19"fsl,imx53-ahci", "fsl,imx6q-ahci" required properties:
20- clocks : must contain the sata, sata_ref and ahb clocks
21- clock-names : must contain "ahb" for the ahb clock
22
23Examples:
15 sata@ffe08000 { 24 sata@ffe08000 {
16 compatible = "snps,spear-ahci"; 25 compatible = "snps,spear-ahci";
17 reg = <0xffe08000 0x1000>; 26 reg = <0xffe08000 0x1000>;
18 interrupts = <115>; 27 interrupts = <115>;
19
20 }; 28 };
29
30 ahci: sata@01c18000 {
31 compatible = "allwinner,sun4i-a10-ahci";
32 reg = <0x01c18000 0x1000>;
33 interrupts = <56>;
34 clocks = <&pll6 0>, <&ahb_gates 25>;
35 target-supply = <&reg_ahci_5v>;
36 };
diff --git a/Documentation/devicetree/bindings/ata/apm-xgene.txt b/Documentation/devicetree/bindings/ata/apm-xgene.txt
new file mode 100644
index 000000000000..7bcfbf59810e
--- /dev/null
+++ b/Documentation/devicetree/bindings/ata/apm-xgene.txt
@@ -0,0 +1,76 @@
1* APM X-Gene 6.0 Gb/s SATA host controller nodes
2
3SATA host controller nodes are defined to describe on-chip Serial ATA
4controllers. Each SATA controller (pair of ports) have its own node.
5
6Required properties:
7- compatible : Shall contain:
8 * "apm,xgene-ahci"
9- reg : First memory resource shall be the AHCI memory
10 resource.
11 Second memory resource shall be the host controller
12 core memory resource.
13 Third memory resource shall be the host controller
14 diagnostic memory resource.
15 4th memory resource shall be the host controller
16 AXI memory resource.
17 5th optional memory resource shall be the host
18 controller MUX memory resource if required.
19- interrupts : Interrupt-specifier for SATA host controller IRQ.
20- clocks : Reference to the clock entry.
21- phys : A list of phandles + phy-specifiers, one for each
22 entry in phy-names.
23- phy-names : Should contain:
24 * "sata-phy" for the SATA 6.0Gbps PHY
25
26Optional properties:
27- status : Shall be "ok" if enabled or "disabled" if disabled.
28 Default is "ok".
29
30Example:
31 sataclk: sataclk {
32 compatible = "fixed-clock";
33 #clock-cells = <1>;
34 clock-frequency = <100000000>;
35 clock-output-names = "sataclk";
36 };
37
38 phy2: phy@1f22a000 {
39 compatible = "apm,xgene-phy";
40 reg = <0x0 0x1f22a000 0x0 0x100>;
41 #phy-cells = <1>;
42 };
43
44 phy3: phy@1f23a000 {
45 compatible = "apm,xgene-phy";
46 reg = <0x0 0x1f23a000 0x0 0x100>;
47 #phy-cells = <1>;
48 };
49
50 sata2: sata@1a400000 {
51 compatible = "apm,xgene-ahci";
52 reg = <0x0 0x1a400000 0x0 0x1000>,
53 <0x0 0x1f220000 0x0 0x1000>,
54 <0x0 0x1f22d000 0x0 0x1000>,
55 <0x0 0x1f22e000 0x0 0x1000>,
56 <0x0 0x1f227000 0x0 0x1000>;
57 interrupts = <0x0 0x87 0x4>;
58 status = "ok";
59 clocks = <&sataclk 0>;
60 phys = <&phy2 0>;
61 phy-names = "sata-phy";
62 };
63
64 sata3: sata@1a800000 {
65 compatible = "apm,xgene-ahci-pcie";
66 reg = <0x0 0x1a800000 0x0 0x1000>,
67 <0x0 0x1f230000 0x0 0x1000>,
68 <0x0 0x1f23d000 0x0 0x1000>,
69 <0x0 0x1f23e000 0x0 0x1000>,
70 <0x0 0x1f237000 0x0 0x1000>;
71 interrupts = <0x0 0x88 0x4>;
72 status = "ok";
73 clocks = <&sataclk 0>;
74 phys = <&phy3 0>;
75 phy-names = "sata-phy";
76 };
diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt
index a6a352c2771e..5992dceec7af 100644
--- a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt
+++ b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt
@@ -21,9 +21,9 @@ Required Properties:
21 must appear in the same order as the output clocks. 21 must appear in the same order as the output clocks.
22 - #clock-cells: Must be 1 22 - #clock-cells: Must be 1
23 - clock-output-names: The name of the clocks as free-form strings 23 - clock-output-names: The name of the clocks as free-form strings
24 - renesas,indices: Indices of the gate clocks into the group (0 to 31) 24 - renesas,clock-indices: Indices of the gate clocks into the group (0 to 31)
25 25
26The clocks, clock-output-names and renesas,indices properties contain one 26The clocks, clock-output-names and renesas,clock-indices properties contain one
27entry per gate clock. The MSTP groups are sparsely populated. Unimplemented 27entry per gate clock. The MSTP groups are sparsely populated. Unimplemented
28gate clocks must not be declared. 28gate clocks must not be declared.
29 29
diff --git a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt
index 68b83ecc3850..ee9be9961524 100644
--- a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt
+++ b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt
@@ -1,12 +1,16 @@
1* Freescale Smart Direct Memory Access (SDMA) Controller for i.MX 1* Freescale Smart Direct Memory Access (SDMA) Controller for i.MX
2 2
3Required properties: 3Required properties:
4- compatible : Should be "fsl,imx31-sdma", "fsl,imx31-to1-sdma", 4- compatible : Should be one of
5 "fsl,imx31-to2-sdma", "fsl,imx35-sdma", "fsl,imx35-to1-sdma", 5 "fsl,imx25-sdma"
6 "fsl,imx35-to2-sdma", "fsl,imx51-sdma", "fsl,imx53-sdma" or 6 "fsl,imx31-sdma", "fsl,imx31-to1-sdma", "fsl,imx31-to2-sdma"
7 "fsl,imx6q-sdma". The -to variants should be preferred since they 7 "fsl,imx35-sdma", "fsl,imx35-to1-sdma", "fsl,imx35-to2-sdma"
8 allow to determnine the correct ROM script addresses needed for 8 "fsl,imx51-sdma"
9 the driver to work without additional firmware. 9 "fsl,imx53-sdma"
10 "fsl,imx6q-sdma"
11 The -to variants should be preferred since they allow to determnine the
12 correct ROM script addresses needed for the driver to work without additional
13 firmware.
10- reg : Should contain SDMA registers location and length 14- reg : Should contain SDMA registers location and length
11- interrupts : Should contain SDMA interrupt 15- interrupts : Should contain SDMA interrupt
12- #dma-cells : Must be <3>. 16- #dma-cells : Must be <3>.
diff --git a/Documentation/devicetree/bindings/graph.txt b/Documentation/devicetree/bindings/graph.txt
new file mode 100644
index 000000000000..1a69c078adf2
--- /dev/null
+++ b/Documentation/devicetree/bindings/graph.txt
@@ -0,0 +1,129 @@
1Common bindings for device graphs
2
3General concept
4---------------
5
6The hierarchical organisation of the device tree is well suited to describe
7control flow to devices, but there can be more complex connections between
8devices that work together to form a logical compound device, following an
9arbitrarily complex graph.
10There already is a simple directed graph between devices tree nodes using
11phandle properties pointing to other nodes to describe connections that
12can not be inferred from device tree parent-child relationships. The device
13tree graph bindings described herein abstract more complex devices that can
14have multiple specifiable ports, each of which can be linked to one or more
15ports of other devices.
16
17These common bindings do not contain any information about the direction or
18type of the connections, they just map their existence. Specific properties
19may be described by specialized bindings depending on the type of connection.
20
21To see how this binding applies to video pipelines, for example, see
22Documentation/device-tree/bindings/media/video-interfaces.txt.
23Here the ports describe data interfaces, and the links between them are
24the connecting data buses. A single port with multiple connections can
25correspond to multiple devices being connected to the same physical bus.
26
27Organisation of ports and endpoints
28-----------------------------------
29
30Ports are described by child 'port' nodes contained in the device node.
31Each port node contains an 'endpoint' subnode for each remote device port
32connected to this port. If a single port is connected to more than one
33remote device, an 'endpoint' child node must be provided for each link.
34If more than one port is present in a device node or there is more than one
35endpoint at a port, or a port node needs to be associated with a selected
36hardware interface, a common scheme using '#address-cells', '#size-cells'
37and 'reg' properties is used number the nodes.
38
39device {
40 ...
41 #address-cells = <1>;
42 #size-cells = <0>;
43
44 port@0 {
45 #address-cells = <1>;
46 #size-cells = <0>;
47 reg = <0>;
48
49 endpoint@0 {
50 reg = <0>;
51 ...
52 };
53 endpoint@1 {
54 reg = <1>;
55 ...
56 };
57 };
58
59 port@1 {
60 reg = <1>;
61
62 endpoint { ... };
63 };
64};
65
66All 'port' nodes can be grouped under an optional 'ports' node, which
67allows to specify #address-cells, #size-cells properties for the 'port'
68nodes independently from any other child device nodes a device might
69have.
70
71device {
72 ...
73 ports {
74 #address-cells = <1>;
75 #size-cells = <0>;
76
77 port@0 {
78 ...
79 endpoint@0 { ... };
80 endpoint@1 { ... };
81 };
82
83 port@1 { ... };
84 };
85};
86
87Links between endpoints
88-----------------------
89
90Each endpoint should contain a 'remote-endpoint' phandle property that points
91to the corresponding endpoint in the port of the remote device. In turn, the
92remote endpoint should contain a 'remote-endpoint' property. If it has one,
93it must not point to another than the local endpoint. Two endpoints with their
94'remote-endpoint' phandles pointing at each other form a link between the
95containing ports.
96
97device-1 {
98 port {
99 device_1_output: endpoint {
100 remote-endpoint = <&device_2_input>;
101 };
102 };
103};
104
105device-2 {
106 port {
107 device_2_input: endpoint {
108 remote-endpoint = <&device_1_output>;
109 };
110 };
111};
112
113
114Required properties
115-------------------
116
117If there is more than one 'port' or more than one 'endpoint' node or 'reg'
118property is present in port and/or endpoint nodes the following properties
119are required in a relevant parent node:
120
121 - #address-cells : number of cells required to define port/endpoint
122 identifier, should be 1.
123 - #size-cells : should be zero.
124
125Optional endpoint properties
126----------------------------
127
128- remote-endpoint: phandle to an 'endpoint' subnode of a remote device node.
129
diff --git a/Documentation/devicetree/bindings/i2c/trivial-devices.txt b/Documentation/devicetree/bindings/i2c/trivial-devices.txt
index 1a1ac2e560e9..f47e56bcf78d 100644
--- a/Documentation/devicetree/bindings/i2c/trivial-devices.txt
+++ b/Documentation/devicetree/bindings/i2c/trivial-devices.txt
@@ -18,6 +18,7 @@ atmel,24c02 i2c serial eeprom (24cxx)
18atmel,at97sc3204t i2c trusted platform module (TPM) 18atmel,at97sc3204t i2c trusted platform module (TPM)
19capella,cm32181 CM32181: Ambient Light Sensor 19capella,cm32181 CM32181: Ambient Light Sensor
20catalyst,24c32 i2c serial eeprom 20catalyst,24c32 i2c serial eeprom
21cirrus,cs42l51 Cirrus Logic CS42L51 audio codec
21dallas,ds1307 64 x 8, Serial, I2C Real-Time Clock 22dallas,ds1307 64 x 8, Serial, I2C Real-Time Clock
22dallas,ds1338 I2C RTC with 56-Byte NV RAM 23dallas,ds1338 I2C RTC with 56-Byte NV RAM
23dallas,ds1339 I2C Serial Real-Time Clock 24dallas,ds1339 I2C Serial Real-Time Clock
diff --git a/Documentation/devicetree/bindings/iio/adc/vf610-adc.txt b/Documentation/devicetree/bindings/iio/adc/vf610-adc.txt
new file mode 100644
index 000000000000..dcebff1928e1
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/vf610-adc.txt
@@ -0,0 +1,22 @@
1Freescale vf610 Analog to Digital Converter bindings
2
3The devicetree bindings are for the new ADC driver written for
4vf610/i.MX6slx and upward SoCs from Freescale.
5
6Required properties:
7- compatible: Should contain "fsl,vf610-adc"
8- reg: Offset and length of the register set for the device
9- interrupts: Should contain the interrupt for the device
10- clocks: The clock is needed by the ADC controller, ADC clock source is ipg clock.
11- clock-names: Must contain "adc", matching entry in the clocks property.
12- vref-supply: The regulator supply ADC refrence voltage.
13
14Example:
15adc0: adc@4003b000 {
16 compatible = "fsl,vf610-adc";
17 reg = <0x4003b000 0x1000>;
18 interrupts = <0 53 0x04>;
19 clocks = <&clks VF610_CLK_ADC0>;
20 clock-names = "adc";
21 vref-supply = <&reg_vcc_3v3_mcu>;
22};
diff --git a/Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt b/Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt
new file mode 100644
index 000000000000..d9ee909d2b78
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/xilinx-xadc.txt
@@ -0,0 +1,113 @@
1Xilinx XADC device driver
2
3This binding document describes the bindings for both of them since the
4bindings are very similar. The Xilinx XADC is a ADC that can be found in the
5series 7 FPGAs from Xilinx. The XADC has a DRP interface for communication.
6Currently two different frontends for the DRP interface exist. One that is only
7available on the ZYNQ family as a hardmacro in the SoC portion of the ZYNQ. The
8other one is available on all series 7 platforms and is a softmacro with a AXI
9interface. This binding document describes the bindings for both of them since
10the bindings are very similar.
11
12Required properties:
13 - compatible: Should be one of
14 * "xlnx,zynq-xadc-1.00.a": When using the ZYNQ device
15 configuration interface to interface to the XADC hardmacro.
16 * "xlnx,axi-xadc-1.00.a": When using the axi-xadc pcore to
17 interface to the XADC hardmacro.
18 - reg: Address and length of the register set for the device
19 - interrupts: Interrupt for the XADC control interface.
20 - clocks: When using the ZYNQ this must be the ZYNQ PCAP clock,
21 when using the AXI-XADC pcore this must be the clock that provides the
22 clock to the AXI bus interface of the core.
23
24Optional properties:
25 - interrupt-parent: phandle to the parent interrupt controller
26 - xlnx,external-mux:
27 * "none": No external multiplexer is used, this is the default
28 if the property is omitted.
29 * "single": External multiplexer mode is used with one
30 multiplexer.
31 * "dual": External multiplexer mode is used with two
32 multiplexers for simultaneous sampling.
33 - xlnx,external-mux-channel: Configures which pair of pins is used to
34 sample data in external mux mode.
35 Valid values for single external multiplexer mode are:
36 0: VP/VN
37 1: VAUXP[0]/VAUXN[0]
38 2: VAUXP[1]/VAUXN[1]
39 ...
40 16: VAUXP[15]/VAUXN[15]
41 Valid values for dual external multiplexer mode are:
42 1: VAUXP[0]/VAUXN[0] - VAUXP[8]/VAUXN[8]
43 2: VAUXP[1]/VAUXN[1] - VAUXP[9]/VAUXN[9]
44 ...
45 8: VAUXP[7]/VAUXN[7] - VAUXP[15]/VAUXN[15]
46
47 This property needs to be present if the device is configured for
48 external multiplexer mode (either single or dual). If the device is
49 not using external multiplexer mode the property is ignored.
50 - xnlx,channels: List of external channels that are connected to the ADC
51 Required properties:
52 * #address-cells: Should be 1.
53 * #size-cells: Should be 0.
54
55 The child nodes of this node represent the external channels which are
56 connected to the ADC. If the property is no present no external
57 channels will be assumed to be connected.
58
59 Each child node represents one channel and has the following
60 properties:
61 Required properties:
62 * reg: Pair of pins the the channel is connected to.
63 0: VP/VN
64 1: VAUXP[0]/VAUXN[0]
65 2: VAUXP[1]/VAUXN[1]
66 ...
67 16: VAUXP[15]/VAUXN[15]
68 Note each channel number should only be used at most
69 once.
70 Optional properties:
71 * xlnx,bipolar: If set the channel is used in bipolar
72 mode.
73
74
75Examples:
76 xadc@f8007100 {
77 compatible = "xlnx,zynq-xadc-1.00.a";
78 reg = <0xf8007100 0x20>;
79 interrupts = <0 7 4>;
80 interrupt-parent = <&gic>;
81 clocks = <&pcap_clk>;
82
83 xlnx,channels {
84 #address-cells = <1>;
85 #size-cells = <0>;
86 channel@0 {
87 reg = <0>;
88 };
89 channel@1 {
90 reg = <1>;
91 };
92 channel@8 {
93 reg = <8>;
94 };
95 };
96 };
97
98 xadc@43200000 {
99 compatible = "xlnx,axi-xadc-1.00.a";
100 reg = <0x43200000 0x1000>;
101 interrupts = <0 53 4>;
102 interrupt-parent = <&gic>;
103 clocks = <&fpga1_clk>;
104
105 xlnx,channels {
106 #address-cells = <1>;
107 #size-cells = <0>;
108 channel@0 {
109 reg = <0>;
110 xlnx,bipolar;
111 };
112 };
113 };
diff --git a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt
index 32cec4b26cd0..b290ca150d30 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt
+++ b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt
@@ -2,7 +2,7 @@ Allwinner Sunxi Interrupt Controller
2 2
3Required properties: 3Required properties:
4 4
5- compatible : should be "allwinner,sun4i-ic" 5- compatible : should be "allwinner,sun4i-a10-ic"
6- reg : Specifies base physical address and size of the registers. 6- reg : Specifies base physical address and size of the registers.
7- interrupt-controller : Identifies the node as an interrupt controller 7- interrupt-controller : Identifies the node as an interrupt controller
8- #interrupt-cells : Specifies the number of cells needed to encode an 8- #interrupt-cells : Specifies the number of cells needed to encode an
@@ -11,7 +11,7 @@ Required properties:
11Example: 11Example:
12 12
13intc: interrupt-controller { 13intc: interrupt-controller {
14 compatible = "allwinner,sun4i-ic"; 14 compatible = "allwinner,sun4i-a10-ic";
15 reg = <0x01c20400 0x400>; 15 reg = <0x01c20400 0x400>;
16 interrupt-controller; 16 interrupt-controller;
17 #interrupt-cells = <1>; 17 #interrupt-cells = <1>;
diff --git a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun67i-sc-nmi.txt b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun67i-sc-nmi.txt
new file mode 100644
index 000000000000..d1c5cdabc3e0
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun67i-sc-nmi.txt
@@ -0,0 +1,27 @@
1Allwinner Sunxi NMI Controller
2==============================
3
4Required properties:
5
6- compatible : should be "allwinner,sun7i-a20-sc-nmi" or
7 "allwinner,sun6i-a31-sc-nmi"
8- reg : Specifies base physical address and size of the registers.
9- interrupt-controller : Identifies the node as an interrupt controller
10- #interrupt-cells : Specifies the number of cells needed to encode an
11 interrupt source. The value shall be 2. The first cell is the IRQ number, the
12 second cell the trigger type as defined in interrupt.txt in this directory.
13- interrupt-parent: Specifies the parent interrupt controller.
14- interrupts: Specifies the interrupt line (NMI) which is handled by
15 the interrupt controller in the parent controller's notation. This value
16 shall be the NMI.
17
18Example:
19
20sc-nmi-intc@01c00030 {
21 compatible = "allwinner,sun7i-a20-sc-nmi";
22 interrupt-controller;
23 #interrupt-cells = <2>;
24 reg = <0x01c00030 0x0c>;
25 interrupt-parent = <&gic>;
26 interrupts = <0 0 4>;
27};
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/ifc.txt b/Documentation/devicetree/bindings/memory-controllers/fsl/ifc.txt
index d5e370450ac0..d5e370450ac0 100644
--- a/Documentation/devicetree/bindings/powerpc/fsl/ifc.txt
+++ b/Documentation/devicetree/bindings/memory-controllers/fsl/ifc.txt
diff --git a/Documentation/devicetree/bindings/memory-controllers/ti-aemif.txt b/Documentation/devicetree/bindings/memory-controllers/ti-aemif.txt
new file mode 100644
index 000000000000..9592717f483f
--- /dev/null
+++ b/Documentation/devicetree/bindings/memory-controllers/ti-aemif.txt
@@ -0,0 +1,210 @@
1* Device tree bindings for Texas instruments AEMIF controller
2
3The Async External Memory Interface (EMIF16/AEMIF) controller is intended to
4provide a glue-less interface to a variety of asynchronous memory devices like
5ASRA M, NOR and NAND memory. A total of 256M bytes of any of these memories
6can be accessed at any given time via four chip selects with 64M byte access
7per chip select. Synchronous memories such as DDR1 SD RAM, SDR SDRAM
8and Mobile SDR are not supported.
9
10Documentation:
11Davinci DM646x - http://www.ti.com/lit/ug/sprueq7c/sprueq7c.pdf
12OMAP-L138 (DA850) - http://www.ti.com/lit/ug/spruh77a/spruh77a.pdf
13Kestone - http://www.ti.com/lit/ug/sprugz3a/sprugz3a.pdf
14
15Required properties:
16
17- compatible: "ti,davinci-aemif"
18 "ti,keystone-aemif"
19 "ti,da850-aemif"
20
21- reg: contains offset/length value for AEMIF control registers
22 space.
23
24- #address-cells: Must be 2. The partition number has to be encoded in the
25 first address cell and it may accept values 0..N-1
26 (N - total number of partitions). It's recommended to
27 assign N-1 number for the control partition. The second
28 cell is the offset into the partition.
29
30- #size-cells: Must be set to 1.
31
32- ranges: Contains memory regions. There are two types of
33 ranges/partitions:
34 - CS-specific partition/range. If continuous, must be
35 set up to reflect the memory layout for 4 chipselects,
36 if not then additional range/partition can be added and
37 child device can select the proper one.
38 - control partition which is common for all CS
39 interfaces.
40
41- clocks: the clock feeding the controller clock. Required only
42 if clock tree data present in device tree.
43 See clock-bindings.txt
44
45- clock-names: clock name. It has to be "aemif". Required only if clock
46 tree data present in device tree, in another case don't
47 use it.
48 See clock-bindings.txt
49
50- clock-ranges: Empty property indicating that child nodes can inherit
51 named clocks. Required only if clock tree data present
52 in device tree.
53 See clock-bindings.txt
54
55
56Child chip-select (cs) nodes contain the memory devices nodes connected to
57such as NOR (e.g. cfi-flash) and NAND (ti,davinci-nand, see davinci-nand.txt).
58There might be board specific devices like FPGAs.
59
60Required child cs node properties:
61
62- #address-cells: Must be 2.
63
64- #size-cells: Must be 1.
65
66- ranges: Empty property indicating that child nodes can inherit
67 memory layout.
68
69- clock-ranges: Empty property indicating that child nodes can inherit
70 named clocks. Required only if clock tree data present
71 in device tree.
72
73- ti,cs-chipselect: number of chipselect. Indicates on the aemif driver
74 which chipselect is used for accessing the memory. For
75 compatibles "ti,davinci-aemif" and "ti,keystone-aemif"
76 it can be in range [0-3]. For compatible
77 "ti,da850-aemif" range is [2-5].
78
79Optional child cs node properties:
80
81- ti,cs-bus-width: width of the asynchronous device's data bus
82 8 or 16 if not preset 8
83
84- ti,cs-select-strobe-mode: enable/disable select strobe mode
85 In select strobe mode chip select behaves as
86 the strobe and is active only during the strobe
87 period. If present then enable.
88
89- ti,cs-extended-wait-mode: enable/disable extended wait mode
90 if set, the controller monitors the EMIFWAIT pin
91 mapped to that chip select to determine if the
92 device wants to extend the strobe period. If
93 present then enable.
94
95- ti,cs-min-turnaround-ns: minimum turn around time, ns
96 Time between the end of one asynchronous memory
97 access and the start of another asynchronous
98 memory access. This delay is not incurred
99 between a read followed by read or a write
100 followed by a write to same chip select.
101
102- ti,cs-read-setup-ns: read setup width, ns
103 Time between the beginning of a memory cycle
104 and the activation of read strobe.
105 Minimum value is 1 (0 treated as 1).
106
107- ti,cs-read-strobe-ns: read strobe width, ns
108 Time between the activation and deactivation of
109 the read strobe.
110 Minimum value is 1 (0 treated as 1).
111
112- ti,cs-read-hold-ns: read hold width, ns
113 Time between the deactivation of the read
114 strobe and the end of the cycle (which may be
115 either an address change or the deactivation of
116 the chip select signal.
117 Minimum value is 1 (0 treated as 1).
118
119- ti,cs-write-setup-ns: write setup width, ns
120 Time between the beginning of a memory cycle
121 and the activation of write strobe.
122 Minimum value is 1 (0 treated as 1).
123
124- ti,cs-write-strobe-ns: write strobe width, ns
125 Time between the activation and deactivation of
126 the write strobe.
127 Minimum value is 1 (0 treated as 1).
128
129- ti,cs-write-hold-ns: write hold width, ns
130 Time between the deactivation of the write
131 strobe and the end of the cycle (which may be
132 either an address change or the deactivation of
133 the chip select signal.
134 Minimum value is 1 (0 treated as 1).
135
136If any of the above parameters are absent, current parameter value will be taken
137from the corresponding HW reg.
138
139Example for aemif, davinci nand and nor flash chip select shown below.
140
141memory-controller@21000A00 {
142 compatible = "ti,davinci-aemif";
143 #address-cells = <2>;
144 #size-cells = <1>;
145 clocks = <&clkaemif 0>;
146 clock-names = "aemif";
147 clock-ranges;
148 reg = <0x21000A00 0x00000100>;
149 ranges = <0 0 0x70000000 0x10000000
150 1 0 0x21000A00 0x00000100>;
151 /*
152 * Partition0: CS-specific memory range which is
153 * implemented as continuous physical memory region
154 * Partition1: control memory range
155 */
156
157 nand:cs2 {
158 #address-cells = <2>;
159 #size-cells = <1>;
160 clock-ranges;
161 ranges;
162
163 ti,cs-chipselect = <2>;
164 /* all timings in nanoseconds */
165 ti,cs-min-turnaround-ns = <0>;
166 ti,cs-read-hold-ns = <7>;
167 ti,cs-read-strobe-ns = <42>;
168 ti,cs-read-setup-ns = <14>;
169 ti,cs-write-hold-ns = <7>;
170 ti,cs-write-strobe-ns = <42>;
171 ti,cs-write-setup-ns = <14>;
172
173 nand@0,0x8000000 {
174 compatible = "ti,davinci-nand";
175 reg = <0 0x8000000 0x4000000
176 1 0x0000000 0x0000100>;
177 /*
178 * Partition0, offset 0x8000000, size 0x4000000
179 * Partition1, offset 0x0000000, size 0x0000100
180 */
181
182 .. see davinci-nand.txt
183 };
184 };
185
186 nor:cs0 {
187 #address-cells = <2>;
188 #size-cells = <1>;
189 clock-ranges;
190 ranges;
191
192 ti,cs-chipselect = <0>;
193 /* all timings in nanoseconds */
194 ti,cs-min-turnaround-ns = <0>;
195 ti,cs-read-hold-ns = <8>;
196 ti,cs-read-strobe-ns = <40>;
197 ti,cs-read-setup-ns = <14>;
198 ti,cs-write-hold-ns = <7>;
199 ti,cs-write-strobe-ns = <40>;
200 ti,cs-write-setup-ns = <14>;
201 ti,cs-bus-width = <16>;
202
203 flash@0,0x0000000 {
204 compatible = "cfi-flash";
205 reg = <0 0x0000000 0x4000000>;
206
207 ...
208 };
209 };
210};
diff --git a/Documentation/devicetree/bindings/mfd/s2mpa01.txt b/Documentation/devicetree/bindings/mfd/s2mpa01.txt
new file mode 100644
index 000000000000..c13d3d8c3947
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/s2mpa01.txt
@@ -0,0 +1,90 @@
1
2* Samsung S2MPA01 Voltage and Current Regulator
3
4The Samsung S2MPA01 is a multi-function device which includes high
5efficiency buck converters including Dual-Phase buck converter, various LDOs,
6and an RTC. It is interfaced to the host controller using an I2C interface.
7Each sub-block is addressed by the host system using different I2C slave
8addresses.
9
10Required properties:
11- compatible: Should be "samsung,s2mpa01-pmic".
12- reg: Specifies the I2C slave address of the PMIC block. It should be 0x66.
13
14Optional properties:
15- interrupt-parent: Specifies the phandle of the interrupt controller to which
16 the interrupts from s2mpa01 are delivered to.
17- interrupts: An interrupt specifier for the sole interrupt generated by the
18 device.
19
20Optional nodes:
21- regulators: The regulators of s2mpa01 that have to be instantiated should be
22 included in a sub-node named 'regulators'. Regulator nodes and constraints
23 included in this sub-node use the standard regulator bindings which are
24 documented elsewhere.
25
26Properties for BUCK regulator nodes:
27- regulator-ramp-delay: ramp delay in uV/us. May be 6250, 12500
28 (default), 25000, or 50000. May be 0 for disabling the ramp delay on
29 BUCK{1,2,3,4}.
30
31 In the absence of the regulator-ramp-delay property, the default ramp
32 delay will be used.
33
34 NOTE: Some BUCKs share the ramp rate setting i.e. same ramp value will be set
35 for a particular group of BUCKs. So provide same regulator-ramp-delay=<value>.
36
37 The following BUCKs share ramp settings:
38 * 1 and 6
39 * 2 and 4
40 * 8, 9, and 10
41
42The following are the names of the regulators that the s2mpa01 PMIC block
43supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
44as per the datasheet of s2mpa01.
45
46 - LDOn
47 - valid values for n are 1 to 26
48 - Example: LDO1, LD02, LDO26
49 - BUCKn
50 - valid values for n are 1 to 10.
51 - Example: BUCK1, BUCK2, BUCK9
52
53Example:
54
55 s2mpa01_pmic@66 {
56 compatible = "samsung,s2mpa01-pmic";
57 reg = <0x66>;
58
59 regulators {
60 ldo1_reg: LDO1 {
61 regulator-name = "VDD_ALIVE";
62 regulator-min-microvolt = <1000000>;
63 regulator-max-microvolt = <1000000>;
64 };
65
66 ldo2_reg: LDO2 {
67 regulator-name = "VDDQ_MMC2";
68 regulator-min-microvolt = <2800000>;
69 regulator-max-microvolt = <2800000>;
70 regulator-always-on;
71 };
72
73 buck1_reg: BUCK1 {
74 regulator-name = "vdd_mif";
75 regulator-min-microvolt = <950000>;
76 regulator-max-microvolt = <1350000>;
77 regulator-always-on;
78 regulator-boot-on;
79 };
80
81 buck2_reg: BUCK2 {
82 regulator-name = "vdd_arm";
83 regulator-min-microvolt = <950000>;
84 regulator-max-microvolt = <1350000>;
85 regulator-always-on;
86 regulator-boot-on;
87 regulator-ramp-delay = <50000>;
88 };
89 };
90 };
diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt b/Documentation/devicetree/bindings/mfd/s2mps11.txt
index 15ee89c3cc7b..f69bec294f02 100644
--- a/Documentation/devicetree/bindings/mfd/s2mps11.txt
+++ b/Documentation/devicetree/bindings/mfd/s2mps11.txt
@@ -1,5 +1,5 @@
1 1
2* Samsung S2MPS11 Voltage and Current Regulator 2* Samsung S2MPS11 and S2MPS14 Voltage and Current Regulator
3 3
4The Samsung S2MPS11 is a multi-function device which includes voltage and 4The Samsung S2MPS11 is a multi-function device which includes voltage and
5current regulators, RTC, charger controller and other sub-blocks. It is 5current regulators, RTC, charger controller and other sub-blocks. It is
@@ -7,7 +7,7 @@ interfaced to the host controller using an I2C interface. Each sub-block is
7addressed by the host system using different I2C slave addresses. 7addressed by the host system using different I2C slave addresses.
8 8
9Required properties: 9Required properties:
10- compatible: Should be "samsung,s2mps11-pmic". 10- compatible: Should be "samsung,s2mps11-pmic" or "samsung,s2mps14-pmic".
11- reg: Specifies the I2C slave address of the pmic block. It should be 0x66. 11- reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
12 12
13Optional properties: 13Optional properties:
@@ -59,10 +59,14 @@ supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
59as per the datasheet of s2mps11. 59as per the datasheet of s2mps11.
60 60
61 - LDOn 61 - LDOn
62 - valid values for n are 1 to 38 62 - valid values for n are:
63 - S2MPS11: 1 to 38
64 - S2MPS14: 1 to 25
63 - Example: LDO1, LD02, LDO28 65 - Example: LDO1, LD02, LDO28
64 - BUCKn 66 - BUCKn
65 - valid values for n are 1 to 10. 67 - valid values for n are:
68 - S2MPS11: 1 to 10
69 - S2MPS14: 1 to 5
66 - Example: BUCK1, BUCK2, BUCK9 70 - Example: BUCK1, BUCK2, BUCK9
67 71
68Example: 72Example:
diff --git a/Documentation/devicetree/bindings/mfd/tps65910.txt b/Documentation/devicetree/bindings/mfd/tps65910.txt
index b4bd98af1cc7..38833e63a59f 100644
--- a/Documentation/devicetree/bindings/mfd/tps65910.txt
+++ b/Documentation/devicetree/bindings/mfd/tps65910.txt
@@ -11,7 +11,7 @@ Required properties:
11- #interrupt-cells: the number of cells to describe an IRQ, this should be 2. 11- #interrupt-cells: the number of cells to describe an IRQ, this should be 2.
12 The first cell is the IRQ number. 12 The first cell is the IRQ number.
13 The second cell is the flags, encoded as the trigger masks from 13 The second cell is the flags, encoded as the trigger masks from
14 Documentation/devicetree/bindings/interrupts.txt 14 Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
15- regulators: This is the list of child nodes that specify the regulator 15- regulators: This is the list of child nodes that specify the regulator
16 initialization data for defined regulators. Not all regulators for the given 16 initialization data for defined regulators. Not all regulators for the given
17 device need to be present. The definition for each of these nodes is defined 17 device need to be present. The definition for each of these nodes is defined
diff --git a/Documentation/devicetree/bindings/misc/allwinner,sunxi-sid.txt b/Documentation/devicetree/bindings/misc/allwinner,sunxi-sid.txt
index 68ba37295565..fabdf64a5737 100644
--- a/Documentation/devicetree/bindings/misc/allwinner,sunxi-sid.txt
+++ b/Documentation/devicetree/bindings/misc/allwinner,sunxi-sid.txt
@@ -1,12 +1,12 @@
1Allwinner sunxi-sid 1Allwinner sunxi-sid
2 2
3Required properties: 3Required properties:
4- compatible: "allwinner,sun4i-sid" or "allwinner,sun7i-a20-sid". 4- compatible: "allwinner,sun4i-a10-sid" or "allwinner,sun7i-a20-sid"
5- reg: Should contain registers location and length 5- reg: Should contain registers location and length
6 6
7Example for sun4i: 7Example for sun4i:
8 sid@01c23800 { 8 sid@01c23800 {
9 compatible = "allwinner,sun4i-sid"; 9 compatible = "allwinner,sun4i-a10-sid";
10 reg = <0x01c23800 0x10> 10 reg = <0x01c23800 0x10>
11 }; 11 };
12 12
diff --git a/Documentation/devicetree/bindings/misc/atmel-ssc.txt b/Documentation/devicetree/bindings/misc/atmel-ssc.txt
index 60960b2755f4..efc98ea1f23d 100644
--- a/Documentation/devicetree/bindings/misc/atmel-ssc.txt
+++ b/Documentation/devicetree/bindings/misc/atmel-ssc.txt
@@ -17,6 +17,14 @@ Required properties for devices compatible with "atmel,at91sam9g45-ssc":
17 See Documentation/devicetree/bindings/dma/atmel-dma.txt for details. 17 See Documentation/devicetree/bindings/dma/atmel-dma.txt for details.
18- dma-names: Must be "tx", "rx". 18- dma-names: Must be "tx", "rx".
19 19
20Optional properties:
21 - atmel,clk-from-rk-pin: bool property.
22 - When SSC works in slave mode, according to the hardware design, the
23 clock can get from TK pin, and also can get from RK pin. So, add
24 this parameter to choose where the clock from.
25 - By default the clock is from TK pin, if the clock from RK pin, this
26 property is needed.
27
20Examples: 28Examples:
21- PDC transfer: 29- PDC transfer:
22ssc0: ssc@fffbc000 { 30ssc0: ssc@fffbc000 {
diff --git a/Documentation/devicetree/bindings/misc/sram.txt b/Documentation/devicetree/bindings/misc/sram.txt
index 4d0a00e453a8..36cbe5aea990 100644
--- a/Documentation/devicetree/bindings/misc/sram.txt
+++ b/Documentation/devicetree/bindings/misc/sram.txt
@@ -8,9 +8,44 @@ Required properties:
8 8
9- reg : SRAM iomem address range 9- reg : SRAM iomem address range
10 10
11Reserving sram areas:
12---------------------
13
14Each child of the sram node specifies a region of reserved memory. Each
15child node should use a 'reg' property to specify a specific range of
16reserved memory.
17
18Following the generic-names recommended practice, node names should
19reflect the purpose of the node. Unit address (@<address>) should be
20appended to the name.
21
22Required properties in the sram node:
23
24- #address-cells, #size-cells : should use the same values as the root node
25- ranges : standard definition, should translate from local addresses
26 within the sram to bus addresses
27
28Required properties in the area nodes:
29
30- reg : iomem address range, relative to the SRAM range
31
32Optional properties in the area nodes:
33
34- compatible : standard definition, should contain a vendor specific string
35 in the form <vendor>,[<device>-]<usage>
36
11Example: 37Example:
12 38
13sram: sram@5c000000 { 39sram: sram@5c000000 {
14 compatible = "mmio-sram"; 40 compatible = "mmio-sram";
15 reg = <0x5c000000 0x40000>; /* 256 KiB SRAM at address 0x5c000000 */ 41 reg = <0x5c000000 0x40000>; /* 256 KiB SRAM at address 0x5c000000 */
42
43 #adress-cells = <1>;
44 #size-cells = <1>;
45 ranges = <0 0x5c000000 0x40000>;
46
47 smp-sram@100 {
48 compatible = "socvendor,smp-sram";
49 reg = <0x100 0x50>;
50 };
16}; 51};
diff --git a/Documentation/devicetree/bindings/net/micrel-ks8851.txt b/Documentation/devicetree/bindings/net/micrel-ks8851.txt
index 11ace3c3d805..4fc392763611 100644
--- a/Documentation/devicetree/bindings/net/micrel-ks8851.txt
+++ b/Documentation/devicetree/bindings/net/micrel-ks8851.txt
@@ -7,3 +7,4 @@ Required properties:
7 7
8Optional properties: 8Optional properties:
9- local-mac-address : Ethernet mac address to use 9- local-mac-address : Ethernet mac address to use
10- vdd-supply: supply for Ethernet mac
diff --git a/Documentation/devicetree/bindings/net/opencores-ethoc.txt b/Documentation/devicetree/bindings/net/opencores-ethoc.txt
new file mode 100644
index 000000000000..2dc127c30d9b
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/opencores-ethoc.txt
@@ -0,0 +1,22 @@
1* OpenCores MAC 10/100 Mbps
2
3Required properties:
4- compatible: Should be "opencores,ethoc".
5- reg: two memory regions (address and length),
6 first region is for the device registers and descriptor rings,
7 second is for the device packet memory.
8- interrupts: interrupt for the device.
9
10Optional properties:
11- clocks: phandle to refer to the clk used as per
12 Documentation/devicetree/bindings/clock/clock-bindings.txt
13
14Examples:
15
16 enet0: ethoc@fd030000 {
17 compatible = "opencores,ethoc";
18 reg = <0xfd030000 0x4000 0xfd800000 0x4000>;
19 interrupts = <1>;
20 local-mac-address = [00 50 c2 13 6f 00];
21 clocks = <&osc>;
22 };
diff --git a/Documentation/devicetree/bindings/net/sti-dwmac.txt b/Documentation/devicetree/bindings/net/sti-dwmac.txt
new file mode 100644
index 000000000000..3dd3d0bf112f
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/sti-dwmac.txt
@@ -0,0 +1,58 @@
1STMicroelectronics SoC DWMAC glue layer controller
2
3The device node has following properties.
4
5Required properties:
6 - compatible : Can be "st,stih415-dwmac", "st,stih416-dwmac" or
7 "st,stid127-dwmac".
8 - reg : Offset of the glue configuration register map in system
9 configuration regmap pointed by st,syscon property and size.
10
11 - reg-names : Should be "sti-ethconf".
12
13 - st,syscon : Should be phandle to system configuration node which
14 encompases this glue registers.
15
16 - st,tx-retime-src: On STi Parts for Giga bit speeds, 125Mhz clocks can be
17 wired up in from different sources. One via TXCLK pin and other via CLK_125
18 pin. This wiring is totally board dependent. However the retiming glue
19 logic should be configured accordingly. Possible values for this property
20
21 "txclk" - if 125Mhz clock is wired up via txclk line.
22 "clk_125" - if 125Mhz clock is wired up via clk_125 line.
23
24 This property is only valid for Giga bit setup( GMII, RGMII), and it is
25 un-used for non-giga bit (MII and RMII) setups. Also note that internal
26 clockgen can not generate stable 125Mhz clock.
27
28 - st,ext-phyclk: This boolean property indicates who is generating the clock
29 for tx and rx. This property is only valid for RMII case where the clock can
30 be generated from the MAC or PHY.
31
32 - clock-names: should be "sti-ethclk".
33 - clocks: Should point to ethernet clockgen which can generate phyclk.
34
35
36Example:
37
38ethernet0: dwmac@fe810000 {
39 device_type = "network";
40 compatible = "st,stih416-dwmac", "snps,dwmac", "snps,dwmac-3.710";
41 reg = <0xfe810000 0x8000>, <0x8bc 0x4>;
42 reg-names = "stmmaceth", "sti-ethconf";
43 interrupts = <0 133 0>, <0 134 0>, <0 135 0>;
44 interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
45 phy-mode = "mii";
46
47 st,syscon = <&syscfg_rear>;
48
49 snps,pbl = <32>;
50 snps,mixed-burst;
51
52 resets = <&softreset STIH416_ETH0_SOFTRESET>;
53 reset-names = "stmmaceth";
54 pinctrl-0 = <&pinctrl_mii0>;
55 pinctrl-names = "default";
56 clocks = <&CLK_S_GMAC0_PHY>;
57 clock-names = "stmmaceth";
58};
diff --git a/Documentation/devicetree/bindings/phy/apm-xgene-phy.txt b/Documentation/devicetree/bindings/phy/apm-xgene-phy.txt
new file mode 100644
index 000000000000..5f3a65a9dd88
--- /dev/null
+++ b/Documentation/devicetree/bindings/phy/apm-xgene-phy.txt
@@ -0,0 +1,79 @@
1* APM X-Gene 15Gbps Multi-purpose PHY nodes
2
3PHY nodes are defined to describe on-chip 15Gbps Multi-purpose PHY. Each
4PHY (pair of lanes) has its own node.
5
6Required properties:
7- compatible : Shall be "apm,xgene-phy".
8- reg : PHY memory resource is the SDS PHY access resource.
9- #phy-cells : Shall be 1 as it expects one argument for setting
10 the mode of the PHY. Possible values are 0 (SATA),
11 1 (SGMII), 2 (PCIe), 3 (USB), and 4 (XFI).
12
13Optional properties:
14- status : Shall be "ok" if enabled or "disabled" if disabled.
15 Default is "ok".
16- clocks : Reference to the clock entry.
17- apm,tx-eye-tuning : Manual control to fine tune the capture of the serial
18 bit lines from the automatic calibrated position.
19 Two set of 3-tuple setting for each (up to 3)
20 supported link speed on the host. Range from 0 to
21 127 in unit of one bit period. Default is 10.
22- apm,tx-eye-direction : Eye tuning manual control direction. 0 means sample
23 data earlier than the nominal sampling point. 1 means
24 sample data later than the nominal sampling point.
25 Two set of 3-tuple setting for each (up to 3)
26 supported link speed on the host. Default is 0.
27- apm,tx-boost-gain : Frequency boost AC (LSB 3-bit) and DC (2-bit)
28 gain control. Two set of 3-tuple setting for each
29 (up to 3) supported link speed on the host. Range is
30 between 0 to 31 in unit of dB. Default is 3.
31- apm,tx-amplitude : Amplitude control. Two set of 3-tuple setting for
32 each (up to 3) supported link speed on the host.
33 Range is between 0 to 199500 in unit of uV.
34 Default is 199500 uV.
35- apm,tx-pre-cursor1 : 1st pre-cursor emphasis taps control. Two set of
36 3-tuple setting for each (up to 3) supported link
37 speed on the host. Range is 0 to 273000 in unit of
38 uV. Default is 0.
39- apm,tx-pre-cursor2 : 2st pre-cursor emphasis taps control. Two set of
40 3-tuple setting for each (up to 3) supported link
41 speed on the host. Range is 0 to 127400 in unit uV.
42 Default is 0x0.
43- apm,tx-post-cursor : Post-cursor emphasis taps control. Two set of
44 3-tuple setting for Gen1, Gen2, and Gen3. Range is
45 between 0 to 0x1f in unit of 18.2mV. Default is 0xf.
46- apm,tx-speed : Tx operating speed. One set of 3-tuple for each
47 supported link speed on the host.
48 0 = 1-2Gbps
49 1 = 2-4Gbps (1st tuple default)
50 2 = 4-8Gbps
51 3 = 8-15Gbps (2nd tuple default)
52 4 = 2.5-4Gbps
53 5 = 4-5Gbps
54 6 = 5-6Gbps
55 7 = 6-16Gbps (3rd tuple default)
56
57NOTE: PHY override parameters are board specific setting.
58
59Example:
60 phy1: phy@1f21a000 {
61 compatible = "apm,xgene-phy";
62 reg = <0x0 0x1f21a000 0x0 0x100>;
63 #phy-cells = <1>;
64 status = "disabled";
65 };
66
67 phy2: phy@1f22a000 {
68 compatible = "apm,xgene-phy";
69 reg = <0x0 0x1f22a000 0x0 0x100>;
70 #phy-cells = <1>;
71 status = "ok";
72 };
73
74 phy3: phy@1f23a000 {
75 compatible = "apm,xgene-phy";
76 reg = <0x0 0x1f23a000 0x0 0x100>;
77 #phy-cells = <1>;
78 status = "ok";
79 };
diff --git a/Documentation/devicetree/bindings/phy/samsung-phy.txt b/Documentation/devicetree/bindings/phy/samsung-phy.txt
index c0fccaa1671e..28f9edb8f19c 100644
--- a/Documentation/devicetree/bindings/phy/samsung-phy.txt
+++ b/Documentation/devicetree/bindings/phy/samsung-phy.txt
@@ -20,3 +20,57 @@ Required properties:
20- compatible : should be "samsung,exynos5250-dp-video-phy"; 20- compatible : should be "samsung,exynos5250-dp-video-phy";
21- reg : offset and length of the Display Port PHY register set; 21- reg : offset and length of the Display Port PHY register set;
22- #phy-cells : from the generic PHY bindings, must be 0; 22- #phy-cells : from the generic PHY bindings, must be 0;
23
24Samsung S5P/EXYNOS SoC series USB PHY
25-------------------------------------------------
26
27Required properties:
28- compatible : should be one of the listed compatibles:
29 - "samsung,exynos4210-usb2-phy"
30 - "samsung,exynos4x12-usb2-phy"
31 - "samsung,exynos5250-usb2-phy"
32- reg : a list of registers used by phy driver
33 - first and obligatory is the location of phy modules registers
34- samsung,sysreg-phandle - handle to syscon used to control the system registers
35- samsung,pmureg-phandle - handle to syscon used to control PMU registers
36- #phy-cells : from the generic phy bindings, must be 1;
37- clocks and clock-names:
38 - the "phy" clock is required by the phy module, used as a gate
39 - the "ref" clock is used to get the rate of the clock provided to the
40 PHY module
41
42The first phandle argument in the PHY specifier identifies the PHY, its
43meaning is compatible dependent. For the currently supported SoCs (Exynos 4210
44and Exynos 4212) it is as follows:
45 0 - USB device ("device"),
46 1 - USB host ("host"),
47 2 - HSIC0 ("hsic0"),
48 3 - HSIC1 ("hsic1"),
49
50Exynos 4210 and Exynos 4212 use mode switching and require that mode switch
51register is supplied.
52
53Example:
54
55For Exynos 4412 (compatible with Exynos 4212):
56
57usbphy: phy@125b0000 {
58 compatible = "samsung,exynos4x12-usb2-phy";
59 reg = <0x125b0000 0x100>;
60 clocks = <&clock 305>, <&clock 2>;
61 clock-names = "phy", "ref";
62 status = "okay";
63 #phy-cells = <1>;
64 samsung,sysreg-phandle = <&sys_reg>;
65 samsung,pmureg-phandle = <&pmu_reg>;
66};
67
68Then the PHY can be used in other nodes such as:
69
70phy-consumer@12340000 {
71 phys = <&usbphy 2>;
72 phy-names = "phy";
73};
74
75Refer to DT bindings documentation of particular PHY consumer devices for more
76information about required PHYs and the way of specification.
diff --git a/Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt b/Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt
new file mode 100644
index 000000000000..a82361b62015
--- /dev/null
+++ b/Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt
@@ -0,0 +1,26 @@
1Allwinner sun4i USB PHY
2-----------------------
3
4Required properties:
5- compatible : should be one of "allwinner,sun4i-a10-usb-phy",
6 "allwinner,sun5i-a13-usb-phy" or "allwinner,sun7i-a20-usb-phy"
7- reg : a list of offset + length pairs
8- reg-names : "phy_ctrl", "pmu1" and for sun4i or sun7i "pmu2"
9- #phy-cells : from the generic phy bindings, must be 1
10- clocks : phandle + clock specifier for the phy clock
11- clock-names : "usb_phy"
12- resets : a list of phandle + reset specifier pairs
13- reset-names : "usb0_reset", "usb1_reset" and for sun4i or sun7i "usb2_reset"
14
15Example:
16 usbphy: phy@0x01c13400 {
17 #phy-cells = <1>;
18 compatible = "allwinner,sun4i-a10-usb-phy";
19 /* phy base regs, phy1 pmu reg, phy2 pmu reg */
20 reg = <0x01c13400 0x10 0x01c14800 0x4 0x01c1c800 0x4>;
21 reg-names = "phy_ctrl", "pmu1", "pmu2";
22 clocks = <&usb_clk 8>;
23 clock-names = "usb_phy";
24 resets = <&usb_clk 1>, <&usb_clk 2>;
25 reset-names = "usb1_reset", "usb2_reset";
26 };
diff --git a/Documentation/devicetree/bindings/phy/ti-phy.txt b/Documentation/devicetree/bindings/phy/ti-phy.txt
new file mode 100644
index 000000000000..788fb0fa3762
--- /dev/null
+++ b/Documentation/devicetree/bindings/phy/ti-phy.txt
@@ -0,0 +1,86 @@
1TI PHY: DT DOCUMENTATION FOR PHYs in TI PLATFORMs
2
3OMAP CONTROL PHY
4
5Required properties:
6 - compatible: Should be one of
7 "ti,control-phy-otghs" - if it has otghs_control mailbox register as on OMAP4.
8 "ti,control-phy-usb2" - if it has Power down bit in control_dev_conf register
9 e.g. USB2_PHY on OMAP5.
10 "ti,control-phy-pipe3" - if it has DPLL and individual Rx & Tx power control
11 e.g. USB3 PHY and SATA PHY on OMAP5.
12 "ti,control-phy-usb2-dra7" - if it has power down register like USB2 PHY on
13 DRA7 platform.
14 "ti,control-phy-usb2-am437" - if it has power down register like USB2 PHY on
15 AM437 platform.
16 - reg : Address and length of the register set for the device. It contains
17 the address of "otghs_control" for control-phy-otghs or "power" register
18 for other types.
19 - reg-names: should be "otghs_control" control-phy-otghs and "power" for
20 other types.
21
22omap_control_usb: omap-control-usb@4a002300 {
23 compatible = "ti,control-phy-otghs";
24 reg = <0x4a00233c 0x4>;
25 reg-names = "otghs_control";
26};
27
28OMAP USB2 PHY
29
30Required properties:
31 - compatible: Should be "ti,omap-usb2"
32 - reg : Address and length of the register set for the device.
33 - #phy-cells: determine the number of cells that should be given in the
34 phandle while referencing this phy.
35
36Optional properties:
37 - ctrl-module : phandle of the control module used by PHY driver to power on
38 the PHY.
39
40This is usually a subnode of ocp2scp to which it is connected.
41
42usb2phy@4a0ad080 {
43 compatible = "ti,omap-usb2";
44 reg = <0x4a0ad080 0x58>;
45 ctrl-module = <&omap_control_usb>;
46 #phy-cells = <0>;
47};
48
49TI PIPE3 PHY
50
51Required properties:
52 - compatible: Should be "ti,phy-usb3" or "ti,phy-pipe3-sata".
53 "ti,omap-usb3" is deprecated.
54 - reg : Address and length of the register set for the device.
55 - reg-names: The names of the register addresses corresponding to the registers
56 filled in "reg".
57 - #phy-cells: determine the number of cells that should be given in the
58 phandle while referencing this phy.
59 - clocks: a list of phandles and clock-specifier pairs, one for each entry in
60 clock-names.
61 - clock-names: should include:
62 * "wkupclk" - wakeup clock.
63 * "sysclk" - system clock.
64 * "refclk" - reference clock.
65
66Optional properties:
67 - ctrl-module : phandle of the control module used by PHY driver to power on
68 the PHY.
69
70This is usually a subnode of ocp2scp to which it is connected.
71
72usb3phy@4a084400 {
73 compatible = "ti,phy-usb3";
74 reg = <0x4a084400 0x80>,
75 <0x4a084800 0x64>,
76 <0x4a084c00 0x40>;
77 reg-names = "phy_rx", "phy_tx", "pll_ctrl";
78 ctrl-module = <&omap_control_usb>;
79 #phy-cells = <0>;
80 clocks = <&usb_phy_cm_clk32k>,
81 <&sys_clkin>,
82 <&usb_otg_ss_refclk960m>;
83 clock-names = "wkupclk",
84 "sysclk",
85 "refclk";
86};
diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,capri-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/brcm,bcm11351-pinctrl.txt
index 9e9e9ef9f852..c119debe6bab 100644
--- a/Documentation/devicetree/bindings/pinctrl/brcm,capri-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/brcm,bcm11351-pinctrl.txt
@@ -1,4 +1,4 @@
1Broadcom Capri Pin Controller 1Broadcom BCM281xx Pin Controller
2 2
3This is a pin controller for the Broadcom BCM281xx SoC family, which includes 3This is a pin controller for the Broadcom BCM281xx SoC family, which includes
4BCM11130, BCM11140, BCM11351, BCM28145, and BCM28155 SoCs. 4BCM11130, BCM11140, BCM11351, BCM28145, and BCM28155 SoCs.
@@ -7,14 +7,14 @@ BCM11130, BCM11140, BCM11351, BCM28145, and BCM28155 SoCs.
7 7
8Required Properties: 8Required Properties:
9 9
10- compatible: Must be "brcm,capri-pinctrl". 10- compatible: Must be "brcm,bcm11351-pinctrl"
11- reg: Base address of the PAD Controller register block and the size 11- reg: Base address of the PAD Controller register block and the size
12 of the block. 12 of the block.
13 13
14For example, the following is the bare minimum node: 14For example, the following is the bare minimum node:
15 15
16 pinctrl@35004800 { 16 pinctrl@35004800 {
17 compatible = "brcm,capri-pinctrl"; 17 compatible = "brcm,bcm11351-pinctrl";
18 reg = <0x35004800 0x430>; 18 reg = <0x35004800 0x430>;
19 }; 19 };
20 20
@@ -119,7 +119,7 @@ Optional Properties (for HDMI pins):
119Example: 119Example:
120// pin controller node 120// pin controller node
121pinctrl@35004800 { 121pinctrl@35004800 {
122 compatible = "brcm,capri-pinctrl"; 122 compatible = "brcmbcm11351-pinctrl";
123 reg = <0x35004800 0x430>; 123 reg = <0x35004800 0x430>;
124 124
125 // pin configuration node 125 // pin configuration node
diff --git a/Documentation/devicetree/bindings/pinctrl/marvell,armada-370-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/marvell,armada-370-pinctrl.txt
index 01ef408e205f..adda2a8d1d52 100644
--- a/Documentation/devicetree/bindings/pinctrl/marvell,armada-370-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/marvell,armada-370-pinctrl.txt
@@ -5,6 +5,7 @@ part and usage.
5 5
6Required properties: 6Required properties:
7- compatible: "marvell,88f6710-pinctrl" 7- compatible: "marvell,88f6710-pinctrl"
8- reg: register specifier of MPP registers
8 9
9Available mpp pins/groups and functions: 10Available mpp pins/groups and functions:
10Note: brackets (x) are not part of the mpp name for marvell,function and given 11Note: brackets (x) are not part of the mpp name for marvell,function and given
diff --git a/Documentation/devicetree/bindings/pinctrl/marvell,armada-375-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/marvell,armada-375-pinctrl.txt
new file mode 100644
index 000000000000..7de0cda4a379
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/marvell,armada-375-pinctrl.txt
@@ -0,0 +1,82 @@
1* Marvell Armada 375 SoC pinctrl driver for mpp
2
3Please refer to marvell,mvebu-pinctrl.txt in this directory for common binding
4part and usage.
5
6Required properties:
7- compatible: "marvell,88f6720-pinctrl"
8- reg: register specifier of MPP registers
9
10Available mpp pins/groups and functions:
11Note: brackets (x) are not part of the mpp name for marvell,function and given
12only for more detailed description in this document.
13
14name pins functions
15================================================================================
16mpp0 0 gpio, dev(ad2), spi0(cs1), spi1(cs1)
17mpp1 1 gpio, dev(ad3), spi0(mosi), spi1(mosi)
18mpp2 2 gpio, dev(ad4), ptp(eventreq), led(c0), audio(sdi)
19mpp3 3 gpio, dev(ad5), ptp(triggen), led(p3), audio(mclk)
20mpp4 4 gpio, dev(ad6), spi0(miso), spi1(miso)
21mpp5 5 gpio, dev(ad7), spi0(cs2), spi1(cs2)
22mpp6 6 gpio, dev(ad0), led(p1), audio(rclk)
23mpp7 7 gpio, dev(ad1), ptp(clk), led(p2), audio(extclk)
24mpp8 8 gpio, dev (bootcs), spi0(cs0), spi1(cs0)
25mpp9 9 gpio, nf(wen), spi0(sck), spi1(sck)
26mpp10 10 gpio, nf(ren), dram(vttctrl), led(c1)
27mpp11 11 gpio, dev(a0), led(c2), audio(sdo)
28mpp12 12 gpio, dev(a1), audio(bclk)
29mpp13 13 gpio, dev(readyn), pcie0(rstoutn), pcie1(rstoutn)
30mpp14 14 gpio, i2c0(sda), uart1(txd)
31mpp15 15 gpio, i2c0(sck), uart1(rxd)
32mpp16 16 gpio, uart0(txd)
33mpp17 17 gpio, uart0(rxd)
34mpp18 18 gpio, tdm(intn)
35mpp19 19 gpio, tdm(rstn)
36mpp20 20 gpio, tdm(pclk)
37mpp21 21 gpio, tdm(fsync)
38mpp22 22 gpio, tdm(drx)
39mpp23 23 gpio, tdm(dtx)
40mpp24 24 gpio, led(p0), ge1(rxd0), sd(cmd), uart0(rts)
41mpp25 25 gpio, led(p2), ge1(rxd1), sd(d0), uart0(cts)
42mpp26 26 gpio, pcie0(clkreq), ge1(rxd2), sd(d2), uart1(rts)
43mpp27 27 gpio, pcie1(clkreq), ge1(rxd3), sd(d1), uart1(cts)
44mpp28 28 gpio, led(p3), ge1(txctl), sd(clk)
45mpp29 29 gpio, pcie1(clkreq), ge1(rxclk), sd(d3)
46mpp30 30 gpio, ge1(txd0), spi1(cs0)
47mpp31 31 gpio, ge1(txd1), spi1(mosi)
48mpp32 32 gpio, ge1(txd2), spi1(sck), ptp(triggen)
49mpp33 33 gpio, ge1(txd3), spi1(miso)
50mpp34 34 gpio, ge1(txclkout), spi1(sck)
51mpp35 35 gpio, ge1(rxctl), spi1(cs1), spi0(cs2)
52mpp36 36 gpio, pcie0(clkreq)
53mpp37 37 gpio, pcie0(clkreq), tdm(intn), ge(mdc)
54mpp38 38 gpio, pcie1(clkreq), ge(mdio)
55mpp39 39 gpio, ref(clkout)
56mpp40 40 gpio, uart1(txd)
57mpp41 41 gpio, uart1(rxd)
58mpp42 42 gpio, spi1(cs2), led(c0)
59mpp43 43 gpio, sata0(prsnt), dram(vttctrl)
60mpp44 44 gpio, sata0(prsnt)
61mpp45 45 gpio, spi0(cs2), pcie0(rstoutn)
62mpp46 46 gpio, led(p0), ge0(txd0), ge1(txd0)
63mpp47 47 gpio, led(p1), ge0(txd1), ge1(txd1)
64mpp48 48 gpio, led(p2), ge0(txd2), ge1(txd2)
65mpp49 49 gpio, led(p3), ge0(txd3), ge1(txd3)
66mpp50 50 gpio, led(c0), ge0(rxd0), ge1(rxd0)
67mpp51 51 gpio, led(c1), ge0(rxd1), ge1(rxd1)
68mpp52 52 gpio, led(c2), ge0(rxd2), ge1(rxd2)
69mpp53 53 gpio, pcie1(rstoutn), ge0(rxd3), ge1(rxd3)
70mpp54 54 gpio, pcie0(rstoutn), ge0(rxctl), ge1(rxctl)
71mpp55 55 gpio, ge0(rxclk), ge1(rxclk)
72mpp56 56 gpio, ge0(txclkout), ge1(txclkout)
73mpp57 57 gpio, ge0(txctl), ge1(txctl)
74mpp58 58 gpio, led(c0)
75mpp59 59 gpio, led(c1)
76mpp60 60 gpio, uart1(txd), led(c2)
77mpp61 61 gpio, i2c1(sda), uart1(rxd), spi1(cs2), led(p0)
78mpp62 62 gpio, i2c1(sck), led(p1)
79mpp63 63 gpio, ptp(triggen), led(p2)
80mpp64 64 gpio, dram(vttctrl), led(p3)
81mpp65 65 gpio, sata1(prsnt)
82mpp66 66 gpio, ptp(eventreq), spi1(cs3)
diff --git a/Documentation/devicetree/bindings/pinctrl/marvell,armada-38x-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/marvell,armada-38x-pinctrl.txt
new file mode 100644
index 000000000000..b17c96849fc9
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/marvell,armada-38x-pinctrl.txt
@@ -0,0 +1,80 @@
1* Marvell Armada 380/385 SoC pinctrl driver for mpp
2
3Please refer to marvell,mvebu-pinctrl.txt in this directory for common binding
4part and usage.
5
6Required properties:
7- compatible: "marvell,88f6810-pinctrl", "marvell,88f6820-pinctrl" or
8 "marvell,88f6828-pinctrl" depending on the specific variant of the
9 SoC being used.
10- reg: register specifier of MPP registers
11
12Available mpp pins/groups and functions:
13Note: brackets (x) are not part of the mpp name for marvell,function and given
14only for more detailed description in this document.
15
16name pins functions
17================================================================================
18mpp0 0 gpio, ua0(rxd)
19mpp1 1 gpio, ua0(txd)
20mpp2 2 gpio, i2c0(sck)
21mpp3 3 gpio, i2c0(sda)
22mpp4 4 gpio, ge(mdc), ua1(txd), ua0(rts)
23mpp5 5 gpio, ge(mdio), ua1(rxd), ua0(cts)
24mpp6 6 gpio, ge0(txclkout), ge0(crs), dev(cs3)
25mpp7 7 gpio, ge0(txd0), dev(ad9)
26mpp8 8 gpio, ge0(txd1), dev(ad10)
27mpp9 9 gpio, ge0(txd2), dev(ad11)
28mpp10 10 gpio, ge0(txd3), dev(ad12)
29mpp11 11 gpio, ge0(txctl), dev(ad13)
30mpp12 12 gpio, ge0(rxd0), pcie0(rstout), pcie1(rstout) [1], spi0(cs1), dev(ad14)
31mpp13 13 gpio, ge0(rxd1), pcie0(clkreq), pcie1(clkreq) [1], spi0(cs2), dev(ad15)
32mpp14 14 gpio, ge0(rxd2), ptp(clk), m(vtt_ctrl), spi0(cs3), dev(wen1)
33mpp15 15 gpio, ge0(rxd3), ge(mdc slave), pcie0(rstout), spi0(mosi), pcie1(rstout) [1]
34mpp16 16 gpio, ge0(rxctl), ge(mdio slave), m(decc_err), spi0(miso), pcie0(clkreq)
35mpp17 17 gpio, ge0(rxclk), ptp(clk), ua1(rxd), spi0(sck), sata1(prsnt)
36mpp18 18 gpio, ge0(rxerr), ptp(trig_gen), ua1(txd), spi0(cs0), pcie1(rstout) [1]
37mpp19 19 gpio, ge0(col), ptp(event_req), pcie0(clkreq), sata1(prsnt), ua0(cts)
38mpp20 20 gpio, ge0(txclk), ptp(clk), pcie1(rstout) [1], sata0(prsnt), ua0(rts)
39mpp21 21 gpio, spi0(cs1), ge1(rxd0), sata0(prsnt), sd0(cmd), dev(bootcs)
40mpp22 22 gpio, spi0(mosi), dev(ad0)
41mpp23 23 gpio, spi0(sck), dev(ad2)
42mpp24 24 gpio, spi0(miso), ua0(cts), ua1(rxd), sd0(d4), dev(ready)
43mpp25 25 gpio, spi0(cs0), ua0(rts), ua1(txd), sd0(d5), dev(cs0)
44mpp26 26 gpio, spi0(cs2), i2c1(sck), sd0(d6), dev(cs1)
45mpp27 27 gpio, spi0(cs3), ge1(txclkout), i2c1(sda), sd0(d7), dev(cs2)
46mpp28 28 gpio, ge1(txd0), sd0(clk), dev(ad5)
47mpp29 29 gpio, ge1(txd1), dev(ale0)
48mpp30 30 gpio, ge1(txd2), dev(oen)
49mpp31 31 gpio, ge1(txd3), dev(ale1)
50mpp32 32 gpio, ge1(txctl), dev(wen0)
51mpp33 33 gpio, m(decc_err), dev(ad3)
52mpp34 34 gpio, dev(ad1)
53mpp35 35 gpio, ref(clk_out1), dev(a1)
54mpp36 36 gpio, ptp(trig_gen), dev(a0)
55mpp37 37 gpio, ptp(clk), ge1(rxclk), sd0(d3), dev(ad8)
56mpp38 38 gpio, ptp(event_req), ge1(rxd1), ref(clk_out0), sd0(d0), dev(ad4)
57mpp39 39 gpio, i2c1(sck), ge1(rxd2), ua0(cts), sd0(d1), dev(a2)
58mpp40 40 gpio, i2c1(sda), ge1(rxd3), ua0(rts), sd0(d2), dev(ad6)
59mpp41 41 gpio, ua1(rxd), ge1(rxctl), ua0(cts), spi1(cs3), dev(burst/last)
60mpp42 42 gpio, ua1(txd), ua0(rts), dev(ad7)
61mpp43 43 gpio, pcie0(clkreq), m(vtt_ctrl), m(decc_err), pcie0(rstout), dev(clkout)
62mpp44 44 gpio, sata0(prsnt), sata1(prsnt), sata2(prsnt) [2], sata3(prsnt) [3], pcie0(rstout)
63mpp45 45 gpio, ref(clk_out0), pcie0(rstout), pcie1(rstout) [1], pcie2(rstout), pcie3(rstout)
64mpp46 46 gpio, ref(clk_out1), pcie0(rstout), pcie1(rstout) [1], pcie2(rstout), pcie3(rstout)
65mpp47 47 gpio, sata0(prsnt), sata1(prsnt), sata2(prsnt) [2], spi1(cs2), sata3(prsnt) [2]
66mpp48 48 gpio, sata0(prsnt), m(vtt_ctrl), tdm2c(pclk), audio(mclk), sd0(d4)
67mpp49 49 gpio, sata2(prsnt) [2], sata3(prsnt) [2], tdm2c(fsync), audio(lrclk), sd0(d5)
68mpp50 50 gpio, pcie0(rstout), pcie1(rstout) [1], tdm2c(drx), audio(extclk), sd0(cmd)
69mpp51 51 gpio, tdm2c(dtx), audio(sdo), m(decc_err)
70mpp52 52 gpio, pcie0(rstout), pcie1(rstout) [1], tdm2c(intn), audio(sdi), sd0(d6)
71mpp53 53 gpio, sata1(prsnt), sata0(prsnt), tdm2c(rstn), audio(bclk), sd0(d7)
72mpp54 54 gpio, sata0(prsnt), sata1(prsnt), pcie0(rstout), pcie1(rstout) [1], sd0(d3)
73mpp55 55 gpio, ua1(cts), ge(mdio), pcie1(clkreq) [1], spi1(cs1), sd0(d0)
74mpp56 56 gpio, ua1(rts), ge(mdc), m(decc_err), spi1(mosi)
75mpp57 57 gpio, spi1(sck), sd0(clk)
76mpp58 58 gpio, pcie1(clkreq) [1], i2c1(sck), pcie2(clkreq), spi1(miso), sd0(d1)
77mpp59 59 gpio, pcie0(rstout), i2c1(sda), pcie1(rstout) [1], spi1(cs0), sd0(d2)
78
79[1]: only available on 88F6820 and 88F6828
80[2]: only available on 88F6828
diff --git a/Documentation/devicetree/bindings/pinctrl/marvell,armada-xp-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/marvell,armada-xp-pinctrl.txt
index bfa0a2e5e0cb..373dbccd7ab0 100644
--- a/Documentation/devicetree/bindings/pinctrl/marvell,armada-xp-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/marvell,armada-xp-pinctrl.txt
@@ -6,6 +6,7 @@ part and usage.
6Required properties: 6Required properties:
7- compatible: "marvell,mv78230-pinctrl", "marvell,mv78260-pinctrl", 7- compatible: "marvell,mv78230-pinctrl", "marvell,mv78260-pinctrl",
8 "marvell,mv78460-pinctrl" 8 "marvell,mv78460-pinctrl"
9- reg: register specifier of MPP registers
9 10
10This driver supports all Armada XP variants, i.e. mv78230, mv78260, and mv78460. 11This driver supports all Armada XP variants, i.e. mv78230, mv78260, and mv78460.
11 12
diff --git a/Documentation/devicetree/bindings/pinctrl/marvell,dove-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/marvell,dove-pinctrl.txt
index 50ec3512a292..cf52477cc7ee 100644
--- a/Documentation/devicetree/bindings/pinctrl/marvell,dove-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/marvell,dove-pinctrl.txt
@@ -6,6 +6,7 @@ part and usage.
6Required properties: 6Required properties:
7- compatible: "marvell,dove-pinctrl" 7- compatible: "marvell,dove-pinctrl"
8- clocks: (optional) phandle of pdma clock 8- clocks: (optional) phandle of pdma clock
9- reg: register specifiers of MPP, MPP4, and PMU MPP registers
9 10
10Available mpp pins/groups and functions: 11Available mpp pins/groups and functions:
11Note: brackets (x) are not part of the mpp name for marvell,function and given 12Note: brackets (x) are not part of the mpp name for marvell,function and given
diff --git a/Documentation/devicetree/bindings/pinctrl/marvell,kirkwood-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/marvell,kirkwood-pinctrl.txt
index 95daf6335c37..730444a9a4de 100644
--- a/Documentation/devicetree/bindings/pinctrl/marvell,kirkwood-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/marvell,kirkwood-pinctrl.txt
@@ -8,6 +8,7 @@ Required properties:
8 "marvell,88f6190-pinctrl", "marvell,88f6192-pinctrl", 8 "marvell,88f6190-pinctrl", "marvell,88f6192-pinctrl",
9 "marvell,88f6281-pinctrl", "marvell,88f6282-pinctrl" 9 "marvell,88f6281-pinctrl", "marvell,88f6282-pinctrl"
10 "marvell,98dx4122-pinctrl" 10 "marvell,98dx4122-pinctrl"
11- reg: register specifier of MPP registers
11 12
12This driver supports all kirkwood variants, i.e. 88f6180, 88f619x, and 88f628x. 13This driver supports all kirkwood variants, i.e. 88f6180, 88f619x, and 88f628x.
13It also support the 88f6281-based variant in the 98dx412x Bobcat SoCs. 14It also support the 88f6281-based variant in the 98dx412x Bobcat SoCs.
diff --git a/Documentation/devicetree/bindings/pinctrl/marvell,mvebu-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/marvell,mvebu-pinctrl.txt
index 0a26c3aa4e6d..0c09f4eb2af0 100644
--- a/Documentation/devicetree/bindings/pinctrl/marvell,mvebu-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/marvell,mvebu-pinctrl.txt
@@ -37,7 +37,7 @@ uart1: serial@12100 {
37 37
38pinctrl: pinctrl@d0200 { 38pinctrl: pinctrl@d0200 {
39 compatible = "marvell,dove-pinctrl"; 39 compatible = "marvell,dove-pinctrl";
40 reg = <0xd0200 0x20>; 40 reg = <0xd0200 0x14>, <0xd0440 0x04>, <0xd802c 0x08>;
41 41
42 pmx_uart1_sw: pmx-uart1-sw { 42 pmx_uart1_sw: pmx-uart1-sw {
43 marvell,pins = "mpp_uart1"; 43 marvell,pins = "mpp_uart1";
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
index bc0dfdfdb148..66dcaa9efd74 100644
--- a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
@@ -63,6 +63,13 @@ Optional properties:
63 /* input, enable bits, disable bits, mask */ 63 /* input, enable bits, disable bits, mask */
64 pinctrl-single,input-schmitt-enable = <0x30 0x40 0 0x70>; 64 pinctrl-single,input-schmitt-enable = <0x30 0x40 0 0x70>;
65 65
66- pinctrl-single,low-power-mode : array of value that are used to configure
67 low power mode of this pin. For some silicons, the low power mode will
68 control the output of the pin when the pad including the pin enter low
69 power mode.
70 /* low power mode value, mask */
71 pinctrl-single,low-power-mode = <0x288 0x388>;
72
66- pinctrl-single,gpio-range : list of value that are used to configure a GPIO 73- pinctrl-single,gpio-range : list of value that are used to configure a GPIO
67 range. They're value of subnode phandle, pin base in pinctrl device, pin 74 range. They're value of subnode phandle, pin base in pinctrl device, pin
68 number in this range, GPIO function value of this GPIO range. 75 number in this range, GPIO function value of this GPIO range.
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-st.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-st.txt
index 05bf82a07dfd..4bd5be0e5e7d 100644
--- a/Documentation/devicetree/bindings/pinctrl/pinctrl-st.txt
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-st.txt
@@ -11,18 +11,68 @@ Pull Up (PU) are driven by the related PIO block.
11ST pinctrl driver controls PIO multiplexing block and also interacts with 11ST pinctrl driver controls PIO multiplexing block and also interacts with
12gpio driver to configure a pin. 12gpio driver to configure a pin.
13 13
14Required properties: (PIO multiplexing block) 14GPIO bank can have one of the two possible types of interrupt-wirings.
15
16First type is via irqmux, single interrupt is used by multiple gpio banks. This
17reduces number of overall interrupts numbers required. All these banks belong to
18a single pincontroller.
19 _________
20 | |----> [gpio-bank (n) ]
21 | |----> [gpio-bank (n + 1)]
22 [irqN]-- | irq-mux |----> [gpio-bank (n + 2)]
23 | |----> [gpio-bank (... )]
24 |_________|----> [gpio-bank (n + 7)]
25
26Second type has a dedicated interrupt per gpio bank.
27
28 [irqN]----> [gpio-bank (n)]
29
30
31Pin controller node:
32Required properties:
15- compatible : should be "st,<SOC>-<pio-block>-pinctrl" 33- compatible : should be "st,<SOC>-<pio-block>-pinctrl"
16 like st,stih415-sbc-pinctrl, st,stih415-front-pinctrl and so on. 34 like st,stih415-sbc-pinctrl, st,stih415-front-pinctrl and so on.
17- gpio-controller : Indicates this device is a GPIO controller 35- st,syscfg : Should be a phandle of the syscfg node.
18- #gpio-cells : Should be one. The first cell is the pin number.
19- st,retime-pin-mask : Should be mask to specify which pins can be retimed. 36- st,retime-pin-mask : Should be mask to specify which pins can be retimed.
20 If the property is not present, it is assumed that all the pins in the 37 If the property is not present, it is assumed that all the pins in the
21 bank are capable of retiming. Retiming is mainly used to improve the 38 bank are capable of retiming. Retiming is mainly used to improve the
22 IO timing margins of external synchronous interfaces. 39 IO timing margins of external synchronous interfaces.
23- st,bank-name : Should be a name string for this bank as 40- ranges : defines mapping between pin controller node (parent) to gpio-bank
24 specified in datasheet. 41 node (children).
25- st,syscfg : Should be a phandle of the syscfg node. 42
43Optional properties:
44- interrupts : Interrupt number of the irqmux. If the interrupt is shared
45 with other gpio banks via irqmux.
46 a irqline and gpio banks.
47- reg : irqmux memory resource. If irqmux is present.
48- reg-names : irqmux resource should be named as "irqmux".
49
50GPIO controller/bank node.
51Required properties:
52- gpio-controller : Indicates this device is a GPIO controller
53- #gpio-cells : Should be one. The first cell is the pin number.
54- st,bank-name : Should be a name string for this bank as specified in
55 datasheet.
56
57Optional properties:
58- interrupts : Interrupt number for this gpio bank. If there is a dedicated
59 interrupt wired up for this gpio bank.
60
61- interrupt-controller : Indicates this device is a interrupt controller. GPIO
62 bank can be an interrupt controller iff one of the interrupt type either via
63irqmux or a dedicated interrupt per bank is specified.
64
65- #interrupt-cells: the value of this property should be 2.
66 - First Cell: represents the external gpio interrupt number local to the
67 gpio interrupt space of the controller.
68 - Second Cell: flags to identify the type of the interrupt
69 - 1 = rising edge triggered
70 - 2 = falling edge triggered
71 - 3 = rising and falling edge triggered
72 - 4 = high level triggered
73 - 8 = low level triggered
74for related macros look in:
75include/dt-bindings/interrupt-controller/irq.h
26 76
27Example: 77Example:
28 pin-controller-sbc { 78 pin-controller-sbc {
@@ -30,10 +80,17 @@ Example:
30 #size-cells = <1>; 80 #size-cells = <1>;
31 compatible = "st,stih415-sbc-pinctrl"; 81 compatible = "st,stih415-sbc-pinctrl";
32 st,syscfg = <&syscfg_sbc>; 82 st,syscfg = <&syscfg_sbc>;
83 reg = <0xfe61f080 0x4>;
84 reg-names = "irqmux";
85 interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
86 interrupts-names = "irqmux";
33 ranges = <0 0xfe610000 0x5000>; 87 ranges = <0 0xfe610000 0x5000>;
88
34 PIO0: gpio@fe610000 { 89 PIO0: gpio@fe610000 {
35 gpio-controller; 90 gpio-controller;
36 #gpio-cells = <1>; 91 #gpio-cells = <1>;
92 interrupt-controller;
93 #interrupt-cells = <2>;
37 reg = <0 0x100>; 94 reg = <0 0x100>;
38 st,bank-name = "PIO0"; 95 st,bank-name = "PIO0";
39 }; 96 };
@@ -105,6 +162,10 @@ pin-controller {
105 162
106sdhci0:sdhci@fe810000{ 163sdhci0:sdhci@fe810000{
107 ... 164 ...
165 interrupt-parent = <&PIO3>;
166 #interrupt-cells = <2>;
167 interrupts = <3 IRQ_TYPE_LEVEL_HIGH>; /* Interrupt line via PIO3-3 */
168 interrupts-names = "card-detect";
108 pinctrl-names = "default"; 169 pinctrl-names = "default";
109 pinctrl-0 = <&pinctrl_mmc>; 170 pinctrl-0 = <&pinctrl_mmc>;
110}; 171};
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt
index 4c352be5dd61..9fb89e3f61ea 100644
--- a/Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt
@@ -1,7 +1,7 @@
1Qualcomm MSM8974 TLMM block 1Qualcomm MSM8974 TLMM block
2 2
3Required properties: 3Required properties:
4- compatible: "qcom,msm8x74-pinctrl" 4- compatible: "qcom,msm8974-pinctrl"
5- reg: Should be the base address and length of the TLMM block. 5- reg: Should be the base address and length of the TLMM block.
6- interrupts: Should be the parent IRQ of the TLMM block. 6- interrupts: Should be the parent IRQ of the TLMM block.
7- interrupt-controller: Marks the device node as an interrupt controller. 7- interrupt-controller: Marks the device node as an interrupt controller.
@@ -42,14 +42,14 @@ Non-empty subnodes must specify the 'pins' property.
42Note that not all properties are valid for all pins. 42Note that not all properties are valid for all pins.
43 43
44 44
45Valid values for qcom,pins are: 45Valid values for pins are:
46 gpio0-gpio145 46 gpio0-gpio145
47 Supports mux, bias and drive-strength 47 Supports mux, bias and drive-strength
48 48
49 sdc1_clk, sdc1_cmd, sdc1_data, sdc2_clk, sdc2_cmd, sdc2_data 49 sdc1_clk, sdc1_cmd, sdc1_data, sdc2_clk, sdc2_cmd, sdc2_data
50 Supports bias and drive-strength 50 Supports bias and drive-strength
51 51
52Valid values for qcom,function are: 52Valid values for function are:
53 blsp_i2c2, blsp_i2c6, blsp_i2c11, blsp_spi1, blsp_uart2, blsp_uart8, slimbus 53 blsp_i2c2, blsp_i2c6, blsp_i2c11, blsp_spi1, blsp_uart2, blsp_uart8, slimbus
54 54
55 (Note that this is not yet the complete list of functions) 55 (Note that this is not yet the complete list of functions)
@@ -73,18 +73,18 @@ Example:
73 73
74 uart2_default: uart2_default { 74 uart2_default: uart2_default {
75 mux { 75 mux {
76 qcom,pins = "gpio4", "gpio5"; 76 pins = "gpio4", "gpio5";
77 qcom,function = "blsp_uart2"; 77 function = "blsp_uart2";
78 }; 78 };
79 79
80 tx { 80 tx {
81 qcom,pins = "gpio4"; 81 pins = "gpio4";
82 drive-strength = <4>; 82 drive-strength = <4>;
83 bias-disable; 83 bias-disable;
84 }; 84 };
85 85
86 rx { 86 rx {
87 qcom,pins = "gpio5"; 87 pins = "gpio5";
88 drive-strength = <2>; 88 drive-strength = <2>;
89 bias-pull-up; 89 bias-pull-up;
90 }; 90 };
diff --git a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
index 257677de3e6b..2b32783ba821 100644
--- a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
@@ -16,6 +16,7 @@ Required Properties:
16 - "samsung,exynos4210-pinctrl": for Exynos4210 compatible pin-controller. 16 - "samsung,exynos4210-pinctrl": for Exynos4210 compatible pin-controller.
17 - "samsung,exynos4x12-pinctrl": for Exynos4x12 compatible pin-controller. 17 - "samsung,exynos4x12-pinctrl": for Exynos4x12 compatible pin-controller.
18 - "samsung,exynos5250-pinctrl": for Exynos5250 compatible pin-controller. 18 - "samsung,exynos5250-pinctrl": for Exynos5250 compatible pin-controller.
19 - "samsung,exynos5260-pinctrl": for Exynos5260 compatible pin-controller.
19 - "samsung,exynos5420-pinctrl": for Exynos5420 compatible pin-controller. 20 - "samsung,exynos5420-pinctrl": for Exynos5420 compatible pin-controller.
20 21
21- reg: Base address of the pin controller hardware module and length of 22- reg: Base address of the pin controller hardware module and length of
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/l2cache.txt b/Documentation/devicetree/bindings/powerpc/fsl/l2cache.txt
new file mode 100644
index 000000000000..c41b2187eaa8
--- /dev/null
+++ b/Documentation/devicetree/bindings/powerpc/fsl/l2cache.txt
@@ -0,0 +1,23 @@
1Freescale L2 Cache Controller
2
3L2 cache is present in Freescale's QorIQ and QorIQ Qonverge platforms.
4The cache bindings explained below are ePAPR compliant
5
6Required Properties:
7
8- compatible : Should include "fsl,chip-l2-cache-controller" and "cache"
9 where chip is the processor (bsc9132, npc8572 etc.)
10- reg : Address and size of L2 cache controller registers
11- cache-size : Size of the entire L2 cache
12- interrupts : Error interrupt of L2 controller
13- cache-line-size : Size of L2 cache lines
14
15Example:
16
17 L2: l2-cache-controller@20000 {
18 compatible = "fsl,bsc9132-l2-cache-controller", "cache";
19 reg = <0x20000 0x1000>;
20 cache-line-size = <32>; // 32 bytes
21 cache-size = <0x40000>; // L2,256K
22 interrupts = <16 2 1 0>;
23 };
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/mem-ctrlr.txt b/Documentation/devicetree/bindings/powerpc/fsl/mem-ctrlr.txt
new file mode 100644
index 000000000000..f87856faf1ab
--- /dev/null
+++ b/Documentation/devicetree/bindings/powerpc/fsl/mem-ctrlr.txt
@@ -0,0 +1,27 @@
1Freescale DDR memory controller
2
3Properties:
4
5- compatible : Should include "fsl,chip-memory-controller" where
6 chip is the processor (bsc9132, mpc8572 etc.), or
7 "fsl,qoriq-memory-controller".
8- reg : Address and size of DDR controller registers
9- interrupts : Error interrupt of DDR controller
10
11Example 1:
12
13 memory-controller@2000 {
14 compatible = "fsl,bsc9132-memory-controller";
15 reg = <0x2000 0x1000>;
16 interrupts = <16 2 1 8>;
17 };
18
19
20Example 2:
21
22 ddr1: memory-controller@8000 {
23 compatible = "fsl,qoriq-memory-controller-v4.7",
24 "fsl,qoriq-memory-controller";
25 reg = <0x8000 0x1000>;
26 interrupts = <16 2 1 23>;
27 };
diff --git a/Documentation/devicetree/bindings/regulator/gpio-regulator.txt b/Documentation/devicetree/bindings/regulator/gpio-regulator.txt
index 63c659800c03..e5cac1e0ca8a 100644
--- a/Documentation/devicetree/bindings/regulator/gpio-regulator.txt
+++ b/Documentation/devicetree/bindings/regulator/gpio-regulator.txt
@@ -8,8 +8,12 @@ Required properties:
8Optional properties: 8Optional properties:
9- enable-gpio : GPIO to use to enable/disable the regulator. 9- enable-gpio : GPIO to use to enable/disable the regulator.
10- gpios : GPIO group used to control voltage. 10- gpios : GPIO group used to control voltage.
11- gpios-states : gpios pin's initial states array. 0: LOW, 1: HIGH.
12 defualt is LOW if nothing is specified.
11- startup-delay-us : Startup time in microseconds. 13- startup-delay-us : Startup time in microseconds.
12- enable-active-high : Polarity of GPIO is active high (default is low). 14- enable-active-high : Polarity of GPIO is active high (default is low).
15- regulator-type : Specifies what is being regulated, must be either
16 "voltage" or "current", defaults to current.
13 17
14Any property defined as part of the core regulator binding defined in 18Any property defined as part of the core regulator binding defined in
15regulator.txt can also be used. 19regulator.txt can also be used.
diff --git a/Documentation/devicetree/bindings/regulator/pfuze100.txt b/Documentation/devicetree/bindings/regulator/pfuze100.txt
index fc989b2e8057..34ef5d16d0f1 100644
--- a/Documentation/devicetree/bindings/regulator/pfuze100.txt
+++ b/Documentation/devicetree/bindings/regulator/pfuze100.txt
@@ -1,7 +1,7 @@
1PFUZE100 family of regulators 1PFUZE100 family of regulators
2 2
3Required properties: 3Required properties:
4- compatible: "fsl,pfuze100" 4- compatible: "fsl,pfuze100" or "fsl,pfuze200"
5- reg: I2C slave address 5- reg: I2C slave address
6 6
7Required child node: 7Required child node:
@@ -10,11 +10,14 @@ Required child node:
10 Documentation/devicetree/bindings/regulator/regulator.txt. 10 Documentation/devicetree/bindings/regulator/regulator.txt.
11 11
12 The valid names for regulators are: 12 The valid names for regulators are:
13 --PFUZE100
13 sw1ab,sw1c,sw2,sw3a,sw3b,sw4,swbst,vsnvs,vrefddr,vgen1~vgen6 14 sw1ab,sw1c,sw2,sw3a,sw3b,sw4,swbst,vsnvs,vrefddr,vgen1~vgen6
15 --PFUZE200
16 sw1ab,sw2,sw3a,sw3b,swbst,vsnvs,vrefddr,vgen1~vgen6
14 17
15Each regulator is defined using the standard binding for regulators. 18Each regulator is defined using the standard binding for regulators.
16 19
17Example: 20Example 1: PFUZE100
18 21
19 pmic: pfuze100@08 { 22 pmic: pfuze100@08 {
20 compatible = "fsl,pfuze100"; 23 compatible = "fsl,pfuze100";
@@ -113,3 +116,92 @@ Example:
113 }; 116 };
114 }; 117 };
115 }; 118 };
119
120
121Example 2: PFUZE200
122
123 pmic: pfuze200@08 {
124 compatible = "fsl,pfuze200";
125 reg = <0x08>;
126
127 regulators {
128 sw1a_reg: sw1ab {
129 regulator-min-microvolt = <300000>;
130 regulator-max-microvolt = <1875000>;
131 regulator-boot-on;
132 regulator-always-on;
133 regulator-ramp-delay = <6250>;
134 };
135
136 sw2_reg: sw2 {
137 regulator-min-microvolt = <800000>;
138 regulator-max-microvolt = <3300000>;
139 regulator-boot-on;
140 regulator-always-on;
141 };
142
143 sw3a_reg: sw3a {
144 regulator-min-microvolt = <400000>;
145 regulator-max-microvolt = <1975000>;
146 regulator-boot-on;
147 regulator-always-on;
148 };
149
150 sw3b_reg: sw3b {
151 regulator-min-microvolt = <400000>;
152 regulator-max-microvolt = <1975000>;
153 regulator-boot-on;
154 regulator-always-on;
155 };
156
157 swbst_reg: swbst {
158 regulator-min-microvolt = <5000000>;
159 regulator-max-microvolt = <5150000>;
160 };
161
162 snvs_reg: vsnvs {
163 regulator-min-microvolt = <1000000>;
164 regulator-max-microvolt = <3000000>;
165 regulator-boot-on;
166 regulator-always-on;
167 };
168
169 vref_reg: vrefddr {
170 regulator-boot-on;
171 regulator-always-on;
172 };
173
174 vgen1_reg: vgen1 {
175 regulator-min-microvolt = <800000>;
176 regulator-max-microvolt = <1550000>;
177 };
178
179 vgen2_reg: vgen2 {
180 regulator-min-microvolt = <800000>;
181 regulator-max-microvolt = <1550000>;
182 };
183
184 vgen3_reg: vgen3 {
185 regulator-min-microvolt = <1800000>;
186 regulator-max-microvolt = <3300000>;
187 };
188
189 vgen4_reg: vgen4 {
190 regulator-min-microvolt = <1800000>;
191 regulator-max-microvolt = <3300000>;
192 regulator-always-on;
193 };
194
195 vgen5_reg: vgen5 {
196 regulator-min-microvolt = <1800000>;
197 regulator-max-microvolt = <3300000>;
198 regulator-always-on;
199 };
200
201 vgen6_reg: vgen6 {
202 regulator-min-microvolt = <1800000>;
203 regulator-max-microvolt = <3300000>;
204 regulator-always-on;
205 };
206 };
207 };
diff --git a/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt b/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt
index fc6b38f035bd..d290988ed975 100644
--- a/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt
+++ b/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt
@@ -69,13 +69,16 @@ sub-node should be of the format as listed below.
69 }; 69 };
70 }; 70 };
71The above regulator entries are defined in regulator bindings documentation 71The above regulator entries are defined in regulator bindings documentation
72except op_mode description. 72except these properties:
73 - op_mode: describes the different operating modes of the LDO's with 73 - op_mode: describes the different operating modes of the LDO's with
74 power mode change in SOC. The different possible values are, 74 power mode change in SOC. The different possible values are,
75 0 - always off mode 75 0 - always off mode
76 1 - on in normal mode 76 1 - on in normal mode
77 2 - low power mode 77 2 - low power mode
78 3 - suspend mode 78 3 - suspend mode
79 - s5m8767,pmic-ext-control-gpios: (optional) GPIO specifier for one
80 GPIO controlling this regulator (enable/disable); This is
81 valid only for buck9.
79 82
80The following are the names of the regulators that the s5m8767 pmic block 83The following are the names of the regulators that the s5m8767 pmic block
81supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number 84supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
@@ -148,5 +151,13 @@ Example:
148 regulator-always-on; 151 regulator-always-on;
149 regulator-boot-on; 152 regulator-boot-on;
150 }; 153 };
154
155 vemmc_reg: BUCK9 {
156 regulator-name = "VMEM_VDD_2.8V";
157 regulator-min-microvolt = <2800000>;
158 regulator-max-microvolt = <2800000>;
159 op_mode = <3>; /* Standby Mode */
160 s5m8767,pmic-ext-control-gpios = <&gpk0 2 0>;
161 };
151 }; 162 };
152 }; 163 };
diff --git a/Documentation/devicetree/bindings/regulator/ti-abb-regulator.txt b/Documentation/devicetree/bindings/regulator/ti-abb-regulator.txt
index 2e57a33e9029..c58db75f959e 100644
--- a/Documentation/devicetree/bindings/regulator/ti-abb-regulator.txt
+++ b/Documentation/devicetree/bindings/regulator/ti-abb-regulator.txt
@@ -4,10 +4,14 @@ Required Properties:
4- compatible: Should be one of: 4- compatible: Should be one of:
5 - "ti,abb-v1" for older SoCs like OMAP3 5 - "ti,abb-v1" for older SoCs like OMAP3
6 - "ti,abb-v2" for newer SoCs like OMAP4, OMAP5 6 - "ti,abb-v2" for newer SoCs like OMAP4, OMAP5
7 - "ti,abb-v3" for a generic definition where setup and control registers are
8 provided (example: DRA7)
7- reg: Address and length of the register set for the device. It contains 9- reg: Address and length of the register set for the device. It contains
8 the information of registers in the same order as described by reg-names 10 the information of registers in the same order as described by reg-names
9- reg-names: Should contain the reg names 11- reg-names: Should contain the reg names
10 - "base-address" - contains base address of ABB module 12 - "base-address" - contains base address of ABB module (ti,abb-v1,ti,abb-v2)
13 - "control-address" - contains control register address of ABB module (ti,abb-v3)
14 - "setup-address" - contains setup register address of ABB module (ti,abb-v3)
11 - "int-address" - contains address of interrupt register for ABB module 15 - "int-address" - contains address of interrupt register for ABB module
12 (also see Optional properties) 16 (also see Optional properties)
13- #address-cell: should be 0 17- #address-cell: should be 0
diff --git a/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt b/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
new file mode 100644
index 000000000000..3da0ebdba8d9
--- /dev/null
+++ b/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
@@ -0,0 +1,133 @@
1*** Reserved memory regions ***
2
3Reserved memory is specified as a node under the /reserved-memory node.
4The operating system shall exclude reserved memory from normal usage
5one can create child nodes describing particular reserved (excluded from
6normal use) memory regions. Such memory regions are usually designed for
7the special usage by various device drivers.
8
9Parameters for each memory region can be encoded into the device tree
10with the following nodes:
11
12/reserved-memory node
13---------------------
14#address-cells, #size-cells (required) - standard definition
15 - Should use the same values as the root node
16ranges (required) - standard definition
17 - Should be empty
18
19/reserved-memory/ child nodes
20-----------------------------
21Each child of the reserved-memory node specifies one or more regions of
22reserved memory. Each child node may either use a 'reg' property to
23specify a specific range of reserved memory, or a 'size' property with
24optional constraints to request a dynamically allocated block of memory.
25
26Following the generic-names recommended practice, node names should
27reflect the purpose of the node (ie. "framebuffer" or "dma-pool"). Unit
28address (@<address>) should be appended to the name if the node is a
29static allocation.
30
31Properties:
32Requires either a) or b) below.
33a) static allocation
34 reg (required) - standard definition
35b) dynamic allocation
36 size (required) - length based on parent's #size-cells
37 - Size in bytes of memory to reserve.
38 alignment (optional) - length based on parent's #size-cells
39 - Address boundary for alignment of allocation.
40 alloc-ranges (optional) - prop-encoded-array (address, length pairs).
41 - Specifies regions of memory that are
42 acceptable to allocate from.
43
44If both reg and size are present, then the reg property takes precedence
45and size is ignored.
46
47Additional properties:
48compatible (optional) - standard definition
49 - may contain the following strings:
50 - shared-dma-pool: This indicates a region of memory meant to be
51 used as a shared pool of DMA buffers for a set of devices. It can
52 be used by an operating system to instanciate the necessary pool
53 management subsystem if necessary.
54 - vendor specific string in the form <vendor>,[<device>-]<usage>
55no-map (optional) - empty property
56 - Indicates the operating system must not create a virtual mapping
57 of the region as part of its standard mapping of system memory,
58 nor permit speculative access to it under any circumstances other
59 than under the control of the device driver using the region.
60reusable (optional) - empty property
61 - The operating system can use the memory in this region with the
62 limitation that the device driver(s) owning the region need to be
63 able to reclaim it back. Typically that means that the operating
64 system can use that region to store volatile or cached data that
65 can be otherwise regenerated or migrated elsewhere.
66
67Linux implementation note:
68- If a "linux,cma-default" property is present, then Linux will use the
69 region for the default pool of the contiguous memory allocator.
70
71Device node references to reserved memory
72-----------------------------------------
73Regions in the /reserved-memory node may be referenced by other device
74nodes by adding a memory-region property to the device node.
75
76memory-region (optional) - phandle, specifier pairs to children of /reserved-memory
77
78Example
79-------
80This example defines 3 contiguous regions are defined for Linux kernel:
81one default of all device drivers (named linux,cma@72000000 and 64MiB in size),
82one dedicated to the framebuffer device (named framebuffer@78000000, 8MiB), and
83one for multimedia processing (named multimedia-memory@77000000, 64MiB).
84
85/ {
86 #address-cells = <1>;
87 #size-cells = <1>;
88
89 memory {
90 reg = <0x40000000 0x40000000>;
91 };
92
93 reserved-memory {
94 #address-cells = <1>;
95 #size-cells = <1>;
96 ranges;
97
98 /* global autoconfigured region for contiguous allocations */
99 linux,cma {
100 compatible = "shared-dma-pool";
101 reusable;
102 size = <0x4000000>;
103 alignment = <0x2000>;
104 linux,cma-default;
105 };
106
107 display_reserved: framebuffer@78000000 {
108 reg = <0x78000000 0x800000>;
109 };
110
111 multimedia_reserved: multimedia@77000000 {
112 compatible = "acme,multimedia-memory";
113 reg = <0x77000000 0x4000000>;
114 };
115 };
116
117 /* ... */
118
119 fb0: video@12300000 {
120 memory-region = <&display_reserved>;
121 /* ... */
122 };
123
124 scaler: scaler@12500000 {
125 memory-region = <&multimedia_reserved>;
126 /* ... */
127 };
128
129 codec: codec@12600000 {
130 memory-region = <&multimedia_reserved>;
131 /* ... */
132 };
133};
diff --git a/Documentation/devicetree/bindings/serial/efm32-uart.txt b/Documentation/devicetree/bindings/serial/efm32-uart.txt
index 8e080b893b49..1984bdfbd545 100644
--- a/Documentation/devicetree/bindings/serial/efm32-uart.txt
+++ b/Documentation/devicetree/bindings/serial/efm32-uart.txt
@@ -6,7 +6,7 @@ Required properties:
6- interrupts : Should contain uart interrupt 6- interrupts : Should contain uart interrupt
7 7
8Optional properties: 8Optional properties:
9- location : Decides the location of the USART I/O pins. 9- efm32,location : Decides the location of the USART I/O pins.
10 Allowed range : [0 .. 5] 10 Allowed range : [0 .. 5]
11 Default: 0 11 Default: 0
12 12
@@ -16,5 +16,5 @@ uart@0x4000c400 {
16 compatible = "efm32,uart"; 16 compatible = "efm32,uart";
17 reg = <0x4000c400 0x400>; 17 reg = <0x4000c400 0x400>;
18 interrupts = <15>; 18 interrupts = <15>;
19 location = <0>; 19 efm32,location = <0>;
20}; 20};
diff --git a/Documentation/devicetree/bindings/serial/fsl-lpuart.txt b/Documentation/devicetree/bindings/serial/fsl-lpuart.txt
index 6fd1dd1638dd..a1d1205d8185 100644
--- a/Documentation/devicetree/bindings/serial/fsl-lpuart.txt
+++ b/Documentation/devicetree/bindings/serial/fsl-lpuart.txt
@@ -4,11 +4,24 @@ Required properties:
4- compatible : Should be "fsl,<soc>-lpuart" 4- compatible : Should be "fsl,<soc>-lpuart"
5- reg : Address and length of the register set for the device 5- reg : Address and length of the register set for the device
6- interrupts : Should contain uart interrupt 6- interrupts : Should contain uart interrupt
7- clocks : phandle + clock specifier pairs, one for each entry in clock-names
8- clock-names : should contain: "ipg" - the uart clock
9
10Optional properties:
11- dmas: A list of two dma specifiers, one for each entry in dma-names.
12- dma-names: should contain "tx" and "rx".
13
14Note: Optional properties for DMA support. Write them both or both not.
7 15
8Example: 16Example:
9 17
10uart0: serial@40027000 { 18uart0: serial@40027000 {
11 compatible = "fsl,vf610-lpuart"; 19 compatible = "fsl,vf610-lpuart";
12 reg = <0x40027000 0x1000>; 20 reg = <0x40027000 0x1000>;
13 interrupts = <0 61 0x00>; 21 interrupts = <0 61 0x00>;
14 }; 22 clocks = <&clks VF610_CLK_UART0>;
23 clock-names = "ipg";
24 dmas = <&edma0 0 2>,
25 <&edma0 0 3>;
26 dma-names = "rx","tx";
27 };
diff --git a/Documentation/devicetree/bindings/serial/maxim,max310x.txt b/Documentation/devicetree/bindings/serial/maxim,max310x.txt
new file mode 100644
index 000000000000..83a919c241b0
--- /dev/null
+++ b/Documentation/devicetree/bindings/serial/maxim,max310x.txt
@@ -0,0 +1,36 @@
1* Maxim MAX310X advanced Universal Asynchronous Receiver-Transmitter (UART)
2
3Required properties:
4- compatible: Should be one of the following:
5 - "maxim,max3107" for Maxim MAX3107,
6 - "maxim,max3108" for Maxim MAX3108,
7 - "maxim,max3109" for Maxim MAX3109,
8 - "maxim,max14830" for Maxim MAX14830.
9- reg: SPI chip select number.
10- interrupt-parent: The phandle for the interrupt controller that
11 services interrupts for this IC.
12- interrupts: Specifies the interrupt source of the parent interrupt
13 controller. The format of the interrupt specifier depends on the
14 parent interrupt controller.
15- clocks: phandle to the IC source clock.
16- clock-names: Should be "xtal" if clock is an external crystal or
17 "osc" if an external clock source is used.
18
19Optional properties:
20- gpio-controller: Marks the device node as a GPIO controller.
21- #gpio-cells: Should be two. The first cell is the GPIO number and
22 the second cell is used to specify the GPIO polarity:
23 0 = active high,
24 1 = active low.
25
26Example:
27 max14830: max14830@0 {
28 compatible = "maxim,max14830";
29 reg = <0>;
30 clocks = <&clk20m>;
31 clock-names = "osc";
32 interrupt-parent = <&gpio3>;
33 interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
34 gpio-controller;
35 #gpio-cells = <2>;
36 };
diff --git a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt
index f372cf29068d..53e6c175db6c 100644
--- a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt
+++ b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt
@@ -37,7 +37,7 @@ Example:
37 }; 37 };
38 38
39 scifa0: serial@e6c40000 { 39 scifa0: serial@e6c40000 {
40 compatible = "renesas,scifa-r8a7790", "renesas,scifa-generic"; 40 compatible = "renesas,scifa-r8a7790", "renesas,scifa";
41 reg = <0 0xe6c40000 0 64>; 41 reg = <0 0xe6c40000 0 64>;
42 interrupt-parent = <&gic>; 42 interrupt-parent = <&gic>;
43 interrupts = <0 144 IRQ_TYPE_LEVEL_HIGH>; 43 interrupts = <0 144 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/Documentation/devicetree/bindings/sound/armada-370db-audio.txt b/Documentation/devicetree/bindings/sound/armada-370db-audio.txt
new file mode 100644
index 000000000000..bf984d238620
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/armada-370db-audio.txt
@@ -0,0 +1,27 @@
1Device Tree bindings for the Armada 370 DB audio
2================================================
3
4These Device Tree bindings are used to describe the audio complex
5found on the Armada 370 DB platform.
6
7Mandatory properties:
8
9 * compatible: must be "marvell,a370db-audio"
10
11 * marvell,audio-controller: a phandle that points to the audio
12 controller of the Armada 370 SoC.
13
14 * marvell,audio-codec: a set of three phandles that points to:
15
16 1/ the analog audio codec connected to the Armada 370 SoC
17 2/ the S/PDIF transceiver
18 3/ the S/PDIF receiver
19
20Example:
21
22 sound {
23 compatible = "marvell,a370db-audio";
24 marvell,audio-controller = <&audio_controller>;
25 marvell,audio-codec = <&audio_codec &spdif_out &spdif_in>;
26 status = "okay";
27 };
diff --git a/Documentation/devicetree/bindings/sound/cs42xx8.txt b/Documentation/devicetree/bindings/sound/cs42xx8.txt
new file mode 100644
index 000000000000..f631fbca6284
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/cs42xx8.txt
@@ -0,0 +1,28 @@
1CS42448/CS42888 audio CODEC
2
3Required properties:
4
5 - compatible : must contain one of "cirrus,cs42448" and "cirrus,cs42888"
6
7 - reg : the I2C address of the device for I2C
8
9 - clocks : a list of phandles + clock-specifiers, one for each entry in
10 clock-names
11
12 - clock-names : must contain "mclk"
13
14 - VA-supply, VD-supply, VLS-supply, VLC-supply: power supplies for the device,
15 as covered in Documentation/devicetree/bindings/regulator/regulator.txt
16
17Example:
18
19codec: cs42888@48 {
20 compatible = "cirrus,cs42888";
21 reg = <0x48>;
22 clocks = <&codec_mclk 0>;
23 clock-names = "mclk";
24 VA-supply = <&reg_audio>;
25 VD-supply = <&reg_audio>;
26 VLS-supply = <&reg_audio>;
27 VLC-supply = <&reg_audio>;
28};
diff --git a/Documentation/devicetree/bindings/sound/da9055.txt b/Documentation/devicetree/bindings/sound/da9055.txt
new file mode 100644
index 000000000000..ed1b7cc6f249
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/da9055.txt
@@ -0,0 +1,22 @@
1* Dialog DA9055 Audio CODEC
2
3DA9055 provides Audio CODEC support (I2C only).
4
5The Audio CODEC device in DA9055 has it's own I2C address which is configurable,
6so the device is instantiated separately from the PMIC (MFD) device.
7
8For details on accompanying PMIC I2C device, see the following:
9Documentation/devicetree/bindings/mfd/da9055.txt
10
11Required properties:
12
13 - compatible: "dlg,da9055-codec"
14 - reg: Specifies the I2C slave address
15
16
17Example:
18
19 codec: da9055-codec@1a {
20 compatible = "dlg,da9055-codec";
21 reg = <0x1a>;
22 };
diff --git a/Documentation/devicetree/bindings/sound/davinci-evm-audio.txt b/Documentation/devicetree/bindings/sound/davinci-evm-audio.txt
index 865178d5cdf3..963e100514c2 100644
--- a/Documentation/devicetree/bindings/sound/davinci-evm-audio.txt
+++ b/Documentation/devicetree/bindings/sound/davinci-evm-audio.txt
@@ -5,12 +5,19 @@ Required properties:
5- ti,model : The user-visible name of this sound complex. 5- ti,model : The user-visible name of this sound complex.
6- ti,audio-codec : The phandle of the TLV320AIC3x audio codec 6- ti,audio-codec : The phandle of the TLV320AIC3x audio codec
7- ti,mcasp-controller : The phandle of the McASP controller 7- ti,mcasp-controller : The phandle of the McASP controller
8- ti,codec-clock-rate : The Codec Clock rate (in Hz) applied to the Codec
9- ti,audio-routing : A list of the connections between audio components. 8- ti,audio-routing : A list of the connections between audio components.
10 Each entry is a pair of strings, the first being the connection's sink, 9 Each entry is a pair of strings, the first being the connection's sink,
11 the second being the connection's source. Valid names for sources and 10 the second being the connection's source. Valid names for sources and
12 sinks are the codec's pins, and the jacks on the board: 11 sinks are the codec's pins, and the jacks on the board:
13 12
13Optional properties:
14- ti,codec-clock-rate : The Codec Clock rate (in Hz) applied to the Codec.
15- clocks : Reference to the master clock
16- clock-names : The clock should be named "mclk"
17- Either codec-clock-rate or the codec-clock reference has to be defined. If
18 the both are defined the driver attempts to set referenced clock to the
19 defined rate and takes the rate from the clock reference.
20
14 Board connectors: 21 Board connectors:
15 22
16 * Headphone Jack 23 * Headphone Jack
diff --git a/Documentation/devicetree/bindings/sound/eukrea-tlv320.txt b/Documentation/devicetree/bindings/sound/eukrea-tlv320.txt
new file mode 100644
index 000000000000..0d7985c864af
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/eukrea-tlv320.txt
@@ -0,0 +1,21 @@
1Audio complex for Eukrea boards with tlv320aic23 codec.
2
3Required properties:
4- compatible : "eukrea,asoc-tlv320"
5- eukrea,model : The user-visible name of this sound complex.
6- ssi-controller : The phandle of the SSI controller.
7- fsl,mux-int-port : The internal port of the i.MX audio muxer (AUDMUX).
8- fsl,mux-ext-port : The external port of the i.MX audio muxer.
9
10Note: The AUDMUX port numbering should start at 1, which is consistent with
11hardware manual.
12
13Example:
14
15 sound {
16 compatible = "eukrea,asoc-tlv320";
17 eukrea,model = "imx51-eukrea-tlv320aic23";
18 ssi-controller = <&ssi2>;
19 fsl,mux-int-port = <2>;
20 fsl,mux-ext-port = <3>;
21 };
diff --git a/Documentation/devicetree/bindings/sound/fsl,esai.txt b/Documentation/devicetree/bindings/sound/fsl,esai.txt
index d7b99fa637b5..aeb8c4a0b88d 100644
--- a/Documentation/devicetree/bindings/sound/fsl,esai.txt
+++ b/Documentation/devicetree/bindings/sound/fsl,esai.txt
@@ -34,6 +34,10 @@ Required properties:
34 that ESAI would work in the synchronous mode, which means all the settings 34 that ESAI would work in the synchronous mode, which means all the settings
35 for Receiving would be duplicated from Transmition related registers. 35 for Receiving would be duplicated from Transmition related registers.
36 36
37 - big-endian : If this property is absent, the native endian mode will
38 be in use as default, or the big endian mode will be in use for all the
39 device registers.
40
37Example: 41Example:
38 42
39esai: esai@02024000 { 43esai: esai@02024000 {
@@ -46,5 +50,6 @@ esai: esai@02024000 {
46 dma-names = "rx", "tx"; 50 dma-names = "rx", "tx";
47 fsl,fifo-depth = <128>; 51 fsl,fifo-depth = <128>;
48 fsl,esai-synchronous; 52 fsl,esai-synchronous;
53 big-endian;
49 status = "disabled"; 54 status = "disabled";
50}; 55};
diff --git a/Documentation/devicetree/bindings/sound/fsl,spdif.txt b/Documentation/devicetree/bindings/sound/fsl,spdif.txt
index f2ae335670f5..3e9e82c8eab3 100644
--- a/Documentation/devicetree/bindings/sound/fsl,spdif.txt
+++ b/Documentation/devicetree/bindings/sound/fsl,spdif.txt
@@ -29,6 +29,10 @@ Required properties:
29 can also be referred to TxClk_Source 29 can also be referred to TxClk_Source
30 bit of register SPDIF_STC. 30 bit of register SPDIF_STC.
31 31
32 - big-endian : If this property is absent, the native endian mode will
33 be in use as default, or the big endian mode will be in use for all the
34 device registers.
35
32Example: 36Example:
33 37
34spdif: spdif@02004000 { 38spdif: spdif@02004000 {
@@ -50,5 +54,6 @@ spdif: spdif@02004000 {
50 "rxtx5", "rxtx6", 54 "rxtx5", "rxtx6",
51 "rxtx7"; 55 "rxtx7";
52 56
57 big-endian;
53 status = "okay"; 58 status = "okay";
54}; 59};
diff --git a/Documentation/devicetree/bindings/sound/mvebu-audio.txt b/Documentation/devicetree/bindings/sound/mvebu-audio.txt
index f0062c5871b4..cb8c07c81ce4 100644
--- a/Documentation/devicetree/bindings/sound/mvebu-audio.txt
+++ b/Documentation/devicetree/bindings/sound/mvebu-audio.txt
@@ -5,6 +5,7 @@ Required properties:
5- compatible: 5- compatible:
6 "marvell,kirkwood-audio" for Kirkwood platforms 6 "marvell,kirkwood-audio" for Kirkwood platforms
7 "marvell,dove-audio" for Dove platforms 7 "marvell,dove-audio" for Dove platforms
8 "marvell,armada370-audio" for Armada 370 platforms
8 9
9- reg: physical base address of the controller and length of memory mapped 10- reg: physical base address of the controller and length of memory mapped
10 region. 11 region.
diff --git a/Documentation/devicetree/bindings/sound/pcm512x.txt b/Documentation/devicetree/bindings/sound/pcm512x.txt
new file mode 100644
index 000000000000..faff75e64573
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/pcm512x.txt
@@ -0,0 +1,30 @@
1PCM512x audio CODECs
2
3These devices support both I2C and SPI (configured with pin strapping
4on the board).
5
6Required properties:
7
8 - compatible : One of "ti,pcm5121" or "ti,pcm5122"
9
10 - reg : the I2C address of the device for I2C, the chip select
11 number for SPI.
12
13 - AVDD-supply, DVDD-supply, and CPVDD-supply : power supplies for the
14 device, as covered in bindings/regulator/regulator.txt
15
16Optional properties:
17
18 - clocks : A clock specifier for the clock connected as SCLK. If this
19 is absent the device will be configured to clock from BCLK.
20
21Example:
22
23 pcm5122: pcm5122@4c {
24 compatible = "ti,pcm5122";
25 reg = <0x4c>;
26
27 AVDD-supply = <&reg_3v3_analog>;
28 DVDD-supply = <&reg_1v8>;
29 CPVDD-supply = <&reg_3v3>;
30 };
diff --git a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt
new file mode 100644
index 000000000000..a44e9179faf5
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt
@@ -0,0 +1,105 @@
1Renesas R-Car sound
2
3Required properties:
4- compatible : "renesas,rcar_sound-gen1" if generation1
5 "renesas,rcar_sound-gen2" if generation2
6- reg : Should contain the register physical address.
7 required register is
8 SRU/ADG/SSI if generation1
9 SRU/ADG/SSIU/SSI if generation2
10- rcar_sound,ssi : Should contain SSI feature.
11 The number of SSI subnode should be same as HW.
12 see below for detail.
13- rcar_sound,src : Should contain SRC feature.
14 The number of SRC subnode should be same as HW.
15 see below for detail.
16- rcar_sound,dai : DAI contents.
17 The number of DAI subnode should be same as HW.
18 see below for detail.
19
20SSI subnode properties:
21- interrupts : Should contain SSI interrupt for PIO transfer
22- shared-pin : if shared clock pin
23
24SRC subnode properties:
25no properties at this point
26
27DAI subnode properties:
28- playback : list of playback modules
29- capture : list of capture modules
30
31Example:
32
33rcar_sound: rcar_sound@0xffd90000 {
34 #sound-dai-cells = <1>;
35 compatible = "renesas,rcar_sound-gen2";
36 reg = <0 0xec500000 0 0x1000>, /* SCU */
37 <0 0xec5a0000 0 0x100>, /* ADG */
38 <0 0xec540000 0 0x1000>, /* SSIU */
39 <0 0xec541000 0 0x1280>; /* SSI */
40
41 rcar_sound,src {
42 src0: src@0 { };
43 src1: src@1 { };
44 src2: src@2 { };
45 src3: src@3 { };
46 src4: src@4 { };
47 src5: src@5 { };
48 src6: src@6 { };
49 src7: src@7 { };
50 src8: src@8 { };
51 src9: src@9 { };
52 };
53
54 rcar_sound,ssi {
55 ssi0: ssi@0 {
56 interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>;
57 };
58 ssi1: ssi@1 {
59 interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>;
60 };
61 ssi2: ssi@2 {
62 interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>;
63 };
64 ssi3: ssi@3 {
65 interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>;
66 };
67 ssi4: ssi@4 {
68 interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>;
69 };
70 ssi5: ssi@5 {
71 interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>;
72 };
73 ssi6: ssi@6 {
74 interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>;
75 };
76 ssi7: ssi@7 {
77 interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>;
78 };
79 ssi8: ssi@8 {
80 interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>;
81 };
82 ssi9: ssi@9 {
83 interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>;
84 };
85 };
86
87 rcar_sound,dai {
88 dai0 {
89 playback = <&ssi5 &src5>;
90 capture = <&ssi6>;
91 };
92 dai1 {
93 playback = <&ssi3>;
94 };
95 dai2 {
96 capture = <&ssi4>;
97 };
98 dai3 {
99 playback = <&ssi7>;
100 };
101 dai4 {
102 capture = <&ssi8>;
103 };
104 };
105};
diff --git a/Documentation/devicetree/bindings/sound/simple-card.txt b/Documentation/devicetree/bindings/sound/simple-card.txt
index 19c84df5fffa..131aa2ad7f1a 100644
--- a/Documentation/devicetree/bindings/sound/simple-card.txt
+++ b/Documentation/devicetree/bindings/sound/simple-card.txt
@@ -8,16 +8,26 @@ Required properties:
8 8
9Optional properties: 9Optional properties:
10 10
11- simple-audio-card,name : User specified audio sound card name, one string
12 property.
11- simple-audio-card,format : CPU/CODEC common audio format. 13- simple-audio-card,format : CPU/CODEC common audio format.
12 "i2s", "right_j", "left_j" , "dsp_a" 14 "i2s", "right_j", "left_j" , "dsp_a"
13 "dsp_b", "ac97", "pdm", "msb", "lsb" 15 "dsp_b", "ac97", "pdm", "msb", "lsb"
16- simple-audio-card,widgets : Please refer to widgets.txt.
14- simple-audio-card,routing : A list of the connections between audio components. 17- simple-audio-card,routing : A list of the connections between audio components.
15 Each entry is a pair of strings, the first being the 18 Each entry is a pair of strings, the first being the
16 connection's sink, the second being the connection's 19 connection's sink, the second being the connection's
17 source. 20 source.
21- dai-tdm-slot-num : Please refer to tdm-slot.txt.
22- dai-tdm-slot-width : Please refer to tdm-slot.txt.
18 23
19Required subnodes: 24Required subnodes:
20 25
26- simple-audio-card,dai-link : container for the CPU and CODEC sub-nodes
27 This container may be omitted when the
28 card has only one DAI link.
29 See the examples.
30
21- simple-audio-card,cpu : CPU sub-node 31- simple-audio-card,cpu : CPU sub-node
22- simple-audio-card,codec : CODEC sub-node 32- simple-audio-card,codec : CODEC sub-node
23 33
@@ -38,15 +48,29 @@ Optional CPU/CODEC subnodes properties:
38 clock node (= common clock), or "system-clock-frequency" 48 clock node (= common clock), or "system-clock-frequency"
39 (if system doens't support common clock) 49 (if system doens't support common clock)
40 50
41Example: 51Note:
52 * For 'format', 'frame-master', 'bitclock-master', 'bitclock-inversion' and
53 'frame-inversion', the simple card will use the settings of CODEC for both
54 CPU and CODEC sides as we need to keep the settings identical for both ends
55 of the link.
56
57Example 1 - single DAI link:
42 58
43sound { 59sound {
44 compatible = "simple-audio-card"; 60 compatible = "simple-audio-card";
61 simple-audio-card,name = "VF610-Tower-Sound-Card";
45 simple-audio-card,format = "left_j"; 62 simple-audio-card,format = "left_j";
63 simple-audio-card,widgets =
64 "Microphone", "Microphone Jack",
65 "Headphone", "Headphone Jack",
66 "Speaker", "External Speaker";
46 simple-audio-card,routing = 67 simple-audio-card,routing =
47 "MIC_IN", "Mic Jack", 68 "MIC_IN", "Microphone Jack",
48 "Headphone Jack", "HP_OUT", 69 "Headphone Jack", "HP_OUT",
49 "Ext Spk", "LINE_OUT"; 70 "External Speaker", "LINE_OUT";
71
72 dai-tdm-slot-num = <2>;
73 dai-tdm-slot-width = <8>;
50 74
51 simple-audio-card,cpu { 75 simple-audio-card,cpu {
52 sound-dai = <&sh_fsi2 0>; 76 sound-dai = <&sh_fsi2 0>;
@@ -75,3 +99,38 @@ sh_fsi2: sh_fsi2@ec230000 {
75 interrupt-parent = <&gic>; 99 interrupt-parent = <&gic>;
76 interrupts = <0 146 0x4>; 100 interrupts = <0 146 0x4>;
77}; 101};
102
103Example 2 - many DAI links:
104
105sound {
106 compatible = "simple-audio-card";
107 simple-audio-card,name = "Cubox Audio";
108 simple-audio-card,format = "i2s";
109
110 simple-audio-card,dai-link@0 { /* I2S - HDMI */
111 simple-audio-card,cpu {
112 sound-dai = <&audio1 0>;
113 };
114 simple-audio-card,codec {
115 sound-dai = <&tda998x 0>;
116 };
117 };
118
119 simple-audio-card,dai-link@1 { /* S/PDIF - HDMI */
120 simple-audio-card,cpu {
121 sound-dai = <&audio1 1>;
122 };
123 simple-audio-card,codec {
124 sound-dai = <&tda998x 1>;
125 };
126 };
127
128 simple-audio-card,dai-link@2 { /* S/PDIF - S/PDIF */
129 simple-audio-card,cpu {
130 sound-dai = <&audio1 1>;
131 };
132 simple-audio-card,codec {
133 sound-dai = <&spdif_codec>;
134 };
135 };
136};
diff --git a/Documentation/devicetree/bindings/sound/sirf-audio-codec.txt b/Documentation/devicetree/bindings/sound/sirf-audio-codec.txt
new file mode 100644
index 000000000000..062f5ec36f9b
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/sirf-audio-codec.txt
@@ -0,0 +1,17 @@
1SiRF internal audio CODEC
2
3Required properties:
4
5 - compatible : "sirf,atlas6-audio-codec" or "sirf,prima2-audio-codec"
6
7 - reg : the register address of the device.
8
9 - clocks: the clock of SiRF internal audio codec
10
11Example:
12
13audiocodec: audiocodec@b0040000 {
14 compatible = "sirf,atlas6-audio-codec";
15 reg = <0xb0040000 0x10000>;
16 clocks = <&clks 27>;
17};
diff --git a/Documentation/devicetree/bindings/sound/sirf-audio-port.txt b/Documentation/devicetree/bindings/sound/sirf-audio-port.txt
new file mode 100644
index 000000000000..1f66de3c8f00
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/sirf-audio-port.txt
@@ -0,0 +1,20 @@
1* SiRF SoC audio port
2
3Required properties:
4- compatible: "sirf,audio-port"
5- reg: Base address and size entries:
6- dmas: List of DMA controller phandle and DMA request line ordered pairs.
7- dma-names: Identifier string for each DMA request line in the dmas property.
8 These strings correspond 1:1 with the ordered pairs in dmas.
9
10 One of the DMA channels will be responsible for transmission (should be
11 named "tx") and one for reception (should be named "rx").
12
13Example:
14
15audioport: audioport@b0040000 {
16 compatible = "sirf,audio-port";
17 reg = <0xb0040000 0x10000>;
18 dmas = <&dmac1 3>, <&dmac1 8>;
19 dma-names = "rx", "tx";
20};
diff --git a/Documentation/devicetree/bindings/sound/sirf-audio.txt b/Documentation/devicetree/bindings/sound/sirf-audio.txt
new file mode 100644
index 000000000000..c88882ca3704
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/sirf-audio.txt
@@ -0,0 +1,41 @@
1* SiRF atlas6 and prima2 internal audio codec and port based audio setups
2
3Required properties:
4- compatible: "sirf,sirf-audio-card"
5- sirf,audio-platform: phandle for the platform node
6- sirf,audio-codec: phandle for the SiRF internal codec node
7
8Optional properties:
9- hp-pa-gpios: Need to be present if the board need control external
10 headphone amplifier.
11- spk-pa-gpios: Need to be present if the board need control external
12 speaker amplifier.
13- hp-switch-gpios: Need to be present if the board capable to detect jack
14 insertion, removal.
15
16Available audio endpoints for the audio-routing table:
17
18Board connectors:
19 * Headset Stereophone
20 * Ext Spk
21 * Line In
22 * Mic
23
24SiRF internal audio codec pins:
25 * HPOUTL
26 * HPOUTR
27 * SPKOUT
28 * Ext Mic
29 * Mic Bias
30
31Example:
32
33sound {
34 compatible = "sirf,sirf-audio-card";
35 sirf,audio-codec = <&audiocodec>;
36 sirf,audio-platform = <&audioport>;
37 hp-pa-gpios = <&gpio 44 0>;
38 spk-pa-gpios = <&gpio 46 0>;
39 hp-switch-gpios = <&gpio 45 0>;
40};
41
diff --git a/Documentation/devicetree/bindings/sound/tdm-slot.txt b/Documentation/devicetree/bindings/sound/tdm-slot.txt
new file mode 100644
index 000000000000..6a2c84247f91
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/tdm-slot.txt
@@ -0,0 +1,20 @@
1TDM slot:
2
3This specifies audio DAI's TDM slot.
4
5TDM slot properties:
6dai-tdm-slot-num : Number of slots in use.
7dai-tdm-slot-width : Width in bits for each slot.
8
9For instance:
10 dai-tdm-slot-num = <2>;
11 dai-tdm-slot-width = <8>;
12
13And for each spcified driver, there could be one .of_xlate_tdm_slot_mask()
14to specify a explicit mapping of the channels and the slots. If it's absent
15the default snd_soc_of_xlate_tdm_slot_mask() will be used to generating the
16tx and rx masks.
17
18For snd_soc_of_xlate_tdm_slot_mask(), the tx and rx masks will use a 1 bit
19for an active slot as default, and the default active bits are at the LSB of
20the masks.
diff --git a/Documentation/devicetree/bindings/sound/tlv320aic31xx.txt b/Documentation/devicetree/bindings/sound/tlv320aic31xx.txt
new file mode 100644
index 000000000000..74c66dee3e14
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/tlv320aic31xx.txt
@@ -0,0 +1,61 @@
1Texas Instruments - tlv320aic31xx Codec module
2
3The tlv320aic31xx serial control bus communicates through I2C protocols
4
5Required properties:
6
7- compatible - "string" - One of:
8 "ti,tlv320aic310x" - Generic TLV320AIC31xx with mono speaker amp
9 "ti,tlv320aic311x" - Generic TLV320AIC31xx with stereo speaker amp
10 "ti,tlv320aic3100" - TLV320AIC3100 (mono speaker amp, no MiniDSP)
11 "ti,tlv320aic3110" - TLV320AIC3110 (stereo speaker amp, no MiniDSP)
12 "ti,tlv320aic3120" - TLV320AIC3120 (mono speaker amp, MiniDSP)
13 "ti,tlv320aic3111" - TLV320AIC3111 (stereo speaker amp, MiniDSP)
14
15- reg - <int> - I2C slave address
16
17
18Optional properties:
19
20- gpio-reset - gpio pin number used for codec reset
21- ai31xx-micbias-vg - MicBias Voltage setting
22 1 or MICBIAS_2_0V - MICBIAS output is powered to 2.0V
23 2 or MICBIAS_2_5V - MICBIAS output is powered to 2.5V
24 3 or MICBIAS_AVDD - MICBIAS output is connected to AVDD
25 If this node is not mentioned or if the value is unknown, then
26 micbias is set to 2.0V.
27- HPVDD-supply, SPRVDD-supply, SPLVDD-supply, AVDD-supply, IOVDD-supply,
28 DVDD-supply : power supplies for the device as covered in
29 Documentation/devicetree/bindings/regulator/regulator.txt
30
31CODEC output pins:
32 * HPL
33 * HPR
34 * SPL, devices with stereo speaker amp
35 * SPR, devices with stereo speaker amp
36 * SPK, devices with mono speaker amp
37 * MICBIAS
38
39CODEC input pins:
40 * MIC1LP
41 * MIC1RP
42 * MIC1LM
43
44The pins can be used in referring sound node's audio-routing property.
45
46Example:
47#include <dt-bindings/sound/tlv320aic31xx-micbias.h>
48
49tlv320aic31xx: tlv320aic31xx@18 {
50 compatible = "ti,tlv320aic311x";
51 reg = <0x18>;
52
53 ai31xx-micbias-vg = <MICBIAS_OFF>;
54
55 HPVDD-supply = <&regulator>;
56 SPRVDD-supply = <&regulator>;
57 SPLVDD-supply = <&regulator>;
58 AVDD-supply = <&regulator>;
59 IOVDD-supply = <&regulator>;
60 DVDD-supply = <&regulator>;
61};
diff --git a/Documentation/devicetree/bindings/sound/tlv320aic32x4.txt b/Documentation/devicetree/bindings/sound/tlv320aic32x4.txt
new file mode 100644
index 000000000000..5e2741af27be
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/tlv320aic32x4.txt
@@ -0,0 +1,30 @@
1Texas Instruments - tlv320aic32x4 Codec module
2
3The tlv320aic32x4 serial control bus communicates through I2C protocols
4
5Required properties:
6 - compatible: Should be "ti,tlv320aic32x4"
7 - reg: I2C slave address
8 - supply-*: Required supply regulators are:
9 "iov" - digital IO power supply
10 "ldoin" - LDO power supply
11 "dv" - Digital core power supply
12 "av" - Analog core power supply
13 If you supply ldoin, dv and av are optional. Otherwise they are required
14 See regulator/regulator.txt for more information about the detailed binding
15 format.
16
17Optional properties:
18 - reset-gpios: Reset-GPIO phandle with args as described in gpio/gpio.txt
19 - clocks/clock-names: Clock named 'mclk' for the master clock of the codec.
20 See clock/clock-bindings.txt for information about the detailed format.
21
22
23Example:
24
25codec: tlv320aic32x4@18 {
26 compatible = "ti,tlv320aic32x4";
27 reg = <0x18>;
28 clocks = <&clks 201>;
29 clock-names = "mclk";
30};
diff --git a/Documentation/devicetree/bindings/sound/tlv320aic3x.txt b/Documentation/devicetree/bindings/sound/tlv320aic3x.txt
index 9d8ea14db490..5e6040c2c2e9 100644
--- a/Documentation/devicetree/bindings/sound/tlv320aic3x.txt
+++ b/Documentation/devicetree/bindings/sound/tlv320aic3x.txt
@@ -6,7 +6,6 @@ Required properties:
6 6
7- compatible - "string" - One of: 7- compatible - "string" - One of:
8 "ti,tlv320aic3x" - Generic TLV320AIC3x device 8 "ti,tlv320aic3x" - Generic TLV320AIC3x device
9 "ti,tlv320aic32x4" - TLV320AIC32x4
10 "ti,tlv320aic33" - TLV320AIC33 9 "ti,tlv320aic33" - TLV320AIC33
11 "ti,tlv320aic3007" - TLV320AIC3007 10 "ti,tlv320aic3007" - TLV320AIC3007
12 "ti,tlv320aic3106" - TLV320AIC3106 11 "ti,tlv320aic3106" - TLV320AIC3106
diff --git a/Documentation/devicetree/bindings/sound/widgets.txt b/Documentation/devicetree/bindings/sound/widgets.txt
new file mode 100644
index 000000000000..b6de5ba3b2de
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/widgets.txt
@@ -0,0 +1,20 @@
1Widgets:
2
3This mainly specifies audio off-codec DAPM widgets.
4
5Each entry is a pair of strings in DT:
6
7 "template-wname", "user-supplied-wname"
8
9The "template-wname" being the template widget name and currently includes:
10"Microphone", "Line", "Headphone" and "Speaker".
11
12The "user-supplied-wname" being the user specified widget name.
13
14For instance:
15 simple-audio-widgets =
16 "Microphone", "Microphone Jack",
17 "Line", "Line In Jack",
18 "Line", "Line Out Jack",
19 "Headphone", "Headphone Jack",
20 "Speaker", "Speaker External";
diff --git a/Documentation/devicetree/bindings/spi/efm32-spi.txt b/Documentation/devicetree/bindings/spi/efm32-spi.txt
index a590ca51be75..8f081c96a4fa 100644
--- a/Documentation/devicetree/bindings/spi/efm32-spi.txt
+++ b/Documentation/devicetree/bindings/spi/efm32-spi.txt
@@ -3,24 +3,24 @@
3Required properties: 3Required properties:
4- #address-cells: see spi-bus.txt 4- #address-cells: see spi-bus.txt
5- #size-cells: see spi-bus.txt 5- #size-cells: see spi-bus.txt
6- compatible: should be "efm32,spi" 6- compatible: should be "energymicro,efm32-spi"
7- reg: Offset and length of the register set for the controller 7- reg: Offset and length of the register set for the controller
8- interrupts: pair specifying rx and tx irq 8- interrupts: pair specifying rx and tx irq
9- clocks: phandle to the spi clock 9- clocks: phandle to the spi clock
10- cs-gpios: see spi-bus.txt 10- cs-gpios: see spi-bus.txt
11- location: Value to write to the ROUTE register's LOCATION bitfield to configure the pinmux for the device, see datasheet for values. 11- efm32,location: Value to write to the ROUTE register's LOCATION bitfield to configure the pinmux for the device, see datasheet for values.
12 12
13Example: 13Example:
14 14
15spi1: spi@0x4000c400 { /* USART1 */ 15spi1: spi@0x4000c400 { /* USART1 */
16 #address-cells = <1>; 16 #address-cells = <1>;
17 #size-cells = <0>; 17 #size-cells = <0>;
18 compatible = "efm32,spi"; 18 compatible = "energymicro,efm32-spi";
19 reg = <0x4000c400 0x400>; 19 reg = <0x4000c400 0x400>;
20 interrupts = <15 16>; 20 interrupts = <15 16>;
21 clocks = <&cmu 20>; 21 clocks = <&cmu 20>;
22 cs-gpios = <&gpio 51 1>; // D3 22 cs-gpios = <&gpio 51 1>; // D3
23 location = <1>; 23 efm32,location = <1>;
24 status = "ok"; 24 status = "ok";
25 25
26 ks8851@0 { 26 ks8851@0 {
diff --git a/Documentation/devicetree/bindings/spi/qcom,spi-qup.txt b/Documentation/devicetree/bindings/spi/qcom,spi-qup.txt
new file mode 100644
index 000000000000..b82a268f1bd4
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/qcom,spi-qup.txt
@@ -0,0 +1,85 @@
1Qualcomm Universal Peripheral (QUP) Serial Peripheral Interface (SPI)
2
3The QUP core is an AHB slave that provides a common data path (an output FIFO
4and an input FIFO) for serial peripheral interface (SPI) mini-core.
5
6SPI in master mode supports up to 50MHz, up to four chip selects, programmable
7data path from 4 bits to 32 bits and numerous protocol variants.
8
9Required properties:
10- compatible: Should contain "qcom,spi-qup-v2.1.1" or "qcom,spi-qup-v2.2.1"
11- reg: Should contain base register location and length
12- interrupts: Interrupt number used by this controller
13
14- clocks: Should contain the core clock and the AHB clock.
15- clock-names: Should be "core" for the core clock and "iface" for the
16 AHB clock.
17
18- #address-cells: Number of cells required to define a chip select
19 address on the SPI bus. Should be set to 1.
20- #size-cells: Should be zero.
21
22Optional properties:
23- spi-max-frequency: Specifies maximum SPI clock frequency,
24 Units - Hz. Definition as per
25 Documentation/devicetree/bindings/spi/spi-bus.txt
26
27SPI slave nodes must be children of the SPI master node and can contain
28properties described in Documentation/devicetree/bindings/spi/spi-bus.txt
29
30Example:
31
32 spi_8: spi@f9964000 { /* BLSP2 QUP2 */
33
34 compatible = "qcom,spi-qup-v2";
35 #address-cells = <1>;
36 #size-cells = <0>;
37 reg = <0xf9964000 0x1000>;
38 interrupts = <0 102 0>;
39 spi-max-frequency = <19200000>;
40
41 clocks = <&gcc GCC_BLSP2_QUP2_SPI_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
42 clock-names = "core", "iface";
43
44 pinctrl-names = "default";
45 pinctrl-0 = <&spi8_default>;
46
47 device@0 {
48 compatible = "arm,pl022-dummy";
49 #address-cells = <1>;
50 #size-cells = <1>;
51 reg = <0>; /* Chip select 0 */
52 spi-max-frequency = <19200000>;
53 spi-cpol;
54 };
55
56 device@1 {
57 compatible = "arm,pl022-dummy";
58 #address-cells = <1>;
59 #size-cells = <1>;
60 reg = <1>; /* Chip select 1 */
61 spi-max-frequency = <9600000>;
62 spi-cpha;
63 };
64
65 device@2 {
66 compatible = "arm,pl022-dummy";
67 #address-cells = <1>;
68 #size-cells = <1>;
69 reg = <2>; /* Chip select 2 */
70 spi-max-frequency = <19200000>;
71 spi-cpol;
72 spi-cpha;
73 };
74
75 device@3 {
76 compatible = "arm,pl022-dummy";
77 #address-cells = <1>;
78 #size-cells = <1>;
79 reg = <3>; /* Chip select 3 */
80 spi-max-frequency = <19200000>;
81 spi-cpol;
82 spi-cpha;
83 spi-cs-high;
84 };
85 };
diff --git a/Documentation/devicetree/bindings/spi/sh-hspi.txt b/Documentation/devicetree/bindings/spi/sh-hspi.txt
index 30b57b1c8a13..319bad4af875 100644
--- a/Documentation/devicetree/bindings/spi/sh-hspi.txt
+++ b/Documentation/devicetree/bindings/spi/sh-hspi.txt
@@ -1,7 +1,29 @@
1Renesas HSPI. 1Renesas HSPI.
2 2
3Required properties: 3Required properties:
4- compatible : "renesas,hspi" 4- compatible : "renesas,hspi-<soctype>", "renesas,hspi" as fallback.
5- reg : Offset and length of the register set for the device 5 Examples with soctypes are:
6- interrupts : interrupt line used by HSPI 6 - "renesas,hspi-r8a7778" (R-Car M1)
7 - "renesas,hspi-r8a7779" (R-Car H1)
8- reg : Offset and length of the register set for the device
9- interrupt-parent : The phandle for the interrupt controller that
10 services interrupts for this device
11- interrupts : Interrupt specifier
12- #address-cells : Must be <1>
13- #size-cells : Must be <0>
14
15Pinctrl properties might be needed, too. See
16Documentation/devicetree/bindings/pinctrl/renesas,*.
17
18Example:
19
20 hspi0: spi@fffc7000 {
21 compatible = "renesas,hspi-r8a7778", "renesas,hspi";
22 reg = <0xfffc7000 0x18>;
23 interrupt-parent = <&gic>;
24 interrupts = <0 63 IRQ_TYPE_LEVEL_HIGH>;
25 #address-cells = <1>;
26 #size-cells = <0>;
27 status = "disabled";
28 };
7 29
diff --git a/Documentation/devicetree/bindings/spi/sh-msiof.txt b/Documentation/devicetree/bindings/spi/sh-msiof.txt
index e6222106ca36..f24baf3b6cc1 100644
--- a/Documentation/devicetree/bindings/spi/sh-msiof.txt
+++ b/Documentation/devicetree/bindings/spi/sh-msiof.txt
@@ -1,12 +1,40 @@
1Renesas MSIOF spi controller 1Renesas MSIOF spi controller
2 2
3Required properties: 3Required properties:
4- compatible : "renesas,sh-msiof" for SuperH or 4- compatible : "renesas,msiof-<soctype>" for SoCs,
5 "renesas,sh-mobile-msiof" for SH Mobile series 5 "renesas,sh-msiof" for SuperH, or
6- reg : Offset and length of the register set for the device 6 "renesas,sh-mobile-msiof" for SH Mobile series.
7- interrupts : interrupt line used by MSIOF 7 Examples with soctypes are:
8 "renesas,msiof-r8a7790" (R-Car H2)
9 "renesas,msiof-r8a7791" (R-Car M2)
10- reg : Offset and length of the register set for the device
11- interrupt-parent : The phandle for the interrupt controller that
12 services interrupts for this device
13- interrupts : Interrupt specifier
14- #address-cells : Must be <1>
15- #size-cells : Must be <0>
8 16
9Optional properties: 17Optional properties:
10- num-cs : total number of chip-selects 18- clocks : Must contain a reference to the functional clock.
11- renesas,tx-fifo-size : Overrides the default tx fifo size given in words 19- num-cs : Total number of chip-selects (default is 1)
12- renesas,rx-fifo-size : Overrides the default rx fifo size given in words 20
21Optional properties, deprecated for soctype-specific bindings:
22- renesas,tx-fifo-size : Overrides the default tx fifo size given in words
23 (default is 64)
24- renesas,rx-fifo-size : Overrides the default rx fifo size given in words
25 (default is 64, or 256 on R-Car H2 and M2)
26
27Pinctrl properties might be needed, too. See
28Documentation/devicetree/bindings/pinctrl/renesas,*.
29
30Example:
31
32 msiof0: spi@e6e20000 {
33 compatible = "renesas,msiof-r8a7791";
34 reg = <0 0xe6e20000 0 0x0064>;
35 interrupts = <0 156 IRQ_TYPE_LEVEL_HIGH>;
36 clocks = <&mstp0_clks R8A7791_CLK_MSIOF0>;
37 #address-cells = <1>;
38 #size-cells = <0>;
39 status = "disabled";
40 };
diff --git a/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt b/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt
index a1fb3035a42b..5376de40f10b 100644
--- a/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt
+++ b/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt
@@ -10,6 +10,7 @@ Required properties:
10- pinctrl-names: must contain a "default" entry. 10- pinctrl-names: must contain a "default" entry.
11- spi-num-chipselects : the number of the chipselect signals. 11- spi-num-chipselects : the number of the chipselect signals.
12- bus-num : the slave chip chipselect signal number. 12- bus-num : the slave chip chipselect signal number.
13- big-endian : if DSPI modudle is big endian, the bool will be set in node.
13Example: 14Example:
14 15
15dspi0@4002c000 { 16dspi0@4002c000 {
@@ -24,6 +25,7 @@ dspi0@4002c000 {
24 bus-num = <0>; 25 bus-num = <0>;
25 pinctrl-names = "default"; 26 pinctrl-names = "default";
26 pinctrl-0 = <&pinctrl_dspi0_1>; 27 pinctrl-0 = <&pinctrl_dspi0_1>;
28 big-endian;
27 status = "okay"; 29 status = "okay";
28 30
29 sflash: at26df081a@0 { 31 sflash: at26df081a@0 {
diff --git a/Documentation/devicetree/bindings/spi/spi-rspi.txt b/Documentation/devicetree/bindings/spi/spi-rspi.txt
new file mode 100644
index 000000000000..d57d82a74054
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/spi-rspi.txt
@@ -0,0 +1,61 @@
1Device tree configuration for Renesas RSPI/QSPI driver
2
3Required properties:
4- compatible : For Renesas Serial Peripheral Interface on legacy SH:
5 "renesas,rspi-<soctype>", "renesas,rspi" as fallback.
6 For Renesas Serial Peripheral Interface on RZ/A1H:
7 "renesas,rspi-<soctype>", "renesas,rspi-rz" as fallback.
8 For Quad Serial Peripheral Interface on R-Car Gen2:
9 "renesas,qspi-<soctype>", "renesas,qspi" as fallback.
10 Examples with soctypes are:
11 - "renesas,rspi-sh7757" (SH)
12 - "renesas,rspi-r7s72100" (RZ/A1H)
13 - "renesas,qspi-r8a7790" (R-Car H2)
14 - "renesas,qspi-r8a7791" (R-Car M2)
15- reg : Address start and address range size of the device
16- interrupts : A list of interrupt-specifiers, one for each entry in
17 interrupt-names.
18 If interrupt-names is not present, an interrupt specifier
19 for a single muxed interrupt.
20- interrupt-names : A list of interrupt names. Should contain (if present):
21 - "error" for SPEI,
22 - "rx" for SPRI,
23 - "tx" to SPTI,
24 - "mux" for a single muxed interrupt.
25- interrupt-parent : The phandle for the interrupt controller that
26 services interrupts for this device.
27- num-cs : Number of chip selects. Some RSPI cores have more than 1.
28- #address-cells : Must be <1>
29- #size-cells : Must be <0>
30
31Optional properties:
32- clocks : Must contain a reference to the functional clock.
33
34Pinctrl properties might be needed, too. See
35Documentation/devicetree/bindings/pinctrl/renesas,*.
36
37Examples:
38
39 spi0: spi@e800c800 {
40 compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz";
41 reg = <0xe800c800 0x24>;
42 interrupts = <0 238 IRQ_TYPE_LEVEL_HIGH>,
43 <0 239 IRQ_TYPE_LEVEL_HIGH>,
44 <0 240 IRQ_TYPE_LEVEL_HIGH>;
45 interrupt-names = "error", "rx", "tx";
46 interrupt-parent = <&gic>;
47 num-cs = <1>;
48 #address-cells = <1>;
49 #size-cells = <0>;
50 };
51
52 spi: spi@e6b10000 {
53 compatible = "renesas,qspi-r8a7791", "renesas,qspi";
54 reg = <0 0xe6b10000 0 0x2c>;
55 interrupt-parent = <&gic>;
56 interrupts = <0 184 IRQ_TYPE_LEVEL_HIGH>;
57 clocks = <&mstp9_clks R8A7791_CLK_QSPI_MOD>;
58 num-cs = <1>;
59 #address-cells = <1>;
60 #size-cells = <0>;
61 };
diff --git a/Documentation/devicetree/bindings/spi/spi-sun4i.txt b/Documentation/devicetree/bindings/spi/spi-sun4i.txt
new file mode 100644
index 000000000000..de827f5a301e
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/spi-sun4i.txt
@@ -0,0 +1,24 @@
1Allwinner A10 SPI controller
2
3Required properties:
4- compatible: Should be "allwinner,sun4-a10-spi".
5- reg: Should contain register location and length.
6- interrupts: Should contain interrupt.
7- clocks: phandle to the clocks feeding the SPI controller. Two are
8 needed:
9 - "ahb": the gated AHB parent clock
10 - "mod": the parent module clock
11- clock-names: Must contain the clock names described just above
12
13Example:
14
15spi1: spi@01c06000 {
16 compatible = "allwinner,sun4i-a10-spi";
17 reg = <0x01c06000 0x1000>;
18 interrupts = <11>;
19 clocks = <&ahb_gates 21>, <&spi1_clk>;
20 clock-names = "ahb", "mod";
21 status = "disabled";
22 #address-cells = <1>;
23 #size-cells = <0>;
24};
diff --git a/Documentation/devicetree/bindings/spi/spi-sun6i.txt b/Documentation/devicetree/bindings/spi/spi-sun6i.txt
new file mode 100644
index 000000000000..21de73db6a05
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/spi-sun6i.txt
@@ -0,0 +1,24 @@
1Allwinner A31 SPI controller
2
3Required properties:
4- compatible: Should be "allwinner,sun6i-a31-spi".
5- reg: Should contain register location and length.
6- interrupts: Should contain interrupt.
7- clocks: phandle to the clocks feeding the SPI controller. Two are
8 needed:
9 - "ahb": the gated AHB parent clock
10 - "mod": the parent module clock
11- clock-names: Must contain the clock names described just above
12- resets: phandle to the reset controller asserting this device in
13 reset
14
15Example:
16
17spi1: spi@01c69000 {
18 compatible = "allwinner,sun6i-a31-spi";
19 reg = <0x01c69000 0x1000>;
20 interrupts = <0 66 4>;
21 clocks = <&ahb1_gates 21>, <&spi1_clk>;
22 clock-names = "ahb", "mod";
23 resets = <&ahb1_rst 21>;
24};
diff --git a/Documentation/devicetree/bindings/spi/spi-xtensa-xtfpga.txt b/Documentation/devicetree/bindings/spi/spi-xtensa-xtfpga.txt
new file mode 100644
index 000000000000..b6ebe2bc7041
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/spi-xtensa-xtfpga.txt
@@ -0,0 +1,9 @@
1Cadence Xtensa XTFPGA platform SPI controller.
2
3This simple SPI master controller is built into xtfpga bitstreams and is used
4to control daughterboard audio codec.
5
6Required properties:
7- compatible: should be "cdns,xtfpga-spi".
8- reg: physical base address of the controller and length of memory mapped
9 region.
diff --git a/Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.txt b/Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.txt
new file mode 100644
index 000000000000..715d0998af8e
--- /dev/null
+++ b/Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.txt
@@ -0,0 +1,61 @@
1Qualcomm SPMI Controller (PMIC Arbiter)
2
3The SPMI PMIC Arbiter is found on the Snapdragon 800 Series. It is an SPMI
4controller with wrapping arbitration logic to allow for multiple on-chip
5devices to control a single SPMI master.
6
7The PMIC Arbiter can also act as an interrupt controller, providing interrupts
8to slave devices.
9
10See spmi.txt for the generic SPMI controller binding requirements for child
11nodes.
12
13See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt for
14generic interrupt controller binding documentation.
15
16Required properties:
17- compatible : should be "qcom,spmi-pmic-arb".
18- reg-names : must contain:
19 "core" - core registers
20 "intr" - interrupt controller registers
21 "cnfg" - configuration registers
22- reg : address + size pairs describing the PMIC arb register sets; order must
23 correspond with the order of entries in reg-names
24- #address-cells : must be set to 2
25- #size-cells : must be set to 0
26- qcom,ee : indicates the active Execution Environment identifier (0-5)
27- qcom,channel : which of the PMIC Arb provided channels to use for accesses (0-5)
28- interrupts : interrupt list for the PMIC Arb controller, must contain a
29 single interrupt entry for the peripheral interrupt
30- interrupt-names : corresponding interrupt names for the interrupts
31 listed in the 'interrupts' property, must contain:
32 "periph_irq" - summary interrupt for PMIC peripherals
33- interrupt-controller : boolean indicator that the PMIC arbiter is an interrupt controller
34- #interrupt-cells : must be set to 4. Interrupts are specified as a 4-tuple:
35 cell 1: slave ID for the requested interrupt (0-15)
36 cell 2: peripheral ID for requested interrupt (0-255)
37 cell 3: the requested peripheral interrupt (0-7)
38 cell 4: interrupt flags indicating level-sense information, as defined in
39 dt-bindings/interrupt-controller/irq.h
40
41Example:
42
43 spmi {
44 compatible = "qcom,spmi-pmic-arb";
45 reg-names = "core", "intr", "cnfg";
46 reg = <0xfc4cf000 0x1000>,
47 <0xfc4cb000 0x1000>,
48 <0xfc4ca000 0x1000>;
49
50 interrupt-names = "periph_irq";
51 interrupts = <0 190 0>;
52
53 qcom,ee = <0>;
54 qcom,channel = <0>;
55
56 #address-cells = <2>;
57 #size-cells = <0>;
58
59 interrupt-controller;
60 #interrupt-cells = <4>;
61 };
diff --git a/Documentation/devicetree/bindings/spmi/spmi.txt b/Documentation/devicetree/bindings/spmi/spmi.txt
new file mode 100644
index 000000000000..462a42fb3a1e
--- /dev/null
+++ b/Documentation/devicetree/bindings/spmi/spmi.txt
@@ -0,0 +1,41 @@
1System Power Management Interface (SPMI) Controller
2
3This document defines a generic set of bindings for use by SPMI controllers. A
4controller is modelled in device tree as a node with zero or more child nodes,
5each representing a unique slave on the bus.
6
7Required properties:
8- #address-cells : must be set to 2
9- #size-cells : must be set to 0
10
11Child nodes:
12
13An SPMI controller node can contain zero or more child nodes representing slave
14devices on the bus. Child 'reg' properties are specified as an address, type
15pair. The address must be in the range 0-15 (4 bits). The type must be one of
16SPMI_USID (0) or SPMI_GSID (1) for Unique Slave ID or Group Slave ID respectively.
17These are the identifiers "statically assigned by the system integrator", as
18per the SPMI spec.
19
20Each child node must have one and only one 'reg' entry of type SPMI_USID.
21
22#include <dt-bindings/spmi/spmi.h>
23
24 spmi@.. {
25 compatible = "...";
26 reg = <...>;
27
28 #address-cells = <2>;
29 #size-cells <0>;
30
31 child@0 {
32 compatible = "...";
33 reg = <0 SPMI_USID>;
34 };
35
36 child@7 {
37 compatible = "...";
38 reg = <7 SPMI_USID
39 3 SPMI_GSID>;
40 };
41 };
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 b876d4925a57..3be5ce7a9654 100644
--- a/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt
+++ b/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt
@@ -1,3 +1,22 @@
1Freescale i.MX DRM master device
2================================
3
4The freescale i.MX DRM master device is a virtual device needed to list all
5IPU or other display interface nodes that comprise the graphics subsystem.
6
7Required properties:
8- compatible: Should be "fsl,imx-display-subsystem"
9- ports: Should contain a list of phandles pointing to display interface ports
10 of IPU devices
11
12example:
13
14display-subsystem {
15 compatible = "fsl,display-subsystem";
16 ports = <&ipu_di0>;
17};
18
19
1Freescale i.MX IPUv3 20Freescale i.MX IPUv3
2==================== 21====================
3 22
@@ -7,18 +26,31 @@ Required properties:
7 datasheet 26 datasheet
8- interrupts: Should contain sync interrupt and error interrupt, 27- interrupts: Should contain sync interrupt and error interrupt,
9 in this order. 28 in this order.
10- #crtc-cells: 1, See below
11- resets: phandle pointing to the system reset controller and 29- resets: phandle pointing to the system reset controller and
12 reset line index, see reset/fsl,imx-src.txt for details 30 reset line index, see reset/fsl,imx-src.txt for details
31Optional properties:
32- port@[0-3]: Port nodes with endpoint definitions as defined in
33 Documentation/devicetree/bindings/media/video-interfaces.txt.
34 Ports 0 and 1 should correspond to CSI0 and CSI1,
35 ports 2 and 3 should correspond to DI0 and DI1, respectively.
13 36
14example: 37example:
15 38
16ipu: ipu@18000000 { 39ipu: ipu@18000000 {
17 #crtc-cells = <1>; 40 #address-cells = <1>;
41 #size-cells = <0>;
18 compatible = "fsl,imx53-ipu"; 42 compatible = "fsl,imx53-ipu";
19 reg = <0x18000000 0x080000000>; 43 reg = <0x18000000 0x080000000>;
20 interrupts = <11 10>; 44 interrupts = <11 10>;
21 resets = <&src 2>; 45 resets = <&src 2>;
46
47 ipu_di0: port@2 {
48 reg = <2>;
49
50 ipu_di0_disp0: endpoint {
51 remote-endpoint = <&display_in>;
52 };
53 };
22}; 54};
23 55
24Parallel display support 56Parallel display support
@@ -26,19 +58,25 @@ Parallel display support
26 58
27Required properties: 59Required properties:
28- compatible: Should be "fsl,imx-parallel-display" 60- compatible: Should be "fsl,imx-parallel-display"
29- crtc: the crtc this display is connected to, see below
30Optional properties: 61Optional properties:
31- interface_pix_fmt: How this display is connected to the 62- interface_pix_fmt: How this display is connected to the
32 crtc. Currently supported types: "rgb24", "rgb565", "bgr666" 63 display interface. Currently supported types: "rgb24", "rgb565", "bgr666"
33- edid: verbatim EDID data block describing attached display. 64- edid: verbatim EDID data block describing attached display.
34- ddc: phandle describing the i2c bus handling the display data 65- ddc: phandle describing the i2c bus handling the display data
35 channel 66 channel
67- port: A port node with endpoint definitions as defined in
68 Documentation/devicetree/bindings/media/video-interfaces.txt.
36 69
37example: 70example:
38 71
39display@di0 { 72display@di0 {
40 compatible = "fsl,imx-parallel-display"; 73 compatible = "fsl,imx-parallel-display";
41 edid = [edid-data]; 74 edid = [edid-data];
42 crtc = <&ipu 0>;
43 interface-pix-fmt = "rgb24"; 75 interface-pix-fmt = "rgb24";
76
77 port {
78 display_in: endpoint {
79 remote-endpoint = <&ipu_di0_disp0>;
80 };
81 };
44}; 82};
diff --git a/Documentation/devicetree/bindings/staging/imx-drm/hdmi.txt b/Documentation/devicetree/bindings/staging/imx-drm/hdmi.txt
new file mode 100644
index 000000000000..1b756cf9afb0
--- /dev/null
+++ b/Documentation/devicetree/bindings/staging/imx-drm/hdmi.txt
@@ -0,0 +1,58 @@
1Device-Tree bindings for HDMI Transmitter
2
3HDMI Transmitter
4================
5
6The HDMI Transmitter is a Synopsys DesignWare HDMI 1.4 TX controller IP
7with accompanying PHY IP.
8
9Required properties:
10 - #address-cells : should be <1>
11 - #size-cells : should be <0>
12 - compatible : should be "fsl,imx6q-hdmi" or "fsl,imx6dl-hdmi".
13 - gpr : should be <&gpr>.
14 The phandle points to the iomuxc-gpr region containing the HDMI
15 multiplexer control register.
16 - clocks, clock-names : phandles to the HDMI iahb and isrf clocks, as described
17 in Documentation/devicetree/bindings/clock/clock-bindings.txt and
18 Documentation/devicetree/bindings/clock/imx6q-clock.txt.
19 - port@[0-4]: Up to four port nodes with endpoint definitions as defined in
20 Documentation/devicetree/bindings/media/video-interfaces.txt,
21 corresponding to the four inputs to the HDMI multiplexer.
22
23Optional properties:
24 - ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing
25
26example:
27
28 gpr: iomuxc-gpr@020e0000 {
29 /* ... */
30 };
31
32 hdmi: hdmi@0120000 {
33 #address-cells = <1>;
34 #size-cells = <0>;
35 compatible = "fsl,imx6q-hdmi";
36 reg = <0x00120000 0x9000>;
37 interrupts = <0 115 0x04>;
38 gpr = <&gpr>;
39 clocks = <&clks 123>, <&clks 124>;
40 clock-names = "iahb", "isfr";
41 ddc-i2c-bus = <&i2c2>;
42
43 port@0 {
44 reg = <0>;
45
46 hdmi_mux_0: endpoint {
47 remote-endpoint = <&ipu1_di0_hdmi>;
48 };
49 };
50
51 port@1 {
52 reg = <1>;
53
54 hdmi_mux_1: endpoint {
55 remote-endpoint = <&ipu1_di1_hdmi>;
56 };
57 };
58 };
diff --git a/Documentation/devicetree/bindings/staging/imx-drm/ldb.txt b/Documentation/devicetree/bindings/staging/imx-drm/ldb.txt
index ed9377811ee2..578a1fca366e 100644
--- a/Documentation/devicetree/bindings/staging/imx-drm/ldb.txt
+++ b/Documentation/devicetree/bindings/staging/imx-drm/ldb.txt
@@ -50,12 +50,14 @@ have a look at Documentation/devicetree/bindings/video/display-timing.txt.
50 50
51Required properties: 51Required properties:
52 - reg : should be <0> or <1> 52 - reg : should be <0> or <1>
53 - crtcs : a list of phandles with index pointing to the IPU display interfaces
54 that can be used as video source for this channel.
55 - fsl,data-mapping : should be "spwg" or "jeida" 53 - fsl,data-mapping : should be "spwg" or "jeida"
56 This describes how the color bits are laid out in the 54 This describes how the color bits are laid out in the
57 serialized LVDS signal. 55 serialized LVDS signal.
58 - fsl,data-width : should be <18> or <24> 56 - fsl,data-width : should be <18> or <24>
57 - port: A port node with endpoint definitions as defined in
58 Documentation/devicetree/bindings/media/video-interfaces.txt.
59 On i.MX6, there should be four ports (port@[0-3]) that correspond
60 to the four LVDS multiplexer inputs.
59 61
60example: 62example:
61 63
@@ -77,23 +79,33 @@ ldb: ldb@53fa8008 {
77 79
78 lvds-channel@0 { 80 lvds-channel@0 {
79 reg = <0>; 81 reg = <0>;
80 crtcs = <&ipu 0>;
81 fsl,data-mapping = "spwg"; 82 fsl,data-mapping = "spwg";
82 fsl,data-width = <24>; 83 fsl,data-width = <24>;
83 84
84 display-timings { 85 display-timings {
85 /* ... */ 86 /* ... */
86 }; 87 };
88
89 port {
90 lvds0_in: endpoint {
91 remote-endpoint = <&ipu_di0_lvds0>;
92 };
93 };
87 }; 94 };
88 95
89 lvds-channel@1 { 96 lvds-channel@1 {
90 reg = <1>; 97 reg = <1>;
91 crtcs = <&ipu 1>;
92 fsl,data-mapping = "spwg"; 98 fsl,data-mapping = "spwg";
93 fsl,data-width = <24>; 99 fsl,data-width = <24>;
94 100
95 display-timings { 101 display-timings {
96 /* ... */ 102 /* ... */
97 }; 103 };
104
105 port {
106 lvds1_in: endpoint {
107 remote-endpoint = <&ipu_di1_lvds1>;
108 };
109 };
98 }; 110 };
99}; 111};
diff --git a/Documentation/devicetree/bindings/timer/allwinner,sun4i-timer.txt b/Documentation/devicetree/bindings/timer/allwinner,sun4i-timer.txt
index 48aeb7884ed3..5c2e23574ca0 100644
--- a/Documentation/devicetree/bindings/timer/allwinner,sun4i-timer.txt
+++ b/Documentation/devicetree/bindings/timer/allwinner,sun4i-timer.txt
@@ -2,7 +2,7 @@ Allwinner A1X SoCs Timer Controller
2 2
3Required properties: 3Required properties:
4 4
5- compatible : should be "allwinner,sun4i-timer" 5- compatible : should be "allwinner,sun4i-a10-timer"
6- reg : Specifies base physical address and size of the registers. 6- reg : Specifies base physical address and size of the registers.
7- interrupts : The interrupt of the first timer 7- interrupts : The interrupt of the first timer
8- clocks: phandle to the source clock (usually a 24 MHz fixed clock) 8- clocks: phandle to the source clock (usually a 24 MHz fixed clock)
@@ -10,7 +10,7 @@ Required properties:
10Example: 10Example:
11 11
12timer { 12timer {
13 compatible = "allwinner,sun4i-timer"; 13 compatible = "allwinner,sun4i-a10-timer";
14 reg = <0x01c20c00 0x400>; 14 reg = <0x01c20c00 0x400>;
15 interrupts = <22>; 15 interrupts = <22>;
16 clocks = <&osc>; 16 clocks = <&osc>;
diff --git a/Documentation/devicetree/bindings/timer/ti,keystone-timer.txt b/Documentation/devicetree/bindings/timer/ti,keystone-timer.txt
new file mode 100644
index 000000000000..5fbe361252b4
--- /dev/null
+++ b/Documentation/devicetree/bindings/timer/ti,keystone-timer.txt
@@ -0,0 +1,29 @@
1* Device tree bindings for Texas instruments Keystone timer
2
3This document provides bindings for the 64-bit timer in the KeyStone
4architecture devices. The timer can be configured as a general-purpose 64-bit
5timer, dual general-purpose 32-bit timers. When configured as dual 32-bit
6timers, each half can operate in conjunction (chain mode) or independently
7(unchained mode) of each other.
8
9It is global timer is a free running up-counter and can generate interrupt
10when the counter reaches preset counter values.
11
12Documentation:
13http://www.ti.com/lit/ug/sprugv5a/sprugv5a.pdf
14
15Required properties:
16
17- compatible : should be "ti,keystone-timer".
18- reg : specifies base physical address and count of the registers.
19- interrupts : interrupt generated by the timer.
20- clocks : the clock feeding the timer clock.
21
22Example:
23
24timer@22f0000 {
25 compatible = "ti,keystone-timer";
26 reg = <0x022f0000 0x80>;
27 interrupts = <GIC_SPI 110 IRQ_TYPE_EDGE_RISING>;
28 clocks = <&clktimer15>;
29};
diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt b/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt
index b4b5b7906c88..a6a32cb7f777 100644
--- a/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt
+++ b/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt
@@ -18,6 +18,7 @@ Optional properties:
18- vbus-supply: regulator for vbus 18- vbus-supply: regulator for vbus
19- disable-over-current: disable over current detect 19- disable-over-current: disable over current detect
20- external-vbus-divider: enables off-chip resistor divider for Vbus 20- external-vbus-divider: enables off-chip resistor divider for Vbus
21- maximum-speed: limit the maximum connection speed to "full-speed".
21 22
22Examples: 23Examples:
23usb@02184000 { /* USB OTG */ 24usb@02184000 { /* USB OTG */
@@ -28,4 +29,5 @@ usb@02184000 { /* USB OTG */
28 fsl,usbmisc = <&usbmisc 0>; 29 fsl,usbmisc = <&usbmisc 0>;
29 disable-over-current; 30 disable-over-current;
30 external-vbus-divider; 31 external-vbus-divider;
32 maximum-speed = "full-speed";
31}; 33};
diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-zevio.txt b/Documentation/devicetree/bindings/usb/ci-hdrc-zevio.txt
new file mode 100644
index 000000000000..abbcb2aea38c
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/ci-hdrc-zevio.txt
@@ -0,0 +1,17 @@
1* LSI Zevio USB OTG Controller
2
3Required properties:
4- compatible: Should be "lsi,zevio-usb"
5- reg: Should contain registers location and length
6- interrupts: Should contain controller interrupt
7
8Optional properties:
9- vbus-supply: regulator for vbus
10
11Examples:
12 usb0: usb@b0000000 {
13 reg = <0xb0000000 0x1000>;
14 compatible = "lsi,zevio-usb";
15 interrupts = <8>;
16 vbus-supply = <&vbus_reg>;
17 };
diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt
index e807635f9e1c..471366d6a129 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -6,11 +6,13 @@ Required properties:
6 - compatible: must be "snps,dwc3" 6 - compatible: must be "snps,dwc3"
7 - reg : Address and length of the register set for the device 7 - reg : Address and length of the register set for the device
8 - interrupts: Interrupts used by the dwc3 controller. 8 - interrupts: Interrupts used by the dwc3 controller.
9
10Optional properties:
9 - usb-phy : array of phandle for the PHY device. The first element 11 - usb-phy : array of phandle for the PHY device. The first element
10 in the array is expected to be a handle to the USB2/HS PHY and 12 in the array is expected to be a handle to the USB2/HS PHY and
11 the second element is expected to be a handle to the USB3/SS PHY 13 the second element is expected to be a handle to the USB3/SS PHY
12 14 - phys: from the *Generic PHY* bindings
13Optional properties: 15 - phy-names: from the *Generic PHY* bindings
14 - tx-fifo-resize: determines if the FIFO *has* to be reallocated. 16 - tx-fifo-resize: determines if the FIFO *has* to be reallocated.
15 17
16This is usually a subnode to DWC3 glue to which it is connected. 18This is usually a subnode to DWC3 glue to which it is connected.
diff --git a/Documentation/devicetree/bindings/usb/fsl-usb.txt b/Documentation/devicetree/bindings/usb/fsl-usb.txt
index bd5723f0b67e..4779c029b675 100644
--- a/Documentation/devicetree/bindings/usb/fsl-usb.txt
+++ b/Documentation/devicetree/bindings/usb/fsl-usb.txt
@@ -8,7 +8,9 @@ and additions :
8Required properties : 8Required properties :
9 - compatible : Should be "fsl-usb2-mph" for multi port host USB 9 - compatible : Should be "fsl-usb2-mph" for multi port host USB
10 controllers, or "fsl-usb2-dr" for dual role USB controllers 10 controllers, or "fsl-usb2-dr" for dual role USB controllers
11 or "fsl,mpc5121-usb2-dr" for dual role USB controllers of MPC5121 11 or "fsl,mpc5121-usb2-dr" for dual role USB controllers of MPC5121.
12 Wherever applicable, the IP version of the USB controller should
13 also be mentioned (for eg. fsl-usb2-dr-v2.2 for bsc9132).
12 - phy_type : For multi port host USB controllers, should be one of 14 - phy_type : For multi port host USB controllers, should be one of
13 "ulpi", or "serial". For dual role USB controllers, should be 15 "ulpi", or "serial". For dual role USB controllers, should be
14 one of "ulpi", "utmi", "utmi_wide", or "serial". 16 one of "ulpi", "utmi", "utmi_wide", or "serial".
diff --git a/Documentation/devicetree/bindings/usb/mxs-phy.txt b/Documentation/devicetree/bindings/usb/mxs-phy.txt
index 5835b27146ea..cef181a9d8bd 100644
--- a/Documentation/devicetree/bindings/usb/mxs-phy.txt
+++ b/Documentation/devicetree/bindings/usb/mxs-phy.txt
@@ -1,13 +1,19 @@
1* Freescale MXS USB Phy Device 1* Freescale MXS USB Phy Device
2 2
3Required properties: 3Required properties:
4- compatible: Should be "fsl,imx23-usbphy" 4- compatible: should contain:
5 * "fsl,imx23-usbphy" for imx23 and imx28
6 * "fsl,imx6q-usbphy" for imx6dq and imx6dl
7 * "fsl,imx6sl-usbphy" for imx6sl
8 "fsl,imx23-usbphy" is still a fallback for other strings
5- reg: Should contain registers location and length 9- reg: Should contain registers location and length
6- interrupts: Should contain phy interrupt 10- interrupts: Should contain phy interrupt
11- fsl,anatop: phandle for anatop register, it is only for imx6 SoC series
7 12
8Example: 13Example:
9usbphy1: usbphy@020c9000 { 14usbphy1: usbphy@020c9000 {
10 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy"; 15 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
11 reg = <0x020c9000 0x1000>; 16 reg = <0x020c9000 0x1000>;
12 interrupts = <0 44 0x04>; 17 interrupts = <0 44 0x04>;
18 fsl,anatop = <&anatop>;
13}; 19};
diff --git a/Documentation/devicetree/bindings/usb/omap-usb.txt b/Documentation/devicetree/bindings/usb/omap-usb.txt
index c495135115cb..38b2faec4199 100644
--- a/Documentation/devicetree/bindings/usb/omap-usb.txt
+++ b/Documentation/devicetree/bindings/usb/omap-usb.txt
@@ -76,27 +76,3 @@ omap_dwc3 {
76 ranges; 76 ranges;
77}; 77};
78 78
79OMAP CONTROL USB
80
81Required properties:
82 - compatible: Should be one of
83 "ti,control-phy-otghs" - if it has otghs_control mailbox register as on OMAP4.
84 "ti,control-phy-usb2" - if it has Power down bit in control_dev_conf register
85 e.g. USB2_PHY on OMAP5.
86 "ti,control-phy-pipe3" - if it has DPLL and individual Rx & Tx power control
87 e.g. USB3 PHY and SATA PHY on OMAP5.
88 "ti,control-phy-dra7usb2" - if it has power down register like USB2 PHY on
89 DRA7 platform.
90 "ti,control-phy-am437usb2" - if it has power down register like USB2 PHY on
91 AM437 platform.
92 - reg : Address and length of the register set for the device. It contains
93 the address of "otghs_control" for control-phy-otghs or "power" register
94 for other types.
95 - reg-names: should be "otghs_control" control-phy-otghs and "power" for
96 other types.
97
98omap_control_usb: omap-control-usb@4a002300 {
99 compatible = "ti,control-phy-otghs";
100 reg = <0x4a00233c 0x4>;
101 reg-names = "otghs_control";
102};
diff --git a/Documentation/devicetree/bindings/usb/usb-ehci.txt b/Documentation/devicetree/bindings/usb/usb-ehci.txt
index fa18612f757b..ff151ec084c4 100644
--- a/Documentation/devicetree/bindings/usb/usb-ehci.txt
+++ b/Documentation/devicetree/bindings/usb/usb-ehci.txt
@@ -1,19 +1,20 @@
1USB EHCI controllers 1USB EHCI controllers
2 2
3Required properties: 3Required properties:
4 - compatible : should be "usb-ehci". 4 - compatible : should be "generic-ehci".
5 - reg : should contain at least address and length of the standard EHCI 5 - reg : should contain at least address and length of the standard EHCI
6 register set for the device. Optional platform-dependent registers 6 register set for the device. Optional platform-dependent registers
7 (debug-port or other) can be also specified here, but only after 7 (debug-port or other) can be also specified here, but only after
8 definition of standard EHCI registers. 8 definition of standard EHCI registers.
9 - interrupts : one EHCI interrupt should be described here. 9 - interrupts : one EHCI interrupt should be described here.
10If device registers are implemented in big endian mode, the device 10
11node should have "big-endian-regs" property. 11Optional properties:
12If controller implementation operates with big endian descriptors, 12 - big-endian-regs : boolean, set this for hcds with big-endian registers
13"big-endian-desc" property should be specified. 13 - big-endian-desc : boolean, set this for hcds with big-endian descriptors
14If both big endian registers and descriptors are used by the controller 14 - big-endian : boolean, for hcds with big-endian-regs + big-endian-desc
15implementation, "big-endian" property can be specified instead of having 15 - clocks : a list of phandle + clock specifier pairs
16both "big-endian-regs" and "big-endian-desc". 16 - phys : phandle + phy specifier pair
17 - phy-names : "usb"
17 18
18Example (Sequoia 440EPx): 19Example (Sequoia 440EPx):
19 ehci@e0000300 { 20 ehci@e0000300 {
@@ -23,3 +24,13 @@ Example (Sequoia 440EPx):
23 reg = <0 e0000300 90 0 e0000390 70>; 24 reg = <0 e0000300 90 0 e0000390 70>;
24 big-endian; 25 big-endian;
25 }; 26 };
27
28Example (Allwinner sun4i A10 SoC):
29 ehci0: usb@01c14000 {
30 compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
31 reg = <0x01c14000 0x100>;
32 interrupts = <39>;
33 clocks = <&ahb_gates 1>;
34 phys = <&usbphy 1>;
35 phy-names = "usb";
36 };
diff --git a/Documentation/devicetree/bindings/usb/usb-ohci.txt b/Documentation/devicetree/bindings/usb/usb-ohci.txt
new file mode 100644
index 000000000000..45f67d91e888
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/usb-ohci.txt
@@ -0,0 +1,25 @@
1USB OHCI controllers
2
3Required properties:
4- compatible : "generic-ohci"
5- reg : ohci controller register range (address and length)
6- interrupts : ohci controller interrupt
7
8Optional properties:
9- big-endian-regs : boolean, set this for hcds with big-endian registers
10- big-endian-desc : boolean, set this for hcds with big-endian descriptors
11- big-endian : boolean, for hcds with big-endian-regs + big-endian-desc
12- clocks : a list of phandle + clock specifier pairs
13- phys : phandle + phy specifier pair
14- phy-names : "usb"
15
16Example:
17
18 ohci0: usb@01c14400 {
19 compatible = "allwinner,sun4i-a10-ohci", "generic-ohci";
20 reg = <0x01c14400 0x100>;
21 interrupts = <64>;
22 clocks = <&usb_clk 6>, <&ahb_gates 2>;
23 phys = <&usbphy 1>;
24 phy-names = "usb";
25 };
diff --git a/Documentation/devicetree/bindings/usb/usb-phy.txt b/Documentation/devicetree/bindings/usb/usb-phy.txt
deleted file mode 100644
index c0245c888982..000000000000
--- a/Documentation/devicetree/bindings/usb/usb-phy.txt
+++ /dev/null
@@ -1,48 +0,0 @@
1USB PHY
2
3OMAP USB2 PHY
4
5Required properties:
6 - compatible: Should be "ti,omap-usb2"
7 - reg : Address and length of the register set for the device.
8 - #phy-cells: determine the number of cells that should be given in the
9 phandle while referencing this phy.
10
11Optional properties:
12 - ctrl-module : phandle of the control module used by PHY driver to power on
13 the PHY.
14
15This is usually a subnode of ocp2scp to which it is connected.
16
17usb2phy@4a0ad080 {
18 compatible = "ti,omap-usb2";
19 reg = <0x4a0ad080 0x58>;
20 ctrl-module = <&omap_control_usb>;
21 #phy-cells = <0>;
22};
23
24OMAP USB3 PHY
25
26Required properties:
27 - compatible: Should be "ti,omap-usb3"
28 - reg : Address and length of the register set for the device.
29 - reg-names: The names of the register addresses corresponding to the registers
30 filled in "reg".
31 - #phy-cells: determine the number of cells that should be given in the
32 phandle while referencing this phy.
33
34Optional properties:
35 - ctrl-module : phandle of the control module used by PHY driver to power on
36 the PHY.
37
38This is usually a subnode of ocp2scp to which it is connected.
39
40usb3phy@4a084400 {
41 compatible = "ti,omap-usb3";
42 reg = <0x4a084400 0x80>,
43 <0x4a084800 0x64>,
44 <0x4a084c00 0x40>;
45 reg-names = "phy_rx", "phy_tx", "pll_ctrl";
46 ctrl-module = <&omap_control_usb>;
47 #phy-cells = <0>;
48};
diff --git a/Documentation/devicetree/bindings/usb/platform-uhci.txt b/Documentation/devicetree/bindings/usb/usb-uhci.txt
index a4fb0719d157..298133416c97 100644
--- a/Documentation/devicetree/bindings/usb/platform-uhci.txt
+++ b/Documentation/devicetree/bindings/usb/usb-uhci.txt
@@ -2,14 +2,14 @@ Generic Platform UHCI Controller
2----------------------------------------------------- 2-----------------------------------------------------
3 3
4Required properties: 4Required properties:
5- compatible : "platform-uhci" 5- compatible : "generic-uhci" (deprecated: "platform-uhci")
6- reg : Should contain 1 register ranges(address and length) 6- reg : Should contain 1 register ranges(address and length)
7- interrupts : UHCI controller interrupt 7- interrupts : UHCI controller interrupt
8 8
9Example: 9Example:
10 10
11 uhci@d8007b00 { 11 uhci@d8007b00 {
12 compatible = "platform-uhci"; 12 compatible = "generic-uhci";
13 reg = <0xd8007b00 0x200>; 13 reg = <0xd8007b00 0x200>;
14 interrupts = <43>; 14 interrupts = <43>;
15 }; 15 };
diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt
index 5752df0e17a2..90f8f607d125 100644
--- a/Documentation/devicetree/bindings/usb/usb-xhci.txt
+++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt
@@ -1,14 +1,14 @@
1USB xHCI controllers 1USB xHCI controllers
2 2
3Required properties: 3Required properties:
4 - compatible: should be "xhci-platform". 4 - compatible: should be "generic-xhci" (deprecated: "xhci-platform").
5 - reg: should contain address and length of the standard XHCI 5 - reg: should contain address and length of the standard XHCI
6 register set for the device. 6 register set for the device.
7 - interrupts: one XHCI interrupt should be described here. 7 - interrupts: one XHCI interrupt should be described here.
8 8
9Example: 9Example:
10 usb@f0931000 { 10 usb@f0931000 {
11 compatible = "xhci-platform"; 11 compatible = "generic-xhci";
12 reg = <0xf0931000 0x8c8>; 12 reg = <0xf0931000 0x8c8>;
13 interrupts = <0x0 0x4e 0x0>; 13 interrupts = <0x0 0x4e 0x0>;
14 }; 14 };
diff --git a/Documentation/devicetree/bindings/usb/via,vt8500-ehci.txt b/Documentation/devicetree/bindings/usb/via,vt8500-ehci.txt
deleted file mode 100644
index 17b3ad1d97e7..000000000000
--- a/Documentation/devicetree/bindings/usb/via,vt8500-ehci.txt
+++ /dev/null
@@ -1,15 +0,0 @@
1VIA/Wondermedia VT8500 EHCI Controller
2-----------------------------------------------------
3
4Required properties:
5- compatible : "via,vt8500-ehci"
6- reg : Should contain 1 register ranges(address and length)
7- interrupts : ehci controller interrupt
8
9Example:
10
11 ehci@d8007900 {
12 compatible = "via,vt8500-ehci";
13 reg = <0xd8007900 0x200>;
14 interrupts = <43>;
15 };
diff --git a/Documentation/devicetree/bindings/usb/vt8500-ehci.txt b/Documentation/devicetree/bindings/usb/vt8500-ehci.txt
deleted file mode 100644
index 5fb8fd6e250c..000000000000
--- a/Documentation/devicetree/bindings/usb/vt8500-ehci.txt
+++ /dev/null
@@ -1,12 +0,0 @@
1VIA VT8500 and Wondermedia WM8xxx SoC USB controllers.
2
3Required properties:
4 - compatible: Should be "via,vt8500-ehci" or "wm,prizm-ehci".
5 - reg: Address range of the ehci registers. size should be 0x200
6 - interrupts: Should contain the ehci interrupt.
7
8usb: ehci@D8007100 {
9 compatible = "wm,prizm-ehci", "usb-ehci";
10 reg = <0xD8007100 0x200>;
11 interrupts = <1>;
12};
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 40ce2df0e0e9..95465d57eb31 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -3,6 +3,7 @@ Device tree binding vendor prefix registry. Keep list in alphabetical order.
3This isn't an exhaustive list, but you should add new prefixes to it before 3This isn't an exhaustive list, but you should add new prefixes to it before
4using them to avoid name-space collisions. 4using them to avoid name-space collisions.
5 5
6abilis Abilis Systems
6active-semi Active-Semi International Inc 7active-semi Active-Semi International Inc
7ad Avionic Design GmbH 8ad Avionic Design GmbH
8adi Analog Devices, Inc. 9adi Analog Devices, Inc.
@@ -11,14 +12,17 @@ ak Asahi Kasei Corp.
11allwinner Allwinner Technology Co., Ltd. 12allwinner Allwinner Technology Co., Ltd.
12altr Altera Corp. 13altr Altera Corp.
13amcc Applied Micro Circuits Corporation (APM, formally AMCC) 14amcc Applied Micro Circuits Corporation (APM, formally AMCC)
15amd Advanced Micro Devices (AMD), Inc.
14amstaos AMS-Taos Inc. 16amstaos AMS-Taos Inc.
15apm Applied Micro Circuits Corporation (APM) 17apm Applied Micro Circuits Corporation (APM)
16arm ARM Ltd. 18arm ARM Ltd.
19armadeus ARMadeus Systems SARL
17atmel Atmel Corporation 20atmel Atmel Corporation
18auo AU Optronics Corporation 21auo AU Optronics Corporation
19avago Avago Technologies 22avago Avago Technologies
20bosch Bosch Sensortec GmbH 23bosch Bosch Sensortec GmbH
21brcm Broadcom Corporation 24brcm Broadcom Corporation
25calxeda Calxeda
22capella Capella Microsystems, Inc 26capella Capella Microsystems, Inc
23cavium Cavium, Inc. 27cavium Cavium, Inc.
24cdns Cadence Design Systems Inc. 28cdns Cadence Design Systems Inc.
@@ -26,8 +30,10 @@ chrp Common Hardware Reference Platform
26chunghwa Chunghwa Picture Tubes Ltd. 30chunghwa Chunghwa Picture Tubes Ltd.
27cirrus Cirrus Logic, Inc. 31cirrus Cirrus Logic, Inc.
28cortina Cortina Systems, Inc. 32cortina Cortina Systems, Inc.
33crystalfontz Crystalfontz America, Inc.
29dallas Maxim Integrated Products (formerly Dallas Semiconductor) 34dallas Maxim Integrated Products (formerly Dallas Semiconductor)
30davicom DAVICOM Semiconductor, Inc. 35davicom DAVICOM Semiconductor, Inc.
36dlink D-Link Systems, Inc.
31denx Denx Software Engineering 37denx Denx Software Engineering
32edt Emerging Display Technologies 38edt Emerging Display Technologies
33emmicro EM Microelectronic 39emmicro EM Microelectronic
@@ -37,7 +43,9 @@ est ESTeem Wireless Modems
37fsl Freescale Semiconductor 43fsl Freescale Semiconductor
38GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc. 44GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc.
39gef GE Fanuc Intelligent Platforms Embedded Systems, Inc. 45gef GE Fanuc Intelligent Platforms Embedded Systems, Inc.
46globalscale Globalscale Technologies, Inc.
40gmt Global Mixed-mode Technology, Inc. 47gmt Global Mixed-mode Technology, Inc.
48google Google, Inc.
41gumstix Gumstix, Inc. 49gumstix Gumstix, Inc.
42haoyu Haoyu Microelectronic Co. Ltd. 50haoyu Haoyu Microelectronic Co. Ltd.
43hisilicon Hisilicon Limited. 51hisilicon Hisilicon Limited.
@@ -46,9 +54,12 @@ hp Hewlett Packard
46ibm International Business Machines (IBM) 54ibm International Business Machines (IBM)
47idt Integrated Device Technologies, Inc. 55idt Integrated Device Technologies, Inc.
48img Imagination Technologies Ltd. 56img Imagination Technologies Ltd.
57intel Intel Corporation
49intercontrol Inter Control Group 58intercontrol Inter Control Group
50isl Intersil 59isl Intersil
51karo Ka-Ro electronics GmbH 60karo Ka-Ro electronics GmbH
61lacie LaCie
62lantiq Lantiq Semiconductor
52lg LG Corporation 63lg LG Corporation
53linux Linux-specific binding 64linux Linux-specific binding
54lsi LSI Corp. (LSI Logic) 65lsi LSI Corp. (LSI Logic)
@@ -56,12 +67,16 @@ marvell Marvell Technology Group Ltd.
56maxim Maxim Integrated Products 67maxim Maxim Integrated Products
57microchip Microchip Technology Inc. 68microchip Microchip Technology Inc.
58mosaixtech Mosaix Technologies, Inc. 69mosaixtech Mosaix Technologies, Inc.
70moxa Moxa
59national National Semiconductor 71national National Semiconductor
60neonode Neonode Inc. 72neonode Neonode Inc.
73netgear NETGEAR
61nintendo Nintendo 74nintendo Nintendo
75nokia Nokia
62nvidia NVIDIA 76nvidia NVIDIA
63nxp NXP Semiconductors 77nxp NXP Semiconductors
64onnn ON Semiconductor Corp. 78onnn ON Semiconductor Corp.
79opencores OpenCores.org
65panasonic Panasonic Corporation 80panasonic Panasonic Corporation
66phytec PHYTEC Messtechnik GmbH 81phytec PHYTEC Messtechnik GmbH
67picochip Picochip Ltd 82picochip Picochip Ltd
@@ -80,6 +95,7 @@ sil Silicon Image
80silabs Silicon Laboratories 95silabs Silicon Laboratories
81simtek 96simtek
82sirf SiRF Technology, Inc. 97sirf SiRF Technology, Inc.
98smsc Standard Microsystems Corporation
83snps Synopsys, Inc. 99snps Synopsys, Inc.
84spansion Spansion Inc. 100spansion Spansion Inc.
85st STMicroelectronics 101st STMicroelectronics
@@ -94,4 +110,5 @@ via VIA Technologies, Inc.
94winbond Winbond Electronics corp. 110winbond Winbond Electronics corp.
95wlf Wolfson Microelectronics 111wlf Wolfson Microelectronics
96wm Wondermedia Technologies, Inc. 112wm Wondermedia Technologies, Inc.
113xes Extreme Engineering Solutions (X-ES)
97xlnx Xilinx 114xlnx Xilinx
diff --git a/Documentation/devicetree/bindings/watchdog/of-xilinx-wdt.txt b/Documentation/devicetree/bindings/watchdog/of-xilinx-wdt.txt
new file mode 100644
index 000000000000..6d63782a7378
--- /dev/null
+++ b/Documentation/devicetree/bindings/watchdog/of-xilinx-wdt.txt
@@ -0,0 +1,23 @@
1Xilinx AXI/PLB soft-core watchdog Device Tree Bindings
2---------------------------------------------------------
3
4Required properties:
5- compatible : Should be "xlnx,xps-timebase-wdt-1.00.a" or
6 "xlnx,xps-timebase-wdt-1.01.a".
7- reg : Physical base address and size
8
9Optional properties:
10- clock-frequency : Frequency of clock in Hz
11- xlnx,wdt-enable-once : 0 - Watchdog can be restarted
12 1 - Watchdog can be enabled just once
13- xlnx,wdt-interval : Watchdog timeout interval in 2^<val> clock cycles,
14 <val> is integer from 8 to 31.
15
16Example:
17axi-timebase-wdt@40100000 {
18 clock-frequency = <50000000>;
19 compatible = "xlnx,xps-timebase-wdt-1.00.a";
20 reg = <0x40100000 0x10000>;
21 xlnx,wdt-enable-once = <0x0>;
22 xlnx,wdt-interval = <0x1b>;
23} ;
diff --git a/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt b/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt
index e39cb266c8f4..b8f75c51453a 100644
--- a/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt
+++ b/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt
@@ -2,13 +2,13 @@ Allwinner SoCs Watchdog timer
2 2
3Required properties: 3Required properties:
4 4
5- compatible : should be "allwinner,<soc-family>-wdt", the currently supported 5- compatible : should be either "allwinner,sun4i-a10-wdt" or
6 SoC families being sun4i and sun6i 6 "allwinner,sun6i-a31-wdt"
7- reg : Specifies base physical address and size of the registers. 7- reg : Specifies base physical address and size of the registers.
8 8
9Example: 9Example:
10 10
11wdt: watchdog@01c20c90 { 11wdt: watchdog@01c20c90 {
12 compatible = "allwinner,sun4i-wdt"; 12 compatible = "allwinner,sun4i-a10-wdt";
13 reg = <0x01c20c90 0x10>; 13 reg = <0x01c20c90 0x10>;
14}; 14};
diff --git a/Documentation/fmc/fmc-write-eeprom.txt b/Documentation/fmc/fmc-write-eeprom.txt
index 44a3bc678bf0..e0a9712156aa 100644
--- a/Documentation/fmc/fmc-write-eeprom.txt
+++ b/Documentation/fmc/fmc-write-eeprom.txt
@@ -9,7 +9,12 @@ Overwriting the EEPROM is not something you should do daily, and it is
9expected to only happen during manufacturing. For this reason, the 9expected to only happen during manufacturing. For this reason, the
10module makes it unlikely for the random user to change a working EEPROM. 10module makes it unlikely for the random user to change a working EEPROM.
11 11
12The module takes the following measures: 12However, since the EEPROM may include application-specific information
13other than the identification, later versions of this packages added
14write-support through sysfs. See *note Accessing the EEPROM::.
15
16To avoid damaging the EEPROM content, the module takes the following
17measures:
13 18
14 * It accepts a `file=' argument (within /lib/firmware) and if no 19 * It accepts a `file=' argument (within /lib/firmware) and if no
15 such argument is received, it doesn't write anything to EEPROM 20 such argument is received, it doesn't write anything to EEPROM
@@ -70,56 +75,24 @@ first time.
70 [ 132.899872] fake-fmc: Product name: FmcDelay1ns4cha 75 [ 132.899872] fake-fmc: Product name: FmcDelay1ns4cha
71 76
72 77
73Writing to the EEPROM 78Accessing the EEPROM
74===================== 79=====================
75 80
76Once you have created a binary file for your EEPROM, you can write it 81The bus creates a sysfs binary file called eeprom for each mezzanine it
77to the storage medium using the fmc-write-eeprom (See *note 82knows about:
78fmc-write-eeprom::, while relying on a carrier driver. The procedure 83
79here shown here uses the SPEC driver 84 spusa.root# cd /sys/bus/fmc/devices; ls -l */eeprom
80(`http://www.ohwr.org/projects/spec-sw'). 85 -r--r--r-- 1 root root 8192 Feb 21 12:30 FmcAdc100m14b4cha-0800/eeprom
81 86 -r--r--r-- 1 root root 8192 Feb 21 12:30 FmcDelay1ns4cha-0200/eeprom
82The example assumes no driver is already loaded (actually, I unloaded 87 -r--r--r-- 1 root root 8192 Feb 21 12:30 FmcDio5cha-0400/eeprom
83them by hand as everything loads automatically at boot time after you 88
84installed the modules), and shows kernel messages together with 89Everybody can read the files and the superuser can also modify it, but
85commands. Here the prompt is spusa.root# and two SPEC cards are plugged 90the operation may on the carrier driver, if the carrier is unable to
86in the system. 91access the I2C bus. For example, the spec driver can access the bus
87 92only with its golden gateware: after a mezzanine driver reprogrammed
88 spusa.root# insmod fmc.ko 93the FPGA with a custom circuit, the carrier is unable to access the
89 spusa.root# insmod spec.ko 94EEPROM and returns ENOTSUPP.
90 [13972.382818] spec 0000:02:00.0: probe for device 0002:0000 95
91 [13972.392773] spec 0000:02:00.0: got file "fmc/spec-init.bin", 1484404 (0x16a674) bytes 96An alternative way to write the EEPROM is the mezzanine driver
92 [13972.591388] spec 0000:02:00.0: FPGA programming successful 97fmc-write-eeprom (See *note fmc-write-eeprom::), but the procedure is
93 [13972.883011] spec 0000:02:00.0: EEPROM has no FRU information 98more complex.
94 [13972.888719] spec 0000:02:00.0: No device_id filled, using index
95 [13972.894676] spec 0000:02:00.0: No mezzanine_name found
96 [13972.899863] /home/rubini/wip/spec-sw/kernel/spec-gpio.c - spec_gpio_init
97 [13972.906578] spec 0000:04:00.0: probe for device 0004:0000
98 [13972.916509] spec 0000:04:00.0: got file "fmc/spec-init.bin", 1484404 (0x16a674) bytes
99 [13973.115096] spec 0000:04:00.0: FPGA programming successful
100 [13973.401798] spec 0000:04:00.0: EEPROM has no FRU information
101 [13973.407474] spec 0000:04:00.0: No device_id filled, using index
102 [13973.413417] spec 0000:04:00.0: No mezzanine_name found
103 [13973.418600] /home/rubini/wip/spec-sw/kernel/spec-gpio.c - spec_gpio_init
104 spusa.root# ls /sys/bus/fmc/devices
105 fmc-0000 fmc-0001
106 spusa.root# insmod fmc-write-eeprom.ko busid=0x0200 file=fdelay-eeprom.bin
107 [14103.966259] spec 0000:02:00.0: Matching an generic driver (no ID)
108 [14103.975519] spec 0000:02:00.0: programming 6155 bytes
109 [14126.373762] spec 0000:02:00.0: write_eeprom: success
110 [14126.378770] spec 0000:04:00.0: Matching an generic driver (no ID)
111 [14126.384903] spec 0000:04:00.0: fmc_write_eeprom: no filename given: not programming
112 [14126.392600] fmc_write_eeprom: probe of fmc-0001 failed with error -2
113
114Reading back the EEPROM
115=======================
116
117In order to read back the binary content of the EEPROM of your
118mezzanine device, the bus creates a read-only sysfs file called eeprom
119for each mezzanine it knows about:
120
121 spusa.root# cd /sys/bus/fmc/devices; ls -l */eeprom
122 -r--r--r-- 1 root root 8192 Apr 9 16:53 FmcDelay1ns4cha-f001/eeprom
123 -r--r--r-- 1 root root 8192 Apr 9 17:19 fake-design-for-testing-f002/eeprom
124 -r--r--r-- 1 root root 8192 Apr 9 17:19 fake-design-for-testing-f003/eeprom
125 -r--r--r-- 1 root root 8192 Apr 9 17:19 fmc-f004/eeprom
diff --git a/Documentation/hwmon/adc128d818 b/Documentation/hwmon/adc128d818
new file mode 100644
index 000000000000..39c95004dabc
--- /dev/null
+++ b/Documentation/hwmon/adc128d818
@@ -0,0 +1,47 @@
1Kernel driver adc128d818
2========================
3
4Supported chips:
5 * Texas Instruments ADC818D818
6 Prefix: 'adc818d818'
7 Addresses scanned: I2C 0x1d, 0x1e, 0x1f, 0x2d, 0x2e, 0x2f
8 Datasheet: Publicly available at the TI website
9 http://www.ti.com/
10
11Author: Guenter Roeck
12
13Description
14-----------
15
16This driver implements support for the Texas Instruments ADC128D818.
17It is described as 'ADC System Monitor with Temperature Sensor'.
18
19The ADC128D818 implements one temperature sensor and seven voltage sensors.
20
21Temperatures are measured in degrees Celsius. There is one set of limits.
22When the HOT Temperature Limit is crossed, this will cause an alarm that will
23be reasserted until the temperature drops below the HOT Hysteresis.
24Measurements are guaranteed between -55 and +125 degrees. The temperature
25measurement has a resolution of 0.5 degrees; the limits have a resolution
26of 1 degree.
27
28Voltage sensors (also known as IN sensors) report their values in volts.
29An alarm is triggered if the voltage has crossed a programmable minimum
30or maximum limit. Note that minimum in this case always means 'closest to
31zero'; this is important for negative voltage measurements. All voltage
32inputs can measure voltages between 0 and 2.55 volts, with a resolution
33of 0.625 mV.
34
35If an alarm triggers, it will remain triggered until the hardware register
36is read at least once. This means that the cause for the alarm may
37already have disappeared by the time the alarm is read. The driver
38caches the alarm status for each sensor until it is at least reported
39once, to ensure that alarms are reported to user space.
40
41The ADC128D818 only updates its values approximately once per second;
42reading it more often will do no harm, but will return 'old' values.
43
44In addition to the scanned address list, the chip can also be configured for
45addresses 0x35 to 0x37. Those addresses are not scanned. You have to instantiate
46the driver explicitly if the chip is configured for any of those addresses in
47your system.
diff --git a/Documentation/hwmon/lm95245 b/Documentation/hwmon/lm95245
index cbd8aeab7124..77eaf2812d25 100644
--- a/Documentation/hwmon/lm95245
+++ b/Documentation/hwmon/lm95245
@@ -24,8 +24,12 @@ is given within a range of -127 to +127.875 degrees. Remote temperatures are
24given within a range of -127 to +255 degrees. Resolution depends on 24given within a range of -127 to +255 degrees. Resolution depends on
25temperature input and range. 25temperature input and range.
26 26
27Each sensor has its own critical limit, but the hysteresis is common to all 27Each sensor has its own critical limit. Additionally, there is a relative
28two channels. 28hysteresis value common to both critical limits. To make life easier to
29user-space applications, two absolute values are exported, one for each
30channel, but these values are of course linked. Only the local hysteresis
31can be set from user-space, and the same delta applies to the remote
32hysteresis.
29 33
30The lm95245 driver can change its update interval to a fixed set of values. 34The lm95245 driver can change its update interval to a fixed set of values.
31It will round up to the next selectable interval. See the datasheet for exact 35It will round up to the next selectable interval. See the datasheet for exact
diff --git a/Documentation/hwmon/ltc2945 b/Documentation/hwmon/ltc2945
new file mode 100644
index 000000000000..f8d0f7f19adb
--- /dev/null
+++ b/Documentation/hwmon/ltc2945
@@ -0,0 +1,84 @@
1Kernel driver ltc2945
2=====================
3
4Supported chips:
5 * Linear Technology LTC2945
6 Prefix: 'ltc2945'
7 Addresses scanned: -
8 Datasheet:
9 http://cds.linear.com/docs/en/datasheet/2945fa.pdf
10
11Author: Guenter Roeck <linux@roeck-us.net>
12
13
14Description
15-----------
16
17The LTC2945 is a rail-to-rail system monitor that measures current, voltage,
18and power consumption.
19
20
21Usage Notes
22-----------
23
24This driver does not probe for LTC2945 devices, since there is no register
25which can be safely used to identify the chip. You will have to instantiate
26the devices explicitly.
27
28Example: the following will load the driver for an LTC2945 at address 0x10
29on I2C bus #1:
30$ modprobe ltc2945
31$ echo ltc2945 0x10 > /sys/bus/i2c/devices/i2c-1/new_device
32
33
34Sysfs entries
35-------------
36
37Voltage readings provided by this driver are reported as obtained from the ADC
38registers. If a set of voltage divider resistors is installed, calculate the
39real voltage by multiplying the reported value with (R1+R2)/R2, where R1 is the
40value of the divider resistor against the measured voltage and R2 is the value
41of the divider resistor against Ground.
42
43Current reading provided by this driver is reported as obtained from the ADC
44Current Sense register. The reported value assumes that a 1 mOhm sense resistor
45is installed. If a different sense resistor is installed, calculate the real
46current by dividing the reported value by the sense resistor value in mOhm.
47
48in1_input VIN voltage (mV). Voltage is measured either at
49 SENSE+ or VDD pin depending on chip configuration.
50in1_min Undervoltage threshold
51in1_max Overvoltage threshold
52in1_lowest Lowest measured voltage
53in1_highest Highest measured voltage
54in1_reset_history Write 1 to reset in1 history
55in1_min_alarm Undervoltage alarm
56in1_max_alarm Overvoltage alarm
57
58in2_input ADIN voltage (mV)
59in2_min Undervoltage threshold
60in2_max Overvoltage threshold
61in2_lowest Lowest measured voltage
62in2_highest Highest measured voltage
63in2_reset_history Write 1 to reset in2 history
64in2_min_alarm Undervoltage alarm
65in2_max_alarm Overvoltage alarm
66
67curr1_input SENSE current (mA)
68curr1_min Undercurrent threshold
69curr1_max Overcurrent threshold
70curr1_lowest Lowest measured current
71curr1_highest Highest measured current
72curr1_reset_history Write 1 to reset curr1 history
73curr1_min_alarm Undercurrent alarm
74curr1_max_alarm Overcurrent alarm
75
76power1_input Power (in uW). Power is calculated based on SENSE+/VDD
77 voltage or ADIN voltage depending on chip configuration.
78power1_min Low lower threshold
79power1_max High power threshold
80power1_input_lowest Historical minimum power use
81power1_input_highest Historical maximum power use
82power1_reset_history Write 1 to reset power1 history
83power1_min_alarm Low power alarm
84power1_max_alarm High power alarm
diff --git a/Documentation/hwmon/ltc2978 b/Documentation/hwmon/ltc2978
index a0546fc42273..686c078bb0e0 100644
--- a/Documentation/hwmon/ltc2978
+++ b/Documentation/hwmon/ltc2978
@@ -23,6 +23,10 @@ Supported chips:
23 Prefix: 'ltc3883' 23 Prefix: 'ltc3883'
24 Addresses scanned: - 24 Addresses scanned: -
25 Datasheet: http://www.linear.com/product/ltc3883 25 Datasheet: http://www.linear.com/product/ltc3883
26 * Linear Technology LTM4676
27 Prefix: 'ltm4676'
28 Addresses scanned: -
29 Datasheet: http://www.linear.com/product/ltm4676
26 30
27Author: Guenter Roeck <linux@roeck-us.net> 31Author: Guenter Roeck <linux@roeck-us.net>
28 32
@@ -33,7 +37,8 @@ Description
33LTC2974 is a quad digital power supply manager. LTC2978 is an octal power supply 37LTC2974 is a quad digital power supply manager. LTC2978 is an octal power supply
34monitor. LTC2977 is a pin compatible replacement for LTC2978. LTC3880 is a dual 38monitor. LTC2977 is a pin compatible replacement for LTC2978. LTC3880 is a dual
35output poly-phase step-down DC/DC controller. LTC3883 is a single phase 39output poly-phase step-down DC/DC controller. LTC3883 is a single phase
36step-down DC/DC controller. 40step-down DC/DC controller. LTM4676 is a dual 13A or single 26A uModule
41regulator.
37 42
38 43
39Usage Notes 44Usage Notes
@@ -75,7 +80,7 @@ in[N]_label "vout[1-8]".
75 LTC2974: N=2-5 80 LTC2974: N=2-5
76 LTC2977: N=2-9 81 LTC2977: N=2-9
77 LTC2978: N=2-9 82 LTC2978: N=2-9
78 LTC3880: N=2-3 83 LTC3880, LTM4676: N=2-3
79 LTC3883: N=2 84 LTC3883: N=2
80in[N]_input Measured output voltage. 85in[N]_input Measured output voltage.
81in[N]_min Minimum output voltage. 86in[N]_min Minimum output voltage.
@@ -95,7 +100,7 @@ temp[N]_input Measured temperature.
95 and temp5 reports the chip temperature. 100 and temp5 reports the chip temperature.
96 On LTC2977 and LTC2978, only one temperature measurement 101 On LTC2977 and LTC2978, only one temperature measurement
97 is supported and reports the chip temperature. 102 is supported and reports the chip temperature.
98 On LTC3880, temp1 and temp2 report external 103 On LTC3880 and LTM4676, temp1 and temp2 report external
99 temperatures, and temp3 reports the chip temperature. 104 temperatures, and temp3 reports the chip temperature.
100 On LTC3883, temp1 reports an external temperature, 105 On LTC3883, temp1 reports an external temperature,
101 and temp2 reports the chip temperature. 106 and temp2 reports the chip temperature.
@@ -123,11 +128,11 @@ power[N]_label "pout[1-4]".
123 LTC2974: N=1-4 128 LTC2974: N=1-4
124 LTC2977: Not supported 129 LTC2977: Not supported
125 LTC2978: Not supported 130 LTC2978: Not supported
126 LTC3880: N=1-2 131 LTC3880, LTM4676: N=1-2
127 LTC3883: N=2 132 LTC3883: N=2
128power[N]_input Measured output power. 133power[N]_input Measured output power.
129 134
130curr1_label "iin". LTC3880 and LTC3883 only. 135curr1_label "iin". LTC3880, LTC3883, and LTM4676 only.
131curr1_input Measured input current. 136curr1_input Measured input current.
132curr1_max Maximum input current. 137curr1_max Maximum input current.
133curr1_max_alarm Input current high alarm. 138curr1_max_alarm Input current high alarm.
@@ -138,7 +143,7 @@ curr[N]_label "iout[1-4]".
138 LTC2974: N=1-4 143 LTC2974: N=1-4
139 LTC2977: not supported 144 LTC2977: not supported
140 LTC2978: not supported 145 LTC2978: not supported
141 LTC3880: N=2-3 146 LTC3880, LTM4676: N=2-3
142 LTC3883: N=2 147 LTC3883: N=2
143curr[N]_input Measured output current. 148curr[N]_input Measured output current.
144curr[N]_max Maximum output current. 149curr[N]_max Maximum output current.
diff --git a/Documentation/hwmon/ltc4260 b/Documentation/hwmon/ltc4260
new file mode 100644
index 000000000000..c4ff4ad998b2
--- /dev/null
+++ b/Documentation/hwmon/ltc4260
@@ -0,0 +1,56 @@
1Kernel driver ltc4260
2=====================
3
4Supported chips:
5 * Linear Technology LTC4260
6 Prefix: 'ltc4260'
7 Addresses scanned: -
8 Datasheet:
9 http://cds.linear.com/docs/en/datasheet/4260fc.pdf
10
11Author: Guenter Roeck <linux@roeck-us.net>
12
13
14Description
15-----------
16
17The LTC4260 Hot Swap controller allows a board to be safely inserted
18and removed from a live backplane.
19
20
21Usage Notes
22-----------
23
24This driver does not probe for LTC4260 devices, since there is no register
25which can be safely used to identify the chip. You will have to instantiate
26the devices explicitly.
27
28Example: the following will load the driver for an LTC4260 at address 0x10
29on I2C bus #1:
30$ modprobe ltc4260
31$ echo ltc4260 0x10 > /sys/bus/i2c/devices/i2c-1/new_device
32
33
34Sysfs entries
35-------------
36
37Voltage readings provided by this driver are reported as obtained from the ADC
38registers. If a set of voltage divider resistors is installed, calculate the
39real voltage by multiplying the reported value with (R1+R2)/R2, where R1 is the
40value of the divider resistor against the measured voltage and R2 is the value
41of the divider resistor against Ground.
42
43Current reading provided by this driver is reported as obtained from the ADC
44Current Sense register. The reported value assumes that a 1 mOhm sense resistor
45is installed. If a different sense resistor is installed, calculate the real
46current by dividing the reported value by the sense resistor value in mOhm.
47
48in1_input SOURCE voltage (mV)
49in1_min_alarm Undervoltage alarm
50in1_max_alarm Overvoltage alarm
51
52in2_input ADIN voltage (mV)
53in2_alarm Power bad alarm
54
55curr1_input SENSE current (mA)
56curr1_alarm SENSE overcurrent alarm
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 7116fda7077f..bc3478581f67 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -229,8 +229,24 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
229 use by PCI 229 use by PCI
230 Format: <irq>,<irq>... 230 Format: <irq>,<irq>...
231 231
232 acpi_no_auto_serialize [HW,ACPI]
233 Disable auto-serialization of AML methods
234 AML control methods that contain the opcodes to create
235 named objects will be marked as "Serialized" by the
236 auto-serialization feature.
237 This feature is enabled by default.
238 This option allows to turn off the feature.
239
232 acpi_no_auto_ssdt [HW,ACPI] Disable automatic loading of SSDT 240 acpi_no_auto_ssdt [HW,ACPI] Disable automatic loading of SSDT
233 241
242 acpica_no_return_repair [HW, ACPI]
243 Disable AML predefined validation mechanism
244 This mechanism can repair the evaluation result to make
245 the return objects more ACPI specification compliant.
246 This option is useful for developers to identify the
247 root cause of an AML interpreter issue when the issue
248 has something to do with the repair mechanism.
249
234 acpi_os_name= [HW,ACPI] Tell ACPI BIOS the name of the OS 250 acpi_os_name= [HW,ACPI] Tell ACPI BIOS the name of the OS
235 Format: To spoof as Windows 98: ="Microsoft Windows" 251 Format: To spoof as Windows 98: ="Microsoft Windows"
236 252
@@ -298,8 +314,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
298 acpi_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode 314 acpi_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode
299 Format: { level | edge | high | low } 315 Format: { level | edge | high | low }
300 316
301 acpi_serialize [HW,ACPI] force serialization of AML methods
302
303 acpi_skip_timer_override [HW,ACPI] 317 acpi_skip_timer_override [HW,ACPI]
304 Recognize and ignore IRQ0/pin2 Interrupt Override. 318 Recognize and ignore IRQ0/pin2 Interrupt Override.
305 For broken nForce2 BIOS resulting in XT-PIC timer. 319 For broken nForce2 BIOS resulting in XT-PIC timer.
@@ -1011,6 +1025,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
1011 parameter will force ia64_sal_cache_flush to call 1025 parameter will force ia64_sal_cache_flush to call
1012 ia64_pal_cache_flush instead of SAL_CACHE_FLUSH. 1026 ia64_pal_cache_flush instead of SAL_CACHE_FLUSH.
1013 1027
1028 forcepae [X86-32]
1029 Forcefully enable Physical Address Extension (PAE).
1030 Many Pentium M systems disable PAE but may have a
1031 functionally usable PAE implementation.
1032 Warning: use of this parameter will taint the kernel
1033 and may cause unknown problems.
1034
1014 ftrace=[tracer] 1035 ftrace=[tracer]
1015 [FTRACE] will set and start the specified tracer 1036 [FTRACE] will set and start the specified tracer
1016 as early as possible in order to facilitate early 1037 as early as possible in order to facilitate early
@@ -2053,8 +2074,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
2053 IOAPICs that may be present in the system. 2074 IOAPICs that may be present in the system.
2054 2075
2055 nokaslr [X86] 2076 nokaslr [X86]
2056 Disable kernel base offset ASLR (Address Space 2077 Disable kernel and module base offset ASLR (Address
2057 Layout Randomization) if built into the kernel. 2078 Space Layout Randomization) if built into the kernel.
2058 2079
2059 noautogroup Disable scheduler automatic task group creation. 2080 noautogroup Disable scheduler automatic task group creation.
2060 2081
@@ -3409,14 +3430,24 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
3409 of CONFIG_HIGHPTE. 3430 of CONFIG_HIGHPTE.
3410 3431
3411 vdso= [X86,SH] 3432 vdso= [X86,SH]
3412 vdso=2: enable compat VDSO (default with COMPAT_VDSO) 3433 On X86_32, this is an alias for vdso32=. Otherwise:
3413 vdso=1: enable VDSO (default) 3434
3435 vdso=1: enable VDSO (the default)
3414 vdso=0: disable VDSO mapping 3436 vdso=0: disable VDSO mapping
3415 3437
3416 vdso32= [X86] 3438 vdso32= [X86] Control the 32-bit vDSO
3417 vdso32=2: enable compat VDSO (default with COMPAT_VDSO) 3439 vdso32=1: enable 32-bit VDSO
3418 vdso32=1: enable 32-bit VDSO (default) 3440 vdso32=0 or vdso32=2: disable 32-bit VDSO
3419 vdso32=0: disable 32-bit VDSO mapping 3441
3442 See the help text for CONFIG_COMPAT_VDSO for more
3443 details. If CONFIG_COMPAT_VDSO is set, the default is
3444 vdso32=0; otherwise, the default is vdso32=1.
3445
3446 For compatibility with older kernels, vdso32=2 is an
3447 alias for vdso32=0.
3448
3449 Try vdso32=0 if you encounter an error that says:
3450 dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso' failed!
3420 3451
3421 vector= [IA-64,SMP] 3452 vector= [IA-64,SMP]
3422 vector=percpu: enable percpu vector domain 3453 vector=percpu: enable percpu vector domain
diff --git a/Documentation/kernel-per-CPU-kthreads.txt b/Documentation/kernel-per-CPU-kthreads.txt
index 827104fb9364..f3cd299fcc41 100644
--- a/Documentation/kernel-per-CPU-kthreads.txt
+++ b/Documentation/kernel-per-CPU-kthreads.txt
@@ -162,7 +162,18 @@ Purpose: Execute workqueue requests
162To reduce its OS jitter, do any of the following: 162To reduce its OS jitter, do any of the following:
1631. Run your workload at a real-time priority, which will allow 1631. Run your workload at a real-time priority, which will allow
164 preempting the kworker daemons. 164 preempting the kworker daemons.
1652. Do any of the following needed to avoid jitter that your 1652. A given workqueue can be made visible in the sysfs filesystem
166 by passing the WQ_SYSFS to that workqueue's alloc_workqueue().
167 Such a workqueue can be confined to a given subset of the
168 CPUs using the /sys/devices/virtual/workqueue/*/cpumask sysfs
169 files. The set of WQ_SYSFS workqueues can be displayed using
170 "ls sys/devices/virtual/workqueue". That said, the workqueues
171 maintainer would like to caution people against indiscriminately
172 sprinkling WQ_SYSFS across all the workqueues. The reason for
173 caution is that it is easy to add WQ_SYSFS, but because sysfs is
174 part of the formal user/kernel API, it can be nearly impossible
175 to remove it, even if its addition was a mistake.
1763. Do any of the following needed to avoid jitter that your
166 application cannot tolerate: 177 application cannot tolerate:
167 a. Build your kernel with CONFIG_SLUB=y rather than 178 a. Build your kernel with CONFIG_SLUB=y rather than
168 CONFIG_SLAB=y, thus avoiding the slab allocator's periodic 179 CONFIG_SLAB=y, thus avoiding the slab allocator's periodic
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt
index ddd2e0d1febc..556f951f8626 100644
--- a/Documentation/memory-barriers.txt
+++ b/Documentation/memory-barriers.txt
@@ -608,26 +608,30 @@ as follows:
608 b = p; /* BUG: Compiler can reorder!!! */ 608 b = p; /* BUG: Compiler can reorder!!! */
609 do_something(); 609 do_something();
610 610
611The solution is again ACCESS_ONCE(), which preserves the ordering between 611The solution is again ACCESS_ONCE() and barrier(), which preserves the
612the load from variable 'a' and the store to variable 'b': 612ordering between the load from variable 'a' and the store to variable 'b':
613 613
614 q = ACCESS_ONCE(a); 614 q = ACCESS_ONCE(a);
615 if (q) { 615 if (q) {
616 barrier();
616 ACCESS_ONCE(b) = p; 617 ACCESS_ONCE(b) = p;
617 do_something(); 618 do_something();
618 } else { 619 } else {
620 barrier();
619 ACCESS_ONCE(b) = p; 621 ACCESS_ONCE(b) = p;
620 do_something_else(); 622 do_something_else();
621 } 623 }
622 624
623You could also use barrier() to prevent the compiler from moving 625The initial ACCESS_ONCE() is required to prevent the compiler from
624the stores to variable 'b', but barrier() would not prevent the 626proving the value of 'a', and the pair of barrier() invocations are
625compiler from proving to itself that a==1 always, so ACCESS_ONCE() 627required to prevent the compiler from pulling the two identical stores
626is also needed. 628to 'b' out from the legs of the "if" statement.
627 629
628It is important to note that control dependencies absolutely require a 630It is important to note that control dependencies absolutely require a
629a conditional. For example, the following "optimized" version of 631a conditional. For example, the following "optimized" version of
630the above example breaks ordering: 632the above example breaks ordering, which is why the barrier() invocations
633are absolutely required if you have identical stores in both legs of
634the "if" statement:
631 635
632 q = ACCESS_ONCE(a); 636 q = ACCESS_ONCE(a);
633 ACCESS_ONCE(b) = p; /* BUG: No ordering vs. load from a!!! */ 637 ACCESS_ONCE(b) = p; /* BUG: No ordering vs. load from a!!! */
@@ -643,9 +647,11 @@ It is of course legal for the prior load to be part of the conditional,
643for example, as follows: 647for example, as follows:
644 648
645 if (ACCESS_ONCE(a) > 0) { 649 if (ACCESS_ONCE(a) > 0) {
650 barrier();
646 ACCESS_ONCE(b) = q / 2; 651 ACCESS_ONCE(b) = q / 2;
647 do_something(); 652 do_something();
648 } else { 653 } else {
654 barrier();
649 ACCESS_ONCE(b) = q / 3; 655 ACCESS_ONCE(b) = q / 3;
650 do_something_else(); 656 do_something_else();
651 } 657 }
@@ -659,9 +665,11 @@ the needed conditional. For example:
659 665
660 q = ACCESS_ONCE(a); 666 q = ACCESS_ONCE(a);
661 if (q % MAX) { 667 if (q % MAX) {
668 barrier();
662 ACCESS_ONCE(b) = p; 669 ACCESS_ONCE(b) = p;
663 do_something(); 670 do_something();
664 } else { 671 } else {
672 barrier();
665 ACCESS_ONCE(b) = p; 673 ACCESS_ONCE(b) = p;
666 do_something_else(); 674 do_something_else();
667 } 675 }
@@ -723,8 +731,13 @@ In summary:
723 use smb_rmb(), smp_wmb(), or, in the case of prior stores and 731 use smb_rmb(), smp_wmb(), or, in the case of prior stores and
724 later loads, smp_mb(). 732 later loads, smp_mb().
725 733
734 (*) If both legs of the "if" statement begin with identical stores
735 to the same variable, a barrier() statement is required at the
736 beginning of each leg of the "if" statement.
737
726 (*) Control dependencies require at least one run-time conditional 738 (*) Control dependencies require at least one run-time conditional
727 between the prior load and the subsequent store. If the compiler 739 between the prior load and the subsequent store, and this
740 conditional must involve the prior load. If the compiler
728 is able to optimize the conditional away, it will have also 741 is able to optimize the conditional away, it will have also
729 optimized away the ordering. Careful use of ACCESS_ONCE() can 742 optimized away the ordering. Careful use of ACCESS_ONCE() can
730 help to preserve the needed conditional. 743 help to preserve the needed conditional.
@@ -1249,6 +1262,23 @@ The ACCESS_ONCE() function can prevent any number of optimizations that,
1249while perfectly safe in single-threaded code, can be fatal in concurrent 1262while perfectly safe in single-threaded code, can be fatal in concurrent
1250code. Here are some examples of these sorts of optimizations: 1263code. Here are some examples of these sorts of optimizations:
1251 1264
1265 (*) The compiler is within its rights to reorder loads and stores
1266 to the same variable, and in some cases, the CPU is within its
1267 rights to reorder loads to the same variable. This means that
1268 the following code:
1269
1270 a[0] = x;
1271 a[1] = x;
1272
1273 Might result in an older value of x stored in a[1] than in a[0].
1274 Prevent both the compiler and the CPU from doing this as follows:
1275
1276 a[0] = ACCESS_ONCE(x);
1277 a[1] = ACCESS_ONCE(x);
1278
1279 In short, ACCESS_ONCE() provides cache coherence for accesses from
1280 multiple CPUs to a single variable.
1281
1252 (*) The compiler is within its rights to merge successive loads from 1282 (*) The compiler is within its rights to merge successive loads from
1253 the same variable. Such merging can cause the compiler to "optimize" 1283 the same variable. Such merging can cause the compiler to "optimize"
1254 the following code: 1284 the following code:
@@ -1644,12 +1674,12 @@ for each construct. These operations all imply certain barriers:
1644 Memory operations issued after the ACQUIRE will be completed after the 1674 Memory operations issued after the ACQUIRE will be completed after the
1645 ACQUIRE operation has completed. 1675 ACQUIRE operation has completed.
1646 1676
1647 Memory operations issued before the ACQUIRE may be completed after the 1677 Memory operations issued before the ACQUIRE may be completed after
1648 ACQUIRE operation has completed. An smp_mb__before_spinlock(), combined 1678 the ACQUIRE operation has completed. An smp_mb__before_spinlock(),
1649 with a following ACQUIRE, orders prior loads against subsequent stores and 1679 combined with a following ACQUIRE, orders prior loads against
1650 stores and prior stores against subsequent stores. Note that this is 1680 subsequent loads and stores and also orders prior stores against
1651 weaker than smp_mb()! The smp_mb__before_spinlock() primitive is free on 1681 subsequent stores. Note that this is weaker than smp_mb()! The
1652 many architectures. 1682 smp_mb__before_spinlock() primitive is free on many architectures.
1653 1683
1654 (2) RELEASE operation implication: 1684 (2) RELEASE operation implication:
1655 1685
@@ -1694,24 +1724,21 @@ may occur as:
1694 1724
1695 ACQUIRE M, STORE *B, STORE *A, RELEASE M 1725 ACQUIRE M, STORE *B, STORE *A, RELEASE M
1696 1726
1697This same reordering can of course occur if the lock's ACQUIRE and RELEASE are 1727When the ACQUIRE and RELEASE are a lock acquisition and release,
1698to the same lock variable, but only from the perspective of another CPU not 1728respectively, this same reordering can occur if the lock's ACQUIRE and
1699holding that lock. 1729RELEASE are to the same lock variable, but only from the perspective of
1700 1730another CPU not holding that lock. In short, a ACQUIRE followed by an
1701In short, a RELEASE followed by an ACQUIRE may -not- be assumed to be a full 1731RELEASE may -not- be assumed to be a full memory barrier.
1702memory barrier because it is possible for a preceding RELEASE to pass a 1732
1703later ACQUIRE from the viewpoint of the CPU, but not from the viewpoint 1733Similarly, the reverse case of a RELEASE followed by an ACQUIRE does not
1704of the compiler. Note that deadlocks cannot be introduced by this 1734imply a full memory barrier. If it is necessary for a RELEASE-ACQUIRE
1705interchange because if such a deadlock threatened, the RELEASE would 1735pair to produce a full barrier, the ACQUIRE can be followed by an
1706simply complete. 1736smp_mb__after_unlock_lock() invocation. This will produce a full barrier
1707 1737if either (a) the RELEASE and the ACQUIRE are executed by the same
1708If it is necessary for a RELEASE-ACQUIRE pair to produce a full barrier, the 1738CPU or task, or (b) the RELEASE and ACQUIRE act on the same variable.
1709ACQUIRE can be followed by an smp_mb__after_unlock_lock() invocation. This 1739The smp_mb__after_unlock_lock() primitive is free on many architectures.
1710will produce a full barrier if either (a) the RELEASE and the ACQUIRE are 1740Without smp_mb__after_unlock_lock(), the CPU's execution of the critical
1711executed by the same CPU or task, or (b) the RELEASE and ACQUIRE act on the 1741sections corresponding to the RELEASE and the ACQUIRE can cross, so that:
1712same variable. The smp_mb__after_unlock_lock() primitive is free on many
1713architectures. Without smp_mb__after_unlock_lock(), the critical sections
1714corresponding to the RELEASE and the ACQUIRE can cross:
1715 1742
1716 *A = a; 1743 *A = a;
1717 RELEASE M 1744 RELEASE M
@@ -1722,7 +1749,36 @@ could occur as:
1722 1749
1723 ACQUIRE N, STORE *B, STORE *A, RELEASE M 1750 ACQUIRE N, STORE *B, STORE *A, RELEASE M
1724 1751
1725With smp_mb__after_unlock_lock(), they cannot, so that: 1752It might appear that this reordering could introduce a deadlock.
1753However, this cannot happen because if such a deadlock threatened,
1754the RELEASE would simply complete, thereby avoiding the deadlock.
1755
1756 Why does this work?
1757
1758 One key point is that we are only talking about the CPU doing
1759 the reordering, not the compiler. If the compiler (or, for
1760 that matter, the developer) switched the operations, deadlock
1761 -could- occur.
1762
1763 But suppose the CPU reordered the operations. In this case,
1764 the unlock precedes the lock in the assembly code. The CPU
1765 simply elected to try executing the later lock operation first.
1766 If there is a deadlock, this lock operation will simply spin (or
1767 try to sleep, but more on that later). The CPU will eventually
1768 execute the unlock operation (which preceded the lock operation
1769 in the assembly code), which will unravel the potential deadlock,
1770 allowing the lock operation to succeed.
1771
1772 But what if the lock is a sleeplock? In that case, the code will
1773 try to enter the scheduler, where it will eventually encounter
1774 a memory barrier, which will force the earlier unlock operation
1775 to complete, again unraveling the deadlock. There might be
1776 a sleep-unlock race, but the locking primitive needs to resolve
1777 such races properly in any case.
1778
1779With smp_mb__after_unlock_lock(), the two critical sections cannot overlap.
1780For example, with the following code, the store to *A will always be
1781seen by other CPUs before the store to *B:
1726 1782
1727 *A = a; 1783 *A = a;
1728 RELEASE M 1784 RELEASE M
@@ -1730,13 +1786,18 @@ With smp_mb__after_unlock_lock(), they cannot, so that:
1730 smp_mb__after_unlock_lock(); 1786 smp_mb__after_unlock_lock();
1731 *B = b; 1787 *B = b;
1732 1788
1733will always occur as either of the following: 1789The operations will always occur in one of the following orders:
1734 1790
1735 STORE *A, RELEASE, ACQUIRE, STORE *B 1791 STORE *A, RELEASE, ACQUIRE, smp_mb__after_unlock_lock(), STORE *B
1736 STORE *A, ACQUIRE, RELEASE, STORE *B 1792 STORE *A, ACQUIRE, RELEASE, smp_mb__after_unlock_lock(), STORE *B
1793 ACQUIRE, STORE *A, RELEASE, smp_mb__after_unlock_lock(), STORE *B
1737 1794
1738If the RELEASE and ACQUIRE were instead both operating on the same lock 1795If the RELEASE and ACQUIRE were instead both operating on the same lock
1739variable, only the first of these two alternatives can occur. 1796variable, only the first of these alternatives can occur. In addition,
1797the more strongly ordered systems may rule out some of the above orders.
1798But in any case, as noted earlier, the smp_mb__after_unlock_lock()
1799ensures that the store to *A will always be seen as happening before
1800the store to *B.
1740 1801
1741Locks and semaphores may not provide any guarantee of ordering on UP compiled 1802Locks and semaphores may not provide any guarantee of ordering on UP compiled
1742systems, and so cannot be counted on in such a situation to actually achieve 1803systems, and so cannot be counted on in such a situation to actually achieve
@@ -2757,7 +2818,7 @@ in that order, but, without intervention, the sequence may have almost any
2757combination of elements combined or discarded, provided the program's view of 2818combination of elements combined or discarded, provided the program's view of
2758the world remains consistent. Note that ACCESS_ONCE() is -not- optional 2819the world remains consistent. Note that ACCESS_ONCE() is -not- optional
2759in the above example, as there are architectures where a given CPU might 2820in the above example, as there are architectures where a given CPU might
2760interchange successive loads to the same location. On such architectures, 2821reorder successive loads to the same location. On such architectures,
2761ACCESS_ONCE() does whatever is necessary to prevent this, for example, on 2822ACCESS_ONCE() does whatever is necessary to prevent this, for example, on
2762Itanium the volatile casts used by ACCESS_ONCE() cause GCC to emit the 2823Itanium the volatile casts used by ACCESS_ONCE() cause GCC to emit the
2763special ld.acq and st.rel instructions that prevent such reordering. 2824special ld.acq and st.rel instructions that prevent such reordering.
diff --git a/Documentation/networking/3c505.txt b/Documentation/networking/3c505.txt
deleted file mode 100644
index 72f38b13101d..000000000000
--- a/Documentation/networking/3c505.txt
+++ /dev/null
@@ -1,45 +0,0 @@
1The 3Com Etherlink Plus (3c505) driver.
2
3This driver now uses DMA. There is currently no support for PIO operation.
4The default DMA channel is 6; this is _not_ autoprobed, so you must
5make sure you configure it correctly. If loading the driver as a
6module, you can do this with "modprobe 3c505 dma=n". If the driver is
7linked statically into the kernel, you must either use an "ether="
8statement on the command line, or change the definition of ELP_DMA in 3c505.h.
9
10The driver will warn you if it has to fall back on the compiled in
11default DMA channel.
12
13If no base address is given at boot time, the driver will autoprobe
14ports 0x300, 0x280 and 0x310 (in that order). If no IRQ is given, the driver
15will try to probe for it.
16
17The driver can be used as a loadable module.
18
19Theoretically, one instance of the driver can now run multiple cards,
20in the standard way (when loading a module, say "modprobe 3c505
21io=0x300,0x340 irq=10,11 dma=6,7" or whatever). I have not tested
22this, though.
23
24The driver may now support revision 2 hardware; the dependency on
25being able to read the host control register has been removed. This
26is also untested, since I don't have a suitable card.
27
28Known problems:
29 I still see "DMA upload timed out" messages from time to time. These
30seem to be fairly non-fatal though.
31 The card is old and slow.
32
33To do:
34 Improve probe/setup code
35 Test multicast and promiscuous operation
36
37Authors:
38 The driver is mainly written by Craig Southeren, email
39 <craigs@ineluki.apana.org.au>.
40 Parts of the driver (adapting the driver to 1.1.4+ kernels,
41 IRQ/address detection, some changes) and this README by
42 Juha Laiho <jlaiho@ichaos.nullnet.fi>.
43 DMA mode, more fixes, etc, by Philip Blundell <pjb27@cam.ac.uk>
44 Multicard support, Software configurable DMA, etc., by
45 Christopher Collins <ccollins@pcug.org.au>
diff --git a/Documentation/networking/can.txt b/Documentation/networking/can.txt
index f3089d423515..0cbe6ec22d6f 100644
--- a/Documentation/networking/can.txt
+++ b/Documentation/networking/can.txt
@@ -554,12 +554,6 @@ solution for a couple of reasons:
554 not specified in the struct can_frame and therefore it is only valid in 554 not specified in the struct can_frame and therefore it is only valid in
555 CANFD_MTU sized CAN FD frames. 555 CANFD_MTU sized CAN FD frames.
556 556
557 As long as the payload length is <=8 the received CAN frames from CAN FD
558 capable CAN devices can be received and read by legacy sockets too. When
559 user-generated CAN FD frames have a payload length <=8 these can be send
560 by legacy CAN network interfaces too. Sending CAN FD frames with payload
561 length > 8 to a legacy CAN network interface returns an -EMSGSIZE error.
562
563 Implementation hint for new CAN applications: 557 Implementation hint for new CAN applications:
564 558
565 To build a CAN FD aware application use struct canfd_frame as basic CAN 559 To build a CAN FD aware application use struct canfd_frame as basic CAN
diff --git a/Documentation/networking/netlink_mmap.txt b/Documentation/networking/netlink_mmap.txt
index b26122973525..c6af4bac5aa8 100644
--- a/Documentation/networking/netlink_mmap.txt
+++ b/Documentation/networking/netlink_mmap.txt
@@ -226,9 +226,9 @@ Ring setup:
226 void *rx_ring, *tx_ring; 226 void *rx_ring, *tx_ring;
227 227
228 /* Configure ring parameters */ 228 /* Configure ring parameters */
229 if (setsockopt(fd, NETLINK_RX_RING, &req, sizeof(req)) < 0) 229 if (setsockopt(fd, SOL_NETLINK, NETLINK_RX_RING, &req, sizeof(req)) < 0)
230 exit(1); 230 exit(1);
231 if (setsockopt(fd, NETLINK_TX_RING, &req, sizeof(req)) < 0) 231 if (setsockopt(fd, SOL_NETLINK, NETLINK_TX_RING, &req, sizeof(req)) < 0)
232 exit(1) 232 exit(1)
233 233
234 /* Calculate size of each individual ring */ 234 /* Calculate size of each individual ring */
diff --git a/Documentation/networking/packet_mmap.txt b/Documentation/networking/packet_mmap.txt
index 1404674c0a02..6fea79efb4cb 100644
--- a/Documentation/networking/packet_mmap.txt
+++ b/Documentation/networking/packet_mmap.txt
@@ -453,7 +453,7 @@ TP_STATUS_COPY : This flag indicates that the frame (and associated
453 enabled previously with setsockopt() and 453 enabled previously with setsockopt() and
454 the PACKET_COPY_THRESH option. 454 the PACKET_COPY_THRESH option.
455 455
456 The number of frames than can be buffered to 456 The number of frames that can be buffered to
457 be read with recvfrom is limited like a normal socket. 457 be read with recvfrom is limited like a normal socket.
458 See the SO_RCVBUF option in the socket (7) man page. 458 See the SO_RCVBUF option in the socket (7) man page.
459 459
diff --git a/Documentation/networking/timestamping.txt b/Documentation/networking/timestamping.txt
index 661d3c316a17..048c92b487f6 100644
--- a/Documentation/networking/timestamping.txt
+++ b/Documentation/networking/timestamping.txt
@@ -21,26 +21,38 @@ has such a feature).
21 21
22SO_TIMESTAMPING: 22SO_TIMESTAMPING:
23 23
24Instructs the socket layer which kind of information is wanted. The 24Instructs the socket layer which kind of information should be collected
25parameter is an integer with some of the following bits set. Setting 25and/or reported. The parameter is an integer with some of the following
26other bits is an error and doesn't change the current state. 26bits set. Setting other bits is an error and doesn't change the current
27 27state.
28SOF_TIMESTAMPING_TX_HARDWARE: try to obtain send time stamp in hardware 28
29SOF_TIMESTAMPING_TX_SOFTWARE: if SOF_TIMESTAMPING_TX_HARDWARE is off or 29Four of the bits are requests to the stack to try to generate
30 fails, then do it in software 30timestamps. Any combination of them is valid.
31SOF_TIMESTAMPING_RX_HARDWARE: return the original, unmodified time stamp 31
32 as generated by the hardware 32SOF_TIMESTAMPING_TX_HARDWARE: try to obtain send time stamps in hardware
33SOF_TIMESTAMPING_RX_SOFTWARE: if SOF_TIMESTAMPING_RX_HARDWARE is off or 33SOF_TIMESTAMPING_TX_SOFTWARE: try to obtain send time stamps in software
34 fails, then do it in software 34SOF_TIMESTAMPING_RX_HARDWARE: try to obtain receive time stamps in hardware
35SOF_TIMESTAMPING_RAW_HARDWARE: return original raw hardware time stamp 35SOF_TIMESTAMPING_RX_SOFTWARE: try to obtain receive time stamps in software
36SOF_TIMESTAMPING_SYS_HARDWARE: return hardware time stamp transformed to 36
37 the system time base 37The other three bits control which timestamps will be reported in a
38SOF_TIMESTAMPING_SOFTWARE: return system time stamp generated in 38generated control message. If none of these bits are set or if none of
39 software 39the set bits correspond to data that is available, then the control
40 40message will not be generated:
41SOF_TIMESTAMPING_TX/RX determine how time stamps are generated. 41
42SOF_TIMESTAMPING_RAW/SYS determine how they are reported in the 42SOF_TIMESTAMPING_SOFTWARE: report systime if available
43following control message: 43SOF_TIMESTAMPING_SYS_HARDWARE: report hwtimetrans if available
44SOF_TIMESTAMPING_RAW_HARDWARE: report hwtimeraw if available
45
46It is worth noting that timestamps may be collected for reasons other
47than being requested by a particular socket with
48SOF_TIMESTAMPING_[TR]X_(HARD|SOFT)WARE. For example, most drivers that
49can generate hardware receive timestamps ignore
50SOF_TIMESTAMPING_RX_HARDWARE. It is still a good idea to set that flag
51in case future drivers pay attention.
52
53If timestamps are reported, they will appear in a control message with
54cmsg_level==SOL_SOCKET, cmsg_type==SO_TIMESTAMPING, and a payload like
55this:
44 56
45struct scm_timestamping { 57struct scm_timestamping {
46 struct timespec systime; 58 struct timespec systime;
diff --git a/Documentation/phy/samsung-usb2.txt b/Documentation/phy/samsung-usb2.txt
new file mode 100644
index 000000000000..ed12d437189d
--- /dev/null
+++ b/Documentation/phy/samsung-usb2.txt
@@ -0,0 +1,135 @@
1.------------------------------------------------------------------------------+
2| Samsung USB 2.0 PHY adaptation layer |
3+-----------------------------------------------------------------------------+'
4
5| 1. Description
6+----------------
7
8The architecture of the USB 2.0 PHY module in Samsung SoCs is similar
9among many SoCs. In spite of the similarities it proved difficult to
10create a one driver that would fit all these PHY controllers. Often
11the differences were minor and were found in particular bits of the
12registers of the PHY. In some rare cases the order of register writes or
13the PHY powering up process had to be altered. This adaptation layer is
14a compromise between having separate drivers and having a single driver
15with added support for many special cases.
16
17| 2. Files description
18+----------------------
19
20- phy-samsung-usb2.c
21 This is the main file of the adaptation layer. This file contains
22 the probe function and provides two callbacks to the Generic PHY
23 Framework. This two callbacks are used to power on and power off the
24 phy. They carry out the common work that has to be done on all version
25 of the PHY module. Depending on which SoC was chosen they execute SoC
26 specific callbacks. The specific SoC version is selected by choosing
27 the appropriate compatible string. In addition, this file contains
28 struct of_device_id definitions for particular SoCs.
29
30- phy-samsung-usb2.h
31 This is the include file. It declares the structures used by this
32 driver. In addition it should contain extern declarations for
33 structures that describe particular SoCs.
34
35| 3. Supporting SoCs
36+--------------------
37
38To support a new SoC a new file should be added to the drivers/phy
39directory. Each SoC's configuration is stored in an instance of the
40struct samsung_usb2_phy_config.
41
42struct samsung_usb2_phy_config {
43 const struct samsung_usb2_common_phy *phys;
44 int (*rate_to_clk)(unsigned long, u32 *);
45 unsigned int num_phys;
46 bool has_mode_switch;
47};
48
49The num_phys is the number of phys handled by the driver. *phys is an
50array that contains the configuration for each phy. The has_mode_switch
51property is a boolean flag that determines whether the SoC has USB host
52and device on a single pair of pins. If so, a special register has to
53be modified to change the internal routing of these pins between a USB
54device or host module.
55
56For example the configuration for Exynos 4210 is following:
57
58const struct samsung_usb2_phy_config exynos4210_usb2_phy_config = {
59 .has_mode_switch = 0,
60 .num_phys = EXYNOS4210_NUM_PHYS,
61 .phys = exynos4210_phys,
62 .rate_to_clk = exynos4210_rate_to_clk,
63}
64
65- int (*rate_to_clk)(unsigned long, u32 *)
66 The rate_to_clk callback is to convert the rate of the clock
67 used as the reference clock for the PHY module to the value
68 that should be written in the hardware register.
69
70The exynos4210_phys configuration array is as follows:
71
72static const struct samsung_usb2_common_phy exynos4210_phys[] = {
73 {
74 .label = "device",
75 .id = EXYNOS4210_DEVICE,
76 .power_on = exynos4210_power_on,
77 .power_off = exynos4210_power_off,
78 },
79 {
80 .label = "host",
81 .id = EXYNOS4210_HOST,
82 .power_on = exynos4210_power_on,
83 .power_off = exynos4210_power_off,
84 },
85 {
86 .label = "hsic0",
87 .id = EXYNOS4210_HSIC0,
88 .power_on = exynos4210_power_on,
89 .power_off = exynos4210_power_off,
90 },
91 {
92 .label = "hsic1",
93 .id = EXYNOS4210_HSIC1,
94 .power_on = exynos4210_power_on,
95 .power_off = exynos4210_power_off,
96 },
97 {},
98};
99
100- int (*power_on)(struct samsung_usb2_phy_instance *);
101- int (*power_off)(struct samsung_usb2_phy_instance *);
102 These two callbacks are used to power on and power off the phy
103 by modifying appropriate registers.
104
105Final change to the driver is adding appropriate compatible value to the
106phy-samsung-usb2.c file. In case of Exynos 4210 the following lines were
107added to the struct of_device_id samsung_usb2_phy_of_match[] array:
108
109#ifdef CONFIG_PHY_EXYNOS4210_USB2
110 {
111 .compatible = "samsung,exynos4210-usb2-phy",
112 .data = &exynos4210_usb2_phy_config,
113 },
114#endif
115
116To add further flexibility to the driver the Kconfig file enables to
117include support for selected SoCs in the compiled driver. The Kconfig
118entry for Exynos 4210 is following:
119
120config PHY_EXYNOS4210_USB2
121 bool "Support for Exynos 4210"
122 depends on PHY_SAMSUNG_USB2
123 depends on CPU_EXYNOS4210
124 help
125 Enable USB PHY support for Exynos 4210. This option requires that
126 Samsung USB 2.0 PHY driver is enabled and means that support for this
127 particular SoC is compiled in the driver. In case of Exynos 4210 four
128 phys are available - device, host, HSCI0 and HSCI1.
129
130The newly created file that supports the new SoC has to be also added to the
131Makefile. In case of Exynos 4210 the added line is following:
132
133obj-$(CONFIG_PHY_EXYNOS4210_USB2) += phy-exynos4210-usb2.o
134
135After completing these steps the support for the new SoC should be ready.
diff --git a/Documentation/power/pm_qos_interface.txt b/Documentation/power/pm_qos_interface.txt
index 483632087788..a5da5c7e7128 100644
--- a/Documentation/power/pm_qos_interface.txt
+++ b/Documentation/power/pm_qos_interface.txt
@@ -88,17 +88,19 @@ node.
88 88
892. PM QoS per-device latency and flags framework 892. PM QoS per-device latency and flags framework
90 90
91For each device, there are two lists of PM QoS requests. One is maintained 91For each device, there are three lists of PM QoS requests. Two of them are
92along with the aggregated target of latency value and the other is for PM QoS 92maintained along with the aggregated targets of resume latency and active
93flags. Values are updated in response to changes of the request list. 93state latency tolerance (in microseconds) and the third one is for PM QoS flags.
94Values are updated in response to changes of the request list.
94 95
95Target latency value is simply the minimum of the request values held in the 96The target values of resume latency and active state latency tolerance are
96parameter list elements. The PM QoS flags aggregate value is a gather (bitwise 97simply the minimum of the request values held in the parameter list elements.
97OR) of all list elements' values. Two device PM QoS flags are defined currently: 98The PM QoS flags aggregate value is a gather (bitwise OR) of all list elements'
98PM_QOS_FLAG_NO_POWER_OFF and PM_QOS_FLAG_REMOTE_WAKEUP. 99values. Two device PM QoS flags are defined currently: PM_QOS_FLAG_NO_POWER_OFF
100and PM_QOS_FLAG_REMOTE_WAKEUP.
99 101
100Note: the aggregated target value is implemented as an atomic variable so that 102Note: The aggregated target values are implemented in such a way that reading
101reading the aggregated value does not require any locking mechanism. 103the aggregated value does not require any locking mechanism.
102 104
103 105
104From kernel mode the use of this interface is the following: 106From kernel mode the use of this interface is the following:
@@ -132,19 +134,21 @@ The meaning of the return values is as follows:
132 PM_QOS_FLAGS_UNDEFINED: The device's PM QoS structure has not been 134 PM_QOS_FLAGS_UNDEFINED: The device's PM QoS structure has not been
133 initialized or the list of requests is empty. 135 initialized or the list of requests is empty.
134 136
135int dev_pm_qos_add_ancestor_request(dev, handle, value) 137int dev_pm_qos_add_ancestor_request(dev, handle, type, value)
136Add a PM QoS request for the first direct ancestor of the given device whose 138Add a PM QoS request for the first direct ancestor of the given device whose
137power.ignore_children flag is unset. 139power.ignore_children flag is unset (for DEV_PM_QOS_RESUME_LATENCY requests)
140or whose power.set_latency_tolerance callback pointer is not NULL (for
141DEV_PM_QOS_LATENCY_TOLERANCE requests).
138 142
139int dev_pm_qos_expose_latency_limit(device, value) 143int dev_pm_qos_expose_latency_limit(device, value)
140Add a request to the device's PM QoS list of latency constraints and create 144Add a request to the device's PM QoS list of resume latency constraints and
141a sysfs attribute pm_qos_resume_latency_us under the device's power directory 145create a sysfs attribute pm_qos_resume_latency_us under the device's power
142allowing user space to manipulate that request. 146directory allowing user space to manipulate that request.
143 147
144void dev_pm_qos_hide_latency_limit(device) 148void dev_pm_qos_hide_latency_limit(device)
145Drop the request added by dev_pm_qos_expose_latency_limit() from the device's 149Drop the request added by dev_pm_qos_expose_latency_limit() from the device's
146PM QoS list of latency constraints and remove sysfs attribute pm_qos_resume_latency_us 150PM QoS list of resume latency constraints and remove sysfs attribute
147from the device's power directory. 151pm_qos_resume_latency_us from the device's power directory.
148 152
149int dev_pm_qos_expose_flags(device, value) 153int dev_pm_qos_expose_flags(device, value)
150Add a request to the device's PM QoS list of flags and create sysfs attributes 154Add a request to the device's PM QoS list of flags and create sysfs attributes
@@ -163,7 +167,7 @@ a per-device notification tree and a global notification tree.
163int dev_pm_qos_add_notifier(device, notifier): 167int dev_pm_qos_add_notifier(device, notifier):
164Adds a notification callback function for the device. 168Adds a notification callback function for the device.
165The callback is called when the aggregated value of the device constraints list 169The callback is called when the aggregated value of the device constraints list
166is changed. 170is changed (for resume latency device PM QoS only).
167 171
168int dev_pm_qos_remove_notifier(device, notifier): 172int dev_pm_qos_remove_notifier(device, notifier):
169Removes the notification callback function for the device. 173Removes the notification callback function for the device.
@@ -171,14 +175,48 @@ Removes the notification callback function for the device.
171int dev_pm_qos_add_global_notifier(notifier): 175int dev_pm_qos_add_global_notifier(notifier):
172Adds a notification callback function in the global notification tree of the 176Adds a notification callback function in the global notification tree of the
173framework. 177framework.
174The callback is called when the aggregated value for any device is changed. 178The callback is called when the aggregated value for any device is changed
179(for resume latency device PM QoS only).
175 180
176int dev_pm_qos_remove_global_notifier(notifier): 181int dev_pm_qos_remove_global_notifier(notifier):
177Removes the notification callback function from the global notification tree 182Removes the notification callback function from the global notification tree
178of the framework. 183of the framework.
179 184
180 185
181From user mode: 186Active state latency tolerance
182No API for user space access to the per-device latency constraints is provided 187
183yet - still under discussion. 188This device PM QoS type is used to support systems in which hardware may switch
184 189to energy-saving operation modes on the fly. In those systems, if the operation
190mode chosen by the hardware attempts to save energy in an overly aggressive way,
191it may cause excess latencies to be visible to software, causing it to miss
192certain protocol requirements or target frame or sample rates etc.
193
194If there is a latency tolerance control mechanism for a given device available
195to software, the .set_latency_tolerance callback in that device's dev_pm_info
196structure should be populated. The routine pointed to by it is should implement
197whatever is necessary to transfer the effective requirement value to the
198hardware.
199
200Whenever the effective latency tolerance changes for the device, its
201.set_latency_tolerance() callback will be executed and the effective value will
202be passed to it. If that value is negative, which means that the list of
203latency tolerance requirements for the device is empty, the callback is expected
204to switch the underlying hardware latency tolerance control mechanism to an
205autonomous mode if available. If that value is PM_QOS_LATENCY_ANY, in turn, and
206the hardware supports a special "no requirement" setting, the callback is
207expected to use it. That allows software to prevent the hardware from
208automatically updating the device's latency tolerance in response to its power
209state changes (e.g. during transitions from D3cold to D0), which generally may
210be done in the autonomous latency tolerance control mode.
211
212If .set_latency_tolerance() is present for the device, sysfs attribute
213pm_qos_latency_tolerance_us will be present in the devivce's power directory.
214Then, user space can use that attribute to specify its latency tolerance
215requirement for the device, if any. Writing "any" to it means "no requirement,
216but do not let the hardware control latency tolerance" and writing "auto" to it
217allows the hardware to be switched to the autonomous mode if there are no other
218requirements from the kernel side in the device's list.
219
220Kernel code can use the functions described above along with the
221DEV_PM_QOS_LATENCY_TOLERANCE device PM QoS type to add, remove and update
222latency tolerance requirements for devices.
diff --git a/Documentation/power/runtime_pm.txt b/Documentation/power/runtime_pm.txt
index b6ce00b2be9a..5f96daf8566a 100644
--- a/Documentation/power/runtime_pm.txt
+++ b/Documentation/power/runtime_pm.txt
@@ -232,7 +232,7 @@ defined in include/linux/pm.h:
232 equal to zero); the initial value of it is 1 (i.e. runtime PM is 232 equal to zero); the initial value of it is 1 (i.e. runtime PM is
233 initially disabled for all devices) 233 initially disabled for all devices)
234 234
235 unsigned int runtime_error; 235 int runtime_error;
236 - if set, there was a fatal error (one of the callbacks returned error code 236 - if set, there was a fatal error (one of the callbacks returned error code
237 as described in Section 2), so the helper funtions will not work until 237 as described in Section 2), so the helper funtions will not work until
238 this flag is cleared; this is the error code returned by the failing 238 this flag is cleared; this is the error code returned by the failing
@@ -401,11 +401,11 @@ drivers/base/power/runtime.c and include/linux/pm_runtime.h:
401 int pm_runtime_disable(struct device *dev); 401 int pm_runtime_disable(struct device *dev);
402 - increment the device's 'power.disable_depth' field (if the value of that 402 - increment the device's 'power.disable_depth' field (if the value of that
403 field was previously zero, this prevents subsystem-level runtime PM 403 field was previously zero, this prevents subsystem-level runtime PM
404 callbacks from being run for the device), make sure that all of the pending 404 callbacks from being run for the device), make sure that all of the
405 runtime PM operations on the device are either completed or canceled; 405 pending runtime PM operations on the device are either completed or
406 returns 1 if there was a resume request pending and it was necessary to 406 canceled; returns 1 if there was a resume request pending and it was
407 execute the subsystem-level resume callback for the device to satisfy that 407 necessary to execute the subsystem-level resume callback for the device
408 request, otherwise 0 is returned 408 to satisfy that request, otherwise 0 is returned
409 409
410 int pm_runtime_barrier(struct device *dev); 410 int pm_runtime_barrier(struct device *dev);
411 - check if there's a resume request pending for the device and resume it 411 - check if there's a resume request pending for the device and resume it
@@ -667,11 +667,11 @@ driver/base/power/generic_ops.c:
667 667
668 int pm_generic_runtime_suspend(struct device *dev); 668 int pm_generic_runtime_suspend(struct device *dev);
669 - invoke the ->runtime_suspend() callback provided by the driver of this 669 - invoke the ->runtime_suspend() callback provided by the driver of this
670 device and return its result, or return -EINVAL if not defined 670 device and return its result, or return 0 if not defined
671 671
672 int pm_generic_runtime_resume(struct device *dev); 672 int pm_generic_runtime_resume(struct device *dev);
673 - invoke the ->runtime_resume() callback provided by the driver of this 673 - invoke the ->runtime_resume() callback provided by the driver of this
674 device and return its result, or return -EINVAL if not defined 674 device and return its result, or return 0 if not defined
675 675
676 int pm_generic_suspend(struct device *dev); 676 int pm_generic_suspend(struct device *dev);
677 - if the device has not been suspended at run time, invoke the ->suspend() 677 - if the device has not been suspended at run time, invoke the ->suspend()
@@ -727,15 +727,12 @@ driver/base/power/generic_ops.c:
727 int pm_generic_restore_noirq(struct device *dev); 727 int pm_generic_restore_noirq(struct device *dev);
728 - invoke the ->restore_noirq() callback provided by the device's driver 728 - invoke the ->restore_noirq() callback provided by the device's driver
729 729
730These functions can be assigned to the ->runtime_idle(), ->runtime_suspend(), 730These functions are the defaults used by the PM core, if a subsystem doesn't
731provide its own callbacks for ->runtime_idle(), ->runtime_suspend(),
731->runtime_resume(), ->suspend(), ->suspend_noirq(), ->resume(), 732->runtime_resume(), ->suspend(), ->suspend_noirq(), ->resume(),
732->resume_noirq(), ->freeze(), ->freeze_noirq(), ->thaw(), ->thaw_noirq(), 733->resume_noirq(), ->freeze(), ->freeze_noirq(), ->thaw(), ->thaw_noirq(),
733->poweroff(), ->poweroff_noirq(), ->restore(), ->restore_noirq() callback 734->poweroff(), ->poweroff_noirq(), ->restore(), ->restore_noirq() in the
734pointers in the subsystem-level dev_pm_ops structures. 735subsystem-level dev_pm_ops structure.
735
736If a subsystem wishes to use all of them at the same time, it can simply assign
737the GENERIC_SUBSYS_PM_OPS macro, defined in include/linux/pm.h, to its
738dev_pm_ops structure pointer.
739 736
740Device drivers that wish to use the same function as a system suspend, freeze, 737Device drivers that wish to use the same function as a system suspend, freeze,
741poweroff and runtime suspend callback, and similarly for system resume, thaw, 738poweroff and runtime suspend callback, and similarly for system resume, thaw,
@@ -873,7 +870,7 @@ Here is a schematic pseudo-code example:
873 foo->is_suspended = 0; 870 foo->is_suspended = 0;
874 pm_runtime_mark_last_busy(&foo->dev); 871 pm_runtime_mark_last_busy(&foo->dev);
875 if (foo->num_pending_requests > 0) 872 if (foo->num_pending_requests > 0)
876 foo_process_requests(foo); 873 foo_process_next_request(foo);
877 unlock(&foo->private_lock); 874 unlock(&foo->private_lock);
878 return 0; 875 return 0;
879 } 876 }
diff --git a/Documentation/scsi/ChangeLog.megaraid_sas b/Documentation/scsi/ChangeLog.megaraid_sas
index 6edaa65b0818..91ba58ef02d7 100644
--- a/Documentation/scsi/ChangeLog.megaraid_sas
+++ b/Documentation/scsi/ChangeLog.megaraid_sas
@@ -1,3 +1,16 @@
1Release Date : Mon. Mar 10, 2014 17:00:00 PST 2014 -
2 (emaild-id:megaraidlinux@lsi.com)
3 Adam Radford
4 Kashyap Desai
5 Sumit Saxena
6Current Version : 06.803.01.00-rc1
7Old Version : 06.700.06.00-rc1
8 1. Load correct raid context timeout value for multipathing & clustering.
9 2. Fix megasas_ioc_init_fusion to use local stack variable.
10 3. Return leaked MPT frames to MPT command pool.
11 4. Add Dell PowerEdge VRTX SR-IOV VF device support.
12 5. Version and Changelog update.
13-------------------------------------------------------------------------------
1Release Date : Sat. Aug 31, 2013 17:00:00 PST 2013 - 14Release Date : Sat. Aug 31, 2013 17:00:00 PST 2013 -
2 (emaild-id:megaraidlinux@lsi.com) 15 (emaild-id:megaraidlinux@lsi.com)
3 Adam Radford 16 Adam Radford
diff --git a/Documentation/sgi-visws.txt b/Documentation/sgi-visws.txt
deleted file mode 100644
index 7ff0811ca2ba..000000000000
--- a/Documentation/sgi-visws.txt
+++ /dev/null
@@ -1,13 +0,0 @@
1
2The SGI Visual Workstations (models 320 and 540) are based around
3the Cobalt, Lithium, and Arsenic ASICs. The Cobalt ASIC is the
4main system ASIC which interfaces the 1-4 IA32 cpus, the memory
5system, and the I/O system in the Lithium ASIC. The Cobalt ASIC
6also contains the 3D gfx rendering engine which renders to main
7system memory -- part of which is used as the frame buffer which
8is DMA'ed to a video connector using the Arsenic ASIC. A PIIX4
9chip and NS87307 are used to provide legacy device support (IDE,
10serial, floppy, and parallel).
11
12The Visual Workstation chipset largely conforms to the PC architecture
13with some notable exceptions such as interrupt handling.
diff --git a/Documentation/sound/oss/vwsnd b/Documentation/sound/oss/vwsnd
deleted file mode 100644
index 4c6cbdb3c548..000000000000
--- a/Documentation/sound/oss/vwsnd
+++ /dev/null
@@ -1,293 +0,0 @@
1vwsnd - Sound driver for the Silicon Graphics 320 and 540 Visual
2Workstations' onboard audio.
3
4Copyright 1999 Silicon Graphics, Inc. All rights reserved.
5
6
7At the time of this writing, March 1999, there are two models of
8Visual Workstation, the 320 and the 540. This document only describes
9those models. Future Visual Workstation models may have different
10sound capabilities, and this driver will probably not work on those
11boxes.
12
13The Visual Workstation has an Analog Devices AD1843 "SoundComm" audio
14codec chip. The AD1843 is accessed through the Cobalt I/O ASIC, also
15known as Lithium. This driver programs both chips.
16
17==============================================================================
18QUICK CONFIGURATION
19
20 # insmod soundcore
21 # insmod vwsnd
22
23==============================================================================
24I/O CONNECTIONS
25
26On the Visual Workstation, only three of the AD1843 inputs are hooked
27up. The analog line in jacks are connected to the AD1843's AUX1
28input. The CD audio lines are connected to the AD1843's AUX2 input.
29The microphone jack is connected to the AD1843's MIC input. The mic
30jack is mono, but the signal is delivered to both the left and right
31MIC inputs. You can record in stereo from the mic input, but you will
32get the same signal on both channels (within the limits of A/D
33accuracy). Full scale on the Line input is +/- 2.0 V. Full scale on
34the MIC input is 20 dB less, or +/- 0.2 V.
35
36The AD1843's LOUT1 outputs are connected to the Line Out jacks. The
37AD1843's HPOUT outputs are connected to the speaker/headphone jack.
38LOUT2 is not connected. Line out's maximum level is +/- 2.0 V peak to
39peak. The speaker/headphone out's maximum is +/- 4.0 V peak to peak.
40
41The AD1843's PCM input channel and one of its output channels (DAC1)
42are connected to Lithium. The other output channel (DAC2) is not
43connected.
44
45==============================================================================
46CAPABILITIES
47
48The AD1843 has PCM input and output (Pulse Code Modulation, also known
49as wavetable). PCM input and output can be mono or stereo in any of
50four formats. The formats are 16 bit signed and 8 bit unsigned,
51u-Law, and A-Law format. Any sample rate from 4 KHz to 49 KHz is
52available, in 1 Hz increments.
53
54The AD1843 includes an analog mixer that can mix all three input
55signals (line, mic and CD) into the analog outputs. The mixer has a
56separate gain control and mute switch for each input.
57
58There are two outputs, line out and speaker/headphone out. They
59always produce the same signal, and the speaker always has 3 dB more
60gain than the line out. The speaker/headphone output can be muted,
61but this driver does not export that function.
62
63The hardware can sync audio to the video clock, but this driver does
64not have a way to specify syncing to video.
65
66==============================================================================
67PROGRAMMING
68
69This section explains the API supported by the driver. Also see the
70Open Sound Programming Guide at http://www.opensound.com/pguide/ .
71This section assumes familiarity with that document.
72
73The driver has two interfaces, an I/O interface and a mixer interface.
74There is no MIDI or sequencer capability.
75
76==============================================================================
77PROGRAMMING PCM I/O
78
79The I/O interface is usually accessed as /dev/audio or /dev/dsp.
80Using the standard Open Sound System (OSS) ioctl calls, the sample
81rate, number of channels, and sample format may be set within the
82limitations described above. The driver supports triggering. It also
83supports getting the input and output pointers with one-sample
84accuracy.
85
86The SNDCTL_DSP_GETCAP ioctl returns these capabilities.
87
88 DSP_CAP_DUPLEX - driver supports full duplex.
89
90 DSP_CAP_TRIGGER - driver supports triggering.
91
92 DSP_CAP_REALTIME - values returned by SNDCTL_DSP_GETIPTR
93 and SNDCTL_DSP_GETOPTR are accurate to a few samples.
94
95Memory mapping (mmap) is not implemented.
96
97The driver permits subdivided fragment sizes from 64 to 4096 bytes.
98The number of fragments can be anything from 3 fragments to however
99many fragments fit into 124 kilobytes. It is up to the user to
100determine how few/small fragments can be used without introducing
101glitches with a given workload. Linux is not realtime, so we can't
102promise anything. (sigh...)
103
104When this driver is switched into or out of mu-Law or A-Law mode on
105output, it may produce an audible click. This is unavoidable. To
106prevent clicking, use signed 16-bit mode instead, and convert from
107mu-Law or A-Law format in software.
108
109==============================================================================
110PROGRAMMING THE MIXER INTERFACE
111
112The mixer interface is usually accessed as /dev/mixer. It is accessed
113through ioctls. The mixer allows the application to control gain or
114mute several audio signal paths, and also allows selection of the
115recording source.
116
117Each of the constants described here can be read using the
118MIXER_READ(SOUND_MIXER_xxx) ioctl. Those that are not read-only can
119also be written using the MIXER_WRITE(SOUND_MIXER_xxx) ioctl. In most
120cases, <sys/soundcard.h> defines constants SOUND_MIXER_READ_xxx and
121SOUND_MIXER_WRITE_xxx which work just as well.
122
123SOUND_MIXER_CAPS Read-only
124
125This is a mask of optional driver capabilities that are implemented.
126This driver's only capability is SOUND_CAP_EXCL_INPUT, which means
127that only one recording source can be active at a time.
128
129SOUND_MIXER_DEVMASK Read-only
130
131This is a mask of the sound channels. This driver's channels are PCM,
132LINE, MIC, CD, and RECLEV.
133
134SOUND_MIXER_STEREODEVS Read-only
135
136This is a mask of which sound channels are capable of stereo. All
137channels are capable of stereo. (But see caveat on MIC input in I/O
138CONNECTIONS section above).
139
140SOUND_MIXER_OUTMASK Read-only
141
142This is a mask of channels that route inputs through to outputs.
143Those are LINE, MIC, and CD.
144
145SOUND_MIXER_RECMASK Read-only
146
147This is a mask of channels that can be recording sources. Those are
148PCM, LINE, MIC, CD.
149
150SOUND_MIXER_PCM Default: 0x5757 (0 dB)
151
152This is the gain control for PCM output. The left and right channel
153gain are controlled independently. This gain control has 64 levels,
154which range from -82.5 dB to +12.0 dB in 1.5 dB steps. Those 64
155levels are mapped onto 100 levels at the ioctl, see below.
156
157SOUND_MIXER_LINE Default: 0x4a4a (0 dB)
158
159This is the gain control for mixing the Line In source into the
160outputs. The left and right channel gain are controlled
161independently. This gain control has 32 levels, which range from
162-34.5 dB to +12.0 dB in 1.5 dB steps. Those 32 levels are mapped onto
163100 levels at the ioctl, see below.
164
165SOUND_MIXER_MIC Default: 0x4a4a (0 dB)
166
167This is the gain control for mixing the MIC source into the outputs.
168The left and right channel gain are controlled independently. This
169gain control has 32 levels, which range from -34.5 dB to +12.0 dB in
1701.5 dB steps. Those 32 levels are mapped onto 100 levels at the
171ioctl, see below.
172
173SOUND_MIXER_CD Default: 0x4a4a (0 dB)
174
175This is the gain control for mixing the CD audio source into the
176outputs. The left and right channel gain are controlled
177independently. This gain control has 32 levels, which range from
178-34.5 dB to +12.0 dB in 1.5 dB steps. Those 32 levels are mapped onto
179100 levels at the ioctl, see below.
180
181SOUND_MIXER_RECLEV Default: 0 (0 dB)
182
183This is the gain control for PCM input (RECording LEVel). The left
184and right channel gain are controlled independently. This gain
185control has 16 levels, which range from 0 dB to +22.5 dB in 1.5 dB
186steps. Those 16 levels are mapped onto 100 levels at the ioctl, see
187below.
188
189SOUND_MIXER_RECSRC Default: SOUND_MASK_LINE
190
191This is a mask of currently selected PCM input sources (RECording
192SouRCes). Because the AD1843 can only have a single recording source
193at a time, only one bit at a time can be set in this mask. The
194allowable values are SOUND_MASK_PCM, SOUND_MASK_LINE, SOUND_MASK_MIC,
195or SOUND_MASK_CD. Selecting SOUND_MASK_PCM sets up internal
196resampling which is useful for loopback testing and for hardware
197sample rate conversion. But software sample rate conversion is
198probably faster, so I don't know how useful that is.
199
200SOUND_MIXER_OUTSRC DEFAULT: SOUND_MASK_LINE|SOUND_MASK_MIC|SOUND_MASK_CD
201
202This is a mask of sources that are currently passed through to the
203outputs. Those sources whose bits are not set are muted.
204
205==============================================================================
206GAIN CONTROL
207
208There are five gain controls listed above. Each has 16, 32, or 64
209steps. Each control has 1.5 dB of gain per step. Each control is
210stereo.
211
212The OSS defines the argument to a channel gain ioctl as having two
213components, left and right, each of which ranges from 0 to 100. The
214two components are packed into the same word, with the left side gain
215in the least significant byte, and the right side gain in the second
216least significant byte. In C, we would say this.
217
218 #include <assert.h>
219
220 ...
221
222 assert(leftgain >= 0 && leftgain <= 100);
223 assert(rightgain >= 0 && rightgain <= 100);
224 arg = leftgain | rightgain << 8;
225
226So each OSS gain control has 101 steps. But the hardware has 16, 32,
227or 64 steps. The hardware steps are spread across the 101 OSS steps
228nearly evenly. The conversion formulas are like this, given N equals
22916, 32, or 64.
230
231 int round = N/2 - 1;
232 OSS_gain_steps = (hw_gain_steps * 100 + round) / (N - 1);
233 hw_gain_steps = (OSS_gain_steps * (N - 1) + round) / 100;
234
235Here is a snippet of C code that will return the left and right gain
236of any channel in dB. Pass it one of the predefined gain_desc_t
237structures to access any of the five channels' gains.
238
239 typedef struct gain_desc {
240 float min_gain;
241 float gain_step;
242 int nbits;
243 int chan;
244 } gain_desc_t;
245
246 const gain_desc_t gain_pcm = { -82.5, 1.5, 6, SOUND_MIXER_PCM };
247 const gain_desc_t gain_line = { -34.5, 1.5, 5, SOUND_MIXER_LINE };
248 const gain_desc_t gain_mic = { -34.5, 1.5, 5, SOUND_MIXER_MIC };
249 const gain_desc_t gain_cd = { -34.5, 1.5, 5, SOUND_MIXER_CD };
250 const gain_desc_t gain_reclev = { 0.0, 1.5, 4, SOUND_MIXER_RECLEV };
251
252 int get_gain_dB(int fd, const gain_desc_t *gp,
253 float *left, float *right)
254 {
255 int word;
256 int lg, rg;
257 int mask = (1 << gp->nbits) - 1;
258
259 if (ioctl(fd, MIXER_READ(gp->chan), &word) != 0)
260 return -1; /* fail */
261 lg = word & 0xFF;
262 rg = word >> 8 & 0xFF;
263 lg = (lg * mask + mask / 2) / 100;
264 rg = (rg * mask + mask / 2) / 100;
265 *left = gp->min_gain + gp->gain_step * lg;
266 *right = gp->min_gain + gp->gain_step * rg;
267 return 0;
268 }
269
270And here is the corresponding routine to set a channel's gain in dB.
271
272 int set_gain_dB(int fd, const gain_desc_t *gp, float left, float right)
273 {
274 float max_gain =
275 gp->min_gain + (1 << gp->nbits) * gp->gain_step;
276 float round = gp->gain_step / 2;
277 int mask = (1 << gp->nbits) - 1;
278 int word;
279 int lg, rg;
280
281 if (left < gp->min_gain || right < gp->min_gain)
282 return EINVAL;
283 lg = (left - gp->min_gain + round) / gp->gain_step;
284 rg = (right - gp->min_gain + round) / gp->gain_step;
285 if (lg >= (1 << gp->nbits) || rg >= (1 << gp->nbits))
286 return EINVAL;
287 lg = (100 * lg + mask / 2) / mask;
288 rg = (100 * rg + mask / 2) / mask;
289 word = lg | rg << 8;
290
291 return ioctl(fd, MIXER_WRITE(gp->chan), &word);
292 }
293
diff --git a/Documentation/spi/spidev b/Documentation/spi/spidev
index ed2da5e5b28a..3d14035b1766 100644
--- a/Documentation/spi/spidev
+++ b/Documentation/spi/spidev
@@ -85,6 +85,12 @@ settings for data transfer parameters:
85 SPI_MODE_0..SPI_MODE_3; or if you prefer you can combine SPI_CPOL 85 SPI_MODE_0..SPI_MODE_3; or if you prefer you can combine SPI_CPOL
86 (clock polarity, idle high iff this is set) or SPI_CPHA (clock phase, 86 (clock polarity, idle high iff this is set) or SPI_CPHA (clock phase,
87 sample on trailing edge iff this is set) flags. 87 sample on trailing edge iff this is set) flags.
88 Note that this request is limited to SPI mode flags that fit in a
89 single byte.
90
91 SPI_IOC_RD_MODE32, SPI_IOC_WR_MODE32 ... pass a pointer to a uin32_t
92 which will return (RD) or assign (WR) the full SPI transfer mode,
93 not limited to the bits that fit in one byte.
88 94
89 SPI_IOC_RD_LSB_FIRST, SPI_IOC_WR_LSB_FIRST ... pass a pointer to a byte 95 SPI_IOC_RD_LSB_FIRST, SPI_IOC_WR_LSB_FIRST ... pass a pointer to a byte
90 which will return (RD) or assign (WR) the bit justification used to 96 which will return (RD) or assign (WR) the bit justification used to
diff --git a/Documentation/spi/spidev_fdx.c b/Documentation/spi/spidev_fdx.c
index 36ec0774ca0b..0ea3e51292fc 100644
--- a/Documentation/spi/spidev_fdx.c
+++ b/Documentation/spi/spidev_fdx.c
@@ -78,10 +78,10 @@ static void do_msg(int fd, int len)
78 78
79static void dumpstat(const char *name, int fd) 79static void dumpstat(const char *name, int fd)
80{ 80{
81 __u8 mode, lsb, bits; 81 __u8 lsb, bits;
82 __u32 speed; 82 __u32 mode, speed;
83 83
84 if (ioctl(fd, SPI_IOC_RD_MODE, &mode) < 0) { 84 if (ioctl(fd, SPI_IOC_RD_MODE32, &mode) < 0) {
85 perror("SPI rd_mode"); 85 perror("SPI rd_mode");
86 return; 86 return;
87 } 87 }
@@ -98,7 +98,7 @@ static void dumpstat(const char *name, int fd)
98 return; 98 return;
99 } 99 }
100 100
101 printf("%s: spi mode %d, %d bits %sper word, %d Hz max\n", 101 printf("%s: spi mode 0x%x, %d bits %sper word, %d Hz max\n",
102 name, mode, bits, lsb ? "(lsb first) " : "", speed); 102 name, mode, bits, lsb ? "(lsb first) " : "", speed);
103} 103}
104 104
diff --git a/Documentation/spi/spidev_test.c b/Documentation/spi/spidev_test.c
index 16feda901469..3a2f9d59edab 100644
--- a/Documentation/spi/spidev_test.c
+++ b/Documentation/spi/spidev_test.c
@@ -30,7 +30,7 @@ static void pabort(const char *s)
30} 30}
31 31
32static const char *device = "/dev/spidev1.1"; 32static const char *device = "/dev/spidev1.1";
33static uint8_t mode; 33static uint32_t mode;
34static uint8_t bits = 8; 34static uint8_t bits = 8;
35static uint32_t speed = 500000; 35static uint32_t speed = 500000;
36static uint16_t delay; 36static uint16_t delay;
@@ -57,6 +57,21 @@ static void transfer(int fd)
57 .bits_per_word = bits, 57 .bits_per_word = bits,
58 }; 58 };
59 59
60 if (mode & SPI_TX_QUAD)
61 tr.tx_nbits = 4;
62 else if (mode & SPI_TX_DUAL)
63 tr.tx_nbits = 2;
64 if (mode & SPI_RX_QUAD)
65 tr.rx_nbits = 4;
66 else if (mode & SPI_RX_DUAL)
67 tr.rx_nbits = 2;
68 if (!(mode & SPI_LOOP)) {
69 if (mode & (SPI_TX_QUAD | SPI_TX_DUAL))
70 tr.rx_buf = 0;
71 else if (mode & (SPI_RX_QUAD | SPI_RX_DUAL))
72 tr.tx_buf = 0;
73 }
74
60 ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr); 75 ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr);
61 if (ret < 1) 76 if (ret < 1)
62 pabort("can't send spi message"); 77 pabort("can't send spi message");
@@ -81,7 +96,11 @@ static void print_usage(const char *prog)
81 " -O --cpol clock polarity\n" 96 " -O --cpol clock polarity\n"
82 " -L --lsb least significant bit first\n" 97 " -L --lsb least significant bit first\n"
83 " -C --cs-high chip select active high\n" 98 " -C --cs-high chip select active high\n"
84 " -3 --3wire SI/SO signals shared\n"); 99 " -3 --3wire SI/SO signals shared\n"
100 " -N --no-cs no chip select\n"
101 " -R --ready slave pulls low to pause\n"
102 " -2 --dual dual transfer\n"
103 " -4 --quad quad transfer\n");
85 exit(1); 104 exit(1);
86} 105}
87 106
@@ -101,11 +120,13 @@ static void parse_opts(int argc, char *argv[])
101 { "3wire", 0, 0, '3' }, 120 { "3wire", 0, 0, '3' },
102 { "no-cs", 0, 0, 'N' }, 121 { "no-cs", 0, 0, 'N' },
103 { "ready", 0, 0, 'R' }, 122 { "ready", 0, 0, 'R' },
123 { "dual", 0, 0, '2' },
124 { "quad", 0, 0, '4' },
104 { NULL, 0, 0, 0 }, 125 { NULL, 0, 0, 0 },
105 }; 126 };
106 int c; 127 int c;
107 128
108 c = getopt_long(argc, argv, "D:s:d:b:lHOLC3NR", lopts, NULL); 129 c = getopt_long(argc, argv, "D:s:d:b:lHOLC3NR24", lopts, NULL);
109 130
110 if (c == -1) 131 if (c == -1)
111 break; 132 break;
@@ -147,11 +168,23 @@ static void parse_opts(int argc, char *argv[])
147 case 'R': 168 case 'R':
148 mode |= SPI_READY; 169 mode |= SPI_READY;
149 break; 170 break;
171 case '2':
172 mode |= SPI_TX_DUAL;
173 break;
174 case '4':
175 mode |= SPI_TX_QUAD;
176 break;
150 default: 177 default:
151 print_usage(argv[0]); 178 print_usage(argv[0]);
152 break; 179 break;
153 } 180 }
154 } 181 }
182 if (mode & SPI_LOOP) {
183 if (mode & SPI_TX_DUAL)
184 mode |= SPI_RX_DUAL;
185 if (mode & SPI_TX_QUAD)
186 mode |= SPI_RX_QUAD;
187 }
155} 188}
156 189
157int main(int argc, char *argv[]) 190int main(int argc, char *argv[])
@@ -168,11 +201,11 @@ int main(int argc, char *argv[])
168 /* 201 /*
169 * spi mode 202 * spi mode
170 */ 203 */
171 ret = ioctl(fd, SPI_IOC_WR_MODE, &mode); 204 ret = ioctl(fd, SPI_IOC_WR_MODE32, &mode);
172 if (ret == -1) 205 if (ret == -1)
173 pabort("can't set spi mode"); 206 pabort("can't set spi mode");
174 207
175 ret = ioctl(fd, SPI_IOC_RD_MODE, &mode); 208 ret = ioctl(fd, SPI_IOC_RD_MODE32, &mode);
176 if (ret == -1) 209 if (ret == -1)
177 pabort("can't get spi mode"); 210 pabort("can't get spi mode");
178 211
@@ -198,7 +231,7 @@ int main(int argc, char *argv[])
198 if (ret == -1) 231 if (ret == -1)
199 pabort("can't get max speed hz"); 232 pabort("can't get max speed hz");
200 233
201 printf("spi mode: %d\n", mode); 234 printf("spi mode: 0x%x\n", mode);
202 printf("bits per word: %d\n", bits); 235 printf("bits per word: %d\n", bits);
203 printf("max speed: %d Hz (%d KHz)\n", speed, speed/1000); 236 printf("max speed: %d Hz (%d KHz)\n", speed, speed/1000);
204 237
diff --git a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt
index e55124e7c40c..ec8be46bf48d 100644
--- a/Documentation/sysctl/kernel.txt
+++ b/Documentation/sysctl/kernel.txt
@@ -320,10 +320,11 @@ This file shows up if CONFIG_DETECT_HUNG_TASK is enabled.
320 320
321============================================================== 321==============================================================
322 322
323hung_task_warning: 323hung_task_warnings:
324 324
325The maximum number of warnings to report. During a check interval 325The maximum number of warnings to report. During a check interval
326When this value is reached, no more the warnings will be reported. 326if a hung task is detected, this value is decreased by 1.
327When this value reaches 0, no more warnings will be reported.
327This file shows up if CONFIG_DETECT_HUNG_TASK is enabled. 328This file shows up if CONFIG_DETECT_HUNG_TASK is enabled.
328 329
329-1: report an infinite number of warnings. 330-1: report an infinite number of warnings.
@@ -441,8 +442,7 @@ feature should be disabled. Otherwise, if the system overhead from the
441feature is too high then the rate the kernel samples for NUMA hinting 442feature is too high then the rate the kernel samples for NUMA hinting
442faults may be controlled by the numa_balancing_scan_period_min_ms, 443faults may be controlled by the numa_balancing_scan_period_min_ms,
443numa_balancing_scan_delay_ms, numa_balancing_scan_period_max_ms, 444numa_balancing_scan_delay_ms, numa_balancing_scan_period_max_ms,
444numa_balancing_scan_size_mb, numa_balancing_settle_count sysctls and 445numa_balancing_scan_size_mb, and numa_balancing_settle_count sysctls.
445numa_balancing_migrate_deferred.
446 446
447============================================================== 447==============================================================
448 448
@@ -483,13 +483,6 @@ rate for each task.
483numa_balancing_scan_size_mb is how many megabytes worth of pages are 483numa_balancing_scan_size_mb is how many megabytes worth of pages are
484scanned for a given scan. 484scanned for a given scan.
485 485
486numa_balancing_migrate_deferred is how many page migrations get skipped
487unconditionally, after a page migration is skipped because a page is shared
488with other tasks. This reduces page migration overhead, and determines
489how much stronger the "move task near its memory" policy scheduler becomes,
490versus the "move memory near its task" memory management policy, for workloads
491with shared memory.
492
493============================================================== 486==============================================================
494 487
495osrelease, ostype & version: 488osrelease, ostype & version:
diff --git a/Documentation/trace/events-power.txt b/Documentation/trace/events-power.txt
index 3bd33b8dc7c4..21d514ced212 100644
--- a/Documentation/trace/events-power.txt
+++ b/Documentation/trace/events-power.txt
@@ -92,5 +92,5 @@ dev_pm_qos_remove_request "device=%s type=%s new_value=%d"
92 92
93The first parameter gives the device name which tries to add/update/remove 93The first parameter gives the device name which tries to add/update/remove
94QoS requests. 94QoS requests.
95The second parameter gives the request type (e.g. "DEV_PM_QOS_LATENCY"). 95The second parameter gives the request type (e.g. "DEV_PM_QOS_RESUME_LATENCY").
96The third parameter is value to be added/updated/removed. 96The third parameter is value to be added/updated/removed.
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt
index dce3d05b4823..a9380ba54c8e 100644
--- a/Documentation/virtual/kvm/api.txt
+++ b/Documentation/virtual/kvm/api.txt
@@ -586,8 +586,8 @@ struct kvm_fpu {
586 586
5874.24 KVM_CREATE_IRQCHIP 5874.24 KVM_CREATE_IRQCHIP
588 588
589Capability: KVM_CAP_IRQCHIP 589Capability: KVM_CAP_IRQCHIP, KVM_CAP_S390_IRQCHIP (s390)
590Architectures: x86, ia64, ARM, arm64 590Architectures: x86, ia64, ARM, arm64, s390
591Type: vm ioctl 591Type: vm ioctl
592Parameters: none 592Parameters: none
593Returns: 0 on success, -1 on error 593Returns: 0 on success, -1 on error
@@ -596,7 +596,10 @@ Creates an interrupt controller model in the kernel. On x86, creates a virtual
596ioapic, a virtual PIC (two PICs, nested), and sets up future vcpus to have a 596ioapic, a virtual PIC (two PICs, nested), and sets up future vcpus to have a
597local APIC. IRQ routing for GSIs 0-15 is set to both PIC and IOAPIC; GSI 16-23 597local APIC. IRQ routing for GSIs 0-15 is set to both PIC and IOAPIC; GSI 16-23
598only go to the IOAPIC. On ia64, a IOSAPIC is created. On ARM/arm64, a GIC is 598only go to the IOAPIC. On ia64, a IOSAPIC is created. On ARM/arm64, a GIC is
599created. 599created. On s390, a dummy irq routing table is created.
600
601Note that on s390 the KVM_CAP_S390_IRQCHIP vm capability needs to be enabled
602before KVM_CREATE_IRQCHIP can be used.
600 603
601 604
6024.25 KVM_IRQ_LINE 6054.25 KVM_IRQ_LINE
@@ -612,6 +615,20 @@ On some architectures it is required that an interrupt controller model has
612been previously created with KVM_CREATE_IRQCHIP. Note that edge-triggered 615been previously created with KVM_CREATE_IRQCHIP. Note that edge-triggered
613interrupts require the level to be set to 1 and then back to 0. 616interrupts require the level to be set to 1 and then back to 0.
614 617
618On real hardware, interrupt pins can be active-low or active-high. This
619does not matter for the level field of struct kvm_irq_level: 1 always
620means active (asserted), 0 means inactive (deasserted).
621
622x86 allows the operating system to program the interrupt polarity
623(active-low/active-high) for level-triggered interrupts, and KVM used
624to consider the polarity. However, due to bitrot in the handling of
625active-low interrupts, the above convention is now valid on x86 too.
626This is signaled by KVM_CAP_X86_IOAPIC_POLARITY_IGNORED. Userspace
627should not present interrupts to the guest as active-low unless this
628capability is present (or unless it is not using the in-kernel irqchip,
629of course).
630
631
615ARM/arm64 can signal an interrupt either at the CPU level, or at the 632ARM/arm64 can signal an interrupt either at the CPU level, or at the
616in-kernel irqchip (GIC), and for in-kernel irqchip can tell the GIC to 633in-kernel irqchip (GIC), and for in-kernel irqchip can tell the GIC to
617use PPIs designated for specific cpus. The irq field is interpreted 634use PPIs designated for specific cpus. The irq field is interpreted
@@ -628,7 +645,7 @@ The irq_type field has the following values:
628 645
629(The irq_id field thus corresponds nicely to the IRQ ID in the ARM GIC specs) 646(The irq_id field thus corresponds nicely to the IRQ ID in the ARM GIC specs)
630 647
631In both cases, level is used to raise/lower the line. 648In both cases, level is used to assert/deassert the line.
632 649
633struct kvm_irq_level { 650struct kvm_irq_level {
634 union { 651 union {
@@ -918,9 +935,9 @@ documentation when it pops into existence).
918 935
9194.37 KVM_ENABLE_CAP 9364.37 KVM_ENABLE_CAP
920 937
921Capability: KVM_CAP_ENABLE_CAP 938Capability: KVM_CAP_ENABLE_CAP, KVM_CAP_ENABLE_CAP_VM
922Architectures: ppc, s390 939Architectures: ppc, s390
923Type: vcpu ioctl 940Type: vcpu ioctl, vm ioctl (with KVM_CAP_ENABLE_CAP_VM)
924Parameters: struct kvm_enable_cap (in) 941Parameters: struct kvm_enable_cap (in)
925Returns: 0 on success; -1 on error 942Returns: 0 on success; -1 on error
926 943
@@ -951,6 +968,8 @@ function properly, this is the place to put them.
951 __u8 pad[64]; 968 __u8 pad[64];
952}; 969};
953 970
971The vcpu ioctl should be used for vcpu-specific capabilities, the vm ioctl
972for vm-wide capabilities.
954 973
9554.38 KVM_GET_MP_STATE 9744.38 KVM_GET_MP_STATE
956 975
@@ -1320,7 +1339,7 @@ KVM_ASSIGN_DEV_IRQ. Partial deassignment of host or guest IRQ is allowed.
13204.52 KVM_SET_GSI_ROUTING 13394.52 KVM_SET_GSI_ROUTING
1321 1340
1322Capability: KVM_CAP_IRQ_ROUTING 1341Capability: KVM_CAP_IRQ_ROUTING
1323Architectures: x86 ia64 1342Architectures: x86 ia64 s390
1324Type: vm ioctl 1343Type: vm ioctl
1325Parameters: struct kvm_irq_routing (in) 1344Parameters: struct kvm_irq_routing (in)
1326Returns: 0 on success, -1 on error 1345Returns: 0 on success, -1 on error
@@ -1343,6 +1362,7 @@ struct kvm_irq_routing_entry {
1343 union { 1362 union {
1344 struct kvm_irq_routing_irqchip irqchip; 1363 struct kvm_irq_routing_irqchip irqchip;
1345 struct kvm_irq_routing_msi msi; 1364 struct kvm_irq_routing_msi msi;
1365 struct kvm_irq_routing_s390_adapter adapter;
1346 __u32 pad[8]; 1366 __u32 pad[8];
1347 } u; 1367 } u;
1348}; 1368};
@@ -1350,6 +1370,7 @@ struct kvm_irq_routing_entry {
1350/* gsi routing entry types */ 1370/* gsi routing entry types */
1351#define KVM_IRQ_ROUTING_IRQCHIP 1 1371#define KVM_IRQ_ROUTING_IRQCHIP 1
1352#define KVM_IRQ_ROUTING_MSI 2 1372#define KVM_IRQ_ROUTING_MSI 2
1373#define KVM_IRQ_ROUTING_S390_ADAPTER 3
1353 1374
1354No flags are specified so far, the corresponding field must be set to zero. 1375No flags are specified so far, the corresponding field must be set to zero.
1355 1376
@@ -1365,6 +1386,14 @@ struct kvm_irq_routing_msi {
1365 __u32 pad; 1386 __u32 pad;
1366}; 1387};
1367 1388
1389struct kvm_irq_routing_s390_adapter {
1390 __u64 ind_addr;
1391 __u64 summary_addr;
1392 __u64 ind_offset;
1393 __u32 summary_offset;
1394 __u32 adapter_id;
1395};
1396
1368 1397
13694.53 KVM_ASSIGN_SET_MSIX_NR 13984.53 KVM_ASSIGN_SET_MSIX_NR
1370 1399
@@ -2566,6 +2595,10 @@ executed a memory-mapped I/O instruction which could not be satisfied
2566by kvm. The 'data' member contains the written data if 'is_write' is 2595by kvm. The 'data' member contains the written data if 'is_write' is
2567true, and should be filled by application code otherwise. 2596true, and should be filled by application code otherwise.
2568 2597
2598The 'data' member contains, in its first 'len' bytes, the value as it would
2599appear if the VCPU performed a load or store of the appropriate width directly
2600to the byte array.
2601
2569NOTE: For KVM_EXIT_IO, KVM_EXIT_MMIO, KVM_EXIT_OSI, KVM_EXIT_DCR, 2602NOTE: For KVM_EXIT_IO, KVM_EXIT_MMIO, KVM_EXIT_OSI, KVM_EXIT_DCR,
2570 KVM_EXIT_PAPR and KVM_EXIT_EPR the corresponding 2603 KVM_EXIT_PAPR and KVM_EXIT_EPR the corresponding
2571operations are complete (and guest state is consistent) only after userspace 2604operations are complete (and guest state is consistent) only after userspace
diff --git a/Documentation/virtual/kvm/devices/s390_flic.txt b/Documentation/virtual/kvm/devices/s390_flic.txt
new file mode 100644
index 000000000000..4ceef53164b0
--- /dev/null
+++ b/Documentation/virtual/kvm/devices/s390_flic.txt
@@ -0,0 +1,91 @@
1FLIC (floating interrupt controller)
2====================================
3
4FLIC handles floating (non per-cpu) interrupts, i.e. I/O, service and some
5machine check interruptions. All interrupts are stored in a per-vm list of
6pending interrupts. FLIC performs operations on this list.
7
8Only one FLIC instance may be instantiated.
9
10FLIC provides support to
11- add interrupts (KVM_DEV_FLIC_ENQUEUE)
12- inspect currently pending interrupts (KVM_FLIC_GET_ALL_IRQS)
13- purge all pending floating interrupts (KVM_DEV_FLIC_CLEAR_IRQS)
14- enable/disable for the guest transparent async page faults
15- register and modify adapter interrupt sources (KVM_DEV_FLIC_ADAPTER_*)
16
17Groups:
18 KVM_DEV_FLIC_ENQUEUE
19 Passes a buffer and length into the kernel which are then injected into
20 the list of pending interrupts.
21 attr->addr contains the pointer to the buffer and attr->attr contains
22 the length of the buffer.
23 The format of the data structure kvm_s390_irq as it is copied from userspace
24 is defined in usr/include/linux/kvm.h.
25
26 KVM_DEV_FLIC_GET_ALL_IRQS
27 Copies all floating interrupts into a buffer provided by userspace.
28 When the buffer is too small it returns -ENOMEM, which is the indication
29 for userspace to try again with a bigger buffer.
30 All interrupts remain pending, i.e. are not deleted from the list of
31 currently pending interrupts.
32 attr->addr contains the userspace address of the buffer into which all
33 interrupt data will be copied.
34 attr->attr contains the size of the buffer in bytes.
35
36 KVM_DEV_FLIC_CLEAR_IRQS
37 Simply deletes all elements from the list of currently pending floating
38 interrupts. No interrupts are injected into the guest.
39
40 KVM_DEV_FLIC_APF_ENABLE
41 Enables async page faults for the guest. So in case of a major page fault
42 the host is allowed to handle this async and continues the guest.
43
44 KVM_DEV_FLIC_APF_DISABLE_WAIT
45 Disables async page faults for the guest and waits until already pending
46 async page faults are done. This is necessary to trigger a completion interrupt
47 for every init interrupt before migrating the interrupt list.
48
49 KVM_DEV_FLIC_ADAPTER_REGISTER
50 Register an I/O adapter interrupt source. Takes a kvm_s390_io_adapter
51 describing the adapter to register:
52
53struct kvm_s390_io_adapter {
54 __u32 id;
55 __u8 isc;
56 __u8 maskable;
57 __u8 swap;
58 __u8 pad;
59};
60
61 id contains the unique id for the adapter, isc the I/O interruption subclass
62 to use, maskable whether this adapter may be masked (interrupts turned off)
63 and swap whether the indicators need to be byte swapped.
64
65
66 KVM_DEV_FLIC_ADAPTER_MODIFY
67 Modifies attributes of an existing I/O adapter interrupt source. Takes
68 a kvm_s390_io_adapter_req specifiying the adapter and the operation:
69
70struct kvm_s390_io_adapter_req {
71 __u32 id;
72 __u8 type;
73 __u8 mask;
74 __u16 pad0;
75 __u64 addr;
76};
77
78 id specifies the adapter and type the operation. The supported operations
79 are:
80
81 KVM_S390_IO_ADAPTER_MASK
82 mask or unmask the adapter, as specified in mask
83
84 KVM_S390_IO_ADAPTER_MAP
85 perform a gmap translation for the guest address provided in addr,
86 pin a userspace page for the translated address and add it to the
87 list of mappings
88
89 KVM_S390_IO_ADAPTER_UNMAP
90 release a userspace page for the translated address specified in addr
91 from the list of mappings
diff --git a/Documentation/w1/masters/ds2490 b/Documentation/w1/masters/ds2490
index 28176def3d6f..3e091151dd80 100644
--- a/Documentation/w1/masters/ds2490
+++ b/Documentation/w1/masters/ds2490
@@ -21,8 +21,6 @@ Notes and limitations.
21- The weak pullup current is a minimum of 0.9mA and maximum of 6.0mA. 21- The weak pullup current is a minimum of 0.9mA and maximum of 6.0mA.
22- The 5V strong pullup is supported with a minimum of 5.9mA and a 22- The 5V strong pullup is supported with a minimum of 5.9mA and a
23 maximum of 30.4 mA. (From DS2490.pdf) 23 maximum of 30.4 mA. (From DS2490.pdf)
24- While the ds2490 supports a hardware search the code doesn't take
25 advantage of it (in tested case it only returned first device).
26- The hardware will detect when devices are attached to the bus on the 24- The hardware will detect when devices are attached to the bus on the
27 next bus (reset?) operation, however only a message is printed as 25 next bus (reset?) operation, however only a message is printed as
28 the core w1 code doesn't make use of the information. Connecting 26 the core w1 code doesn't make use of the information. Connecting
diff --git a/Documentation/w1/w1.netlink b/Documentation/w1/w1.netlink
index f59a31965d50..927a52cc0519 100644
--- a/Documentation/w1/w1.netlink
+++ b/Documentation/w1/w1.netlink
@@ -5,8 +5,8 @@ Message types.
5============= 5=============
6 6
7There are three types of messages between w1 core and userspace: 7There are three types of messages between w1 core and userspace:
81. Events. They are generated each time new master or slave device 81. Events. They are generated each time a new master or slave device
9 found either due to automatic or requested search. 9 is found either due to automatic or requested search.
102. Userspace commands. 102. Userspace commands.
113. Replies to userspace commands. 113. Replies to userspace commands.
12 12
@@ -131,7 +131,7 @@ of the w1_netlink_cmd structure and cn_msg.len will be equal to the sum
131of the sizeof(struct w1_netlink_msg) and sizeof(struct w1_netlink_cmd). 131of the sizeof(struct w1_netlink_msg) and sizeof(struct w1_netlink_cmd).
132If reply is generated for master or root command (which do not have 132If reply is generated for master or root command (which do not have
133w1_netlink_cmd attached), reply will contain only cn_msg and w1_netlink_msg 133w1_netlink_cmd attached), reply will contain only cn_msg and w1_netlink_msg
134structires. 134structures.
135 135
136w1_netlink_msg.status field will carry positive error value 136w1_netlink_msg.status field will carry positive error value
137(EINVAL for example) or zero in case of success. 137(EINVAL for example) or zero in case of success.
@@ -160,7 +160,7 @@ procedure is started to select given device.
160Then all requested in w1_netlink_msg operations are performed one by one. 160Then all requested in w1_netlink_msg operations are performed one by one.
161If command requires reply (like read command) it is sent on command completion. 161If command requires reply (like read command) it is sent on command completion.
162 162
163When all commands (w1_netlink_cmd) are processed muster device is unlocked 163When all commands (w1_netlink_cmd) are processed master device is unlocked
164and next w1_netlink_msg header processing started. 164and next w1_netlink_msg header processing started.
165 165
166 166
diff --git a/Documentation/watchdog/watchdog-parameters.txt b/Documentation/watchdog/watchdog-parameters.txt
index f9492fed4104..692791cc674c 100644
--- a/Documentation/watchdog/watchdog-parameters.txt
+++ b/Documentation/watchdog/watchdog-parameters.txt
@@ -150,6 +150,8 @@ nowayout: Disable watchdog shutdown on close
150------------------------------------------------- 150-------------------------------------------------
151it87_wdt: 151it87_wdt:
152nogameport: Forbid the activation of game port, default=0 152nogameport: Forbid the activation of game port, default=0
153nocir: Forbid the use of CIR (workaround for some buggy setups); set to 1 if
154system resets despite watchdog daemon running, default=0
153exclusive: Watchdog exclusive device open, default=1 155exclusive: Watchdog exclusive device open, default=1
154timeout: Watchdog timeout in seconds, default=60 156timeout: Watchdog timeout in seconds, default=60
155testmode: Watchdog test mode (1 = no reboot), default=0 157testmode: Watchdog test mode (1 = no reboot), default=0
@@ -325,6 +327,11 @@ soft_noboot: Softdog action, set to 1 to ignore reboots, 0 to reboot
325stmp3xxx_wdt: 327stmp3xxx_wdt:
326heartbeat: Watchdog heartbeat period in seconds from 1 to 4194304, default 19 328heartbeat: Watchdog heartbeat period in seconds from 1 to 4194304, default 19
327------------------------------------------------- 329-------------------------------------------------
330tegra_wdt:
331heartbeat: Watchdog heartbeats in seconds. (default = 120)
332nowayout: Watchdog cannot be stopped once started
333 (default=kernel config parameter)
334-------------------------------------------------
328ts72xx_wdt: 335ts72xx_wdt:
329timeout: Watchdog timeout in seconds. (1 <= timeout <= 8, default=8) 336timeout: Watchdog timeout in seconds. (1 <= timeout <= 8, default=8)
330nowayout: Disable watchdog shutdown on close 337nowayout: Disable watchdog shutdown on close
diff --git a/Documentation/x86/boot.txt b/Documentation/x86/boot.txt
index cb81741d3b0b..a75e3adaa39d 100644
--- a/Documentation/x86/boot.txt
+++ b/Documentation/x86/boot.txt
@@ -182,7 +182,7 @@ Offset Proto Name Meaning
1820226/1 2.02+(3 ext_loader_ver Extended boot loader version 1820226/1 2.02+(3 ext_loader_ver Extended boot loader version
1830227/1 2.02+(3 ext_loader_type Extended boot loader ID 1830227/1 2.02+(3 ext_loader_type Extended boot loader ID
1840228/4 2.02+ cmd_line_ptr 32-bit pointer to the kernel command line 1840228/4 2.02+ cmd_line_ptr 32-bit pointer to the kernel command line
185022C/4 2.03+ ramdisk_max Highest legal initrd address 185022C/4 2.03+ initrd_addr_max Highest legal initrd address
1860230/4 2.05+ kernel_alignment Physical addr alignment required for kernel 1860230/4 2.05+ kernel_alignment Physical addr alignment required for kernel
1870234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not 1870234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not
1880235/1 2.10+ min_alignment Minimum alignment, as a power of two 1880235/1 2.10+ min_alignment Minimum alignment, as a power of two
@@ -534,7 +534,7 @@ Protocol: 2.02+
534 zero, the kernel will assume that your boot loader does not support 534 zero, the kernel will assume that your boot loader does not support
535 the 2.02+ protocol. 535 the 2.02+ protocol.
536 536
537Field name: ramdisk_max 537Field name: initrd_addr_max
538Type: read 538Type: read
539Offset/size: 0x22c/4 539Offset/size: 0x22c/4
540Protocol: 2.03+ 540Protocol: 2.03+