aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/devicetree')
-rw-r--r--Documentation/devicetree/bindings/arm/altera/socfpga-sdram-edac.txt15
-rw-r--r--Documentation/devicetree/bindings/arm/amlogic.txt8
-rw-r--r--Documentation/devicetree/bindings/arm/atmel-at91.txt45
-rw-r--r--Documentation/devicetree/bindings/arm/bcm/bcm63138.txt9
-rw-r--r--Documentation/devicetree/bindings/arm/cavium-thunder.txt10
-rw-r--r--Documentation/devicetree/bindings/arm/cpus.txt9
-rw-r--r--Documentation/devicetree/bindings/arm/exynos/power_domain.txt13
-rw-r--r--Documentation/devicetree/bindings/arm/geniatech.txt5
-rw-r--r--Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt23
-rw-r--r--Documentation/devicetree/bindings/arm/idle-states.txt679
-rw-r--r--Documentation/devicetree/bindings/arm/l2cc.txt10
-rw-r--r--Documentation/devicetree/bindings/arm/mediatek.txt6
-rw-r--r--Documentation/devicetree/bindings/arm/omap/mpu.txt3
-rw-r--r--Documentation/devicetree/bindings/arm/omap/omap.txt12
-rw-r--r--Documentation/devicetree/bindings/arm/psci.txt14
-rw-r--r--Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt18
-rw-r--r--Documentation/devicetree/bindings/arm/shmobile.txt71
-rw-r--r--Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-flowctrl.txt12
-rw-r--r--Documentation/devicetree/bindings/ata/qcom-sata.txt48
-rw-r--r--Documentation/devicetree/bindings/bus/bcma.txt32
-rw-r--r--Documentation/devicetree/bindings/clock/arm-integrator.txt2
-rw-r--r--Documentation/devicetree/bindings/clock/at91-clock.txt14
-rw-r--r--Documentation/devicetree/bindings/clock/exynos3250-clock.txt10
-rw-r--r--Documentation/devicetree/bindings/clock/gpio-gate-clock.txt21
-rw-r--r--Documentation/devicetree/bindings/clock/maxim,max77686.txt16
-rw-r--r--Documentation/devicetree/bindings/clock/maxim,max77802.txt44
-rw-r--r--Documentation/devicetree/bindings/clock/pxa-clock.txt16
-rw-r--r--Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt3
-rw-r--r--Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt1
-rw-r--r--Documentation/devicetree/bindings/clock/sunxi.txt4
-rw-r--r--Documentation/devicetree/bindings/cpufreq/cpufreq-dt.txt (renamed from Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt)8
-rw-r--r--Documentation/devicetree/bindings/crypto/fsl-sec6.txt2
-rw-r--r--Documentation/devicetree/bindings/dma/rcar-audmapp.txt6
-rw-r--r--Documentation/devicetree/bindings/drm/tilcdc/panel.txt7
-rw-r--r--Documentation/devicetree/bindings/extcon/extcon-rt8973a.txt25
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio-dsp-keystone.txt39
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio-pca953x.txt39
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio-restart.txt54
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio-xgene.txt22
-rw-r--r--Documentation/devicetree/bindings/gpio/mrvl-gpio.txt15
-rw-r--r--Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt3
-rw-r--r--Documentation/devicetree/bindings/i2c/ti,bq32k.txt18
-rw-r--r--Documentation/devicetree/bindings/i2c/trivial-devices.txt3
-rw-r--r--Documentation/devicetree/bindings/iio/adc/rockchip-saradc.txt24
-rw-r--r--Documentation/devicetree/bindings/iio/adc/vf610-adc.txt2
-rw-r--r--Documentation/devicetree/bindings/iio/dac/max5821.txt14
-rw-r--r--Documentation/devicetree/bindings/input/atmel,maxtouch.txt11
-rw-r--r--Documentation/devicetree/bindings/input/ti,drv260x.txt50
-rw-r--r--Documentation/devicetree/bindings/input/ti,drv2667.txt17
-rw-r--r--Documentation/devicetree/bindings/input/ti,palmas-pwrbutton.txt36
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/atmel,aic.txt2
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7120-l2-intc.txt86
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/interrupts.txt12
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt8
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt32
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/ti,keystone-irq.txt36
-rw-r--r--Documentation/devicetree/bindings/iommu/arm,smmu.txt1
-rw-r--r--Documentation/devicetree/bindings/leds/register-bit-led.txt99
-rw-r--r--Documentation/devicetree/bindings/mailbox/omap-mailbox.txt108
-rw-r--r--Documentation/devicetree/bindings/media/hix5hd2-ir.txt25
-rw-r--r--Documentation/devicetree/bindings/memory-controllers/synopsys.txt11
-rw-r--r--Documentation/devicetree/bindings/mfd/arizona.txt7
-rw-r--r--Documentation/devicetree/bindings/mfd/atmel-gpbr.txt15
-rw-r--r--Documentation/devicetree/bindings/mfd/hi6421.txt38
-rw-r--r--Documentation/devicetree/bindings/mfd/max14577.txt146
-rw-r--r--Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.txt64
-rw-r--r--Documentation/devicetree/bindings/mfd/qcom-pm8xxx.txt (renamed from Documentation/devicetree/bindings/mfd/qcom,pm8xxx.txt)1
-rw-r--r--Documentation/devicetree/bindings/mfd/rk808.txt177
-rw-r--r--Documentation/devicetree/bindings/mfd/rn5t618.txt36
-rw-r--r--Documentation/devicetree/bindings/mfd/s2mps11.txt2
-rw-r--r--Documentation/devicetree/bindings/mfd/stmpe.txt1
-rw-r--r--Documentation/devicetree/bindings/mfd/tc3589x.txt107
-rw-r--r--Documentation/devicetree/bindings/mfd/twl4030-power.txt9
-rw-r--r--Documentation/devicetree/bindings/mmc/mmc.txt2
-rw-r--r--Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt6
-rw-r--r--Documentation/devicetree/bindings/mmc/tmio_mmc.txt3
-rw-r--r--Documentation/devicetree/bindings/mtd/gpmc-nand.txt8
-rw-r--r--Documentation/devicetree/bindings/net/apm-xgene-enet.txt4
-rw-r--r--Documentation/devicetree/bindings/net/broadcom-mdio-unimac.txt39
-rw-r--r--Documentation/devicetree/bindings/net/broadcom-sf2.txt78
-rw-r--r--Documentation/devicetree/bindings/net/can/m_can.txt67
-rw-r--r--Documentation/devicetree/bindings/net/can/rcar_can.txt43
-rw-r--r--Documentation/devicetree/bindings/net/cpsw.txt6
-rw-r--r--Documentation/devicetree/bindings/net/dsa/dsa.txt17
-rw-r--r--Documentation/devicetree/bindings/net/emac_rockchip.txt50
-rw-r--r--Documentation/devicetree/bindings/net/fsl-fec.txt6
-rw-r--r--Documentation/devicetree/bindings/net/marvell-pxa168.txt36
-rw-r--r--Documentation/devicetree/bindings/net/meson-dwmac.txt25
-rw-r--r--Documentation/devicetree/bindings/net/micrel.txt6
-rw-r--r--Documentation/devicetree/bindings/net/nfc/st21nfcb.txt2
-rw-r--r--Documentation/devicetree/bindings/net/nfc/trf7970a.txt8
-rw-r--r--Documentation/devicetree/bindings/net/qca-qca7000-spi.txt47
-rw-r--r--Documentation/devicetree/bindings/net/samsung-sxgbe.txt2
-rw-r--r--Documentation/devicetree/bindings/net/socfpga-dwmac.txt4
-rw-r--r--Documentation/devicetree/bindings/net/stmmac.txt6
-rw-r--r--Documentation/devicetree/bindings/panel/auo,b101xtn01.txt7
-rw-r--r--Documentation/devicetree/bindings/pci/designware-pcie.txt7
-rw-r--r--Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt4
-rw-r--r--Documentation/devicetree/bindings/pci/fsl,pci.txt27
-rw-r--r--Documentation/devicetree/bindings/pci/host-generic-pci.txt2
-rw-r--r--Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt25
-rw-r--r--Documentation/devicetree/bindings/pci/pci-keystone.txt63
-rw-r--r--Documentation/devicetree/bindings/pci/ti-pci.txt59
-rw-r--r--Documentation/devicetree/bindings/pci/xgene-pci.txt57
-rw-r--r--Documentation/devicetree/bindings/pci/xilinx-pcie.txt62
-rw-r--r--Documentation/devicetree/bindings/phy/phy-bindings.txt2
-rw-r--r--Documentation/devicetree/bindings/phy/phy-stih407-usb.txt30
-rw-r--r--Documentation/devicetree/bindings/phy/phy-stih41x-usb.txt24
-rw-r--r--Documentation/devicetree/bindings/phy/qcom-dwc3-usb-phy.txt39
-rw-r--r--Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt51
-rw-r--r--Documentation/devicetree/bindings/phy/samsung-phy.txt7
-rw-r--r--Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt22
-rw-r--r--Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-pinmux.txt14
-rw-r--r--Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt50
-rw-r--r--Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt4
-rw-r--r--Documentation/devicetree/bindings/pinctrl/qcom,apq8084-pinctrl.txt179
-rw-r--r--Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt6
-rw-r--r--Documentation/devicetree/bindings/pinctrl/ti,omap-pinctrl.txt13
-rw-r--r--Documentation/devicetree/bindings/power/power_domain.txt49
-rw-r--r--Documentation/devicetree/bindings/power/reset/ltc2952-poweroff.txt26
-rw-r--r--Documentation/devicetree/bindings/power/reset/st-reset.txt11
-rw-r--r--Documentation/devicetree/bindings/power/reset/syscon-reboot.txt23
-rw-r--r--Documentation/devicetree/bindings/power/rockchip-io-domain.txt83
-rw-r--r--Documentation/devicetree/bindings/power_supply/charger-manager.txt2
-rw-r--r--Documentation/devicetree/bindings/regmap/regmap.txt47
-rw-r--r--Documentation/devicetree/bindings/regulator/da9210.txt4
-rw-r--r--Documentation/devicetree/bindings/regulator/da9211.txt63
-rw-r--r--Documentation/devicetree/bindings/regulator/fan53555.txt23
-rw-r--r--Documentation/devicetree/bindings/regulator/isl9305.txt36
-rw-r--r--Documentation/devicetree/bindings/regulator/max1586-regulator.txt28
-rw-r--r--Documentation/devicetree/bindings/regulator/max77802.txt53
-rw-r--r--Documentation/devicetree/bindings/regulator/pwm-regulator.txt27
-rw-r--r--Documentation/devicetree/bindings/regulator/sky81452-regulator.txt16
-rw-r--r--Documentation/devicetree/bindings/regulator/tps65090.txt4
-rw-r--r--Documentation/devicetree/bindings/rng/apm,rng.txt17
-rw-r--r--Documentation/devicetree/bindings/rtc/dallas,ds1339.txt18
-rw-r--r--Documentation/devicetree/bindings/rtc/s3c-rtc.txt3
-rw-r--r--Documentation/devicetree/bindings/rtc/sun6i-rtc.txt17
-rw-r--r--Documentation/devicetree/bindings/serial/cirrus,clps711x-uart.txt7
-rw-r--r--Documentation/devicetree/bindings/serial/mtk-uart.txt22
-rw-r--r--Documentation/devicetree/bindings/serial/of-serial.txt2
-rw-r--r--Documentation/devicetree/bindings/serial/via,vt8500-uart.txt17
-rw-r--r--Documentation/devicetree/bindings/serial/vt8500-uart.txt3
-rw-r--r--Documentation/devicetree/bindings/soc/ti/keystone-navigator-dma.txt111
-rw-r--r--Documentation/devicetree/bindings/soc/ti/keystone-navigator-qmss.txt232
-rw-r--r--Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt2
-rw-r--r--Documentation/devicetree/bindings/sound/adi,ssm2602.txt19
-rw-r--r--Documentation/devicetree/bindings/sound/cs35l32.txt62
-rw-r--r--Documentation/devicetree/bindings/sound/es8328.txt38
-rw-r--r--Documentation/devicetree/bindings/sound/fsl,esai.txt3
-rw-r--r--Documentation/devicetree/bindings/sound/fsl,ssi.txt8
-rw-r--r--Documentation/devicetree/bindings/sound/fsl-asoc-card.txt82
-rw-r--r--Documentation/devicetree/bindings/sound/fsl-sai.txt30
-rw-r--r--Documentation/devicetree/bindings/sound/imx-audio-es8328.txt60
-rw-r--r--Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt1
-rw-r--r--Documentation/devicetree/bindings/sound/rockchip-i2s.txt2
-rw-r--r--Documentation/devicetree/bindings/sound/rt5677.txt59
-rw-r--r--Documentation/devicetree/bindings/sound/simple-card.txt4
-rw-r--r--Documentation/devicetree/bindings/sound/ssm4567.txt15
-rw-r--r--Documentation/devicetree/bindings/sound/st,sta350.txt2
-rw-r--r--Documentation/devicetree/bindings/spi/fsl-imx-cspi.txt5
-rw-r--r--Documentation/devicetree/bindings/spi/sh-msiof.txt23
-rw-r--r--Documentation/devicetree/bindings/spi/spi-davinci.txt30
-rw-r--r--Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt7
-rw-r--r--Documentation/devicetree/bindings/spi/spi-orion.txt2
-rw-r--r--Documentation/devicetree/bindings/spi/spi-rockchip.txt8
-rw-r--r--Documentation/devicetree/bindings/spi/spi-rspi.txt10
-rw-r--r--Documentation/devicetree/bindings/staging/imx-drm/ldb.txt15
-rw-r--r--Documentation/devicetree/bindings/timer/amlogic,meson6-timer.txt15
-rw-r--r--Documentation/devicetree/bindings/timer/renesas,cmt.txt44
-rw-r--r--Documentation/devicetree/bindings/timer/renesas,mtu2.txt7
-rw-r--r--Documentation/devicetree/bindings/timer/renesas,tmu.txt7
-rw-r--r--Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt41
-rw-r--r--Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt2
-rw-r--r--Documentation/devicetree/bindings/usb/dwc2.txt5
-rw-r--r--Documentation/devicetree/bindings/usb/dwc3-st.txt68
-rw-r--r--Documentation/devicetree/bindings/usb/ehci-st.txt39
-rw-r--r--Documentation/devicetree/bindings/usb/mxs-phy.txt2
-rw-r--r--Documentation/devicetree/bindings/usb/ohci-st.txt37
-rw-r--r--Documentation/devicetree/bindings/usb/qcom,dwc3.txt66
-rw-r--r--Documentation/devicetree/bindings/usb/renesas_usbhs.txt24
-rw-r--r--Documentation/devicetree/bindings/usb/udc-xilinx.txt18
-rw-r--r--Documentation/devicetree/bindings/usb/usb3503.txt4
-rw-r--r--Documentation/devicetree/bindings/usb/usbmisc-imx.txt1
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt16
-rw-r--r--Documentation/devicetree/bindings/video/adi,adv7123.txt50
-rw-r--r--Documentation/devicetree/bindings/video/analog-tv-connector.txt4
-rw-r--r--Documentation/devicetree/bindings/video/atmel,lcdc.txt4
-rw-r--r--Documentation/devicetree/bindings/video/exynos_dsim.txt1
-rw-r--r--Documentation/devicetree/bindings/video/fsl,imx-fb.txt2
-rw-r--r--Documentation/devicetree/bindings/video/renesas,du.txt84
-rw-r--r--Documentation/devicetree/bindings/video/samsung-fimd.txt1
-rw-r--r--Documentation/devicetree/bindings/video/thine,thc63lvdm83d50
-rw-r--r--Documentation/devicetree/bindings/video/vga-connector.txt36
-rw-r--r--Documentation/devicetree/bindings/xillybus/xillybus.txt (renamed from Documentation/devicetree/bindings/staging/xillybus.txt)0
-rw-r--r--Documentation/devicetree/booting-without-of.txt53
-rw-r--r--Documentation/devicetree/dynamic-resolution-notes.txt25
-rw-r--r--Documentation/devicetree/of_selftest.txt211
198 files changed, 5993 insertions, 165 deletions
diff --git a/Documentation/devicetree/bindings/arm/altera/socfpga-sdram-edac.txt b/Documentation/devicetree/bindings/arm/altera/socfpga-sdram-edac.txt
new file mode 100644
index 000000000000..d0ce01da5c59
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/altera/socfpga-sdram-edac.txt
@@ -0,0 +1,15 @@
1Altera SOCFPGA SDRAM Error Detection & Correction [EDAC]
2The EDAC accesses a range of registers in the SDRAM controller.
3
4Required properties:
5- compatible : should contain "altr,sdram-edac";
6- altr,sdr-syscon : phandle of the sdr module
7- interrupts : Should contain the SDRAM ECC IRQ in the
8 appropriate format for the IRQ controller.
9
10Example:
11 sdramedac {
12 compatible = "altr,sdram-edac";
13 altr,sdr-syscon = <&sdr>;
14 interrupts = <0 39 4>;
15 };
diff --git a/Documentation/devicetree/bindings/arm/amlogic.txt b/Documentation/devicetree/bindings/arm/amlogic.txt
new file mode 100644
index 000000000000..7eece72b1a35
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/amlogic.txt
@@ -0,0 +1,8 @@
1Amlogic MesonX device tree bindings
2-------------------------------------------
3
4Boards with the Amlogic Meson6 SoC shall have the following properties:
5
6Required root node property:
7
8compatible = "amlogic,meson6";
diff --git a/Documentation/devicetree/bindings/arm/atmel-at91.txt b/Documentation/devicetree/bindings/arm/atmel-at91.txt
index 16f60b41c147..562cda9d86d9 100644
--- a/Documentation/devicetree/bindings/arm/atmel-at91.txt
+++ b/Documentation/devicetree/bindings/arm/atmel-at91.txt
@@ -1,6 +1,43 @@
1Atmel AT91 device tree bindings. 1Atmel AT91 device tree bindings.
2================================ 2================================
3 3
4Boards with a SoC of the Atmel AT91 or SMART family shall have the following
5properties:
6
7Required root node properties:
8compatible: must be one of:
9 * "atmel,at91rm9200"
10
11 * "atmel,at91sam9" for SoCs using an ARM926EJ-S core, shall be extended with
12 the specific SoC family or compatible:
13 o "atmel,at91sam9260"
14 o "atmel,at91sam9261"
15 o "atmel,at91sam9263"
16 o "atmel,at91sam9x5" for the 5 series, shall be extended with the specific
17 SoC compatible:
18 - "atmel,at91sam9g15"
19 - "atmel,at91sam9g25"
20 - "atmel,at91sam9g35"
21 - "atmel,at91sam9x25"
22 - "atmel,at91sam9x35"
23 o "atmel,at91sam9g20"
24 o "atmel,at91sam9g45"
25 o "atmel,at91sam9n12"
26 o "atmel,at91sam9rl"
27 * "atmel,sama5" for SoCs using a Cortex-A5, shall be extended with the specific
28 SoC family:
29 o "atmel,sama5d3" shall be extended with the specific SoC compatible:
30 - "atmel,sama5d31"
31 - "atmel,sama5d33"
32 - "atmel,sama5d34"
33 - "atmel,sama5d35"
34 - "atmel,sama5d36"
35 o "atmel,sama5d4" shall be extended with the specific SoC compatible:
36 - "atmel,sama5d41"
37 - "atmel,sama5d42"
38 - "atmel,sama5d43"
39 - "atmel,sama5d44"
40
4PIT Timer required properties: 41PIT Timer required properties:
5- compatible: Should be "atmel,at91sam9260-pit" 42- compatible: Should be "atmel,at91sam9260-pit"
6- reg: Should contain registers location and length 43- reg: Should contain registers location and length
@@ -61,8 +98,8 @@ RAMC SDRAM/DDR Controller required properties:
61- compatible: Should be "atmel,at91rm9200-sdramc", 98- compatible: Should be "atmel,at91rm9200-sdramc",
62 "atmel,at91sam9260-sdramc", 99 "atmel,at91sam9260-sdramc",
63 "atmel,at91sam9g45-ddramc", 100 "atmel,at91sam9g45-ddramc",
101 "atmel,sama5d3-ddramc",
64- reg: Should contain registers location and length 102- reg: Should contain registers location and length
65 For at91sam9263 and at91sam9g45 you must specify 2 entries.
66 103
67Examples: 104Examples:
68 105
@@ -71,12 +108,6 @@ Examples:
71 reg = <0xffffe800 0x200>; 108 reg = <0xffffe800 0x200>;
72 }; 109 };
73 110
74 ramc0: ramc@ffffe400 {
75 compatible = "atmel,at91sam9g45-ddramc";
76 reg = <0xffffe400 0x200
77 0xffffe600 0x200>;
78 };
79
80SHDWC Shutdown Controller 111SHDWC Shutdown Controller
81 112
82required properties: 113required properties:
diff --git a/Documentation/devicetree/bindings/arm/bcm/bcm63138.txt b/Documentation/devicetree/bindings/arm/bcm/bcm63138.txt
new file mode 100644
index 000000000000..bd49987a8812
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/bcm/bcm63138.txt
@@ -0,0 +1,9 @@
1Broadcom BCM63138 DSL System-on-a-Chip device tree bindings
2-----------------------------------------------------------
3
4Boards compatible with the BCM63138 DSL System-on-a-Chip should have the
5following properties:
6
7Required root node property:
8
9compatible: should be "brcm,bcm63138"
diff --git a/Documentation/devicetree/bindings/arm/cavium-thunder.txt b/Documentation/devicetree/bindings/arm/cavium-thunder.txt
new file mode 100644
index 000000000000..6f63a5866902
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/cavium-thunder.txt
@@ -0,0 +1,10 @@
1Cavium Thunder platform device tree bindings
2--------------------------------------------
3
4Boards with Cavium's Thunder SoC shall have following properties.
5
6Root Node
7---------
8Required root node properties:
9
10 - compatible = "cavium,thunder-88xx";
diff --git a/Documentation/devicetree/bindings/arm/cpus.txt b/Documentation/devicetree/bindings/arm/cpus.txt
index 298e2f6b33c6..fc446347ab6d 100644
--- a/Documentation/devicetree/bindings/arm/cpus.txt
+++ b/Documentation/devicetree/bindings/arm/cpus.txt
@@ -166,6 +166,7 @@ nodes to be present and contain the properties described below.
166 "arm,cortex-r5" 166 "arm,cortex-r5"
167 "arm,cortex-r7" 167 "arm,cortex-r7"
168 "brcm,brahma-b15" 168 "brcm,brahma-b15"
169 "cavium,thunder"
169 "faraday,fa526" 170 "faraday,fa526"
170 "intel,sa110" 171 "intel,sa110"
171 "intel,sa1100" 172 "intel,sa1100"
@@ -219,6 +220,12 @@ nodes to be present and contain the properties described below.
219 Value type: <phandle> 220 Value type: <phandle>
220 Definition: Specifies the ACC[2] node associated with this CPU. 221 Definition: Specifies the ACC[2] node associated with this CPU.
221 222
223 - cpu-idle-states
224 Usage: Optional
225 Value type: <prop-encoded-array>
226 Definition:
227 # List of phandles to idle state nodes supported
228 by this cpu [3].
222 229
223Example 1 (dual-cluster big.LITTLE system 32-bit): 230Example 1 (dual-cluster big.LITTLE system 32-bit):
224 231
@@ -415,3 +422,5 @@ cpus {
415-- 422--
416[1] arm/msm/qcom,saw2.txt 423[1] arm/msm/qcom,saw2.txt
417[2] arm/msm/qcom,kpss-acc.txt 424[2] arm/msm/qcom,kpss-acc.txt
425[3] ARM Linux kernel documentation - idle states bindings
426 Documentation/devicetree/bindings/arm/idle-states.txt
diff --git a/Documentation/devicetree/bindings/arm/exynos/power_domain.txt b/Documentation/devicetree/bindings/arm/exynos/power_domain.txt
index 8b4f7b7fe88b..abde1ea8a119 100644
--- a/Documentation/devicetree/bindings/arm/exynos/power_domain.txt
+++ b/Documentation/devicetree/bindings/arm/exynos/power_domain.txt
@@ -8,6 +8,8 @@ Required Properties:
8 * samsung,exynos4210-pd - for exynos4210 type power domain. 8 * samsung,exynos4210-pd - for exynos4210 type power domain.
9- reg: physical base address of the controller and length of memory mapped 9- reg: physical base address of the controller and length of memory mapped
10 region. 10 region.
11- #power-domain-cells: number of cells in power domain specifier;
12 must be 0.
11 13
12Optional Properties: 14Optional Properties:
13- clocks: List of clock handles. The parent clocks of the input clocks to the 15- clocks: List of clock handles. The parent clocks of the input clocks to the
@@ -29,6 +31,7 @@ Example:
29 lcd0: power-domain-lcd0 { 31 lcd0: power-domain-lcd0 {
30 compatible = "samsung,exynos4210-pd"; 32 compatible = "samsung,exynos4210-pd";
31 reg = <0x10023C00 0x10>; 33 reg = <0x10023C00 0x10>;
34 #power-domain-cells = <0>;
32 }; 35 };
33 36
34 mfc_pd: power-domain@10044060 { 37 mfc_pd: power-domain@10044060 {
@@ -37,12 +40,8 @@ Example:
37 clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MOUT_SW_ACLK333>, 40 clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MOUT_SW_ACLK333>,
38 <&clock CLK_MOUT_USER_ACLK333>; 41 <&clock CLK_MOUT_USER_ACLK333>;
39 clock-names = "oscclk", "pclk0", "clk0"; 42 clock-names = "oscclk", "pclk0", "clk0";
43 #power-domain-cells = <0>;
40 }; 44 };
41 45
42Example of the node using power domain: 46See Documentation/devicetree/bindings/power/power_domain.txt for description
43 47of consumer-side bindings.
44 node {
45 /* ... */
46 samsung,power-domain = <&lcd0>;
47 /* ... */
48 };
diff --git a/Documentation/devicetree/bindings/arm/geniatech.txt b/Documentation/devicetree/bindings/arm/geniatech.txt
new file mode 100644
index 000000000000..74ccba40b73b
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/geniatech.txt
@@ -0,0 +1,5 @@
1Geniatech platforms device tree bindings
2-------------------------------------------
3
4Geniatech ATV1200
5 - compatible = "geniatech,atv1200"
diff --git a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
index 934f00025cc4..f717c7b48603 100644
--- a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
+++ b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
@@ -5,6 +5,11 @@ Hi4511 Board
5Required root node properties: 5Required root node properties:
6 - compatible = "hisilicon,hi3620-hi4511"; 6 - compatible = "hisilicon,hi3620-hi4511";
7 7
8HiP04 D01 Board
9Required root node properties:
10 - compatible = "hisilicon,hip04-d01";
11
12
8Hisilicon system controller 13Hisilicon system controller
9 14
10Required properties: 15Required properties:
@@ -55,3 +60,21 @@ Example:
55 compatible = "hisilicon,pctrl"; 60 compatible = "hisilicon,pctrl";
56 reg = <0xfca09000 0x1000>; 61 reg = <0xfca09000 0x1000>;
57 }; 62 };
63
64-----------------------------------------------------------------------
65Fabric:
66
67Required Properties:
68- compatible: "hisilicon,hip04-fabric";
69- reg: Address and size of Fabric
70
71-----------------------------------------------------------------------
72Bootwrapper boot method (software protocol on SMP):
73
74Required Properties:
75- compatible: "hisilicon,hip04-bootwrapper";
76- boot-method: Address and size of boot method.
77 [0]: bootwrapper physical address
78 [1]: bootwrapper size
79 [2]: relocation physical address
80 [3]: relocation size
diff --git a/Documentation/devicetree/bindings/arm/idle-states.txt b/Documentation/devicetree/bindings/arm/idle-states.txt
new file mode 100644
index 000000000000..37375c7f3ccc
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/idle-states.txt
@@ -0,0 +1,679 @@
1==========================================
2ARM idle states binding description
3==========================================
4
5==========================================
61 - Introduction
7==========================================
8
9ARM systems contain HW capable of managing power consumption dynamically,
10where cores can be put in different low-power states (ranging from simple
11wfi to power gating) according to OS PM policies. The CPU states representing
12the range of dynamic idle states that a processor can enter at run-time, can be
13specified through device tree bindings representing the parameters required
14to enter/exit specific idle states on a given processor.
15
16According to the Server Base System Architecture document (SBSA, [3]), the
17power states an ARM CPU can be put into are identified by the following list:
18
19- Running
20- Idle_standby
21- Idle_retention
22- Sleep
23- Off
24
25The power states described in the SBSA document define the basic CPU states on
26top of which ARM platforms implement power management schemes that allow an OS
27PM implementation to put the processor in different idle states (which include
28states listed above; "off" state is not an idle state since it does not have
29wake-up capabilities, hence it is not considered in this document).
30
31Idle state parameters (eg entry latency) are platform specific and need to be
32characterized with bindings that provide the required information to OS PM
33code so that it can build the required tables and use them at runtime.
34
35The device tree binding definition for ARM idle states is the subject of this
36document.
37
38===========================================
392 - idle-states definitions
40===========================================
41
42Idle states are characterized for a specific system through a set of
43timing and energy related properties, that underline the HW behaviour
44triggered upon idle states entry and exit.
45
46The following diagram depicts the CPU execution phases and related timing
47properties required to enter and exit an idle state:
48
49..__[EXEC]__|__[PREP]__|__[ENTRY]__|__[IDLE]__|__[EXIT]__|__[EXEC]__..
50 | | | | |
51
52 |<------ entry ------->|
53 | latency |
54 |<- exit ->|
55 | latency |
56 |<-------- min-residency -------->|
57 |<------- wakeup-latency ------->|
58
59 Diagram 1: CPU idle state execution phases
60
61EXEC: Normal CPU execution.
62
63PREP: Preparation phase before committing the hardware to idle mode
64 like cache flushing. This is abortable on pending wake-up
65 event conditions. The abort latency is assumed to be negligible
66 (i.e. less than the ENTRY + EXIT duration). If aborted, CPU
67 goes back to EXEC. This phase is optional. If not abortable,
68 this should be included in the ENTRY phase instead.
69
70ENTRY: The hardware is committed to idle mode. This period must run
71 to completion up to IDLE before anything else can happen.
72
73IDLE: This is the actual energy-saving idle period. This may last
74 between 0 and infinite time, until a wake-up event occurs.
75
76EXIT: Period during which the CPU is brought back to operational
77 mode (EXEC).
78
79entry-latency: Worst case latency required to enter the idle state. The
80exit-latency may be guaranteed only after entry-latency has passed.
81
82min-residency: Minimum period, including preparation and entry, for a given
83idle state to be worthwhile energywise.
84
85wakeup-latency: Maximum delay between the signaling of a wake-up event and the
86CPU being able to execute normal code again. If not specified, this is assumed
87to be entry-latency + exit-latency.
88
89These timing parameters can be used by an OS in different circumstances.
90
91An idle CPU requires the expected min-residency time to select the most
92appropriate idle state based on the expected expiry time of the next IRQ
93(ie wake-up) that causes the CPU to return to the EXEC phase.
94
95An operating system scheduler may need to compute the shortest wake-up delay
96for CPUs in the system by detecting how long will it take to get a CPU out
97of an idle state, eg:
98
99wakeup-delay = exit-latency + max(entry-latency - (now - entry-timestamp), 0)
100
101In other words, the scheduler can make its scheduling decision by selecting
102(eg waking-up) the CPU with the shortest wake-up latency.
103The wake-up latency must take into account the entry latency if that period
104has not expired. The abortable nature of the PREP period can be ignored
105if it cannot be relied upon (e.g. the PREP deadline may occur much sooner than
106the worst case since it depends on the CPU operating conditions, ie caches
107state).
108
109An OS has to reliably probe the wakeup-latency since some devices can enforce
110latency constraints guarantees to work properly, so the OS has to detect the
111worst case wake-up latency it can incur if a CPU is allowed to enter an
112idle state, and possibly to prevent that to guarantee reliable device
113functioning.
114
115The min-residency time parameter deserves further explanation since it is
116expressed in time units but must factor in energy consumption coefficients.
117
118The energy consumption of a cpu when it enters a power state can be roughly
119characterised by the following graph:
120
121 |
122 |
123 |
124 e |
125 n | /---
126 e | /------
127 r | /------
128 g | /-----
129 y | /------
130 | ----
131 | /|
132 | / |
133 | / |
134 | / |
135 | / |
136 | / |
137 |/ |
138 -----|-------+----------------------------------
139 0| 1 time(ms)
140
141 Graph 1: Energy vs time example
142
143The graph is split in two parts delimited by time 1ms on the X-axis.
144The graph curve with X-axis values = { x | 0 < x < 1ms } has a steep slope
145and denotes the energy costs incurred whilst entering and leaving the idle
146state.
147The graph curve in the area delimited by X-axis values = {x | x > 1ms } has
148shallower slope and essentially represents the energy consumption of the idle
149state.
150
151min-residency is defined for a given idle state as the minimum expected
152residency time for a state (inclusive of preparation and entry) after
153which choosing that state become the most energy efficient option. A good
154way to visualise this, is by taking the same graph above and comparing some
155states energy consumptions plots.
156
157For sake of simplicity, let's consider a system with two idle states IDLE1,
158and IDLE2:
159
160 |
161 |
162 |
163 | /-- IDLE1
164 e | /---
165 n | /----
166 e | /---
167 r | /-----/--------- IDLE2
168 g | /-------/---------
169 y | ------------ /---|
170 | / /---- |
171 | / /--- |
172 | / /---- |
173 | / /--- |
174 | --- |
175 | / |
176 | / |
177 |/ | time
178 ---/----------------------------+------------------------
179 |IDLE1-energy < IDLE2-energy | IDLE2-energy < IDLE1-energy
180 |
181 IDLE2-min-residency
182
183 Graph 2: idle states min-residency example
184
185In graph 2 above, that takes into account idle states entry/exit energy
186costs, it is clear that if the idle state residency time (ie time till next
187wake-up IRQ) is less than IDLE2-min-residency, IDLE1 is the better idle state
188choice energywise.
189
190This is mainly down to the fact that IDLE1 entry/exit energy costs are lower
191than IDLE2.
192
193However, the lower power consumption (ie shallower energy curve slope) of idle
194state IDLE2 implies that after a suitable time, IDLE2 becomes more energy
195efficient.
196
197The time at which IDLE2 becomes more energy efficient than IDLE1 (and other
198shallower states in a system with multiple idle states) is defined
199IDLE2-min-residency and corresponds to the time when energy consumption of
200IDLE1 and IDLE2 states breaks even.
201
202The definitions provided in this section underpin the idle states
203properties specification that is the subject of the following sections.
204
205===========================================
2063 - idle-states node
207===========================================
208
209ARM processor idle states are defined within the idle-states node, which is
210a direct child of the cpus node [1] and provides a container where the
211processor idle states, defined as device tree nodes, are listed.
212
213- idle-states node
214
215 Usage: Optional - On ARM systems, it is a container of processor idle
216 states nodes. If the system does not provide CPU
217 power management capabilities or the processor just
218 supports idle_standby an idle-states node is not
219 required.
220
221 Description: idle-states node is a container node, where its
222 subnodes describe the CPU idle states.
223
224 Node name must be "idle-states".
225
226 The idle-states node's parent node must be the cpus node.
227
228 The idle-states node's child nodes can be:
229
230 - one or more state nodes
231
232 Any other configuration is considered invalid.
233
234 An idle-states node defines the following properties:
235
236 - entry-method
237 Value type: <stringlist>
238 Usage and definition depend on ARM architecture version.
239 # On ARM v8 64-bit this property is required and must
240 be one of:
241 - "psci" (see bindings in [2])
242 # On ARM 32-bit systems this property is optional
243
244The nodes describing the idle states (state) can only be defined within the
245idle-states node, any other configuration is considered invalid and therefore
246must be ignored.
247
248===========================================
2494 - state node
250===========================================
251
252A state node represents an idle state description and must be defined as
253follows:
254
255- state node
256
257 Description: must be child of the idle-states node
258
259 The state node name shall follow standard device tree naming
260 rules ([5], 2.2.1 "Node names"), in particular state nodes which
261 are siblings within a single common parent must be given a unique name.
262
263 The idle state entered by executing the wfi instruction (idle_standby
264 SBSA,[3][4]) is considered standard on all ARM platforms and therefore
265 must not be listed.
266
267 With the definitions provided above, the following list represents
268 the valid properties for a state node:
269
270 - compatible
271 Usage: Required
272 Value type: <stringlist>
273 Definition: Must be "arm,idle-state".
274
275 - local-timer-stop
276 Usage: See definition
277 Value type: <none>
278 Definition: if present the CPU local timer control logic is
279 lost on state entry, otherwise it is retained.
280
281 - entry-latency-us
282 Usage: Required
283 Value type: <prop-encoded-array>
284 Definition: u32 value representing worst case latency in
285 microseconds required to enter the idle state.
286 The exit-latency-us duration may be guaranteed
287 only after entry-latency-us has passed.
288
289 - exit-latency-us
290 Usage: Required
291 Value type: <prop-encoded-array>
292 Definition: u32 value representing worst case latency
293 in microseconds required to exit the idle state.
294
295 - min-residency-us
296 Usage: Required
297 Value type: <prop-encoded-array>
298 Definition: u32 value representing minimum residency duration
299 in microseconds, inclusive of preparation and
300 entry, for this idle state to be considered
301 worthwhile energy wise (refer to section 2 of
302 this document for a complete description).
303
304 - wakeup-latency-us:
305 Usage: Optional
306 Value type: <prop-encoded-array>
307 Definition: u32 value representing maximum delay between the
308 signaling of a wake-up event and the CPU being
309 able to execute normal code again. If omitted,
310 this is assumed to be equal to:
311
312 entry-latency-us + exit-latency-us
313
314 It is important to supply this value on systems
315 where the duration of PREP phase (see diagram 1,
316 section 2) is non-neglibigle.
317 In such systems entry-latency-us + exit-latency-us
318 will exceed wakeup-latency-us by this duration.
319
320 In addition to the properties listed above, a state node may require
321 additional properties specifics to the entry-method defined in the
322 idle-states node, please refer to the entry-method bindings
323 documentation for properties definitions.
324
325===========================================
3264 - Examples
327===========================================
328
329Example 1 (ARM 64-bit, 16-cpu system, PSCI enable-method):
330
331cpus {
332 #size-cells = <0>;
333 #address-cells = <2>;
334
335 CPU0: cpu@0 {
336 device_type = "cpu";
337 compatible = "arm,cortex-a57";
338 reg = <0x0 0x0>;
339 enable-method = "psci";
340 cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
341 &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
342 };
343
344 CPU1: cpu@1 {
345 device_type = "cpu";
346 compatible = "arm,cortex-a57";
347 reg = <0x0 0x1>;
348 enable-method = "psci";
349 cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
350 &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
351 };
352
353 CPU2: cpu@100 {
354 device_type = "cpu";
355 compatible = "arm,cortex-a57";
356 reg = <0x0 0x100>;
357 enable-method = "psci";
358 cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
359 &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
360 };
361
362 CPU3: cpu@101 {
363 device_type = "cpu";
364 compatible = "arm,cortex-a57";
365 reg = <0x0 0x101>;
366 enable-method = "psci";
367 cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
368 &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
369 };
370
371 CPU4: cpu@10000 {
372 device_type = "cpu";
373 compatible = "arm,cortex-a57";
374 reg = <0x0 0x10000>;
375 enable-method = "psci";
376 cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
377 &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
378 };
379
380 CPU5: cpu@10001 {
381 device_type = "cpu";
382 compatible = "arm,cortex-a57";
383 reg = <0x0 0x10001>;
384 enable-method = "psci";
385 cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
386 &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
387 };
388
389 CPU6: cpu@10100 {
390 device_type = "cpu";
391 compatible = "arm,cortex-a57";
392 reg = <0x0 0x10100>;
393 enable-method = "psci";
394 cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
395 &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
396 };
397
398 CPU7: cpu@10101 {
399 device_type = "cpu";
400 compatible = "arm,cortex-a57";
401 reg = <0x0 0x10101>;
402 enable-method = "psci";
403 cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
404 &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
405 };
406
407 CPU8: cpu@100000000 {
408 device_type = "cpu";
409 compatible = "arm,cortex-a53";
410 reg = <0x1 0x0>;
411 enable-method = "psci";
412 cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
413 &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
414 };
415
416 CPU9: cpu@100000001 {
417 device_type = "cpu";
418 compatible = "arm,cortex-a53";
419 reg = <0x1 0x1>;
420 enable-method = "psci";
421 cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
422 &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
423 };
424
425 CPU10: cpu@100000100 {
426 device_type = "cpu";
427 compatible = "arm,cortex-a53";
428 reg = <0x1 0x100>;
429 enable-method = "psci";
430 cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
431 &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
432 };
433
434 CPU11: cpu@100000101 {
435 device_type = "cpu";
436 compatible = "arm,cortex-a53";
437 reg = <0x1 0x101>;
438 enable-method = "psci";
439 cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
440 &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
441 };
442
443 CPU12: cpu@100010000 {
444 device_type = "cpu";
445 compatible = "arm,cortex-a53";
446 reg = <0x1 0x10000>;
447 enable-method = "psci";
448 cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
449 &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
450 };
451
452 CPU13: cpu@100010001 {
453 device_type = "cpu";
454 compatible = "arm,cortex-a53";
455 reg = <0x1 0x10001>;
456 enable-method = "psci";
457 cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
458 &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
459 };
460
461 CPU14: cpu@100010100 {
462 device_type = "cpu";
463 compatible = "arm,cortex-a53";
464 reg = <0x1 0x10100>;
465 enable-method = "psci";
466 cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
467 &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
468 };
469
470 CPU15: cpu@100010101 {
471 device_type = "cpu";
472 compatible = "arm,cortex-a53";
473 reg = <0x1 0x10101>;
474 enable-method = "psci";
475 cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
476 &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
477 };
478
479 idle-states {
480 entry-method = "arm,psci";
481
482 CPU_RETENTION_0_0: cpu-retention-0-0 {
483 compatible = "arm,idle-state";
484 arm,psci-suspend-param = <0x0010000>;
485 entry-latency-us = <20>;
486 exit-latency-us = <40>;
487 min-residency-us = <80>;
488 };
489
490 CLUSTER_RETENTION_0: cluster-retention-0 {
491 compatible = "arm,idle-state";
492 local-timer-stop;
493 arm,psci-suspend-param = <0x1010000>;
494 entry-latency-us = <50>;
495 exit-latency-us = <100>;
496 min-residency-us = <250>;
497 wakeup-latency-us = <130>;
498 };
499
500 CPU_SLEEP_0_0: cpu-sleep-0-0 {
501 compatible = "arm,idle-state";
502 local-timer-stop;
503 arm,psci-suspend-param = <0x0010000>;
504 entry-latency-us = <250>;
505 exit-latency-us = <500>;
506 min-residency-us = <950>;
507 };
508
509 CLUSTER_SLEEP_0: cluster-sleep-0 {
510 compatible = "arm,idle-state";
511 local-timer-stop;
512 arm,psci-suspend-param = <0x1010000>;
513 entry-latency-us = <600>;
514 exit-latency-us = <1100>;
515 min-residency-us = <2700>;
516 wakeup-latency-us = <1500>;
517 };
518
519 CPU_RETENTION_1_0: cpu-retention-1-0 {
520 compatible = "arm,idle-state";
521 arm,psci-suspend-param = <0x0010000>;
522 entry-latency-us = <20>;
523 exit-latency-us = <40>;
524 min-residency-us = <90>;
525 };
526
527 CLUSTER_RETENTION_1: cluster-retention-1 {
528 compatible = "arm,idle-state";
529 local-timer-stop;
530 arm,psci-suspend-param = <0x1010000>;
531 entry-latency-us = <50>;
532 exit-latency-us = <100>;
533 min-residency-us = <270>;
534 wakeup-latency-us = <100>;
535 };
536
537 CPU_SLEEP_1_0: cpu-sleep-1-0 {
538 compatible = "arm,idle-state";
539 local-timer-stop;
540 arm,psci-suspend-param = <0x0010000>;
541 entry-latency-us = <70>;
542 exit-latency-us = <100>;
543 min-residency-us = <300>;
544 wakeup-latency-us = <150>;
545 };
546
547 CLUSTER_SLEEP_1: cluster-sleep-1 {
548 compatible = "arm,idle-state";
549 local-timer-stop;
550 arm,psci-suspend-param = <0x1010000>;
551 entry-latency-us = <500>;
552 exit-latency-us = <1200>;
553 min-residency-us = <3500>;
554 wakeup-latency-us = <1300>;
555 };
556 };
557
558};
559
560Example 2 (ARM 32-bit, 8-cpu system, two clusters):
561
562cpus {
563 #size-cells = <0>;
564 #address-cells = <1>;
565
566 CPU0: cpu@0 {
567 device_type = "cpu";
568 compatible = "arm,cortex-a15";
569 reg = <0x0>;
570 cpu-idle-states = <&CPU_SLEEP_0_0 &CLUSTER_SLEEP_0>;
571 };
572
573 CPU1: cpu@1 {
574 device_type = "cpu";
575 compatible = "arm,cortex-a15";
576 reg = <0x1>;
577 cpu-idle-states = <&CPU_SLEEP_0_0 &CLUSTER_SLEEP_0>;
578 };
579
580 CPU2: cpu@2 {
581 device_type = "cpu";
582 compatible = "arm,cortex-a15";
583 reg = <0x2>;
584 cpu-idle-states = <&CPU_SLEEP_0_0 &CLUSTER_SLEEP_0>;
585 };
586
587 CPU3: cpu@3 {
588 device_type = "cpu";
589 compatible = "arm,cortex-a15";
590 reg = <0x3>;
591 cpu-idle-states = <&CPU_SLEEP_0_0 &CLUSTER_SLEEP_0>;
592 };
593
594 CPU4: cpu@100 {
595 device_type = "cpu";
596 compatible = "arm,cortex-a7";
597 reg = <0x100>;
598 cpu-idle-states = <&CPU_SLEEP_1_0 &CLUSTER_SLEEP_1>;
599 };
600
601 CPU5: cpu@101 {
602 device_type = "cpu";
603 compatible = "arm,cortex-a7";
604 reg = <0x101>;
605 cpu-idle-states = <&CPU_SLEEP_1_0 &CLUSTER_SLEEP_1>;
606 };
607
608 CPU6: cpu@102 {
609 device_type = "cpu";
610 compatible = "arm,cortex-a7";
611 reg = <0x102>;
612 cpu-idle-states = <&CPU_SLEEP_1_0 &CLUSTER_SLEEP_1>;
613 };
614
615 CPU7: cpu@103 {
616 device_type = "cpu";
617 compatible = "arm,cortex-a7";
618 reg = <0x103>;
619 cpu-idle-states = <&CPU_SLEEP_1_0 &CLUSTER_SLEEP_1>;
620 };
621
622 idle-states {
623 CPU_SLEEP_0_0: cpu-sleep-0-0 {
624 compatible = "arm,idle-state";
625 local-timer-stop;
626 entry-latency-us = <200>;
627 exit-latency-us = <100>;
628 min-residency-us = <400>;
629 wakeup-latency-us = <250>;
630 };
631
632 CLUSTER_SLEEP_0: cluster-sleep-0 {
633 compatible = "arm,idle-state";
634 local-timer-stop;
635 entry-latency-us = <500>;
636 exit-latency-us = <1500>;
637 min-residency-us = <2500>;
638 wakeup-latency-us = <1700>;
639 };
640
641 CPU_SLEEP_1_0: cpu-sleep-1-0 {
642 compatible = "arm,idle-state";
643 local-timer-stop;
644 entry-latency-us = <300>;
645 exit-latency-us = <500>;
646 min-residency-us = <900>;
647 wakeup-latency-us = <600>;
648 };
649
650 CLUSTER_SLEEP_1: cluster-sleep-1 {
651 compatible = "arm,idle-state";
652 local-timer-stop;
653 entry-latency-us = <800>;
654 exit-latency-us = <2000>;
655 min-residency-us = <6500>;
656 wakeup-latency-us = <2300>;
657 };
658 };
659
660};
661
662===========================================
6635 - References
664===========================================
665
666[1] ARM Linux Kernel documentation - CPUs bindings
667 Documentation/devicetree/bindings/arm/cpus.txt
668
669[2] ARM Linux Kernel documentation - PSCI bindings
670 Documentation/devicetree/bindings/arm/psci.txt
671
672[3] ARM Server Base System Architecture (SBSA)
673 http://infocenter.arm.com/help/index.jsp
674
675[4] ARM Architecture Reference Manuals
676 http://infocenter.arm.com/help/index.jsp
677
678[5] ePAPR standard
679 https://www.power.org/documentation/epapr-version-1-1/
diff --git a/Documentation/devicetree/bindings/arm/l2cc.txt b/Documentation/devicetree/bindings/arm/l2cc.txt
index af527ee111c2..292ef7ca3058 100644
--- a/Documentation/devicetree/bindings/arm/l2cc.txt
+++ b/Documentation/devicetree/bindings/arm/l2cc.txt
@@ -2,6 +2,10 @@
2 2
3ARM cores often have a separate level 2 cache controller. There are various 3ARM cores often have a separate level 2 cache controller. There are various
4implementations of the L2 cache controller with compatible programming models. 4implementations of the L2 cache controller with compatible programming models.
5Some of the properties that are just prefixed "cache-*" are taken from section
63.7.3 of the ePAPR v1.1 specification which can be found at:
7https://www.power.org/wp-content/uploads/2012/06/Power_ePAPR_APPROVED_v1.1.pdf
8
5The ARM L2 cache representation in the device tree should be done as follows: 9The ARM L2 cache representation in the device tree should be done as follows:
6 10
7Required properties: 11Required properties:
@@ -44,6 +48,12 @@ Optional properties:
44 I/O coherent mode. Valid only when the arm,pl310-cache compatible 48 I/O coherent mode. Valid only when the arm,pl310-cache compatible
45 string is used. 49 string is used.
46- interrupts : 1 combined interrupt. 50- interrupts : 1 combined interrupt.
51- cache-size : specifies the size in bytes of the cache
52- cache-sets : specifies the number of associativity sets of the cache
53- cache-block-size : specifies the size in bytes of a cache block
54- cache-line-size : specifies the size in bytes of a line in the cache,
55 if this is not specified, the line size is assumed to be equal to the
56 cache block size
47- cache-id-part: cache id part number to be used if it is not present 57- cache-id-part: cache id part number to be used if it is not present
48 on hardware 58 on hardware
49- wt-override: If present then L2 is forced to Write through mode 59- wt-override: If present then L2 is forced to Write through mode
diff --git a/Documentation/devicetree/bindings/arm/mediatek.txt b/Documentation/devicetree/bindings/arm/mediatek.txt
index d6ac71f37314..fa252261dfaf 100644
--- a/Documentation/devicetree/bindings/arm/mediatek.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek.txt
@@ -6,3 +6,9 @@ Required root node property:
6 6
7compatible: must contain "mediatek,mt6589" 7compatible: must contain "mediatek,mt6589"
8 8
9
10Supported boards:
11
12- bq Aquaris5 smart phone:
13 Required root node properties:
14 - compatible = "mundoreader,bq-aquaris5", "mediatek,mt6589";
diff --git a/Documentation/devicetree/bindings/arm/omap/mpu.txt b/Documentation/devicetree/bindings/arm/omap/mpu.txt
index 83f405bde138..763695db2bd9 100644
--- a/Documentation/devicetree/bindings/arm/omap/mpu.txt
+++ b/Documentation/devicetree/bindings/arm/omap/mpu.txt
@@ -10,6 +10,9 @@ Required properties:
10 Should be "ti,omap5-mpu" for OMAP5 10 Should be "ti,omap5-mpu" for OMAP5
11- ti,hwmods: "mpu" 11- ti,hwmods: "mpu"
12 12
13Optional properties:
14- sram: Phandle to the ocmcram node
15
13Examples: 16Examples:
14 17
15- For an OMAP5 SMP system: 18- For an OMAP5 SMP system:
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
index 0edc90305dfe..ddd9bcdf889c 100644
--- a/Documentation/devicetree/bindings/arm/omap/omap.txt
+++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
@@ -85,6 +85,18 @@ SoCs:
85- DRA722 85- DRA722
86 compatible = "ti,dra722", "ti,dra72", "ti,dra7" 86 compatible = "ti,dra722", "ti,dra72", "ti,dra7"
87 87
88- AM5728
89 compatible = "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"
90
91- AM5726
92 compatible = "ti,am5726", "ti,dra742", "ti,dra74", "ti,dra7"
93
94- AM5718
95 compatible = "ti,am5718", "ti,dra722", "ti,dra72", "ti,dra7"
96
97- AM5716
98 compatible = "ti,am5716", "ti,dra722", "ti,dra72", "ti,dra7"
99
88- AM4372 100- AM4372
89 compatible = "ti,am4372", "ti,am43" 101 compatible = "ti,am4372", "ti,am43"
90 102
diff --git a/Documentation/devicetree/bindings/arm/psci.txt b/Documentation/devicetree/bindings/arm/psci.txt
index b4a58f39223c..5aa40ede0e99 100644
--- a/Documentation/devicetree/bindings/arm/psci.txt
+++ b/Documentation/devicetree/bindings/arm/psci.txt
@@ -50,6 +50,16 @@ Main node optional properties:
50 50
51 - migrate : Function ID for MIGRATE operation 51 - migrate : Function ID for MIGRATE operation
52 52
53Device tree nodes that require usage of PSCI CPU_SUSPEND function (ie idle
54state nodes, as per bindings in [1]) must specify the following properties:
55
56- arm,psci-suspend-param
57 Usage: Required for state nodes[1] if the corresponding
58 idle-states node entry-method property is set
59 to "psci".
60 Value type: <u32>
61 Definition: power_state parameter to pass to the PSCI
62 suspend call.
53 63
54Example: 64Example:
55 65
@@ -64,7 +74,6 @@ Case 1: PSCI v0.1 only.
64 migrate = <0x95c10003>; 74 migrate = <0x95c10003>;
65 }; 75 };
66 76
67
68Case 2: PSCI v0.2 only 77Case 2: PSCI v0.2 only
69 78
70 psci { 79 psci {
@@ -88,3 +97,6 @@ Case 3: PSCI v0.2 and PSCI v0.1.
88 97
89 ... 98 ...
90 }; 99 };
100
101[1] Kernel documentation - ARM idle states bindings
102 Documentation/devicetree/bindings/arm/idle-states.txt
diff --git a/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt b/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt
index adc61b095bd1..709efaa30841 100644
--- a/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt
+++ b/Documentation/devicetree/bindings/arm/samsung/exynos-adc.txt
@@ -11,13 +11,25 @@ New driver handles the following
11 11
12Required properties: 12Required properties:
13- compatible: Must be "samsung,exynos-adc-v1" 13- compatible: Must be "samsung,exynos-adc-v1"
14 for exynos4412/5250 controllers. 14 for exynos4412/5250 and s5pv210 controllers.
15 Must be "samsung,exynos-adc-v2" for 15 Must be "samsung,exynos-adc-v2" for
16 future controllers. 16 future controllers.
17 Must be "samsung,exynos3250-adc" for 17 Must be "samsung,exynos3250-adc" for
18 controllers compatible with ADC of Exynos3250. 18 controllers compatible with ADC of Exynos3250.
19- reg: Contains ADC register address range (base address and 19 Must be "samsung,s3c2410-adc" for
20 length) and the address of the phy enable register. 20 the ADC in s3c2410 and compatibles
21 Must be "samsung,s3c2416-adc" for
22 the ADC in s3c2416 and compatibles
23 Must be "samsung,s3c2440-adc" for
24 the ADC in s3c2440 and compatibles
25 Must be "samsung,s3c2443-adc" for
26 the ADC in s3c2443 and compatibles
27 Must be "samsung,s3c6410-adc" for
28 the ADC in s3c6410 and compatibles
29- reg: List of ADC register address range
30 - The base address and range of ADC register
31 - The base address and range of ADC_PHY register (every
32 SoC except for s3c24xx/s3c64xx ADC)
21- interrupts: Contains the interrupt information for the timer. The 33- interrupts: Contains the interrupt information for the timer. The
22 format is being dependent on which interrupt controller 34 format is being dependent on which interrupt controller
23 the Samsung device uses. 35 the Samsung device uses.
diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt
new file mode 100644
index 000000000000..51147cb5c036
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/shmobile.txt
@@ -0,0 +1,71 @@
1Renesas SH-Mobile, R-Mobile, and R-Car Platform Device Tree Bindings
2--------------------------------------------------------------------
3
4SoCs:
5
6 - Emma Mobile EV2
7 compatible = "renesas,emev2"
8 - RZ/A1H (R7S72100)
9 compatible = "renesas,r7s72100"
10 - SH-Mobile AP4 (R8A73720/SH7372)
11 compatible = "renesas,sh7372"
12 - SH-Mobile AG5 (R8A73A00/SH73A0)
13 compatible = "renesas,sh73a0"
14 - R-Mobile APE6 (R8A73A40)
15 compatible = "renesas,r8a73a4"
16 - R-Mobile A1 (R8A77400)
17 compatible = "renesas,r8a7740"
18 - R-Car M1A (R8A77781)
19 compatible = "renesas,r8a7778"
20 - R-Car H1 (R8A77790)
21 compatible = "renesas,r8a7779"
22 - R-Car H2 (R8A77900)
23 compatible = "renesas,r8a7790"
24 - R-Car M2-W (R8A77910)
25 compatible = "renesas,r8a7791"
26 - R-Car V2H (R8A77920)
27 compatible = "renesas,r8a7792"
28 - R-Car M2-N (R8A77930)
29 compatible = "renesas,r8a7793"
30 - R-Car E2 (R8A77940)
31 compatible = "renesas,r8a7794"
32
33
34Boards:
35
36 - Alt
37 compatible = "renesas,alt", "renesas,r8a7794"
38 - APE6-EVM
39 compatible = "renesas,ape6evm", "renesas,r8a73a4"
40 - APE6-EVM - Reference Device Tree Implementation
41 compatible = "renesas,ape6evm-reference", "renesas,r8a73a4"
42 - Atmark Techno Armadillo-800 EVA
43 compatible = "renesas,armadillo800eva"
44 - BOCK-W
45 compatible = "renesas,bockw", "renesas,r8a7778"
46 - BOCK-W - Reference Device Tree Implementation
47 compatible = "renesas,bockw-reference", "renesas,r8a7778"
48 - Genmai (RTK772100BC00000BR)
49 compatible = "renesas,genmai", "renesas,r7s72100"
50 - Gose
51 compatible = "renesas,gose", "renesas,r8a7793"
52 - Henninger
53 compatible = "renesas,henninger", "renesas,r8a7791"
54 - Koelsch (RTP0RC7791SEB00010S)
55 compatible = "renesas,koelsch", "renesas,r8a7791"
56 - Kyoto Microcomputer Co. KZM-A9-Dual
57 compatible = "renesas,kzm9d", "renesas,emev2"
58 - Kyoto Microcomputer Co. KZM-A9-GT
59 compatible = "renesas,kzm9g", "renesas,sh73a0"
60 - Kyoto Microcomputer Co. KZM-A9-GT - Reference Device Tree Implementation
61 compatible = "renesas,kzm9g-reference", "renesas,sh73a0"
62 - Lager (RTP0RC7790SEB00010S)
63 compatible = "renesas,lager", "renesas,r8a7790"
64 - Mackerel (R0P7372LC0016RL, AP4 EVM 2nd)
65 compatible = "renesas,mackerel"
66 - Marzen
67 compatible = "renesas,marzen", "renesas,r8a7779"
68
69Note: Reference Device Tree Implementations are temporary implementations
70 to ease the migration from platform devices to Device Tree, and are
71 intended to be removed in the future.
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-flowctrl.txt b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-flowctrl.txt
new file mode 100644
index 000000000000..ccf0adddc820
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-flowctrl.txt
@@ -0,0 +1,12 @@
1NVIDIA Tegra Flow Controller
2
3Required properties:
4- compatible: Should be "nvidia,tegra<chip>-flowctrl"
5- reg: Should contain one register range (address and length)
6
7Example:
8
9 flow-controller@60007000 {
10 compatible = "nvidia,tegra20-flowctrl";
11 reg = <0x60007000 0x1000>;
12 };
diff --git a/Documentation/devicetree/bindings/ata/qcom-sata.txt b/Documentation/devicetree/bindings/ata/qcom-sata.txt
new file mode 100644
index 000000000000..094de91cd9fd
--- /dev/null
+++ b/Documentation/devicetree/bindings/ata/qcom-sata.txt
@@ -0,0 +1,48 @@
1* Qualcomm AHCI SATA Controller
2
3SATA nodes are defined to describe on-chip Serial ATA controllers.
4Each SATA controller should have its own node.
5
6Required properties:
7- compatible : compatible list, must contain "generic-ahci"
8- interrupts : <interrupt mapping for SATA IRQ>
9- reg : <registers mapping>
10- phys : Must contain exactly one entry as specified
11 in phy-bindings.txt
12- phy-names : Must be "sata-phy"
13
14Required properties for "qcom,ipq806x-ahci" compatible:
15- clocks : Must contain an entry for each entry in clock-names.
16- clock-names : Shall be:
17 "slave_iface" - Fabric port AHB clock for SATA
18 "iface" - AHB clock
19 "core" - core clock
20 "rxoob" - RX out-of-band clock
21 "pmalive" - Power Module Alive clock
22- assigned-clocks : Shall be:
23 SATA_RXOOB_CLK
24 SATA_PMALIVE_CLK
25- assigned-clock-rates : Shall be:
26 100Mhz (100000000) for SATA_RXOOB_CLK
27 100Mhz (100000000) for SATA_PMALIVE_CLK
28
29Example:
30 sata@29000000 {
31 compatible = "qcom,ipq806x-ahci", "generic-ahci";
32 reg = <0x29000000 0x180>;
33
34 interrupts = <0 209 0x0>;
35
36 clocks = <&gcc SFAB_SATA_S_H_CLK>,
37 <&gcc SATA_H_CLK>,
38 <&gcc SATA_A_CLK>,
39 <&gcc SATA_RXOOB_CLK>,
40 <&gcc SATA_PMALIVE_CLK>;
41 clock-names = "slave_iface", "iface", "core",
42 "rxoob", "pmalive";
43 assigned-clocks = <&gcc SATA_RXOOB_CLK>, <&gcc SATA_PMALIVE_CLK>;
44 assigned-clock-rates = <100000000>, <100000000>;
45
46 phys = <&sata_phy>;
47 phy-names = "sata-phy";
48 };
diff --git a/Documentation/devicetree/bindings/bus/bcma.txt b/Documentation/devicetree/bindings/bus/bcma.txt
new file mode 100644
index 000000000000..62a48348ac15
--- /dev/null
+++ b/Documentation/devicetree/bindings/bus/bcma.txt
@@ -0,0 +1,32 @@
1Driver for ARM AXI Bus with Broadcom Plugins (bcma)
2
3Required properties:
4
5- compatible : brcm,bus-axi
6
7- reg : iomem address range of chipcommon core
8
9The cores on the AXI bus are automatically detected by bcma with the
10memory ranges they are using and they get registered afterwards.
11
12The top-level axi bus may contain children representing attached cores
13(devices). This is needed since some hardware details can't be auto
14detected (e.g. IRQ numbers). Also some of the cores may be responsible
15for extra things, e.g. ChipCommon providing access to the GPIO chip.
16
17Example:
18
19 axi@18000000 {
20 compatible = "brcm,bus-axi";
21 reg = <0x18000000 0x1000>;
22 ranges = <0x00000000 0x18000000 0x00100000>;
23 #address-cells = <1>;
24 #size-cells = <1>;
25
26 chipcommon {
27 reg = <0x00000000 0x1000>;
28
29 gpio-controller;
30 #gpio-cells = <2>;
31 };
32 };
diff --git a/Documentation/devicetree/bindings/clock/arm-integrator.txt b/Documentation/devicetree/bindings/clock/arm-integrator.txt
index ecc69520bcea..11f5f95f571b 100644
--- a/Documentation/devicetree/bindings/clock/arm-integrator.txt
+++ b/Documentation/devicetree/bindings/clock/arm-integrator.txt
@@ -1,6 +1,6 @@
1Clock bindings for ARM Integrator and Versatile Core Module clocks 1Clock bindings for ARM Integrator and Versatile Core Module clocks
2 2
3Auxilary Oscillator Clock 3Auxiliary Oscillator Clock
4 4
5This is a configurable clock fed from a 24 MHz chrystal, 5This is a configurable clock fed from a 24 MHz chrystal,
6used for generating e.g. video clocks. It is located on the 6used for generating e.g. video clocks. It is located on the
diff --git a/Documentation/devicetree/bindings/clock/at91-clock.txt b/Documentation/devicetree/bindings/clock/at91-clock.txt
index b3d544ca522a..7a4d4926f44e 100644
--- a/Documentation/devicetree/bindings/clock/at91-clock.txt
+++ b/Documentation/devicetree/bindings/clock/at91-clock.txt
@@ -74,6 +74,9 @@ Required properties:
74 "atmel,at91sam9x5-clk-utmi": 74 "atmel,at91sam9x5-clk-utmi":
75 at91 utmi clock 75 at91 utmi clock
76 76
77 "atmel,sama5d4-clk-h32mx":
78 at91 h32mx clock
79
77Required properties for SCKC node: 80Required properties for SCKC node:
78- reg : defines the IO memory reserved for the SCKC. 81- reg : defines the IO memory reserved for the SCKC.
79- #size-cells : shall be 0 (reg is used to encode clk id). 82- #size-cells : shall be 0 (reg is used to encode clk id).
@@ -447,3 +450,14 @@ For example:
447 #clock-cells = <0>; 450 #clock-cells = <0>;
448 clocks = <&main>; 451 clocks = <&main>;
449 }; 452 };
453
454Required properties for 32 bits bus Matrix clock (h32mx clock):
455- #clock-cells : from common clock binding; shall be set to 0.
456- clocks : shall be the master clock source phandle.
457
458For example:
459 h32ck: h32mxck {
460 #clock-cells = <0>;
461 compatible = "atmel,sama5d4-clk-h32mx";
462 clocks = <&mck>;
463 };
diff --git a/Documentation/devicetree/bindings/clock/exynos3250-clock.txt b/Documentation/devicetree/bindings/clock/exynos3250-clock.txt
index aadc9c59e2d1..f57d9dd9ea85 100644
--- a/Documentation/devicetree/bindings/clock/exynos3250-clock.txt
+++ b/Documentation/devicetree/bindings/clock/exynos3250-clock.txt
@@ -7,6 +7,8 @@ Required Properties:
7 7
8- compatible: should be one of the following. 8- compatible: should be one of the following.
9 - "samsung,exynos3250-cmu" - controller compatible with Exynos3250 SoC. 9 - "samsung,exynos3250-cmu" - controller compatible with Exynos3250 SoC.
10 - "samsung,exynos3250-cmu-dmc" - controller compatible with
11 Exynos3250 SoC for Dynamic Memory Controller domain.
10 12
11- reg: physical base address of the controller and length of memory mapped 13- reg: physical base address of the controller and length of memory mapped
12 region. 14 region.
@@ -20,7 +22,7 @@ All available clocks are defined as preprocessor macros in
20dt-bindings/clock/exynos3250.h header and can be used in device 22dt-bindings/clock/exynos3250.h header and can be used in device
21tree sources. 23tree sources.
22 24
23Example 1: An example of a clock controller node is listed below. 25Example 1: Examples of clock controller nodes are listed below.
24 26
25 cmu: clock-controller@10030000 { 27 cmu: clock-controller@10030000 {
26 compatible = "samsung,exynos3250-cmu"; 28 compatible = "samsung,exynos3250-cmu";
@@ -28,6 +30,12 @@ Example 1: An example of a clock controller node is listed below.
28 #clock-cells = <1>; 30 #clock-cells = <1>;
29 }; 31 };
30 32
33 cmu_dmc: clock-controller@105C0000 {
34 compatible = "samsung,exynos3250-cmu-dmc";
35 reg = <0x105C0000 0x2000>;
36 #clock-cells = <1>;
37 };
38
31Example 2: UART controller node that consumes the clock generated by the clock 39Example 2: UART controller node that consumes the clock generated by the clock
32 controller. Refer to the standard clock bindings for information 40 controller. Refer to the standard clock bindings for information
33 about 'clocks' and 'clock-names' property. 41 about 'clocks' and 'clock-names' property.
diff --git a/Documentation/devicetree/bindings/clock/gpio-gate-clock.txt b/Documentation/devicetree/bindings/clock/gpio-gate-clock.txt
new file mode 100644
index 000000000000..d3379ff9b84b
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/gpio-gate-clock.txt
@@ -0,0 +1,21 @@
1Binding for simple gpio gated clock.
2
3This binding uses the common clock binding[1].
4
5[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
6
7Required properties:
8- compatible : shall be "gpio-gate-clock".
9- #clock-cells : from common clock binding; shall be set to 0.
10- enable-gpios : GPIO reference for enabling and disabling the clock.
11
12Optional properties:
13- clocks: Maximum of one parent clock is supported.
14
15Example:
16 clock {
17 compatible = "gpio-gate-clock";
18 clocks = <&parentclk>;
19 #clock-cells = <0>;
20 enable-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
21 };
diff --git a/Documentation/devicetree/bindings/clock/maxim,max77686.txt b/Documentation/devicetree/bindings/clock/maxim,max77686.txt
index 96ce71bbd745..9c40739a661a 100644
--- a/Documentation/devicetree/bindings/clock/maxim,max77686.txt
+++ b/Documentation/devicetree/bindings/clock/maxim,max77686.txt
@@ -9,13 +9,21 @@ The MAX77686 contains three 32.768khz clock outputs that can be controlled
9Following properties should be presend in main device node of the MFD chip. 9Following properties should be presend in main device node of the MFD chip.
10 10
11Required properties: 11Required properties:
12- #clock-cells: simple one-cell clock specifier format is used, where the 12
13 only cell is used as an index of the clock inside the provider. Following 13- #clock-cells: from common clock binding; shall be set to 1.
14 indices are allowed: 14
15Optional properties:
16- clock-output-names: From common clock binding.
17
18Each clock is assigned an identifier and client nodes can use this identifier
19to specify the clock which they consume. Following indices are allowed:
15 - 0: 32khz_ap clock, 20 - 0: 32khz_ap clock,
16 - 1: 32khz_cp clock, 21 - 1: 32khz_cp clock,
17 - 2: 32khz_pmic clock. 22 - 2: 32khz_pmic clock.
18 23
24Clocks are defined as preprocessor macros in dt-bindings/clock/maxim,max77686.h
25header and can be used in device tree sources.
26
19Example: Node of the MFD chip 27Example: Node of the MFD chip
20 28
21 max77686: max77686@09 { 29 max77686: max77686@09 {
@@ -34,5 +42,5 @@ Example: Clock consumer node
34 compatible = "bar,foo"; 42 compatible = "bar,foo";
35 /* ... */ 43 /* ... */
36 clock-names = "my-clock"; 44 clock-names = "my-clock";
37 clocks = <&max77686 2>; 45 clocks = <&max77686 MAX77686_CLK_PMIC>;
38 }; 46 };
diff --git a/Documentation/devicetree/bindings/clock/maxim,max77802.txt b/Documentation/devicetree/bindings/clock/maxim,max77802.txt
new file mode 100644
index 000000000000..c6dc7835f06c
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/maxim,max77802.txt
@@ -0,0 +1,44 @@
1Binding for Maxim MAX77802 32k clock generator block
2
3This is a part of device tree bindings of MAX77802 multi-function device.
4More information can be found in bindings/mfd/max77802.txt file.
5
6The MAX77802 contains two 32.768khz clock outputs that can be controlled
7(gated/ungated) over I2C.
8
9Following properties should be present in main device node of the MFD chip.
10
11Required properties:
12- #clock-cells: From common clock binding; shall be set to 1.
13
14Optional properties:
15- clock-output-names: From common clock binding.
16
17Each clock is assigned an identifier and client nodes can use this identifier
18to specify the clock which they consume. Following indices are allowed:
19 - 0: 32khz_ap clock,
20 - 1: 32khz_cp clock.
21
22Clocks are defined as preprocessor macros in dt-bindings/clock/maxim,max77802.h
23header and can be used in device tree sources.
24
25Example: Node of the MFD chip
26
27 max77802: max77802@09 {
28 compatible = "maxim,max77802";
29 interrupt-parent = <&wakeup_eint>;
30 interrupts = <26 0>;
31 reg = <0x09>;
32 #clock-cells = <1>;
33
34 /* ... */
35 };
36
37Example: Clock consumer node
38
39 foo@0 {
40 compatible = "bar,foo";
41 /* ... */
42 clock-names = "my-clock";
43 clocks = <&max77802 MAX77802_CLK_32K_AP>;
44 };
diff --git a/Documentation/devicetree/bindings/clock/pxa-clock.txt b/Documentation/devicetree/bindings/clock/pxa-clock.txt
new file mode 100644
index 000000000000..4b4a9024bd99
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/pxa-clock.txt
@@ -0,0 +1,16 @@
1* Clock bindings for Marvell PXA chips
2
3Required properties:
4- compatible: Should be "marvell,pxa-clocks"
5- #clock-cells: Should be <1>
6
7The clock consumer should specify the desired clock by having the clock
8ID in its "clocks" phandle cell (see include/.../pxa-clock.h).
9
10Examples:
11
12pxa2xx_clks: pxa2xx_clks@41300004 {
13 compatible = "marvell,pxa-clocks";
14 #clock-cells = <1>;
15 status = "okay";
16};
diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt
index 8a92b5fb3540..a5f52238c80d 100644
--- a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt
+++ b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt
@@ -11,9 +11,12 @@ Required Properties:
11 11
12 - compatible: Must be one of the following 12 - compatible: Must be one of the following
13 - "renesas,r7s72100-mstp-clocks" for R7S72100 (RZ) MSTP gate clocks 13 - "renesas,r7s72100-mstp-clocks" for R7S72100 (RZ) MSTP gate clocks
14 - "renesas,r8a7740-mstp-clocks" for R8A7740 (R-Mobile A1) MSTP gate clocks
14 - "renesas,r8a7779-mstp-clocks" for R8A7779 (R-Car H1) MSTP gate clocks 15 - "renesas,r8a7779-mstp-clocks" for R8A7779 (R-Car H1) MSTP gate clocks
15 - "renesas,r8a7790-mstp-clocks" for R8A7790 (R-Car H2) MSTP gate clocks 16 - "renesas,r8a7790-mstp-clocks" for R8A7790 (R-Car H2) MSTP gate clocks
16 - "renesas,r8a7791-mstp-clocks" for R8A7791 (R-Car M2) MSTP gate clocks 17 - "renesas,r8a7791-mstp-clocks" for R8A7791 (R-Car M2) MSTP gate clocks
18 - "renesas,r8a7794-mstp-clocks" for R8A7794 (R-Car E2) MSTP gate clocks
19 - "renesas,sh73a0-mstp-clocks" for SH73A0 (SH-MobileAG5) MSTP gate clocks
17 - "renesas,cpg-mstp-clock" for generic MSTP gate clocks 20 - "renesas,cpg-mstp-clock" for generic MSTP gate clocks
18 - reg: Base address and length of the I/O mapped registers used by the MSTP 21 - reg: Base address and length of the I/O mapped registers used by the MSTP
19 clocks. The first register is the clock control register and is mandatory. 22 clocks. The first register is the clock control register and is mandatory.
diff --git a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt
index 7b41c2fe54db..e6ad35b894f9 100644
--- a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt
+++ b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt
@@ -8,6 +8,7 @@ Required Properties:
8 - compatible: Must be one of 8 - compatible: Must be one of
9 - "renesas,r8a7790-cpg-clocks" for the r8a7790 CPG 9 - "renesas,r8a7790-cpg-clocks" for the r8a7790 CPG
10 - "renesas,r8a7791-cpg-clocks" for the r8a7791 CPG 10 - "renesas,r8a7791-cpg-clocks" for the r8a7791 CPG
11 - "renesas,r8a7794-cpg-clocks" for the r8a7794 CPG
11 - "renesas,rcar-gen2-cpg-clocks" for the generic R-Car Gen2 CPG 12 - "renesas,rcar-gen2-cpg-clocks" for the generic R-Car Gen2 CPG
12 13
13 - reg: Base address and length of the memory resource used by the CPG 14 - reg: Base address and length of the memory resource used by the CPG
diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt
index d3a5c3c6d677..ed116df9c3e7 100644
--- a/Documentation/devicetree/bindings/clock/sunxi.txt
+++ b/Documentation/devicetree/bindings/clock/sunxi.txt
@@ -46,7 +46,11 @@ Required properties:
46 "allwinner,sun6i-a31-apb2-div-clk" - for the APB2 gates on A31 46 "allwinner,sun6i-a31-apb2-div-clk" - for the APB2 gates on A31
47 "allwinner,sun6i-a31-apb2-gates-clk" - for the APB2 gates on A31 47 "allwinner,sun6i-a31-apb2-gates-clk" - for the APB2 gates on A31
48 "allwinner,sun8i-a23-apb2-gates-clk" - for the APB2 gates on A23 48 "allwinner,sun8i-a23-apb2-gates-clk" - for the APB2 gates on A23
49 "allwinner,sun5i-a13-mbus-clk" - for the MBUS clock on A13
50 "allwinner,sun4i-a10-mmc-output-clk" - for the MMC output clock on A10
51 "allwinner,sun4i-a10-mmc-sample-clk" - for the MMC sample clock on A10
49 "allwinner,sun4i-a10-mod0-clk" - for the module 0 family of clocks 52 "allwinner,sun4i-a10-mod0-clk" - for the module 0 family of clocks
53 "allwinner,sun8i-a23-mbus-clk" - for the MBUS clock on A23
50 "allwinner,sun7i-a20-out-clk" - for the external output clocks 54 "allwinner,sun7i-a20-out-clk" - for the external output clocks
51 "allwinner,sun7i-a20-gmac-clk" - for the GMAC clock module on A20/A31 55 "allwinner,sun7i-a20-gmac-clk" - for the GMAC clock module on A20/A31
52 "allwinner,sun4i-a10-usb-clk" - for usb gates + resets on A10 / A20 56 "allwinner,sun4i-a10-usb-clk" - for usb gates + resets on A10 / A20
diff --git a/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt b/Documentation/devicetree/bindings/cpufreq/cpufreq-dt.txt
index 366690cb86a3..e41c98ffbccb 100644
--- a/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt
+++ b/Documentation/devicetree/bindings/cpufreq/cpufreq-dt.txt
@@ -1,8 +1,8 @@
1Generic CPU0 cpufreq driver 1Generic cpufreq driver
2 2
3It is a generic cpufreq driver for CPU0 frequency management. It 3It is a generic DT based cpufreq driver for frequency management. It supports
4supports both uniprocessor (UP) and symmetric multiprocessor (SMP) 4both uniprocessor (UP) and symmetric multiprocessor (SMP) systems which share
5systems which share clock and voltage across all CPUs. 5clock and voltage across all CPUs.
6 6
7Both required and optional properties listed below must be defined 7Both required and optional properties listed below must be defined
8under node /cpus/cpu@0. 8under node /cpus/cpu@0.
diff --git a/Documentation/devicetree/bindings/crypto/fsl-sec6.txt b/Documentation/devicetree/bindings/crypto/fsl-sec6.txt
index c0a20cd972e3..baf8a3c1b469 100644
--- a/Documentation/devicetree/bindings/crypto/fsl-sec6.txt
+++ b/Documentation/devicetree/bindings/crypto/fsl-sec6.txt
@@ -1,5 +1,5 @@
1SEC 6 is as Freescale's Cryptographic Accelerator and Assurance Module (CAAM). 1SEC 6 is as Freescale's Cryptographic Accelerator and Assurance Module (CAAM).
2Currently Freescale powerpc chip C29X is embeded with SEC 6. 2Currently Freescale powerpc chip C29X is embedded with SEC 6.
3SEC 6 device tree binding include: 3SEC 6 device tree binding include:
4 -SEC 6 Node 4 -SEC 6 Node
5 -Job Ring Node 5 -Job Ring Node
diff --git a/Documentation/devicetree/bindings/dma/rcar-audmapp.txt b/Documentation/devicetree/bindings/dma/rcar-audmapp.txt
index 9f1d750d76de..61bca509d7b9 100644
--- a/Documentation/devicetree/bindings/dma/rcar-audmapp.txt
+++ b/Documentation/devicetree/bindings/dma/rcar-audmapp.txt
@@ -16,9 +16,9 @@ Example:
16* DMA client 16* DMA client
17 17
18Required properties: 18Required properties:
19- dmas: a list of <[DMA multiplexer phandle] [SRS/DRS value]> pairs, 19- dmas: a list of <[DMA multiplexer phandle] [SRS << 8 | DRS]> pairs.
20 where SRS/DRS values are fixed handles, specified in the SoC 20 where SRS/DRS are specified in the SoC manual.
21 manual as the value that would be written into the PDMACHCR. 21 It will be written into PDMACHCR as high 16-bit parts.
22- dma-names: a list of DMA channel names, one per "dmas" entry 22- dma-names: a list of DMA channel names, one per "dmas" entry
23 23
24Example: 24Example:
diff --git a/Documentation/devicetree/bindings/drm/tilcdc/panel.txt b/Documentation/devicetree/bindings/drm/tilcdc/panel.txt
index 9301c330d1a6..4ab9e2300907 100644
--- a/Documentation/devicetree/bindings/drm/tilcdc/panel.txt
+++ b/Documentation/devicetree/bindings/drm/tilcdc/panel.txt
@@ -18,6 +18,10 @@ Required properties:
18 Documentation/devicetree/bindings/video/display-timing.txt for display 18 Documentation/devicetree/bindings/video/display-timing.txt for display
19 timing binding details. 19 timing binding details.
20 20
21Optional properties:
22- backlight: phandle of the backlight device attached to the panel
23- enable-gpios: GPIO pin to enable or disable the panel
24
21Recommended properties: 25Recommended properties:
22 - pinctrl-names, pinctrl-0: the pincontrol settings to configure 26 - pinctrl-names, pinctrl-0: the pincontrol settings to configure
23 muxing properly for pins that connect to TFP410 device 27 muxing properly for pins that connect to TFP410 device
@@ -29,6 +33,9 @@ Example:
29 compatible = "ti,tilcdc,panel"; 33 compatible = "ti,tilcdc,panel";
30 pinctrl-names = "default"; 34 pinctrl-names = "default";
31 pinctrl-0 = <&bone_lcd3_cape_lcd_pins>; 35 pinctrl-0 = <&bone_lcd3_cape_lcd_pins>;
36 backlight = <&backlight>;
37 enable-gpios = <&gpio3 19 0>;
38
32 panel-info { 39 panel-info {
33 ac-bias = <255>; 40 ac-bias = <255>;
34 ac-bias-intrpt = <0>; 41 ac-bias-intrpt = <0>;
diff --git a/Documentation/devicetree/bindings/extcon/extcon-rt8973a.txt b/Documentation/devicetree/bindings/extcon/extcon-rt8973a.txt
new file mode 100644
index 000000000000..6dede7d11532
--- /dev/null
+++ b/Documentation/devicetree/bindings/extcon/extcon-rt8973a.txt
@@ -0,0 +1,25 @@
1
2* Richtek RT8973A - Micro USB Switch device
3
4The Richtek RT8973A is Micro USB Switch with OVP and I2C interface. The RT8973A
5is a USB port accessory detector and switch that is optimized to protect low
6voltage system from abnormal high input voltage (up to 28V) and supports high
7speed USB operation. Also, RT8973A support 'auto-configuration' mode.
8If auto-configuration mode is enabled, RT8973A would control internal h/w patch
9for USB D-/D+ switching.
10
11Required properties:
12- compatible: Should be "richtek,rt8973a-muic"
13- reg: Specifies the I2C slave address of the MUIC block. It should be 0x14
14- interrupt-parent: Specifies the phandle of the interrupt controller to which
15 the interrupts from rt8973a are delivered to.
16- interrupts: Interrupt specifiers for detection interrupt sources.
17
18Example:
19
20 rt8973a@14 {
21 compatible = "richtek,rt8973a-muic";
22 interrupt-parent = <&gpx1>;
23 interrupts = <5 0>;
24 reg = <0x14>;
25 };
diff --git a/Documentation/devicetree/bindings/gpio/gpio-dsp-keystone.txt b/Documentation/devicetree/bindings/gpio/gpio-dsp-keystone.txt
new file mode 100644
index 000000000000..6c7e6c7302f5
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/gpio-dsp-keystone.txt
@@ -0,0 +1,39 @@
1Keystone 2 DSP GPIO controller bindings
2
3HOST OS userland running on ARM can send interrupts to DSP cores using
4the DSP GPIO controller IP. It provides 28 IRQ signals per each DSP core.
5This is one of the component used by the IPC mechanism used on Keystone SOCs.
6
7For example TCI6638K2K SoC has 8 DSP GPIO controllers:
8 - 8 for C66x CorePacx CPUs 0-7
9
10Keystone 2 DSP GPIO controller has specific features:
11- each GPIO can be configured only as output pin;
12- setting GPIO value to 1 causes IRQ generation on target DSP core;
13- reading pin value returns 0 - if IRQ was handled or 1 - IRQ is still
14 pending.
15
16Required Properties:
17- compatible: should be "ti,keystone-dsp-gpio"
18- ti,syscon-dev: phandle/offset pair. The phandle to syscon used to
19 access device state control registers and the offset of device's specific
20 registers within device state control registers range.
21- gpio-controller: Marks the device node as a gpio controller.
22- #gpio-cells: Should be 2.
23
24Please refer to gpio.txt in this directory for details of the common GPIO
25bindings used by client devices.
26
27Example:
28 dspgpio0: keystone_dsp_gpio@02620240 {
29 compatible = "ti,keystone-dsp-gpio";
30 ti,syscon-dev = <&devctrl 0x240>;
31 gpio-controller;
32 #gpio-cells = <2>;
33 };
34
35 dsp0: dsp0 {
36 compatible = "linux,rproc-user";
37 ...
38 kick-gpio = <&dspgpio0 27>;
39 };
diff --git a/Documentation/devicetree/bindings/gpio/gpio-pca953x.txt b/Documentation/devicetree/bindings/gpio/gpio-pca953x.txt
new file mode 100644
index 000000000000..b9a42f294dd0
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/gpio-pca953x.txt
@@ -0,0 +1,39 @@
1* NXP PCA953x I2C GPIO multiplexer
2
3Required properties:
4 - compatible: Has to contain one of the following:
5 nxp,pca9505
6 nxp,pca9534
7 nxp,pca9535
8 nxp,pca9536
9 nxp,pca9537
10 nxp,pca9538
11 nxp,pca9539
12 nxp,pca9554
13 nxp,pca9555
14 nxp,pca9556
15 nxp,pca9557
16 nxp,pca9574
17 nxp,pca9575
18 nxp,pca9698
19 maxim,max7310
20 maxim,max7312
21 maxim,max7313
22 maxim,max7315
23 ti,pca6107
24 ti,tca6408
25 ti,tca6416
26 ti,tca6424
27 exar,xra1202
28
29Example:
30
31
32 gpio@20 {
33 compatible = "nxp,pca9505";
34 reg = <0x20>;
35 pinctrl-names = "default";
36 pinctrl-0 = <&pinctrl_pca9505>;
37 interrupt-parent = <&gpio3>;
38 interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
39 };
diff --git a/Documentation/devicetree/bindings/gpio/gpio-restart.txt b/Documentation/devicetree/bindings/gpio/gpio-restart.txt
new file mode 100644
index 000000000000..af3701bc15c4
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/gpio-restart.txt
@@ -0,0 +1,54 @@
1Drive a GPIO line that can be used to restart the system from a restart
2handler.
3
4This binding supports level and edge triggered reset. At driver load
5time, the driver will request the given gpio line and install a restart
6handler. If the optional properties 'open-source' is not found, the GPIO line
7will be driven in the inactive state. Otherwise its not driven until
8the restart is initiated.
9
10When the system is restarted, the restart handler will be invoked in
11priority order. The gpio is configured as an output, and driven active,
12triggering a level triggered reset condition. This will also cause an
13inactive->active edge condition, triggering positive edge triggered
14reset. After a delay specified by active-delay, the GPIO is set to
15inactive, thus causing an active->inactive edge, triggering negative edge
16triggered reset. After a delay specified by inactive-delay, the GPIO
17is driven active again. After a delay specified by wait-delay, the
18restart handler completes allowing other restart handlers to be attempted.
19
20Required properties:
21- compatible : should be "gpio-restart".
22- gpios : The GPIO to set high/low, see "gpios property" in
23 Documentation/devicetree/bindings/gpio/gpio.txt. If the pin should be
24 low to reset the board set it to "Active Low", otherwise set
25 gpio to "Active High".
26
27Optional properties:
28- open-source : Treat the GPIO as being open source and defer driving
29 it to when the restart is initiated. If this optional property is not
30 specified, the GPIO is initialized as an output in its inactive state.
31- priority : A priority ranging from 0 to 255 (default 128) according to
32 the following guidelines:
33 0: Restart handler of last resort, with limited restart
34 capabilities
35 128: Default restart handler; use if no other restart handler is
36 expected to be available, and/or if restart functionality is
37 sufficient to restart the entire system
38 255: Highest priority restart handler, will preempt all other
39 restart handlers
40- active-delay: Delay (default 100) to wait after driving gpio active [ms]
41- inactive-delay: Delay (default 100) to wait after driving gpio inactive [ms]
42- wait-delay: Delay (default 3000) to wait after completing restart
43 sequence [ms]
44
45Examples:
46
47gpio-restart {
48 compatible = "gpio-restart";
49 gpios = <&gpio 4 0>;
50 priority = <128>;
51 active-delay = <100>;
52 inactive-delay = <100>;
53 wait-delay = <3000>;
54};
diff --git a/Documentation/devicetree/bindings/gpio/gpio-xgene.txt b/Documentation/devicetree/bindings/gpio/gpio-xgene.txt
new file mode 100644
index 000000000000..86dbb05e7758
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/gpio-xgene.txt
@@ -0,0 +1,22 @@
1APM X-Gene SoC GPIO controller bindings
2
3This is a gpio controller that is part of the flash controller.
4This gpio controller controls a total of 48 gpios.
5
6Required properties:
7- compatible: "apm,xgene-gpio" for X-Gene GPIO controller
8- reg: Physical base address and size of the controller's registers
9- #gpio-cells: Should be two.
10 - first cell is the pin number
11 - second cell is used to specify the gpio polarity:
12 0 = active high
13 1 = active low
14- gpio-controller: Marks the device node as a GPIO controller.
15
16Example:
17 gpio0: gpio0@1701c000 {
18 compatible = "apm,xgene-gpio";
19 reg = <0x0 0x1701c000 0x0 0x40>;
20 gpio-controller;
21 #gpio-cells = <2>;
22 };
diff --git a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt
index 66416261e14d..b2afdb27adeb 100644
--- a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt
+++ b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt
@@ -19,7 +19,7 @@ Required properties:
19- gpio-controller : Marks the device node as a gpio controller. 19- gpio-controller : Marks the device node as a gpio controller.
20- #gpio-cells : Should be one. It is the pin number. 20- #gpio-cells : Should be one. It is the pin number.
21 21
22Example: 22Example for a MMP platform:
23 23
24 gpio: gpio@d4019000 { 24 gpio: gpio@d4019000 {
25 compatible = "marvell,mmp-gpio"; 25 compatible = "marvell,mmp-gpio";
@@ -32,6 +32,19 @@ Example:
32 #interrupt-cells = <1>; 32 #interrupt-cells = <1>;
33 }; 33 };
34 34
35Example for a PXA3xx platform:
36
37 gpio: gpio@40e00000 {
38 compatible = "intel,pxa3xx-gpio";
39 reg = <0x40e00000 0x10000>;
40 interrupt-names = "gpio0", "gpio1", "gpio_mux";
41 interrupts = <8 9 10>;
42 gpio-controller;
43 #gpio-cells = <0x2>;
44 interrupt-controller;
45 #interrupt-cells = <0x2>;
46 };
47
35* Marvell Orion GPIO Controller 48* Marvell Orion GPIO Controller
36 49
37Required properties: 50Required properties:
diff --git a/Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt b/Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt
index 2391e5c41999..fcca8e744f41 100644
--- a/Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt
+++ b/Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt
@@ -25,6 +25,9 @@ Requires node properties:
25- "io-channels" Channel node of ADC to be used for 25- "io-channels" Channel node of ADC to be used for
26 conversion. 26 conversion.
27 27
28Optional node properties:
29- "#thermal-sensor-cells" Used to expose itself to thermal fw.
30
28Read more about iio bindings at 31Read more about iio bindings at
29 Documentation/devicetree/bindings/iio/iio-bindings.txt 32 Documentation/devicetree/bindings/iio/iio-bindings.txt
30 33
diff --git a/Documentation/devicetree/bindings/i2c/ti,bq32k.txt b/Documentation/devicetree/bindings/i2c/ti,bq32k.txt
new file mode 100644
index 000000000000..e204906b9ad3
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/ti,bq32k.txt
@@ -0,0 +1,18 @@
1* TI BQ32000 I2C Serial Real-Time Clock
2
3Required properties:
4- compatible: Should contain "ti,bq32000".
5- reg: I2C address for chip
6
7Optional properties:
8- trickle-resistor-ohms : Selected resistor for trickle charger
9 Values usable are 1120 and 20180
10 Should be given if trickle charger should be enabled
11- trickle-diode-disable : Do not use internal trickle charger diode
12 Should be given if internal trickle charger diode should be disabled
13Example:
14 bq32000: rtc@68 {
15 compatible = "ti,bq32000";
16 trickle-resistor-ohms = <1120>;
17 reg = <0x68>;
18 };
diff --git a/Documentation/devicetree/bindings/i2c/trivial-devices.txt b/Documentation/devicetree/bindings/i2c/trivial-devices.txt
index 6af570ec53b4..fbde415078e6 100644
--- a/Documentation/devicetree/bindings/i2c/trivial-devices.txt
+++ b/Documentation/devicetree/bindings/i2c/trivial-devices.txt
@@ -35,7 +35,6 @@ catalyst,24c32 i2c serial eeprom
35cirrus,cs42l51 Cirrus Logic CS42L51 audio codec 35cirrus,cs42l51 Cirrus Logic CS42L51 audio codec
36dallas,ds1307 64 x 8, Serial, I2C Real-Time Clock 36dallas,ds1307 64 x 8, Serial, I2C Real-Time Clock
37dallas,ds1338 I2C RTC with 56-Byte NV RAM 37dallas,ds1338 I2C RTC with 56-Byte NV RAM
38dallas,ds1339 I2C Serial Real-Time Clock
39dallas,ds1340 I2C RTC with Trickle Charger 38dallas,ds1340 I2C RTC with Trickle Charger
40dallas,ds1374 I2C, 32-Bit Binary Counter Watchdog RTC with Trickle Charger and Reset Input/Output 39dallas,ds1374 I2C, 32-Bit Binary Counter Watchdog RTC with Trickle Charger and Reset Input/Output
41dallas,ds1631 High-Precision Digital Thermometer 40dallas,ds1631 High-Precision Digital Thermometer
@@ -44,7 +43,7 @@ dallas,ds1775 Tiny Digital Thermometer and Thermostat
44dallas,ds3232 Extremely Accurate I²C RTC with Integrated Crystal and SRAM 43dallas,ds3232 Extremely Accurate I²C RTC with Integrated Crystal and SRAM
45dallas,ds4510 CPU Supervisor with Nonvolatile Memory and Programmable I/O 44dallas,ds4510 CPU Supervisor with Nonvolatile Memory and Programmable I/O
46dallas,ds75 Digital Thermometer and Thermostat 45dallas,ds75 Digital Thermometer and Thermostat
47dialog,da9053 DA9053: flexible system level PMIC with multicore support 46dlg,da9053 DA9053: flexible system level PMIC with multicore support
48epson,rx8025 High-Stability. I2C-Bus INTERFACE REAL TIME CLOCK MODULE 47epson,rx8025 High-Stability. I2C-Bus INTERFACE REAL TIME CLOCK MODULE
49epson,rx8581 I2C-BUS INTERFACE REAL TIME CLOCK MODULE 48epson,rx8581 I2C-BUS INTERFACE REAL TIME CLOCK MODULE
50fsl,mag3110 MAG3110: Xtrinsic High Accuracy, 3D Magnetometer 49fsl,mag3110 MAG3110: Xtrinsic High Accuracy, 3D Magnetometer
diff --git a/Documentation/devicetree/bindings/iio/adc/rockchip-saradc.txt b/Documentation/devicetree/bindings/iio/adc/rockchip-saradc.txt
new file mode 100644
index 000000000000..5d3ec1df226d
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/rockchip-saradc.txt
@@ -0,0 +1,24 @@
1Rockchip Successive Approximation Register (SAR) A/D Converter bindings
2
3Required properties:
4- compatible: Should be "rockchip,saradc"
5- reg: physical base address of the controller and length of memory mapped
6 region.
7- interrupts: The interrupt number to the cpu. The interrupt specifier format
8 depends on the interrupt controller.
9- clocks: Must contain an entry for each entry in clock-names.
10- clock-names: Shall be "saradc" for the converter-clock, and "apb_pclk" for
11 the peripheral clock.
12- vref-supply: The regulator supply ADC reference voltage.
13- #io-channel-cells: Should be 1, see ../iio-bindings.txt
14
15Example:
16 saradc: saradc@2006c000 {
17 compatible = "rockchip,saradc";
18 reg = <0x2006c000 0x100>;
19 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
20 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
21 clock-names = "saradc", "apb_pclk";
22 #io-channel-cells = <1>;
23 vref-supply = <&vcc18>;
24 };
diff --git a/Documentation/devicetree/bindings/iio/adc/vf610-adc.txt b/Documentation/devicetree/bindings/iio/adc/vf610-adc.txt
index dcebff1928e1..1a4a43d5c9ea 100644
--- a/Documentation/devicetree/bindings/iio/adc/vf610-adc.txt
+++ b/Documentation/devicetree/bindings/iio/adc/vf610-adc.txt
@@ -9,7 +9,7 @@ Required properties:
9- interrupts: Should contain the interrupt 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. 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. 11- clock-names: Must contain "adc", matching entry in the clocks property.
12- vref-supply: The regulator supply ADC refrence voltage. 12- vref-supply: The regulator supply ADC reference voltage.
13 13
14Example: 14Example:
15adc0: adc@4003b000 { 15adc0: adc@4003b000 {
diff --git a/Documentation/devicetree/bindings/iio/dac/max5821.txt b/Documentation/devicetree/bindings/iio/dac/max5821.txt
new file mode 100644
index 000000000000..54276ce8c971
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/dac/max5821.txt
@@ -0,0 +1,14 @@
1Maxim max5821 DAC device driver
2
3Required properties:
4 - compatible: Must be "maxim,max5821"
5 - reg: Should contain the DAC I2C address
6 - vref-supply: Phandle to the vref power supply
7
8Example:
9
10 max5821@38 {
11 compatible = "maxim,max5821";
12 reg = <0x38>;
13 vref-supply = <&reg_max5821>;
14 };
diff --git a/Documentation/devicetree/bindings/input/atmel,maxtouch.txt b/Documentation/devicetree/bindings/input/atmel,maxtouch.txt
index baef432e8369..1852906517ab 100644
--- a/Documentation/devicetree/bindings/input/atmel,maxtouch.txt
+++ b/Documentation/devicetree/bindings/input/atmel,maxtouch.txt
@@ -11,10 +11,17 @@ Required properties:
11 11
12Optional properties for main touchpad device: 12Optional properties for main touchpad device:
13 13
14- linux,gpio-keymap: An array of up to 4 entries indicating the Linux 14- linux,gpio-keymap: When enabled, the SPT_GPIOPWN_T19 object sends messages
15 keycode generated by each GPIO. Linux keycodes are defined in 15 on GPIO bit changes. An array of up to 8 entries can be provided
16 indicating the Linux keycode mapped to each bit of the status byte,
17 starting at the LSB. Linux keycodes are defined in
16 <dt-bindings/input/input.h>. 18 <dt-bindings/input/input.h>.
17 19
20 Note: the numbering of the GPIOs and the bit they start at varies between
21 maXTouch devices. You must either refer to the documentation, or
22 experiment to determine which bit corresponds to which input. Use
23 KEY_RESERVED for unused padding values.
24
18Example: 25Example:
19 26
20 touch@4b { 27 touch@4b {
diff --git a/Documentation/devicetree/bindings/input/ti,drv260x.txt b/Documentation/devicetree/bindings/input/ti,drv260x.txt
new file mode 100644
index 000000000000..ee09c8f4474a
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/ti,drv260x.txt
@@ -0,0 +1,50 @@
1* Texas Instruments - drv260x Haptics driver family
2
3Required properties:
4 - compatible - One of:
5 "ti,drv2604" - DRV2604
6 "ti,drv2605" - DRV2605
7 "ti,drv2605l" - DRV2605L
8 - reg - I2C slave address
9 - vbat-supply - Required supply regulator
10 - mode - Power up mode of the chip (defined in include/dt-bindings/input/ti-drv260x.h)
11 DRV260X_LRA_MODE - Linear Resonance Actuator mode (Piezoelectric)
12 DRV260X_LRA_NO_CAL_MODE - This is a LRA Mode but there is no calibration
13 sequence during init. And the device is configured for real
14 time playback mode (RTP mode).
15 DRV260X_ERM_MODE - Eccentric Rotating Mass mode (Rotary vibrator)
16 - library-sel - These are ROM based waveforms pre-programmed into the IC.
17 This should be set to set the library to use at power up.
18 (defined in include/dt-bindings/input/ti-drv260x.h)
19 DRV260X_LIB_EMPTY - Do not use a pre-programmed library
20 DRV260X_ERM_LIB_A - Pre-programmed Library
21 DRV260X_ERM_LIB_B - Pre-programmed Library
22 DRV260X_ERM_LIB_C - Pre-programmed Library
23 DRV260X_ERM_LIB_D - Pre-programmed Library
24 DRV260X_ERM_LIB_E - Pre-programmed Library
25 DRV260X_ERM_LIB_F - Pre-programmed Library
26 DRV260X_LIB_LRA - Pre-programmed LRA Library
27
28Optional properties:
29 - enable-gpio - gpio pin to enable/disable the device.
30 - vib-rated-mv - The rated voltage of the actuator in millivolts.
31 If this is not set then the value will be defaulted to
32 3.2 v.
33 - vib-overdrive-mv - The overdrive voltage of the actuator in millivolts.
34 If this is not set then the value will be defaulted to
35 3.2 v.
36Example:
37
38haptics: haptics@5a {
39 compatible = "ti,drv2605l";
40 reg = <0x5a>;
41 vbat-supply = <&vbat>;
42 enable-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
43 mode = <DRV260X_LRA_MODE>;
44 library-sel = <DRV260X_LIB_LRA>;
45 vib-rated-mv = <3200>;
46 vib-overdriver-mv = <3200>;
47}
48
49For more product information please see the link below:
50http://www.ti.com/product/drv2605
diff --git a/Documentation/devicetree/bindings/input/ti,drv2667.txt b/Documentation/devicetree/bindings/input/ti,drv2667.txt
new file mode 100644
index 000000000000..996382cf994a
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/ti,drv2667.txt
@@ -0,0 +1,17 @@
1* Texas Instruments - drv2667 Haptics driver
2
3Required properties:
4 - compatible - "ti,drv2667" - DRV2667
5 - reg - I2C slave address
6 - vbat-supply - Required supply regulator
7
8Example:
9
10haptics: haptics@59 {
11 compatible = "ti,drv2667";
12 reg = <0x59>;
13 vbat-supply = <&vbat>;
14};
15
16For more product information please see the link below:
17http://www.ti.com/product/drv2667
diff --git a/Documentation/devicetree/bindings/input/ti,palmas-pwrbutton.txt b/Documentation/devicetree/bindings/input/ti,palmas-pwrbutton.txt
new file mode 100644
index 000000000000..a3dde8c30e67
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/ti,palmas-pwrbutton.txt
@@ -0,0 +1,36 @@
1Texas Instruments Palmas family power button module
2
3This module is part of the Palmas family of PMICs. For more details
4about the whole chip see:
5Documentation/devicetree/bindings/mfd/palmas.txt.
6
7This module provides a simple power button event via an Interrupt.
8
9Required properties:
10- compatible: should be one of the following
11 - "ti,palmas-pwrbutton": For Palmas compatible power on button
12- interrupt-parent: Parent interrupt device, must be handle of palmas node.
13- interrupts: Interrupt number of power button submodule on device.
14
15Optional Properties:
16
17- ti,palmas-long-press-seconds: Duration in seconds which the power
18 button should be kept pressed for Palmas to power off automatically.
19 NOTE: This depends on OTP support and POWERHOLD signal configuration
20 on platform. Valid values are 6, 8, 10 and 12.
21- ti,palmas-pwron-debounce-milli-seconds: Duration in milliseconds
22 which the power button should be kept pressed for Palmas to register
23 a press for debouncing purposes. NOTE: This depends on specific
24 Palmas variation capability. Valid values are 15, 100, 500 and 1000.
25
26Example:
27
28&palmas {
29 palmas_pwr_button: pwrbutton {
30 compatible = "ti,palmas-pwrbutton";
31 interrupt-parent = <&tps659038>;
32 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
33 ti,palmas-long-press-seconds = <12>;
34 ti,palmas-pwron-debounce-milli-seconds = <15>;
35 };
36};
diff --git a/Documentation/devicetree/bindings/interrupt-controller/atmel,aic.txt b/Documentation/devicetree/bindings/interrupt-controller/atmel,aic.txt
index 2742e9cfd6b1..f292917fa00d 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/atmel,aic.txt
+++ b/Documentation/devicetree/bindings/interrupt-controller/atmel,aic.txt
@@ -2,7 +2,7 @@
2 2
3Required properties: 3Required properties:
4- compatible: Should be "atmel,<chip>-aic" 4- compatible: Should be "atmel,<chip>-aic"
5 <chip> can be "at91rm9200" or "sama5d3" 5 <chip> can be "at91rm9200", "sama5d3" or "sama5d4"
6- interrupt-controller: Identifies the node as an interrupt controller. 6- interrupt-controller: Identifies the node as an interrupt controller.
7- interrupt-parent: For single AIC system, it is an empty property. 7- interrupt-parent: For single AIC system, it is an empty property.
8- #interrupt-cells: The number of cells to define the interrupts. It should be 3. 8- #interrupt-cells: The number of cells to define the interrupts. It should be 3.
diff --git a/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7120-l2-intc.txt b/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7120-l2-intc.txt
new file mode 100644
index 000000000000..ff812a8a82bc
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7120-l2-intc.txt
@@ -0,0 +1,86 @@
1Broadcom BCM7120-style Level 2 interrupt controller
2
3This interrupt controller hardware is a second level interrupt controller that
4is hooked to a parent interrupt controller: e.g: ARM GIC for ARM-based
5platforms. It can be found on BCM7xxx products starting with BCM7120.
6
7Such an interrupt controller has the following hardware design:
8
9- outputs multiple interrupts signals towards its interrupt controller parent
10
11- controls how some of the interrupts will be flowing, whether they will
12 directly output an interrupt signal towards the interrupt controller parent,
13 or if they will output an interrupt signal at this 2nd level interrupt
14 controller, in particular for UARTs
15
16- not all 32-bits within the interrupt controller actually map to an interrupt
17
18The typical hardware layout for this controller is represented below:
19
202nd level interrupt line Outputs for the parent controller (e.g: ARM GIC)
21
220 -----[ MUX ] ------------|==========> GIC interrupt 75
23 \-----------\
24 |
251 -----[ MUX ] --------)---|==========> GIC interrupt 76
26 \------------|
27 |
282 -----[ MUX ] --------)---|==========> GIC interrupt 77
29 \------------|
30 |
313 ---------------------|
324 ---------------------|
335 ---------------------|
347 ---------------------|---|===========> GIC interrupt 66
359 ---------------------|
3610 --------------------|
3711 --------------------/
38
396 ------------------------\
40 |===========> GIC interrupt 64
418 ------------------------/
42
4312 ........................ X
4413 ........................ X (not connected)
45..
4631 ........................ X
47
48Required properties:
49
50- compatible: should be "brcm,bcm7120-l2-intc"
51- reg: specifies the base physical address and size of the registers
52- interrupt-controller: identifies the node as an interrupt controller
53- #interrupt-cells: specifies the number of cells needed to encode an interrupt
54 source, should be 1.
55- interrupt-parent: specifies the phandle to the parent interrupt controller
56 this one is cascaded from
57- interrupts: specifies the interrupt line(s) in the interrupt-parent controller
58 node, valid values depend on the type of parent interrupt controller
59- brcm,int-map-mask: 32-bits bit mask describing how many and which interrupts
60 are wired to this 2nd level interrupt controller, and how they match their
61 respective interrupt parents. Should match exactly the number of interrupts
62 specified in the 'interrupts' property.
63
64Optional properties:
65
66- brcm,irq-can-wake: if present, this means the L2 controller can be used as a
67 wakeup source for system suspend/resume.
68
69- brcm,int-fwd-mask: if present, a 32-bits bit mask to configure for the
70 interrupts which have a mux gate, typically UARTs. Setting these bits will
71 make their respective interrupts outputs bypass this 2nd level interrupt
72 controller completely, it completely transparent for the interrupt controller
73 parent
74
75Example:
76
77irq0_intc: interrupt-controller@f0406800 {
78 compatible = "brcm,bcm7120-l2-intc";
79 interrupt-parent = <&intc>;
80 #interrupt-cells = <1>;
81 reg = <0xf0406800 0x8>;
82 interrupt-controller;
83 interrupts = <0x0 0x42 0x0>, <0x0 0x40 0x0>;
84 brcm,int-map-mask = <0xeb8>, <0x140>;
85 brcm,int-fwd-mask = <0x7>;
86};
diff --git a/Documentation/devicetree/bindings/interrupt-controller/interrupts.txt b/Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
index 1486497a24c1..ce6a1a072028 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
+++ b/Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
@@ -4,11 +4,13 @@ Specifying interrupt information for devices
41) Interrupt client nodes 41) Interrupt client nodes
5------------------------- 5-------------------------
6 6
7Nodes that describe devices which generate interrupts must contain an either an 7Nodes that describe devices which generate interrupts must contain an
8"interrupts" property or an "interrupts-extended" property. These properties 8"interrupts" property, an "interrupts-extended" property, or both. If both are
9contain a list of interrupt specifiers, one per output interrupt. The format of 9present, the latter should take precedence; the former may be provided simply
10the interrupt specifier is determined by the interrupt controller to which the 10for compatibility with software that does not recognize the latter. These
11interrupts are routed; see section 2 below for details. 11properties contain a list of interrupt specifiers, one per output interrupt. The
12format of the interrupt specifier is determined by the interrupt controller to
13which the interrupts are routed; see section 2 below for details.
12 14
13 Example: 15 Example:
14 interrupt-parent = <&intc1>; 16 interrupt-parent = <&intc1>;
diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt b/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt
index 1f8b0c507c26..c73acd060093 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt
+++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt
@@ -2,7 +2,13 @@ DT bindings for the R-/SH-Mobile irqpin controller
2 2
3Required properties: 3Required properties:
4 4
5- compatible: has to be "renesas,intc-irqpin" 5- compatible: has to be "renesas,intc-irqpin-<soctype>", "renesas,intc-irqpin"
6 as fallback.
7 Examples with soctypes are:
8 - "renesas,intc-irqpin-r8a7740" (R-Mobile A1)
9 - "renesas,intc-irqpin-r8a7778" (R-Car M1A)
10 - "renesas,intc-irqpin-r8a7779" (R-Car H1)
11 - "renesas,intc-irqpin-sh73a0" (SH-Mobile AG5)
6- #interrupt-cells: has to be <2>: an interrupt index and flags, as defined in 12- #interrupt-cells: has to be <2>: an interrupt index and flags, as defined in
7 interrupts.txt in this directory 13 interrupts.txt in this directory
8 14
diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt
new file mode 100644
index 000000000000..1a88e62228e5
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,irqc.txt
@@ -0,0 +1,32 @@
1DT bindings for the R-Mobile/R-Car interrupt controller
2
3Required properties:
4
5- compatible: has to be "renesas,irqc-<soctype>", "renesas,irqc" as fallback.
6 Examples with soctypes are:
7 - "renesas,irqc-r8a73a4" (R-Mobile AP6)
8 - "renesas,irqc-r8a7790" (R-Car H2)
9 - "renesas,irqc-r8a7791" (R-Car M2-W)
10 - "renesas,irqc-r8a7792" (R-Car V2H)
11 - "renesas,irqc-r8a7793" (R-Car M2-N)
12 - "renesas,irqc-r8a7794" (R-Car E2)
13- #interrupt-cells: has to be <2>: an interrupt index and flags, as defined in
14 interrupts.txt in this directory
15
16Optional properties:
17
18- any properties, listed in interrupts.txt, and any standard resource allocation
19 properties
20
21Example:
22
23 irqc0: interrupt-controller@e61c0000 {
24 compatible = "renesas,irqc-r8a7790", "renesas,irqc";
25 #interrupt-cells = <2>;
26 interrupt-controller;
27 reg = <0 0xe61c0000 0 0x200>;
28 interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>,
29 <0 1 IRQ_TYPE_LEVEL_HIGH>,
30 <0 2 IRQ_TYPE_LEVEL_HIGH>,
31 <0 3 IRQ_TYPE_LEVEL_HIGH>;
32 };
diff --git a/Documentation/devicetree/bindings/interrupt-controller/ti,keystone-irq.txt b/Documentation/devicetree/bindings/interrupt-controller/ti,keystone-irq.txt
new file mode 100644
index 000000000000..d9bb106bdd16
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/ti,keystone-irq.txt
@@ -0,0 +1,36 @@
1Keystone 2 IRQ controller IP
2
3On Keystone SOCs, DSP cores can send interrupts to ARM
4host using the IRQ controller IP. It provides 28 IRQ signals to ARM.
5The IRQ handler running on HOST OS can identify DSP signal source by
6analyzing SRCCx bits in IPCARx registers. This is one of the component
7used by the IPC mechanism used on Keystone SOCs.
8
9Required Properties:
10- compatible: should be "ti,keystone-irq"
11- ti,syscon-dev : phandle and offset pair. The phandle to syscon used to
12 access device control registers and the offset inside
13 device control registers range.
14- interrupt-controller : Identifies the node as an interrupt controller
15- #interrupt-cells : Specifies the number of cells needed to encode interrupt
16 source should be 1.
17- interrupts: interrupt reference to primary interrupt controller
18
19Please refer to interrupts.txt in this directory for details of the common
20Interrupt Controllers bindings used by client devices.
21
22Example:
23 kirq0: keystone_irq0@026202a0 {
24 compatible = "ti,keystone-irq";
25 ti,syscon-dev = <&devctrl 0x2a0>;
26 interrupts = <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>;
27 interrupt-controller;
28 #interrupt-cells = <1>;
29 };
30
31 dsp0: dsp0 {
32 compatible = "linux,rproc-user";
33 ...
34 interrupt-parent = <&kirq0>;
35 interrupts = <10 2>;
36 };
diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.txt b/Documentation/devicetree/bindings/iommu/arm,smmu.txt
index 2d0f7cd867ea..06760503a819 100644
--- a/Documentation/devicetree/bindings/iommu/arm,smmu.txt
+++ b/Documentation/devicetree/bindings/iommu/arm,smmu.txt
@@ -14,6 +14,7 @@ conditions.
14 "arm,smmu-v1" 14 "arm,smmu-v1"
15 "arm,smmu-v2" 15 "arm,smmu-v2"
16 "arm,mmu-400" 16 "arm,mmu-400"
17 "arm,mmu-401"
17 "arm,mmu-500" 18 "arm,mmu-500"
18 19
19 depending on the particular implementation and/or the 20 depending on the particular implementation and/or the
diff --git a/Documentation/devicetree/bindings/leds/register-bit-led.txt b/Documentation/devicetree/bindings/leds/register-bit-led.txt
new file mode 100644
index 000000000000..379cefdc0bda
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/register-bit-led.txt
@@ -0,0 +1,99 @@
1Device Tree Bindings for Register Bit LEDs
2
3Register bit leds are used with syscon multifunctional devices
4where single bits in a certain register can turn on/off a
5single LED. The register bit LEDs appear as children to the
6syscon device, with the proper compatible string. For the
7syscon bindings see:
8Documentation/devicetree/bindings/mfd/syscon.txt
9
10Each LED is represented as a sub-node of the syscon device. Each
11node's name represents the name of the corresponding LED.
12
13LED sub-node properties:
14
15Required properties:
16- compatible : must be "register-bit-led"
17- offset : register offset to the register controlling this LED
18- mask : bit mask for the bit controlling this LED in the register
19 typically 0x01, 0x02, 0x04 ...
20
21Optional properties:
22- label : (optional)
23 see Documentation/devicetree/bindings/leds/common.txt
24- linux,default-trigger : (optional)
25 see Documentation/devicetree/bindings/leds/common.txt
26- default-state: (optional) The initial state of the LED. Valid
27 values are "on", "off", and "keep". If the LED is already on or off
28 and the default-state property is set the to same value, then no
29 glitch should be produced where the LED momentarily turns off (or
30 on). The "keep" setting will keep the LED at whatever its current
31 state is, without producing a glitch. The default is off if this
32 property is not present.
33
34Example:
35
36syscon: syscon@10000000 {
37 compatible = "arm,realview-pb1176-syscon", "syscon";
38 reg = <0x10000000 0x1000>;
39
40 led@08.0 {
41 compatible = "register-bit-led";
42 offset = <0x08>;
43 mask = <0x01>;
44 label = "versatile:0";
45 linux,default-trigger = "heartbeat";
46 default-state = "on";
47 };
48 led@08.1 {
49 compatible = "register-bit-led";
50 offset = <0x08>;
51 mask = <0x02>;
52 label = "versatile:1";
53 linux,default-trigger = "mmc0";
54 default-state = "off";
55 };
56 led@08.2 {
57 compatible = "register-bit-led";
58 offset = <0x08>;
59 mask = <0x04>;
60 label = "versatile:2";
61 linux,default-trigger = "cpu0";
62 default-state = "off";
63 };
64 led@08.3 {
65 compatible = "register-bit-led";
66 offset = <0x08>;
67 mask = <0x08>;
68 label = "versatile:3";
69 default-state = "off";
70 };
71 led@08.4 {
72 compatible = "register-bit-led";
73 offset = <0x08>;
74 mask = <0x10>;
75 label = "versatile:4";
76 default-state = "off";
77 };
78 led@08.5 {
79 compatible = "register-bit-led";
80 offset = <0x08>;
81 mask = <0x20>;
82 label = "versatile:5";
83 default-state = "off";
84 };
85 led@08.6 {
86 compatible = "register-bit-led";
87 offset = <0x08>;
88 mask = <0x40>;
89 label = "versatile:6";
90 default-state = "off";
91 };
92 led@08.7 {
93 compatible = "register-bit-led";
94 offset = <0x08>;
95 mask = <0x80>;
96 label = "versatile:7";
97 default-state = "off";
98 };
99};
diff --git a/Documentation/devicetree/bindings/mailbox/omap-mailbox.txt b/Documentation/devicetree/bindings/mailbox/omap-mailbox.txt
new file mode 100644
index 000000000000..48edc4b92afb
--- /dev/null
+++ b/Documentation/devicetree/bindings/mailbox/omap-mailbox.txt
@@ -0,0 +1,108 @@
1OMAP2+ Mailbox Driver
2=====================
3
4The OMAP mailbox hardware facilitates communication between different processors
5using a queued mailbox interrupt mechanism. The IP block is external to the
6various processor subsystems and is connected on an interconnect bus. The
7communication is achieved through a set of registers for message storage and
8interrupt configuration registers.
9
10Each mailbox IP block has a certain number of h/w fifo queues and output
11interrupt lines. An output interrupt line is routed to an interrupt controller
12within a processor subsystem, and there can be more than one line going to a
13specific processor's interrupt controller. The interrupt line connections are
14fixed for an instance and are dictated by the IP integration into the SoC
15(excluding the SoCs that have a Interrupt Crossbar IP). Each interrupt line is
16programmable through a set of interrupt configuration registers, and have a rx
17and tx interrupt source per h/w fifo. Communication between different processors
18is achieved through the appropriate programming of the rx and tx interrupt
19sources on the appropriate interrupt lines.
20
21The number of h/w fifo queues and interrupt lines dictate the usable registers.
22All the current OMAP SoCs except for the newest DRA7xx SoC has a single IP
23instance. DRA7xx has multiple instances with different number of h/w fifo queues
24and interrupt lines between different instances. The interrupt lines can also be
25routed to different processor sub-systems on DRA7xx as they are routed through
26the Crossbar, a kind of interrupt router/multiplexer.
27
28Mailbox Device Node:
29====================
30A Mailbox device node is used to represent a Mailbox IP instance within a SoC.
31The sub-mailboxes are represented as child nodes of this parent node.
32
33Required properties:
34--------------------
35- compatible: Should be one of the following,
36 "ti,omap2-mailbox" for OMAP2420, OMAP2430 SoCs
37 "ti,omap3-mailbox" for OMAP3430, OMAP3630 SoCs
38 "ti,omap4-mailbox" for OMAP44xx, OMAP54xx, AM33xx,
39 AM43xx and DRA7xx SoCs
40- reg: Contains the mailbox register address range (base
41 address and length)
42- interrupts: Contains the interrupt information for the mailbox
43 device. The format is dependent on which interrupt
44 controller the OMAP device uses
45- ti,hwmods: Name of the hwmod associated with the mailbox
46- ti,mbox-num-users: Number of targets (processor devices) that the mailbox
47 device can interrupt
48- ti,mbox-num-fifos: Number of h/w fifo queues within the mailbox IP block
49
50Child Nodes:
51============
52A child node is used for representing the actual sub-mailbox device that is
53used for the communication between the host processor and a remote processor.
54Each child node should have a unique node name across all the different
55mailbox device nodes.
56
57Required properties:
58--------------------
59- ti,mbox-tx: sub-mailbox descriptor property defining a Tx fifo
60- ti,mbox-rx: sub-mailbox descriptor property defining a Rx fifo
61
62Sub-mailbox Descriptor Data
63---------------------------
64Each of the above ti,mbox-tx and ti,mbox-rx properties should have 3 cells of
65data that represent the following:
66 Cell #1 (fifo_id) - mailbox fifo id used either for transmitting
67 (ti,mbox-tx) or for receiving (ti,mbox-rx)
68 Cell #2 (irq_id) - irq identifier index number to use from the parent's
69 interrupts data. Should be 0 for most of the cases, a
70 positive index value is seen only on mailboxes that have
71 multiple interrupt lines connected to the MPU processor.
72 Cell #3 (usr_id) - mailbox user id for identifying the interrupt line
73 associated with generating a tx/rx fifo interrupt.
74
75Example:
76--------
77
78/* OMAP4 */
79mailbox: mailbox@4a0f4000 {
80 compatible = "ti,omap4-mailbox";
81 reg = <0x4a0f4000 0x200>;
82 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
83 ti,hwmods = "mailbox";
84 ti,mbox-num-users = <3>;
85 ti,mbox-num-fifos = <8>;
86 mbox_ipu: mbox_ipu {
87 ti,mbox-tx = <0 0 0>;
88 ti,mbox-rx = <1 0 0>;
89 };
90 mbox_dsp: mbox_dsp {
91 ti,mbox-tx = <3 0 0>;
92 ti,mbox-rx = <2 0 0>;
93 };
94};
95
96/* AM33xx */
97mailbox: mailbox@480C8000 {
98 compatible = "ti,omap4-mailbox";
99 reg = <0x480C8000 0x200>;
100 interrupts = <77>;
101 ti,hwmods = "mailbox";
102 ti,mbox-num-users = <4>;
103 ti,mbox-num-fifos = <8>;
104 mbox_wkupm3: wkup_m3 {
105 ti,mbox-tx = <0 0 0>;
106 ti,mbox-rx = <0 0 3>;
107 };
108};
diff --git a/Documentation/devicetree/bindings/media/hix5hd2-ir.txt b/Documentation/devicetree/bindings/media/hix5hd2-ir.txt
new file mode 100644
index 000000000000..fb5e7606643a
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/hix5hd2-ir.txt
@@ -0,0 +1,25 @@
1Device-Tree bindings for hix5hd2 ir IP
2
3Required properties:
4 - compatible: Should contain "hisilicon,hix5hd2-ir".
5 - reg: Base physical address of the controller and length of memory
6 mapped region.
7 - interrupts: interrupt-specifier for the sole interrupt generated by
8 the device. The interrupt specifier format depends on the interrupt
9 controller parent.
10 - clocks: clock phandle and specifier pair.
11 - hisilicon,power-syscon: phandle of syscon used to control power.
12
13Optional properties:
14 - linux,rc-map-name : Remote control map name.
15
16Example node:
17
18 ir: ir@f8001000 {
19 compatible = "hisilicon,hix5hd2-ir";
20 reg = <0xf8001000 0x1000>;
21 interrupts = <0 47 4>;
22 clocks = <&clock HIX5HD2_FIXED_24M>;
23 hisilicon,power-syscon = <&sysctrl>;
24 linux,rc-map-name = "rc-tivo";
25 };
diff --git a/Documentation/devicetree/bindings/memory-controllers/synopsys.txt b/Documentation/devicetree/bindings/memory-controllers/synopsys.txt
new file mode 100644
index 000000000000..f9c6454146b6
--- /dev/null
+++ b/Documentation/devicetree/bindings/memory-controllers/synopsys.txt
@@ -0,0 +1,11 @@
1Binding for Synopsys IntelliDDR Multi Protocol Memory Controller
2
3Required properties:
4 - compatible: Should be 'xlnx,zynq-ddrc-a05'
5 - reg: Base address and size of the controllers memory area
6
7Example:
8 memory-controller@f8006000 {
9 compatible = "xlnx,zynq-ddrc-a05";
10 reg = <0xf8006000 0x1000>;
11 };
diff --git a/Documentation/devicetree/bindings/mfd/arizona.txt b/Documentation/devicetree/bindings/mfd/arizona.txt
index 5c7e7230984a..7bd1273f571a 100644
--- a/Documentation/devicetree/bindings/mfd/arizona.txt
+++ b/Documentation/devicetree/bindings/mfd/arizona.txt
@@ -42,6 +42,13 @@ Optional properties:
42 the chip default will be used. If present exactly five values must 42 the chip default will be used. If present exactly five values must
43 be specified. 43 be specified.
44 44
45 - wlf,inmode : A list of INn_MODE register values, where n is the number
46 of input signals. Valid values are 0 (Differential), 1 (Single-ended) and
47 2 (Digital Microphone). If absent, INn_MODE registers set to 0 by default.
48 If present, values must be specified less than or equal to the number of
49 input singals. If values less than the number of input signals, elements
50 that has not been specifed are set to 0 by default.
51
45 - DCVDD-supply, MICVDD-supply : Power supplies, only need to be specified if 52 - DCVDD-supply, MICVDD-supply : Power supplies, only need to be specified if
46 they are being externally supplied. As covered in 53 they are being externally supplied. As covered in
47 Documentation/devicetree/bindings/regulator/regulator.txt 54 Documentation/devicetree/bindings/regulator/regulator.txt
diff --git a/Documentation/devicetree/bindings/mfd/atmel-gpbr.txt b/Documentation/devicetree/bindings/mfd/atmel-gpbr.txt
new file mode 100644
index 000000000000..a28569540683
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/atmel-gpbr.txt
@@ -0,0 +1,15 @@
1* Device tree bindings for Atmel GPBR (General Purpose Backup Registers)
2
3The GPBR are a set of battery-backed registers.
4
5Required properties:
6- compatible: "atmel,at91sam9260-gpbr", "syscon"
7- reg: contains offset/length value of the GPBR memory
8 region.
9
10Example:
11
12gpbr: gpbr@fffffd50 {
13 compatible = "atmel,at91sam9260-gpbr", "syscon";
14 reg = <0xfffffd50 0x10>;
15};
diff --git a/Documentation/devicetree/bindings/mfd/hi6421.txt b/Documentation/devicetree/bindings/mfd/hi6421.txt
new file mode 100644
index 000000000000..0d5a4466a494
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/hi6421.txt
@@ -0,0 +1,38 @@
1* HI6421 Multi-Functional Device (MFD), by HiSilicon Ltd.
2
3Required parent device properties:
4- compatible : contains "hisilicon,hi6421-pmic";
5- reg : register range space of hi6421;
6
7Supported Hi6421 sub-devices include:
8
9Device IRQ Names Supply Names Description
10------ --------- ------------ -----------
11regulators : None : None : Regulators
12
13Required child device properties:
14None.
15
16Example:
17 hi6421 {
18 compatible = "hisilicon,hi6421-pmic";
19 reg = <0xfcc00000 0x0180>; /* 0x60 << 2 */
20
21 regulators {
22 // supply for MLC NAND/ eMMC
23 hi6421_vout0_reg: hi6421_vout0 {
24 regulator-name = "VOUT0";
25 regulator-min-microvolt = <2850000>;
26 regulator-max-microvolt = <2850000>;
27 };
28
29 // supply for 26M Oscillator
30 hi6421_vout1_reg: hi6421_vout1 {
31 regulator-name = "VOUT1";
32 regulator-min-microvolt = <1700000>;
33 regulator-max-microvolt = <2000000>;
34 regulator-boot-on;
35 regulator-always-on;
36 };
37 };
38 };
diff --git a/Documentation/devicetree/bindings/mfd/max14577.txt b/Documentation/devicetree/bindings/mfd/max14577.txt
new file mode 100644
index 000000000000..236264c10b92
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/max14577.txt
@@ -0,0 +1,146 @@
1Maxim MAX14577/77836 Multi-Function Device
2
3MAX14577 is a Multi-Function Device with Micro-USB Interface Circuit, Li+
4Battery Charger and SFOUT LDO output for powering USB devices. It is
5interfaced to host controller using I2C.
6
7MAX77836 additionally contains PMIC (with two LDO regulators) and Fuel Gauge.
8
9
10Required properties:
11- compatible : Must be "maxim,max14577" or "maxim,max77836".
12- reg : I2C slave address for the max14577 chip (0x25 for max14577/max77836)
13- interrupts : IRQ line for the chip.
14- interrupt-parent : The parent interrupt controller.
15
16
17Required nodes:
18 - charger :
19 Node for configuring the charger driver.
20 Required properties:
21 - compatible : "maxim,max14577-charger"
22 or "maxim,max77836-charger"
23 - maxim,fast-charge-uamp : Current in uA for Fast Charge;
24 Valid values:
25 - for max14577: 90000 - 950000;
26 - for max77836: 45000 - 475000;
27 - maxim,eoc-uamp : Current in uA for End-Of-Charge mode;
28 Valid values:
29 - for max14577: 50000 - 200000;
30 - for max77836: 5000 - 100000;
31 - maxim,ovp-uvolt : OverVoltage Protection Threshold in uV;
32 In an overvoltage condition, INT asserts and charging
33 stops. Valid values:
34 - 6000000, 6500000, 7000000, 7500000;
35 - maxim,constant-uvolt : Battery Constant Voltage in uV;
36 Valid values:
37 - 4000000 - 4280000 (step by 20000);
38 - 4350000;
39
40
41Optional nodes:
42- max14577-muic/max77836-muic :
43 Node used only by extcon consumers.
44 Required properties:
45 - compatible : "maxim,max14577-muic" or "maxim,max77836-muic"
46
47- regulators :
48 Required properties:
49 - compatible : "maxim,max14577-regulator"
50 or "maxim,max77836-regulator"
51
52 May contain a sub-node per regulator from the list below. Each
53 sub-node should contain the constraints and initialization information
54 for that regulator. See regulator.txt for a description of standard
55 properties for these sub-nodes.
56
57 List of valid regulator names:
58 - for max14577: CHARGER, SAFEOUT.
59 - for max77836: CHARGER, SAFEOUT, LDO1, LDO2.
60
61 The SAFEOUT is a fixed voltage regulator so there is no need to specify
62 voltages for it.
63
64
65Example:
66
67#include <dt-bindings/interrupt-controller/irq.h>
68
69max14577@25 {
70 compatible = "maxim,max14577";
71 reg = <0x25>;
72 interrupt-parent = <&gpx1>;
73 interrupts = <5 IRQ_TYPE_NONE>;
74
75 muic: max14577-muic {
76 compatible = "maxim,max14577-muic";
77 };
78
79 regulators {
80 compatible = "maxim,max14577-regulator";
81
82 SAFEOUT {
83 regulator-name = "SAFEOUT";
84 };
85 CHARGER {
86 regulator-name = "CHARGER";
87 regulator-min-microamp = <90000>;
88 regulator-max-microamp = <950000>;
89 regulator-boot-on;
90 };
91 };
92
93 charger {
94 compatible = "maxim,max14577-charger";
95
96 maxim,constant-uvolt = <4350000>;
97 maxim,fast-charge-uamp = <450000>;
98 maxim,eoc-uamp = <50000>;
99 maxim,ovp-uvolt = <6500000>;
100 };
101};
102
103
104max77836@25 {
105 compatible = "maxim,max77836";
106 reg = <0x25>;
107 interrupt-parent = <&gpx1>;
108 interrupts = <5 IRQ_TYPE_NONE>;
109
110 muic: max77836-muic {
111 compatible = "maxim,max77836-muic";
112 };
113
114 regulators {
115 compatible = "maxim,max77836-regulator";
116
117 SAFEOUT {
118 regulator-name = "SAFEOUT";
119 };
120 CHARGER {
121 regulator-name = "CHARGER";
122 regulator-min-microamp = <90000>;
123 regulator-max-microamp = <950000>;
124 regulator-boot-on;
125 };
126 LDO1 {
127 regulator-name = "LDO1";
128 regulator-min-microvolt = <2700000>;
129 regulator-max-microvolt = <2700000>;
130 };
131 LDO2 {
132 regulator-name = "LDO2";
133 regulator-min-microvolt = <800000>;
134 regulator-max-microvolt = <3950000>;
135 };
136 };
137
138 charger {
139 compatible = "maxim,max77836-charger";
140
141 maxim,constant-uvolt = <4350000>;
142 maxim,fast-charge-uamp = <225000>;
143 maxim,eoc-uamp = <7500>;
144 maxim,ovp-uvolt = <6500000>;
145 };
146};
diff --git a/Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.txt b/Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.txt
new file mode 100644
index 000000000000..7182b8857f57
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.txt
@@ -0,0 +1,64 @@
1 Qualcomm SPMI PMICs multi-function device bindings
2
3The Qualcomm SPMI series presently includes PM8941, PM8841 and PMA8084
4PMICs. These PMICs use a QPNP scheme through SPMI interface.
5QPNP is effectively a partitioning scheme for dividing the SPMI extended
6register space up into logical pieces, and set of fixed register
7locations/definitions within these regions, with some of these regions
8specifically used for interrupt handling.
9
10The QPNP PMICs are used with the Qualcomm Snapdragon series SoCs, and are
11interfaced to the chip via the SPMI (System Power Management Interface) bus.
12Support for multiple independent functions are implemented by splitting the
1316-bit SPMI slave address space into 256 smaller fixed-size regions, 256 bytes
14each. A function can consume one or more of these fixed-size register regions.
15
16Required properties:
17- compatible: Should contain one of:
18 "qcom,pm8941"
19 "qcom,pm8841"
20 "qcom,pma8084"
21 or generalized "qcom,spmi-pmic".
22- reg: Specifies the SPMI USID slave address for this device.
23 For more information see:
24 Documentation/devicetree/bindings/spmi/spmi.txt
25
26Required properties for peripheral child nodes:
27- compatible: Should contain "qcom,xxx", where "xxx" is a peripheral name.
28
29Optional properties for peripheral child nodes:
30- interrupts: Interrupts are specified as a 4-tuple. For more information
31 see:
32 Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.txt
33- interrupt-names: Corresponding interrupt name to the interrupts property
34
35Each child node of SPMI slave id represents a function of the PMIC. In the
36example below the rtc device node represents a peripheral of pm8941
37SID = 0. The regulator device node represents a peripheral of pm8941 SID = 1.
38
39Example:
40
41 spmi {
42 compatible = "qcom,spmi-pmic-arb";
43
44 pm8941@0 {
45 compatible = "qcom,pm8941", "qcom,spmi-pmic";
46 reg = <0x0 SPMI_USID>;
47
48 rtc {
49 compatible = "qcom,rtc";
50 interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
51 interrupt-names = "alarm";
52 };
53 };
54
55 pm8941@1 {
56 compatible = "qcom,pm8941", "qcom,spmi-pmic";
57 reg = <0x1 SPMI_USID>;
58
59 regulator {
60 compatible = "qcom,regulator";
61 regulator-name = "8941_boost";
62 };
63 };
64 };
diff --git a/Documentation/devicetree/bindings/mfd/qcom,pm8xxx.txt b/Documentation/devicetree/bindings/mfd/qcom-pm8xxx.txt
index 03518dc8b6bd..f24f33409164 100644
--- a/Documentation/devicetree/bindings/mfd/qcom,pm8xxx.txt
+++ b/Documentation/devicetree/bindings/mfd/qcom-pm8xxx.txt
@@ -61,6 +61,7 @@ The below bindings specify the set of valid subnodes.
61 Definition: must be one of: 61 Definition: must be one of:
62 "qcom,pm8058-rtc" 62 "qcom,pm8058-rtc"
63 "qcom,pm8921-rtc" 63 "qcom,pm8921-rtc"
64 "qcom,pm8941-rtc"
64 65
65- reg: 66- reg:
66 Usage: required 67 Usage: required
diff --git a/Documentation/devicetree/bindings/mfd/rk808.txt b/Documentation/devicetree/bindings/mfd/rk808.txt
new file mode 100644
index 000000000000..9e6e2592e5c8
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/rk808.txt
@@ -0,0 +1,177 @@
1RK808 Power Management Integrated Circuit
2
3Required properties:
4- compatible: "rockchip,rk808"
5- reg: I2C slave address
6- interrupt-parent: The parent interrupt controller.
7- interrupts: the interrupt outputs of the controller.
8- #clock-cells: from common clock binding; shall be set to 1 (multiple clock
9 outputs). See <dt-bindings/clock/rockchip,rk808.h> for clock IDs.
10
11Optional properties:
12- clock-output-names: From common clock binding to override the
13 default output clock name
14- rockchip,system-power-controller: Telling whether or not this pmic is controlling
15 the system power.
16- vcc1-supply: The input supply for DCDC_REG1
17- vcc2-supply: The input supply for DCDC_REG2
18- vcc3-supply: The input supply for DCDC_REG3
19- vcc4-supply: The input supply for DCDC_REG4
20- vcc6-supply: The input supply for LDO_REG1 and LDO_REG2
21- vcc7-supply: The input supply for LDO_REG3 and LDO_REG7
22- vcc8-supply: The input supply for SWITCH_REG1
23- vcc9-supply: The input supply for LDO_REG4 and LDO_REG5
24- vcc10-supply: The input supply for LDO_REG6
25- vcc11-supply: The input supply for LDO_REG8
26- vcc12-supply: The input supply for SWITCH_REG2
27
28Regulators: All the regulators of RK808 to be instantiated shall be
29listed in a child node named 'regulators'. Each regulator is represented
30by a child node of the 'regulators' node.
31
32 regulator-name {
33 /* standard regulator bindings here */
34 };
35
36Following regulators of the RK808 PMIC block are supported. Note that
37the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
38number as described in RK808 datasheet.
39
40 - DCDC_REGn
41 - valid values for n are 1 to 4.
42 - LDO_REGn
43 - valid values for n are 1 to 8.
44 - SWITCH_REGn
45 - valid values for n are 1 to 2
46
47Standard regulator bindings are used inside regulator subnodes. Check
48 Documentation/devicetree/bindings/regulator/regulator.txt
49for more details
50
51Example:
52 rk808: pmic@1b {
53 compatible = "rockchip,rk808";
54 clock-output-names = "xin32k", "rk808-clkout2";
55 interrupt-parent = <&gpio0>;
56 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
57 pinctrl-names = "default";
58 pinctrl-0 = <&pmic_int>;
59 reg = <0x1b>;
60 rockchip,system-power-controller;
61 wakeup-source;
62 #clock-cells = <1>;
63
64 vcc8-supply = <&vcc_18>;
65 vcc9-supply = <&vcc_io>;
66 vcc10-supply = <&vcc_io>;
67 vcc12-supply = <&vcc_io>;
68 vddio-supply = <&vccio_pmu>;
69
70 regulators {
71 vdd_cpu: DCDC_REG1 {
72 regulator-always-on;
73 regulator-boot-on;
74 regulator-min-microvolt = <750000>;
75 regulator-max-microvolt = <1300000>;
76 regulator-name = "vdd_arm";
77 };
78
79 vdd_gpu: DCDC_REG2 {
80 regulator-always-on;
81 regulator-boot-on;
82 regulator-min-microvolt = <850000>;
83 regulator-max-microvolt = <1250000>;
84 regulator-name = "vdd_gpu";
85 };
86
87 vcc_ddr: DCDC_REG3 {
88 regulator-always-on;
89 regulator-boot-on;
90 regulator-name = "vcc_ddr";
91 };
92
93 vcc_io: DCDC_REG4 {
94 regulator-always-on;
95 regulator-boot-on;
96 regulator-min-microvolt = <3300000>;
97 regulator-max-microvolt = <3300000>;
98 regulator-name = "vcc_io";
99 };
100
101 vccio_pmu: LDO_REG1 {
102 regulator-always-on;
103 regulator-boot-on;
104 regulator-min-microvolt = <3300000>;
105 regulator-max-microvolt = <3300000>;
106 regulator-name = "vccio_pmu";
107 };
108
109 vcc_tp: LDO_REG2 {
110 regulator-always-on;
111 regulator-boot-on;
112 regulator-min-microvolt = <3300000>;
113 regulator-max-microvolt = <3300000>;
114 regulator-name = "vcc_tp";
115 };
116
117 vdd_10: LDO_REG3 {
118 regulator-always-on;
119 regulator-boot-on;
120 regulator-min-microvolt = <1000000>;
121 regulator-max-microvolt = <1000000>;
122 regulator-name = "vdd_10";
123 };
124
125 vcc18_lcd: LDO_REG4 {
126 regulator-always-on;
127 regulator-boot-on;
128 regulator-min-microvolt = <1800000>;
129 regulator-max-microvolt = <1800000>;
130 regulator-name = "vcc18_lcd";
131 };
132
133 vccio_sd: LDO_REG5 {
134 regulator-always-on;
135 regulator-boot-on;
136 regulator-min-microvolt = <1800000>;
137 regulator-max-microvolt = <3300000>;
138 regulator-name = "vccio_sd";
139 };
140
141 vdd10_lcd: LDO_REG6 {
142 regulator-always-on;
143 regulator-boot-on;
144 regulator-min-microvolt = <1000000>;
145 regulator-max-microvolt = <1000000>;
146 regulator-name = "vdd10_lcd";
147 };
148
149 vcc_18: LDO_REG7 {
150 regulator-always-on;
151 regulator-boot-on;
152 regulator-min-microvolt = <1800000>;
153 regulator-max-microvolt = <1800000>;
154 regulator-name = "vcc_18";
155 };
156
157 vcca_codec: LDO_REG8 {
158 regulator-always-on;
159 regulator-boot-on;
160 regulator-min-microvolt = <3300000>;
161 regulator-max-microvolt = <3300000>;
162 regulator-name = "vcca_codec";
163 };
164
165 vcc_wl: SWITCH_REG1 {
166 regulator-always-on;
167 regulator-boot-on;
168 regulator-name = "vcc_wl";
169 };
170
171 vcc_lcd: SWITCH_REG2 {
172 regulator-always-on;
173 regulator-boot-on;
174 regulator-name = "vcc_lcd";
175 };
176 };
177 };
diff --git a/Documentation/devicetree/bindings/mfd/rn5t618.txt b/Documentation/devicetree/bindings/mfd/rn5t618.txt
new file mode 100644
index 000000000000..937785a3eddc
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/rn5t618.txt
@@ -0,0 +1,36 @@
1* Ricoh RN5T618 PMIC
2
3Ricoh RN5T618 is a power management IC which integrates 3 step-down
4DCDC converters, 7 low-dropout regulators, a Li-ion battery charger,
5fuel gauge, ADC, GPIOs and a watchdog timer. It can be controlled
6through a I2C interface.
7
8Required properties:
9 - compatible: should be "ricoh,rn5t618"
10 - reg: the I2C slave address of the device
11
12Sub-nodes:
13 - regulators: the node is required if the regulator functionality is
14 needed. The valid regulator names are: DCDC1, DCDC2, DCDC3, LDO1,
15 LDO2, LDO3, LDO4, LDO5, LDORTC1 and LDORTC2.
16 The common bindings for each individual regulator can be found in:
17 Documentation/devicetree/bindings/regulator/regulator.txt
18
19Example:
20
21 pmic@32 {
22 compatible = "ricoh,rn5t618";
23 reg = <0x32>;
24
25 regulators {
26 DCDC1 {
27 regulator-min-microvolt = <1050000>;
28 regulator-max-microvolt = <1050000>;
29 };
30
31 DCDC2 {
32 regulator-min-microvolt = <1175000>;
33 regulator-max-microvolt = <1175000>;
34 };
35 };
36 };
diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt b/Documentation/devicetree/bindings/mfd/s2mps11.txt
index ba2d7f0f9c5f..0e4026a6cbbf 100644
--- a/Documentation/devicetree/bindings/mfd/s2mps11.txt
+++ b/Documentation/devicetree/bindings/mfd/s2mps11.txt
@@ -47,7 +47,7 @@ sub-node should be of the format as listed below.
47 47
48 regulator-ramp-delay for BUCKs = [6250/12500/25000(default)/50000] uV/us 48 regulator-ramp-delay for BUCKs = [6250/12500/25000(default)/50000] uV/us
49 49
50 BUCK[2/3/4/6] supports disabling ramp delay on hardware, so explictly 50 BUCK[2/3/4/6] supports disabling ramp delay on hardware, so explicitly
51 regulator-ramp-delay = <0> can be used for them to disable ramp delay. 51 regulator-ramp-delay = <0> can be used for them to disable ramp delay.
52 In the absence of the regulator-ramp-delay property, the default ramp 52 In the absence of the regulator-ramp-delay property, the default ramp
53 delay will be used. 53 delay will be used.
diff --git a/Documentation/devicetree/bindings/mfd/stmpe.txt b/Documentation/devicetree/bindings/mfd/stmpe.txt
index 56edb5520685..3fb68bfefc8b 100644
--- a/Documentation/devicetree/bindings/mfd/stmpe.txt
+++ b/Documentation/devicetree/bindings/mfd/stmpe.txt
@@ -13,6 +13,7 @@ Optional properties:
13 - interrupt-parent : Specifies which IRQ controller we're connected to 13 - interrupt-parent : Specifies which IRQ controller we're connected to
14 - wakeup-source : Marks the input device as wakable 14 - wakeup-source : Marks the input device as wakable
15 - st,autosleep-timeout : Valid entries (ms); 4, 16, 32, 64, 128, 256, 512 and 1024 15 - st,autosleep-timeout : Valid entries (ms); 4, 16, 32, 64, 128, 256, 512 and 1024
16 - irq-gpio : If present, which GPIO to use for event IRQ
16 17
17Example: 18Example:
18 19
diff --git a/Documentation/devicetree/bindings/mfd/tc3589x.txt b/Documentation/devicetree/bindings/mfd/tc3589x.txt
new file mode 100644
index 000000000000..6fcedba46ae9
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/tc3589x.txt
@@ -0,0 +1,107 @@
1* Toshiba TC3589x multi-purpose expander
2
3The Toshiba TC3589x series are I2C-based MFD devices which may expose the
4following built-in devices: gpio, keypad, rotator (vibrator), PWM (for
5e.g. LEDs or vibrators) The included models are:
6
7- TC35890
8- TC35892
9- TC35893
10- TC35894
11- TC35895
12- TC35896
13
14Required properties:
15 - compatible : must be "toshiba,tc35890", "toshiba,tc35892", "toshiba,tc35893",
16 "toshiba,tc35894", "toshiba,tc35895" or "toshiba,tc35896"
17 - reg : I2C address of the device
18 - interrupt-parent : specifies which IRQ controller we're connected to
19 - interrupts : the interrupt on the parent the controller is connected to
20 - interrupt-controller : marks the device node as an interrupt controller
21 - #interrupt-cells : should be <1>, the first cell is the IRQ offset on this
22 TC3589x interrupt controller.
23
24Optional nodes:
25
26- GPIO
27 This GPIO module inside the TC3589x has 24 (TC35890, TC35892) or 20
28 (other models) GPIO lines.
29 - compatible : must be "toshiba,tc3589x-gpio"
30 - interrupts : interrupt on the parent, which must be the tc3589x MFD device
31 - interrupt-controller : marks the device node as an interrupt controller
32 - #interrupt-cells : should be <2>, the first cell is the IRQ offset on this
33 TC3589x GPIO interrupt controller, the second cell is the interrupt flags
34 in accordance with <dt-bindings/interrupt-controller/irq.h>. The following
35 flags are valid:
36 - IRQ_TYPE_LEVEL_LOW
37 - IRQ_TYPE_LEVEL_HIGH
38 - IRQ_TYPE_EDGE_RISING
39 - IRQ_TYPE_EDGE_FALLING
40 - IRQ_TYPE_EDGE_BOTH
41 - gpio-controller : marks the device node as a GPIO controller
42 - #gpio-cells : should be <2>, the first cell is the GPIO offset on this
43 GPIO controller, the second cell is the flags.
44
45- Keypad
46 This keypad is the same on all variants, supporting up to 96 different
47 keys. The linux-specific properties are modeled on those already existing
48 in other input drivers.
49 - compatible : must be "toshiba,tc3589x-keypad"
50 - debounce-delay-ms : debounce interval in milliseconds
51 - keypad,num-rows : number of rows in the matrix, see
52 bindings/input/matrix-keymap.txt
53 - keypad,num-columns : number of columns in the matrix, see
54 bindings/input/matrix-keymap.txt
55 - linux,keymap: the definition can be found in
56 bindings/input/matrix-keymap.txt
57 - linux,no-autorepeat: do no enable autorepeat feature.
58 - linux,wakeup: use any event on keypad as wakeup event.
59
60Example:
61
62tc35893@44 {
63 compatible = "toshiba,tc35893";
64 reg = <0x44>;
65 interrupt-parent = <&gpio6>;
66 interrupts = <26 IRQ_TYPE_EDGE_RISING>;
67
68 interrupt-controller;
69 #interrupt-cells = <1>;
70
71 tc3589x_gpio {
72 compatible = "toshiba,tc3589x-gpio";
73 interrupts = <0>;
74
75 interrupt-controller;
76 #interrupt-cells = <2>;
77 gpio-controller;
78 #gpio-cells = <2>;
79 };
80 tc3589x_keypad {
81 compatible = "toshiba,tc3589x-keypad";
82 interrupts = <6>;
83 debounce-delay-ms = <4>;
84 keypad,num-columns = <8>;
85 keypad,num-rows = <8>;
86 linux,no-autorepeat;
87 linux,wakeup;
88 linux,keymap = <0x0301006b
89 0x04010066
90 0x06040072
91 0x040200d7
92 0x0303006a
93 0x0205000e
94 0x0607008b
95 0x0500001c
96 0x0403000b
97 0x03040034
98 0x05020067
99 0x0305006c
100 0x040500e7
101 0x0005009e
102 0x06020073
103 0x01030039
104 0x07060069
105 0x050500d9>;
106 };
107};
diff --git a/Documentation/devicetree/bindings/mfd/twl4030-power.txt b/Documentation/devicetree/bindings/mfd/twl4030-power.txt
index b9ee7b98d3e2..3d19963312ce 100644
--- a/Documentation/devicetree/bindings/mfd/twl4030-power.txt
+++ b/Documentation/devicetree/bindings/mfd/twl4030-power.txt
@@ -23,8 +23,13 @@ down during off-idle. Note that this does not work on all boards
23depending on how the external oscillator is wired. 23depending on how the external oscillator is wired.
24 24
25Optional properties: 25Optional properties:
26- ti,use_poweroff: With this flag, the chip will initiates an ACTIVE-to-OFF or 26
27 SLEEP-to-OFF transition when the system poweroffs. 27- ti,system-power-controller: This indicates that TWL4030 is the
28 power supply master of the system. With this flag, the chip will
29 initiate an ACTIVE-to-OFF or SLEEP-to-OFF transition when the
30 system poweroffs.
31
32- ti,use_poweroff: Deprecated name for ti,system-power-controller
28 33
29Example: 34Example:
30&i2c1 { 35&i2c1 {
diff --git a/Documentation/devicetree/bindings/mmc/mmc.txt b/Documentation/devicetree/bindings/mmc/mmc.txt
index 431716e37a39..b52628b18a53 100644
--- a/Documentation/devicetree/bindings/mmc/mmc.txt
+++ b/Documentation/devicetree/bindings/mmc/mmc.txt
@@ -40,6 +40,8 @@ Optional properties:
40- mmc-hs200-1_2v: eMMC HS200 mode(1.2V I/O) is supported 40- mmc-hs200-1_2v: eMMC HS200 mode(1.2V I/O) is supported
41- mmc-hs400-1_8v: eMMC HS400 mode(1.8V I/O) is supported 41- mmc-hs400-1_8v: eMMC HS400 mode(1.8V I/O) is supported
42- mmc-hs400-1_2v: eMMC HS400 mode(1.2V I/O) is supported 42- mmc-hs400-1_2v: eMMC HS400 mode(1.2V I/O) is supported
43- dsr: Value the card's (optional) Driver Stage Register (DSR) should be
44 programmed with. Valid range: [0 .. 0xffff].
43 45
44*NOTE* on CD and WP polarity. To use common for all SD/MMC host controllers line 46*NOTE* on CD and WP polarity. To use common for all SD/MMC host controllers line
45polarity properties, we have to fix the meaning of the "normal" and "inverted" 47polarity properties, we have to fix the meaning of the "normal" and "inverted"
diff --git a/Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt
index c559f3f36309..c327c2d6f23d 100644
--- a/Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt
+++ b/Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt
@@ -10,12 +10,14 @@ extensions to the Synopsys Designware Mobile Storage Host Controller.
10Required Properties: 10Required Properties:
11 11
12* compatible: should be 12* compatible: should be
13 - "rockchip,rk2928-dw-mshc": for Rockchip RK2928 and following 13 - "rockchip,rk2928-dw-mshc": for Rockchip RK2928 and following,
14 before RK3288
15 - "rockchip,rk3288-dw-mshc": for Rockchip RK3288
14 16
15Example: 17Example:
16 18
17 rkdwmmc0@12200000 { 19 rkdwmmc0@12200000 {
18 compatible = "rockchip,rk2928-dw-mshc"; 20 compatible = "rockchip,rk3288-dw-mshc";
19 reg = <0x12200000 0x1000>; 21 reg = <0x12200000 0x1000>;
20 interrupts = <0 75 0>; 22 interrupts = <0 75 0>;
21 #address-cells = <1>; 23 #address-cells = <1>;
diff --git a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt
index fa0f327cde01..400b640fabc7 100644
--- a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt
+++ b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt
@@ -19,6 +19,9 @@ Required properties:
19 "renesas,sdhi-r8a7779" - SDHI IP on R8A7779 SoC 19 "renesas,sdhi-r8a7779" - SDHI IP on R8A7779 SoC
20 "renesas,sdhi-r8a7790" - SDHI IP on R8A7790 SoC 20 "renesas,sdhi-r8a7790" - SDHI IP on R8A7790 SoC
21 "renesas,sdhi-r8a7791" - SDHI IP on R8A7791 SoC 21 "renesas,sdhi-r8a7791" - SDHI IP on R8A7791 SoC
22 "renesas,sdhi-r8a7792" - SDHI IP on R8A7792 SoC
23 "renesas,sdhi-r8a7793" - SDHI IP on R8A7793 SoC
24 "renesas,sdhi-r8a7794" - SDHI IP on R8A7794 SoC
22 25
23Optional properties: 26Optional properties:
24- toshiba,mmc-wrprotect-disable: write-protect detection is unavailable 27- toshiba,mmc-wrprotect-disable: write-protect detection is unavailable
diff --git a/Documentation/devicetree/bindings/mtd/gpmc-nand.txt b/Documentation/devicetree/bindings/mtd/gpmc-nand.txt
index 65f4f7c43136..fb733c4e1c11 100644
--- a/Documentation/devicetree/bindings/mtd/gpmc-nand.txt
+++ b/Documentation/devicetree/bindings/mtd/gpmc-nand.txt
@@ -22,7 +22,7 @@ Optional properties:
22 width of 8 is assumed. 22 width of 8 is assumed.
23 23
24 - ti,nand-ecc-opt: A string setting the ECC layout to use. One of: 24 - ti,nand-ecc-opt: A string setting the ECC layout to use. One of:
25 "sw" <deprecated> use "ham1" instead 25 "sw" 1-bit Hamming ecc code via software
26 "hw" <deprecated> use "ham1" instead 26 "hw" <deprecated> use "ham1" instead
27 "hw-romcode" <deprecated> use "ham1" instead 27 "hw-romcode" <deprecated> use "ham1" instead
28 "ham1" 1-bit Hamming ecc code 28 "ham1" 1-bit Hamming ecc code
@@ -110,8 +110,8 @@ on various other factors also like;
110 Other factor which governs the selection of ecc-scheme is oob-size. 110 Other factor which governs the selection of ecc-scheme is oob-size.
111 Higher ECC schemes require more OOB/Spare area to store ECC syndrome, 111 Higher ECC schemes require more OOB/Spare area to store ECC syndrome,
112 so the device should have enough free bytes available its OOB/Spare 112 so the device should have enough free bytes available its OOB/Spare
113 area to accomodate ECC for entire page. In general following expression 113 area to accommodate ECC for entire page. In general following expression
114 helps in determining if given device can accomodate ECC syndrome: 114 helps in determining if given device can accommodate ECC syndrome:
115 "2 + (PAGESIZE / 512) * ECC_BYTES" >= OOBSIZE" 115 "2 + (PAGESIZE / 512) * ECC_BYTES" >= OOBSIZE"
116 where 116 where
117 OOBSIZE number of bytes in OOB/spare area 117 OOBSIZE number of bytes in OOB/spare area
@@ -133,5 +133,5 @@ on various other factors also like;
133 Example(b): For a device with PAGESIZE = 2048 and OOBSIZE = 128 and 133 Example(b): For a device with PAGESIZE = 2048 and OOBSIZE = 128 and
134 trying to use BCH16 (ECC_BYTES=26) ecc-scheme. 134 trying to use BCH16 (ECC_BYTES=26) ecc-scheme.
135 Number of ECC bytes per page = (2 + (2048 / 512) * 26) = 106 B 135 Number of ECC bytes per page = (2 + (2048 / 512) * 26) = 106 B
136 which can be accomodate in the OOB/Spare area of this device 136 which can be accommodated in the OOB/Spare area of this device
137 (OOBSIZE=128). So this device can use BCH16 ecc-scheme. 137 (OOBSIZE=128). So this device can use BCH16 ecc-scheme.
diff --git a/Documentation/devicetree/bindings/net/apm-xgene-enet.txt b/Documentation/devicetree/bindings/net/apm-xgene-enet.txt
index ebcad25efd0a..cfcc52705ed8 100644
--- a/Documentation/devicetree/bindings/net/apm-xgene-enet.txt
+++ b/Documentation/devicetree/bindings/net/apm-xgene-enet.txt
@@ -3,7 +3,7 @@ APM X-Gene SoC Ethernet nodes
3Ethernet nodes are defined to describe on-chip ethernet interfaces in 3Ethernet nodes are defined to describe on-chip ethernet interfaces in
4APM X-Gene SoC. 4APM X-Gene SoC.
5 5
6Required properties: 6Required properties for all the ethernet interfaces:
7- compatible: Should be "apm,xgene-enet" 7- compatible: Should be "apm,xgene-enet"
8- reg: Address and length of the register set for the device. It contains the 8- reg: Address and length of the register set for the device. It contains the
9 information of registers in the same order as described by reg-names 9 information of registers in the same order as described by reg-names
@@ -15,6 +15,8 @@ Required properties:
15- clocks: Reference to the clock entry. 15- clocks: Reference to the clock entry.
16- local-mac-address: MAC address assigned to this device 16- local-mac-address: MAC address assigned to this device
17- phy-connection-type: Interface type between ethernet device and PHY device 17- phy-connection-type: Interface type between ethernet device and PHY device
18
19Required properties for ethernet interfaces that have external PHY:
18- phy-handle: Reference to a PHY node connected to this device 20- phy-handle: Reference to a PHY node connected to this device
19 21
20- mdio: Device tree subnode with the following required properties: 22- mdio: Device tree subnode with the following required properties:
diff --git a/Documentation/devicetree/bindings/net/broadcom-mdio-unimac.txt b/Documentation/devicetree/bindings/net/broadcom-mdio-unimac.txt
new file mode 100644
index 000000000000..ab0bb4247d14
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/broadcom-mdio-unimac.txt
@@ -0,0 +1,39 @@
1* Broadcom UniMAC MDIO bus controller
2
3Required properties:
4- compatible: should one from "brcm,genet-mdio-v1", "brcm,genet-mdio-v2",
5 "brcm,genet-mdio-v3", "brcm,genet-mdio-v4" or "brcm,unimac-mdio"
6- reg: address and length of the regsiter set for the device, first one is the
7 base register, and the second one is optional and for indirect accesses to
8 larger than 16-bits MDIO transactions
9- reg-names: name(s) of the register must be "mdio" and optional "mdio_indir_rw"
10- #size-cells: must be 1
11- #address-cells: must be 0
12
13Optional properties:
14- interrupts: must be one if the interrupt is shared with the Ethernet MAC or
15 Ethernet switch this MDIO block is integrated from, or must be two, if there
16 are two separate interrupts, first one must be "mdio done" and second must be
17 for "mdio error"
18- interrupt-names: must be "mdio_done_error" when there is a share interrupt fed
19 to this hardware block, or must be "mdio_done" for the first interrupt and
20 "mdio_error" for the second when there are separate interrupts
21
22Child nodes of this MDIO bus controller node are standard Ethernet PHY device
23nodes as described in Documentation/devicetree/bindings/net/phy.txt
24
25Example:
26
27mdio@403c0 {
28 compatible = "brcm,unimac-mdio";
29 reg = <0x403c0 0x8 0x40300 0x18>;
30 reg-names = "mdio", "mdio_indir_rw";
31 #size-cells = <1>;
32 #address-cells = <0>;
33
34 ...
35 phy@0 {
36 compatible = "ethernet-phy-ieee802.3-c22";
37 reg = <0>;
38 };
39};
diff --git a/Documentation/devicetree/bindings/net/broadcom-sf2.txt b/Documentation/devicetree/bindings/net/broadcom-sf2.txt
new file mode 100644
index 000000000000..30d487597ecb
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/broadcom-sf2.txt
@@ -0,0 +1,78 @@
1* Broadcom Starfighter 2 integrated swich
2
3Required properties:
4
5- compatible: should be "brcm,bcm7445-switch-v4.0"
6- reg: addresses and length of the register sets for the device, must be 6
7 pairs of register addresses and lengths
8- interrupts: interrupts for the devices, must be two interrupts
9- dsa,mii-bus: phandle to the MDIO bus controller, see dsa/dsa.txt
10- dsa,ethernet: phandle to the CPU network interface controller, see dsa/dsa.txt
11- #size-cells: must be 0
12- #address-cells: must be 2, see dsa/dsa.txt
13
14Subnodes:
15
16The integrated switch subnode should be specified according to the binding
17described in dsa/dsa.txt.
18
19Optional properties:
20
21- reg-names: litteral names for the device base register addresses, when present
22 must be: "core", "reg", "intrl2_0", "intrl2_1", "fcb", "acb"
23
24- interrupt-names: litternal names for the device interrupt lines, when present
25 must be: "switch_0" and "switch_1"
26
27- brcm,num-gphy: specify the maximum number of integrated gigabit PHYs in the
28 switch
29
30- brcm,num-rgmii-ports: specify the maximum number of RGMII interfaces supported
31 by the switch
32
33- brcm,fcb-pause-override: boolean property, if present indicates that the switch
34 supports Failover Control Block pause override capability
35
36- brcm,acb-packets-inflight: boolean property, if present indicates that the switch
37 Admission Control Block supports reporting the number of packets in-flight in a
38 switch queue
39
40Example:
41
42switch_top@f0b00000 {
43 compatible = "simple-bus";
44 #size-cells = <1>;
45 #address-cells = <1>;
46 ranges = <0 0xf0b00000 0x40804>;
47
48 ethernet_switch@0 {
49 compatible = "brcm,bcm7445-switch-v4.0";
50 #size-cells = <0>;
51 #address-cells = <2>;
52 reg = <0x0 0x40000
53 0x40000 0x110
54 0x40340 0x30
55 0x40380 0x30
56 0x40400 0x34
57 0x40600 0x208>;
58 interrupts = <0 0x18 0
59 0 0x19 0>;
60 brcm,num-gphy = <1>;
61 brcm,num-rgmii-ports = <2>;
62 brcm,fcb-pause-override;
63 brcm,acb-packets-inflight;
64
65 ...
66 switch@0 {
67 reg = <0 0>;
68 #size-cells = <0>;
69 #address-cells <1>;
70
71 port@0 {
72 label = "gphy";
73 reg = <0>;
74 };
75 ...
76 };
77 };
78};
diff --git a/Documentation/devicetree/bindings/net/can/m_can.txt b/Documentation/devicetree/bindings/net/can/m_can.txt
new file mode 100644
index 000000000000..9e331777c203
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/can/m_can.txt
@@ -0,0 +1,67 @@
1Bosch MCAN controller Device Tree Bindings
2-------------------------------------------------
3
4Required properties:
5- compatible : Should be "bosch,m_can" for M_CAN controllers
6- reg : physical base address and size of the M_CAN
7 registers map and Message RAM
8- reg-names : Should be "m_can" and "message_ram"
9- interrupts : Should be the interrupt number of M_CAN interrupt
10 line 0 and line 1, could be same if sharing
11 the same interrupt.
12- interrupt-names : Should contain "int0" and "int1"
13- clocks : Clocks used by controller, should be host clock
14 and CAN clock.
15- clock-names : Should contain "hclk" and "cclk"
16- pinctrl-<n> : Pinctrl states as described in bindings/pinctrl/pinctrl-bindings.txt
17- pinctrl-names : Names corresponding to the numbered pinctrl states
18- bosch,mram-cfg : Message RAM configuration data.
19 Multiple M_CAN instances can share the same Message
20 RAM and each element(e.g Rx FIFO or Tx Buffer and etc)
21 number in Message RAM is also configurable,
22 so this property is telling driver how the shared or
23 private Message RAM are used by this M_CAN controller.
24
25 The format should be as follows:
26 <offset sidf_elems xidf_elems rxf0_elems rxf1_elems
27 rxb_elems txe_elems txb_elems>
28 The 'offset' is an address offset of the Message RAM
29 where the following elements start from. This is
30 usually set to 0x0 if you're using a private Message
31 RAM. The remain cells are used to specify how many
32 elements are used for each FIFO/Buffer.
33
34 M_CAN includes the following elements according to user manual:
35 11-bit Filter 0-128 elements / 0-128 words
36 29-bit Filter 0-64 elements / 0-128 words
37 Rx FIFO 0 0-64 elements / 0-1152 words
38 Rx FIFO 1 0-64 elements / 0-1152 words
39 Rx Buffers 0-64 elements / 0-1152 words
40 Tx Event FIFO 0-32 elements / 0-64 words
41 Tx Buffers 0-32 elements / 0-576 words
42
43 Please refer to 2.4.1 Message RAM Configuration in
44 Bosch M_CAN user manual for details.
45
46Example:
47SoC dtsi:
48m_can1: can@020e8000 {
49 compatible = "bosch,m_can";
50 reg = <0x020e8000 0x4000>, <0x02298000 0x4000>;
51 reg-names = "m_can", "message_ram";
52 interrupts = <0 114 0x04>,
53 <0 114 0x04>;
54 interrupt-names = "int0", "int1";
55 clocks = <&clks IMX6SX_CLK_CANFD>,
56 <&clks IMX6SX_CLK_CANFD>;
57 clock-names = "hclk", "cclk";
58 bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>;
59 status = "disabled";
60};
61
62Board dts:
63&m_can1 {
64 pinctrl-names = "default";
65 pinctrl-0 = <&pinctrl_m_can1>;
66 status = "enabled";
67};
diff --git a/Documentation/devicetree/bindings/net/can/rcar_can.txt b/Documentation/devicetree/bindings/net/can/rcar_can.txt
new file mode 100644
index 000000000000..002d8440bf66
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/can/rcar_can.txt
@@ -0,0 +1,43 @@
1Renesas R-Car CAN controller Device Tree Bindings
2-------------------------------------------------
3
4Required properties:
5- compatible: "renesas,can-r8a7778" if CAN controller is a part of R8A7778 SoC.
6 "renesas,can-r8a7779" if CAN controller is a part of R8A7779 SoC.
7 "renesas,can-r8a7790" if CAN controller is a part of R8A7790 SoC.
8 "renesas,can-r8a7791" if CAN controller is a part of R8A7791 SoC.
9- reg: physical base address and size of the R-Car CAN register map.
10- interrupts: interrupt specifier for the sole interrupt.
11- clocks: phandles and clock specifiers for 3 CAN clock inputs.
12- clock-names: 3 clock input name strings: "clkp1", "clkp2", "can_clk".
13- pinctrl-0: pin control group to be used for this controller.
14- pinctrl-names: must be "default".
15
16Optional properties:
17- renesas,can-clock-select: R-Car CAN Clock Source Select. Valid values are:
18 <0x0> (default) : Peripheral clock (clkp1)
19 <0x1> : Peripheral clock (clkp2)
20 <0x3> : Externally input clock
21
22Example
23-------
24
25SoC common .dtsi file:
26
27 can0: can@e6e80000 {
28 compatible = "renesas,can-r8a7791";
29 reg = <0 0xe6e80000 0 0x1000>;
30 interrupts = <0 186 IRQ_TYPE_LEVEL_HIGH>;
31 clocks = <&mstp9_clks R8A7791_CLK_RCAN0>,
32 <&cpg_clocks R8A7791_CLK_RCAN>, <&can_clk>;
33 clock-names = "clkp1", "clkp2", "can_clk";
34 status = "disabled";
35 };
36
37Board specific .dts file:
38
39&can0 {
40 pinctrl-0 = <&can0_pins>;
41 pinctrl-names = "default";
42 status = "okay";
43};
diff --git a/Documentation/devicetree/bindings/net/cpsw.txt b/Documentation/devicetree/bindings/net/cpsw.txt
index ae2b8b7f9c38..33fe8462edf4 100644
--- a/Documentation/devicetree/bindings/net/cpsw.txt
+++ b/Documentation/devicetree/bindings/net/cpsw.txt
@@ -24,15 +24,17 @@ Optional properties:
24- ti,hwmods : Must be "cpgmac0" 24- ti,hwmods : Must be "cpgmac0"
25- no_bd_ram : Must be 0 or 1 25- no_bd_ram : Must be 0 or 1
26- dual_emac : Specifies Switch to act as Dual EMAC 26- dual_emac : Specifies Switch to act as Dual EMAC
27- syscon : Phandle to the system control device node, which is
28 the control module device of the am33x
27 29
28Slave Properties: 30Slave Properties:
29Required properties: 31Required properties:
30- phy_id : Specifies slave phy id 32- phy_id : Specifies slave phy id
31- phy-mode : See ethernet.txt file in the same directory 33- phy-mode : See ethernet.txt file in the same directory
32- mac-address : See ethernet.txt file in the same directory
33 34
34Optional properties: 35Optional properties:
35- dual_emac_res_vlan : Specifies VID to be used to segregate the ports 36- dual_emac_res_vlan : Specifies VID to be used to segregate the ports
37- mac-address : See ethernet.txt file in the same directory
36 38
37Note: "ti,hwmods" field is used to fetch the base address and irq 39Note: "ti,hwmods" field is used to fetch the base address and irq
38resources from TI, omap hwmod data base during device registration. 40resources from TI, omap hwmod data base during device registration.
@@ -57,6 +59,7 @@ Examples:
57 active_slave = <0>; 59 active_slave = <0>;
58 cpts_clock_mult = <0x80000000>; 60 cpts_clock_mult = <0x80000000>;
59 cpts_clock_shift = <29>; 61 cpts_clock_shift = <29>;
62 syscon = <&cm>;
60 cpsw_emac0: slave@0 { 63 cpsw_emac0: slave@0 {
61 phy_id = <&davinci_mdio>, <0>; 64 phy_id = <&davinci_mdio>, <0>;
62 phy-mode = "rgmii-txid"; 65 phy-mode = "rgmii-txid";
@@ -85,6 +88,7 @@ Examples:
85 active_slave = <0>; 88 active_slave = <0>;
86 cpts_clock_mult = <0x80000000>; 89 cpts_clock_mult = <0x80000000>;
87 cpts_clock_shift = <29>; 90 cpts_clock_shift = <29>;
91 syscon = <&cm>;
88 cpsw_emac0: slave@0 { 92 cpsw_emac0: slave@0 {
89 phy_id = <&davinci_mdio>, <0>; 93 phy_id = <&davinci_mdio>, <0>;
90 phy-mode = "rgmii-txid"; 94 phy-mode = "rgmii-txid";
diff --git a/Documentation/devicetree/bindings/net/dsa/dsa.txt b/Documentation/devicetree/bindings/net/dsa/dsa.txt
index 49f4f7ae3f51..a62c889aafca 100644
--- a/Documentation/devicetree/bindings/net/dsa/dsa.txt
+++ b/Documentation/devicetree/bindings/net/dsa/dsa.txt
@@ -39,6 +39,22 @@ Optionnal property:
39 This property is only used when switches are being 39 This property is only used when switches are being
40 chained/cascaded together. 40 chained/cascaded together.
41 41
42- phy-handle : Phandle to a PHY on an external MDIO bus, not the
43 switch internal one. See
44 Documentation/devicetree/bindings/net/ethernet.txt
45 for details.
46
47- phy-mode : String representing the connection to the designated
48 PHY node specified by the 'phy-handle' property. See
49 Documentation/devicetree/bindings/net/ethernet.txt
50 for details.
51
52Optional subnodes:
53- fixed-link : Fixed-link subnode describing a link to a non-MDIO
54 managed entity. See
55 Documentation/devicetree/bindings/net/fixed-link.txt
56 for details.
57
42Example: 58Example:
43 59
44 dsa@0 { 60 dsa@0 {
@@ -58,6 +74,7 @@ Example:
58 port@0 { 74 port@0 {
59 reg = <0>; 75 reg = <0>;
60 label = "lan1"; 76 label = "lan1";
77 phy-handle = <&phy0>;
61 }; 78 };
62 79
63 port@1 { 80 port@1 {
diff --git a/Documentation/devicetree/bindings/net/emac_rockchip.txt b/Documentation/devicetree/bindings/net/emac_rockchip.txt
new file mode 100644
index 000000000000..8dc1c79fef7f
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/emac_rockchip.txt
@@ -0,0 +1,50 @@
1* ARC EMAC 10/100 Ethernet platform driver for Rockchip Rk3066/RK3188 SoCs
2
3Required properties:
4- compatible: Should be "rockchip,rk3066-emac" or "rockchip,rk3188-emac"
5 according to the target SoC.
6- reg: Address and length of the register set for the device
7- interrupts: Should contain the EMAC interrupts
8- rockchip,grf: phandle to the syscon grf used to control speed and mode
9 for emac.
10- phy: see ethernet.txt file in the same directory.
11- phy-mode: see ethernet.txt file in the same directory.
12
13Optional properties:
14- phy-supply: phandle to a regulator if the PHY needs one
15
16Clock handling:
17- clocks: Must contain an entry for each entry in clock-names.
18- clock-names: Shall be "hclk" for the host clock needed to calculate and set
19 polling period of EMAC and "macref" for the reference clock needed to transfer
20 data to and from the phy.
21
22Child nodes of the driver are the individual PHY devices connected to the
23MDIO bus. They must have a "reg" property given the PHY address on the MDIO bus.
24
25Examples:
26
27ethernet@10204000 {
28 compatible = "rockchip,rk3188-emac";
29 reg = <0xc0fc2000 0x3c>;
30 interrupts = <6>;
31 mac-address = [ 00 11 22 33 44 55 ];
32
33 clocks = <&cru HCLK_EMAC>, <&cru SCLK_MAC>;
34 clock-names = "hclk", "macref";
35
36 pinctrl-names = "default";
37 pinctrl-0 = <&emac_xfer>, <&emac_mdio>, <&phy_int>;
38
39 rockchip,grf = <&grf>;
40
41 phy = <&phy0>;
42 phy-mode = "rmii";
43 phy-supply = <&vcc_rmii>;
44
45 #address-cells = <1>;
46 #size-cells = <0>;
47 phy0: ethernet-phy@0 {
48 reg = <1>;
49 };
50};
diff --git a/Documentation/devicetree/bindings/net/fsl-fec.txt b/Documentation/devicetree/bindings/net/fsl-fec.txt
index 8a2c7b55ec16..0c8775c45798 100644
--- a/Documentation/devicetree/bindings/net/fsl-fec.txt
+++ b/Documentation/devicetree/bindings/net/fsl-fec.txt
@@ -16,6 +16,12 @@ Optional properties:
16- phy-handle : phandle to the PHY device connected to this device. 16- phy-handle : phandle to the PHY device connected to this device.
17- fixed-link : Assume a fixed link. See fixed-link.txt in the same directory. 17- fixed-link : Assume a fixed link. See fixed-link.txt in the same directory.
18 Use instead of phy-handle. 18 Use instead of phy-handle.
19- fsl,num-tx-queues : The property is valid for enet-avb IP, which supports
20 hw multi queues. Should specify the tx queue number, otherwise set tx queue
21 number to 1.
22- fsl,num-rx-queues : The property is valid for enet-avb IP, which supports
23 hw multi queues. Should specify the rx queue number, otherwise set rx queue
24 number to 1.
19 25
20Optional subnodes: 26Optional subnodes:
21- mdio : specifies the mdio bus in the FEC, used as a container for phy nodes 27- mdio : specifies the mdio bus in the FEC, used as a container for phy nodes
diff --git a/Documentation/devicetree/bindings/net/marvell-pxa168.txt b/Documentation/devicetree/bindings/net/marvell-pxa168.txt
new file mode 100644
index 000000000000..845a148a346e
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/marvell-pxa168.txt
@@ -0,0 +1,36 @@
1* Marvell PXA168 Ethernet Controller
2
3Required properties:
4- compatible: should be "marvell,pxa168-eth".
5- reg: address and length of the register set for the device.
6- interrupts: interrupt for the device.
7- clocks: pointer to the clock for the device.
8
9Optional properties:
10- port-id: Ethernet port number. Should be '0','1' or '2'.
11- #address-cells: must be 1 when using sub-nodes.
12- #size-cells: must be 0 when using sub-nodes.
13- phy-handle: see ethernet.txt file in the same directory.
14- local-mac-address: see ethernet.txt file in the same directory.
15
16Sub-nodes:
17Each PHY can be represented as a sub-node. This is not mandatory.
18
19Sub-nodes required properties:
20- reg: the MDIO address of the PHY.
21
22Example:
23
24 eth0: ethernet@f7b90000 {
25 compatible = "marvell,pxa168-eth";
26 reg = <0xf7b90000 0x10000>;
27 clocks = <&chip CLKID_GETH0>;
28 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
29 #address-cells = <1>;
30 #size-cells = <0>;
31 phy-handle = <&ethphy0>;
32
33 ethphy0: ethernet-phy@0 {
34 reg = <0>;
35 };
36 };
diff --git a/Documentation/devicetree/bindings/net/meson-dwmac.txt b/Documentation/devicetree/bindings/net/meson-dwmac.txt
new file mode 100644
index 000000000000..ec633d74a8a8
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/meson-dwmac.txt
@@ -0,0 +1,25 @@
1* Amlogic Meson DWMAC Ethernet controller
2
3The device inherits all the properties of the dwmac/stmmac devices
4described in the file net/stmmac.txt with the following changes.
5
6Required properties:
7
8- compatible: should be "amlogic,meson6-dwmac" along with "snps,dwmac"
9 and any applicable more detailed version number
10 described in net/stmmac.txt
11
12- reg: should contain a register range for the dwmac controller and
13 another one for the Amlogic specific configuration
14
15Example:
16
17 ethmac: ethernet@c9410000 {
18 compatible = "amlogic,meson6-dwmac", "snps,dwmac";
19 reg = <0xc9410000 0x10000
20 0xc1108108 0x4>;
21 interrupts = <0 8 1>;
22 interrupt-names = "macirq";
23 clocks = <&clk81>;
24 clock-names = "stmmaceth";
25 }
diff --git a/Documentation/devicetree/bindings/net/micrel.txt b/Documentation/devicetree/bindings/net/micrel.txt
index 98a3e61f9ee8..e1d99b95c4ec 100644
--- a/Documentation/devicetree/bindings/net/micrel.txt
+++ b/Documentation/devicetree/bindings/net/micrel.txt
@@ -16,3 +16,9 @@ Optional properties:
16 KSZ8051: register 0x1f, bits 5..4 16 KSZ8051: register 0x1f, bits 5..4
17 17
18 See the respective PHY datasheet for the mode values. 18 See the respective PHY datasheet for the mode values.
19
20 - clocks, clock-names: contains clocks according to the common clock bindings.
21
22 supported clocks:
23 - KSZ8021, KSZ8031: "rmii-ref": The RMII refence input clock. Used
24 to determine the XI input clock.
diff --git a/Documentation/devicetree/bindings/net/nfc/st21nfcb.txt b/Documentation/devicetree/bindings/net/nfc/st21nfcb.txt
index 3b58ae480344..9005608cbbd1 100644
--- a/Documentation/devicetree/bindings/net/nfc/st21nfcb.txt
+++ b/Documentation/devicetree/bindings/net/nfc/st21nfcb.txt
@@ -26,7 +26,7 @@ Example (for ARM-based BeagleBoard xM with ST21NFCB on I2C2):
26 clock-frequency = <400000>; 26 clock-frequency = <400000>;
27 27
28 interrupt-parent = <&gpio5>; 28 interrupt-parent = <&gpio5>;
29 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 29 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
30 30
31 reset-gpios = <&gpio5 29 GPIO_ACTIVE_HIGH>; 31 reset-gpios = <&gpio5 29 GPIO_ACTIVE_HIGH>;
32 }; 32 };
diff --git a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
index 1e436133685f..7c89ca290ced 100644
--- a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
+++ b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
@@ -13,6 +13,11 @@ Optional SoC Specific Properties:
13- pinctrl-names: Contains only one value - "default". 13- pinctrl-names: Contains only one value - "default".
14- pintctrl-0: Specifies the pin control groups used for this controller. 14- pintctrl-0: Specifies the pin control groups used for this controller.
15- autosuspend-delay: Specify autosuspend delay in milliseconds. 15- autosuspend-delay: Specify autosuspend delay in milliseconds.
16- vin-voltage-override: Specify voltage of VIN pin in microvolts.
17- irq-status-read-quirk: Specify that the trf7970a being used has the
18 "IRQ Status Read" erratum.
19- en2-rf-quirk: Specify that the trf7970a being used has the "EN2 RF"
20 erratum.
16 21
17Example (for ARM-based BeagleBone with TRF7970A on SPI1): 22Example (for ARM-based BeagleBone with TRF7970A on SPI1):
18 23
@@ -30,7 +35,10 @@ Example (for ARM-based BeagleBone with TRF7970A on SPI1):
30 ti,enable-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>, 35 ti,enable-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>,
31 <&gpio2 5 GPIO_ACTIVE_LOW>; 36 <&gpio2 5 GPIO_ACTIVE_LOW>;
32 vin-supply = <&ldo3_reg>; 37 vin-supply = <&ldo3_reg>;
38 vin-voltage-override = <5000000>;
33 autosuspend-delay = <30000>; 39 autosuspend-delay = <30000>;
40 irq-status-read-quirk;
41 en2-rf-quirk;
34 status = "okay"; 42 status = "okay";
35 }; 43 };
36}; 44};
diff --git a/Documentation/devicetree/bindings/net/qca-qca7000-spi.txt b/Documentation/devicetree/bindings/net/qca-qca7000-spi.txt
new file mode 100644
index 000000000000..c74989c0d8ac
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/qca-qca7000-spi.txt
@@ -0,0 +1,47 @@
1* Qualcomm QCA7000 (Ethernet over SPI protocol)
2
3Note: The QCA7000 is useable as a SPI device. In this case it must be defined
4as a child of a SPI master in the device tree.
5
6Required properties:
7- compatible : Should be "qca,qca7000"
8- reg : Should specify the SPI chip select
9- interrupts : The first cell should specify the index of the source interrupt
10 and the second cell should specify the trigger type as rising edge
11- spi-cpha : Must be set
12- spi-cpol: Must be set
13
14Optional properties:
15- interrupt-parent : Specify the pHandle of the source interrupt
16- spi-max-frequency : Maximum frequency of the SPI bus the chip can operate at.
17 Numbers smaller than 1000000 or greater than 16000000 are invalid. Missing
18 the property will set the SPI frequency to 8000000 Hertz.
19- local-mac-address: 6 bytes, MAC address
20- qca,legacy-mode : Set the SPI data transfer of the QCA7000 to legacy mode.
21 In this mode the SPI master must toggle the chip select between each data
22 word. In burst mode these gaps aren't necessary, which is faster.
23 This setting depends on how the QCA7000 is setup via GPIO pin strapping.
24 If the property is missing the driver defaults to burst mode.
25
26Example:
27
28/* Freescale i.MX28 SPI master*/
29ssp2: spi@80014000 {
30 #address-cells = <1>;
31 #size-cells = <0>;
32 compatible = "fsl,imx28-spi";
33 pinctrl-names = "default";
34 pinctrl-0 = <&spi2_pins_a>;
35 status = "okay";
36
37 qca7000: ethernet@0 {
38 compatible = "qca,qca7000";
39 reg = <0x0>;
40 interrupt-parent = <&gpio3>; /* GPIO Bank 3 */
41 interrupts = <25 0x1>; /* Index: 25, rising edge */
42 spi-cpha; /* SPI mode: CPHA=1 */
43 spi-cpol; /* SPI mode: CPOL=1 */
44 spi-max-frequency = <8000000>; /* freq: 8 MHz */
45 local-mac-address = [ A0 B0 C0 D0 E0 F0 ];
46 };
47};
diff --git a/Documentation/devicetree/bindings/net/samsung-sxgbe.txt b/Documentation/devicetree/bindings/net/samsung-sxgbe.txt
index 989f6c95cfd5..888c250197fe 100644
--- a/Documentation/devicetree/bindings/net/samsung-sxgbe.txt
+++ b/Documentation/devicetree/bindings/net/samsung-sxgbe.txt
@@ -17,7 +17,7 @@ Required properties:
17- samsung,pbl: Integer, Programmable Burst Length. 17- samsung,pbl: Integer, Programmable Burst Length.
18 Supported values are 1, 2, 4, 8, 16, or 32. 18 Supported values are 1, 2, 4, 8, 16, or 32.
19- samsung,burst-map: Integer, Program the possible bursts supported by sxgbe 19- samsung,burst-map: Integer, Program the possible bursts supported by sxgbe
20 This is an interger and represents allowable DMA bursts when fixed burst. 20 This is an integer and represents allowable DMA bursts when fixed burst.
21 Allowable range is 0x01-0x3F. When this field is set fixed burst is enabled. 21 Allowable range is 0x01-0x3F. When this field is set fixed burst is enabled.
22 When fixed length is needed for burst mode, it can be set within allowable 22 When fixed length is needed for burst mode, it can be set within allowable
23 range. 23 range.
diff --git a/Documentation/devicetree/bindings/net/socfpga-dwmac.txt b/Documentation/devicetree/bindings/net/socfpga-dwmac.txt
index 2a60cd3e8d5d..3a9d67951606 100644
--- a/Documentation/devicetree/bindings/net/socfpga-dwmac.txt
+++ b/Documentation/devicetree/bindings/net/socfpga-dwmac.txt
@@ -12,6 +12,10 @@ Required properties:
12 - altr,sysmgr-syscon : Should be the phandle to the system manager node that 12 - altr,sysmgr-syscon : Should be the phandle to the system manager node that
13 encompasses the glue register, the register offset, and the register shift. 13 encompasses the glue register, the register offset, and the register shift.
14 14
15Optional properties:
16altr,emac-splitter: Should be the phandle to the emac splitter soft IP node if
17 DWMAC controller is connected emac splitter.
18
15Example: 19Example:
16 20
17gmac0: ethernet@ff700000 { 21gmac0: ethernet@ff700000 {
diff --git a/Documentation/devicetree/bindings/net/stmmac.txt b/Documentation/devicetree/bindings/net/stmmac.txt
index 9b03c57563a4..c41afd963edf 100644
--- a/Documentation/devicetree/bindings/net/stmmac.txt
+++ b/Documentation/devicetree/bindings/net/stmmac.txt
@@ -39,6 +39,10 @@ Optional properties:
39 further clocks may be specified in derived bindings. 39 further clocks may be specified in derived bindings.
40- clock-names: One name for each entry in the clocks property, the 40- clock-names: One name for each entry in the clocks property, the
41 first one should be "stmmaceth". 41 first one should be "stmmaceth".
42- clk_ptp_ref: this is the PTP reference clock; in case of the PTP is
43 available this clock is used for programming the Timestamp Addend Register.
44 If not passed then the system clock will be used and this is fine on some
45 platforms.
42 46
43Examples: 47Examples:
44 48
@@ -54,5 +58,5 @@ Examples:
54 snps,multicast-filter-bins = <256>; 58 snps,multicast-filter-bins = <256>;
55 snps,perfect-filter-entries = <128>; 59 snps,perfect-filter-entries = <128>;
56 clocks = <&clock>; 60 clocks = <&clock>;
57 clock-names = "stmmaceth">; 61 clock-names = "stmmaceth";
58 }; 62 };
diff --git a/Documentation/devicetree/bindings/panel/auo,b101xtn01.txt b/Documentation/devicetree/bindings/panel/auo,b101xtn01.txt
new file mode 100644
index 000000000000..889d511d66c9
--- /dev/null
+++ b/Documentation/devicetree/bindings/panel/auo,b101xtn01.txt
@@ -0,0 +1,7 @@
1AU Optronics Corporation 10.1" WXGA TFT LCD panel
2
3Required properties:
4- compatible: should be "auo,b101xtn01"
5
6This binding is compatible with the simple-panel binding, which is specified
7in simple-panel.txt in this directory.
diff --git a/Documentation/devicetree/bindings/pci/designware-pcie.txt b/Documentation/devicetree/bindings/pci/designware-pcie.txt
index d0d15ee42834..9f4faa8e8d00 100644
--- a/Documentation/devicetree/bindings/pci/designware-pcie.txt
+++ b/Documentation/devicetree/bindings/pci/designware-pcie.txt
@@ -2,6 +2,10 @@
2 2
3Required properties: 3Required properties:
4- compatible: should contain "snps,dw-pcie" to identify the core. 4- compatible: should contain "snps,dw-pcie" to identify the core.
5- reg: Should contain the configuration address space.
6- reg-names: Must be "config" for the PCIe configuration space.
7 (The old way of getting the configuration address space from "ranges"
8 is deprecated and should be avoided.)
5- #address-cells: set to <3> 9- #address-cells: set to <3>
6- #size-cells: set to <2> 10- #size-cells: set to <2>
7- device_type: set to "pci" 11- device_type: set to "pci"
@@ -19,3 +23,6 @@ Required properties:
19 23
20Optional properties: 24Optional properties:
21- reset-gpio: gpio pin number of power good signal 25- reset-gpio: gpio pin number of power good signal
26- bus-range: PCI bus numbers covered (it is recommended for new devicetrees to
27 specify this property, to keep backwards compatibility a range of 0x00-0xff
28 is assumed if not present)
diff --git a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
index 9455fd0ec830..6fbba53a309b 100644
--- a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
+++ b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
@@ -17,7 +17,9 @@ Example:
17 17
18 pcie@0x01000000 { 18 pcie@0x01000000 {
19 compatible = "fsl,imx6q-pcie", "snps,dw-pcie"; 19 compatible = "fsl,imx6q-pcie", "snps,dw-pcie";
20 reg = <0x01ffc000 0x4000>; 20 reg = <0x01ffc000 0x04000>,
21 <0x01f00000 0x80000>;
22 reg-names = "dbi", "config";
21 #address-cells = <3>; 23 #address-cells = <3>;
22 #size-cells = <2>; 24 #size-cells = <2>;
23 device_type = "pci"; 25 device_type = "pci";
diff --git a/Documentation/devicetree/bindings/pci/fsl,pci.txt b/Documentation/devicetree/bindings/pci/fsl,pci.txt
new file mode 100644
index 000000000000..d8ac4a768e7e
--- /dev/null
+++ b/Documentation/devicetree/bindings/pci/fsl,pci.txt
@@ -0,0 +1,27 @@
1* Bus Enumeration by Freescale PCI-X Agent
2
3Typically any Freescale PCI-X bridge hardware strapped into Agent mode
4is prevented from enumerating the bus. The PrPMC form-factor requires
5all mezzanines to be PCI-X Agents, but one per system may still
6enumerate the bus.
7
8The property defined below will allow a PCI-X bridge to be used for bus
9enumeration despite being strapped into Agent mode.
10
11Required properties:
12- fsl,pci-agent-force-enum : There is no value associated with this
13 property. The property itself is treated as a boolean.
14
15Example:
16
17 /* PCI-X bridge known to be PrPMC Monarch */
18 pci0: pci@ef008000 {
19 fsl,pci-agent-force-enum;
20 #interrupt-cells = <1>;
21 #size-cells = <2>;
22 #address-cells = <3>;
23 compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci";
24 device_type = "pci";
25 ...
26 ...
27 };
diff --git a/Documentation/devicetree/bindings/pci/host-generic-pci.txt b/Documentation/devicetree/bindings/pci/host-generic-pci.txt
index f0b0436807b4..cf3e205e0b7e 100644
--- a/Documentation/devicetree/bindings/pci/host-generic-pci.txt
+++ b/Documentation/devicetree/bindings/pci/host-generic-pci.txt
@@ -55,7 +55,7 @@ For CAM, this 24-bit offset is:
55 cfg_offset(bus, device, function, register) = 55 cfg_offset(bus, device, function, register) =
56 bus << 16 | device << 11 | function << 8 | register 56 bus << 16 | device << 11 | function << 8 | register
57 57
58Whilst ECAM extends this by 4 bits to accomodate 4k of function space: 58Whilst ECAM extends this by 4 bits to accommodate 4k of function space:
59 59
60 cfg_offset(bus, device, function, register) = 60 cfg_offset(bus, device, function, register) =
61 bus << 20 | device << 15 | function << 12 | register 61 bus << 20 | device << 15 | function << 12 | register
diff --git a/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt
index 0823362548dc..d763e047c6ae 100644
--- a/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt
+++ b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt
@@ -1,7 +1,10 @@
1NVIDIA Tegra PCIe controller 1NVIDIA Tegra PCIe controller
2 2
3Required properties: 3Required properties:
4- compatible: "nvidia,tegra20-pcie" or "nvidia,tegra30-pcie" 4- compatible: Must be one of:
5 - "nvidia,tegra20-pcie"
6 - "nvidia,tegra30-pcie"
7 - "nvidia,tegra124-pcie"
5- device_type: Must be "pci" 8- device_type: Must be "pci"
6- reg: A list of physical base address and length for each set of controller 9- reg: A list of physical base address and length for each set of controller
7 registers. Must contain an entry for each entry in the reg-names property. 10 registers. Must contain an entry for each entry in the reg-names property.
@@ -57,6 +60,11 @@ Required properties:
57 - afi 60 - afi
58 - pcie_x 61 - pcie_x
59 62
63Required properties on Tegra124 and later:
64- phys: Must contain an entry for each entry in phy-names.
65- phy-names: Must include the following entries:
66 - pcie
67
60Power supplies for Tegra20: 68Power supplies for Tegra20:
61- avdd-pex-supply: Power supply for analog PCIe logic. Must supply 1.05 V. 69- avdd-pex-supply: Power supply for analog PCIe logic. Must supply 1.05 V.
62- vdd-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. 70- vdd-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
@@ -84,6 +92,21 @@ Power supplies for Tegra30:
84 - avdd-pexb-supply: Power supply for analog PCIe logic. Must supply 1.05 V. 92 - avdd-pexb-supply: Power supply for analog PCIe logic. Must supply 1.05 V.
85 - vdd-pexb-supply: Power supply for digital PCIe I/O. Must supply 1.05 V. 93 - vdd-pexb-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
86 94
95Power supplies for Tegra124:
96- Required:
97 - avddio-pex-supply: Power supply for analog PCIe logic. Must supply 1.05 V.
98 - dvddio-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
99 - avdd-pex-pll-supply: Power supply for dedicated (internal) PCIe PLL. Must
100 supply 1.05 V.
101 - hvdd-pex-supply: High-voltage supply for PCIe I/O and PCIe output clocks.
102 Must supply 3.3 V.
103 - hvdd-pex-pll-e-supply: High-voltage supply for PLLE (shared with USB3).
104 Must supply 3.3 V.
105 - vddio-pex-ctl-supply: Power supply for PCIe control I/O partition. Must
106 supply 2.8-3.3 V.
107 - avdd-pll-erefe-supply: Power supply for PLLE (shared with USB3). Must
108 supply 1.05 V.
109
87Root ports are defined as subnodes of the PCIe controller node. 110Root ports are defined as subnodes of the PCIe controller node.
88 111
89Required properties: 112Required properties:
diff --git a/Documentation/devicetree/bindings/pci/pci-keystone.txt b/Documentation/devicetree/bindings/pci/pci-keystone.txt
new file mode 100644
index 000000000000..54eae2938174
--- /dev/null
+++ b/Documentation/devicetree/bindings/pci/pci-keystone.txt
@@ -0,0 +1,63 @@
1TI Keystone PCIe interface
2
3Keystone PCI host Controller is based on Designware PCI h/w version 3.65.
4It shares common functions with PCIe Designware core driver and inherit
5common properties defined in
6Documentation/devicetree/bindings/pci/designware-pci.txt
7
8Please refer to Documentation/devicetree/bindings/pci/designware-pci.txt
9for the details of Designware DT bindings. Additional properties are
10described here as well as properties that are not applicable.
11
12Required Properties:-
13
14compatibility: "ti,keystone-pcie"
15reg: index 1 is the base address and length of DW application registers.
16 index 2 is the base address and length of PCI device ID register.
17
18pcie_msi_intc : Interrupt controller device node for MSI IRQ chip
19 interrupt-cells: should be set to 1
20 interrupt-parent: Parent interrupt controller phandle
21 interrupts: GIC interrupt lines connected to PCI MSI interrupt lines
22
23 Example:
24 pcie_msi_intc: msi-interrupt-controller {
25 interrupt-controller;
26 #interrupt-cells = <1>;
27 interrupt-parent = <&gic>;
28 interrupts = <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
29 <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>,
30 <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>,
31 <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>,
32 <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>,
33 <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>,
34 <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>,
35 <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>;
36 };
37
38pcie_intc: Interrupt controller device node for Legacy IRQ chip
39 interrupt-cells: should be set to 1
40 interrupt-parent: Parent interrupt controller phandle
41 interrupts: GIC interrupt lines connected to PCI Legacy interrupt lines
42
43 Example:
44 pcie_intc: legacy-interrupt-controller {
45 interrupt-controller;
46 #interrupt-cells = <1>;
47 interrupt-parent = <&gic>;
48 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>,
49 <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>,
50 <GIC_SPI 28 IRQ_TYPE_EDGE_RISING>,
51 <GIC_SPI 29 IRQ_TYPE_EDGE_RISING>;
52 };
53
54Optional properties:-
55 phys: phandle to Generic Keystone SerDes phy for PCI
56 phy-names: name of the Generic Keystine SerDes phy for PCI
57 - If boot loader already does PCI link establishment, then phys and
58 phy-names shouldn't be present.
59
60Designware DT Properties not applicable for Keystone PCI
61
621. pcie_bus clock-names not used. Instead, a phandle to phys is used.
63
diff --git a/Documentation/devicetree/bindings/pci/ti-pci.txt b/Documentation/devicetree/bindings/pci/ti-pci.txt
new file mode 100644
index 000000000000..3d217911b313
--- /dev/null
+++ b/Documentation/devicetree/bindings/pci/ti-pci.txt
@@ -0,0 +1,59 @@
1TI PCI Controllers
2
3PCIe Designware Controller
4 - compatible: Should be "ti,dra7-pcie""
5 - reg : Two register ranges as listed in the reg-names property
6 - reg-names : The first entry must be "ti-conf" for the TI specific registers
7 The second entry must be "rc-dbics" for the designware pcie
8 registers
9 The third entry must be "config" for the PCIe configuration space
10 - phys : list of PHY specifiers (used by generic PHY framework)
11 - phy-names : must be "pcie-phy0", "pcie-phy1", "pcie-phyN".. based on the
12 number of PHYs as specified in *phys* property.
13 - ti,hwmods : Name of the hwmod associated to the pcie, "pcie<X>",
14 where <X> is the instance number of the pcie from the HW spec.
15 - interrupts : Two interrupt entries must be specified. The first one is for
16 main interrupt line and the second for MSI interrupt line.
17 - #address-cells,
18 #size-cells,
19 #interrupt-cells,
20 device_type,
21 ranges,
22 num-lanes,
23 interrupt-map-mask,
24 interrupt-map : as specified in ../designware-pcie.txt
25
26Example:
27axi {
28 compatible = "simple-bus";
29 #size-cells = <1>;
30 #address-cells = <1>;
31 ranges = <0x51000000 0x51000000 0x3000
32 0x0 0x20000000 0x10000000>;
33 pcie@51000000 {
34 compatible = "ti,dra7-pcie";
35 reg = <0x51000000 0x2000>, <0x51002000 0x14c>, <0x1000 0x2000>;
36 reg-names = "rc_dbics", "ti_conf", "config";
37 interrupts = <0 232 0x4>, <0 233 0x4>;
38 #address-cells = <3>;
39 #size-cells = <2>;
40 device_type = "pci";
41 ranges = <0x81000000 0 0 0x03000 0 0x00010000
42 0x82000000 0 0x20013000 0x13000 0 0xffed000>;
43 #interrupt-cells = <1>;
44 num-lanes = <1>;
45 ti,hwmods = "pcie1";
46 phys = <&pcie1_phy>;
47 phy-names = "pcie-phy0";
48 interrupt-map-mask = <0 0 0 7>;
49 interrupt-map = <0 0 0 1 &pcie_intc 1>,
50 <0 0 0 2 &pcie_intc 2>,
51 <0 0 0 3 &pcie_intc 3>,
52 <0 0 0 4 &pcie_intc 4>;
53 pcie_intc: interrupt-controller {
54 interrupt-controller;
55 #address-cells = <0>;
56 #interrupt-cells = <1>;
57 };
58 };
59};
diff --git a/Documentation/devicetree/bindings/pci/xgene-pci.txt b/Documentation/devicetree/bindings/pci/xgene-pci.txt
new file mode 100644
index 000000000000..1070b068c7c6
--- /dev/null
+++ b/Documentation/devicetree/bindings/pci/xgene-pci.txt
@@ -0,0 +1,57 @@
1* AppliedMicro X-Gene PCIe interface
2
3Required properties:
4- device_type: set to "pci"
5- compatible: should contain "apm,xgene-pcie" to identify the core.
6- reg: A list of physical base address and length for each set of controller
7 registers. Must contain an entry for each entry in the reg-names
8 property.
9- reg-names: Must include the following entries:
10 "csr": controller configuration registers.
11 "cfg": pcie configuration space registers.
12- #address-cells: set to <3>
13- #size-cells: set to <2>
14- ranges: ranges for the outbound memory, I/O regions.
15- dma-ranges: ranges for the inbound memory regions.
16- #interrupt-cells: set to <1>
17- interrupt-map-mask and interrupt-map: standard PCI properties
18 to define the mapping of the PCIe interface to interrupt
19 numbers.
20- clocks: from common clock binding: handle to pci clock.
21
22Optional properties:
23- status: Either "ok" or "disabled".
24- dma-coherent: Present if dma operations are coherent
25
26Example:
27
28SoC specific DT Entry:
29
30 pcie0: pcie@1f2b0000 {
31 status = "disabled";
32 device_type = "pci";
33 compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
34 #interrupt-cells = <1>;
35 #size-cells = <2>;
36 #address-cells = <3>;
37 reg = < 0x00 0x1f2b0000 0x0 0x00010000 /* Controller registers */
38 0xe0 0xd0000000 0x0 0x00040000>; /* PCI config space */
39 reg-names = "csr", "cfg";
40 ranges = <0x01000000 0x00 0x00000000 0xe0 0x10000000 0x00 0x00010000 /* io */
41 0x02000000 0x00 0x80000000 0xe1 0x80000000 0x00 0x80000000>; /* mem */
42 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
43 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
44 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
45 interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc2 0x1
46 0x0 0x0 0x0 0x2 &gic 0x0 0xc3 0x1
47 0x0 0x0 0x0 0x3 &gic 0x0 0xc4 0x1
48 0x0 0x0 0x0 0x4 &gic 0x0 0xc5 0x1>;
49 dma-coherent;
50 clocks = <&pcie0clk 0>;
51 };
52
53
54Board specific DT Entry:
55 &pcie0 {
56 status = "ok";
57 };
diff --git a/Documentation/devicetree/bindings/pci/xilinx-pcie.txt b/Documentation/devicetree/bindings/pci/xilinx-pcie.txt
new file mode 100644
index 000000000000..3e2c88d97ad4
--- /dev/null
+++ b/Documentation/devicetree/bindings/pci/xilinx-pcie.txt
@@ -0,0 +1,62 @@
1* Xilinx AXI PCIe Root Port Bridge DT description
2
3Required properties:
4- #address-cells: Address representation for root ports, set to <3>
5- #size-cells: Size representation for root ports, set to <2>
6- #interrupt-cells: specifies the number of cells needed to encode an
7 interrupt source. The value must be 1.
8- compatible: Should contain "xlnx,axi-pcie-host-1.00.a"
9- reg: Should contain AXI PCIe registers location and length
10- device_type: must be "pci"
11- interrupts: Should contain AXI PCIe interrupt
12- interrupt-map-mask,
13 interrupt-map: standard PCI properties to define the mapping of the
14 PCI interface to interrupt numbers.
15- ranges: ranges for the PCI memory regions (I/O space region is not
16 supported by hardware)
17 Please refer to the standard PCI bus binding document for a more
18 detailed explanation
19
20Optional properties:
21- bus-range: PCI bus numbers covered
22
23Interrupt controller child node
24+++++++++++++++++++++++++++++++
25Required properties:
26- interrupt-controller: identifies the node as an interrupt controller
27- #address-cells: specifies the number of cells needed to encode an
28 address. The value must be 0.
29- #interrupt-cells: specifies the number of cells needed to encode an
30 interrupt source. The value must be 1.
31
32NOTE:
33The core provides a single interrupt for both INTx/MSI messages. So,
34created a interrupt controller node to support 'interrupt-map' DT
35functionality. The driver will create an IRQ domain for this map, decode
36the four INTx interrupts in ISR and route them to this domain.
37
38
39Example:
40++++++++
41
42 pci_express: axi-pcie@50000000 {
43 #address-cells = <3>;
44 #size-cells = <2>;
45 #interrupt-cells = <1>;
46 compatible = "xlnx,axi-pcie-host-1.00.a";
47 reg = < 0x50000000 0x10000000 >;
48 device_type = "pci";
49 interrupts = < 0 52 4 >;
50 interrupt-map-mask = <0 0 0 7>;
51 interrupt-map = <0 0 0 1 &pcie_intc 1>,
52 <0 0 0 2 &pcie_intc 2>,
53 <0 0 0 3 &pcie_intc 3>,
54 <0 0 0 4 &pcie_intc 4>;
55 ranges = < 0x02000000 0 0x60000000 0x60000000 0 0x10000000 >;
56
57 pcie_intc: interrupt-controller {
58 interrupt-controller;
59 #address-cells = <0>;
60 #interrupt-cells = <1>;
61 }
62 };
diff --git a/Documentation/devicetree/bindings/phy/phy-bindings.txt b/Documentation/devicetree/bindings/phy/phy-bindings.txt
index 2aa1840200ed..1293c321754c 100644
--- a/Documentation/devicetree/bindings/phy/phy-bindings.txt
+++ b/Documentation/devicetree/bindings/phy/phy-bindings.txt
@@ -27,7 +27,7 @@ phys: phy {
27}; 27};
28 28
29That node describes an IP block (PHY provider) that implements 2 different PHYs. 29That node describes an IP block (PHY provider) that implements 2 different PHYs.
30In order to differentiate between these 2 PHYs, an additonal specifier should be 30In order to differentiate between these 2 PHYs, an additional specifier should be
31given while trying to get a reference to it. 31given while trying to get a reference to it.
32 32
33PHY user node 33PHY user node
diff --git a/Documentation/devicetree/bindings/phy/phy-stih407-usb.txt b/Documentation/devicetree/bindings/phy/phy-stih407-usb.txt
new file mode 100644
index 000000000000..1ef8228db73b
--- /dev/null
+++ b/Documentation/devicetree/bindings/phy/phy-stih407-usb.txt
@@ -0,0 +1,30 @@
1ST STiH407 USB PHY controller
2
3This file documents the dt bindings for the usb picoPHY driver which is the PHY for both USB2 and USB3
4host controllers (when controlling usb2/1.1 devices) available on STiH407 SoC family from STMicroelectronics.
5
6Required properties:
7- compatible : should be "st,stih407-usb2-phy"
8- reg : contain the offset and length of the system configuration registers
9 used as glue logic to control & parameter phy
10- reg-names : the names of the system configuration registers in "reg", should be "param" and "reg"
11- st,syscfg : sysconfig register to manage phy parameter at driver level
12- resets : list of phandle and reset specifier pairs. There should be two entries, one
13 for the whole phy and one for the port
14- reset-names : list of reset signal names. Should be "global" and "port"
15See: Documentation/devicetree/bindings/reset/st,sti-powerdown.txt
16See: Documentation/devicetree/bindings/reset/reset.txt
17
18Example:
19
20usb2_picophy0: usbpicophy@f8 {
21 compatible = "st,stih407-usb2-phy";
22 reg = <0xf8 0x04>, /* syscfg 5062 */
23 <0xf4 0x04>; /* syscfg 5061 */
24 reg-names = "param", "ctrl";
25 #phy-cells = <0>;
26 st,syscfg = <&syscfg_core>;
27 resets = <&softreset STIH407_PICOPHY_SOFTRESET>,
28 <&picophyreset STIH407_PICOPHY0_RESET>;
29 reset-names = "global", "port";
30};
diff --git a/Documentation/devicetree/bindings/phy/phy-stih41x-usb.txt b/Documentation/devicetree/bindings/phy/phy-stih41x-usb.txt
new file mode 100644
index 000000000000..00944a05ee6b
--- /dev/null
+++ b/Documentation/devicetree/bindings/phy/phy-stih41x-usb.txt
@@ -0,0 +1,24 @@
1STMicroelectronics STiH41x USB PHY binding
2------------------------------------------
3
4This file contains documentation for the usb phy found in STiH415/6 SoCs from
5STMicroelectronics.
6
7Required properties:
8- compatible : should be "st,stih416-usb-phy" or "st,stih415-usb-phy"
9- st,syscfg : should be a phandle of the syscfg node
10- clock-names : must contain "osc_phy"
11- clocks : must contain an entry for each name in clock-names.
12See: Documentation/devicetree/bindings/clock/clock-bindings.txt
13- #phy-cells : must be 0 for this phy
14See: Documentation/devicetree/bindings/phy/phy-bindings.txt
15
16Example:
17
18usb2_phy: usb2phy@0 {
19 compatible = "st,stih416-usb-phy";
20 #phy-cell = <0>;
21 st,syscfg = <&syscfg_rear>;
22 clocks = <&clk_sysin>;
23 clock-names = "osc_phy";
24};
diff --git a/Documentation/devicetree/bindings/phy/qcom-dwc3-usb-phy.txt b/Documentation/devicetree/bindings/phy/qcom-dwc3-usb-phy.txt
new file mode 100644
index 000000000000..86f2dbe07ed4
--- /dev/null
+++ b/Documentation/devicetree/bindings/phy/qcom-dwc3-usb-phy.txt
@@ -0,0 +1,39 @@
1Qualcomm DWC3 HS AND SS PHY CONTROLLER
2--------------------------------------
3
4DWC3 PHY nodes are defined to describe on-chip Synopsis Physical layer
5controllers. Each DWC3 PHY controller should have its own node.
6
7Required properties:
8- compatible: should contain one of the following:
9 - "qcom,dwc3-hs-usb-phy" for High Speed Synopsis PHY controller
10 - "qcom,dwc3-ss-usb-phy" for Super Speed Synopsis PHY controller
11- reg: offset and length of the DWC3 PHY controller register set
12- #phy-cells: must be zero
13- clocks: a list of phandles and clock-specifier pairs, one for each entry in
14 clock-names.
15- clock-names: Should contain "ref" for the PHY reference clock
16
17Optional clocks:
18 "xo" External reference clock
19
20Example:
21 phy@100f8800 {
22 compatible = "qcom,dwc3-hs-usb-phy";
23 reg = <0x100f8800 0x30>;
24 clocks = <&gcc USB30_0_UTMI_CLK>;
25 clock-names = "ref";
26 #phy-cells = <0>;
27
28 status = "ok";
29 };
30
31 phy@100f8830 {
32 compatible = "qcom,dwc3-ss-usb-phy";
33 reg = <0x100f8830 0x30>;
34 clocks = <&gcc USB30_0_MASTER_CLK>;
35 clock-names = "ref";
36 #phy-cells = <0>;
37
38 status = "ok";
39 };
diff --git a/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt b/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt
new file mode 100644
index 000000000000..00fc52a034b7
--- /dev/null
+++ b/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt
@@ -0,0 +1,51 @@
1* Renesas R-Car generation 2 USB PHY
2
3This file provides information on what the device node for the R-Car generation
42 USB PHY contains.
5
6Required properties:
7- compatible: "renesas,usb-phy-r8a7790" if the device is a part of R8A7790 SoC.
8 "renesas,usb-phy-r8a7791" if the device is a part of R8A7791 SoC.
9- reg: offset and length of the register block.
10- #address-cells: number of address cells for the USB channel subnodes, must
11 be <1>.
12- #size-cells: number of size cells for the USB channel subnodes, must be <0>.
13- clocks: clock phandle and specifier pair.
14- clock-names: string, clock input name, must be "usbhs".
15
16The USB PHY device tree node should have the subnodes corresponding to the USB
17channels. These subnodes must contain the following properties:
18- reg: the USB controller selector; see the table below for the values.
19- #phy-cells: see phy-bindings.txt in the same directory, must be <1>.
20
21The phandle's argument in the PHY specifier is the USB controller selector for
22the USB channel; see the selector meanings below:
23
24+-----------+---------------+---------------+
25|\ Selector | | |
26+ --------- + 0 | 1 |
27| Channel \| | |
28+-----------+---------------+---------------+
29| 0 | PCI EHCI/OHCI | HS-USB |
30| 2 | PCI EHCI/OHCI | xHCI |
31+-----------+---------------+---------------+
32
33Example (Lager board):
34
35 usb-phy@e6590100 {
36 compatible = "renesas,usb-phy-r8a7790";
37 reg = <0 0xe6590100 0 0x100>;
38 #address-cells = <1>;
39 #size-cells = <0>;
40 clocks = <&mstp7_clks R8A7790_CLK_HSUSB>;
41 clock-names = "usbhs";
42
43 usb-channel@0 {
44 reg = <0>;
45 #phy-cells = <1>;
46 };
47 usb-channel@2 {
48 reg = <2>;
49 #phy-cells = <1>;
50 };
51 };
diff --git a/Documentation/devicetree/bindings/phy/samsung-phy.txt b/Documentation/devicetree/bindings/phy/samsung-phy.txt
index 7a6feea2a48b..15e0f2c7130f 100644
--- a/Documentation/devicetree/bindings/phy/samsung-phy.txt
+++ b/Documentation/devicetree/bindings/phy/samsung-phy.txt
@@ -17,8 +17,11 @@ Samsung EXYNOS SoC series Display Port PHY
17------------------------------------------------- 17-------------------------------------------------
18 18
19Required properties: 19Required properties:
20- compatible : should be "samsung,exynos5250-dp-video-phy"; 20- compatible : should be one of the following supported values:
21- reg : offset and length of the Display Port PHY register set; 21 - "samsung,exynos5250-dp-video-phy"
22 - "samsung,exynos5420-dp-video-phy"
23- samsung,pmu-syscon: phandle for PMU system controller interface, used to
24 control pmu registers for power isolation.
22- #phy-cells : from the generic PHY bindings, must be 0; 25- #phy-cells : from the generic PHY bindings, must be 0;
23 26
24Samsung S5P/EXYNOS SoC series USB PHY 27Samsung S5P/EXYNOS SoC series USB PHY
diff --git a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt
index 02ab5ab198a4..b7a93e80a302 100644
--- a/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt
@@ -19,6 +19,7 @@ such as pull-up, multi drive, etc.
19 19
20Required properties for iomux controller: 20Required properties for iomux controller:
21- compatible: "atmel,at91rm9200-pinctrl" or "atmel,at91sam9x5-pinctrl" 21- compatible: "atmel,at91rm9200-pinctrl" or "atmel,at91sam9x5-pinctrl"
22 or "atmel,sama5d3-pinctrl"
22- atmel,mux-mask: array of mask (periph per bank) to describe if a pin can be 23- atmel,mux-mask: array of mask (periph per bank) to describe if a pin can be
23 configured in this periph mode. All the periph and bank need to be describe. 24 configured in this periph mode. All the periph and bank need to be describe.
24 25
@@ -85,13 +86,20 @@ Required properties for pin configuration node:
85 PIN_BANK 0 is pioA, PIN_BANK 1 is pioB... 86 PIN_BANK 0 is pioA, PIN_BANK 1 is pioB...
86 87
87Bits used for CONFIG: 88Bits used for CONFIG:
88PULL_UP (1 << 0): indicate this pin need a pull up. 89PULL_UP (1 << 0): indicate this pin needs a pull up.
89MULTIDRIVE (1 << 1): indicate this pin need to be configured as multidrive. 90MULTIDRIVE (1 << 1): indicate this pin needs to be configured as multi-drive.
90DEGLITCH (1 << 2): indicate this pin need deglitch. 91 Multi-drive is equivalent to open-drain type output.
91PULL_DOWN (1 << 3): indicate this pin need a pull down. 92DEGLITCH (1 << 2): indicate this pin needs deglitch.
92DIS_SCHMIT (1 << 4): indicate this pin need to disable schmit trigger. 93PULL_DOWN (1 << 3): indicate this pin needs a pull down.
93DEBOUNCE (1 << 16): indicate this pin need debounce. 94DIS_SCHMIT (1 << 4): indicate this pin needs to the disable schmitt trigger.
94DEBOUNCE_VAL (0x3fff << 17): debounce val. 95DRIVE_STRENGTH (3 << 5): indicate the drive strength of the pin using the
96 following values:
97 00 - No change (reset state value kept)
98 01 - Low
99 10 - Medium
100 11 - High
101DEBOUNCE (1 << 16): indicate this pin needs debounce.
102DEBOUNCE_VAL (0x3fff << 17): debounce value.
95 103
96NOTE: 104NOTE:
97Some requirements for using atmel,at91rm9200-pinctrl binding: 105Some requirements for using atmel,at91rm9200-pinctrl binding:
diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-pinmux.txt b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-pinmux.txt
index 6464bf769460..189814e7cdc7 100644
--- a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-pinmux.txt
+++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-pinmux.txt
@@ -10,6 +10,7 @@ Required properties:
10- reg: Should contain a list of base address and size pairs for: 10- reg: Should contain a list of base address and size pairs for:
11 -- first entry - the drive strength and pad control registers. 11 -- first entry - the drive strength and pad control registers.
12 -- second entry - the pinmux registers 12 -- second entry - the pinmux registers
13 -- third entry - the MIPI_PAD_CTRL register
13 14
14Tegra124 adds the following optional properties for pin configuration subnodes. 15Tegra124 adds the following optional properties for pin configuration subnodes.
15The macros for options are defined in the 16The macros for options are defined in the
@@ -91,6 +92,12 @@ Valid values for pin and group names are:
91 dbg, sdio3, spi, uaa, uab, uart2, uart3, sdio1, ddc, gma, gme, gmf, gmg, 92 dbg, sdio3, spi, uaa, uab, uart2, uart3, sdio1, ddc, gma, gme, gmf, gmg,
92 gmh, owr, uda, gpv, dev3, cec, usb_vbus_en, ao3, ao0, hv0, sdio4, ao4. 93 gmh, owr, uda, gpv, dev3, cec, usb_vbus_en, ao3, ao0, hv0, sdio4, ao4.
93 94
95 MIPI pad control groups:
96
97 These support only the nvidia,function property.
98
99 dsi_b
100
94Valid values for nvidia,functions are: 101Valid values for nvidia,functions are:
95 102
96 blink, cec, cldvfs, clk12, cpu, dap, dap1, dap2, dev3, displaya, 103 blink, cec, cldvfs, clk12, cpu, dap, dap1, dap2, dev3, displaya,
@@ -101,14 +108,15 @@ Valid values for nvidia,functions are:
101 sdmmc4, soc, spdif, spi1, spi2, spi3, spi4, spi5, spi6, trace, uarta, 108 sdmmc4, soc, spdif, spi1, spi2, spi3, spi4, spi5, spi6, trace, uarta,
102 uartb, uartc, uartd, ulpi, usb, vgp1, vgp2, vgp3, vgp4, vgp5, vgp6, 109 uartb, uartc, uartd, ulpi, usb, vgp1, vgp2, vgp3, vgp4, vgp5, vgp6,
103 vi, vi_alt1, vi_alt3, vimclk2, vimclk2_alt, sata, ccla, pe0, pe, pe1, 110 vi, vi_alt1, vi_alt3, vimclk2, vimclk2_alt, sata, ccla, pe0, pe, pe1,
104 dp, rtck, sys, clk tmds. 111 dp, rtck, sys, clk tmds, csi, dsi_b
105 112
106Example: 113Example:
107 114
108 pinmux: pinmux { 115 pinmux: pinmux {
109 compatible = "nvidia,tegra124-pinmux"; 116 compatible = "nvidia,tegra124-pinmux";
110 reg = <0x70000868 0x164 /* Pad control registers */ 117 reg = <0x0 0x70000868 0x0 0x164>, /* Pad control registers */
111 0x70003000 0x434>; /* PinMux registers */ 118 <0x0 0x70003000 0x0 0x434>, /* Mux registers */
119 <0x0 0x70000820 0x0 0x8>; /* MIPI pad control */
112 }; 120 };
113 121
114Example pinmux entries: 122Example pinmux entries:
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
index fa40a177164c..98eb94d91a1c 100644
--- a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
@@ -127,6 +127,24 @@ whether there is any interaction between the child and intermediate parent
127nodes, is again defined entirely by the binding for the individual pin 127nodes, is again defined entirely by the binding for the individual pin
128controller device. 128controller device.
129 129
130== Generic pin multiplexing node content ==
131
132pin multiplexing nodes:
133
134function - the mux function to select
135groups - the list of groups to select with this function
136
137Example:
138
139state_0_node_a {
140 function = "uart0";
141 groups = "u0rxtx", "u0rtscts";
142};
143state_1_node_a {
144 function = "spi0";
145 groups = "spi0pins";
146};
147
130== Generic pin configuration node content == 148== Generic pin configuration node content ==
131 149
132Many data items that are represented in a pin configuration node are common 150Many data items that are represented in a pin configuration node are common
@@ -139,8 +157,12 @@ structure of the DT nodes that contain these properties.
139Supported generic properties are: 157Supported generic properties are:
140 158
141pins - the list of pins that properties in the node 159pins - the list of pins that properties in the node
142 apply to 160 apply to (either this or "group" has to be
143function - the mux function to select 161 specified)
162group - the group to apply the properties to, if the driver
163 supports configuration of whole groups rather than
164 individual pins (either this or "pins" has to be
165 specified)
144bias-disable - disable any pin bias 166bias-disable - disable any pin bias
145bias-high-impedance - high impedance mode ("third-state", "floating") 167bias-high-impedance - high impedance mode ("third-state", "floating")
146bias-bus-hold - latch weakly 168bias-bus-hold - latch weakly
@@ -163,6 +185,21 @@ output-low - set the pin to output mode with low level
163output-high - set the pin to output mode with high level 185output-high - set the pin to output mode with high level
164slew-rate - set the slew rate 186slew-rate - set the slew rate
165 187
188For example:
189
190state_0_node_a {
191 pins = "GPIO0_AJ5", "GPIO2_AH4"; /* CTS+RXD */
192 bias-pull-up;
193};
194state_1_node_a {
195 pins = "GPIO1_AJ3", "GPIO3_AH3"; /* RTS+TXD */
196 output-high;
197};
198state_2_node_a {
199 group = "foo-group";
200 bias-pull-up;
201};
202
166Some of the generic properties take arguments. For those that do, the 203Some of the generic properties take arguments. For those that do, the
167arguments are described below. 204arguments are described below.
168 205
@@ -170,15 +207,6 @@ arguments are described below.
170 binding for the hardware defines: 207 binding for the hardware defines:
171 - Whether the entries are integers or strings, and their meaning. 208 - Whether the entries are integers or strings, and their meaning.
172 209
173- function takes a list of function names/IDs as a required argument. The
174 specific binding for the hardware defines:
175 - Whether the entries are integers or strings, and their meaning.
176 - Whether only a single entry is allowed (which is applied to all entries
177 in the pins property), or whether there may alternatively be one entry per
178 entry in the pins property, in which case the list lengths must match, and
179 for each list index i, the function at list index i is applied to the pin
180 at list index i.
181
182- bias-pull-up, -down and -pin-default take as optional argument on hardware 210- bias-pull-up, -down and -pin-default take as optional argument on hardware
183 supporting it the pull strength in Ohm. bias-disable will disable the pull. 211 supporting it the pull strength in Ohm. bias-disable will disable the pull.
184 212
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt
index 0211c6d8a522..2fb90b37aa09 100644
--- a/Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt
@@ -50,7 +50,7 @@ Valid values for function are:
50 gsbi4_cam_i2c, gsbi5, gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6, 50 gsbi4_cam_i2c, gsbi5, gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6,
51 gsbi6_spi_cs1, gsbi6_spi_cs2, gsbi6_spi_cs3, gsbi7, gsbi7_spi_cs1, 51 gsbi6_spi_cs1, gsbi6_spi_cs2, gsbi6_spi_cs3, gsbi7, gsbi7_spi_cs1,
52 gsbi7_spi_cs2, gsbi7_spi_cs3, gsbi_cam_i2c, hdmi, mi2s, riva_bt, riva_fm, 52 gsbi7_spi_cs2, gsbi7_spi_cs3, gsbi_cam_i2c, hdmi, mi2s, riva_bt, riva_fm,
53 riva_wlan, sdc2, sdc4, slimbus, spkr_i2s, tsif1, tsif2, usb2_hsic, 53 riva_wlan, sdc2, sdc4, slimbus, spkr_i2s, tsif1, tsif2, usb2_hsic, ps_hold
54 54
55Example: 55Example:
56 56
@@ -62,7 +62,7 @@ Example:
62 #gpio-cells = <2>; 62 #gpio-cells = <2>;
63 interrupt-controller; 63 interrupt-controller;
64 #interrupt-cells = <2>; 64 #interrupt-cells = <2>;
65 interrupts = <0 32 0x4>; 65 interrupts = <0 16 0x4>;
66 66
67 pinctrl-names = "default"; 67 pinctrl-names = "default";
68 pinctrl-0 = <&gsbi5_uart_default>; 68 pinctrl-0 = <&gsbi5_uart_default>;
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,apq8084-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/qcom,apq8084-pinctrl.txt
new file mode 100644
index 000000000000..ffafa1990a30
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/qcom,apq8084-pinctrl.txt
@@ -0,0 +1,179 @@
1Qualcomm APQ8084 TLMM block
2
3This binding describes the Top Level Mode Multiplexer block found in the
4MSM8960 platform.
5
6- compatible:
7 Usage: required
8 Value type: <string>
9 Definition: must be "qcom,apq8084-pinctrl"
10
11- reg:
12 Usage: required
13 Value type: <prop-encoded-array>
14 Definition: the base address and size of the TLMM register space.
15
16- interrupts:
17 Usage: required
18 Value type: <prop-encoded-array>
19 Definition: should specify the TLMM summary IRQ.
20
21- interrupt-controller:
22 Usage: required
23 Value type: <none>
24 Definition: identifies this node as an interrupt controller
25
26- #interrupt-cells:
27 Usage: required
28 Value type: <u32>
29 Definition: must be 2. Specifying the pin number and flags, as defined
30 in <dt-bindings/interrupt-controller/irq.h>
31
32- gpio-controller:
33 Usage: required
34 Value type: <none>
35 Definition: identifies this node as a gpio controller
36
37- #gpio-cells:
38 Usage: required
39 Value type: <u32>
40 Definition: must be 2. Specifying the pin number and flags, as defined
41 in <dt-bindings/gpio/gpio.h>
42
43Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
44a general description of GPIO and interrupt bindings.
45
46Please refer to pinctrl-bindings.txt in this directory for details of the
47common pinctrl bindings used by client devices, including the meaning of the
48phrase "pin configuration node".
49
50The pin configuration nodes act as a container for an abitrary number of
51subnodes. Each of these subnodes represents some desired configuration for a
52pin, a group, or a list of pins or groups. This configuration can include the
53mux function to select on those pin(s)/group(s), and various pin configuration
54parameters, such as pull-up, drive strength, etc.
55
56
57PIN CONFIGURATION NODES:
58
59The name of each subnode is not important; all subnodes should be enumerated
60and processed purely based on their content.
61
62Each subnode only affects those parameters that are explicitly listed. In
63other words, a subnode that lists a mux function but no pin configuration
64parameters implies no information about any pin configuration parameters.
65Similarly, a pin subnode that describes a pullup parameter implies no
66information about e.g. the mux function.
67
68
69The following generic properties as defined in pinctrl-bindings.txt are valid
70to specify in a pin configuration subnode:
71
72- pins:
73 Usage: required
74 Value type: <string-array>
75 Definition: List of gpio pins affected by the properties specified in
76 this subnode. Valid pins are:
77 gpio0-gpio146,
78 sdc1_clk,
79 sdc1_cmd,
80 sdc1_data
81 sdc2_clk,
82 sdc2_cmd,
83 sdc2_data
84
85- function:
86 Usage: required
87 Value type: <string>
88 Definition: Specify the alternative function to be configured for the
89 specified pins. Functions are only valid for gpio pins.
90 Valid values are:
91 adsp_ext, audio_ref, blsp_i2c1, blsp_i2c2, blsp_i2c3,
92 blsp_i2c4, blsp_i2c5, blsp_i2c6, blsp_i2c7, blsp_i2c8,
93 blsp_i2c9, blsp_i2c10, blsp_i2c11, blsp_i2c12,
94 blsp_spi1, blsp_spi2, blsp_spi3, blsp_spi4, blsp_spi5,
95 blsp_spi6, blsp_spi7, blsp_spi8, blsp_spi9, blsp_spi10,
96 blsp_spi11, blsp_spi12, blsp_uart1, blsp_uart2, blsp_uart3,
97 blsp_uart4, blsp_uart5, blsp_uart6, blsp_uart7, blsp_uart8,
98 blsp_uart9, blsp_uart10, blsp_uart11, blsp_uart12,
99 blsp_uim1, blsp_uim2, blsp_uim3, blsp_uim4, blsp_uim5,
100 blsp_uim6, blsp_uim7, blsp_uim8, blsp_uim9, blsp_uim10,
101 blsp_uim11, blsp_uim12, cam_mclk0, cam_mclk1, cam_mclk2,
102 cam_mclk3, cci_async, cci_async_in0, cci_i2c0, cci_i2c1,
103 cci_timer0, cci_timer1, cci_timer2, cci_timer3, cci_timer4,
104 edp_hpd, gcc_gp1, gcc_gp2, gcc_gp3, gcc_obt, gcc_vtt,i
105 gp_mn, gp_pdm0, gp_pdm1, gp_pdm2, gp0_clk, gp1_clk, gpio,
106 hdmi_cec, hdmi_ddc, hdmi_dtest, hdmi_hpd, hdmi_rcv, hsic,
107 ldo_en, ldo_update, mdp_vsync, pci_e0, pci_e0_n, pci_e0_rst,
108 pci_e1, pci_e1_rst, pci_e1_rst_n, pci_e1_clkreq_n, pri_mi2s,
109 qua_mi2s, sata_act, sata_devsleep, sata_devsleep_n,
110 sd_write, sdc_emmc_mode, sdc3, sdc4, sec_mi2s, slimbus,
111 spdif_tx, spkr_i2s, spkr_i2s_ws, spss_geni, ter_mi2s, tsif1,
112 tsif2, uim, uim_batt_alarm
113
114- bias-disable:
115 Usage: optional
116 Value type: <none>
117 Definition: The specified pins should be configued as no pull.
118
119- bias-pull-down:
120 Usage: optional
121 Value type: <none>
122 Definition: The specified pins should be configued as pull down.
123
124- bias-pull-up:
125 Usage: optional
126 Value type: <none>
127 Definition: The specified pins should be configued as pull up.
128
129- output-high:
130 Usage: optional
131 Value type: <none>
132 Definition: The specified pins are configured in output mode, driven
133 high.
134 Not valid for sdc pins.
135
136- output-low:
137 Usage: optional
138 Value type: <none>
139 Definition: The specified pins are configured in output mode, driven
140 low.
141 Not valid for sdc pins.
142
143- drive-strength:
144 Usage: optional
145 Value type: <u32>
146 Definition: Selects the drive strength for the specified pins, in mA.
147 Valid values are: 2, 4, 6, 8, 10, 12, 14 and 16
148
149Example:
150
151 tlmm: pinctrl@fd510000 {
152 compatible = "qcom,apq8084-pinctrl";
153 reg = <0xfd510000 0x4000>;
154
155 gpio-controller;
156 #gpio-cells = <2>;
157 interrupt-controller;
158 #interrupt-cells = <2>;
159 interrupts = <0 208 0>;
160
161 uart2: uart2-default {
162 mux {
163 pins = "gpio4", "gpio5";
164 function = "blsp_uart2";
165 };
166
167 tx {
168 pins = "gpio4";
169 drive-strength = <4>;
170 bias-disable;
171 };
172
173 rx {
174 pins = "gpio5";
175 drive-strength = <2>;
176 bias-pull-up;
177 };
178 };
179 };
diff --git a/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt
index 4658b69d4f4d..388b213249fd 100644
--- a/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt
@@ -2,8 +2,8 @@
2 2
3The Rockchip Pinmux Controller, enables the IC 3The Rockchip Pinmux Controller, enables the IC
4to share one PAD to several functional blocks. The sharing is done by 4to share one PAD to several functional blocks. The sharing is done by
5multiplexing the PAD input/output signals. For each PAD there are up to 5multiplexing the PAD input/output signals. For each PAD there are several
64 muxing options with option 0 being the use as a GPIO. 6muxing options with option 0 being the use as a GPIO.
7 7
8Please refer to pinctrl-bindings.txt in this directory for details of the 8Please refer to pinctrl-bindings.txt in this directory for details of the
9common pinctrl bindings used by client devices, including the meaning of the 9common pinctrl bindings used by client devices, including the meaning of the
@@ -58,7 +58,7 @@ Deprecated properties for gpio sub nodes:
58Required properties for pin configuration node: 58Required properties for pin configuration node:
59 - rockchip,pins: 3 integers array, represents a group of pins mux and config 59 - rockchip,pins: 3 integers array, represents a group of pins mux and config
60 setting. The format is rockchip,pins = <PIN_BANK PIN_BANK_IDX MUX &phandle>. 60 setting. The format is rockchip,pins = <PIN_BANK PIN_BANK_IDX MUX &phandle>.
61 The MUX 0 means gpio and MUX 1 to 3 mean the specific device function. 61 The MUX 0 means gpio and MUX 1 to N mean the specific device function.
62 The phandle of a node containing the generic pinconfig options 62 The phandle of a node containing the generic pinconfig options
63 to use, as described in pinctrl-bindings.txt in this directory. 63 to use, as described in pinctrl-bindings.txt in this directory.
64 64
diff --git a/Documentation/devicetree/bindings/pinctrl/ti,omap-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/ti,omap-pinctrl.txt
new file mode 100644
index 000000000000..88c80273da91
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/ti,omap-pinctrl.txt
@@ -0,0 +1,13 @@
1OMAP Pinctrl definitions
2
3Required properties:
4- compatible : Should be one of:
5 "ti,omap2420-padconf" - OMAP2420 compatible pinctrl
6 "ti,omap2430-padconf" - OMAP2430 compatible pinctrl
7 "ti,omap3-padconf" - OMAP3 compatible pinctrl
8 "ti,omap4-padconf" - OMAP4 compatible pinctrl
9 "ti,omap5-padconf" - OMAP5 compatible pinctrl
10 "ti,dra7-padconf" - DRA7 compatible pinctrl
11 "ti,am437-padconf" - AM437x compatible pinctrl
12
13See Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt for further details.
diff --git a/Documentation/devicetree/bindings/power/power_domain.txt b/Documentation/devicetree/bindings/power/power_domain.txt
new file mode 100644
index 000000000000..98c16672ab5f
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/power_domain.txt
@@ -0,0 +1,49 @@
1* Generic PM domains
2
3System on chip designs are often divided into multiple PM domains that can be
4used for power gating of selected IP blocks for power saving by reduced leakage
5current.
6
7This device tree binding can be used to bind PM domain consumer devices with
8their PM domains provided by PM domain providers. A PM domain provider can be
9represented by any node in the device tree and can provide one or more PM
10domains. A consumer node can refer to the provider by a phandle and a set of
11phandle arguments (so called PM domain specifiers) of length specified by the
12#power-domain-cells property in the PM domain provider node.
13
14==PM domain providers==
15
16Required properties:
17 - #power-domain-cells : Number of cells in a PM domain specifier;
18 Typically 0 for nodes representing a single PM domain and 1 for nodes
19 providing multiple PM domains (e.g. power controllers), but can be any value
20 as specified by device tree binding documentation of particular provider.
21
22Example:
23
24 power: power-controller@12340000 {
25 compatible = "foo,power-controller";
26 reg = <0x12340000 0x1000>;
27 #power-domain-cells = <1>;
28 };
29
30The node above defines a power controller that is a PM domain provider and
31expects one cell as its phandle argument.
32
33==PM domain consumers==
34
35Required properties:
36 - power-domains : A phandle and PM domain specifier as defined by bindings of
37 the power controller specified by phandle.
38
39Example:
40
41 leaky-device@12350000 {
42 compatible = "foo,i-leak-current";
43 reg = <0x12350000 0x1000>;
44 power-domains = <&power 0>;
45 };
46
47The node above defines a typical PM domain consumer device, which is located
48inside a PM domain with index 0 of a power controller represented by a node
49with the label "power".
diff --git a/Documentation/devicetree/bindings/power/reset/ltc2952-poweroff.txt b/Documentation/devicetree/bindings/power/reset/ltc2952-poweroff.txt
new file mode 100644
index 000000000000..0c94c637f63b
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/reset/ltc2952-poweroff.txt
@@ -0,0 +1,26 @@
1Binding for the LTC2952 PowerPath controller
2
3This chip is used to externally trigger a system shut down. Once the trigger has
4been sent, the chips' watchdog has to be reset to gracefully shut down.
5If the Linux systems decides to shut down it powers off the platform via the
6kill signal.
7
8Required properties:
9
10- compatible: Must contain: "lltc,ltc2952"
11- trigger-gpios: phandle + gpio-specifier for the GPIO connected to the
12 chip's trigger line
13- watchdog-gpios: phandle + gpio-specifier for the GPIO connected to the
14 chip's watchdog line
15- kill-gpios: phandle + gpio-specifier for the GPIO connected to the
16 chip's kill line
17
18Example:
19
20ltc2952 {
21 compatible = "lltc,ltc2952";
22
23 trigger-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
24 watchdog-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
25 kill-gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
26};
diff --git a/Documentation/devicetree/bindings/power/reset/st-reset.txt b/Documentation/devicetree/bindings/power/reset/st-reset.txt
new file mode 100644
index 000000000000..809af54f02f3
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/reset/st-reset.txt
@@ -0,0 +1,11 @@
1*Device-Tree bindings for ST SW reset functionality
2
3Required properties:
4- compatible: should be "st,<chip>-restart".
5- st,syscfg: should be a phandle of the syscfg node.
6
7Example node:
8 restart {
9 compatible = "st,stih416-restart";
10 st,syscfg = <&syscfg_sbc>;
11 };
diff --git a/Documentation/devicetree/bindings/power/reset/syscon-reboot.txt b/Documentation/devicetree/bindings/power/reset/syscon-reboot.txt
new file mode 100644
index 000000000000..11906316b43d
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/reset/syscon-reboot.txt
@@ -0,0 +1,23 @@
1Generic SYSCON mapped register reset driver
2
3This is a generic reset driver using syscon to map the reset register.
4The reset is generally performed with a write to the reset register
5defined by the register map pointed by syscon reference plus the offset
6with the mask defined in the reboot node.
7
8Required properties:
9- compatible: should contain "syscon-reboot"
10- regmap: this is phandle to the register map node
11- offset: offset in the register map for the reboot register (in bytes)
12- mask: the reset value written to the reboot register (32 bit access)
13
14Default will be little endian mode, 32 bit access only.
15
16Examples:
17
18 reboot {
19 compatible = "syscon-reboot";
20 regmap = <&regmapnode>;
21 offset = <0x0>;
22 mask = <0x1>;
23 };
diff --git a/Documentation/devicetree/bindings/power/rockchip-io-domain.txt b/Documentation/devicetree/bindings/power/rockchip-io-domain.txt
new file mode 100644
index 000000000000..6fbf6e7ecde6
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/rockchip-io-domain.txt
@@ -0,0 +1,83 @@
1Rockchip SRAM for IO Voltage Domains:
2-------------------------------------
3
4IO domain voltages on some Rockchip SoCs are variable but need to be
5kept in sync between the regulators and the SoC using a special
6register.
7
8A specific example using rk3288:
9- If the regulator hooked up to a pin like SDMMC0_VDD is 3.3V then
10 bit 7 of GRF_IO_VSEL needs to be 0. If the regulator hooked up to
11 that same pin is 1.8V then bit 7 of GRF_IO_VSEL needs to be 1.
12
13Said another way, this driver simply handles keeping bits in the SoC's
14general register file (GRF) in sync with the actual value of a voltage
15hooked up to the pins.
16
17Note that this driver specifically doesn't include:
18- any logic for deciding what voltage we should set regulators to
19- any logic for deciding whether regulators (or internal SoC blocks)
20 should have power or not have power
21
22If there were some other software that had the smarts of making
23decisions about regulators, it would work in conjunction with this
24driver. When that other software adjusted a regulator's voltage then
25this driver would handle telling the SoC about it. A good example is
26vqmmc for SD. In that case the dw_mmc driver simply is told about a
27regulator. It changes the regulator between 3.3V and 1.8V at the
28right time. This driver notices the change and makes sure that the
29SoC is on the same page.
30
31
32Required properties:
33- compatible: should be one of:
34 - "rockchip,rk3188-io-voltage-domain" for rk3188
35 - "rockchip,rk3288-io-voltage-domain" for rk3288
36- rockchip,grf: phandle to the syscon managing the "general register files"
37
38
39You specify supplies using the standard regulator bindings by including
40a phandle the the relevant regulator. All specified supplies must be able
41to report their voltage. The IO Voltage Domain for any non-specified
42supplies will be not be touched.
43
44Possible supplies for rk3188:
45- ap0-supply: The supply connected to AP0_VCC.
46- ap1-supply: The supply connected to AP1_VCC.
47- cif-supply: The supply connected to CIF_VCC.
48- flash-supply: The supply connected to FLASH_VCC.
49- lcdc0-supply: The supply connected to LCD0_VCC.
50- lcdc1-supply: The supply connected to LCD1_VCC.
51- vccio0-supply: The supply connected to VCCIO0.
52- vccio1-supply: The supply connected to VCCIO1.
53 Sometimes also labeled VCCIO1 and VCCIO2.
54
55Possible supplies for rk3288:
56- audio-supply: The supply connected to APIO4_VDD.
57- bb-supply: The supply connected to APIO5_VDD.
58- dvp-supply: The supply connected to DVPIO_VDD.
59- flash0-supply: The supply connected to FLASH0_VDD. Typically for eMMC
60- flash1-supply: The supply connected to FLASH1_VDD. Also known as SDIO1.
61- gpio30-supply: The supply connected to APIO1_VDD.
62- gpio1830 The supply connected to APIO2_VDD.
63- lcdc-supply: The supply connected to LCDC_VDD.
64- sdcard-supply: The supply connected to SDMMC0_VDD.
65- wifi-supply: The supply connected to APIO3_VDD. Also known as SDIO0.
66
67
68Example:
69
70 io-domains {
71 compatible = "rockchip,rk3288-io-voltage-domain";
72 rockchip,grf = <&grf>;
73
74 audio-supply = <&vcc18_codec>;
75 bb-supply = <&vcc33_io>;
76 dvp-supply = <&vcc_18>;
77 flash0-supply = <&vcc18_flashio>;
78 gpio1830-supply = <&vcc33_io>;
79 gpio30-supply = <&vcc33_pmuio>;
80 lcdc-supply = <&vcc33_lcd>;
81 sdcard-supply = <&vccio_sd>;
82 wifi-supply = <&vcc18_wl>;
83 };
diff --git a/Documentation/devicetree/bindings/power_supply/charger-manager.txt b/Documentation/devicetree/bindings/power_supply/charger-manager.txt
index 2b33750e3db2..ec4fe9de3137 100644
--- a/Documentation/devicetree/bindings/power_supply/charger-manager.txt
+++ b/Documentation/devicetree/bindings/power_supply/charger-manager.txt
@@ -24,7 +24,7 @@ Optional properties :
24 - cm-thermal-zone : name of external thermometer's thermal zone 24 - cm-thermal-zone : name of external thermometer's thermal zone
25 - cm-battery-* : threshold battery temperature for charging 25 - cm-battery-* : threshold battery temperature for charging
26 -cold : critical cold temperature of battery for charging 26 -cold : critical cold temperature of battery for charging
27 -cold-in-minus : flag that cold temerature is in minus degree 27 -cold-in-minus : flag that cold temperature is in minus degrees
28 -hot : critical hot temperature of battery for charging 28 -hot : critical hot temperature of battery for charging
29 -temp-diff : temperature difference to allow recharging 29 -temp-diff : temperature difference to allow recharging
30 - cm-dis/charging-max = limits of charging duration 30 - cm-dis/charging-max = limits of charging duration
diff --git a/Documentation/devicetree/bindings/regmap/regmap.txt b/Documentation/devicetree/bindings/regmap/regmap.txt
new file mode 100644
index 000000000000..b494f8b8ef72
--- /dev/null
+++ b/Documentation/devicetree/bindings/regmap/regmap.txt
@@ -0,0 +1,47 @@
1Device-Tree binding for regmap
2
3The endianness mode of CPU & Device scenarios:
4Index Device Endianness properties
5---------------------------------------------------
61 BE 'big-endian'
72 LE 'little-endian'
8
9For one device driver, which will run in different scenarios above
10on different SoCs using the devicetree, we need one way to simplify
11this.
12
13Required properties:
14- {big,little}-endian: these are boolean properties, if absent
15 meaning that the CPU and the Device are in the same endianness mode,
16 these properties are for register values and all the buffers only.
17
18Examples:
19Scenario 1 : CPU in LE mode & device in LE mode.
20dev: dev@40031000 {
21 compatible = "name";
22 reg = <0x40031000 0x1000>;
23 ...
24};
25
26Scenario 2 : CPU in LE mode & device in BE mode.
27dev: dev@40031000 {
28 compatible = "name";
29 reg = <0x40031000 0x1000>;
30 ...
31 big-endian;
32};
33
34Scenario 3 : CPU in BE mode & device in BE mode.
35dev: dev@40031000 {
36 compatible = "name";
37 reg = <0x40031000 0x1000>;
38 ...
39};
40
41Scenario 4 : CPU in BE mode & device in LE mode.
42dev: dev@40031000 {
43 compatible = "name";
44 reg = <0x40031000 0x1000>;
45 ...
46 little-endian;
47};
diff --git a/Documentation/devicetree/bindings/regulator/da9210.txt b/Documentation/devicetree/bindings/regulator/da9210.txt
index f120f229d67d..3297c53cb915 100644
--- a/Documentation/devicetree/bindings/regulator/da9210.txt
+++ b/Documentation/devicetree/bindings/regulator/da9210.txt
@@ -2,7 +2,7 @@
2 2
3Required properties: 3Required properties:
4 4
5- compatible: must be "diasemi,da9210" 5- compatible: must be "dlg,da9210"
6- reg: the i2c slave address of the regulator. It should be 0x68. 6- reg: the i2c slave address of the regulator. It should be 0x68.
7 7
8Any standard regulator properties can be used to configure the single da9210 8Any standard regulator properties can be used to configure the single da9210
@@ -11,7 +11,7 @@ DCDC.
11Example: 11Example:
12 12
13 da9210@68 { 13 da9210@68 {
14 compatible = "diasemi,da9210"; 14 compatible = "dlg,da9210";
15 reg = <0x68>; 15 reg = <0x68>;
16 16
17 regulator-min-microvolt = <900000>; 17 regulator-min-microvolt = <900000>;
diff --git a/Documentation/devicetree/bindings/regulator/da9211.txt b/Documentation/devicetree/bindings/regulator/da9211.txt
new file mode 100644
index 000000000000..240019a82f9a
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/da9211.txt
@@ -0,0 +1,63 @@
1* Dialog Semiconductor DA9211/DA9213 Voltage Regulator
2
3Required properties:
4- compatible: "dlg,da9211" or "dlg,da9213".
5- reg: I2C slave address, usually 0x68.
6- interrupts: the interrupt outputs of the controller
7- regulators: A node that houses a sub-node for each regulator within the
8 device. Each sub-node is identified using the node's name, with valid
9 values listed below. The content of each sub-node is defined by the
10 standard binding for regulators; see regulator.txt.
11 BUCKA and BUCKB.
12
13Optional properties:
14- Any optional property defined in regulator.txt
15
16Example 1) DA9211
17
18 pmic: da9211@68 {
19 compatible = "dlg,da9211";
20 reg = <0x68>;
21 interrupts = <3 27>;
22
23 regulators {
24 BUCKA {
25 regulator-name = "VBUCKA";
26 regulator-min-microvolt = < 300000>;
27 regulator-max-microvolt = <1570000>;
28 regulator-min-microamp = <2000000>;
29 regulator-max-microamp = <5000000>;
30 };
31 BUCKB {
32 regulator-name = "VBUCKB";
33 regulator-min-microvolt = < 300000>;
34 regulator-max-microvolt = <1570000>;
35 regulator-min-microamp = <2000000>;
36 regulator-max-microamp = <5000000>;
37 };
38 };
39 };
40
41Example 2) DA92113
42 pmic: da9213@68 {
43 compatible = "dlg,da9213";
44 reg = <0x68>;
45 interrupts = <3 27>;
46
47 regulators {
48 BUCKA {
49 regulator-name = "VBUCKA";
50 regulator-min-microvolt = < 300000>;
51 regulator-max-microvolt = <1570000>;
52 regulator-min-microamp = <3000000>;
53 regulator-max-microamp = <6000000>;
54 };
55 BUCKB {
56 regulator-name = "VBUCKB";
57 regulator-min-microvolt = < 300000>;
58 regulator-max-microvolt = <1570000>;
59 regulator-min-microamp = <3000000>;
60 regulator-max-microamp = <6000000>;
61 };
62 };
63 };
diff --git a/Documentation/devicetree/bindings/regulator/fan53555.txt b/Documentation/devicetree/bindings/regulator/fan53555.txt
new file mode 100644
index 000000000000..54a3f2c80e3a
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/fan53555.txt
@@ -0,0 +1,23 @@
1Binding for Fairchild FAN53555 regulators
2
3Required properties:
4 - compatible: one of "fcs,fan53555", "silergy,syr827", "silergy,syr828"
5 - reg: I2C address
6
7Optional properties:
8 - fcs,suspend-voltage-selector: declare which of the two available
9 voltage selector registers should be used for the suspend
10 voltage. The other one is used for the runtime voltage setting
11 Possible values are either <0> or <1>
12 - vin-supply: regulator supplying the vin pin
13
14Example:
15
16 regulator@40 {
17 compatible = "fcs,fan53555";
18 regulator-name = "fan53555";
19 regulator-min-microvolt = <1000000>;
20 regulator-max-microvolt = <1800000>;
21 vin-supply = <&parent_reg>;
22 fcs,suspend-voltage-selector = <1>;
23 };
diff --git a/Documentation/devicetree/bindings/regulator/isl9305.txt b/Documentation/devicetree/bindings/regulator/isl9305.txt
new file mode 100644
index 000000000000..a626fc1bbf0d
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/isl9305.txt
@@ -0,0 +1,36 @@
1Intersil ISL9305/ISL9305H voltage regulator
2
3Required properties:
4
5- compatible: "isl,isl9305" or "isl,isl9305h"
6- reg: I2C slave address, usually 0x68.
7- regulators: A node that houses a sub-node for each regulator within the
8 device. Each sub-node is identified using the node's name, with valid
9 values being "dcd1", "dcd2", "ldo1" and "ldo2". The content of each sub-node
10 is defined by the standard binding for regulators; see regulator.txt.
11- VINDCD1-supply: A phandle to a regulator node supplying VINDCD1.
12 VINDCD2-supply: A phandle to a regulator node supplying VINDCD2.
13 VINLDO1-supply: A phandle to a regulator node supplying VINLDO1.
14 VINLDO2-supply: A phandle to a regulator node supplying VINLDO2.
15
16Optional properties:
17- Per-regulator optional properties are defined in regulator.txt
18
19Example
20
21 pmic: isl9305@68 {
22 compatible = "isl,isl9305";
23 reg = <0x68>;
24
25 VINDCD1-supply = <&system_power>;
26 VINDCD2-supply = <&system_power>;
27 VINLDO1-supply = <&system_power>;
28 VINLDO2-supply = <&system_power>;
29
30 regulators {
31 dcd1 {
32 regulator-name = "VDD_DSP";
33 regulator-always-on;
34 };
35 };
36 };
diff --git a/Documentation/devicetree/bindings/regulator/max1586-regulator.txt b/Documentation/devicetree/bindings/regulator/max1586-regulator.txt
new file mode 100644
index 000000000000..c050c1744cb8
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/max1586-regulator.txt
@@ -0,0 +1,28 @@
1Maxim MAX1586 voltage regulator
2
3Required properties:
4- compatible: must be "maxim,max1586"
5- reg: I2C slave address, usually 0x14
6- v3-gain: integer specifying the V3 gain as per datasheet
7 (1 + R24/R25 + R24/185.5kOhm)
8- any required generic properties defined in regulator.txt
9
10Example:
11
12 i2c_master {
13 max1586@14 {
14 compatible = "maxim,max1586";
15 reg = <0x14>;
16 v3-gain = <1000000>;
17
18 regulators {
19 vcc_core: v3 {
20 regulator-name = "vcc_core";
21 regulator-compatible = "Output_V3";
22 regulator-min-microvolt = <1000000>;
23 regulator-max-microvolt = <1705000>;
24 regulator-always-on;
25 };
26 };
27 };
28 };
diff --git a/Documentation/devicetree/bindings/regulator/max77802.txt b/Documentation/devicetree/bindings/regulator/max77802.txt
new file mode 100644
index 000000000000..5aeaffc0f1f0
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/max77802.txt
@@ -0,0 +1,53 @@
1Binding for Maxim MAX77802 regulators
2
3This is a part of device tree bindings of MAX77802 multi-function device.
4More information can be found in bindings/mfd/max77802.txt file.
5
6The MAX77802 PMIC has 10 high-efficiency Buck and 32 Low-dropout (LDO)
7regulators that can be controlled over I2C.
8
9Following properties should be present in main device node of the MFD chip.
10
11Optional node:
12- regulators : The regulators of max77802 have to be instantiated
13 under subnode named "regulators" using the following format.
14
15 regulator-name {
16 standard regulator constraints....
17 };
18 refer Documentation/devicetree/bindings/regulator/regulator.txt
19
20The regulator node name should be initialized with a string to get matched
21with their hardware counterparts as follow. The valid names are:
22
23 -LDOn : for LDOs, where n can lie in ranges 1-15, 17-21, 23-30
24 and 32-35.
25 example: LDO1, LDO2, LDO35.
26 -BUCKn : for BUCKs, where n can lie in range 1 to 10.
27 example: BUCK1, BUCK5, BUCK10.
28Example:
29
30 max77802@09 {
31 compatible = "maxim,max77802";
32 interrupt-parent = <&wakeup_eint>;
33 interrupts = <26 0>;
34 reg = <0x09>;
35 #address-cells = <1>;
36 #size-cells = <0>;
37
38 regulators {
39 ldo11_reg: LDO11 {
40 regulator-name = "vdd_ldo11";
41 regulator-min-microvolt = <1900000>;
42 regulator-max-microvolt = <1900000>;
43 regulator-always-on;
44 };
45
46 buck1_reg: BUCK1 {
47 regulator-name = "vdd_mif";
48 regulator-min-microvolt = <950000>;
49 regulator-max-microvolt = <1300000>;
50 regulator-always-on;
51 regulator-boot-on;
52 };
53 };
diff --git a/Documentation/devicetree/bindings/regulator/pwm-regulator.txt b/Documentation/devicetree/bindings/regulator/pwm-regulator.txt
new file mode 100644
index 000000000000..ce91f61feb12
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/pwm-regulator.txt
@@ -0,0 +1,27 @@
1pwm regulator bindings
2
3Required properties:
4- compatible: Should be "pwm-regulator"
5- pwms: OF device-tree PWM specification (see PWM binding pwm.txt)
6- voltage-table: voltage and duty table, include 2 members in each set of
7 brackets, first one is voltage(unit: uv), the next is duty(unit: percent)
8
9Any property defined as part of the core regulator binding defined in
10regulator.txt can also be used.
11
12Example:
13 pwm_regulator {
14 compatible = "pwm-regulator;
15 pwms = <&pwm1 0 8448 0>;
16
17 voltage-table = <1114000 0>,
18 <1095000 10>,
19 <1076000 20>,
20 <1056000 30>,
21 <1036000 40>,
22 <1016000 50>;
23
24 regulator-min-microvolt = <1016000>;
25 regulator-max-microvolt = <1114000>;
26 regulator-name = "vdd_logic";
27 };
diff --git a/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
new file mode 100644
index 000000000000..882455e9b36d
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/sky81452-regulator.txt
@@ -0,0 +1,16 @@
1SKY81452 voltage regulator
2
3Required properties:
4- any required generic properties defined in regulator.txt
5
6Optional properties:
7- any available generic properties defined in regulator.txt
8
9Example:
10
11 regulator {
12 /* generic regulator properties */
13 regulator-name = "touch_en";
14 regulator-min-microvolt = <4500000>;
15 regulator-max-microvolt = <8000000>;
16 };
diff --git a/Documentation/devicetree/bindings/regulator/tps65090.txt b/Documentation/devicetree/bindings/regulator/tps65090.txt
index 340980239ea9..ca69f5e3040c 100644
--- a/Documentation/devicetree/bindings/regulator/tps65090.txt
+++ b/Documentation/devicetree/bindings/regulator/tps65090.txt
@@ -45,8 +45,8 @@ Example:
45 infet5-supply = <&some_reg>; 45 infet5-supply = <&some_reg>;
46 infet6-supply = <&some_reg>; 46 infet6-supply = <&some_reg>;
47 infet7-supply = <&some_reg>; 47 infet7-supply = <&some_reg>;
48 vsys_l1-supply = <&some_reg>; 48 vsys-l1-supply = <&some_reg>;
49 vsys_l2-supply = <&some_reg>; 49 vsys-l2-supply = <&some_reg>;
50 50
51 regulators { 51 regulators {
52 dcdc1 { 52 dcdc1 {
diff --git a/Documentation/devicetree/bindings/rng/apm,rng.txt b/Documentation/devicetree/bindings/rng/apm,rng.txt
new file mode 100644
index 000000000000..4dde4b06cdd9
--- /dev/null
+++ b/Documentation/devicetree/bindings/rng/apm,rng.txt
@@ -0,0 +1,17 @@
1APM X-Gene SoC random number generator.
2
3Required properties:
4
5- compatible : should be "apm,xgene-rng"
6- reg : specifies base physical address and size of the registers map
7- clocks : phandle to clock-controller plus clock-specifier pair
8- interrupts : specify the fault interrupt for the RNG device
9
10Example:
11
12 rng: rng@10520000 {
13 compatible = "apm,xgene-rng";
14 reg = <0x0 0x10520000 0x0 0x100>;
15 interrupts = <0x0 0x41 0x4>;
16 clocks = <&rngpkaclk 0>;
17 };
diff --git a/Documentation/devicetree/bindings/rtc/dallas,ds1339.txt b/Documentation/devicetree/bindings/rtc/dallas,ds1339.txt
new file mode 100644
index 000000000000..916f57601a8f
--- /dev/null
+++ b/Documentation/devicetree/bindings/rtc/dallas,ds1339.txt
@@ -0,0 +1,18 @@
1* Dallas DS1339 I2C Serial Real-Time Clock
2
3Required properties:
4- compatible: Should contain "dallas,ds1339".
5- reg: I2C address for chip
6
7Optional properties:
8- trickle-resistor-ohms : Selected resistor for trickle charger
9 Values usable for ds1339 are 250, 2000, 4000
10 Should be given if trickle charger should be enabled
11- trickle-diode-disable : Do not use internal trickle charger diode
12 Should be given if internal trickle charger diode should be disabled
13Example:
14 ds1339: rtc@68 {
15 compatible = "dallas,ds1339";
16 trickle-resistor-ohms = <250>;
17 reg = <0x68>;
18 };
diff --git a/Documentation/devicetree/bindings/rtc/s3c-rtc.txt b/Documentation/devicetree/bindings/rtc/s3c-rtc.txt
index 7ac7259fe9ea..ab757b84daa7 100644
--- a/Documentation/devicetree/bindings/rtc/s3c-rtc.txt
+++ b/Documentation/devicetree/bindings/rtc/s3c-rtc.txt
@@ -3,7 +3,10 @@
3Required properties: 3Required properties:
4- compatible: should be one of the following. 4- compatible: should be one of the following.
5 * "samsung,s3c2410-rtc" - for controllers compatible with s3c2410 rtc. 5 * "samsung,s3c2410-rtc" - for controllers compatible with s3c2410 rtc.
6 * "samsung,s3c2416-rtc" - for controllers compatible with s3c2416 rtc.
7 * "samsung,s3c2443-rtc" - for controllers compatible with s3c2443 rtc.
6 * "samsung,s3c6410-rtc" - for controllers compatible with s3c6410 rtc. 8 * "samsung,s3c6410-rtc" - for controllers compatible with s3c6410 rtc.
9 * "samsung,exynos3250-rtc" - for controllers compatible with exynos3250 rtc.
7- 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
8 region. 11 region.
9- interrupts: Two interrupt numbers to the cpu should be specified. First 12- interrupts: Two interrupt numbers to the cpu should be specified. First
diff --git a/Documentation/devicetree/bindings/rtc/sun6i-rtc.txt b/Documentation/devicetree/bindings/rtc/sun6i-rtc.txt
new file mode 100644
index 000000000000..f007e428a1ab
--- /dev/null
+++ b/Documentation/devicetree/bindings/rtc/sun6i-rtc.txt
@@ -0,0 +1,17 @@
1* sun6i Real Time Clock
2
3RTC controller for the Allwinner A31
4
5Required properties:
6- compatible : Should be "allwinner,sun6i-a31-rtc"
7- reg : physical base address of the controller and length of
8 memory mapped region.
9- interrupts : IRQ lines for the RTC alarm 0 and alarm 1, in that order.
10
11Example:
12
13rtc: rtc@01f00000 {
14 compatible = "allwinner,sun6i-a31-rtc";
15 reg = <0x01f00000 0x54>;
16 interrupts = <0 40 4>, <0 41 4>;
17};
diff --git a/Documentation/devicetree/bindings/serial/cirrus,clps711x-uart.txt b/Documentation/devicetree/bindings/serial/cirrus,clps711x-uart.txt
index 12f3cf834deb..caaeb2583579 100644
--- a/Documentation/devicetree/bindings/serial/cirrus,clps711x-uart.txt
+++ b/Documentation/devicetree/bindings/serial/cirrus,clps711x-uart.txt
@@ -8,7 +8,8 @@ Required properties:
8- syscon: Phandle to SYSCON node, which contain UART control bits. 8- syscon: Phandle to SYSCON node, which contain UART control bits.
9 9
10Optional properties: 10Optional properties:
11- uart-use-ms: Indicate the UART has modem signal (DCD, DSR, CTS). 11- {rts,cts,dtr,dsr,rng,dcd}-gpios: specify a GPIO for RTS/CTS/DTR/DSR/RI/DCD
12 line respectively.
12 13
13Note: Each UART port should have an alias correctly numbered 14Note: Each UART port should have an alias correctly numbered
14in "aliases" node. 15in "aliases" node.
@@ -24,5 +25,7 @@ Example:
24 interrupts = <12 13>; 25 interrupts = <12 13>;
25 clocks = <&clks 11>; 26 clocks = <&clks 11>;
26 syscon = <&syscon1>; 27 syscon = <&syscon1>;
27 uart-use-ms; 28 cts-gpios = <&sysgpio 0 GPIO_ACTIVE_LOW>;
29 dsr-gpios = <&sysgpio 1 GPIO_ACTIVE_LOW>;
30 dcd-gpios = <&sysgpio 2 GPIO_ACTIVE_LOW>;
28 }; 31 };
diff --git a/Documentation/devicetree/bindings/serial/mtk-uart.txt b/Documentation/devicetree/bindings/serial/mtk-uart.txt
new file mode 100644
index 000000000000..48358a33ea7d
--- /dev/null
+++ b/Documentation/devicetree/bindings/serial/mtk-uart.txt
@@ -0,0 +1,22 @@
1* Mediatek Universal Asynchronous Receiver/Transmitter (UART)
2
3Required properties:
4- compatible should contain:
5 * "mediatek,mt6589-uart" for MT6589 compatible UARTS
6 * "mediatek,mt6582-uart" for MT6582 compatible UARTS
7 * "mediatek,mt6577-uart" for all compatible UARTS (MT6589, MT6582, MT6577)
8
9- reg: The base address of the UART register bank.
10
11- interrupts: A single interrupt specifier.
12
13- clocks: Clock driving the hardware.
14
15Example:
16
17 uart0: serial@11006000 {
18 compatible = "mediatek,mt6589-uart", "mediatek,mt6577-uart";
19 reg = <0x11006000 0x400>;
20 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>;
21 clocks = <&uart_clk>;
22 };
diff --git a/Documentation/devicetree/bindings/serial/of-serial.txt b/Documentation/devicetree/bindings/serial/of-serial.txt
index 77054772a8f4..8c4fd0332028 100644
--- a/Documentation/devicetree/bindings/serial/of-serial.txt
+++ b/Documentation/devicetree/bindings/serial/of-serial.txt
@@ -14,6 +14,7 @@ Required properties:
14 - "altr,16550-FIFO32" 14 - "altr,16550-FIFO32"
15 - "altr,16550-FIFO64" 15 - "altr,16550-FIFO64"
16 - "altr,16550-FIFO128" 16 - "altr,16550-FIFO128"
17 - "fsl,16550-FIFO64"
17 - "serial" if the port type is unknown. 18 - "serial" if the port type is unknown.
18- reg : offset and length of the register set for the device. 19- reg : offset and length of the register set for the device.
19- interrupts : should contain uart interrupt. 20- interrupts : should contain uart interrupt.
@@ -37,7 +38,6 @@ Optional properties:
37- auto-flow-control: one way to enable automatic flow control support. The 38- auto-flow-control: one way to enable automatic flow control support. The
38 driver is allowed to detect support for the capability even without this 39 driver is allowed to detect support for the capability even without this
39 property. 40 property.
40- has-hw-flow-control: the hardware has flow control capability.
41 41
42Example: 42Example:
43 43
diff --git a/Documentation/devicetree/bindings/serial/via,vt8500-uart.txt b/Documentation/devicetree/bindings/serial/via,vt8500-uart.txt
deleted file mode 100644
index 5feef1ef167d..000000000000
--- a/Documentation/devicetree/bindings/serial/via,vt8500-uart.txt
+++ /dev/null
@@ -1,17 +0,0 @@
1VIA/Wondermedia VT8500 UART Controller
2-----------------------------------------------------
3
4Required properties:
5- compatible : "via,vt8500-uart"
6- reg : Should contain 1 register ranges(address and length)
7- interrupts : UART interrupt
8- clocks : phandle to the uart source clock (usually a 24Mhz fixed clock)
9
10Example:
11
12 uart@d8210000 {
13 compatible = "via,vt8500-uart";
14 reg = <0xd8210000 0x1040>;
15 interrupts = <47>;
16 clocks = <&ref24>;
17 };
diff --git a/Documentation/devicetree/bindings/serial/vt8500-uart.txt b/Documentation/devicetree/bindings/serial/vt8500-uart.txt
index 795c393d09c4..2b64e6107fb3 100644
--- a/Documentation/devicetree/bindings/serial/vt8500-uart.txt
+++ b/Documentation/devicetree/bindings/serial/vt8500-uart.txt
@@ -1,7 +1,8 @@
1* VIA VT8500 and WonderMedia WM8xxx UART Controller 1* VIA VT8500 and WonderMedia WM8xxx UART Controller
2 2
3Required properties: 3Required properties:
4- compatible: should be "via,vt8500-uart" 4- compatible: should be "via,vt8500-uart" (for VIA/WonderMedia chips up to and
5 including WM8850/WM8950), or "wm,wm8880-uart" (for WM8880 and later)
5 6
6- reg: base physical address of the controller and length of memory mapped 7- reg: base physical address of the controller and length of memory mapped
7 region. 8 region.
diff --git a/Documentation/devicetree/bindings/soc/ti/keystone-navigator-dma.txt b/Documentation/devicetree/bindings/soc/ti/keystone-navigator-dma.txt
new file mode 100644
index 000000000000..337c4ea5c57b
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/ti/keystone-navigator-dma.txt
@@ -0,0 +1,111 @@
1Keystone Navigator DMA Controller
2
3This document explains the device tree bindings for the packet dma
4on keystone devices. The Keystone Navigator DMA driver sets up the dma
5channels and flows for the QMSS(Queue Manager SubSystem) who triggers
6the actual data movements across clients using destination queues. Every
7client modules like NETCP(Network Coprocessor), SRIO(Serial Rapid IO),
8CRYPTO Engines etc has its own instance of dma hardware. QMSS has also
9an internal packet DMA module which is used as an infrastructure DMA
10with zero copy.
11
12Navigator DMA cloud layout:
13 ------------------
14 | Navigator DMAs |
15 ------------------
16 |
17 |-> DMA instance #0
18 |
19 |-> DMA instance #1
20 .
21 .
22 |
23 |-> DMA instance #n
24
25Navigator DMA properties:
26Required properties:
27 - compatible: Should be "ti,keystone-navigator-dma"
28 - clocks: phandle to dma instances clocks. The clock handles can be as
29 many as the dma instances. The order should be maintained as per
30 the dma instances.
31 - ti,navigator-cloud-address: Should contain base address for the multi-core
32 navigator cloud and number of addresses depends on SOC integration
33 configuration.. Navigator cloud global address needs to be programmed
34 into DMA and the DMA uses it as the physical addresses to reach queue
35 managers. Note that these addresses though points to queue managers,
36 they are relevant only from DMA perspective. The QMSS may not choose to
37 use them since it has a different address space view to reach all
38 its components.
39
40DMA instance properties:
41Required properties:
42 - reg: Should contain register location and length of the following dma
43 register regions. Register regions should be specified in the following
44 order.
45 - Global control register region (global).
46 - Tx DMA channel configuration register region (txchan).
47 - Rx DMA channel configuration register region (rxchan).
48 - Tx DMA channel Scheduler configuration register region (txsched).
49 - Rx DMA flow configuration register region (rxflow).
50
51Optional properties:
52 - reg-names: Names for the register regions.
53 - ti,enable-all: Enable all DMA channels vs clients opening specific channels
54 what they need. This property is useful for the userspace fast path
55 case where the linux drivers enables the channels used by userland
56 stack.
57 - ti,loop-back: To loopback Tx streaming I/F to Rx streaming I/F. Used for
58 infrastructure transfers.
59 - ti,rx-retry-timeout: Number of dma cycles to wait before retry on buffer
60 starvation.
61
62Example:
63
64 knav_dmas: knav_dmas@0 {
65 compatible = "ti,keystone-navigator-dma";
66 clocks = <&papllclk>, <&clkxge>;
67 #address-cells = <1>;
68 #size-cells = <1>;
69 ranges;
70 ti,navigator-cloud-address = <0x23a80000 0x23a90000
71 0x23aa0000 0x23ab0000>;
72
73 dma_gbe: dma_gbe@0 {
74 reg = <0x2004000 0x100>,
75 <0x2004400 0x120>,
76 <0x2004800 0x300>,
77 <0x2004c00 0x120>,
78 <0x2005000 0x400>;
79 reg-names = "global", "txchan", "rxchan",
80 "txsched", "rxflow";
81 };
82
83 dma_xgbe: dma_xgbe@0 {
84 reg = <0x2fa1000 0x100>,
85 <0x2fa1400 0x200>,
86 <0x2fa1800 0x200>,
87 <0x2fa1c00 0x200>,
88 <0x2fa2000 0x400>;
89 reg-names = "global", "txchan", "rxchan",
90 "txsched", "rxflow";
91 };
92 };
93
94Navigator DMA client:
95Required properties:
96 - ti,navigator-dmas: List of one or more DMA specifiers, each consisting of
97 - A phandle pointing to DMA instance node
98 - A DMA channel number as a phandle arg.
99 - ti,navigator-dma-names: Contains dma channel name for each DMA specifier in
100 the 'ti,navigator-dmas' property.
101
102Example:
103
104 netcp: netcp@2090000 {
105 ..
106 ti,navigator-dmas = <&dma_gbe 22>,
107 <&dma_gbe 23>,
108 <&dma_gbe 8>;
109 ti,navigator-dma-names = "netrx0", "netrx1", "nettx";
110 ..
111 };
diff --git a/Documentation/devicetree/bindings/soc/ti/keystone-navigator-qmss.txt b/Documentation/devicetree/bindings/soc/ti/keystone-navigator-qmss.txt
new file mode 100644
index 000000000000..d8e8cdb733f9
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/ti/keystone-navigator-qmss.txt
@@ -0,0 +1,232 @@
1* Texas Instruments Keystone Navigator Queue Management SubSystem driver
2
3The QMSS (Queue Manager Sub System) found on Keystone SOCs is one of
4the main hardware sub system which forms the backbone of the Keystone
5multi-core Navigator. QMSS consist of queue managers, packed-data structure
6processors(PDSP), linking RAM, descriptor pools and infrastructure
7Packet DMA.
8The Queue Manager is a hardware module that is responsible for accelerating
9management of the packet queues. Packets are queued/de-queued by writing or
10reading descriptor address to a particular memory mapped location. The PDSPs
11perform QMSS related functions like accumulation, QoS, or event management.
12Linking RAM registers are used to link the descriptors which are stored in
13descriptor RAM. Descriptor RAM is configurable as internal or external memory.
14The QMSS driver manages the PDSP setups, linking RAM regions,
15queue pool management (allocation, push, pop and notify) and descriptor
16pool management.
17
18
19Required properties:
20- compatible : Must be "ti,keystone-navigator-qmss";
21- clocks : phandle to the reference clock for this device.
22- queue-range : <start number> total range of queue numbers for the device.
23- linkram0 : <address size> for internal link ram, where size is the total
24 link ram entries.
25- linkram1 : <address size> for external link ram, where size is the total
26 external link ram entries. If the address is specified as "0"
27 driver will allocate memory.
28- qmgrs : child node describing the individual queue managers on the
29 SoC. On keystone 1 devices there should be only one node.
30 On keystone 2 devices there can be more than 1 node.
31 -- managed-queues : the actual queues managed by each queue manager
32 instance, specified as <"base queue #" "# of queues">.
33 -- reg : Address and size of the register set for the device.
34 Register regions should be specified in the following
35 order
36 - Queue Peek region.
37 - Queue status RAM.
38 - Queue configuration region.
39 - Descriptor memory setup region.
40 - Queue Management/Queue Proxy region for queue Push.
41 - Queue Management/Queue Proxy region for queue Pop.
42- queue-pools : child node classifying the queue ranges into pools.
43 Queue ranges are grouped into 3 type of pools:
44 - qpend : pool of qpend(interruptible) queues
45 - general-purpose : pool of general queues, primarly used
46 as free descriptor queues or the
47 transmit DMA queues.
48 - accumulator : pool of queues on PDSP accumulator channel
49 Each range can have the following properties:
50 -- qrange : number of queues to use per queue range, specified as
51 <"base queue #" "# of queues">.
52 -- interrupts : Optional property to specify the interrupt mapping
53 for interruptible queues. The driver additionaly sets
54 the interrupt affinity hint based on the cpu mask.
55 -- qalloc-by-id : Optional property to specify that the queues in this
56 range can only be allocated by queue id.
57 -- accumulator : Accumulator channel specification. Any of the PDSPs in
58 QMSS can be loaded with the accumulator firmware. The
59 accumulator firmware’s job is to poll a select number of
60 queues looking for descriptors that have been pushed
61 into them. Descriptors are popped from the queue and
62 placed in a buffer provided by the host. When the list
63 becomes full or a programmed time period expires, the
64 accumulator triggers an interrupt to the host to read
65 the buffer for descriptor information. This firmware
66 comes in 16, 32, and 48 channel builds. Each of these
67 channels can be configured to monitor 32 contiguous
68 queues. Accumulator channel property is specified as:
69 <pdsp-id, channel, entries, pacing mode, latency>
70 pdsp-id : QMSS PDSP running accumulator firmware
71 on which the channel has to be
72 configured
73 channel : Accumulator channel number
74 entries : Size of the accumulator descriptor list
75 pacing mode : Interrupt pacing mode
76 0 : None, i.e interrupt on list full only
77 1 : Time delay since last interrupt
78 2 : Time delay since first new packet
79 3 : Time delay since last new packet
80 latency : time to delay the interrupt, specified
81 in microseconds.
82 -- multi-queue : Optional property to specify that the channel has to
83 monitor upto 32 queues starting at the base queue #.
84- descriptor-regions : child node describing the memory regions for keystone
85 navigator packet DMA descriptors. The memory for
86 descriptors will be allocated by the driver.
87 -- id : region number in QMSS.
88 -- region-spec : specifies the number of descriptors in the
89 region, specified as
90 <"# of descriptors" "descriptor size">.
91 -- link-index : start index, i.e. index of the first
92 descriptor in the region.
93
94Optional properties:
95- dma-coherent : Present if DMA operations are coherent.
96- pdsps : child node describing the PDSP configuration.
97 -- firmware : firmware to be loaded on the PDSP.
98 -- id : the qmss pdsp that will run the firmware.
99 -- reg : Address and size of the register set for the PDSP.
100 Register regions should be specified in the following
101 order
102 - PDSP internal RAM region.
103 - PDSP control/status region registers.
104 - QMSS interrupt distributor registers.
105 - PDSP command interface region.
106
107Example:
108
109qmss: qmss@2a40000 {
110 compatible = "ti,keystone-qmss";
111 dma-coherent;
112 #address-cells = <1>;
113 #size-cells = <1>;
114 clocks = <&chipclk13>;
115 ranges;
116 queue-range = <0 0x4000>;
117 linkram0 = <0x100000 0x8000>;
118 linkram1 = <0x0 0x10000>;
119
120 qmgrs {
121 #address-cells = <1>;
122 #size-cells = <1>;
123 ranges;
124 qmgr0 {
125 managed-queues = <0 0x2000>;
126 reg = <0x2a40000 0x20000>,
127 <0x2a06000 0x400>,
128 <0x2a02000 0x1000>,
129 <0x2a03000 0x1000>,
130 <0x23a80000 0x20000>,
131 <0x2a80000 0x20000>;
132 };
133
134 qmgr1 {
135 managed-queues = <0x2000 0x2000>;
136 reg = <0x2a60000 0x20000>,
137 <0x2a06400 0x400>,
138 <0x2a04000 0x1000>,
139 <0x2a05000 0x1000>,
140 <0x23aa0000 0x20000>,
141 <0x2aa0000 0x20000>;
142 };
143 };
144 queue-pools {
145 qpend {
146 qpend-0 {
147 qrange = <658 8>;
148 interrupts =<0 40 0xf04 0 41 0xf04 0 42 0xf04
149 0 43 0xf04 0 44 0xf04 0 45 0xf04
150 0 46 0xf04 0 47 0xf04>;
151 };
152 qpend-1 {
153 qrange = <8704 16>;
154 interrupts = <0 48 0xf04 0 49 0xf04 0 50 0xf04
155 0 51 0xf04 0 52 0xf04 0 53 0xf04
156 0 54 0xf04 0 55 0xf04 0 56 0xf04
157 0 57 0xf04 0 58 0xf04 0 59 0xf04
158 0 60 0xf04 0 61 0xf04 0 62 0xf04
159 0 63 0xf04>;
160 qalloc-by-id;
161 };
162 qpend-2 {
163 qrange = <8720 16>;
164 interrupts = <0 64 0xf04 0 65 0xf04 0 66 0xf04
165 0 59 0xf04 0 68 0xf04 0 69 0xf04
166 0 70 0xf04 0 71 0xf04 0 72 0xf04
167 0 73 0xf04 0 74 0xf04 0 75 0xf04
168 0 76 0xf04 0 77 0xf04 0 78 0xf04
169 0 79 0xf04>;
170 };
171 };
172 general-purpose {
173 gp-0 {
174 qrange = <4000 64>;
175 };
176 netcp-tx {
177 qrange = <640 9>;
178 qalloc-by-id;
179 };
180 };
181 accumulator {
182 acc-0 {
183 qrange = <128 32>;
184 accumulator = <0 36 16 2 50>;
185 interrupts = <0 215 0xf01>;
186 multi-queue;
187 qalloc-by-id;
188 };
189 acc-1 {
190 qrange = <160 32>;
191 accumulator = <0 37 16 2 50>;
192 interrupts = <0 216 0xf01>;
193 multi-queue;
194 };
195 acc-2 {
196 qrange = <192 32>;
197 accumulator = <0 38 16 2 50>;
198 interrupts = <0 217 0xf01>;
199 multi-queue;
200 };
201 acc-3 {
202 qrange = <224 32>;
203 accumulator = <0 39 16 2 50>;
204 interrupts = <0 218 0xf01>;
205 multi-queue;
206 };
207 };
208 };
209 descriptor-regions {
210 #address-cells = <1>;
211 #size-cells = <1>;
212 ranges;
213 region-12 {
214 id = <12>;
215 region-spec = <8192 128>; /* num_desc desc_size */
216 link-index = <0x4000>;
217 };
218 };
219 pdsps {
220 #address-cells = <1>;
221 #size-cells = <1>;
222 ranges;
223 pdsp0@0x2a10000 {
224 firmware = "keystone/qmss_pdsp_acc48_k2_le_1_0_0_8.fw";
225 reg = <0x2a10000 0x1000>,
226 <0x2a0f000 0x100>,
227 <0x2a0c000 0x3c8>,
228 <0x2a20000 0x4000>;
229 id = <0>;
230 };
231 };
232}; /* qmss */
diff --git a/Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt b/Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt
index 46f344965313..4eb7997674a0 100644
--- a/Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt
+++ b/Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt
@@ -1,7 +1,7 @@
1ADI AXI-SPDIF controller 1ADI AXI-SPDIF controller
2 2
3Required properties: 3Required properties:
4 - compatible : Must be "adi,axi-spdif-1.00.a" 4 - compatible : Must be "adi,axi-spdif-tx-1.00.a"
5 - reg : Must contain SPDIF core's registers location and length 5 - reg : Must contain SPDIF core's registers location and length
6 - clocks : Pairs of phandle and specifier referencing the controller's clocks. 6 - clocks : Pairs of phandle and specifier referencing the controller's clocks.
7 The controller expects two clocks, the clock used for the AXI interface and 7 The controller expects two clocks, the clock used for the AXI interface and
diff --git a/Documentation/devicetree/bindings/sound/adi,ssm2602.txt b/Documentation/devicetree/bindings/sound/adi,ssm2602.txt
new file mode 100644
index 000000000000..3b3302fe399b
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/adi,ssm2602.txt
@@ -0,0 +1,19 @@
1Analog Devices SSM2602, SSM2603 and SSM2604 I2S audio CODEC devices
2
3SSM2602 support both I2C and SPI as the configuration interface,
4the selection is made by the MODE strap-in pin.
5SSM2603 and SSM2604 only support I2C as the configuration interface.
6
7Required properties:
8
9 - compatible : One of "adi,ssm2602", "adi,ssm2603" or "adi,ssm2604"
10
11 - reg : the I2C address of the device for I2C, the chip select
12 number for SPI.
13
14 Example:
15
16 ssm2602: ssm2602@1a {
17 compatible = "adi,ssm2602";
18 reg = <0x1a>;
19 };
diff --git a/Documentation/devicetree/bindings/sound/cs35l32.txt b/Documentation/devicetree/bindings/sound/cs35l32.txt
new file mode 100644
index 000000000000..1417d3f5cc22
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/cs35l32.txt
@@ -0,0 +1,62 @@
1CS35L32 audio CODEC
2
3Required properties:
4
5 - compatible : "cirrus,cs35l32"
6
7 - reg : the I2C address of the device for I2C. Address is determined by the level
8 of the AD0 pin. Level 0 is 0x40 while Level 1 is 0x41.
9
10 - VA-supply, VP-supply : power supplies for the device,
11 as covered in Documentation/devicetree/bindings/regulator/regulator.txt.
12
13Optional properties:
14
15 - reset-gpios : a GPIO spec for the reset pin. If specified, it will be
16 deasserted before communication to the codec starts.
17
18 - cirrus,boost-manager : Boost voltage control.
19 0 = Automatically managed. Boost-converter output voltage is the higher
20 of the two: Class G or adaptive LED voltage.
21 1 = Automatically managed irrespective of audio, adapting for low-power
22 dissipation when LEDs are ON, and operating in Fixed-Boost Bypass Mode
23 if LEDs are OFF (VBST = VP).
24 2 = (Default) Boost voltage fixed in Bypass Mode (VBST = VP).
25 3 = Boost voltage fixed at 5 V.
26
27 - cirrus,sdout-datacfg : Data configuration for dual CS35L32 applications only.
28 Determines the data packed in a two-CS35L32 configuration.
29 0 = Left/right channels VMON[11:0], IMON[11:0], VPMON[7:0].
30 1 = Left/right channels VMON[11:0], IMON[11:0], STATUS.
31 2 = (Default) left/right channels VMON[15:0], IMON [15:0].
32 3 = Left/right channels VPMON[7:0], STATUS.
33
34 - cirrus,sdout-share : SDOUT sharing. Determines whether one or two CS35L32
35 devices are on board sharing SDOUT.
36 0 = (Default) One IC.
37 1 = Two IC's.
38
39 - cirrus,battery-recovery : Low battery nominal recovery threshold, rising VP.
40 0 = 3.1V
41 1 = 3.2V
42 2 = 3.3V (Default)
43 3 = 3.4V
44
45 - cirrus,battery-threshold : Low battery nominal threshold, falling VP.
46 0 = 3.1V
47 1 = 3.2V
48 2 = 3.3V
49 3 = 3.4V (Default)
50 4 = 3.5V
51 5 = 3.6V
52
53Example:
54
55codec: codec@40 {
56 compatible = "cirrus,cs35l32";
57 reg = <0x40>;
58 reset-gpios = <&gpio 10 0>;
59 cirrus,boost-manager = <0x03>;
60 cirrus,sdout-datacfg = <0x02>;
61 VA-supply = <&reg_audio>;
62};
diff --git a/Documentation/devicetree/bindings/sound/es8328.txt b/Documentation/devicetree/bindings/sound/es8328.txt
new file mode 100644
index 000000000000..30ea8a318ae9
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/es8328.txt
@@ -0,0 +1,38 @@
1Everest ES8328 audio CODEC
2
3This device supports both I2C and SPI.
4
5Required properties:
6
7 - compatible : "everest,es8328"
8 - DVDD-supply : Regulator providing digital core supply voltage 1.8 - 3.6V
9 - AVDD-supply : Regulator providing analog supply voltage 3.3V
10 - PVDD-supply : Regulator providing digital IO supply voltage 1.8 - 3.6V
11 - IPVDD-supply : Regulator providing analog output voltage 3.3V
12 - clocks : A 22.5792 or 11.2896 MHz clock
13 - reg : the I2C address of the device for I2C, the chip select number for SPI
14
15Pins on the device (for linking into audio routes):
16
17 * LOUT1
18 * LOUT2
19 * ROUT1
20 * ROUT2
21 * LINPUT1
22 * RINPUT1
23 * LINPUT2
24 * RINPUT2
25 * Mic Bias
26
27
28Example:
29
30codec: es8328@11 {
31 compatible = "everest,es8328";
32 DVDD-supply = <&reg_3p3v>;
33 AVDD-supply = <&reg_3p3v>;
34 PVDD-supply = <&reg_3p3v>;
35 HPVDD-supply = <&reg_3p3v>;
36 clocks = <&clks 169>;
37 reg = <0x11>;
38};
diff --git a/Documentation/devicetree/bindings/sound/fsl,esai.txt b/Documentation/devicetree/bindings/sound/fsl,esai.txt
index aeb8c4a0b88d..52f5b6bf3e8e 100644
--- a/Documentation/devicetree/bindings/sound/fsl,esai.txt
+++ b/Documentation/devicetree/bindings/sound/fsl,esai.txt
@@ -7,7 +7,8 @@ other DSPs. It has up to six transmitters and four receivers.
7 7
8Required properties: 8Required properties:
9 9
10 - compatible : Compatible list, must contain "fsl,imx35-esai". 10 - compatible : Compatible list, must contain "fsl,imx35-esai" or
11 "fsl,vf610-esai"
11 12
12 - reg : Offset and length of the register set for the device. 13 - reg : Offset and length of the register set for the device.
13 14
diff --git a/Documentation/devicetree/bindings/sound/fsl,ssi.txt b/Documentation/devicetree/bindings/sound/fsl,ssi.txt
index 3aa4a8f528f4..5b76be45d18b 100644
--- a/Documentation/devicetree/bindings/sound/fsl,ssi.txt
+++ b/Documentation/devicetree/bindings/sound/fsl,ssi.txt
@@ -58,13 +58,7 @@ Optional properties:
58 Documentation/devicetree/bindings/dma/dma.txt. 58 Documentation/devicetree/bindings/dma/dma.txt.
59- dma-names: Two dmas have to be defined, "tx" and "rx", if fsl,imx-fiq 59- dma-names: Two dmas have to be defined, "tx" and "rx", if fsl,imx-fiq
60 is not defined. 60 is not defined.
61- fsl,mode: The operating mode for the SSI interface. 61- fsl,mode: The operating mode for the AC97 interface only.
62 "i2s-slave" - I2S mode, SSI is clock slave
63 "i2s-master" - I2S mode, SSI is clock master
64 "lj-slave" - left-justified mode, SSI is clock slave
65 "lj-master" - l.j. mode, SSI is clock master
66 "rj-slave" - right-justified mode, SSI is clock slave
67 "rj-master" - r.j., SSI is clock master
68 "ac97-slave" - AC97 mode, SSI is clock slave 62 "ac97-slave" - AC97 mode, SSI is clock slave
69 "ac97-master" - AC97 mode, SSI is clock master 63 "ac97-master" - AC97 mode, SSI is clock master
70 64
diff --git a/Documentation/devicetree/bindings/sound/fsl-asoc-card.txt b/Documentation/devicetree/bindings/sound/fsl-asoc-card.txt
new file mode 100644
index 000000000000..a96774c194c8
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/fsl-asoc-card.txt
@@ -0,0 +1,82 @@
1Freescale Generic ASoC Sound Card with ASRC support
2
3The Freescale Generic ASoC Sound Card can be used, ideally, for all Freescale
4SoCs connecting with external CODECs.
5
6The idea of this generic sound card is a bit like ASoC Simple Card. However,
7for Freescale SoCs (especially those released in recent years), most of them
8have ASRC (Documentation/devicetree/bindings/sound/fsl,asrc.txt) inside. And
9this is a specific feature that might be painstakingly controlled and merged
10into the Simple Card.
11
12So having this generic sound card allows all Freescale SoC users to benefit
13from the simplification of a new card support and the capability of the wide
14sample rates support through ASRC.
15
16Note: The card is initially designed for those sound cards who use I2S and
17 PCM DAI formats. However, it'll be also possible to support those non
18 I2S/PCM type sound cards, such as S/PDIF audio and HDMI audio, as long
19 as the driver has been properly upgraded.
20
21
22The compatible list for this generic sound card currently:
23 "fsl,imx-audio-cs42888"
24
25 "fsl,imx-audio-wm8962"
26 (compatible with Documentation/devicetree/bindings/sound/imx-audio-wm8962.txt)
27
28 "fsl,imx-audio-sgtl5000"
29 (compatible with Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt)
30
31Required properties:
32
33 - compatible : Contains one of entries in the compatible list.
34
35 - model : The user-visible name of this sound complex
36
37 - audio-cpu : The phandle of an CPU DAI controller
38
39 - audio-codec : The phandle of an audio codec
40
41 - audio-routing : A list of the connections between audio components.
42 Each entry is a pair of strings, the first being the
43 connection's sink, the second being the connection's
44 source. There're a few pre-designed board connectors:
45 * Line Out Jack
46 * Line In Jack
47 * Headphone Jack
48 * Mic Jack
49 * Ext Spk
50 * AMIC (stands for Analog Microphone Jack)
51 * DMIC (stands for Digital Microphone Jack)
52
53 Note: The "Mic Jack" and "AMIC" are redundant while
54 coexsiting in order to support the old bindings
55 of wm8962 and sgtl5000.
56
57Optional properties:
58
59 - audio-asrc : The phandle of ASRC. It can be absent if there's no
60 need to add ASRC support via DPCM.
61
62Example:
63sound-cs42888 {
64 compatible = "fsl,imx-audio-cs42888";
65 model = "cs42888-audio";
66 audio-cpu = <&esai>;
67 audio-asrc = <&asrc>;
68 audio-codec = <&cs42888>;
69 audio-routing =
70 "Line Out Jack", "AOUT1L",
71 "Line Out Jack", "AOUT1R",
72 "Line Out Jack", "AOUT2L",
73 "Line Out Jack", "AOUT2R",
74 "Line Out Jack", "AOUT3L",
75 "Line Out Jack", "AOUT3R",
76 "Line Out Jack", "AOUT4L",
77 "Line Out Jack", "AOUT4R",
78 "AIN1L", "Line In Jack",
79 "AIN1R", "Line In Jack",
80 "AIN2L", "Line In Jack",
81 "AIN2R", "Line In Jack";
82};
diff --git a/Documentation/devicetree/bindings/sound/fsl-sai.txt b/Documentation/devicetree/bindings/sound/fsl-sai.txt
index 0f4e23828190..4956b14d4b06 100644
--- a/Documentation/devicetree/bindings/sound/fsl-sai.txt
+++ b/Documentation/devicetree/bindings/sound/fsl-sai.txt
@@ -18,12 +18,26 @@ Required properties:
18- pinctrl-names: Must contain a "default" entry. 18- pinctrl-names: Must contain a "default" entry.
19- pinctrl-NNN: One property must exist for each entry in pinctrl-names. 19- pinctrl-NNN: One property must exist for each entry in pinctrl-names.
20 See ../pinctrl/pinctrl-bindings.txt for details of the property values. 20 See ../pinctrl/pinctrl-bindings.txt for details of the property values.
21- big-endian-regs: If this property is absent, the little endian mode will 21- big-endian: Boolean property, required if all the FTM_PWM registers
22 be in use as default, or the big endian mode will be in use for all the 22 are big-endian rather than little-endian.
23 device registers. 23- lsb-first: Configures whether the LSB or the MSB is transmitted first for
24- big-endian-data: If this property is absent, the little endian mode will 24 the fifo data. If this property is absent, the MSB is transmitted first as
25 be in use as default, or the big endian mode will be in use for all the 25 default, or the LSB is transmitted first.
26 fifo data. 26- fsl,sai-synchronous-rx: This is a boolean property. If present, indicating
27 that SAI will work in the synchronous mode (sync Tx with Rx) which means
28 both the transimitter and receiver will send and receive data by following
29 receiver's bit clocks and frame sync clocks.
30- fsl,sai-asynchronous: This is a boolean property. If present, indicating
31 that SAI will work in the asynchronous mode, which means both transimitter
32 and receiver will send and receive data by following their own bit clocks
33 and frame sync clocks separately.
34
35Note:
36- If both fsl,sai-asynchronous and fsl,sai-synchronous-rx are absent, the
37 default synchronous mode (sync Rx with Tx) will be used, which means both
38 transimitter and receiver will send and receive data by following clocks
39 of transimitter.
40- fsl,sai-asynchronous and fsl,sai-synchronous-rx are exclusive.
27 41
28Example: 42Example:
29sai2: sai@40031000 { 43sai2: sai@40031000 {
@@ -38,6 +52,6 @@ sai2: sai@40031000 {
38 dma-names = "tx", "rx"; 52 dma-names = "tx", "rx";
39 dmas = <&edma0 0 VF610_EDMA_MUXID0_SAI2_TX>, 53 dmas = <&edma0 0 VF610_EDMA_MUXID0_SAI2_TX>,
40 <&edma0 0 VF610_EDMA_MUXID0_SAI2_RX>; 54 <&edma0 0 VF610_EDMA_MUXID0_SAI2_RX>;
41 big-endian-regs; 55 big-endian;
42 big-endian-data; 56 lsb-first;
43}; 57};
diff --git a/Documentation/devicetree/bindings/sound/imx-audio-es8328.txt b/Documentation/devicetree/bindings/sound/imx-audio-es8328.txt
new file mode 100644
index 000000000000..07b68ab206fb
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/imx-audio-es8328.txt
@@ -0,0 +1,60 @@
1Freescale i.MX audio complex with ES8328 codec
2
3Required properties:
4- compatible : "fsl,imx-audio-es8328"
5- model : The user-visible name of this sound complex
6- ssi-controller : The phandle of the i.MX SSI controller
7- jack-gpio : Optional GPIO for headphone jack
8- audio-amp-supply : Power regulator for speaker amps
9- audio-codec : The phandle of the ES8328 audio codec
10- audio-routing : A list of the connections between audio components.
11 Each entry is a pair of strings, the first being the
12 connection's sink, the second being the connection's
13 source. Valid names could be power supplies, ES8328
14 pins, and the jacks on the board:
15
16 Power supplies:
17 * audio-amp
18
19 ES8328 pins:
20 * LOUT1
21 * LOUT2
22 * ROUT1
23 * ROUT2
24 * LINPUT1
25 * LINPUT2
26 * RINPUT1
27 * RINPUT2
28 * Mic PGA
29
30 Board connectors:
31 * Headphone
32 * Speaker
33 * Mic Jack
34- mux-int-port : The internal port of the i.MX audio muxer (AUDMUX)
35- mux-ext-port : The external port of the i.MX audio muxer (AUDMIX)
36
37Note: The AUDMUX port numbering should start at 1, which is consistent with
38hardware manual.
39
40Example:
41
42sound {
43 compatible = "fsl,imx-audio-es8328";
44 model = "imx-audio-es8328";
45 ssi-controller = <&ssi1>;
46 audio-codec = <&codec>;
47 jack-gpio = <&gpio5 15 0>;
48 audio-amp-supply = <&reg_audio_amp>;
49 audio-routing =
50 "Speaker", "LOUT2",
51 "Speaker", "ROUT2",
52 "Speaker", "audio-amp",
53 "Headphone", "ROUT1",
54 "Headphone", "LOUT1",
55 "LINPUT1", "Mic Jack",
56 "RINPUT1", "Mic Jack",
57 "Mic Jack", "Mic Bias";
58 mux-int-port = <1>;
59 mux-ext-port = <3>;
60};
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt
index 9c7c55c71370..c949abc2992f 100644
--- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt
+++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt
@@ -25,6 +25,7 @@ Required properties:
25 25
26Optional properties: 26Optional properties:
27- nvidia,hp-det-gpios : The GPIO that detect headphones are plugged in 27- nvidia,hp-det-gpios : The GPIO that detect headphones are plugged in
28- nvidia,mic-det-gpios : The GPIO that detect microphones are plugged in
28 29
29Example: 30Example:
30 31
diff --git a/Documentation/devicetree/bindings/sound/rockchip-i2s.txt b/Documentation/devicetree/bindings/sound/rockchip-i2s.txt
index 6c55fcfe5e1d..9b82c20b306b 100644
--- a/Documentation/devicetree/bindings/sound/rockchip-i2s.txt
+++ b/Documentation/devicetree/bindings/sound/rockchip-i2s.txt
@@ -31,7 +31,7 @@ i2s@ff890000 {
31 #address-cells = <1>; 31 #address-cells = <1>;
32 #size-cells = <0>; 32 #size-cells = <0>;
33 dmas = <&pdma1 0>, <&pdma1 1>; 33 dmas = <&pdma1 0>, <&pdma1 1>;
34 dma-names = "rx", "tx"; 34 dma-names = "tx", "rx";
35 clock-names = "i2s_hclk", "i2s_clk"; 35 clock-names = "i2s_hclk", "i2s_clk";
36 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>; 36 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
37}; 37};
diff --git a/Documentation/devicetree/bindings/sound/rt5677.txt b/Documentation/devicetree/bindings/sound/rt5677.txt
new file mode 100644
index 000000000000..0701b834fc73
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/rt5677.txt
@@ -0,0 +1,59 @@
1RT5677 audio CODEC
2
3This device supports I2C only.
4
5Required properties:
6
7- compatible : "realtek,rt5677".
8
9- reg : The I2C address of the device.
10
11- interrupts : The CODEC's interrupt output.
12
13- gpio-controller : Indicates this device is a GPIO controller.
14
15- #gpio-cells : Should be two. The first cell is the pin number and the
16 second cell is used to specify optional parameters (currently unused).
17
18Optional properties:
19
20- realtek,pow-ldo2-gpio : The GPIO that controls the CODEC's POW_LDO2 pin.
21
22- realtek,in1-differential
23- realtek,in2-differential
24- realtek,lout1-differential
25- realtek,lout2-differential
26- realtek,lout3-differential
27 Boolean. Indicate MIC1/2 input and LOUT1/2/3 outputs are differential,
28 rather than single-ended.
29
30Pins on the device (for linking into audio routes):
31
32 * IN1P
33 * IN1N
34 * IN2P
35 * IN2N
36 * MICBIAS1
37 * DMIC1
38 * DMIC2
39 * DMIC3
40 * DMIC4
41 * LOUT1
42 * LOUT2
43 * LOUT3
44
45Example:
46
47rt5677 {
48 compatible = "realtek,rt5677";
49 reg = <0x2c>;
50 interrupt-parent = <&gpio>;
51 interrupts = <TEGRA_GPIO(W, 3) GPIO_ACTIVE_HIGH>;
52
53 gpio-controller;
54 #gpio-cells = <2>;
55
56 realtek,pow-ldo2-gpio =
57 <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
58 realtek,in1-differential = "true";
59};
diff --git a/Documentation/devicetree/bindings/sound/simple-card.txt b/Documentation/devicetree/bindings/sound/simple-card.txt
index c2e9841dfce4..c3cba600bf11 100644
--- a/Documentation/devicetree/bindings/sound/simple-card.txt
+++ b/Documentation/devicetree/bindings/sound/simple-card.txt
@@ -17,6 +17,10 @@ Optional properties:
17 source. 17 source.
18- simple-audio-card,mclk-fs : Multiplication factor between stream rate and codec 18- simple-audio-card,mclk-fs : Multiplication factor between stream rate and codec
19 mclk. 19 mclk.
20- simple-audio-card,hp-det-gpio : Reference to GPIO that signals when
21 headphones are attached.
22- simple-audio-card,mic-det-gpio : Reference to GPIO that signals when
23 a microphone is attached.
20 24
21Optional subnodes: 25Optional subnodes:
22 26
diff --git a/Documentation/devicetree/bindings/sound/ssm4567.txt b/Documentation/devicetree/bindings/sound/ssm4567.txt
new file mode 100644
index 000000000000..ec3d9e7004b5
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/ssm4567.txt
@@ -0,0 +1,15 @@
1Analog Devices SSM4567 audio amplifier
2
3This device supports I2C only.
4
5Required properties:
6 - compatible : Must be "adi,ssm4567"
7 - reg : the I2C address of the device. This will either be 0x34 (LR_SEL/ADDR connected to AGND),
8 0x35 (LR_SEL/ADDR connected to IOVDD) or 0x36 (LR_SEL/ADDR open).
9
10Example:
11
12 ssm4567: ssm4567@34 {
13 compatible = "adi,ssm4567";
14 reg = <0x34>;
15 };
diff --git a/Documentation/devicetree/bindings/sound/st,sta350.txt b/Documentation/devicetree/bindings/sound/st,sta350.txt
index b7e71bf5caf4..307398ef2317 100644
--- a/Documentation/devicetree/bindings/sound/st,sta350.txt
+++ b/Documentation/devicetree/bindings/sound/st,sta350.txt
@@ -33,7 +33,7 @@ Optional properties:
33 0: Channel 1 33 0: Channel 1
34 1: Channel 2 34 1: Channel 2
35 2: Channel 3 35 2: Channel 3
36 If parameter is missing, channel 1 is choosen. 36 If parameter is missing, channel 1 is chosen.
37 This properties have to be specified as '/bits/ 8' values. 37 This properties have to be specified as '/bits/ 8' values.
38 38
39 - st,thermal-warning-recover: 39 - st,thermal-warning-recover:
diff --git a/Documentation/devicetree/bindings/spi/fsl-imx-cspi.txt b/Documentation/devicetree/bindings/spi/fsl-imx-cspi.txt
index 4256a6df9b79..aad527b357a0 100644
--- a/Documentation/devicetree/bindings/spi/fsl-imx-cspi.txt
+++ b/Documentation/devicetree/bindings/spi/fsl-imx-cspi.txt
@@ -7,6 +7,9 @@ Required properties:
7- interrupts : Should contain CSPI/eCSPI interrupt 7- interrupts : Should contain CSPI/eCSPI interrupt
8- fsl,spi-num-chipselects : Contains the number of the chipselect 8- fsl,spi-num-chipselects : Contains the number of the chipselect
9- cs-gpios : Specifies the gpio pins to be used for chipselects. 9- cs-gpios : Specifies the gpio pins to be used for chipselects.
10- dmas: DMA specifiers for tx and rx dma. See the DMA client binding,
11 Documentation/devicetree/bindings/dma/dma.txt
12- dma-names: DMA request names should include "tx" and "rx" if present.
10 13
11Example: 14Example:
12 15
@@ -19,4 +22,6 @@ ecspi@70010000 {
19 fsl,spi-num-chipselects = <2>; 22 fsl,spi-num-chipselects = <2>;
20 cs-gpios = <&gpio3 24 0>, /* GPIO3_24 */ 23 cs-gpios = <&gpio3 24 0>, /* GPIO3_24 */
21 <&gpio3 25 0>; /* GPIO3_25 */ 24 <&gpio3 25 0>; /* GPIO3_25 */
25 dmas = <&sdma 3 7 1>, <&sdma 4 7 2>;
26 dma-names = "rx", "tx";
22}; 27};
diff --git a/Documentation/devicetree/bindings/spi/sh-msiof.txt b/Documentation/devicetree/bindings/spi/sh-msiof.txt
index f24baf3b6cc1..d11c3721e7cd 100644
--- a/Documentation/devicetree/bindings/spi/sh-msiof.txt
+++ b/Documentation/devicetree/bindings/spi/sh-msiof.txt
@@ -6,8 +6,17 @@ Required properties:
6 "renesas,sh-mobile-msiof" for SH Mobile series. 6 "renesas,sh-mobile-msiof" for SH Mobile series.
7 Examples with soctypes are: 7 Examples with soctypes are:
8 "renesas,msiof-r8a7790" (R-Car H2) 8 "renesas,msiof-r8a7790" (R-Car H2)
9 "renesas,msiof-r8a7791" (R-Car M2) 9 "renesas,msiof-r8a7791" (R-Car M2-W)
10- reg : Offset and length of the register set for the device 10 "renesas,msiof-r8a7792" (R-Car V2H)
11 "renesas,msiof-r8a7793" (R-Car M2-N)
12 "renesas,msiof-r8a7794" (R-Car E2)
13- reg : A list of offsets and lengths of the register sets for
14 the device.
15 If only one register set is present, it is to be used
16 by both the CPU and the DMA engine.
17 If two register sets are present, the first is to be
18 used by the CPU, and the second is to be used by the
19 DMA engine.
11- interrupt-parent : The phandle for the interrupt controller that 20- interrupt-parent : The phandle for the interrupt controller that
12 services interrupts for this device 21 services interrupts for this device
13- interrupts : Interrupt specifier 22- interrupts : Interrupt specifier
@@ -17,12 +26,16 @@ Required properties:
17Optional properties: 26Optional properties:
18- clocks : Must contain a reference to the functional clock. 27- clocks : Must contain a reference to the functional clock.
19- num-cs : Total number of chip-selects (default is 1) 28- num-cs : Total number of chip-selects (default is 1)
29- dmas : Must contain a list of two references to DMA
30 specifiers, one for transmission, and one for
31 reception.
32- dma-names : Must contain a list of two DMA names, "tx" and "rx".
20 33
21Optional properties, deprecated for soctype-specific bindings: 34Optional properties, deprecated for soctype-specific bindings:
22- renesas,tx-fifo-size : Overrides the default tx fifo size given in words 35- renesas,tx-fifo-size : Overrides the default tx fifo size given in words
23 (default is 64) 36 (default is 64)
24- renesas,rx-fifo-size : Overrides the default rx fifo size given in words 37- 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) 38 (default is 64, or 256 on R-Car Gen2)
26 39
27Pinctrl properties might be needed, too. See 40Pinctrl properties might be needed, too. See
28Documentation/devicetree/bindings/pinctrl/renesas,*. 41Documentation/devicetree/bindings/pinctrl/renesas,*.
@@ -31,9 +44,11 @@ Example:
31 44
32 msiof0: spi@e6e20000 { 45 msiof0: spi@e6e20000 {
33 compatible = "renesas,msiof-r8a7791"; 46 compatible = "renesas,msiof-r8a7791";
34 reg = <0 0xe6e20000 0 0x0064>; 47 reg = <0 0xe6e20000 0 0x0064>, <0 0xe7e20000 0 0x0064>;
35 interrupts = <0 156 IRQ_TYPE_LEVEL_HIGH>; 48 interrupts = <0 156 IRQ_TYPE_LEVEL_HIGH>;
36 clocks = <&mstp0_clks R8A7791_CLK_MSIOF0>; 49 clocks = <&mstp0_clks R8A7791_CLK_MSIOF0>;
50 dmas = <&dmac0 0x51>, <&dmac0 0x52>;
51 dma-names = "tx", "rx";
37 #address-cells = <1>; 52 #address-cells = <1>;
38 #size-cells = <0>; 53 #size-cells = <0>;
39 status = "disabled"; 54 status = "disabled";
diff --git a/Documentation/devicetree/bindings/spi/spi-davinci.txt b/Documentation/devicetree/bindings/spi/spi-davinci.txt
index f80887bca0d6..12ecfe9e3599 100644
--- a/Documentation/devicetree/bindings/spi/spi-davinci.txt
+++ b/Documentation/devicetree/bindings/spi/spi-davinci.txt
@@ -1,5 +1,10 @@
1Davinci SPI controller device bindings 1Davinci SPI controller device bindings
2 2
3Links on DM:
4Keystone 2 - http://www.ti.com/lit/ug/sprugp2a/sprugp2a.pdf
5dm644x - http://www.ti.com/lit/ug/sprue32a/sprue32a.pdf
6OMAP-L138/da830 - http://www.ti.com/lit/ug/spruh77a/spruh77a.pdf
7
3Required properties: 8Required properties:
4- #address-cells: number of cells required to define a chip select 9- #address-cells: number of cells required to define a chip select
5 address on the SPI bus. Should be set to 1. 10 address on the SPI bus. Should be set to 1.
@@ -24,6 +29,30 @@ Optional:
24 cs-gpios = <0>, <0>, <0>, <&gpio1 30 0>, <&gpio1 31 0>; 29 cs-gpios = <0>, <0>, <0>, <&gpio1 30 0>, <&gpio1 31 0>;
25 where first three are internal CS and last two are GPIO CS. 30 where first three are internal CS and last two are GPIO CS.
26 31
32Optional properties for slave devices:
33SPI slave nodes can contain the following properties.
34Not all SPI Peripherals from Texas Instruments support this.
35Please check SPI peripheral documentation for a device before using these.
36
37- ti,spi-wdelay : delay between transmission of words
38 (SPIFMTn.WDELAY, SPIDAT1.WDEL) must be specified in number of SPI module
39 clock periods.
40
41 delay = WDELAY * SPI_module_clock_period + 2 * SPI_module_clock_period
42
43Below is timing diagram which shows functional meaning of
44"ti,spi-wdelay" parameter.
45
46 +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+
47SPI_CLK | | | | | | | | | | | | | | | |
48 +----------+ +-+ +-+ +-+ +-+ +---------------------------+ +-+ +-+ +-
49
50SPI_SOMI/SIMO+-----------------+ +-----------
51 +----------+ word1 +---------------------------+word2
52 +-----------------+ +-----------
53 WDELAY
54 <-------------------------->
55
27Example of a NOR flash slave device (n25q032) connected to DaVinci 56Example of a NOR flash slave device (n25q032) connected to DaVinci
28SPI controller device over the SPI bus. 57SPI controller device over the SPI bus.
29 58
@@ -43,6 +72,7 @@ spi0:spi@20BF0000 {
43 compatible = "st,m25p32"; 72 compatible = "st,m25p32";
44 spi-max-frequency = <25000000>; 73 spi-max-frequency = <25000000>;
45 reg = <0>; 74 reg = <0>;
75 ti,spi-wdelay = <8>;
46 76
47 partition@0 { 77 partition@0 {
48 label = "u-boot-spl"; 78 label = "u-boot-spl";
diff --git a/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt b/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt
index 5376de40f10b..cbbe16ed3874 100644
--- a/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt
+++ b/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt
@@ -10,7 +10,12 @@ 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. 13
14Optional property:
15- big-endian: If present the dspi device's registers are implemented
16 in big endian mode, otherwise in native mode(same with CPU), for more
17 detail please see: Documentation/devicetree/bindings/regmap/regmap.txt.
18
14Example: 19Example:
15 20
16dspi0@4002c000 { 21dspi0@4002c000 {
diff --git a/Documentation/devicetree/bindings/spi/spi-orion.txt b/Documentation/devicetree/bindings/spi/spi-orion.txt
index a3ff50fc76fb..50c3a3de61c1 100644
--- a/Documentation/devicetree/bindings/spi/spi-orion.txt
+++ b/Documentation/devicetree/bindings/spi/spi-orion.txt
@@ -1,7 +1,7 @@
1Marvell Orion SPI device 1Marvell Orion SPI device
2 2
3Required properties: 3Required properties:
4- compatible : should be "marvell,orion-spi". 4- compatible : should be "marvell,orion-spi" or "marvell,armada-370-spi".
5- reg : offset and length of the register set for the device 5- reg : offset and length of the register set for the device
6- cell-index : Which of multiple SPI controllers is this. 6- cell-index : Which of multiple SPI controllers is this.
7Optional properties: 7Optional properties:
diff --git a/Documentation/devicetree/bindings/spi/spi-rockchip.txt b/Documentation/devicetree/bindings/spi/spi-rockchip.txt
index 7bab35575817..467dec441c62 100644
--- a/Documentation/devicetree/bindings/spi/spi-rockchip.txt
+++ b/Documentation/devicetree/bindings/spi/spi-rockchip.txt
@@ -16,11 +16,15 @@ Required Properties:
16- clocks: Must contain an entry for each entry in clock-names. 16- clocks: Must contain an entry for each entry in clock-names.
17- clock-names: Shall be "spiclk" for the transfer-clock, and "apb_pclk" for 17- clock-names: Shall be "spiclk" for the transfer-clock, and "apb_pclk" for
18 the peripheral clock. 18 the peripheral clock.
19- #address-cells: should be 1.
20- #size-cells: should be 0.
21
22Optional Properties:
23
19- dmas: DMA specifiers for tx and rx dma. See the DMA client binding, 24- dmas: DMA specifiers for tx and rx dma. See the DMA client binding,
20 Documentation/devicetree/bindings/dma/dma.txt 25 Documentation/devicetree/bindings/dma/dma.txt
21- dma-names: DMA request names should include "tx" and "rx" if present. 26- dma-names: DMA request names should include "tx" and "rx" if present.
22- #address-cells: should be 1. 27
23- #size-cells: should be 0.
24 28
25Example: 29Example:
26 30
diff --git a/Documentation/devicetree/bindings/spi/spi-rspi.txt b/Documentation/devicetree/bindings/spi/spi-rspi.txt
index d57d82a74054..8f4169f63936 100644
--- a/Documentation/devicetree/bindings/spi/spi-rspi.txt
+++ b/Documentation/devicetree/bindings/spi/spi-rspi.txt
@@ -11,7 +11,10 @@ Required properties:
11 - "renesas,rspi-sh7757" (SH) 11 - "renesas,rspi-sh7757" (SH)
12 - "renesas,rspi-r7s72100" (RZ/A1H) 12 - "renesas,rspi-r7s72100" (RZ/A1H)
13 - "renesas,qspi-r8a7790" (R-Car H2) 13 - "renesas,qspi-r8a7790" (R-Car H2)
14 - "renesas,qspi-r8a7791" (R-Car M2) 14 - "renesas,qspi-r8a7791" (R-Car M2-W)
15 - "renesas,qspi-r8a7792" (R-Car V2H)
16 - "renesas,qspi-r8a7793" (R-Car M2-N)
17 - "renesas,qspi-r8a7794" (R-Car E2)
15- reg : Address start and address range size of the device 18- reg : Address start and address range size of the device
16- interrupts : A list of interrupt-specifiers, one for each entry in 19- interrupts : A list of interrupt-specifiers, one for each entry in
17 interrupt-names. 20 interrupt-names.
@@ -30,6 +33,9 @@ Required properties:
30 33
31Optional properties: 34Optional properties:
32- clocks : Must contain a reference to the functional clock. 35- clocks : Must contain a reference to the functional clock.
36- dmas : Must contain a list of two references to DMA specifiers,
37 one for transmission, and one for reception.
38- dma-names : Must contain a list of two DMA names, "tx" and "rx".
33 39
34Pinctrl properties might be needed, too. See 40Pinctrl properties might be needed, too. See
35Documentation/devicetree/bindings/pinctrl/renesas,*. 41Documentation/devicetree/bindings/pinctrl/renesas,*.
@@ -58,4 +64,6 @@ Examples:
58 num-cs = <1>; 64 num-cs = <1>;
59 #address-cells = <1>; 65 #address-cells = <1>;
60 #size-cells = <0>; 66 #size-cells = <0>;
67 dmas = <&dmac0 0x17>, <&dmac0 0x18>;
68 dma-names = "tx", "rx";
61 }; 69 };
diff --git a/Documentation/devicetree/bindings/staging/imx-drm/ldb.txt b/Documentation/devicetree/bindings/staging/imx-drm/ldb.txt
index 578a1fca366e..443bcb6134d5 100644
--- a/Documentation/devicetree/bindings/staging/imx-drm/ldb.txt
+++ b/Documentation/devicetree/bindings/staging/imx-drm/ldb.txt
@@ -56,6 +56,9 @@ Required properties:
56 - 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 57 - port: A port node with endpoint definitions as defined in
58 Documentation/devicetree/bindings/media/video-interfaces.txt. 58 Documentation/devicetree/bindings/media/video-interfaces.txt.
59 On i.MX5, the internal two-input-multiplexer is used.
60 Due to hardware limitations, only one port (port@[0,1])
61 can be used for each channel (lvds-channel@[0,1], respectively)
59 On i.MX6, there should be four ports (port@[0-3]) that correspond 62 On i.MX6, there should be four ports (port@[0-3]) that correspond
60 to the four LVDS multiplexer inputs. 63 to the four LVDS multiplexer inputs.
61 64
@@ -78,6 +81,8 @@ ldb: ldb@53fa8008 {
78 "di0", "di1"; 81 "di0", "di1";
79 82
80 lvds-channel@0 { 83 lvds-channel@0 {
84 #address-cells = <1>;
85 #size-cells = <0>;
81 reg = <0>; 86 reg = <0>;
82 fsl,data-mapping = "spwg"; 87 fsl,data-mapping = "spwg";
83 fsl,data-width = <24>; 88 fsl,data-width = <24>;
@@ -86,7 +91,9 @@ ldb: ldb@53fa8008 {
86 /* ... */ 91 /* ... */
87 }; 92 };
88 93
89 port { 94 port@0 {
95 reg = <0>;
96
90 lvds0_in: endpoint { 97 lvds0_in: endpoint {
91 remote-endpoint = <&ipu_di0_lvds0>; 98 remote-endpoint = <&ipu_di0_lvds0>;
92 }; 99 };
@@ -94,6 +101,8 @@ ldb: ldb@53fa8008 {
94 }; 101 };
95 102
96 lvds-channel@1 { 103 lvds-channel@1 {
104 #address-cells = <1>;
105 #size-cells = <0>;
97 reg = <1>; 106 reg = <1>;
98 fsl,data-mapping = "spwg"; 107 fsl,data-mapping = "spwg";
99 fsl,data-width = <24>; 108 fsl,data-width = <24>;
@@ -102,7 +111,9 @@ ldb: ldb@53fa8008 {
102 /* ... */ 111 /* ... */
103 }; 112 };
104 113
105 port { 114 port@1 {
115 reg = <1>;
116
106 lvds1_in: endpoint { 117 lvds1_in: endpoint {
107 remote-endpoint = <&ipu_di1_lvds1>; 118 remote-endpoint = <&ipu_di1_lvds1>;
108 }; 119 };
diff --git a/Documentation/devicetree/bindings/timer/amlogic,meson6-timer.txt b/Documentation/devicetree/bindings/timer/amlogic,meson6-timer.txt
new file mode 100644
index 000000000000..a092053f7902
--- /dev/null
+++ b/Documentation/devicetree/bindings/timer/amlogic,meson6-timer.txt
@@ -0,0 +1,15 @@
1Amlogic Meson6 SoCs Timer Controller
2
3Required properties:
4
5- compatible : should be "amlogic,meson6-timer"
6- reg : Specifies base physical address and size of the registers.
7- interrupts : The interrupt of the first timer
8
9Example:
10
11timer@c1109940 {
12 compatible = "amlogic,meson6-timer";
13 reg = <0xc1109940 0x14>;
14 interrupts = <0 10 1>;
15};
diff --git a/Documentation/devicetree/bindings/timer/renesas,cmt.txt b/Documentation/devicetree/bindings/timer/renesas,cmt.txt
index a17418b0ece3..1a05c1b243c1 100644
--- a/Documentation/devicetree/bindings/timer/renesas,cmt.txt
+++ b/Documentation/devicetree/bindings/timer/renesas,cmt.txt
@@ -11,15 +11,47 @@ datasheets.
11 11
12Required Properties: 12Required Properties:
13 13
14 - compatible: must contain one of the following. 14 - compatible: must contain one or more of the following:
15 - "renesas,cmt-32" for the 32-bit CMT 15 - "renesas,cmt-32-r8a7740" for the r8a7740 32-bit CMT
16 (CMT0)
17 - "renesas,cmt-32-sh7372" for the sh7372 32-bit CMT
18 (CMT0)
19 - "renesas,cmt-32-sh73a0" for the sh73a0 32-bit CMT
20 (CMT0)
21 - "renesas,cmt-32" for all 32-bit CMT without fast clock support
16 (CMT0 on sh7372, sh73a0 and r8a7740) 22 (CMT0 on sh7372, sh73a0 and r8a7740)
17 - "renesas,cmt-32-fast" for the 32-bit CMT with fast clock support 23 This is a fallback for the above renesas,cmt-32-* entries.
24
25 - "renesas,cmt-32-fast-r8a7740" for the r8a7740 32-bit CMT with fast
26 clock support (CMT[234])
27 - "renesas,cmt-32-fast-sh7372" for the sh7372 32-bit CMT with fast
28 clock support (CMT[234])
29 - "renesas,cmt-32-fast-sh73a0" for the sh73A0 32-bit CMT with fast
30 clock support (CMT[234])
31 - "renesas,cmt-32-fast" for all 32-bit CMT with fast clock support
18 (CMT[234] on sh7372, sh73a0 and r8a7740) 32 (CMT[234] on sh7372, sh73a0 and r8a7740)
19 - "renesas,cmt-48" for the 48-bit CMT 33 This is a fallback for the above renesas,cmt-32-fast-* entries.
34
35 - "renesas,cmt-48-sh7372" for the sh7372 48-bit CMT
36 (CMT1)
37 - "renesas,cmt-48-sh73a0" for the sh73A0 48-bit CMT
38 (CMT1)
39 - "renesas,cmt-48-r8a7740" for the r8a7740 48-bit CMT
40 (CMT1)
41 - "renesas,cmt-48" for all non-second generation 48-bit CMT
20 (CMT1 on sh7372, sh73a0 and r8a7740) 42 (CMT1 on sh7372, sh73a0 and r8a7740)
21 - "renesas,cmt-48-gen2" for the second generation 48-bit CMT 43 This is a fallback for the above renesas,cmt-48-* entries.
44
45 - "renesas,cmt-48-r8a73a4" for the r8a73a4 48-bit CMT
46 (CMT[01])
47 - "renesas,cmt-48-r8a7790" for the r8a7790 48-bit CMT
48 (CMT[01])
49 - "renesas,cmt-48-r8a7791" for the r8a7791 48-bit CMT
50 (CMT[01])
51 - "renesas,cmt-48-gen2" for all second generation 48-bit CMT
22 (CMT[01] on r8a73a4, r8a7790 and r8a7791) 52 (CMT[01] on r8a73a4, r8a7790 and r8a7791)
53 This is a fallback for the renesas,cmt-48-r8a73a4,
54 renesas,cmt-48-r8a7790 and renesas,cmt-48-r8a7791 entries.
23 55
24 - reg: base address and length of the registers block for the timer module. 56 - reg: base address and length of the registers block for the timer module.
25 - interrupts: interrupt-specifier for the timer, one per channel. 57 - interrupts: interrupt-specifier for the timer, one per channel.
@@ -36,7 +68,7 @@ Example: R8A7790 (R-Car H2) CMT0 node
36 them channels 0 and 1 in the documentation. 68 them channels 0 and 1 in the documentation.
37 69
38 cmt0: timer@ffca0000 { 70 cmt0: timer@ffca0000 {
39 compatible = "renesas,cmt-48-gen2"; 71 compatible = "renesas,cmt-48-r8a7790", "renesas,cmt-48-gen2";
40 reg = <0 0xffca0000 0 0x1004>; 72 reg = <0 0xffca0000 0 0x1004>;
41 interrupts = <0 142 IRQ_TYPE_LEVEL_HIGH>, 73 interrupts = <0 142 IRQ_TYPE_LEVEL_HIGH>,
42 <0 142 IRQ_TYPE_LEVEL_HIGH>; 74 <0 142 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/Documentation/devicetree/bindings/timer/renesas,mtu2.txt b/Documentation/devicetree/bindings/timer/renesas,mtu2.txt
index 917453f826bc..d9a8d5af1a21 100644
--- a/Documentation/devicetree/bindings/timer/renesas,mtu2.txt
+++ b/Documentation/devicetree/bindings/timer/renesas,mtu2.txt
@@ -8,7 +8,10 @@ are independent. The MTU2 hardware supports five channels indexed from 0 to 4.
8 8
9Required Properties: 9Required Properties:
10 10
11 - compatible: must contain "renesas,mtu2" 11 - compatible: must be one or more of the following:
12 - "renesas,mtu2-r7s72100" for the r7s72100 MTU2
13 - "renesas,mtu2" for any MTU2
14 This is a fallback for the above renesas,mtu2-* entries
12 15
13 - reg: base address and length of the registers block for the timer module. 16 - reg: base address and length of the registers block for the timer module.
14 17
@@ -26,7 +29,7 @@ Required Properties:
26Example: R7S72100 (RZ/A1H) MTU2 node 29Example: R7S72100 (RZ/A1H) MTU2 node
27 30
28 mtu2: timer@fcff0000 { 31 mtu2: timer@fcff0000 {
29 compatible = "renesas,mtu2"; 32 compatible = "renesas,mtu2-r7s72100", "renesas,mtu2";
30 reg = <0xfcff0000 0x400>; 33 reg = <0xfcff0000 0x400>;
31 interrupts = <0 139 IRQ_TYPE_LEVEL_HIGH>, 34 interrupts = <0 139 IRQ_TYPE_LEVEL_HIGH>,
32 <0 146 IRQ_TYPE_LEVEL_HIGH>, 35 <0 146 IRQ_TYPE_LEVEL_HIGH>,
diff --git a/Documentation/devicetree/bindings/timer/renesas,tmu.txt b/Documentation/devicetree/bindings/timer/renesas,tmu.txt
index 425d0c5f4aee..7db89fb25444 100644
--- a/Documentation/devicetree/bindings/timer/renesas,tmu.txt
+++ b/Documentation/devicetree/bindings/timer/renesas,tmu.txt
@@ -8,7 +8,10 @@ are independent. The TMU hardware supports up to three channels.
8 8
9Required Properties: 9Required Properties:
10 10
11 - compatible: must contain "renesas,tmu" 11 - compatible: must contain one or more of the following:
12 - "renesas,tmu-r8a7779" for the r8a7779 TMU
13 - "renesas,tmu" for any TMU.
14 This is a fallback for the above renesas,tmu-* entries
12 15
13 - reg: base address and length of the registers block for the timer module. 16 - reg: base address and length of the registers block for the timer module.
14 17
@@ -27,7 +30,7 @@ Optional Properties:
27Example: R8A7779 (R-Car H1) TMU0 node 30Example: R8A7779 (R-Car H1) TMU0 node
28 31
29 tmu0: timer@ffd80000 { 32 tmu0: timer@ffd80000 {
30 compatible = "renesas,tmu"; 33 compatible = "renesas,tmu-r8a7779", "renesas,tmu";
31 reg = <0xffd80000 0x30>; 34 reg = <0xffd80000 0x30>;
32 interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>, 35 interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>,
33 <0 33 IRQ_TYPE_LEVEL_HIGH>, 36 <0 33 IRQ_TYPE_LEVEL_HIGH>,
diff --git a/Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt b/Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt
index 20468b2a7516..53579197eca2 100644
--- a/Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt
+++ b/Documentation/devicetree/bindings/ufs/ufshcd-pltfrm.txt
@@ -8,9 +8,50 @@ Required properties:
8- interrupts : <interrupt mapping for UFS host controller IRQ> 8- interrupts : <interrupt mapping for UFS host controller IRQ>
9- reg : <registers mapping> 9- reg : <registers mapping>
10 10
11Optional properties:
12- vdd-hba-supply : phandle to UFS host controller supply regulator node
13- vcc-supply : phandle to VCC supply regulator node
14- vccq-supply : phandle to VCCQ supply regulator node
15- vccq2-supply : phandle to VCCQ2 supply regulator node
16- vcc-supply-1p8 : For embedded UFS devices, valid VCC range is 1.7-1.95V
17 or 2.7-3.6V. This boolean property when set, specifies
18 to use low voltage range of 1.7-1.95V. Note for external
19 UFS cards this property is invalid and valid VCC range is
20 always 2.7-3.6V.
21- vcc-max-microamp : specifies max. load that can be drawn from vcc supply
22- vccq-max-microamp : specifies max. load that can be drawn from vccq supply
23- vccq2-max-microamp : specifies max. load that can be drawn from vccq2 supply
24- <name>-fixed-regulator : boolean property specifying that <name>-supply is a fixed regulator
25
26- clocks : List of phandle and clock specifier pairs
27- clock-names : List of clock input name strings sorted in the same
28 order as the clocks property.
29- freq-table-hz : Array of <min max> operating frequencies stored in the same
30 order as the clocks property. If this property is not
31 defined or a value in the array is "0" then it is assumed
32 that the frequency is set by the parent clock or a
33 fixed rate clock source.
34
35Note: If above properties are not defined it can be assumed that the supply
36regulators or clocks are always on.
37
11Example: 38Example:
12 ufshc@0xfc598000 { 39 ufshc@0xfc598000 {
13 compatible = "jedec,ufs-1.1"; 40 compatible = "jedec,ufs-1.1";
14 reg = <0xfc598000 0x800>; 41 reg = <0xfc598000 0x800>;
15 interrupts = <0 28 0>; 42 interrupts = <0 28 0>;
43
44 vdd-hba-supply = <&xxx_reg0>;
45 vdd-hba-fixed-regulator;
46 vcc-supply = <&xxx_reg1>;
47 vcc-supply-1p8;
48 vccq-supply = <&xxx_reg2>;
49 vccq2-supply = <&xxx_reg3>;
50 vcc-max-microamp = 500000;
51 vccq-max-microamp = 200000;
52 vccq2-max-microamp = 200000;
53
54 clocks = <&core 0>, <&ref 0>, <&iface 0>;
55 clock-names = "core_clk", "ref_clk", "iface_clk";
56 freq-table-hz = <100000000 200000000>, <0 0>, <0 0>;
16 }; 57 };
diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt b/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt
index 1bae71e9ad47..38a548001e3a 100644
--- a/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt
+++ b/Documentation/devicetree/bindings/usb/ci-hdrc-imx.txt
@@ -19,6 +19,7 @@ Optional properties:
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- maximum-speed: limit the maximum connection speed to "full-speed".
22- tpl-support: TPL (Targeted Peripheral List) feature for targeted hosts
22 23
23Examples: 24Examples:
24usb@02184000 { /* USB OTG */ 25usb@02184000 { /* USB OTG */
@@ -30,4 +31,5 @@ usb@02184000 { /* USB OTG */
30 disable-over-current; 31 disable-over-current;
31 external-vbus-divider; 32 external-vbus-divider;
32 maximum-speed = "full-speed"; 33 maximum-speed = "full-speed";
34 tpl-support;
33}; 35};
diff --git a/Documentation/devicetree/bindings/usb/dwc2.txt b/Documentation/devicetree/bindings/usb/dwc2.txt
index 467ddd15d40c..482f815363ef 100644
--- a/Documentation/devicetree/bindings/usb/dwc2.txt
+++ b/Documentation/devicetree/bindings/usb/dwc2.txt
@@ -4,6 +4,9 @@ Platform DesignWare HS OTG USB 2.0 controller
4Required properties: 4Required properties:
5- compatible : One of: 5- compatible : One of:
6 - brcm,bcm2835-usb: The DWC2 USB controller instance in the BCM2835 SoC. 6 - brcm,bcm2835-usb: The DWC2 USB controller instance in the BCM2835 SoC.
7 - rockchip,rk3066-usb: The DWC2 USB controller instance in the rk3066 Soc;
8 - "rockchip,rk3188-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3188 Soc;
9 - "rockchip,rk3288-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3288 Soc;
7 - snps,dwc2: A generic DWC2 USB controller with default parameters. 10 - snps,dwc2: A generic DWC2 USB controller with default parameters.
8- reg : Should contain 1 register range (address and length) 11- reg : Should contain 1 register range (address and length)
9- interrupts : Should contain 1 interrupt 12- interrupts : Should contain 1 interrupt
@@ -15,6 +18,8 @@ Optional properties:
15- phys: phy provider specifier 18- phys: phy provider specifier
16- phy-names: shall be "usb2-phy" 19- phy-names: shall be "usb2-phy"
17Refer to phy/phy-bindings.txt for generic phy consumer properties 20Refer to phy/phy-bindings.txt for generic phy consumer properties
21- dr_mode: shall be one of "host", "peripheral" and "otg"
22 Refer to usb/generic.txt
18 23
19Example: 24Example:
20 25
diff --git a/Documentation/devicetree/bindings/usb/dwc3-st.txt b/Documentation/devicetree/bindings/usb/dwc3-st.txt
new file mode 100644
index 000000000000..f9d70252bbb2
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/dwc3-st.txt
@@ -0,0 +1,68 @@
1ST DWC3 glue logic
2
3This file documents the parameters for the dwc3-st driver.
4This driver controls the glue logic used to configure the dwc3 core on
5STiH407 based platforms.
6
7Required properties:
8 - compatible : must be "st,stih407-dwc3"
9 - reg : glue logic base address and USB syscfg ctrl register offset
10 - reg-names : should be "reg-glue" and "syscfg-reg"
11 - st,syscon : should be phandle to system configuration node which
12 encompasses the glue registers
13 - resets : list of phandle and reset specifier pairs. There should be two entries, one
14 for the powerdown and softreset lines of the usb3 IP
15 - reset-names : list of reset signal names. Names should be "powerdown" and "softreset"
16See: Documentation/devicetree/bindings/reset/st,sti-powerdown.txt
17See: Documentation/devicetree/bindings/reset/reset.txt
18
19 - #address-cells, #size-cells : should be '1' if the device has sub-nodes
20 with 'reg' property
21
22 - pinctl-names : A pinctrl state named "default" must be defined
23See: Documentation/devicetree/bindings/pinctrl/pinctrl-binding.txt
24
25 - pinctrl-0 : Pin control group
26See: Documentation/devicetree/bindings/pinctrl/pinctrl-binding.txt
27
28 - ranges : allows valid 1:1 translation between child's address space and
29 parent's address space
30
31Sub-nodes:
32The dwc3 core should be added as subnode to ST DWC3 glue as shown in the
33example below. The DT binding details of dwc3 can be found in:
34Documentation/devicetree/bindings/usb/dwc3.txt
35
36NB: The dr_mode property described in [1] is NOT optional for this driver, as the default value
37is "otg", which isn't supported by this SoC. Valid dr_mode values for dwc3-st are either "host"
38or "device".
39
40[1] Documentation/devicetree/bindings/usb/generic.txt
41
42Example:
43
44st_dwc3: dwc3@8f94000 {
45 status = "disabled";
46 compatible = "st,stih407-dwc3";
47 reg = <0x08f94000 0x1000>, <0x110 0x4>;
48 reg-names = "reg-glue", "syscfg-reg";
49 st,syscfg = <&syscfg_core>;
50 resets = <&powerdown STIH407_USB3_POWERDOWN>,
51 <&softreset STIH407_MIPHY2_SOFTRESET>;
52 reset-names = "powerdown",
53 "softreset";
54 #address-cells = <1>;
55 #size-cells = <1>;
56 pinctrl-names = "default";
57 pinctrl-0 = <&pinctrl_usb3>;
58 ranges;
59
60 dwc3: dwc3@9900000 {
61 compatible = "snps,dwc3";
62 reg = <0x09900000 0x100000>;
63 interrupts = <GIC_SPI 155 IRQ_TYPE_NONE>;
64 dr_mode = "host";
65 phys-names = "usb2-phy", "usb3-phy";
66 phys = <&usb2_picophy2>, <&phy_port2 MIPHY_TYPE_USB>;
67 };
68};
diff --git a/Documentation/devicetree/bindings/usb/ehci-st.txt b/Documentation/devicetree/bindings/usb/ehci-st.txt
new file mode 100644
index 000000000000..fb45fa5770bb
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/ehci-st.txt
@@ -0,0 +1,39 @@
1ST USB EHCI controller
2
3Required properties:
4 - compatible : must be "st,st-ehci-300x"
5 - reg : physical base addresses of the controller and length of memory mapped
6 region
7 - interrupts : one EHCI interrupt should be described here
8 - pinctrl-names : a pinctrl state named "default" must be defined
9 - pinctrl-0 : phandle referencing pin configuration of the USB controller
10See: Documentation/devicetree/bindings/pinctrl/pinctrl-binding.txt
11 - clocks : phandle list of usb clocks
12 - clock-names : should be "ic" for interconnect clock and "clk48"
13See: Documentation/devicetree/bindings/clock/clock-bindings.txt
14
15 - phys : phandle for the PHY device
16 - phy-names : should be "usb"
17 - resets : phandle + reset specifier pairs to the powerdown and softreset lines
18 of the USB IP
19 - reset-names : should be "power" and "softreset"
20See: Documentation/devicetree/bindings/reset/st,sti-powerdown.txt
21See: Documentation/devicetree/bindings/reset/reset.txt
22
23Example:
24
25 ehci1: usb@0xfe203e00 {
26 compatible = "st,st-ehci-300x";
27 reg = <0xfe203e00 0x100>;
28 interrupts = <GIC_SPI 148 IRQ_TYPE_NONE>;
29 pinctrl-names = "default";
30 pinctrl-0 = <&pinctrl_usb1>;
31 clocks = <&clk_s_a1_ls 0>;
32 phys = <&usb2_phy>;
33 phy-names = "usb";
34 status = "okay";
35
36 resets = <&powerdown STIH416_USB1_POWERDOWN>,
37 <&softreset STIH416_USB1_SOFTRESET>;
38 reset-names = "power", "softreset";
39 };
diff --git a/Documentation/devicetree/bindings/usb/mxs-phy.txt b/Documentation/devicetree/bindings/usb/mxs-phy.txt
index cef181a9d8bd..379b84a567cc 100644
--- a/Documentation/devicetree/bindings/usb/mxs-phy.txt
+++ b/Documentation/devicetree/bindings/usb/mxs-phy.txt
@@ -5,6 +5,8 @@ Required properties:
5 * "fsl,imx23-usbphy" for imx23 and imx28 5 * "fsl,imx23-usbphy" for imx23 and imx28
6 * "fsl,imx6q-usbphy" for imx6dq and imx6dl 6 * "fsl,imx6q-usbphy" for imx6dq and imx6dl
7 * "fsl,imx6sl-usbphy" for imx6sl 7 * "fsl,imx6sl-usbphy" for imx6sl
8 * "fsl,vf610-usbphy" for Vybrid vf610
9 * "fsl,imx6sx-usbphy" for imx6sx
8 "fsl,imx23-usbphy" is still a fallback for other strings 10 "fsl,imx23-usbphy" is still a fallback for other strings
9- reg: Should contain registers location and length 11- reg: Should contain registers location and length
10- interrupts: Should contain phy interrupt 12- interrupts: Should contain phy interrupt
diff --git a/Documentation/devicetree/bindings/usb/ohci-st.txt b/Documentation/devicetree/bindings/usb/ohci-st.txt
new file mode 100644
index 000000000000..6d8393748da2
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/ohci-st.txt
@@ -0,0 +1,37 @@
1ST USB OHCI controller
2
3Required properties:
4
5 - compatible : must be "st,st-ohci-300x"
6 - reg : physical base addresses of the controller and length of memory mapped
7 region
8 - interrupts : one OHCI controller interrupt should be described here
9 - clocks : phandle list of usb clocks
10 - clock-names : should be "ic" for interconnect clock and "clk48"
11See: Documentation/devicetree/bindings/clock/clock-bindings.txt
12
13 - phys : phandle for the PHY device
14 - phy-names : should be "usb"
15
16 - resets : phandle to the powerdown and reset controller for the USB IP
17 - reset-names : should be "power" and "softreset".
18See: Documentation/devicetree/bindings/reset/st,sti-powerdown.txt
19See: Documentation/devicetree/bindings/reset/reset.txt
20
21Example:
22
23 ohci0: usb@0xfe1ffc00 {
24 compatible = "st,st-ohci-300x";
25 reg = <0xfe1ffc00 0x100>;
26 interrupts = <GIC_SPI 149 IRQ_TYPE_NONE>;
27 clocks = <&clk_s_a1_ls 0>,
28 <&clockgen_b0 0>;
29 clock-names = "ic", "clk48";
30 phys = <&usb2_phy>;
31 phy-names = "usb";
32 status = "okay";
33
34 resets = <&powerdown STIH416_USB0_POWERDOWN>,
35 <&softreset STIH416_USB0_SOFTRESET>;
36 reset-names = "power", "softreset";
37 };
diff --git a/Documentation/devicetree/bindings/usb/qcom,dwc3.txt b/Documentation/devicetree/bindings/usb/qcom,dwc3.txt
new file mode 100644
index 000000000000..ca164e71dd50
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/qcom,dwc3.txt
@@ -0,0 +1,66 @@
1Qualcomm SuperSpeed DWC3 USB SoC controller
2
3Required properties:
4- compatible: should contain "qcom,dwc3"
5- clocks: A list of phandle + clock-specifier pairs for the
6 clocks listed in clock-names
7- clock-names: Should contain the following:
8 "core" Master/Core clock, have to be >= 125 MHz for SS
9 operation and >= 60MHz for HS operation
10
11Optional clocks:
12 "iface" System bus AXI clock. Not present on all platforms
13 "sleep" Sleep clock, used when USB3 core goes into low
14 power mode (U3).
15
16Required child node:
17A child node must exist to represent the core DWC3 IP block. The name of
18the node is not important. The content of the node is defined in dwc3.txt.
19
20Phy documentation is provided in the following places:
21Documentation/devicetree/bindings/phy/qcom,dwc3-usb-phy.txt
22
23Example device nodes:
24
25 hs_phy: phy@100f8800 {
26 compatible = "qcom,dwc3-hs-usb-phy";
27 reg = <0x100f8800 0x30>;
28 clocks = <&gcc USB30_0_UTMI_CLK>;
29 clock-names = "ref";
30 #phy-cells = <0>;
31
32 status = "ok";
33 };
34
35 ss_phy: phy@100f8830 {
36 compatible = "qcom,dwc3-ss-usb-phy";
37 reg = <0x100f8830 0x30>;
38 clocks = <&gcc USB30_0_MASTER_CLK>;
39 clock-names = "ref";
40 #phy-cells = <0>;
41
42 status = "ok";
43 };
44
45 usb3_0: usb30@0 {
46 compatible = "qcom,dwc3";
47 #address-cells = <1>;
48 #size-cells = <1>;
49 clocks = <&gcc USB30_0_MASTER_CLK>;
50 clock-names = "core";
51
52 ranges;
53
54 status = "ok";
55
56 dwc3@10000000 {
57 compatible = "snps,dwc3";
58 reg = <0x10000000 0xcd00>;
59 interrupts = <0 205 0x4>;
60 phys = <&hs_phy>, <&ss_phy>;
61 phy-names = "usb2-phy", "usb3-phy";
62 tx-fifo-resize;
63 dr_mode = "host";
64 };
65 };
66
diff --git a/Documentation/devicetree/bindings/usb/renesas_usbhs.txt b/Documentation/devicetree/bindings/usb/renesas_usbhs.txt
new file mode 100644
index 000000000000..b08c903f8668
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/renesas_usbhs.txt
@@ -0,0 +1,24 @@
1Renesas Electronics USBHS driver
2
3Required properties:
4 - compatible: Must contain one of the following:
5 - "renesas,usbhs-r8a7790"
6 - "renesas,usbhs-r8a7791"
7 - reg: Base address and length of the register for the USBHS
8 - interrupts: Interrupt specifier for the USBHS
9 - clocks: A list of phandle + clock specifier pairs
10
11Optional properties:
12 - renesas,buswait: Integer to use BUSWAIT register
13 - renesas,enable-gpio: A gpio specifier to check GPIO determining if USB
14 function should be enabled
15 - phys: phandle + phy specifier pair
16 - phy-names: must be "usb"
17
18Example:
19 usbhs: usb@e6590000 {
20 compatible = "renesas,usbhs-r8a7790";
21 reg = <0 0xe6590000 0 0x100>;
22 interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
23 clocks = <&mstp7_clks R8A7790_CLK_HSUSB>;
24 };
diff --git a/Documentation/devicetree/bindings/usb/udc-xilinx.txt b/Documentation/devicetree/bindings/usb/udc-xilinx.txt
new file mode 100644
index 000000000000..47b4e397a08d
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/udc-xilinx.txt
@@ -0,0 +1,18 @@
1Xilinx USB2 device controller
2
3Required properties:
4- compatible : Should be "xlnx,usb2-device-4.00.a"
5- reg : Physical base address and size of the USB2
6 device registers map.
7- interrupts : Should contain single irq line of USB2 device
8 controller
9- xlnx,has-builtin-dma : if DMA is included
10
11Example:
12 axi-usb2-device@42e00000 {
13 compatible = "xlnx,usb2-device-4.00.a";
14 interrupts = <0x0 0x39 0x1>;
15 reg = <0x42e00000 0x10000>;
16 xlnx,has-builtin-dma;
17 };
18
diff --git a/Documentation/devicetree/bindings/usb/usb3503.txt b/Documentation/devicetree/bindings/usb/usb3503.txt
index 221ac0dbc678..52493b1480e2 100644
--- a/Documentation/devicetree/bindings/usb/usb3503.txt
+++ b/Documentation/devicetree/bindings/usb/usb3503.txt
@@ -8,8 +8,8 @@ Optional properties:
8 if I2C is used. 8 if I2C is used.
9- connect-gpios: Should specify GPIO for connect. 9- connect-gpios: Should specify GPIO for connect.
10- disabled-ports: Should specify the ports unused. 10- disabled-ports: Should specify the ports unused.
11 '1' or '2' or '3' are availe for this property to describe the port 11 '1' or '2' or '3' are available for this property to describe the port
12 number. 1~3 property values are possible to be desribed. 12 number. 1~3 property values are possible to be described.
13 Do not describe this property if all ports have to be enabled. 13 Do not describe this property if all ports have to be enabled.
14- intn-gpios: Should specify GPIO for interrupt. 14- intn-gpios: Should specify GPIO for interrupt.
15- reset-gpios: Should specify GPIO for reset. 15- reset-gpios: Should specify GPIO for reset.
diff --git a/Documentation/devicetree/bindings/usb/usbmisc-imx.txt b/Documentation/devicetree/bindings/usb/usbmisc-imx.txt
index 97ce94e1a6cc..c101a4b17131 100644
--- a/Documentation/devicetree/bindings/usb/usbmisc-imx.txt
+++ b/Documentation/devicetree/bindings/usb/usbmisc-imx.txt
@@ -4,6 +4,7 @@ Required properties:
4- #index-cells: Cells used to descibe usb controller index. Should be <1> 4- #index-cells: Cells used to descibe usb controller index. Should be <1>
5- compatible: Should be one of below: 5- compatible: Should be one of below:
6 "fsl,imx6q-usbmisc" for imx6q 6 "fsl,imx6q-usbmisc" for imx6q
7 "fsl,vf610-usbmisc" for Vybrid vf610
7- reg: Should contain registers location and length 8- reg: Should contain registers location and length
8 9
9Examples: 10Examples:
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index d3a45796d249..723999d73744 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -14,6 +14,7 @@ allwinner Allwinner Technology Co., Ltd.
14altr Altera Corp. 14altr Altera Corp.
15amcc Applied Micro Circuits Corporation (APM, formally AMCC) 15amcc Applied Micro Circuits Corporation (APM, formally AMCC)
16amd Advanced Micro Devices (AMD), Inc. 16amd Advanced Micro Devices (AMD), Inc.
17amlogic Amlogic, Inc.
17ams AMS AG 18ams AMS AG
18amstaos AMS-Taos Inc. 19amstaos AMS-Taos Inc.
19apm Applied Micro Circuits Corporation (APM) 20apm Applied Micro Circuits Corporation (APM)
@@ -29,6 +30,7 @@ calxeda Calxeda
29capella Capella Microsystems, Inc 30capella Capella Microsystems, Inc
30cavium Cavium, Inc. 31cavium Cavium, Inc.
31cdns Cadence Design Systems Inc. 32cdns Cadence Design Systems Inc.
33chipidea Chipidea, Inc
32chrp Common Hardware Reference Platform 34chrp Common Hardware Reference Platform
33chunghwa Chunghwa Picture Tubes Ltd. 35chunghwa Chunghwa Picture Tubes Ltd.
34cirrus Cirrus Logic, Inc. 36cirrus Cirrus Logic, Inc.
@@ -38,24 +40,30 @@ dallas Maxim Integrated Products (formerly Dallas Semiconductor)
38davicom DAVICOM Semiconductor, Inc. 40davicom DAVICOM Semiconductor, Inc.
39denx Denx Software Engineering 41denx Denx Software Engineering
40digi Digi International Inc. 42digi Digi International Inc.
43dlg Dialog Semiconductor
41dlink D-Link Corporation 44dlink D-Link Corporation
42dmo Data Modul AG 45dmo Data Modul AG
43ebv EBV Elektronik 46ebv EBV Elektronik
44edt Emerging Display Technologies 47edt Emerging Display Technologies
45emmicro EM Microelectronic 48emmicro EM Microelectronic
49energymicro Silicon Laboratories (formerly Energy Micro AS)
46epcos EPCOS AG 50epcos EPCOS AG
47epfl Ecole Polytechnique Fédérale de Lausanne 51epfl Ecole Polytechnique Fédérale de Lausanne
48epson Seiko Epson Corp. 52epson Seiko Epson Corp.
49est ESTeem Wireless Modems 53est ESTeem Wireless Modems
50eukrea Eukréa Electromatique 54eukrea Eukréa Electromatique
55everest Everest Semiconductor Co. Ltd.
51excito Excito 56excito Excito
57fcs Fairchild Semiconductor
52fsl Freescale Semiconductor 58fsl Freescale Semiconductor
53GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc. 59GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc.
54gef GE Fanuc Intelligent Platforms Embedded Systems, Inc. 60gef GE Fanuc Intelligent Platforms Embedded Systems, Inc.
61geniatech Geniatech, Inc.
55globalscale Globalscale Technologies, Inc. 62globalscale Globalscale Technologies, Inc.
56gmt Global Mixed-mode Technology, Inc. 63gmt Global Mixed-mode Technology, Inc.
57google Google, Inc. 64google Google, Inc.
58gumstix Gumstix, Inc. 65gumstix Gumstix, Inc.
66gw Gateworks Corporation
59haoyu Haoyu Microelectronic Co. Ltd. 67haoyu Haoyu Microelectronic Co. Ltd.
60hisilicon Hisilicon Limited. 68hisilicon Hisilicon Limited.
61honeywell Honeywell 69honeywell Honeywell
@@ -65,6 +73,7 @@ ibm International Business Machines (IBM)
65idt Integrated Device Technologies, Inc. 73idt Integrated Device Technologies, Inc.
66iom Iomega Corporation 74iom Iomega Corporation
67img Imagination Technologies Ltd. 75img Imagination Technologies Ltd.
76innolux Innolux Corporation
68intel Intel Corporation 77intel Intel Corporation
69intercontrol Inter Control Group 78intercontrol Inter Control Group
70isee ISEE 2007 S.L. 79isee ISEE 2007 S.L.
@@ -83,6 +92,7 @@ maxim Maxim Integrated Products
83mediatek MediaTek Inc. 92mediatek MediaTek Inc.
84micrel Micrel Inc. 93micrel Micrel Inc.
85microchip Microchip Technology Inc. 94microchip Microchip Technology Inc.
95mitsubishi Mitsubishi Electric Corporation
86mosaixtech Mosaix Technologies, Inc. 96mosaixtech Mosaix Technologies, Inc.
87moxa Moxa 97moxa Moxa
88mpl MPL AG 98mpl MPL AG
@@ -124,7 +134,9 @@ sil Silicon Image
124silabs Silicon Laboratories 134silabs Silicon Laboratories
125simtek 135simtek
126sii Seiko Instruments, Inc. 136sii Seiko Instruments, Inc.
137silergy Silergy Corp.
127sirf SiRF Technology, Inc. 138sirf SiRF Technology, Inc.
139sitronix Sitronix Technology Corporation
128smsc Standard Microsystems Corporation 140smsc Standard Microsystems Corporation
129snps Synopsys, Inc. 141snps Synopsys, Inc.
130solidrun SolidRun 142solidrun SolidRun
@@ -134,12 +146,13 @@ st STMicroelectronics
134ste ST-Ericsson 146ste ST-Ericsson
135stericsson ST-Ericsson 147stericsson ST-Ericsson
136synology Synology, Inc. 148synology Synology, Inc.
149thine THine Electronics, Inc.
137ti Texas Instruments 150ti Texas Instruments
138tlm Trusted Logic Mobility 151tlm Trusted Logic Mobility
139toradex Toradex AG 152toradex Toradex AG
140toshiba Toshiba Corporation 153toshiba Toshiba Corporation
141toumaz Toumaz 154toumaz Toumaz
142usi Universal Scientifc Industrial Co., Ltd. 155usi Universal Scientific Industrial Co., Ltd.
143v3 V3 Semiconductor 156v3 V3 Semiconductor
144variscite Variscite Ltd. 157variscite Variscite Ltd.
145via VIA Technologies, Inc. 158via VIA Technologies, Inc.
@@ -148,6 +161,7 @@ winbond Winbond Electronics corp.
148wlf Wolfson Microelectronics 161wlf Wolfson Microelectronics
149wm Wondermedia Technologies, Inc. 162wm Wondermedia Technologies, Inc.
150xes Extreme Engineering Solutions (X-ES) 163xes Extreme Engineering Solutions (X-ES)
164xillybus Xillybus Ltd.
151xlnx Xilinx 165xlnx Xilinx
152zyxel ZyXEL Communications Corp. 166zyxel ZyXEL Communications Corp.
153zarlink Zarlink Semiconductor 167zarlink Zarlink Semiconductor
diff --git a/Documentation/devicetree/bindings/video/adi,adv7123.txt b/Documentation/devicetree/bindings/video/adi,adv7123.txt
new file mode 100644
index 000000000000..a6b2b2b8f3d9
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/adi,adv7123.txt
@@ -0,0 +1,50 @@
1Analog Device ADV7123 Video DAC
2-------------------------------
3
4The ADV7123 is a digital-to-analog converter that outputs VGA signals from a
5parallel video input.
6
7Required properties:
8
9- compatible: Should be "adi,adv7123"
10
11Optional properties:
12
13- psave-gpios: Power save control GPIO
14
15Required nodes:
16
17The ADV7123 has two video ports. Their connections are modeled using the OF
18graph bindings specified in Documentation/devicetree/bindings/graph.txt.
19
20- Video port 0 for DPI input
21- Video port 1 for VGA output
22
23
24Example
25-------
26
27 adv7123: encoder@0 {
28 compatible = "adi,adv7123";
29
30 ports {
31 #address-cells = <1>;
32 #size-cells = <0>;
33
34 port@0 {
35 reg = <0>;
36
37 adv7123_in: endpoint@0 {
38 remote-endpoint = <&dpi_out>;
39 };
40 };
41
42 port@1 {
43 reg = <1>;
44
45 adv7123_out: endpoint@0 {
46 remote-endpoint = <&vga_connector_in>;
47 };
48 };
49 };
50 };
diff --git a/Documentation/devicetree/bindings/video/analog-tv-connector.txt b/Documentation/devicetree/bindings/video/analog-tv-connector.txt
index 0218fcdc1299..0c0970c210ab 100644
--- a/Documentation/devicetree/bindings/video/analog-tv-connector.txt
+++ b/Documentation/devicetree/bindings/video/analog-tv-connector.txt
@@ -2,7 +2,7 @@ Analog TV Connector
2=================== 2===================
3 3
4Required properties: 4Required properties:
5- compatible: "composite-connector" or "svideo-connector" 5- compatible: "composite-video-connector" or "svideo-connector"
6 6
7Optional properties: 7Optional properties:
8- label: a symbolic name for the connector 8- label: a symbolic name for the connector
@@ -14,7 +14,7 @@ Example
14------- 14-------
15 15
16tv: connector { 16tv: connector {
17 compatible = "composite-connector"; 17 compatible = "composite-video-connector";
18 label = "tv"; 18 label = "tv";
19 19
20 port { 20 port {
diff --git a/Documentation/devicetree/bindings/video/atmel,lcdc.txt b/Documentation/devicetree/bindings/video/atmel,lcdc.txt
index b75af94a5e52..7d0c4a1ab811 100644
--- a/Documentation/devicetree/bindings/video/atmel,lcdc.txt
+++ b/Documentation/devicetree/bindings/video/atmel,lcdc.txt
@@ -39,8 +39,8 @@ Atmel LCDC Display
39----------------------------------------------------- 39-----------------------------------------------------
40Required properties (as per of_videomode_helper): 40Required properties (as per of_videomode_helper):
41 41
42 - atmel,dmacon: dma controler configuration 42 - atmel,dmacon: dma controller configuration
43 - atmel,lcdcon2: lcd controler configuration 43 - atmel,lcdcon2: lcd controller configuration
44 - atmel,guard-time: lcd guard time (Delay in frame periods) 44 - atmel,guard-time: lcd guard time (Delay in frame periods)
45 - bits-per-pixel: lcd panel bit-depth. 45 - bits-per-pixel: lcd panel bit-depth.
46 46
diff --git a/Documentation/devicetree/bindings/video/exynos_dsim.txt b/Documentation/devicetree/bindings/video/exynos_dsim.txt
index 31036c667d54..e74243b4b317 100644
--- a/Documentation/devicetree/bindings/video/exynos_dsim.txt
+++ b/Documentation/devicetree/bindings/video/exynos_dsim.txt
@@ -2,6 +2,7 @@ Exynos MIPI DSI Master
2 2
3Required properties: 3Required properties:
4 - compatible: value should be one of the following 4 - compatible: value should be one of the following
5 "samsung,exynos3250-mipi-dsi" /* for Exynos3250/3472 SoCs */
5 "samsung,exynos4210-mipi-dsi" /* for Exynos4 SoCs */ 6 "samsung,exynos4210-mipi-dsi" /* for Exynos4 SoCs */
6 "samsung,exynos5410-mipi-dsi" /* for Exynos5410/5420/5440 SoCs */ 7 "samsung,exynos5410-mipi-dsi" /* for Exynos5410/5420/5440 SoCs */
7 - reg: physical base address and length of the registers set for the device 8 - reg: physical base address and length of the registers set for the device
diff --git a/Documentation/devicetree/bindings/video/fsl,imx-fb.txt b/Documentation/devicetree/bindings/video/fsl,imx-fb.txt
index 0329f60d431e..8c8c2f4e4c3f 100644
--- a/Documentation/devicetree/bindings/video/fsl,imx-fb.txt
+++ b/Documentation/devicetree/bindings/video/fsl,imx-fb.txt
@@ -20,7 +20,7 @@ Optional properties:
20 register is not modified as recommended by the datasheet. 20 register is not modified as recommended by the datasheet.
21- fsl,lpccr: Contrast Control Register value. This property provides the 21- fsl,lpccr: Contrast Control Register value. This property provides the
22 default value for the contrast control register. 22 default value for the contrast control register.
23 If that property is ommited, the register is zeroed. 23 If that property is omitted, the register is zeroed.
24- fsl,lscr1: LCDC Sharp Configuration Register value. 24- fsl,lscr1: LCDC Sharp Configuration Register value.
25 25
26Example: 26Example:
diff --git a/Documentation/devicetree/bindings/video/renesas,du.txt b/Documentation/devicetree/bindings/video/renesas,du.txt
new file mode 100644
index 000000000000..5102830f2760
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/renesas,du.txt
@@ -0,0 +1,84 @@
1* Renesas R-Car Display Unit (DU)
2
3Required Properties:
4
5 - compatible: must be one of the following.
6 - "renesas,du-r8a7779" for R8A7779 (R-Car H1) compatible DU
7 - "renesas,du-r8a7790" for R8A7790 (R-Car H2) compatible DU
8 - "renesas,du-r8a7791" for R8A7791 (R-Car M2) compatible DU
9
10 - reg: A list of base address and length of each memory resource, one for
11 each entry in the reg-names property.
12 - reg-names: Name of the memory resources. The DU requires one memory
13 resource for the DU core (named "du") and one memory resource for each
14 LVDS encoder (named "lvds.x" with "x" being the LVDS controller numerical
15 index).
16
17 - interrupt-parent: phandle of the parent interrupt controller.
18 - interrupts: Interrupt specifiers for the DU interrupts.
19
20 - clocks: A list of phandles + clock-specifier pairs, one for each entry in
21 the clock-names property.
22 - clock-names: Name of the clocks. This property is model-dependent.
23 - R8A7779 uses a single functional clock. The clock doesn't need to be
24 named.
25 - R8A7790 and R8A7791 use one functional clock per channel and one clock
26 per LVDS encoder. The functional clocks must be named "du.x" with "x"
27 being the channel numerical index. The LVDS clocks must be named
28 "lvds.x" with "x" being the LVDS encoder numerical index.
29
30Required nodes:
31
32The connections to the DU output video ports are modeled using the OF graph
33bindings specified in Documentation/devicetree/bindings/graph.txt.
34
35The following table lists for each supported model the port number
36corresponding to each DU output.
37
38 Port 0 Port1 Port2
39-----------------------------------------------------------------------------
40 R8A7779 (H1) DPAD 0 DPAD 1 -
41 R8A7790 (H2) DPAD LVDS 0 LVDS 1
42 R8A7791 (M2) DPAD LVDS 0 -
43
44
45Example: R8A7790 (R-Car H2) DU
46
47 du: du@feb00000 {
48 compatible = "renesas,du-r8a7790";
49 reg = <0 0xfeb00000 0 0x70000>,
50 <0 0xfeb90000 0 0x1c>,
51 <0 0xfeb94000 0 0x1c>;
52 reg-names = "du", "lvds.0", "lvds.1";
53 interrupt-parent = <&gic>;
54 interrupts = <0 256 IRQ_TYPE_LEVEL_HIGH>,
55 <0 268 IRQ_TYPE_LEVEL_HIGH>,
56 <0 269 IRQ_TYPE_LEVEL_HIGH>;
57 clocks = <&mstp7_clks R8A7790_CLK_DU0>,
58 <&mstp7_clks R8A7790_CLK_DU1>,
59 <&mstp7_clks R8A7790_CLK_DU2>,
60 <&mstp7_clks R8A7790_CLK_LVDS0>,
61 <&mstp7_clks R8A7790_CLK_LVDS1>;
62 clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1";
63
64 ports {
65 #address-cells = <1>;
66 #size-cells = <0>;
67
68 port@0 {
69 reg = <0>;
70 du_out_rgb: endpoint {
71 };
72 };
73 port@1 {
74 reg = <1>;
75 du_out_lvds0: endpoint {
76 };
77 };
78 port@2 {
79 reg = <2>;
80 du_out_lvds1: endpoint {
81 };
82 };
83 };
84 };
diff --git a/Documentation/devicetree/bindings/video/samsung-fimd.txt b/Documentation/devicetree/bindings/video/samsung-fimd.txt
index ecc899b9817b..4e6c77c85546 100644
--- a/Documentation/devicetree/bindings/video/samsung-fimd.txt
+++ b/Documentation/devicetree/bindings/video/samsung-fimd.txt
@@ -9,6 +9,7 @@ Required properties:
9 "samsung,s3c2443-fimd"; /* for S3C24XX SoCs */ 9 "samsung,s3c2443-fimd"; /* for S3C24XX SoCs */
10 "samsung,s3c6400-fimd"; /* for S3C64XX SoCs */ 10 "samsung,s3c6400-fimd"; /* for S3C64XX SoCs */
11 "samsung,s5pv210-fimd"; /* for S5PV210 SoC */ 11 "samsung,s5pv210-fimd"; /* for S5PV210 SoC */
12 "samsung,exynos3250-fimd"; /* for Exynos3250/3472 SoCs */
12 "samsung,exynos4210-fimd"; /* for Exynos4 SoCs */ 13 "samsung,exynos4210-fimd"; /* for Exynos4 SoCs */
13 "samsung,exynos5250-fimd"; /* for Exynos5 SoCs */ 14 "samsung,exynos5250-fimd"; /* for Exynos5 SoCs */
14 15
diff --git a/Documentation/devicetree/bindings/video/thine,thc63lvdm83d b/Documentation/devicetree/bindings/video/thine,thc63lvdm83d
new file mode 100644
index 000000000000..527e236e9a2a
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/thine,thc63lvdm83d
@@ -0,0 +1,50 @@
1THine Electronics THC63LVDM83D LVDS serializer
2----------------------------------------------
3
4The THC63LVDM83D is an LVDS serializer designed to support pixel data
5transmission between a host and a flat panel.
6
7Required properties:
8
9- compatible: Should be "thine,thc63lvdm83d"
10
11Optional properties:
12
13- pwdn-gpios: Power down control GPIO
14
15Required nodes:
16
17The THC63LVDM83D has two video ports. Their connections are modeled using the
18OFgraph bindings specified in Documentation/devicetree/bindings/graph.txt.
19
20- Video port 0 for CMOS/TTL input
21- Video port 1 for LVDS output
22
23
24Example
25-------
26
27 lvds_enc: encoder@0 {
28 compatible = "thine,thc63lvdm83d";
29
30 ports {
31 #address-cells = <1>;
32 #size-cells = <0>;
33
34 port@0 {
35 reg = <0>;
36
37 lvds_enc_in: endpoint@0 {
38 remote-endpoint = <&rgb_out>;
39 };
40 };
41
42 port@1 {
43 reg = <1>;
44
45 lvds_enc_out: endpoint@0 {
46 remote-endpoint = <&panel_in>;
47 };
48 };
49 };
50 };
diff --git a/Documentation/devicetree/bindings/video/vga-connector.txt b/Documentation/devicetree/bindings/video/vga-connector.txt
new file mode 100644
index 000000000000..c727f298e7ad
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/vga-connector.txt
@@ -0,0 +1,36 @@
1VGA Connector
2=============
3
4Required properties:
5
6- compatible: "vga-connector"
7
8Optional properties:
9
10- label: a symbolic name for the connector corresponding to a hardware label
11- ddc-i2c-bus: phandle to the I2C bus that is connected to VGA DDC
12
13Required nodes:
14
15The VGA connector internal connections are modeled using the OF graph bindings
16specified in Documentation/devicetree/bindings/graph.txt.
17
18The VGA connector has a single port that must be connected to a video source
19port.
20
21
22Example
23-------
24
25vga0: connector@0 {
26 compatible = "vga-connector";
27 label = "vga";
28
29 ddc-i2c-bus = <&i2c3>;
30
31 port {
32 vga_connector_in: endpoint {
33 remote-endpoint = <&adv7123_out>;
34 };
35 };
36};
diff --git a/Documentation/devicetree/bindings/staging/xillybus.txt b/Documentation/devicetree/bindings/xillybus/xillybus.txt
index 9e316dc2e40f..9e316dc2e40f 100644
--- a/Documentation/devicetree/bindings/staging/xillybus.txt
+++ b/Documentation/devicetree/bindings/xillybus/xillybus.txt
diff --git a/Documentation/devicetree/booting-without-of.txt b/Documentation/devicetree/booting-without-of.txt
index 1f013bd0d320..77685185cf3b 100644
--- a/Documentation/devicetree/booting-without-of.txt
+++ b/Documentation/devicetree/booting-without-of.txt
@@ -51,6 +51,8 @@ Table of Contents
51 51
52 VIII - Specifying device power management information (sleep property) 52 VIII - Specifying device power management information (sleep property)
53 53
54 IX - Specifying dma bus information
55
54 Appendix A - Sample SOC node for MPC8540 56 Appendix A - Sample SOC node for MPC8540
55 57
56 58
@@ -1332,6 +1334,57 @@ reasonably grouped in this manner, then create a virtual sleep controller
1332(similar to an interrupt nexus, except that defining a standardized 1334(similar to an interrupt nexus, except that defining a standardized
1333sleep-map should wait until its necessity is demonstrated). 1335sleep-map should wait until its necessity is demonstrated).
1334 1336
1337IX - Specifying dma bus information
1338
1339Some devices may have DMA memory range shifted relatively to the beginning of
1340RAM, or even placed outside of kernel RAM. For example, the Keystone 2 SoC
1341worked in LPAE mode with 4G memory has:
1342- RAM range: [0x8 0000 0000, 0x8 FFFF FFFF]
1343- DMA range: [ 0x8000 0000, 0xFFFF FFFF]
1344and DMA range is aliased into first 2G of RAM in HW.
1345
1346In such cases, DMA addresses translation should be performed between CPU phys
1347and DMA addresses. The "dma-ranges" property is intended to be used
1348for describing the configuration of such system in DT.
1349
1350In addition, each DMA master device on the DMA bus may or may not support
1351coherent DMA operations. The "dma-coherent" property is intended to be used
1352for identifying devices supported coherent DMA operations in DT.
1353
1354* DMA Bus master
1355Optional property:
1356- dma-ranges: <prop-encoded-array> encoded as arbitrary number of triplets of
1357 (child-bus-address, parent-bus-address, length). Each triplet specified
1358 describes a contiguous DMA address range.
1359 The dma-ranges property is used to describe the direct memory access (DMA)
1360 structure of a memory-mapped bus whose device tree parent can be accessed
1361 from DMA operations originating from the bus. It provides a means of
1362 defining a mapping or translation between the physical address space of
1363 the bus and the physical address space of the parent of the bus.
1364 (for more information see ePAPR specification)
1365
1366* DMA Bus child
1367Optional property:
1368- dma-ranges: <empty> value. if present - It means that DMA addresses
1369 translation has to be enabled for this device.
1370- dma-coherent: Present if dma operations are coherent
1371
1372Example:
1373soc {
1374 compatible = "ti,keystone","simple-bus";
1375 ranges = <0x0 0x0 0x0 0xc0000000>;
1376 dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>;
1377
1378 [...]
1379
1380 usb: usb@2680000 {
1381 compatible = "ti,keystone-dwc3";
1382
1383 [...]
1384 dma-coherent;
1385 };
1386};
1387
1335Appendix A - Sample SOC node for MPC8540 1388Appendix A - Sample SOC node for MPC8540
1336======================================== 1389========================================
1337 1390
diff --git a/Documentation/devicetree/dynamic-resolution-notes.txt b/Documentation/devicetree/dynamic-resolution-notes.txt
new file mode 100644
index 000000000000..083d23262abe
--- /dev/null
+++ b/Documentation/devicetree/dynamic-resolution-notes.txt
@@ -0,0 +1,25 @@
1Device Tree Dynamic Resolver Notes
2----------------------------------
3
4This document describes the implementation of the in-kernel
5Device Tree resolver, residing in drivers/of/resolver.c and is a
6companion document to Documentation/devicetree/dt-object-internal.txt[1]
7
8How the resolver works
9----------------------
10
11The resolver is given as an input an arbitrary tree compiled with the
12proper dtc option and having a /plugin/ tag. This generates the
13appropriate __fixups__ & __local_fixups__ nodes as described in [1].
14
15In sequence the resolver works by the following steps:
16
171. Get the maximum device tree phandle value from the live tree + 1.
182. Adjust all the local phandles of the tree to resolve by that amount.
193. Using the __local__fixups__ node information adjust all local references
20 by the same amount.
214. For each property in the __fixups__ node locate the node it references
22 in the live tree. This is the label used to tag the node.
235. Retrieve the phandle of the target of the fixup.
246. For each fixup in the property locate the node:property:offset location
25 and replace it with the phandle value.
diff --git a/Documentation/devicetree/of_selftest.txt b/Documentation/devicetree/of_selftest.txt
new file mode 100644
index 000000000000..1e3d5c92b5e3
--- /dev/null
+++ b/Documentation/devicetree/of_selftest.txt
@@ -0,0 +1,211 @@
1Open Firmware Device Tree Selftest
2----------------------------------
3
4Author: Gaurav Minocha <gaurav.minocha.os@gmail.com>
5
61. Introduction
7
8This document explains how the test data required for executing OF selftest
9is attached to the live tree dynamically, independent of the machine's
10architecture.
11
12It is recommended to read the following documents before moving ahead.
13
14[1] Documentation/devicetree/usage-model.txt
15[2] http://www.devicetree.org/Device_Tree_Usage
16
17OF Selftest has been designed to test the interface (include/linux/of.h)
18provided to device driver developers to fetch the device information..etc.
19from the unflattened device tree data structure. This interface is used by
20most of the device drivers in various use cases.
21
22
232. Test-data
24
25The Device Tree Source file (drivers/of/testcase-data/testcases.dts) contains
26the test data required for executing the unit tests automated in
27drivers/of/selftests.c. Currently, following Device Tree Source Include files
28(.dtsi) are included in testcase.dts:
29
30drivers/of/testcase-data/tests-interrupts.dtsi
31drivers/of/testcase-data/tests-platform.dtsi
32drivers/of/testcase-data/tests-phandle.dtsi
33drivers/of/testcase-data/tests-match.dtsi
34
35When the kernel is build with OF_SELFTEST enabled, then the following make rule
36
37$(obj)/%.dtb: $(src)/%.dts FORCE
38 $(call if_changed_dep, dtc)
39
40is used to compile the DT source file (testcase.dts) into a binary blob
41(testcase.dtb), also referred as flattened DT.
42
43After that, using the following rule the binary blob above is wrapped as an
44assembly file (testcase.dtb.S).
45
46$(obj)/%.dtb.S: $(obj)/%.dtb
47 $(call cmd, dt_S_dtb)
48
49The assembly file is compiled into an object file (testcase.dtb.o), and is
50linked into the kernel image.
51
52
532.1. Adding the test data
54
55Un-flattened device tree structure:
56
57Un-flattened device tree consists of connected device_node(s) in form of a tree
58structure described below.
59
60// following struct members are used to construct the tree
61struct device_node {
62 ...
63 struct device_node *parent;
64 struct device_node *child;
65 struct device_node *sibling;
66 struct device_node *allnext; /* next in list of all nodes */
67 ...
68 };
69
70Figure 1, describes a generic structure of machine's un-flattened device tree
71considering only child and sibling pointers. There exists another pointer,
72*parent, that is used to traverse the tree in the reverse direction. So, at
73a particular level the child node and all the sibling nodes will have a parent
74pointer pointing to a common node (e.g. child1, sibling2, sibling3, sibling4's
75parent points to root node)
76
77root ('/')
78 |
79child1 -> sibling2 -> sibling3 -> sibling4 -> null
80 | | | |
81 | | | null
82 | | |
83 | | child31 -> sibling32 -> null
84 | | | |
85 | | null null
86 | |
87 | child21 -> sibling22 -> sibling23 -> null
88 | | | |
89 | null null null
90 |
91child11 -> sibling12 -> sibling13 -> sibling14 -> null
92 | | | |
93 | | | null
94 | | |
95 null null child131 -> null
96 |
97 null
98
99Figure 1: Generic structure of un-flattened device tree
100
101
102*allnext: it is used to link all the nodes of DT into a list. So, for the
103 above tree the list would be as follows:
104
105root->child1->child11->sibling12->sibling13->child131->sibling14->sibling2->
106child21->sibling22->sibling23->sibling3->child31->sibling32->sibling4->null
107
108Before executing OF selftest, it is required to attach the test data to
109machine's device tree (if present). So, when selftest_data_add() is called,
110at first it reads the flattened device tree data linked into the kernel image
111via the following kernel symbols:
112
113__dtb_testcases_begin - address marking the start of test data blob
114__dtb_testcases_end - address marking the end of test data blob
115
116Secondly, it calls of_fdt_unflatten_tree() to unflatten the flattened
117blob. And finally, if the machine's device tree (i.e live tree) is present,
118then it attaches the unflattened test data tree to the live tree, else it
119attaches itself as a live device tree.
120
121attach_node_and_children() uses of_attach_node() to attach the nodes into the
122live tree as explained below. To explain the same, the test data tree described
123 in Figure 2 is attached to the live tree described in Figure 1.
124
125root ('/')
126 |
127 testcase-data
128 |
129 test-child0 -> test-sibling1 -> test-sibling2 -> test-sibling3 -> null
130 | | | |
131 test-child01 null null null
132
133
134allnext list:
135
136root->testcase-data->test-child0->test-child01->test-sibling1->test-sibling2
137->test-sibling3->null
138
139Figure 2: Example test data tree to be attached to live tree.
140
141According to the scenario above, the live tree is already present so it isn't
142required to attach the root('/') node. All other nodes are attached by calling
143of_attach_node() on each node.
144
145In the function of_attach_node(), the new node is attached as the child of the
146given parent in live tree. But, if parent already has a child then the new node
147replaces the current child and turns it into its sibling. So, when the testcase
148data node is attached to the live tree above (Figure 1), the final structure is
149 as shown in Figure 3.
150
151root ('/')
152 |
153testcase-data -> child1 -> sibling2 -> sibling3 -> sibling4 -> null
154 | | | | |
155 (...) | | | null
156 | | child31 -> sibling32 -> null
157 | | | |
158 | | null null
159 | |
160 | child21 -> sibling22 -> sibling23 -> null
161 | | | |
162 | null null null
163 |
164 child11 -> sibling12 -> sibling13 -> sibling14 -> null
165 | | | |
166 null null | null
167 |
168 child131 -> null
169 |
170 null
171-----------------------------------------------------------------------
172
173root ('/')
174 |
175testcase-data -> child1 -> sibling2 -> sibling3 -> sibling4 -> null
176 | | | | |
177 | (...) (...) (...) null
178 |
179test-sibling3 -> test-sibling2 -> test-sibling1 -> test-child0 -> null
180 | | | |
181 null null null test-child01
182
183
184Figure 3: Live device tree structure after attaching the testcase-data.
185
186
187Astute readers would have noticed that test-child0 node becomes the last
188sibling compared to the earlier structure (Figure 2). After attaching first
189test-child0 the test-sibling1 is attached that pushes the child node
190(i.e. test-child0) to become a sibling and makes itself a child node,
191 as mentioned above.
192
193If a duplicate node is found (i.e. if a node with same full_name property is
194already present in the live tree), then the node isn't attached rather its
195properties are updated to the live tree's node by calling the function
196update_node_properties().
197
198
1992.2. Removing the test data
200
201Once the test case execution is complete, selftest_data_remove is called in
202order to remove the device nodes attached initially (first the leaf nodes are
203detached and then moving up the parent nodes are removed, and eventually the
204whole tree). selftest_data_remove() calls detach_node_and_children() that uses
205of_detach_node() to detach the nodes from the live device tree.
206
207To detach a node, of_detach_node() first updates all_next linked list, by
208attaching the previous node's allnext to current node's allnext pointer. And
209then, it either updates the child pointer of given node's parent to its
210sibling or attaches the previous sibling to the given node's sibling, as
211appropriate. That is it :)