aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-02-23 18:46:25 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2017-02-23 18:46:25 -0500
commit195849ea13549dc2390b7db7d80a22d76f73dfae (patch)
tree735baac8a86b727300b52b48bf4634487991c1b8
parent54fff785db6e44208478ae3b0e5c56b853b3e10d (diff)
parenta25996e733db057a27a5f90c5636c3e1e01ad33e (diff)
Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM DT updates from Arnd Bergmann: "A total of 380 patches this time, mostly adding support for more hardware in the device tree descriptions. There is not much exciting here for 4.11, but I've tried my best to condense the information from the pull requests I got into a readable summary. Noteworthy changes to existing platforms include: - The GIC memory map was a bit wrong almost everywhere and now gets fixed up - The Allwinner platforms convert to the generic pinmux properties - The Marvell EBU platforms now use the new DSA binding - Samsung Exynos4212 was unused and gets removed - The Renesas power management got improved New production machines: - Lego Mindstorms EV3: https://www.lego.com/en-us/mindstorms/about-ev3 - Beelink X2 Android media box: http://linux-sunxi.org/Beelink_X2 - "Romulus" baseboard management controller for OpenPower - Axentia TSE-850 Data Radio Channel (DARC) encoder: http://www.axentia.se/db/equipment.html - Luxul XAP-1410 and XWR-1200 wireless access points: https://luxul.com/xap-1410 New SoCs: - Allwinner H2+ and V3s, both minor variations of already supported chips: http://www.allwinnertech.com/index.php?c=product&a=index&id=38 - Marvell Prestera DX packet processors based on Armada XP architecture: http://www.marvell.com/switching/prestera-dx/ - Samsung Exynos4412 Prime gets added, a minor variation of Exynos4412 New developer and reference boards: - Lichee Pi One, Lichee Pi Zero and Orange Pi Zero, all based on Allwinner SoCs: http://linux-sunxi.org/LicheePi_One http://www.orangepi.org/orangepizero/ - SAMA5d36ek Reference platform: http://www.atmel.com/tools/sama5d36-ek.aspx - Beaglebone Green Wireless and Black Wireless: https://beagleboard.org/black-wireless https://beagleboard.org/green-wireless - phyCORE-AM335x System on Module: http://phytec.com/products/system-on-modules/phycore/am335x/ - New revision of "vf610-zii" Zodiac Inflight Innovations board - Various i.MX System-on-Module: Is.IoT MX6UL, SavageBoard, Engicam i.Core: http://www.opossom.com/english/index.html http://www.savageboard.org/ http://www.engicam.com/en/products/embedded/som/sodimm/is-iot-mx6ul http://www.engicam.com/en/products/embedded/som/sodimm/i-core-m6s-dl-d-q - Liebherr (LWN) monitor 6 based on i.MX6 Quad, no idea what this is - Cleanups and bugfixes on at91, bcm53xx, i.MX, mvebu, omap, oxnas, qcom, rockchip, sti, stm32 and tegra New device supports added to some boards and SoCs, briefly by platform: - Allwinner: SPDIF, A33 cpufreq, A33 Mali GPU - Aspeed: network, ipmi bt, gpio, pinmux - Broadcom: video encoder for raspberry pi, qspi, ethernet, sd/mmc - TI DaVinci: gpio, lcdc, usb, video-in, uart - TI Keystone 2: MSM RAM, power/reset, uart - Mediatek MT2701: clocks, iommu, spi, nand, adc, thermal - Marvell EBU: ethernet switch on Turris Omnia - NXP i.MX: otp ram, USB, wifi, bluetooth, spdif, spi, pmic, eeprom, mmc, nand - TI OMAP: - Qualcomm: coresight, gyro/accelerometer, hdmi - Renesas: pmic, soc-id - Rockchip: qos - Samsung: audio on Odroid-X - Socfpga: FPGA manager, i2c, led, can, watchdog, nand, power monitor - STi: video in/out - STM32: timer, pwm, i2c, rtc, add, i2s - NVIDIA Tegra: tpm - Uniphier: mmc/sd pinmux" * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (380 commits) ARM: dts: armada-385-linksys: fix DSA compatible property ARM: dts: Fix typo in armada-xp-98dx4251 ARM: DTS: Fix register map for virt-capable GIC dt-bindings: arm,gic: Fix binding example for a virt-capable GIC ARM: dts: sun8i: sinlinx: Enable audio nodes ARM: dts: sun8i: parrot: Enable audio nodes ARM: dts: sun8i: Add audio codec, dai and card for A33 ARM: dts: Add EMAC AXI settings for Arria10 ARM: dts: am335x-chiliboard: Support charger ARM: dts: am335x-chiliboard: Support power button ARM: sun8i: dt: Add mali node dt-bindings: gpu: Add Mali Utgard bindings ARM: dts: stm32: Add I2C1 support for STM32429 eval board ARM: dts: stm32: Add I2C1 support for STM32F429 SoC ARM: dts: stm32: Use clock DT binding definition on stm32f429 family dt-bindings: mfd: stm32f4: Add missing binding definition dt-bindings: mfd: stm32f4: Fix STM32F4_X_CLOCK() macro ARM: dts: stm32: Enable pwm1 and pwm3 for stm32f469-disco ARM: dts: stm32: add Timers driver for stm32f429 MCU ARM: dts: add the AB8500 sysclk to the device trees ...
-rw-r--r--Documentation/devicetree/bindings/arm/axentia.txt19
-rw-r--r--Documentation/devicetree/bindings/arm/davinci.txt4
-rw-r--r--Documentation/devicetree/bindings/arm/marvell/98dx3236.txt23
-rw-r--r--Documentation/devicetree/bindings/arm/omap/omap.txt3
-rw-r--r--Documentation/devicetree/bindings/ata/ahci-da850.txt18
-rw-r--r--Documentation/devicetree/bindings/clock/st,stm32-rcc.txt17
-rw-r--r--Documentation/devicetree/bindings/eeprom/eeprom.txt2
-rw-r--r--Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt81
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/arm,gic.txt2
-rw-r--r--Documentation/devicetree/bindings/net/marvell,prestera.txt50
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt5
-rw-r--r--MAINTAINERS8
-rw-r--r--arch/arm/boot/dts/Makefile32
-rw-r--r--arch/arm/boot/dts/alpine.dtsi2
-rw-r--r--arch/arm/boot/dts/am335x-bone-common.dtsi2
-rw-r--r--arch/arm/boot/dts/am335x-boneblack-common.dtsi163
-rw-r--r--arch/arm/boot/dts/am335x-boneblack-wireless.dts109
-rw-r--r--arch/arm/boot/dts/am335x-boneblack.dts155
-rw-r--r--arch/arm/boot/dts/am335x-bonegreen-common.dtsi44
-rw-r--r--arch/arm/boot/dts/am335x-bonegreen-wireless.dts126
-rw-r--r--arch/arm/boot/dts/am335x-bonegreen.dts38
-rw-r--r--arch/arm/boot/dts/am335x-chiliboard.dts16
-rw-r--r--arch/arm/boot/dts/am335x-chilisom.dtsi8
-rw-r--r--arch/arm/boot/dts/am335x-evm.dts4
-rw-r--r--arch/arm/boot/dts/am335x-evmsk.dts4
-rw-r--r--arch/arm/boot/dts/am335x-icev2.dts4
-rw-r--r--arch/arm/boot/dts/am335x-nano.dts31
-rw-r--r--arch/arm/boot/dts/am335x-pcm-953.dtsi288
-rw-r--r--arch/arm/boot/dts/am335x-phycore-rdk.dts27
-rw-r--r--arch/arm/boot/dts/am335x-phycore-som.dtsi72
-rw-r--r--arch/arm/boot/dts/am335x-sl50.dts70
-rw-r--r--arch/arm/boot/dts/am335x-wega.dtsi9
-rw-r--r--arch/arm/boot/dts/am437x-gp-evm.dts4
-rw-r--r--arch/arm/boot/dts/am437x-idk-evm.dts4
-rw-r--r--arch/arm/boot/dts/am437x-sk-evm.dts4
-rw-r--r--arch/arm/boot/dts/am43x-epos-evm.dts4
-rw-r--r--arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi18
-rw-r--r--arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts5
-rw-r--r--arch/arm/boot/dts/am57xx-beagle-x15.dts5
-rw-r--r--arch/arm/boot/dts/am57xx-idk-common.dtsi4
-rw-r--r--arch/arm/boot/dts/armada-370-db.dts10
-rw-r--r--arch/arm/boot/dts/armada-370-dlink-dns327l.dts10
-rw-r--r--arch/arm/boot/dts/armada-370-mirabox.dts10
-rw-r--r--arch/arm/boot/dts/armada-370-netgear-rn102.dts10
-rw-r--r--arch/arm/boot/dts/armada-370-netgear-rn104.dts10
-rw-r--r--arch/arm/boot/dts/armada-370-rd.dts54
-rw-r--r--arch/arm/boot/dts/armada-370-synology-ds213j.dts10
-rw-r--r--arch/arm/boot/dts/armada-370-xp.dtsi10
-rw-r--r--arch/arm/boot/dts/armada-370.dtsi10
-rw-r--r--arch/arm/boot/dts/armada-375-db.dts10
-rw-r--r--arch/arm/boot/dts/armada-375.dtsi10
-rw-r--r--arch/arm/boot/dts/armada-380.dtsi10
-rw-r--r--arch/arm/boot/dts/armada-385-linksys.dtsi52
-rw-r--r--arch/arm/boot/dts/armada-385-turris-omnia.dts58
-rw-r--r--arch/arm/boot/dts/armada-385.dtsi10
-rw-r--r--arch/arm/boot/dts/armada-388-clearfog-base.dts109
-rw-r--r--arch/arm/boot/dts/armada-388-clearfog-pro.dts55
-rw-r--r--arch/arm/boot/dts/armada-388-clearfog.dts435
-rw-r--r--arch/arm/boot/dts/armada-388-clearfog.dtsi307
-rw-r--r--arch/arm/boot/dts/armada-388-db.dts10
-rw-r--r--arch/arm/boot/dts/armada-388-rd.dts10
-rw-r--r--arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi130
-rw-r--r--arch/arm/boot/dts/armada-38x.dtsi10
-rw-r--r--arch/arm/boot/dts/armada-390-db.dts10
-rw-r--r--arch/arm/boot/dts/armada-390.dtsi10
-rw-r--r--arch/arm/boot/dts/armada-395.dtsi10
-rw-r--r--arch/arm/boot/dts/armada-398-db.dts10
-rw-r--r--arch/arm/boot/dts/armada-398.dtsi10
-rw-r--r--arch/arm/boot/dts/armada-39x.dtsi10
-rw-r--r--arch/arm/boot/dts/armada-xp-98dx3236.dtsi254
-rw-r--r--arch/arm/boot/dts/armada-xp-98dx3336.dtsi76
-rw-r--r--arch/arm/boot/dts/armada-xp-98dx4251.dtsi90
-rw-r--r--arch/arm/boot/dts/armada-xp-axpwifiap.dts10
-rw-r--r--arch/arm/boot/dts/armada-xp-db-dxbc2.dts151
-rw-r--r--arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts142
-rw-r--r--arch/arm/boot/dts/armada-xp-db.dts10
-rw-r--r--arch/arm/boot/dts/armada-xp-gp.dts10
-rw-r--r--arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts10
-rw-r--r--arch/arm/boot/dts/armada-xp-linksys-mamba.dts53
-rw-r--r--arch/arm/boot/dts/armada-xp-matrix.dts10
-rw-r--r--arch/arm/boot/dts/armada-xp-mv78230.dtsi10
-rw-r--r--arch/arm/boot/dts/armada-xp-mv78260.dtsi10
-rw-r--r--arch/arm/boot/dts/armada-xp-mv78460.dtsi10
-rw-r--r--arch/arm/boot/dts/armada-xp-netgear-rn2120.dts10
-rw-r--r--arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts10
-rw-r--r--arch/arm/boot/dts/armada-xp-synology-ds414.dts10
-rw-r--r--arch/arm/boot/dts/armada-xp.dtsi10
-rw-r--r--arch/arm/boot/dts/aspeed-ast2500-evb.dts14
-rw-r--r--arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts24
-rw-r--r--arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts45
-rw-r--r--arch/arm/boot/dts/aspeed-g4.dtsi776
-rw-r--r--arch/arm/boot/dts/aspeed-g5.dtsi879
-rw-r--r--arch/arm/boot/dts/at91-linea.dtsi49
-rw-r--r--arch/arm/boot/dts/at91-sama5d2_xplained.dts4
-rw-r--r--arch/arm/boot/dts/at91-sama5d4_xplained.dts8
-rw-r--r--arch/arm/boot/dts/at91-tse850-3.dts274
-rw-r--r--arch/arm/boot/dts/axm55xx.dtsi2
-rw-r--r--arch/arm/boot/dts/axp223.dtsi58
-rw-r--r--arch/arm/boot/dts/bcm-nsp.dtsi64
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi.dtsi5
-rw-r--r--arch/arm/boot/dts/bcm283x.dtsi8
-rw-r--r--arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts3
-rw-r--r--arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts3
-rw-r--r--arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts7
-rw-r--r--arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts4
-rw-r--r--arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts4
-rw-r--r--arch/arm/boot/dts/bcm4708-netgear-r6250.dts7
-rw-r--r--arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts3
-rw-r--r--arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts7
-rw-r--r--arch/arm/boot/dts/bcm4708.dtsi4
-rw-r--r--arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts3
-rw-r--r--arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts7
-rw-r--r--arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts3
-rw-r--r--arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts60
-rw-r--r--arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts107
-rw-r--r--arch/arm/boot/dts/bcm47081.dtsi4
-rw-r--r--arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts3
-rw-r--r--arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts3
-rw-r--r--arch/arm/boot/dts/bcm4709-netgear-r7000.dts11
-rw-r--r--arch/arm/boot/dts/bcm4709-netgear-r8000.dts51
-rw-r--r--arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts4
-rw-r--r--arch/arm/boot/dts/bcm4709.dtsi1
-rw-r--r--arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts7
-rw-r--r--arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts13
-rw-r--r--arch/arm/boot/dts/bcm47094-netgear-r8500.dts7
-rw-r--r--arch/arm/boot/dts/bcm47094.dtsi1
-rw-r--r--arch/arm/boot/dts/bcm5301x.dtsi41
-rw-r--r--arch/arm/boot/dts/bcm53573.dtsi22
-rw-r--r--arch/arm/boot/dts/bcm94708.dts4
-rw-r--r--arch/arm/boot/dts/bcm94709.dts4
-rw-r--r--arch/arm/boot/dts/bcm953012er.dts4
-rw-r--r--arch/arm/boot/dts/bcm953012k.dts1
-rw-r--r--arch/arm/boot/dts/bcm958522er.dts35
-rw-r--r--arch/arm/boot/dts/bcm958525er.dts35
-rw-r--r--arch/arm/boot/dts/bcm958525xmc.dts68
-rw-r--r--arch/arm/boot/dts/bcm958622hr.dts42
-rw-r--r--arch/arm/boot/dts/bcm958623hr.dts58
-rw-r--r--arch/arm/boot/dts/bcm958625hr.dts72
-rw-r--r--arch/arm/boot/dts/bcm958625k.dts151
-rw-r--r--arch/arm/boot/dts/bcm988312hr.dts42
-rw-r--r--arch/arm/boot/dts/da850-evm.dts20
-rw-r--r--arch/arm/boot/dts/da850-lcdk.dts90
-rw-r--r--arch/arm/boot/dts/da850-lego-ev3.dts313
-rw-r--r--arch/arm/boot/dts/da850.dtsi51
-rw-r--r--arch/arm/boot/dts/dove-cm-a510.dtsi10
-rw-r--r--arch/arm/boot/dts/dove-sbc-a510.dts10
-rw-r--r--arch/arm/boot/dts/dra7-evm.dts286
-rw-r--r--arch/arm/boot/dts/dra7.dtsi2
-rw-r--r--arch/arm/boot/dts/dra71-evm.dts5
-rw-r--r--arch/arm/boot/dts/dra72-evm-common.dtsi20
-rw-r--r--arch/arm/boot/dts/dra72-evm-revc.dts4
-rw-r--r--arch/arm/boot/dts/ecx-2000.dts2
-rw-r--r--arch/arm/boot/dts/exynos-mfc-reserved-memory.dtsi2
-rw-r--r--arch/arm/boot/dts/exynos3250.dtsi2
-rw-r--r--arch/arm/boot/dts/exynos4.dtsi37
-rw-r--r--arch/arm/boot/dts/exynos4210.dtsi1
-rw-r--r--arch/arm/boot/dts/exynos4212.dtsi133
-rw-r--r--arch/arm/boot/dts/exynos4412-itop-elite.dts25
-rw-r--r--arch/arm/boot/dts/exynos4412-odroid-common.dtsi28
-rw-r--r--arch/arm/boot/dts/exynos4412-odroidu3.dts5
-rw-r--r--arch/arm/boot/dts/exynos4412-odroidx.dts13
-rw-r--r--arch/arm/boot/dts/exynos4412-odroidx2.dts25
-rw-r--r--arch/arm/boot/dts/exynos4412-pinctrl.dtsi (renamed from arch/arm/boot/dts/exynos4x12-pinctrl.dtsi)4
-rw-r--r--arch/arm/boot/dts/exynos4412-prime.dtsi41
-rw-r--r--arch/arm/boot/dts/exynos4412.dtsi578
-rw-r--r--arch/arm/boot/dts/exynos4x12.dtsi594
-rw-r--r--arch/arm/boot/dts/exynos5.dtsi4
-rw-r--r--arch/arm/boot/dts/exynos5250.dtsi11
-rw-r--r--arch/arm/boot/dts/exynos5260.dtsi2
-rw-r--r--arch/arm/boot/dts/exynos5410.dtsi8
-rw-r--r--arch/arm/boot/dts/exynos5420.dtsi13
-rw-r--r--arch/arm/boot/dts/exynos5440.dtsi2
-rw-r--r--arch/arm/boot/dts/imx1-ads.dts1
-rw-r--r--arch/arm/boot/dts/imx1.dtsi3
-rw-r--r--arch/arm/boot/dts/imx23.dtsi5
-rw-r--r--arch/arm/boot/dts/imx25.dtsi7
-rw-r--r--arch/arm/boot/dts/imx27-apf27dev.dts2
-rw-r--r--arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts1
-rw-r--r--arch/arm/boot/dts/imx27-pdk.dts1
-rw-r--r--arch/arm/boot/dts/imx27-phytec-phycard-s-som.dtsi1
-rw-r--r--arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts1
-rw-r--r--arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi1
-rw-r--r--arch/arm/boot/dts/imx27.dtsi1
-rw-r--r--arch/arm/boot/dts/imx28.dtsi7
-rw-r--r--arch/arm/boot/dts/imx31.dtsi5
-rw-r--r--arch/arm/boot/dts/imx35.dtsi5
-rw-r--r--arch/arm/boot/dts/imx50-evk.dts1
-rw-r--r--arch/arm/boot/dts/imx51-apf51dev.dts2
-rw-r--r--arch/arm/boot/dts/imx51-babbage.dts1
-rw-r--r--arch/arm/boot/dts/imx51-digi-connectcore-som.dtsi1
-rw-r--r--arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts1
-rw-r--r--arch/arm/boot/dts/imx53-qsb-common.dtsi20
-rw-r--r--arch/arm/boot/dts/imx53-qsb.dts5
-rw-r--r--arch/arm/boot/dts/imx53-qsrb.dts6
-rw-r--r--arch/arm/boot/dts/imx53-smd.dts1
-rw-r--r--arch/arm/boot/dts/imx53-tqma53.dtsi2
-rw-r--r--arch/arm/boot/dts/imx53-tx53.dtsi1
-rw-r--r--arch/arm/boot/dts/imx53-voipac-dmm-668.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6dl-aristainetos2_4.dts10
-rw-r--r--arch/arm/boot/dts/imx6dl-aristainetos2_7.dts10
-rw-r--r--arch/arm/boot/dts/imx6dl-aristainetos_4.dts1
-rw-r--r--arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts10
-rw-r--r--arch/arm/boot/dts/imx6dl-cubox-i.dts10
-rw-r--r--arch/arm/boot/dts/imx6dl-hummingboard.dts10
-rw-r--r--arch/arm/boot/dts/imx6dl-icore-rqs.dts51
-rw-r--r--arch/arm/boot/dts/imx6dl-icore.dts10
-rw-r--r--arch/arm/boot/dts/imx6dl-nit6xlite.dts10
-rw-r--r--arch/arm/boot/dts/imx6dl-nitrogen6x.dts10
-rw-r--r--arch/arm/boot/dts/imx6dl-sabrelite.dts10
-rw-r--r--arch/arm/boot/dts/imx6dl-savageboard.dts51
-rw-r--r--arch/arm/boot/dts/imx6dl-ts4900.dts10
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-ixora.dts10
-rw-r--r--arch/arm/boot/dts/imx6q-b450v3.dts10
-rw-r--r--arch/arm/boot/dts/imx6q-b650v3.dts10
-rw-r--r--arch/arm/boot/dts/imx6q-b850v3.dts10
-rw-r--r--arch/arm/boot/dts/imx6q-ba16.dtsi11
-rw-r--r--arch/arm/boot/dts/imx6q-bx50v3.dtsi11
-rw-r--r--arch/arm/boot/dts/imx6q-cm-fx6.dts32
-rw-r--r--arch/arm/boot/dts/imx6q-cubox-i.dts10
-rw-r--r--arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts1
-rw-r--r--arch/arm/boot/dts/imx6q-evi.dts3
-rw-r--r--arch/arm/boot/dts/imx6q-gw5400-a.dts1
-rw-r--r--arch/arm/boot/dts/imx6q-h100.dts10
-rw-r--r--arch/arm/boot/dts/imx6q-hummingboard.dts10
-rw-r--r--arch/arm/boot/dts/imx6q-icore-rqs.dts12
-rw-r--r--arch/arm/boot/dts/imx6q-icore.dts10
-rw-r--r--arch/arm/boot/dts/imx6q-marsboard.dts11
-rw-r--r--arch/arm/boot/dts/imx6q-mccmon6.dts473
-rw-r--r--arch/arm/boot/dts/imx6q-nitrogen6_max.dts10
-rw-r--r--arch/arm/boot/dts/imx6q-nitrogen6_som2.dts10
-rw-r--r--arch/arm/boot/dts/imx6q-nitrogen6x.dts10
-rw-r--r--arch/arm/boot/dts/imx6q-novena.dts1
-rw-r--r--arch/arm/boot/dts/imx6q-sabrelite.dts10
-rw-r--r--arch/arm/boot/dts/imx6q-savageboard.dts55
-rw-r--r--arch/arm/boot/dts/imx6q-ts4900.dts10
-rw-r--r--arch/arm/boot/dts/imx6q-utilite-pro.dts115
-rw-r--r--arch/arm/boot/dts/imx6qdl-apalis.dtsi12
-rw-r--r--arch/arm/boot/dts/imx6qdl-apf6dev.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6qdl-aristainetos.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi13
-rw-r--r--arch/arm/boot/dts/imx6qdl-colibri.dtsi11
-rw-r--r--arch/arm/boot/dts/imx6qdl-cubox-i.dtsi10
-rw-r--r--arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw51xx.dtsi132
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw52xx.dtsi166
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw53xx.dtsi163
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw54xx.dtsi16
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw551x.dtsi132
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw552x.dtsi130
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw553x.dtsi98
-rw-r--r--arch/arm/boot/dts/imx6qdl-hummingboard.dtsi10
-rw-r--r--arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi14
-rw-r--r--arch/arm/boot/dts/imx6qdl-icore.dtsi10
-rw-r--r--arch/arm/boot/dts/imx6qdl-microsom-ar8035.dtsi10
-rw-r--r--arch/arm/boot/dts/imx6qdl-microsom.dtsi10
-rw-r--r--arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi13
-rw-r--r--arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi15
-rw-r--r--arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi13
-rw-r--r--arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi13
-rw-r--r--arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6qdl-rex.dtsi2
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabreauto.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabrelite.dtsi13
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabresd.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6qdl-savageboard.dtsi255
-rw-r--r--arch/arm/boot/dts/imx6qdl-ts4900.dtsi12
-rw-r--r--arch/arm/boot/dts/imx6qdl-tx6.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6qdl.dtsi12
-rw-r--r--arch/arm/boot/dts/imx6qp.dtsi6
-rw-r--r--arch/arm/boot/dts/imx6sl-evk.dts1
-rw-r--r--arch/arm/boot/dts/imx6sx-nitrogen6sx.dts11
-rw-r--r--arch/arm/boot/dts/imx6sx-sdb-sai.dts10
-rw-r--r--arch/arm/boot/dts/imx6sx-udoo-neo.dtsi137
-rw-r--r--arch/arm/boot/dts/imx6ul-geam-kit.dts10
-rw-r--r--arch/arm/boot/dts/imx6ul-geam.dtsi10
-rw-r--r--arch/arm/boot/dts/imx6ul-isiot-emmc.dts77
-rw-r--r--arch/arm/boot/dts/imx6ul-isiot-nand.dts79
-rw-r--r--arch/arm/boot/dts/imx6ul-isiot.dtsi114
-rw-r--r--arch/arm/boot/dts/imx6ul-liteboard.dts10
-rw-r--r--arch/arm/boot/dts/imx6ul-litesom.dtsi10
-rw-r--r--arch/arm/boot/dts/imx6ul-opos6ul.dtsi192
-rw-r--r--arch/arm/boot/dts/imx6ul-opos6uldev.dts412
-rw-r--r--arch/arm/boot/dts/imx6ul-pico-hobbit.dts10
-rw-r--r--arch/arm/boot/dts/imx6ul-tx6ul.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6ul.dtsi11
-rw-r--r--arch/arm/boot/dts/imx6ull-14x14-evk.dts10
-rw-r--r--arch/arm/boot/dts/imx6ull.dtsi10
-rw-r--r--arch/arm/boot/dts/imx7-colibri.dtsi16
-rw-r--r--arch/arm/boot/dts/imx7d-cl-som-imx7.dts14
-rw-r--r--arch/arm/boot/dts/imx7d-nitrogen7.dts14
-rw-r--r--arch/arm/boot/dts/imx7d-pinfunc.h110
-rw-r--r--arch/arm/boot/dts/imx7d-sdb.dts25
-rw-r--r--arch/arm/boot/dts/imx7s-warp.dts4
-rw-r--r--arch/arm/boot/dts/imx7s.dtsi1
-rw-r--r--arch/arm/boot/dts/keystone-k2e-netcp.dtsi3
-rw-r--r--arch/arm/boot/dts/keystone-k2e.dtsi25
-rw-r--r--arch/arm/boot/dts/keystone-k2g.dtsi18
-rw-r--r--arch/arm/boot/dts/keystone-k2hk-netcp.dtsi3
-rw-r--r--arch/arm/boot/dts/keystone-k2hk.dtsi32
-rw-r--r--arch/arm/boot/dts/keystone-k2l-netcp.dtsi3
-rw-r--r--arch/arm/boot/dts/keystone-k2l.dtsi32
-rw-r--r--arch/arm/boot/dts/keystone.dtsi13
-rw-r--r--arch/arm/boot/dts/kirkwood-dir665.dts49
-rw-r--r--arch/arm/boot/dts/kirkwood-linkstation-6282.dtsi10
-rw-r--r--arch/arm/boot/dts/kirkwood-linkstation-duo-6281.dtsi10
-rw-r--r--arch/arm/boot/dts/kirkwood-linkstation-lsqvl.dts10
-rw-r--r--arch/arm/boot/dts/kirkwood-linkstation-lsvl.dts10
-rw-r--r--arch/arm/boot/dts/kirkwood-linkstation-lswsxl.dts10
-rw-r--r--arch/arm/boot/dts/kirkwood-linkstation-lswvl.dts10
-rw-r--r--arch/arm/boot/dts/kirkwood-linkstation-lswxl.dts10
-rw-r--r--arch/arm/boot/dts/kirkwood-linkstation.dtsi10
-rw-r--r--arch/arm/boot/dts/kirkwood-linksys-viper.dts49
-rw-r--r--arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts49
-rw-r--r--arch/arm/boot/dts/kirkwood-rd88f6281-a.dts9
-rw-r--r--arch/arm/boot/dts/kirkwood-rd88f6281-z0.dts11
-rw-r--r--arch/arm/boot/dts/kirkwood-rd88f6281.dtsi44
-rw-r--r--arch/arm/boot/dts/ls1021a.dtsi4
-rw-r--r--arch/arm/boot/dts/mt2701-evb.dts54
-rw-r--r--arch/arm/boot/dts/mt2701.dtsi249
-rw-r--r--arch/arm/boot/dts/mt6580.dtsi2
-rw-r--r--arch/arm/boot/dts/mt6589.dtsi2
-rw-r--r--arch/arm/boot/dts/mt7623-evb.dts2
-rw-r--r--arch/arm/boot/dts/mt7623.dtsi4
-rw-r--r--arch/arm/boot/dts/mt8127.dtsi2
-rw-r--r--arch/arm/boot/dts/mt8135.dtsi2
-rw-r--r--arch/arm/boot/dts/mvebu-linkstation-fan.dtsi10
-rw-r--r--arch/arm/boot/dts/mvebu-linkstation-gpio-simple.dtsi10
-rw-r--r--arch/arm/boot/dts/omap3-beagle-xm.dts16
-rw-r--r--arch/arm/boot/dts/omap3-igep.dtsi21
-rw-r--r--arch/arm/boot/dts/omap3-n900.dts3
-rw-r--r--arch/arm/boot/dts/omap4-panda-common.dtsi16
-rw-r--r--arch/arm/boot/dts/omap5-igep0050.dts21
-rw-r--r--arch/arm/boot/dts/omap5-uevm.dts21
-rw-r--r--arch/arm/boot/dts/omap5.dtsi2
-rw-r--r--arch/arm/boot/dts/orion5x-kuroboxpro.dts10
-rw-r--r--arch/arm/boot/dts/orion5x-linkstation-lschl.dts10
-rw-r--r--arch/arm/boot/dts/orion5x-linkstation-lsgl.dts10
-rw-r--r--arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts10
-rw-r--r--arch/arm/boot/dts/orion5x-linkstation.dtsi10
-rw-r--r--arch/arm/boot/dts/orion5x-lswsgl.dts10
-rw-r--r--arch/arm/boot/dts/ox810se.dtsi10
-rw-r--r--arch/arm/boot/dts/ox820.dtsi14
-rw-r--r--arch/arm/boot/dts/qcom-apq8060-dragonboard.dts62
-rw-r--r--arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dts69
-rw-r--r--arch/arm/boot/dts/qcom-apq8064-ifc6410.dts22
-rw-r--r--arch/arm/boot/dts/qcom-apq8064-pins.dtsi37
-rw-r--r--arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts7
-rw-r--r--arch/arm/boot/dts/qcom-apq8064.dtsi287
-rw-r--r--arch/arm/boot/dts/qcom-ipq8064.dtsi4
-rw-r--r--arch/arm/boot/dts/qcom-msm8660-surf.dts2
-rw-r--r--arch/arm/boot/dts/qcom-msm8660.dtsi12
-rw-r--r--arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts8
-rw-r--r--arch/arm/boot/dts/qcom-msm8974.dtsi96
-rw-r--r--arch/arm/boot/dts/r7s72100-rskrza1.dts8
-rw-r--r--arch/arm/boot/dts/r7s72100.dtsi28
-rw-r--r--arch/arm/boot/dts/r8a73a4.dtsi6
-rw-r--r--arch/arm/boot/dts/r8a7743.dtsi18
-rw-r--r--arch/arm/boot/dts/r8a7745.dtsi18
-rw-r--r--arch/arm/boot/dts/r8a7778.dtsi10
-rw-r--r--arch/arm/boot/dts/r8a7779-marzen.dts4
-rw-r--r--arch/arm/boot/dts/r8a7779.dtsi9
-rw-r--r--arch/arm/boot/dts/r8a7790.dtsi37
-rw-r--r--arch/arm/boot/dts/r8a7791.dtsi35
-rw-r--r--arch/arm/boot/dts/r8a7792.dtsi26
-rw-r--r--arch/arm/boot/dts/r8a7793-gose.dts21
-rw-r--r--arch/arm/boot/dts/r8a7793.dtsi23
-rw-r--r--arch/arm/boot/dts/r8a7794.dtsi23
-rw-r--r--arch/arm/boot/dts/rk1108.dtsi2
-rw-r--r--arch/arm/boot/dts/rk3036-evb.dts2
-rw-r--r--arch/arm/boot/dts/rk3036-kylin.dts12
-rw-r--r--arch/arm/boot/dts/rk3036.dtsi2
-rw-r--r--arch/arm/boot/dts/rk3066a-bqcurie2.dts8
-rw-r--r--arch/arm/boot/dts/rk3066a-marsboard.dts6
-rw-r--r--arch/arm/boot/dts/rk3066a-mk808.dts10
-rw-r--r--arch/arm/boot/dts/rk3066a-rayeager.dts18
-rw-r--r--arch/arm/boot/dts/rk3066a.dtsi4
-rw-r--r--arch/arm/boot/dts/rk3188-px3-evb.dts10
-rw-r--r--arch/arm/boot/dts/rk3188-radxarock.dts20
-rw-r--r--arch/arm/boot/dts/rk3188.dtsi4
-rw-r--r--arch/arm/boot/dts/rk3229-evb.dts2
-rw-r--r--arch/arm/boot/dts/rk322x.dtsi2
-rw-r--r--arch/arm/boot/dts/rk3288-evb-act8846.dts6
-rw-r--r--arch/arm/boot/dts/rk3288-evb-rk808.dts2
-rw-r--r--arch/arm/boot/dts/rk3288-evb.dtsi14
-rw-r--r--arch/arm/boot/dts/rk3288-fennec.dts6
-rw-r--r--arch/arm/boot/dts/rk3288-firefly-beta.dts2
-rw-r--r--arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi2
-rw-r--r--arch/arm/boot/dts/rk3288-firefly-reload.dts26
-rw-r--r--arch/arm/boot/dts/rk3288-firefly.dts2
-rw-r--r--arch/arm/boot/dts/rk3288-firefly.dtsi18
-rw-r--r--arch/arm/boot/dts/rk3288-miqi.dts8
-rw-r--r--arch/arm/boot/dts/rk3288-popmetal.dts8
-rw-r--r--arch/arm/boot/dts/rk3288-r89.dts14
-rw-r--r--arch/arm/boot/dts/rk3288-rock2-som.dtsi4
-rw-r--r--arch/arm/boot/dts/rk3288-rock2-square.dts14
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-analog-audio.dtsi8
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-brain.dts8
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi14
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-jaq.dts14
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-jerry.dts12
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-mickey.dts6
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-minnie.dts18
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-pinky.dts4
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi2
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-speedy.dts10
-rw-r--r--arch/arm/boot/dts/rk3288-veyron.dtsi10
-rw-r--r--arch/arm/boot/dts/rk3288.dtsi86
-rw-r--r--arch/arm/boot/dts/sama5d2.dtsi30
-rw-r--r--arch/arm/boot/dts/sama5d36ek_cmp.dts87
-rw-r--r--arch/arm/boot/dts/sama5d3_uart.dtsi4
-rw-r--r--arch/arm/boot/dts/sama5d3xcm_cmp.dtsi201
-rw-r--r--arch/arm/boot/dts/sama5d3xmb_cmp.dtsi301
-rw-r--r--arch/arm/boot/dts/sama5d4.dtsi16
-rw-r--r--arch/arm/boot/dts/sh73a0.dtsi2
-rw-r--r--arch/arm/boot/dts/socfpga.dtsi31
-rw-r--r--arch/arm/boot/dts/socfpga_arria10.dtsi41
-rw-r--r--arch/arm/boot/dts/socfpga_arria10_socdk.dtsi9
-rw-r--r--arch/arm/boot/dts/socfpga_arria10_socdk_nand.dts31
-rw-r--r--arch/arm/boot/dts/socfpga_arria5.dtsi4
-rw-r--r--arch/arm/boot/dts/socfpga_arria5_socdk.dts43
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_socdk.dts53
-rw-r--r--arch/arm/boot/dts/ste-dbx5x0.dtsi2
-rw-r--r--arch/arm/boot/dts/ste-href.dtsi16
-rw-r--r--arch/arm/boot/dts/ste-hrefprev60.dtsi1
-rw-r--r--arch/arm/boot/dts/ste-hrefv60plus.dtsi1
-rw-r--r--arch/arm/boot/dts/ste-snowball.dts20
-rw-r--r--arch/arm/boot/dts/stih407-family.dtsi59
-rw-r--r--arch/arm/boot/dts/stih410-b2120.dts6
-rw-r--r--arch/arm/boot/dts/stih410.dtsi24
-rw-r--r--arch/arm/boot/dts/stm32429i-eval.dts37
-rw-r--r--arch/arm/boot/dts/stm32f429-disco.dts6
-rw-r--r--arch/arm/boot/dts/stm32f429.dtsi450
-rw-r--r--arch/arm/boot/dts/stm32f469-disco.dts36
-rw-r--r--arch/arm/boot/dts/sun4i-a10-a1000.dts43
-rw-r--r--arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts2
-rw-r--r--arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts14
-rw-r--r--arch/arm/boot/dts/sun4i-a10-cubieboard.dts14
-rw-r--r--arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts38
-rw-r--r--arch/arm/boot/dts/sun4i-a10-gemei-g9.dts6
-rw-r--r--arch/arm/boot/dts/sun4i-a10-hackberry.dts12
-rw-r--r--arch/arm/boot/dts/sun4i-a10-hyundai-a7hd.dts16
-rw-r--r--arch/arm/boot/dts/sun4i-a10-inet1.dts26
-rw-r--r--arch/arm/boot/dts/sun4i-a10-inet97fv2.dts14
-rw-r--r--arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts29
-rw-r--r--arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts12
-rw-r--r--arch/arm/boot/dts/sun4i-a10-marsboard.dts13
-rw-r--r--arch/arm/boot/dts/sun4i-a10-mini-xplus.dts2
-rw-r--r--arch/arm/boot/dts/sun4i-a10-mk802.dts18
-rw-r--r--arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts27
-rw-r--r--arch/arm/boot/dts/sun4i-a10-pcduino.dts19
-rw-r--r--arch/arm/boot/dts/sun4i-a10-pcduino2.dts6
-rw-r--r--arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts32
-rw-r--r--arch/arm/boot/dts/sun4i-a10.dtsi170
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-auxtek-t003.dts18
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts29
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-mk802.dts19
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts36
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts20
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts21
-rw-r--r--arch/arm/boot/dts/sun5i-a10s.dtsi43
-rw-r--r--arch/arm/boot/dts/sun5i-a13-empire-electronix-d709.dts23
-rw-r--r--arch/arm/boot/dts/sun5i-a13-hsg-h702.dts22
-rw-r--r--arch/arm/boot/dts/sun5i-a13-licheepi-one.dts224
-rw-r--r--arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts40
-rw-r--r--arch/arm/boot/dts/sun5i-a13-olinuxino.dts36
-rw-r--r--arch/arm/boot/dts/sun5i-a13-utoo-p66.dts11
-rw-r--r--arch/arm/boot/dts/sun5i-a13.dtsi24
-rw-r--r--arch/arm/boot/dts/sun5i-gr8-chip-pro.dts12
-rw-r--r--arch/arm/boot/dts/sun5i-gr8-evb.dts24
-rw-r--r--arch/arm/boot/dts/sun5i-gr8.dtsi122
-rw-r--r--arch/arm/boot/dts/sun5i-r8-chip.dts27
-rw-r--r--arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi33
-rw-r--r--arch/arm/boot/dts/sun5i.dtsi84
-rw-r--r--arch/arm/boot/dts/sun6i-a31-app4-evb1.dts6
-rw-r--r--arch/arm/boot/dts/sun6i-a31-colombus.dts22
-rw-r--r--arch/arm/boot/dts/sun6i-a31-hummingbird.dts42
-rw-r--r--arch/arm/boot/dts/sun6i-a31-i7.dts49
-rw-r--r--arch/arm/boot/dts/sun6i-a31-m9.dts19
-rw-r--r--arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts19
-rw-r--r--arch/arm/boot/dts/sun6i-a31.dtsi122
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-primo81.dts20
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-sina31s.dts18
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-sinovoip-bpi-m2.dts29
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts9
-rw-r--r--arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi14
-rw-r--r--arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts27
-rw-r--r--arch/arm/boot/dts/sun7i-a20-bananapi.dts26
-rw-r--r--arch/arm/boot/dts/sun7i-a20-bananapro.dts70
-rw-r--r--arch/arm/boot/dts/sun7i-a20-cubieboard2.dts13
-rw-r--r--arch/arm/boot/dts/sun7i-a20-cubietruck.dts38
-rw-r--r--arch/arm/boot/dts/sun7i-a20-hummingbird.dts24
-rw-r--r--arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts26
-rw-r--r--arch/arm/boot/dts/sun7i-a20-itead-ibox.dts7
-rw-r--r--arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts30
-rw-r--r--arch/arm/boot/dts/sun7i-a20-m3.dts6
-rw-r--r--arch/arm/boot/dts/sun7i-a20-mk808c.dts12
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts70
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts27
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olinuxino-lime2-emmc.dts6
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts123
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts28
-rw-r--r--arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts45
-rw-r--r--arch/arm/boot/dts/sun7i-a20-orangepi.dts38
-rw-r--r--arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts25
-rw-r--r--arch/arm/boot/dts/sun7i-a20-pcduino3.dts21
-rw-r--r--arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts25
-rw-r--r--arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts13
-rw-r--r--arch/arm/boot/dts/sun7i-a20.dtsi287
-rw-r--r--arch/arm/boot/dts/sun8i-a23-a33.dtsi151
-rw-r--r--arch/arm/boot/dts/sun8i-a23-evb.dts7
-rw-r--r--arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts8
-rw-r--r--arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts8
-rw-r--r--arch/arm/boot/dts/sun8i-a23-q8-tablet.dts23
-rw-r--r--arch/arm/boot/dts/sun8i-a23.dtsi16
-rw-r--r--arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts9
-rw-r--r--arch/arm/boot/dts/sun8i-a33-olinuxino.dts20
-rw-r--r--arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts59
-rw-r--r--arch/arm/boot/dts/sun8i-a33.dtsi86
-rw-r--r--arch/arm/boot/dts/sun8i-a83t.dtsi24
-rw-r--r--arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts160
-rw-r--r--arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts18
-rw-r--r--arch/arm/boot/dts/sun8i-h3-beelink-x2.dts160
-rw-r--r--arch/arm/boot/dts/sun8i-h3-nanopi.dtsi18
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-2.dts26
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts18
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-one.dts18
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts4
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts26
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts10
-rw-r--r--arch/arm/boot/dts/sun8i-h3.dtsi146
-rw-r--r--arch/arm/boot/dts/sun8i-q8-common.dtsi9
-rw-r--r--arch/arm/boot/dts/sun8i-r16-parrot.dts50
-rw-r--r--arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi32
-rw-r--r--arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts103
-rw-r--r--arch/arm/boot/dts/sun8i-v3s.dtsi309
-rw-r--r--arch/arm/boot/dts/sun9i-a80-cubieboard4.dts23
-rw-r--r--arch/arm/boot/dts/sun9i-a80-optimus.dts41
-rw-r--r--arch/arm/boot/dts/sun9i-a80.dtsi66
-rw-r--r--arch/arm/boot/dts/sunxi-common-regulators.dtsi24
-rw-r--r--arch/arm/boot/dts/tango4-common.dtsi46
-rw-r--r--arch/arm/boot/dts/tango4-vantage-1172.dts5
-rw-r--r--arch/arm/boot/dts/tegra124-apalis-eval.dts10
-rw-r--r--arch/arm/boot/dts/tegra124-apalis.dtsi61
-rw-r--r--arch/arm/boot/dts/tegra124-nyan-big.dts26
-rw-r--r--arch/arm/boot/dts/tegra124-nyan-blaze.dts28
-rw-r--r--arch/arm/boot/dts/tegra124-nyan.dtsi5
-rw-r--r--arch/arm/boot/dts/tegra20-paz00.dts1
-rw-r--r--arch/arm/boot/dts/tegra20-trimslice.dts1
-rw-r--r--arch/arm/boot/dts/uniphier-pinctrl.dtsi18
-rw-r--r--arch/arm/boot/dts/vf-colibri-eval-v3.dtsi10
-rw-r--r--arch/arm/boot/dts/vf-colibri.dtsi10
-rw-r--r--arch/arm/boot/dts/vf500-colibri-eval-v3.dts10
-rw-r--r--arch/arm/boot/dts/vf500-colibri.dtsi10
-rw-r--r--arch/arm/boot/dts/vf500.dtsi10
-rw-r--r--arch/arm/boot/dts/vf610-colibri-eval-v3.dts10
-rw-r--r--arch/arm/boot/dts/vf610-colibri.dtsi10
-rw-r--r--arch/arm/boot/dts/vf610-twr.dts10
-rw-r--r--arch/arm/boot/dts/vf610-zii-dev-rev-b.dts334
-rw-r--r--arch/arm/boot/dts/vf610-zii-dev-rev-c.dts416
-rw-r--r--arch/arm/boot/dts/vf610-zii-dev.dtsi383
-rw-r--r--arch/arm/boot/dts/vf610.dtsi10
-rw-r--r--arch/arm/boot/dts/vf610m4-colibri.dts10
-rw-r--r--arch/arm/boot/dts/vf610m4-cosmic.dts10
-rw-r--r--arch/arm/boot/dts/vf610m4.dtsi10
-rw-r--r--arch/arm/boot/dts/vfxxx.dtsi10
-rw-r--r--drivers/clk/samsung/clk-exynos4.c4
-rw-r--r--include/dt-bindings/clock/r7s72100-clock.h4
-rw-r--r--include/dt-bindings/clock/stm32fx-clock.h39
-rw-r--r--include/dt-bindings/mfd/stm32f4-rcc.h24
569 files changed, 17092 insertions, 5576 deletions
diff --git a/Documentation/devicetree/bindings/arm/axentia.txt b/Documentation/devicetree/bindings/arm/axentia.txt
new file mode 100644
index 000000000000..ea3fb96ae465
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/axentia.txt
@@ -0,0 +1,19 @@
1Device tree bindings for Axentia ARM devices
2============================================
3
4Linea CPU module
5----------------
6
7Required root node properties:
8compatible = "axentia,linea",
9 "atmel,sama5d31", "atmel,sama5d3", "atmel,sama5";
10and following the rules from atmel-at91.txt for a sama5d31 SoC.
11
12
13TSE-850 v3 board
14----------------
15
16Required root node properties:
17compatible = "axentia,tse850v3", "axentia,linea",
18 "atmel,sama5d31", "atmel,sama5d3", "atmel,sama5";
19and following the rules from above for the axentia,linea CPU module.
diff --git a/Documentation/devicetree/bindings/arm/davinci.txt b/Documentation/devicetree/bindings/arm/davinci.txt
index f0841ce725b5..715622c36260 100644
--- a/Documentation/devicetree/bindings/arm/davinci.txt
+++ b/Documentation/devicetree/bindings/arm/davinci.txt
@@ -13,6 +13,10 @@ EnBW AM1808 based CMC board
13Required root node properties: 13Required root node properties:
14 - compatible = "enbw,cmc", "ti,da850; 14 - compatible = "enbw,cmc", "ti,da850;
15 15
16LEGO MINDSTORMS EV3 (AM1808 based)
17Required root node properties:
18 - compatible = "lego,ev3", "ti,da850";
19
16Generic DaVinci Boards 20Generic DaVinci Boards
17---------------------- 21----------------------
18 22
diff --git a/Documentation/devicetree/bindings/arm/marvell/98dx3236.txt b/Documentation/devicetree/bindings/arm/marvell/98dx3236.txt
new file mode 100644
index 000000000000..64e8c73fc5ab
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/marvell/98dx3236.txt
@@ -0,0 +1,23 @@
1Marvell 98DX3236, 98DX3336 and 98DX4251 Platforms Device Tree Bindings
2----------------------------------------------------------------------
3
4Boards with a SoC of the Marvell 98DX3236, 98DX3336 and 98DX4251 families
5shall have the following property:
6
7Required root node property:
8
9compatible: must contain "marvell,armadaxp-98dx3236"
10
11In addition, boards using the Marvell 98DX3336 SoC shall have the
12following property:
13
14Required root node property:
15
16compatible: must contain "marvell,armadaxp-98dx3336"
17
18In addition, boards using the Marvell 98DX4251 SoC shall have the
19following property:
20
21Required root node property:
22
23compatible: must contain "marvell,armadaxp-98dx4251"
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
index 05f95c3ed7d4..8219b2c6bb29 100644
--- a/Documentation/devicetree/bindings/arm/omap/omap.txt
+++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
@@ -151,6 +151,9 @@ Boards:
151- AM335X SBC-T335 : single board computer, built around the Sitara AM3352/4 151- AM335X SBC-T335 : single board computer, built around the Sitara AM3352/4
152 compatible = "compulab,sbc-t335", "compulab,cm-t335", "ti,am33xx" 152 compatible = "compulab,sbc-t335", "compulab,cm-t335", "ti,am33xx"
153 153
154- AM335X phyCORE-AM335x: Development kit
155 compatible = "phytec,am335x-pcm-953", "phytec,am335x-phycore-som", "ti,am33xx"
156
154- OMAP5 EVM : Evaluation Module 157- OMAP5 EVM : Evaluation Module
155 compatible = "ti,omap5-evm", "ti,omap5" 158 compatible = "ti,omap5-evm", "ti,omap5"
156 159
diff --git a/Documentation/devicetree/bindings/ata/ahci-da850.txt b/Documentation/devicetree/bindings/ata/ahci-da850.txt
new file mode 100644
index 000000000000..5f8193417725
--- /dev/null
+++ b/Documentation/devicetree/bindings/ata/ahci-da850.txt
@@ -0,0 +1,18 @@
1Device tree binding for the TI DA850 AHCI SATA Controller
2---------------------------------------------------------
3
4Required properties:
5 - compatible: must be "ti,da850-ahci"
6 - reg: physical base addresses and sizes of the two register regions
7 used by the controller: the register map as defined by the
8 AHCI 1.1 standard and the Power Down Control Register (PWRDN)
9 for enabling/disabling the SATA clock receiver
10 - interrupts: interrupt specifier (refer to the interrupt binding)
11
12Example:
13
14 sata: sata@218000 {
15 compatible = "ti,da850-ahci";
16 reg = <0x218000 0x2000>, <0x22c018 0x4>;
17 interrupts = <67>;
18 };
diff --git a/Documentation/devicetree/bindings/clock/st,stm32-rcc.txt b/Documentation/devicetree/bindings/clock/st,stm32-rcc.txt
index 0532d815dae3..8f19d87cbf24 100644
--- a/Documentation/devicetree/bindings/clock/st,stm32-rcc.txt
+++ b/Documentation/devicetree/bindings/clock/st,stm32-rcc.txt
@@ -17,6 +17,9 @@ Required properties:
17 property, containing a phandle to the clock device node, an index selecting 17 property, containing a phandle to the clock device node, an index selecting
18 between gated clocks and other clocks and an index specifying the clock to 18 between gated clocks and other clocks and an index specifying the clock to
19 use. 19 use.
20- clocks: External oscillator clock phandle
21 - high speed external clock signal (HSE)
22 - external I2S clock (I2S_CKIN)
20 23
21Example: 24Example:
22 25
@@ -25,6 +28,7 @@ Example:
25 #clock-cells = <2> 28 #clock-cells = <2>
26 compatible = "st,stm32f42xx-rcc", "st,stm32-rcc"; 29 compatible = "st,stm32f42xx-rcc", "st,stm32-rcc";
27 reg = <0x40023800 0x400>; 30 reg = <0x40023800 0x400>;
31 clocks = <&clk_hse>, <&clk_i2s_ckin>;
28 }; 32 };
29 33
30Specifying gated clocks 34Specifying gated clocks
@@ -66,6 +70,19 @@ The secondary index is bound with the following magic numbers:
66 70
67 0 SYSTICK 71 0 SYSTICK
68 1 FCLK 72 1 FCLK
73 2 CLK_LSI (low-power clock source)
74 3 CLK_LSE (generated from a 32.768 kHz low-speed external
75 crystal or ceramic resonator)
76 4 CLK_HSE_RTC (HSE division factor for RTC clock)
77 5 CLK_RTC (real-time clock)
78 6 PLL_VCO_I2S (vco frequency of I2S pll)
79 7 PLL_VCO_SAI (vco frequency of SAI pll)
80 8 CLK_LCD (LCD-TFT)
81 9 CLK_I2S (I2S clocks)
82 10 CLK_SAI1 (audio clocks)
83 11 CLK_SAI2
84 12 CLK_I2SQ_PDIV (post divisor of pll i2s q divisor)
85 13 CLK_SAIQ_PDIV (post divisor of pll sai q divisor)
69 86
70Example: 87Example:
71 88
diff --git a/Documentation/devicetree/bindings/eeprom/eeprom.txt b/Documentation/devicetree/bindings/eeprom/eeprom.txt
index 735bc94444bb..5696eb508e95 100644
--- a/Documentation/devicetree/bindings/eeprom/eeprom.txt
+++ b/Documentation/devicetree/bindings/eeprom/eeprom.txt
@@ -10,6 +10,8 @@ Required properties:
10 10
11 "catalyst,24c32" 11 "catalyst,24c32"
12 12
13 "microchip,24c128"
14
13 "ramtron,24c64" 15 "ramtron,24c64"
14 16
15 "renesas,r1ex24002" 17 "renesas,r1ex24002"
diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt b/Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt
new file mode 100644
index 000000000000..476f5ea6c627
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt
@@ -0,0 +1,81 @@
1ARM Mali Utgard GPU
2===================
3
4Required properties:
5 - compatible
6 * Must be one of the following:
7 + "arm,mali-300"
8 + "arm,mali-400"
9 + "arm,mali-450"
10 * And, optionally, one of the vendor specific compatible:
11 + allwinner,sun4i-a10-mali
12 + allwinner,sun7i-a20-mali
13 + amlogic,meson-gxbb-mali
14 + amlogic,meson-gxl-mali
15 + stericsson,db8500-mali
16
17 - reg: Physical base address and length of the GPU registers
18
19 - interrupts: an entry for each entry in interrupt-names.
20 See ../interrupt-controller/interrupts.txt for details.
21
22 - interrupt-names:
23 * ppX: Pixel Processor X interrupt (X from 0 to 7)
24 * ppmmuX: Pixel Processor X MMU interrupt (X from 0 to 7)
25 * pp: Pixel Processor broadcast interrupt (mali-450 only)
26 * gp: Geometry Processor interrupt
27 * gpmmu: Geometry Processor MMU interrupt
28
29 - clocks: an entry for each entry in clock-names
30 - clock-names:
31 * bus: bus clock for the GPU
32 * core: clock driving the GPU itself
33
34Optional properties:
35 - interrupt-names and interrupts:
36 * pmu: Power Management Unit interrupt, if implemented in hardware
37
38Vendor-specific bindings
39------------------------
40
41The Mali GPU is integrated very differently from one SoC to
42another. In order to accomodate those differences, you have the option
43to specify one more vendor-specific compatible, among:
44
45 - allwinner,sun4i-a10-mali
46 Required properties:
47 * resets: phandle to the reset line for the GPU
48
49 - allwinner,sun7i-a20-mali
50 Required properties:
51 * resets: phandle to the reset line for the GPU
52
53 - stericsson,db8500-mali
54 Required properties:
55 * interrupt-names and interrupts:
56 + combined: combined interrupt of all of the above lines
57
58Example:
59
60mali: gpu@1c40000 {
61 compatible = "allwinner,sun7i-a20-mali", "arm,mali-400";
62 reg = <0x01c40000 0x10000>;
63 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
64 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
65 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
66 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
67 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
68 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
69 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
70 interrupt-names = "gp",
71 "gpmmu",
72 "pp0",
73 "ppmmu0",
74 "pp1",
75 "ppmmu1",
76 "pmu";
77 clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
78 clock-names = "bus", "core";
79 resets = <&ccu RST_BUS_GPU>;
80};
81
diff --git a/Documentation/devicetree/bindings/interrupt-controller/arm,gic.txt b/Documentation/devicetree/bindings/interrupt-controller/arm,gic.txt
index 5393e2a45a42..560d8a727b8f 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/arm,gic.txt
+++ b/Documentation/devicetree/bindings/interrupt-controller/arm,gic.txt
@@ -111,7 +111,7 @@ Example:
111 #interrupt-cells = <3>; 111 #interrupt-cells = <3>;
112 interrupt-controller; 112 interrupt-controller;
113 reg = <0x2c001000 0x1000>, 113 reg = <0x2c001000 0x1000>,
114 <0x2c002000 0x1000>, 114 <0x2c002000 0x2000>,
115 <0x2c004000 0x2000>, 115 <0x2c004000 0x2000>,
116 <0x2c006000 0x2000>; 116 <0x2c006000 0x2000>;
117 interrupts = <1 9 0xf04>; 117 interrupts = <1 9 0xf04>;
diff --git a/Documentation/devicetree/bindings/net/marvell,prestera.txt b/Documentation/devicetree/bindings/net/marvell,prestera.txt
new file mode 100644
index 000000000000..5fbab29718e8
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/marvell,prestera.txt
@@ -0,0 +1,50 @@
1Marvell Prestera Switch Chip bindings
2-------------------------------------
3
4Required properties:
5- compatible: one of the following
6 "marvell,prestera-98dx3236",
7 "marvell,prestera-98dx3336",
8 "marvell,prestera-98dx4251",
9- reg: address and length of the register set for the device.
10- interrupts: interrupt for the device
11
12Optional properties:
13- dfx: phandle reference to the "DFX Server" node
14
15Example:
16
17switch {
18 compatible = "simple-bus";
19 #address-cells = <1>;
20 #size-cells = <1>;
21 ranges = <0 MBUS_ID(0x03, 0x00) 0 0x100000>;
22
23 packet-processor@0 {
24 compatible = "marvell,prestera-98dx3236";
25 reg = <0 0x4000000>;
26 interrupts = <33>, <34>, <35>;
27 dfx = <&dfx>;
28 };
29};
30
31DFX Server bindings
32-------------------
33
34Required properties:
35- compatible: must be "marvell,dfx-server"
36- reg: address and length of the register set for the device.
37
38Example:
39
40dfx-registers {
41 compatible = "simple-bus";
42 #address-cells = <1>;
43 #size-cells = <1>;
44 ranges = <0 MBUS_ID(0x08, 0x00) 0 0x100000>;
45
46 dfx: dfx@0 {
47 compatible = "marvell,dfx-server";
48 reg = <0 0x100000>;
49 };
50};
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index ebd46f2eef24..f6824fd8fb65 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -164,11 +164,14 @@ kosagi Sutajio Ko-Usagi PTE Ltd.
164kyo Kyocera Corporation 164kyo Kyocera Corporation
165lacie LaCie 165lacie LaCie
166lantiq Lantiq Semiconductor 166lantiq Lantiq Semiconductor
167lego LEGO Systems A/S
167lenovo Lenovo Group Ltd. 168lenovo Lenovo Group Ltd.
168lg LG Corporation 169lg LG Corporation
170licheepi Lichee Pi
169linux Linux-specific binding 171linux Linux-specific binding
170lltc Linear Technology Corporation 172lltc Linear Technology Corporation
171lsi LSI Corp. (LSI Logic) 173lsi LSI Corp. (LSI Logic)
174lwn Liebherr-Werk Nenzing GmbH
172macnica Macnica Americas 175macnica Macnica Americas
173marvell Marvell Technology Group Ltd. 176marvell Marvell Technology Group Ltd.
174maxim Maxim Integrated Products 177maxim Maxim Integrated Products
@@ -232,6 +235,7 @@ pine64 Pine64
232pixcir PIXCIR MICROELECTRONICS Co., Ltd 235pixcir PIXCIR MICROELECTRONICS Co., Ltd
233plathome Plat'Home Co., Ltd. 236plathome Plat'Home Co., Ltd.
234plda PLDA 237plda PLDA
238poslab Poslab Technology Co., Ltd.
235powervr PowerVR (deprecated, use img) 239powervr PowerVR (deprecated, use img)
236pulsedlight PulsedLight, Inc 240pulsedlight PulsedLight, Inc
237qca Qualcomm Atheros, Inc. 241qca Qualcomm Atheros, Inc.
@@ -333,6 +337,7 @@ x-powers X-Powers
333xes Extreme Engineering Solutions (X-ES) 337xes Extreme Engineering Solutions (X-ES)
334xillybus Xillybus Ltd. 338xillybus Xillybus Ltd.
335xlnx Xilinx 339xlnx Xilinx
340xunlong Shenzhen Xunlong Software CO.,Limited
336zarlink Zarlink Semiconductor 341zarlink Zarlink Semiconductor
337zeitec ZEITEC Semiconductor Co., LTD. 342zeitec ZEITEC Semiconductor Co., LTD.
338zii Zodiac Inflight Innovations 343zii Zodiac Inflight Innovations
diff --git a/MAINTAINERS b/MAINTAINERS
index acf8ae1748e1..3ac9346cf6a8 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2351,6 +2351,14 @@ S: Maintained
2351F: Documentation/devicetree/bindings/sound/axentia,* 2351F: Documentation/devicetree/bindings/sound/axentia,*
2352F: sound/soc/atmel/tse850-pcm5142.c 2352F: sound/soc/atmel/tse850-pcm5142.c
2353 2353
2354AXENTIA ARM DEVICES
2355M: Peter Rosin <peda@axentia.se>
2356L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
2357S: Maintained
2358F: Documentation/devicetree/bindings/arm/axentia.txt
2359F: arch/arm/boot/dts/at91-linea.dtsi
2360F: arch/arm/boot/dts/at91-tse850-3.dts
2361
2354AZ6007 DVB DRIVER 2362AZ6007 DVB DRIVER
2355M: Mauro Carvalho Chehab <mchehab@s-opensource.com> 2363M: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2356M: Mauro Carvalho Chehab <mchehab@kernel.org> 2364M: Mauro Carvalho Chehab <mchehab@kernel.org>
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 01d178a2009f..011808490fed 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -48,11 +48,13 @@ dtb-$(CONFIG_SOC_SAM_V7) += \
48 at91-kizbox2.dtb \ 48 at91-kizbox2.dtb \
49 at91-sama5d2_xplained.dtb \ 49 at91-sama5d2_xplained.dtb \
50 at91-sama5d3_xplained.dtb \ 50 at91-sama5d3_xplained.dtb \
51 at91-tse850-3.dtb \
51 sama5d31ek.dtb \ 52 sama5d31ek.dtb \
52 sama5d33ek.dtb \ 53 sama5d33ek.dtb \
53 sama5d34ek.dtb \ 54 sama5d34ek.dtb \
54 sama5d35ek.dtb \ 55 sama5d35ek.dtb \
55 sama5d36ek.dtb \ 56 sama5d36ek.dtb \
57 sama5d36ek_cmp.dtb \
56 at91-sama5d4_ma5d4evk.dtb \ 58 at91-sama5d4_ma5d4evk.dtb \
57 at91-sama5d4_xplained.dtb \ 59 at91-sama5d4_xplained.dtb \
58 at91-sama5d4ek.dtb \ 60 at91-sama5d4ek.dtb \
@@ -83,6 +85,8 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
83 bcm47081-asus-rt-n18u.dtb \ 85 bcm47081-asus-rt-n18u.dtb \
84 bcm47081-buffalo-wzr-600dhp2.dtb \ 86 bcm47081-buffalo-wzr-600dhp2.dtb \
85 bcm47081-buffalo-wzr-900dhp.dtb \ 87 bcm47081-buffalo-wzr-900dhp.dtb \
88 bcm47081-luxul-xap-1410.dtb \
89 bcm47081-luxul-xwr-1200.dtb \
86 bcm4709-asus-rt-ac87u.dtb \ 90 bcm4709-asus-rt-ac87u.dtb \
87 bcm4709-buffalo-wxr-1900dhp.dtb \ 91 bcm4709-buffalo-wxr-1900dhp.dtb \
88 bcm4709-netgear-r7000.dtb \ 92 bcm4709-netgear-r7000.dtb \
@@ -128,7 +132,8 @@ dtb-$(CONFIG_ARCH_CLPS711X) += \
128dtb-$(CONFIG_ARCH_DAVINCI) += \ 132dtb-$(CONFIG_ARCH_DAVINCI) += \
129 da850-lcdk.dtb \ 133 da850-lcdk.dtb \
130 da850-enbw-cmc.dtb \ 134 da850-enbw-cmc.dtb \
131 da850-evm.dtb 135 da850-evm.dtb \
136 da850-lego-ev3.dtb
132dtb-$(CONFIG_ARCH_DIGICOLOR) += \ 137dtb-$(CONFIG_ARCH_DIGICOLOR) += \
133 cx92755_equinox.dtb 138 cx92755_equinox.dtb
134dtb-$(CONFIG_ARCH_EFM32) += \ 139dtb-$(CONFIG_ARCH_EFM32) += \
@@ -349,6 +354,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
349 imx6dl-gw553x.dtb \ 354 imx6dl-gw553x.dtb \
350 imx6dl-hummingboard.dtb \ 355 imx6dl-hummingboard.dtb \
351 imx6dl-icore.dtb \ 356 imx6dl-icore.dtb \
357 imx6dl-icore-rqs.dtb \
352 imx6dl-nit6xlite.dtb \ 358 imx6dl-nit6xlite.dtb \
353 imx6dl-nitrogen6x.dtb \ 359 imx6dl-nitrogen6x.dtb \
354 imx6dl-phytec-pbab01.dtb \ 360 imx6dl-phytec-pbab01.dtb \
@@ -357,6 +363,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
357 imx6dl-sabreauto.dtb \ 363 imx6dl-sabreauto.dtb \
358 imx6dl-sabrelite.dtb \ 364 imx6dl-sabrelite.dtb \
359 imx6dl-sabresd.dtb \ 365 imx6dl-sabresd.dtb \
366 imx6dl-savageboard.dtb \
360 imx6dl-ts4900.dtb \ 367 imx6dl-ts4900.dtb \
361 imx6dl-tx6dl-comtft.dtb \ 368 imx6dl-tx6dl-comtft.dtb \
362 imx6dl-tx6s-8034.dtb \ 369 imx6dl-tx6s-8034.dtb \
@@ -393,6 +400,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
393 imx6q-icore.dtb \ 400 imx6q-icore.dtb \
394 imx6q-icore-rqs.dtb \ 401 imx6q-icore-rqs.dtb \
395 imx6q-marsboard.dtb \ 402 imx6q-marsboard.dtb \
403 imx6q-mccmon6.dtb \
396 imx6q-nitrogen6x.dtb \ 404 imx6q-nitrogen6x.dtb \
397 imx6q-nitrogen6_max.dtb \ 405 imx6q-nitrogen6_max.dtb \
398 imx6q-nitrogen6_som2.dtb \ 406 imx6q-nitrogen6_som2.dtb \
@@ -402,6 +410,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
402 imx6q-sabreauto.dtb \ 410 imx6q-sabreauto.dtb \
403 imx6q-sabrelite.dtb \ 411 imx6q-sabrelite.dtb \
404 imx6q-sabresd.dtb \ 412 imx6q-sabresd.dtb \
413 imx6q-savageboard.dtb \
405 imx6q-sbc6x.dtb \ 414 imx6q-sbc6x.dtb \
406 imx6q-tbs2910.dtb \ 415 imx6q-tbs2910.dtb \
407 imx6q-ts4900.dtb \ 416 imx6q-ts4900.dtb \
@@ -434,7 +443,10 @@ dtb-$(CONFIG_SOC_IMX6SX) += \
434dtb-$(CONFIG_SOC_IMX6UL) += \ 443dtb-$(CONFIG_SOC_IMX6UL) += \
435 imx6ul-14x14-evk.dtb \ 444 imx6ul-14x14-evk.dtb \
436 imx6ul-geam-kit.dtb \ 445 imx6ul-geam-kit.dtb \
446 imx6ul-isiot-emmc.dtb \
447 imx6ul-isiot-nand.dtb \
437 imx6ul-liteboard.dtb \ 448 imx6ul-liteboard.dtb \
449 imx6ul-opos6uldev.dtb \
438 imx6ul-pico-hobbit.dtb \ 450 imx6ul-pico-hobbit.dtb \
439 imx6ul-tx6ul-0010.dtb \ 451 imx6ul-tx6ul-0010.dtb \
440 imx6ul-tx6ul-0011.dtb \ 452 imx6ul-tx6ul-0011.dtb \
@@ -458,7 +470,8 @@ dtb-$(CONFIG_SOC_VF610) += \
458 vf610-cosmic.dtb \ 470 vf610-cosmic.dtb \
459 vf610m4-cosmic.dtb \ 471 vf610m4-cosmic.dtb \
460 vf610-twr.dtb \ 472 vf610-twr.dtb \
461 vf610-zii-dev-rev-b.dtb 473 vf610-zii-dev-rev-b.dtb \
474 vf610-zii-dev-rev-c.dtb
462dtb-$(CONFIG_ARCH_MXS) += \ 475dtb-$(CONFIG_ARCH_MXS) += \
463 imx23-evk.dtb \ 476 imx23-evk.dtb \
464 imx23-olinuxino.dtb \ 477 imx23-olinuxino.dtb \
@@ -564,7 +577,9 @@ dtb-$(CONFIG_SOC_AM33XX) += \
564 am335x-base0033.dtb \ 577 am335x-base0033.dtb \
565 am335x-bone.dtb \ 578 am335x-bone.dtb \
566 am335x-boneblack.dtb \ 579 am335x-boneblack.dtb \
580 am335x-boneblack-wireless.dtb \
567 am335x-bonegreen.dtb \ 581 am335x-bonegreen.dtb \
582 am335x-bonegreen-wireless.dtb \
568 am335x-chiliboard.dtb \ 583 am335x-chiliboard.dtb \
569 am335x-cm-t335.dtb \ 584 am335x-cm-t335.dtb \
570 am335x-evm.dtb \ 585 am335x-evm.dtb \
@@ -573,6 +588,7 @@ dtb-$(CONFIG_SOC_AM33XX) += \
573 am335x-lxm.dtb \ 588 am335x-lxm.dtb \
574 am335x-nano.dtb \ 589 am335x-nano.dtb \
575 am335x-pepper.dtb \ 590 am335x-pepper.dtb \
591 am335x-phycore-rdk.dtb \
576 am335x-shc.dtb \ 592 am335x-shc.dtb \
577 am335x-sbc-t335.dtb \ 593 am335x-sbc-t335.dtb \
578 am335x-sl50.dtb \ 594 am335x-sl50.dtb \
@@ -718,6 +734,7 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \
718 sh73a0-kzm9g.dtb 734 sh73a0-kzm9g.dtb
719dtb-$(CONFIG_ARCH_SOCFPGA) += \ 735dtb-$(CONFIG_ARCH_SOCFPGA) += \
720 socfpga_arria5_socdk.dtb \ 736 socfpga_arria5_socdk.dtb \
737 socfpga_arria10_socdk_nand.dtb \
721 socfpga_arria10_socdk_qspi.dtb \ 738 socfpga_arria10_socdk_qspi.dtb \
722 socfpga_arria10_socdk_sdmmc.dtb \ 739 socfpga_arria10_socdk_sdmmc.dtb \
723 socfpga_cyclone5_mcvevk.dtb \ 740 socfpga_cyclone5_mcvevk.dtb \
@@ -782,6 +799,7 @@ dtb-$(CONFIG_MACH_SUN5I) += \
782 sun5i-a13-empire-electronix-m712.dtb \ 799 sun5i-a13-empire-electronix-m712.dtb \
783 sun5i-a13-hsg-h702.dtb \ 800 sun5i-a13-hsg-h702.dtb \
784 sun5i-a13-inet-98v-rev2.dtb \ 801 sun5i-a13-inet-98v-rev2.dtb \
802 sun5i-a13-licheepi-one.dtb \
785 sun5i-a13-olinuxino.dtb \ 803 sun5i-a13-olinuxino.dtb \
786 sun5i-a13-olinuxino-micro.dtb \ 804 sun5i-a13-olinuxino-micro.dtb \
787 sun5i-a13-q8-tablet.dtb \ 805 sun5i-a13-q8-tablet.dtb \
@@ -845,7 +863,9 @@ dtb-$(CONFIG_MACH_SUN8I) += \
845 sun8i-a33-sinlinx-sina33.dtb \ 863 sun8i-a33-sinlinx-sina33.dtb \
846 sun8i-a83t-allwinner-h8homlet-v2.dtb \ 864 sun8i-a83t-allwinner-h8homlet-v2.dtb \
847 sun8i-a83t-cubietruck-plus.dtb \ 865 sun8i-a83t-cubietruck-plus.dtb \
866 sun8i-h2-plus-orangepi-zero.dtb \
848 sun8i-h3-bananapi-m2-plus.dtb \ 867 sun8i-h3-bananapi-m2-plus.dtb \
868 sun8i-h3-beelink-x2.dtb \
849 sun8i-h3-nanopi-m1.dtb \ 869 sun8i-h3-nanopi-m1.dtb \
850 sun8i-h3-nanopi-neo.dtb \ 870 sun8i-h3-nanopi-neo.dtb \
851 sun8i-h3-orangepi-2.dtb \ 871 sun8i-h3-orangepi-2.dtb \
@@ -855,7 +875,8 @@ dtb-$(CONFIG_MACH_SUN8I) += \
855 sun8i-h3-orangepi-pc-plus.dtb \ 875 sun8i-h3-orangepi-pc-plus.dtb \
856 sun8i-h3-orangepi-plus.dtb \ 876 sun8i-h3-orangepi-plus.dtb \
857 sun8i-h3-orangepi-plus2e.dtb \ 877 sun8i-h3-orangepi-plus2e.dtb \
858 sun8i-r16-parrot.dtb 878 sun8i-r16-parrot.dtb \
879 sun8i-v3s-licheepi-zero.dtb
859dtb-$(CONFIG_MACH_SUN9I) += \ 880dtb-$(CONFIG_MACH_SUN9I) += \
860 sun9i-a80-optimus.dtb \ 881 sun9i-a80-optimus.dtb \
861 sun9i-a80-cubieboard4.dtb 882 sun9i-a80-cubieboard4.dtb
@@ -951,6 +972,8 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
951 armada-385-linksys-cobra.dtb \ 972 armada-385-linksys-cobra.dtb \
952 armada-385-turris-omnia.dtb \ 973 armada-385-turris-omnia.dtb \
953 armada-388-clearfog.dtb \ 974 armada-388-clearfog.dtb \
975 armada-388-clearfog-base.dtb \
976 armada-388-clearfog-pro.dtb \
954 armada-388-db.dtb \ 977 armada-388-db.dtb \
955 armada-388-gp.dtb \ 978 armada-388-gp.dtb \
956 armada-388-rd.dtb 979 armada-388-rd.dtb
@@ -959,6 +982,8 @@ dtb-$(CONFIG_MACH_ARMADA_39X) += \
959dtb-$(CONFIG_MACH_ARMADA_XP) += \ 982dtb-$(CONFIG_MACH_ARMADA_XP) += \
960 armada-xp-axpwifiap.dtb \ 983 armada-xp-axpwifiap.dtb \
961 armada-xp-db.dtb \ 984 armada-xp-db.dtb \
985 armada-xp-db-dxbc2.dtb \
986 armada-xp-db-xc3-24g4xg.dtb \
962 armada-xp-gp.dtb \ 987 armada-xp-gp.dtb \
963 armada-xp-lenovo-ix4-300d.dtb \ 988 armada-xp-lenovo-ix4-300d.dtb \
964 armada-xp-linksys-mamba.dtb \ 989 armada-xp-linksys-mamba.dtb \
@@ -983,6 +1008,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
983 mt8135-evbp1.dtb 1008 mt8135-evbp1.dtb
984dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb 1009dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb
985dtb-$(CONFIG_ARCH_ASPEED) += aspeed-bmc-opp-palmetto.dtb \ 1010dtb-$(CONFIG_ARCH_ASPEED) += aspeed-bmc-opp-palmetto.dtb \
1011 aspeed-bmc-opp-romulus.dtb \
986 aspeed-ast2500-evb.dtb 1012 aspeed-ast2500-evb.dtb
987endif 1013endif
988 1014
diff --git a/arch/arm/boot/dts/alpine.dtsi b/arch/arm/boot/dts/alpine.dtsi
index db8752fc480e..d0eefc3b886c 100644
--- a/arch/arm/boot/dts/alpine.dtsi
+++ b/arch/arm/boot/dts/alpine.dtsi
@@ -93,7 +93,7 @@
93 interrupt-controller; 93 interrupt-controller;
94 reg = <0x0 0xfb001000 0x0 0x1000>, 94 reg = <0x0 0xfb001000 0x0 0x1000>,
95 <0x0 0xfb002000 0x0 0x2000>, 95 <0x0 0xfb002000 0x0 0x2000>,
96 <0x0 0xfb004000 0x0 0x1000>, 96 <0x0 0xfb004000 0x0 0x2000>,
97 <0x0 0xfb006000 0x0 0x2000>; 97 <0x0 0xfb006000 0x0 0x2000>;
98 interrupts = 98 interrupts =
99 <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 99 <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
index 3e32dd18fd25..bf6b26abe35b 100644
--- a/arch/arm/boot/dts/am335x-bone-common.dtsi
+++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
@@ -207,6 +207,8 @@
207&usb0 { 207&usb0 {
208 status = "okay"; 208 status = "okay";
209 dr_mode = "peripheral"; 209 dr_mode = "peripheral";
210 interrupts-extended = <&intc 18 &tps 0>;
211 interrupt-names = "mc", "vbus";
210}; 212};
211 213
212&usb1 { 214&usb1 {
diff --git a/arch/arm/boot/dts/am335x-boneblack-common.dtsi b/arch/arm/boot/dts/am335x-boneblack-common.dtsi
new file mode 100644
index 000000000000..325daae40278
--- /dev/null
+++ b/arch/arm/boot/dts/am335x-boneblack-common.dtsi
@@ -0,0 +1,163 @@
1/*
2 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9#include <dt-bindings/display/tda998x.h>
10
11&ldo3_reg {
12 regulator-min-microvolt = <1800000>;
13 regulator-max-microvolt = <1800000>;
14 regulator-always-on;
15};
16
17&mmc1 {
18 vmmc-supply = <&vmmcsd_fixed>;
19};
20
21&mmc2 {
22 vmmc-supply = <&vmmcsd_fixed>;
23 pinctrl-names = "default";
24 pinctrl-0 = <&emmc_pins>;
25 bus-width = <8>;
26 status = "okay";
27};
28
29&am33xx_pinmux {
30 nxp_hdmi_bonelt_pins: nxp_hdmi_bonelt_pins {
31 pinctrl-single,pins = <
32 AM33XX_IOPAD(0x9b0, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr0 */
33 AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */
34 AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0) /* lcd_data1.lcd_data1 */
35 AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0) /* lcd_data2.lcd_data2 */
36 AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0) /* lcd_data3.lcd_data3 */
37 AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0) /* lcd_data4.lcd_data4 */
38 AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0) /* lcd_data5.lcd_data5 */
39 AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0) /* lcd_data6.lcd_data6 */
40 AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0) /* lcd_data7.lcd_data7 */
41 AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0) /* lcd_data8.lcd_data8 */
42 AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0) /* lcd_data9.lcd_data9 */
43 AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0) /* lcd_data10.lcd_data10 */
44 AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0) /* lcd_data11.lcd_data11 */
45 AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0) /* lcd_data12.lcd_data12 */
46 AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0) /* lcd_data13.lcd_data13 */
47 AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0) /* lcd_data14.lcd_data14 */
48 AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0) /* lcd_data15.lcd_data15 */
49 AM33XX_IOPAD(0x8e0, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_vsync.lcd_vsync */
50 AM33XX_IOPAD(0x8e4, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_hsync.lcd_hsync */
51 AM33XX_IOPAD(0x8e8, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_pclk.lcd_pclk */
52 AM33XX_IOPAD(0x8ec, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en */
53 >;
54 };
55
56 nxp_hdmi_bonelt_off_pins: nxp_hdmi_bonelt_off_pins {
57 pinctrl-single,pins = <
58 AM33XX_IOPAD(0x9b0, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr0 */
59 >;
60 };
61
62 mcasp0_pins: mcasp0_pins {
63 pinctrl-single,pins = <
64 AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLUP | MUX_MODE0) /* mcasp0_ahcklx.mcasp0_ahclkx */
65 AM33XX_IOPAD(0x99c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mcasp0_ahclkr.mcasp0_axr2*/
66 AM33XX_IOPAD(0x994, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mcasp0_fsx.mcasp0_fsx */
67 AM33XX_IOPAD(0x990, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_aclkx.mcasp0_aclkx */
68 AM33XX_IOPAD(0x86c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.GPIO1_27 */
69 >;
70 };
71};
72
73&lcdc {
74 status = "okay";
75
76 /* If you want to get 24 bit RGB and 16 BGR mode instead of
77 * current 16 bit RGB and 24 BGR modes, set the propety
78 * below to "crossed" and uncomment the video-ports -property
79 * in tda19988 node.
80 */
81 blue-and-red-wiring = "straight";
82
83 port {
84 lcdc_0: endpoint@0 {
85 remote-endpoint = <&hdmi_0>;
86 };
87 };
88};
89
90&i2c0 {
91 tda19988: tda19988 {
92 compatible = "nxp,tda998x";
93 reg = <0x70>;
94
95 pinctrl-names = "default", "off";
96 pinctrl-0 = <&nxp_hdmi_bonelt_pins>;
97 pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>;
98
99 /* Convert 24bit BGR to RGB, e.g. cross red and blue wiring */
100 /* video-ports = <0x234501>; */
101
102 #sound-dai-cells = <0>;
103 audio-ports = < TDA998x_I2S 0x03>;
104
105 ports {
106 port@0 {
107 hdmi_0: endpoint@0 {
108 remote-endpoint = <&lcdc_0>;
109 };
110 };
111 };
112 };
113};
114
115&rtc {
116 system-power-controller;
117};
118
119&mcasp0 {
120 #sound-dai-cells = <0>;
121 pinctrl-names = "default";
122 pinctrl-0 = <&mcasp0_pins>;
123 status = "okay";
124 op-mode = <0>; /* MCASP_IIS_MODE */
125 tdm-slots = <2>;
126 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
127 0 0 1 0
128 >;
129 tx-num-evt = <32>;
130 rx-num-evt = <32>;
131};
132
133/ {
134 clk_mcasp0_fixed: clk_mcasp0_fixed {
135 #clock-cells = <0>;
136 compatible = "fixed-clock";
137 clock-frequency = <24576000>;
138 };
139
140 clk_mcasp0: clk_mcasp0 {
141 #clock-cells = <0>;
142 compatible = "gpio-gate-clock";
143 clocks = <&clk_mcasp0_fixed>;
144 enable-gpios = <&gpio1 27 0>; /* BeagleBone Black Clk enable on GPIO1_27 */
145 };
146
147 sound {
148 compatible = "simple-audio-card";
149 simple-audio-card,name = "TI BeagleBone Black";
150 simple-audio-card,format = "i2s";
151 simple-audio-card,bitclock-master = <&dailink0_master>;
152 simple-audio-card,frame-master = <&dailink0_master>;
153
154 dailink0_master: simple-audio-card,cpu {
155 sound-dai = <&mcasp0>;
156 clocks = <&clk_mcasp0>;
157 };
158
159 simple-audio-card,codec {
160 sound-dai = <&tda19988>;
161 };
162 };
163};
diff --git a/arch/arm/boot/dts/am335x-boneblack-wireless.dts b/arch/arm/boot/dts/am335x-boneblack-wireless.dts
new file mode 100644
index 000000000000..105bd10655f7
--- /dev/null
+++ b/arch/arm/boot/dts/am335x-boneblack-wireless.dts
@@ -0,0 +1,109 @@
1/*
2 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8/dts-v1/;
9
10#include "am33xx.dtsi"
11#include "am335x-bone-common.dtsi"
12#include "am335x-boneblack-common.dtsi"
13#include <dt-bindings/interrupt-controller/irq.h>
14
15/ {
16 model = "TI AM335x BeagleBone Black Wireless";
17 compatible = "ti,am335x-bone-black-wireless", "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
18
19 wlan_en_reg: fixedregulator@2 {
20 compatible = "regulator-fixed";
21 regulator-name = "wlan-en-regulator";
22 regulator-min-microvolt = <1800000>;
23 regulator-max-microvolt = <1800000>;
24 startup-delay-us= <70000>;
25
26 /* WL_EN */
27 gpio = <&gpio3 9 0>;
28 enable-active-high;
29 };
30};
31
32&am33xx_pinmux {
33 bt_pins: pinmux_bt_pins {
34 pinctrl-single,pins = <
35 AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gmii1_txd0.gpio0_28 - BT_EN */
36 >;
37 };
38
39 mmc3_pins: pinmux_mmc3_pins {
40 pinctrl-single,pins = <
41 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLUP | MUX_MODE6 ) /* (L15) gmii1_rxd1.mmc2_clk */
42 AM33XX_IOPAD(0x914, PIN_INPUT_PULLUP | MUX_MODE6 ) /* (J16) gmii1_txen.mmc2_cmd */
43 AM33XX_IOPAD(0x918, PIN_INPUT_PULLUP | MUX_MODE5 ) /* (J17) gmii1_rxdv.mmc2_dat0 */
44 AM33XX_IOPAD(0x91c, PIN_INPUT_PULLUP | MUX_MODE5 ) /* (J18) gmii1_txd3.mmc2_dat1 */
45 AM33XX_IOPAD(0x920, PIN_INPUT_PULLUP | MUX_MODE5 ) /* (K15) gmii1_txd2.mmc2_dat2 */
46 AM33XX_IOPAD(0x908, PIN_INPUT_PULLUP | MUX_MODE5 ) /* (H16) gmii1_col.mmc2_dat3 */
47 >;
48 };
49
50 uart3_pins: pinmux_uart3_pins {
51 pinctrl-single,pins = <
52 AM33XX_IOPAD(0x934, PIN_INPUT_PULLUP | MUX_MODE1) /* gmii1_rxd3.uart3_rxd */
53 AM33XX_IOPAD(0x938, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gmii1_rxd2.uart3_txd */
54 AM33XX_IOPAD(0x948, PIN_INPUT | MUX_MODE3) /* mdio_data.uart3_ctsn */
55 AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* mdio_clk.uart3_rtsn */
56 >;
57 };
58
59 wl18xx_pins: pinmux_wl18xx_pins {
60 pinctrl-single,pins = <
61 AM33XX_IOPAD(0x92c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gmii1_txclk.gpio3_9 WL_EN */
62 AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_refclk.gpio0_29 WL_IRQ */
63 AM33XX_IOPAD(0x930, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gmii1_rxclk.gpio3_10 LS_BUF_EN */
64 >;
65 };
66};
67
68&mac {
69 status = "disabled";
70};
71
72&mmc3 {
73 dmas = <&edma_xbar 12 0 1
74 &edma_xbar 13 0 2>;
75 dma-names = "tx", "rx";
76 status = "okay";
77 vmmc-supply = <&wlan_en_reg>;
78 bus-width = <4>;
79 non-removable;
80 cap-power-off-card;
81 ti,needs-special-hs-handling;
82 keep-power-in-suspend;
83 pinctrl-names = "default";
84 pinctrl-0 = <&mmc3_pins &wl18xx_pins>;
85
86 #address-cells = <1>;
87 #size-cells = <0>;
88 wlcore: wlcore@2 {
89 compatible = "ti,wl1835";
90 reg = <2>;
91 interrupt-parent = <&gpio0>;
92 interrupts = <29 IRQ_TYPE_EDGE_RISING>;
93 };
94};
95
96&uart3 {
97 pinctrl-names = "default";
98 pinctrl-0 = <&uart3_pins &bt_pins>;
99 status = "okay";
100};
101
102&gpio3 {
103 ls_buf_en {
104 gpio-hog;
105 gpios = <10 GPIO_ACTIVE_HIGH>;
106 output-high;
107 line-name = "LS_BUF_EN";
108 };
109};
diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts
index db00d8ef7b19..77273df1a028 100644
--- a/arch/arm/boot/dts/am335x-boneblack.dts
+++ b/arch/arm/boot/dts/am335x-boneblack.dts
@@ -9,162 +9,9 @@
9 9
10#include "am33xx.dtsi" 10#include "am33xx.dtsi"
11#include "am335x-bone-common.dtsi" 11#include "am335x-bone-common.dtsi"
12#include <dt-bindings/display/tda998x.h> 12#include "am335x-boneblack-common.dtsi"
13 13
14/ { 14/ {
15 model = "TI AM335x BeagleBone Black"; 15 model = "TI AM335x BeagleBone Black";
16 compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; 16 compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
17}; 17};
18
19&ldo3_reg {
20 regulator-min-microvolt = <1800000>;
21 regulator-max-microvolt = <1800000>;
22 regulator-always-on;
23};
24
25&mmc1 {
26 vmmc-supply = <&vmmcsd_fixed>;
27};
28
29&mmc2 {
30 vmmc-supply = <&vmmcsd_fixed>;
31 pinctrl-names = "default";
32 pinctrl-0 = <&emmc_pins>;
33 bus-width = <8>;
34 status = "okay";
35};
36
37&am33xx_pinmux {
38 nxp_hdmi_bonelt_pins: nxp_hdmi_bonelt_pins {
39 pinctrl-single,pins = <
40 AM33XX_IOPAD(0x9b0, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr0 */
41 AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */
42 AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0) /* lcd_data1.lcd_data1 */
43 AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0) /* lcd_data2.lcd_data2 */
44 AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0) /* lcd_data3.lcd_data3 */
45 AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0) /* lcd_data4.lcd_data4 */
46 AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0) /* lcd_data5.lcd_data5 */
47 AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0) /* lcd_data6.lcd_data6 */
48 AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0) /* lcd_data7.lcd_data7 */
49 AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0) /* lcd_data8.lcd_data8 */
50 AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0) /* lcd_data9.lcd_data9 */
51 AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0) /* lcd_data10.lcd_data10 */
52 AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0) /* lcd_data11.lcd_data11 */
53 AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0) /* lcd_data12.lcd_data12 */
54 AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0) /* lcd_data13.lcd_data13 */
55 AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0) /* lcd_data14.lcd_data14 */
56 AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0) /* lcd_data15.lcd_data15 */
57 AM33XX_IOPAD(0x8e0, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_vsync.lcd_vsync */
58 AM33XX_IOPAD(0x8e4, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_hsync.lcd_hsync */
59 AM33XX_IOPAD(0x8e8, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_pclk.lcd_pclk */
60 AM33XX_IOPAD(0x8ec, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en */
61 >;
62 };
63 nxp_hdmi_bonelt_off_pins: nxp_hdmi_bonelt_off_pins {
64 pinctrl-single,pins = <
65 AM33XX_IOPAD(0x9b0, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr0 */
66 >;
67 };
68
69 mcasp0_pins: mcasp0_pins {
70 pinctrl-single,pins = <
71 AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLUP | MUX_MODE0) /* mcasp0_ahcklx.mcasp0_ahclkx */
72 AM33XX_IOPAD(0x99c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mcasp0_ahclkr.mcasp0_axr2*/
73 AM33XX_IOPAD(0x994, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mcasp0_fsx.mcasp0_fsx */
74 AM33XX_IOPAD(0x990, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_aclkx.mcasp0_aclkx */
75 AM33XX_IOPAD(0x86c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.GPIO1_27 */
76 >;
77 };
78};
79
80&lcdc {
81 status = "okay";
82
83 /* If you want to get 24 bit RGB and 16 BGR mode instead of
84 * current 16 bit RGB and 24 BGR modes, set the propety
85 * below to "crossed" and uncomment the video-ports -property
86 * in tda19988 node.
87 */
88 blue-and-red-wiring = "straight";
89
90 port {
91 lcdc_0: endpoint@0 {
92 remote-endpoint = <&hdmi_0>;
93 };
94 };
95};
96
97&i2c0 {
98 tda19988: tda19988 {
99 compatible = "nxp,tda998x";
100 reg = <0x70>;
101
102 pinctrl-names = "default", "off";
103 pinctrl-0 = <&nxp_hdmi_bonelt_pins>;
104 pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>;
105
106 /* Convert 24bit BGR to RGB, e.g. cross red and blue wiring */
107 /* video-ports = <0x234501>; */
108
109 #sound-dai-cells = <0>;
110 audio-ports = < TDA998x_I2S 0x03>;
111
112 ports {
113 port@0 {
114 hdmi_0: endpoint@0 {
115 remote-endpoint = <&lcdc_0>;
116 };
117 };
118 };
119 };
120};
121
122&rtc {
123 system-power-controller;
124};
125
126&mcasp0 {
127 #sound-dai-cells = <0>;
128 pinctrl-names = "default";
129 pinctrl-0 = <&mcasp0_pins>;
130 status = "okay";
131 op-mode = <0>; /* MCASP_IIS_MODE */
132 tdm-slots = <2>;
133 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
134 0 0 1 0
135 >;
136 tx-num-evt = <32>;
137 rx-num-evt = <32>;
138};
139
140/ {
141 clk_mcasp0_fixed: clk_mcasp0_fixed {
142 #clock-cells = <0>;
143 compatible = "fixed-clock";
144 clock-frequency = <24576000>;
145 };
146
147 clk_mcasp0: clk_mcasp0 {
148 #clock-cells = <0>;
149 compatible = "gpio-gate-clock";
150 clocks = <&clk_mcasp0_fixed>;
151 enable-gpios = <&gpio1 27 0>; /* BeagleBone Black Clk enable on GPIO1_27 */
152 };
153
154 sound {
155 compatible = "simple-audio-card";
156 simple-audio-card,name = "TI BeagleBone Black";
157 simple-audio-card,format = "i2s";
158 simple-audio-card,bitclock-master = <&dailink0_master>;
159 simple-audio-card,frame-master = <&dailink0_master>;
160
161 dailink0_master: simple-audio-card,cpu {
162 sound-dai = <&mcasp0>;
163 clocks = <&clk_mcasp0>;
164 };
165
166 simple-audio-card,codec {
167 sound-dai = <&tda19988>;
168 };
169 };
170};
diff --git a/arch/arm/boot/dts/am335x-bonegreen-common.dtsi b/arch/arm/boot/dts/am335x-bonegreen-common.dtsi
new file mode 100644
index 000000000000..853e6d3a028d
--- /dev/null
+++ b/arch/arm/boot/dts/am335x-bonegreen-common.dtsi
@@ -0,0 +1,44 @@
1/*
2 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9&ldo3_reg {
10 regulator-min-microvolt = <1800000>;
11 regulator-max-microvolt = <1800000>;
12 regulator-always-on;
13};
14
15&mmc1 {
16 vmmc-supply = <&vmmcsd_fixed>;
17};
18
19&mmc2 {
20 vmmc-supply = <&vmmcsd_fixed>;
21 pinctrl-names = "default";
22 pinctrl-0 = <&emmc_pins>;
23 bus-width = <8>;
24 status = "okay";
25};
26
27&am33xx_pinmux {
28 uart2_pins: uart2_pins {
29 pinctrl-single,pins = <
30 AM33XX_IOPAD(0x950, PIN_INPUT | MUX_MODE1) /* spi0_sclk.uart2_rxd */
31 AM33XX_IOPAD(0x954, PIN_OUTPUT | MUX_MODE1) /* spi0_d0.uart2_txd */
32 >;
33 };
34};
35
36&uart2 {
37 pinctrl-names = "default";
38 pinctrl-0 = <&uart2_pins>;
39 status = "okay";
40};
41
42&rtc {
43 system-power-controller;
44};
diff --git a/arch/arm/boot/dts/am335x-bonegreen-wireless.dts b/arch/arm/boot/dts/am335x-bonegreen-wireless.dts
new file mode 100644
index 000000000000..9d1a0fd555f3
--- /dev/null
+++ b/arch/arm/boot/dts/am335x-bonegreen-wireless.dts
@@ -0,0 +1,126 @@
1/*
2 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8/dts-v1/;
9
10#include "am33xx.dtsi"
11#include "am335x-bone-common.dtsi"
12#include "am335x-bonegreen-common.dtsi"
13#include <dt-bindings/interrupt-controller/irq.h>
14
15/ {
16 model = "TI AM335x BeagleBone Green Wireless";
17 compatible = "ti,am335x-bone-green-wireless", "ti,am335x-bone-green", "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
18
19 wlan_en_reg: fixedregulator@2 {
20 compatible = "regulator-fixed";
21 regulator-name = "wlan-en-regulator";
22 regulator-min-microvolt = <1800000>;
23 regulator-max-microvolt = <1800000>;
24 startup-delay-us= <70000>;
25
26 /* WL_EN */
27 gpio = <&gpio0 26 0>;
28 enable-active-high;
29 };
30};
31
32&am33xx_pinmux {
33 bt_pins: pinmux_bt_pins {
34 pinctrl-single,pins = <
35 AM33XX_IOPAD(0x878, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_ad12.gpio1_28 BT_EN */
36 >;
37 };
38
39 mmc3_pins: pinmux_mmc3_pins {
40 pinctrl-single,pins = <
41 AM33XX_IOPAD(0x830, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad12.mmc2_dat0 */
42 AM33XX_IOPAD(0x834, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad13.mmc2_dat1 */
43 AM33XX_IOPAD(0x838, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad14.mmc2_dat2 */
44 AM33XX_IOPAD(0x83c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad15.mmc2_dat3 */
45 AM33XX_IOPAD(0x888, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_csn3.mmc2_cmd */
46 AM33XX_IOPAD(0x88c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_clk.mmc2_clk */
47 >;
48 };
49
50 uart3_pins: pinmux_uart3_pins {
51 pinctrl-single,pins = <
52 AM33XX_IOPAD(0x934, PIN_INPUT_PULLUP | MUX_MODE1) /* gmii1_rxd3.uart3_rxd */
53 AM33XX_IOPAD(0x938, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gmii1_rxd2.uart3_txd */
54 AM33XX_IOPAD(0x948, PIN_INPUT | MUX_MODE3) /* mdio_data.uart3_ctsn */
55 AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* mdio_clk.uart3_rtsn */
56 >;
57 };
58
59 wl18xx_pins: pinmux_wl18xx_pins {
60 pinctrl-single,pins = <
61 AM33XX_IOPAD(0x828, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad10.gpio0_26 WL_EN */
62 AM33XX_IOPAD(0x82C, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad11.gpio0_27 WL_IRQ */
63 AM33XX_IOPAD(0x87C, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_csn0.gpio1_29 LS_BUF_EN */
64 >;
65 };
66};
67
68&mac {
69 status = "disabled";
70};
71
72&mmc3 {
73 dmas = <&edma_xbar 12 0 1
74 &edma_xbar 13 0 2>;
75 dma-names = "tx", "rx";
76 status = "okay";
77 vmmc-supply = <&wlan_en_reg>;
78 bus-width = <4>;
79 non-removable;
80 cap-power-off-card;
81 ti,needs-special-hs-handling;
82 keep-power-in-suspend;
83 pinctrl-names = "default";
84 pinctrl-0 = <&mmc3_pins &wl18xx_pins>;
85
86 #address-cells = <1>;
87 #size-cells = <0>;
88 wlcore: wlcore@2 {
89 compatible = "ti,wl1835";
90 reg = <2>;
91 interrupt-parent = <&gpio0>;
92 interrupts = <27 IRQ_TYPE_EDGE_RISING>;
93 };
94};
95
96&uart3 {
97 pinctrl-names = "default";
98 pinctrl-0 = <&uart3_pins &bt_pins>;
99 status = "okay";
100};
101
102&gpio1 {
103 ls_buf_en {
104 gpio-hog;
105 gpios = <29 GPIO_ACTIVE_HIGH>;
106 output-high;
107 line-name = "LS_BUF_EN";
108 };
109};
110
111/* BT_AUD_OUT from wl1835 has to be pulled low when WL_EN is activated.*/
112/* in case it isn't, wilink8 ends up in one of the test modes that */
113/* intruces various issues (elp wkaeup timeouts etc.) */
114/* On the BBGW this pin is routed through the level shifter (U21) that */
115/* introduces a pullup on the line and wilink8 ends up in a bad state. */
116/* use a gpio hog to force this pin low. An alternative may be adding */
117/* an external pulldown on U21 pin 4. */
118
119&gpio3 {
120 bt_aud_in {
121 gpio-hog;
122 gpios = <16 GPIO_ACTIVE_HIGH>;
123 output-low;
124 line-name = "MCASP0_AHCLKR";
125 };
126};
diff --git a/arch/arm/boot/dts/am335x-bonegreen.dts b/arch/arm/boot/dts/am335x-bonegreen.dts
index dce3c8657e04..a8b4d969ce2a 100644
--- a/arch/arm/boot/dts/am335x-bonegreen.dts
+++ b/arch/arm/boot/dts/am335x-bonegreen.dts
@@ -9,45 +9,9 @@
9 9
10#include "am33xx.dtsi" 10#include "am33xx.dtsi"
11#include "am335x-bone-common.dtsi" 11#include "am335x-bone-common.dtsi"
12#include "am335x-bonegreen-common.dtsi"
12 13
13/ { 14/ {
14 model = "TI AM335x BeagleBone Green"; 15 model = "TI AM335x BeagleBone Green";
15 compatible = "ti,am335x-bone-green", "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; 16 compatible = "ti,am335x-bone-green", "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
16}; 17};
17
18&ldo3_reg {
19 regulator-min-microvolt = <1800000>;
20 regulator-max-microvolt = <1800000>;
21 regulator-always-on;
22};
23
24&mmc1 {
25 vmmc-supply = <&vmmcsd_fixed>;
26};
27
28&mmc2 {
29 vmmc-supply = <&vmmcsd_fixed>;
30 pinctrl-names = "default";
31 pinctrl-0 = <&emmc_pins>;
32 bus-width = <8>;
33 status = "okay";
34};
35
36&am33xx_pinmux {
37 uart2_pins: uart2_pins {
38 pinctrl-single,pins = <
39 AM33XX_IOPAD(0x950, PIN_INPUT | MUX_MODE1) /* spi0_sclk.uart2_rxd */
40 AM33XX_IOPAD(0x954, PIN_OUTPUT | MUX_MODE1) /* spi0_d0.uart2_txd */
41 >;
42 };
43};
44
45&uart2 {
46 pinctrl-names = "default";
47 pinctrl-0 = <&uart2_pins>;
48 status = "okay";
49};
50
51&rtc {
52 system-power-controller;
53};
diff --git a/arch/arm/boot/dts/am335x-chiliboard.dts b/arch/arm/boot/dts/am335x-chiliboard.dts
index 2a624b3c9258..d8769799772e 100644
--- a/arch/arm/boot/dts/am335x-chiliboard.dts
+++ b/arch/arm/boot/dts/am335x-chiliboard.dts
@@ -185,3 +185,19 @@
185 cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>; 185 cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
186 status = "okay"; 186 status = "okay";
187}; 187};
188
189&tps {
190 interrupt-parent = <&intc>;
191 interrupts = <7>; /* NNMI */
192
193 charger {
194 interrupts = <0>, <1>;
195 interrupt-names = "USB", "AC";
196 status = "okay";
197 };
198
199 pwrbutton {
200 interrupts = <2>;
201 status = "okay";
202 };
203};
diff --git a/arch/arm/boot/dts/am335x-chilisom.dtsi b/arch/arm/boot/dts/am335x-chilisom.dtsi
index f9ee5859c154..1b43ebd08b38 100644
--- a/arch/arm/boot/dts/am335x-chilisom.dtsi
+++ b/arch/arm/boot/dts/am335x-chilisom.dtsi
@@ -124,6 +124,14 @@
124 124
125&rtc { 125&rtc {
126 system-power-controller; 126 system-power-controller;
127
128 pinctrl-0 = <&ext_wakeup>;
129 pinctrl-names = "default";
130
131 ext_wakeup: ext-wakeup {
132 pins = "ext_wakeup0";
133 input-enable;
134 };
127}; 135};
128 136
129/* NAND Flash */ 137/* NAND Flash */
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index c2186ec2834b..1c37a7c1ea17 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -25,6 +25,10 @@
25 reg = <0x80000000 0x10000000>; /* 256 MB */ 25 reg = <0x80000000 0x10000000>; /* 256 MB */
26 }; 26 };
27 27
28 chosen {
29 stdout-path = &uart0;
30 };
31
28 vbat: fixedregulator0 { 32 vbat: fixedregulator0 {
29 compatible = "regulator-fixed"; 33 compatible = "regulator-fixed";
30 regulator-name = "vbat"; 34 regulator-name = "vbat";
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts
index e2548d1ce753..9e43c443738a 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -32,6 +32,10 @@
32 reg = <0x80000000 0x10000000>; /* 256 MB */ 32 reg = <0x80000000 0x10000000>; /* 256 MB */
33 }; 33 };
34 34
35 chosen {
36 stdout-path = &uart0;
37 };
38
35 vbat: fixedregulator0 { 39 vbat: fixedregulator0 {
36 compatible = "regulator-fixed"; 40 compatible = "regulator-fixed";
37 regulator-name = "vbat"; 41 regulator-name = "vbat";
diff --git a/arch/arm/boot/dts/am335x-icev2.dts b/arch/arm/boot/dts/am335x-icev2.dts
index 8ed46f9d79b7..a2ad076822db 100644
--- a/arch/arm/boot/dts/am335x-icev2.dts
+++ b/arch/arm/boot/dts/am335x-icev2.dts
@@ -24,6 +24,10 @@
24 reg = <0x80000000 0x10000000>; /* 256 MB */ 24 reg = <0x80000000 0x10000000>; /* 256 MB */
25 }; 25 };
26 26
27 chosen {
28 stdout-path = &uart3;
29 };
30
27 vbat: fixedregulator0 { 31 vbat: fixedregulator0 {
28 compatible = "regulator-fixed"; 32 compatible = "regulator-fixed";
29 regulator-name = "vbat"; 33 regulator-name = "vbat";
diff --git a/arch/arm/boot/dts/am335x-nano.dts b/arch/arm/boot/dts/am335x-nano.dts
index 483d585c8908..807494bc722b 100644
--- a/arch/arm/boot/dts/am335x-nano.dts
+++ b/arch/arm/boot/dts/am335x-nano.dts
@@ -249,7 +249,8 @@
249 249
250 #address-cells = <2>; 250 #address-cells = <2>;
251 #size-cells = <1>; 251 #size-cells = <1>;
252 ranges = <0 0 0x08000000 0x08000000>; /* CS0: NOR 128M */ 252 ranges = <0 0 0x08000000 0x08000000>, /* CS0: NOR 128M */
253 <1 0 0x1c000000 0x01000000>; /* CS1: FRAM 16M */
253 254
254 nor@0,0 { 255 nor@0,0 {
255 reg = <0 0x00000000 0x08000000>; 256 reg = <0 0x00000000 0x08000000>;
@@ -342,6 +343,34 @@
342 reg = <0x04000000 0x04000000>; /* 64MB */ 343 reg = <0x04000000 0x04000000>; /* 64MB */
343 }; 344 };
344 }; 345 };
346
347 fram@1,0 {
348 reg = <1 0x00000000 0x01000000>;
349 bank-width = <2>;
350
351 gpmc,mux-add-data = <2>;
352
353 gpmc,sync-clk-ps = <0>;
354 gpmc,cs-on-ns = <0>;
355 gpmc,cs-rd-off-ns = <160>;
356 gpmc,cs-wr-off-ns = <160>;
357 gpmc,adv-on-ns = <10>;
358 gpmc,adv-rd-off-ns = <20>;
359 gpmc,adv-wr-off-ns = <20>;
360 gpmc,oe-on-ns = <30>;
361 gpmc,oe-off-ns = <150>;
362 gpmc,we-on-ns = <30>;
363 gpmc,we-off-ns = <150>;
364 gpmc,rd-cycle-ns = <160>;
365 gpmc,wr-cycle-ns = <160>;
366 gpmc,access-ns = <130>;
367 gpmc,page-burst-access-ns = <10>;
368 gpmc,cycle2cycle-samecsen;
369 gpmc,cycle2cycle-diffcsen;
370 gpmc,cycle2cycle-delay-ns = <10>;
371 gpmc,wr-data-mux-bus-ns = <30>;
372 gpmc,wr-access-ns = <0>;
373 };
345}; 374};
346 375
347&mac { 376&mac {
diff --git a/arch/arm/boot/dts/am335x-pcm-953.dtsi b/arch/arm/boot/dts/am335x-pcm-953.dtsi
new file mode 100644
index 000000000000..02981eae96b9
--- /dev/null
+++ b/arch/arm/boot/dts/am335x-pcm-953.dtsi
@@ -0,0 +1,288 @@
1/*
2 * Copyright (C) 2014-2017 Phytec Messtechnik GmbH
3 * Author: Wadim Egorov <w.egorov@phytec.de>
4 * Teresa Remmet <t.remmet@phytec.de>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10
11#include <dt-bindings/input/input.h>
12
13/ {
14 model = "Phytec AM335x PCM-953";
15 compatible = "phytec,am335x-pcm-953", "phytec,am335x-phycore-som", "ti,am33xx";
16
17 /* Power */
18 regulators {
19 vcc3v3: fixedregulator@1 {
20 compatible = "regulator-fixed";
21 regulator-name = "vcc3v3";
22 regulator-min-microvolt = <3300000>;
23 regulator-max-microvolt = <3300000>;
24 regulator-boot-on;
25 };
26
27 vcc1v8: fixedregulator@2 {
28 compatible = "regulator-fixed";
29 regulator-name = "vcc1v8";
30 regulator-min-microvolt = <1800000>;
31 regulator-max-microvolt = <1800000>;
32 regulator-boot-on;
33 };
34 };
35
36 /* User IO */
37 user_leds: user_leds {
38 compatible = "gpio-leds";
39 pinctrl-names = "default";
40 pinctrl-0 = <&user_leds_pins>;
41
42 green {
43 label = "green:user";
44 gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
45 linux,default-trigger = "gpio";
46 default-state = "on";
47 };
48
49 yellow {
50 label = "yellow:user";
51 gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
52 linux,default-trigger = "gpio";
53 default-state = "on";
54 };
55 };
56
57 user_buttons: user_buttons {
58 compatible = "gpio-keys";
59 pinctrl-names = "default";
60 pinctrl-0 = <&user_buttons_pins>;
61
62 button@0 {
63 label = "home";
64 linux,code = <KEY_HOME>;
65 gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
66 gpio-key,wakeup;
67 };
68
69 button@1 {
70 label = "menu";
71 linux,code = <KEY_MENU>;
72 gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
73 gpio-key,wakeup;
74 };
75
76 };
77};
78
79&am33xx_pinmux {
80 user_buttons_pins: pinmux_user_buttons {
81 pinctrl-single,pins = <
82 AM33XX_IOPAD(0x9e4, PIN_INPUT_PULLDOWN | MUX_MODE7) /* emu0.gpio3_7 */
83 AM33XX_IOPAD(0x9e8, PIN_INPUT_PULLDOWN | MUX_MODE7) /* emu1.gpio3_8 */
84 >;
85 };
86
87 user_leds_pins: pinmux_user_leds {
88 pinctrl-single,pins = <
89 AM33XX_IOPAD(0x880, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn1.gpio1_30 */
90 AM33XX_IOPAD(0x884, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn2.gpio1_31 */
91 >;
92 };
93};
94
95/* CAN */
96&am33xx_pinmux {
97 dcan1_pins: pinmux_dcan1 {
98 pinctrl-single,pins = <
99 AM33XX_IOPAD(0x980, PIN_OUTPUT_PULLUP | MUX_MODE2) /* uart1_rxd.dcan1_tx_mux2 */
100 AM33XX_IOPAD(0x984, PIN_INPUT_PULLUP | MUX_MODE2) /* uart1_txd.dcan1_rx_mux2 */
101 >;
102 };
103};
104
105&dcan1 {
106 pinctrl-names = "default";
107 pinctrl-0 = <&dcan1_pins>;
108 status = "okay";
109};
110
111/* Ethernet */
112&am33xx_pinmux {
113 ethernet1_pins: pinmux_ethernet1 {
114 pinctrl-single,pins = <
115 AM33XX_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a0.rgmii2_tctl */
116 AM33XX_IOPAD(0x844, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a1.rgmii2_rctl */
117 AM33XX_IOPAD(0x848, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a2.rgmii2_td3 */
118 AM33XX_IOPAD(0x84c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a3.rgmii2_td2 */
119 AM33XX_IOPAD(0x850, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a4.rgmii2_td1 */
120 AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a5.rgmii2_td0 */
121 AM33XX_IOPAD(0x858, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a6.rgmii2_tclk */
122 AM33XX_IOPAD(0x85c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a7.rgmii2_rclk */
123 AM33XX_IOPAD(0x860, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a8.rgmii2_rd3 */
124 AM33XX_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a9.rgmii2_rd2 */
125 AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a10.rgmii2_rd1 */
126 AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a11.rgmii2_rd0 */
127 >;
128 };
129};
130
131&cpsw_emac1 {
132 phy-handle = <&phy1>;
133 phy-mode = "rgmii-id";
134 dual_emac_res_vlan = <2>;
135 status = "okay";
136};
137
138&davinci_mdio {
139 phy1: ethernet-phy@2 {
140 reg = <2>;
141
142 /* Register 260 (104h) – RGMII Clock and Control Pad Skew */
143 rxc-skew-ps = <1400>;
144 rxdv-skew-ps = <0>;
145 txc-skew-ps = <1400>;
146 txen-skew-ps = <0>;
147 /* Register 261 (105h) – RGMII RX Data Pad Skew */
148 rxd3-skew-ps = <0>;
149 rxd2-skew-ps = <0>;
150 rxd1-skew-ps = <0>;
151 rxd0-skew-ps = <0>;
152 /* Register 262 (106h) – RGMII TX Data Pad Skew */
153 txd3-skew-ps = <0>;
154 txd2-skew-ps = <0>;
155 txd1-skew-ps = <0>;
156 txd0-skew-ps = <0>;
157 };
158};
159
160&mac {
161 slaves = <2>;
162 pinctrl-names = "default";
163 pinctrl-0 = <&ethernet0_pins &ethernet1_pins>;
164 dual_emac;
165};
166
167/* Misc */
168&am33xx_pinmux {
169 pinctrl-names = "default";
170 pinctrl-0 = <&cb_gpio_pins>;
171
172 cb_gpio_pins: pinmux_cb_gpio {
173 pinctrl-single,pins = <
174 AM33XX_IOPAD(0x968, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* uart0_ctsn.gpio1_8 */
175 AM33XX_IOPAD(0x96c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* uart0_rtsn.gpio1_9 */
176 >;
177 };
178};
179
180/* MMC */
181&am33xx_pinmux {
182 mmc1_pins: pinmux_mmc1_pins {
183 pinctrl-single,pins = <
184 AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
185 AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
186 AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
187 AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
188 AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */
189 AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
190 AM33XX_IOPAD(0x960, PIN_INPUT_PULLUP | MUX_MODE7) /* spi0_cs1.mmc0_sdcd */
191 >;
192 };
193};
194
195&mmc1 {
196 vmmc-supply = <&vcc3v3>;
197 bus-width = <4>;
198 pinctrl-names = "default";
199 pinctrl-0 = <&mmc1_pins>;
200 cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
201 status = "okay";
202};
203
204/* UARTs */
205&am33xx_pinmux {
206 uart0_pins: pinmux_uart0 {
207 pinctrl-single,pins = <
208 AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
209 AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
210 >;
211 };
212
213 uart1_pins: pinmux_uart1 {
214 pinctrl-single,pins = <
215 AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */
216 AM33XX_IOPAD(0x984, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
217 AM33XX_IOPAD(0x978, PIN_INPUT | MUX_MODE0) /* uart1_ctsn.uart1_ctsn */
218 AM33XX_IOPAD(0x97c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_rtsn.uart1_rtsn */
219 >;
220 };
221
222 uart2_pins: pinmux_uart2 {
223 pinctrl-single,pins = <
224 AM33XX_IOPAD(0x92c, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_tx_clk.uart2_rxd */
225 AM33XX_IOPAD(0x930, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_rx_clk.uart2_txd */
226 >;
227 };
228
229 uart3_pins: pinmux_uart3 {
230 pinctrl-single,pins = <
231 AM33XX_IOPAD(0x934, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxd3.uart3_rxd */
232 AM33XX_IOPAD(0x938, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd2.uart3_txd */
233 >;
234 };
235};
236
237&uart0 {
238 pinctrl-names = "default";
239 pinctrl-0 = <&uart0_pins>;
240 status = "okay";
241};
242
243&uart1 {
244 pinctrl-names = "default";
245 pinctrl-0 = <&uart1_pins>;
246};
247
248&uart2 {
249 pinctrl-names = "default";
250 pinctrl-0 = <&uart2_pins>;
251 status = "okay";
252};
253
254&uart3 {
255 pinctrl-names = "default";
256 pinctrl-0 = <&uart3_pins>;
257 status = "okay";
258};
259
260/* USB */
261&cppi41dma {
262 status = "okay";
263};
264
265&usb_ctrl_mod {
266 status = "okay";
267};
268
269&usb {
270 status = "okay";
271};
272
273&usb0 {
274 status = "okay";
275};
276
277&usb0_phy {
278 status = "okay";
279};
280
281&usb1 {
282 status = "okay";
283 dr_mode = "host";
284};
285
286&usb1_phy {
287 status = "okay";
288};
diff --git a/arch/arm/boot/dts/am335x-phycore-rdk.dts b/arch/arm/boot/dts/am335x-phycore-rdk.dts
new file mode 100644
index 000000000000..305f0b35d6ea
--- /dev/null
+++ b/arch/arm/boot/dts/am335x-phycore-rdk.dts
@@ -0,0 +1,27 @@
1/*
2 * Copyright (C) 2014 PHYTEC Messtechnik GmbH
3 * Author: Wadim Egorov <w.egorov@phytec.de>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */
9
10/dts-v1/;
11
12#include "am335x-phycore-som.dtsi"
13#include "am335x-pcm-953.dtsi"
14
15/* SoM */
16&i2c_eeprom {
17 status = "okay";
18};
19
20&i2c_rtc {
21 status = "okay";
22};
23
24&serial_flash {
25 status = "okay";
26
27};
diff --git a/arch/arm/boot/dts/am335x-phycore-som.dtsi b/arch/arm/boot/dts/am335x-phycore-som.dtsi
index 75e24add3f13..14533ff6d0ad 100644
--- a/arch/arm/boot/dts/am335x-phycore-som.dtsi
+++ b/arch/arm/boot/dts/am335x-phycore-som.dtsi
@@ -78,7 +78,7 @@
78}; 78};
79 79
80&cpsw_emac0 { 80&cpsw_emac0 {
81 phy_id = <&davinci_mdio>, <0>; 81 phy-handle = <&phy0>;
82 phy-mode = "rmii"; 82 phy-mode = "rmii";
83 dual_emac_res_vlan = <1>; 83 dual_emac_res_vlan = <1>;
84}; 84};
@@ -87,6 +87,10 @@
87 pinctrl-names = "default"; 87 pinctrl-names = "default";
88 pinctrl-0 = <&mdio_pins>; 88 pinctrl-0 = <&mdio_pins>;
89 status = "okay"; 89 status = "okay";
90
91 phy0: ethernet-phy@0 {
92 reg = <0>;
93 };
90}; 94};
91 95
92&mac { 96&mac {
@@ -120,6 +124,12 @@
120 reg = <0x2d>; 124 reg = <0x2d>;
121 }; 125 };
122 126
127 i2c_tmp102: temp@4b {
128 compatible = "ti,tmp102";
129 reg = <0x4b>;
130 status = "disabled";
131 };
132
123 i2c_eeprom: eeprom@52 { 133 i2c_eeprom: eeprom@52 {
124 compatible = "atmel,24c32"; 134 compatible = "atmel,24c32";
125 pagesize = <32>; 135 pagesize = <32>;
@@ -201,43 +211,6 @@
201 211
202 #address-cells = <1>; 212 #address-cells = <1>;
203 #size-cells = <1>; 213 #size-cells = <1>;
204
205 partition@0 {
206 label = "xload";
207 reg = <0x0 0x20000>;
208 };
209 partition@1 {
210 label = "xload_backup1";
211 reg = <0x20000 0x20000>;
212 };
213 partition@2 {
214 label = "xload_backup2";
215 reg = <0x40000 0x20000>;
216 };
217 partition@3 {
218 label = "xload_backup3";
219 reg = <0x60000 0x20000>;
220 };
221 partition@4 {
222 label = "barebox";
223 reg = <0x80000 0x80000>;
224 };
225 partition@5 {
226 label = "bareboxenv";
227 reg = <0x100000 0x40000>;
228 };
229 partition@6 {
230 label = "oftree";
231 reg = <0x140000 0x40000>;
232 };
233 partition@7 {
234 label = "kernel";
235 reg = <0x180000 0x800000>;
236 };
237 partition@8 {
238 label = "root";
239 reg = <0x980000 0x0>;
240 };
241 }; 214 };
242}; 215};
243 216
@@ -341,33 +314,12 @@
341 status = "okay"; 314 status = "okay";
342 315
343 serial_flash: m25p80@0 { 316 serial_flash: m25p80@0 {
344 compatible = "m25p80"; 317 compatible = "jedec,spi-nor";
345 spi-max-frequency = <48000000>; 318 spi-max-frequency = <48000000>;
346 reg = <0x0>; 319 reg = <0x0>;
347 m25p,fast-read; 320 m25p,fast-read;
348 status = "disabled"; 321 status = "disabled";
349 #address-cells = <1>; 322 #address-cells = <1>;
350 #size-cells = <1>; 323 #size-cells = <1>;
351
352 partition@0 {
353 label = "xload";
354 reg = <0x0 0x20000>;
355 };
356 partition@1 {
357 label = "barebox";
358 reg = <0x20000 0x80000>;
359 };
360 partition@2 {
361 label = "bareboxenv";
362 reg = <0xa0000 0x20000>;
363 };
364 partition@3 {
365 label = "oftree";
366 reg = <0xc0000 0x20000>;
367 };
368 partition@4 {
369 label = "kernel";
370 reg = <0xe0000 0x0>;
371 };
372 }; 324 };
373}; 325};
diff --git a/arch/arm/boot/dts/am335x-sl50.dts b/arch/arm/boot/dts/am335x-sl50.dts
index b0dfa6f14cd5..c5d2589c55fc 100644
--- a/arch/arm/boot/dts/am335x-sl50.dts
+++ b/arch/arm/boot/dts/am335x-sl50.dts
@@ -136,6 +136,13 @@
136 >; 136 >;
137 }; 137 };
138 138
139 uart1_pins: pinmux_uart1_pins {
140 pinctrl-single,pins = <
141 AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */
142 AM33XX_IOPAD(0x984, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
143 >;
144 };
145
139 uart4_pins: pinmux_uart4_pins { 146 uart4_pins: pinmux_uart4_pins {
140 pinctrl-single,pins = < 147 pinctrl-single,pins = <
141 AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE6) /* gpmc_wait0.uart4_rxd */ 148 AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE6) /* gpmc_wait0.uart4_rxd */
@@ -150,13 +157,6 @@
150 >; 157 >;
151 }; 158 };
152 159
153 i2c1_pins: pinmux_i2c1_pins {
154 pinctrl-single,pins = <
155 AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE3) /* uart1_rxd.i2c1_sda */
156 AM33XX_IOPAD(0x984, PIN_INPUT_PULLUP | MUX_MODE3) /* uart1_txdi2c1_scl */
157 >;
158 };
159
160 i2c2_pins: pinmux_i2c2_pins { 160 i2c2_pins: pinmux_i2c2_pins {
161 pinctrl-single,pins = < 161 pinctrl-single,pins = <
162 AM33XX_IOPAD(0x978, PIN_INPUT_PULLUP | MUX_MODE3) /* uart1_ctsn.i2c2_sda */ 162 AM33XX_IOPAD(0x978, PIN_INPUT_PULLUP | MUX_MODE3) /* uart1_ctsn.i2c2_sda */
@@ -262,6 +262,16 @@
262 >; 262 >;
263 }; 263 };
264 264
265 spi0_pins: pinmux_spi0_pins {
266 pinctrl-single,pins = <
267 AM33XX_IOPAD(0x954, PIN_INPUT_PULLUP | MUX_MODE0) /* SPI0_MOSI - spi0_d0.spi0_d0 */
268 AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE0) /* SPI0_MISO - spi0_d1.spi0_d1 */
269 AM33XX_IOPAD(0x950, PIN_INPUT_PULLUP | MUX_MODE0) /* SPI0_CLK - spi0_clk.spi0_clk */
270 AM33XX_IOPAD(0x95c, PIN_INPUT_PULLUP | MUX_MODE0) /* SPI0_CS0 (NBATTSS) - spi0_cs0.spi0_cs0 */
271 AM33XX_IOPAD(0x960, PIN_INPUT_PULLUP | MUX_MODE0) /* SPI0_CS1 (FPGA_FLASH_NCS) - spi0_cs1.spi0_cs1 */
272 >;
273 };
274
265 lwb_pins: pinmux_lwb_pins { 275 lwb_pins: pinmux_lwb_pins {
266 pinctrl-single,pins = < 276 pinctrl-single,pins = <
267 AM33XX_IOPAD(0x9a4, PIN_OUTPUT | MUX_MODE7) /* SoundPA_en - mcasp0_fsr.gpio3_19 */ 277 AM33XX_IOPAD(0x9a4, PIN_OUTPUT | MUX_MODE7) /* SoundPA_en - mcasp0_fsr.gpio3_19 */
@@ -292,16 +302,22 @@
292 reg = <0x24>; 302 reg = <0x24>;
293 }; 303 };
294 304
305 bq32000: rtc@68 {
306 compatible = "ti,bq32000";
307 trickle-resistor-ohms = <1120>;
308 reg = <0x68>;
309 };
310
295 eeprom: eeprom@50 { 311 eeprom: eeprom@50 {
296 compatible = "at,24c256"; 312 compatible = "at,24c256";
297 reg = <0x50>; 313 reg = <0x50>;
298 }; 314 };
299};
300 315
301&i2c1 { 316 gpio_exp: mcp23017@20 {
302 status = "okay"; 317 compatible = "microchip,mcp23017";
303 pinctrl-names = "default"; 318 reg = <0x20>;
304 pinctrl-0 = <&i2c1_pins>; 319 };
320
305}; 321};
306 322
307&i2c2 { 323&i2c2 {
@@ -321,6 +337,16 @@
321 DRVDD-supply = <&ldo4_reg>; 337 DRVDD-supply = <&ldo4_reg>;
322 DVDD-supply = <&ldo3_reg>; 338 DVDD-supply = <&ldo3_reg>;
323 }; 339 };
340
341 /* Ambient Light Sensor */
342 als: isl29023@44 {
343 compatible = "isil,isl29023";
344 reg = <0x44>;
345 };
346};
347
348&rtc {
349 status = "disabled";
324}; 350};
325 351
326&usb { 352&usb {
@@ -394,12 +420,32 @@
394 pinctrl-0 = <&uart0_pins>; 420 pinctrl-0 = <&uart0_pins>;
395}; 421};
396 422
423&uart1 {
424 status = "okay";
425 pinctrl-names = "default";
426 pinctrl-0 = <&uart1_pins>;
427};
428
397&uart4 { 429&uart4 {
398 status = "okay"; 430 status = "okay";
399 pinctrl-names = "default"; 431 pinctrl-names = "default";
400 pinctrl-0 = <&uart4_pins>; 432 pinctrl-0 = <&uart4_pins>;
401}; 433};
402 434
435&spi0 {
436 status = "okay";
437 pinctrl-names = "default";
438 pinctrl-0 = <&spi0_pins>;
439
440 flash: n25q032@1 {
441 #address-cells = <1>;
442 #size-cells = <1>;
443 compatible = "micron,n25q032";
444 reg = <1>;
445 spi-max-frequency = <5000000>;
446 };
447};
448
403#include "tps65217.dtsi" 449#include "tps65217.dtsi"
404 450
405&tps { 451&tps {
diff --git a/arch/arm/boot/dts/am335x-wega.dtsi b/arch/arm/boot/dts/am335x-wega.dtsi
index 02c67365c4e1..8ce541739b24 100644
--- a/arch/arm/boot/dts/am335x-wega.dtsi
+++ b/arch/arm/boot/dts/am335x-wega.dtsi
@@ -119,11 +119,17 @@
119}; 119};
120 120
121&cpsw_emac1 { 121&cpsw_emac1 {
122 phy_id = <&davinci_mdio>, <1>; 122 phy-handle = <&phy1>;
123 phy-mode = "mii"; 123 phy-mode = "mii";
124 dual_emac_res_vlan = <2>; 124 dual_emac_res_vlan = <2>;
125}; 125};
126 126
127&davinci_mdio {
128 phy1: ethernet-phy@1 {
129 reg = <1>;
130 };
131};
132
127&mac { 133&mac {
128 slaves = <2>; 134 slaves = <2>;
129 pinctrl-names = "default"; 135 pinctrl-names = "default";
@@ -206,7 +212,6 @@
206}; 212};
207 213
208&usb0 { 214&usb0 {
209 dr_mode = "peripheral";
210 status = "okay"; 215 status = "okay";
211}; 216};
212 217
diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts
index 957840cc7b78..a4f31739057f 100644
--- a/arch/arm/boot/dts/am437x-gp-evm.dts
+++ b/arch/arm/boot/dts/am437x-gp-evm.dts
@@ -23,6 +23,10 @@
23 display0 = &lcd0; 23 display0 = &lcd0;
24 }; 24 };
25 25
26 chosen {
27 stdout-path = &uart0;
28 };
29
26 evm_v3_3d: fixedregulator-v3_3d { 30 evm_v3_3d: fixedregulator-v3_3d {
27 compatible = "regulator-fixed"; 31 compatible = "regulator-fixed";
28 regulator-name = "evm_v3_3d"; 32 regulator-name = "evm_v3_3d";
diff --git a/arch/arm/boot/dts/am437x-idk-evm.dts b/arch/arm/boot/dts/am437x-idk-evm.dts
index b76a7c0264a5..c1f7f9336e64 100644
--- a/arch/arm/boot/dts/am437x-idk-evm.dts
+++ b/arch/arm/boot/dts/am437x-idk-evm.dts
@@ -18,6 +18,10 @@
18 model = "TI AM437x Industrial Development Kit"; 18 model = "TI AM437x Industrial Development Kit";
19 compatible = "ti,am437x-idk-evm","ti,am4372","ti,am43"; 19 compatible = "ti,am437x-idk-evm","ti,am4372","ti,am43";
20 20
21 chosen {
22 stdout-path = &uart0;
23 };
24
21 v24_0d: fixed-regulator-v24_0d { 25 v24_0d: fixed-regulator-v24_0d {
22 compatible = "regulator-fixed"; 26 compatible = "regulator-fixed";
23 regulator-name = "V24_0D"; 27 regulator-name = "V24_0D";
diff --git a/arch/arm/boot/dts/am437x-sk-evm.dts b/arch/arm/boot/dts/am437x-sk-evm.dts
index 319d94205350..4dc54bee2f36 100644
--- a/arch/arm/boot/dts/am437x-sk-evm.dts
+++ b/arch/arm/boot/dts/am437x-sk-evm.dts
@@ -24,6 +24,10 @@
24 display0 = &lcd0; 24 display0 = &lcd0;
25 }; 25 };
26 26
27 chosen {
28 stdout-path = &uart0;
29 };
30
27 /* fixed 32k external oscillator clock */ 31 /* fixed 32k external oscillator clock */
28 clk_32k_rtc: clk_32k_rtc { 32 clk_32k_rtc: clk_32k_rtc {
29 #clock-cells = <0>; 33 #clock-cells = <0>;
diff --git a/arch/arm/boot/dts/am43x-epos-evm.dts b/arch/arm/boot/dts/am43x-epos-evm.dts
index 9d35c3f07cad..9acd4ccdec4e 100644
--- a/arch/arm/boot/dts/am43x-epos-evm.dts
+++ b/arch/arm/boot/dts/am43x-epos-evm.dts
@@ -24,6 +24,10 @@
24 display0 = &lcd0; 24 display0 = &lcd0;
25 }; 25 };
26 26
27 chosen {
28 stdout-path = &uart0;
29 };
30
27 vmmcsd_fixed: fixedregulator-sd { 31 vmmcsd_fixed: fixedregulator-sd {
28 compatible = "regulator-fixed"; 32 compatible = "regulator-fixed";
29 regulator-name = "vmmcsd_fixed"; 33 regulator-name = "vmmcsd_fixed";
diff --git a/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi b/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
index 78bee26361f1..585d792a8fdd 100644
--- a/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
+++ b/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
@@ -22,6 +22,10 @@
22 display0 = &hdmi0; 22 display0 = &hdmi0;
23 }; 23 };
24 24
25 chosen {
26 stdout-path = &uart3;
27 };
28
25 memory@0 { 29 memory@0 {
26 device_type = "memory"; 30 device_type = "memory";
27 reg = <0x0 0x80000000 0x0 0x80000000>; 31 reg = <0x0 0x80000000 0x0 0x80000000>;
@@ -421,19 +425,29 @@
421 <&dra7_pmx_core 0x3f8>; 425 <&dra7_pmx_core 0x3f8>;
422}; 426};
423 427
428&davinci_mdio {
429 phy0: ethernet-phy@1 {
430 reg = <1>;
431 };
432
433 phy1: ethernet-phy@2 {
434 reg = <2>;
435 };
436};
437
424&mac { 438&mac {
425 status = "okay"; 439 status = "okay";
426 dual_emac; 440 dual_emac;
427}; 441};
428 442
429&cpsw_emac0 { 443&cpsw_emac0 {
430 phy_id = <&davinci_mdio>, <1>; 444 phy-handle = <&phy0>;
431 phy-mode = "rgmii"; 445 phy-mode = "rgmii";
432 dual_emac_res_vlan = <1>; 446 dual_emac_res_vlan = <1>;
433}; 447};
434 448
435&cpsw_emac1 { 449&cpsw_emac1 {
436 phy_id = <&davinci_mdio>, <2>; 450 phy-handle = <&phy1>;
437 phy-mode = "rgmii"; 451 phy-mode = "rgmii";
438 dual_emac_res_vlan = <2>; 452 dual_emac_res_vlan = <2>;
439}; 453};
diff --git a/arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts b/arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts
index ca85570629fd..39a92aff0a0d 100644
--- a/arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts
+++ b/arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts
@@ -22,3 +22,8 @@
22 vmmc-supply = <&vdd_3v3>; 22 vmmc-supply = <&vdd_3v3>;
23 vmmc-aux-supply = <&ldo1_reg>; 23 vmmc-aux-supply = <&ldo1_reg>;
24}; 24};
25
26/* errata i880 "Ethernet RGMII2 Limited to 10/100 Mbps" */
27&phy1 {
28 max-speed = <100>;
29};
diff --git a/arch/arm/boot/dts/am57xx-beagle-x15.dts b/arch/arm/boot/dts/am57xx-beagle-x15.dts
index 8c66f2efd283..19a60a11c198 100644
--- a/arch/arm/boot/dts/am57xx-beagle-x15.dts
+++ b/arch/arm/boot/dts/am57xx-beagle-x15.dts
@@ -22,3 +22,8 @@
22&mmc1 { 22&mmc1 {
23 vmmc-supply = <&ldo1_reg>; 23 vmmc-supply = <&ldo1_reg>;
24}; 24};
25
26/* errata i880 "Ethernet RGMII2 Limited to 10/100 Mbps" */
27&phy1 {
28 max-speed = <100>;
29};
diff --git a/arch/arm/boot/dts/am57xx-idk-common.dtsi b/arch/arm/boot/dts/am57xx-idk-common.dtsi
index 814a720d5c3d..0d341c545b01 100644
--- a/arch/arm/boot/dts/am57xx-idk-common.dtsi
+++ b/arch/arm/boot/dts/am57xx-idk-common.dtsi
@@ -14,6 +14,10 @@
14 rtc1 = &rtc; 14 rtc1 = &rtc;
15 }; 15 };
16 16
17 chosen {
18 stdout-path = &uart3;
19 };
20
17 vmain: fixedregulator-vmain { 21 vmain: fixedregulator-vmain {
18 compatible = "regulator-fixed"; 22 compatible = "regulator-fixed";
19 regulator-name = "VMAIN"; 23 regulator-name = "VMAIN";
diff --git a/arch/arm/boot/dts/armada-370-db.dts b/arch/arm/boot/dts/armada-370-db.dts
index a9419f8e17e8..c4eef7323367 100644
--- a/arch/arm/boot/dts/armada-370-db.dts
+++ b/arch/arm/boot/dts/armada-370-db.dts
@@ -18,17 +18,17 @@
18 * published by the Free Software Foundation; either version 2 of the 18 * published by the Free Software Foundation; either version 2 of the
19 * License, or (at your option) any later version. 19 * License, or (at your option) any later version.
20 * 20 *
21 * This file is distributed in the hope that it will be useful 21 * This file is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of 22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details. 24 * GNU General Public License for more details.
25 * 25 *
26 * Or, alternatively 26 * Or, alternatively,
27 * 27 *
28 * b) Permission is hereby granted, free of charge, to any person 28 * b) Permission is hereby granted, free of charge, to any person
29 * obtaining a copy of this software and associated documentation 29 * obtaining a copy of this software and associated documentation
30 * files (the "Software"), to deal in the Software without 30 * files (the "Software"), to deal in the Software without
31 * restriction, including without limitation the rights to use 31 * restriction, including without limitation the rights to use,
32 * copy, modify, merge, publish, distribute, sublicense, and/or 32 * copy, modify, merge, publish, distribute, sublicense, and/or
33 * sell copies of the Software, and to permit persons to whom the 33 * sell copies of the Software, and to permit persons to whom the
34 * Software is furnished to do so, subject to the following 34 * Software is furnished to do so, subject to the following
@@ -37,11 +37,11 @@
37 * The above copyright notice and this permission notice shall be 37 * The above copyright notice and this permission notice shall be
38 * included in all copies or substantial portions of the Software. 38 * included in all copies or substantial portions of the Software.
39 * 39 *
40 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 40 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
41 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 41 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
42 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 42 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
43 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 43 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
44 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 44 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
45 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 45 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
46 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 46 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
47 * OTHER DEALINGS IN THE SOFTWARE. 47 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-370-dlink-dns327l.dts b/arch/arm/boot/dts/armada-370-dlink-dns327l.dts
index aeedc463daa6..db7f3aa38670 100644
--- a/arch/arm/boot/dts/armada-370-dlink-dns327l.dts
+++ b/arch/arm/boot/dts/armada-370-dlink-dns327l.dts
@@ -13,17 +13,17 @@
13 * published by the Free Software Foundation; either version 2 of the 13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version. 14 * License, or (at your option) any later version.
15 * 15 *
16 * This file is distributed in the hope that it will be useful 16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details. 19 * GNU General Public License for more details.
20 * 20 *
21 * Or, alternatively 21 * Or, alternatively,
22 * 22 *
23 * b) Permission is hereby granted, free of charge, to any person 23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation 24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without 25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use 26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or 27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the 28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following 29 * Software is furnished to do so, subject to the following
@@ -32,11 +32,11 @@
32 * The above copyright notice and this permission notice shall be 32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software. 33 * included in all copies or substantial portions of the Software.
34 * 34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-370-mirabox.dts b/arch/arm/boot/dts/armada-370-mirabox.dts
index a1425409e570..702f58c9642d 100644
--- a/arch/arm/boot/dts/armada-370-mirabox.dts
+++ b/arch/arm/boot/dts/armada-370-mirabox.dts
@@ -13,17 +13,17 @@
13 * published by the Free Software Foundation; either version 2 of the 13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version. 14 * License, or (at your option) any later version.
15 * 15 *
16 * This file is distributed in the hope that it will be useful 16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details. 19 * GNU General Public License for more details.
20 * 20 *
21 * Or, alternatively 21 * Or, alternatively,
22 * 22 *
23 * b) Permission is hereby granted, free of charge, to any person 23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation 24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without 25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use 26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or 27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the 28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following 29 * Software is furnished to do so, subject to the following
@@ -32,11 +32,11 @@
32 * The above copyright notice and this permission notice shall be 32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software. 33 * included in all copies or substantial portions of the Software.
34 * 34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-370-netgear-rn102.dts b/arch/arm/boot/dts/armada-370-netgear-rn102.dts
index 6bd9265f1062..b1a96e95e921 100644
--- a/arch/arm/boot/dts/armada-370-netgear-rn102.dts
+++ b/arch/arm/boot/dts/armada-370-netgear-rn102.dts
@@ -13,17 +13,17 @@
13 * published by the Free Software Foundation; either version 2 of the 13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version. 14 * License, or (at your option) any later version.
15 * 15 *
16 * This file is distributed in the hope that it will be useful 16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details. 19 * GNU General Public License for more details.
20 * 20 *
21 * Or, alternatively 21 * Or, alternatively,
22 * 22 *
23 * b) Permission is hereby granted, free of charge, to any person 23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation 24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without 25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use 26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or 27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the 28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following 29 * Software is furnished to do so, subject to the following
@@ -32,11 +32,11 @@
32 * The above copyright notice and this permission notice shall be 32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software. 33 * included in all copies or substantial portions of the Software.
34 * 34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-370-netgear-rn104.dts b/arch/arm/boot/dts/armada-370-netgear-rn104.dts
index c84ab5bf1e18..d67e7aa42b54 100644
--- a/arch/arm/boot/dts/armada-370-netgear-rn104.dts
+++ b/arch/arm/boot/dts/armada-370-netgear-rn104.dts
@@ -13,17 +13,17 @@
13 * published by the Free Software Foundation; either version 2 of the 13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version. 14 * License, or (at your option) any later version.
15 * 15 *
16 * This file is distributed in the hope that it will be useful 16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details. 19 * GNU General Public License for more details.
20 * 20 *
21 * Or, alternatively 21 * Or, alternatively,
22 * 22 *
23 * b) Permission is hereby granted, free of charge, to any person 23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation 24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without 25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use 26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or 27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the 28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following 29 * Software is furnished to do so, subject to the following
@@ -32,11 +32,11 @@
32 * The above copyright notice and this permission notice shall be 32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software. 33 * included in all copies or substantial portions of the Software.
34 * 34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-370-rd.dts b/arch/arm/boot/dts/armada-370-rd.dts
index c3fd6e49212f..8b2fa9a49967 100644
--- a/arch/arm/boot/dts/armada-370-rd.dts
+++ b/arch/arm/boot/dts/armada-370-rd.dts
@@ -16,17 +16,17 @@
16 * published by the Free Software Foundation; either version 2 of the 16 * published by the Free Software Foundation; either version 2 of the
17 * License, or (at your option) any later version. 17 * License, or (at your option) any later version.
18 * 18 *
19 * This file is distributed in the hope that it will be useful 19 * This file is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of 20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details. 22 * GNU General Public License for more details.
23 * 23 *
24 * Or, alternatively 24 * Or, alternatively,
25 * 25 *
26 * b) Permission is hereby granted, free of charge, to any person 26 * b) Permission is hereby granted, free of charge, to any person
27 * obtaining a copy of this software and associated documentation 27 * obtaining a copy of this software and associated documentation
28 * files (the "Software"), to deal in the Software without 28 * files (the "Software"), to deal in the Software without
29 * restriction, including without limitation the rights to use 29 * restriction, including without limitation the rights to use,
30 * copy, modify, merge, publish, distribute, sublicense, and/or 30 * copy, modify, merge, publish, distribute, sublicense, and/or
31 * sell copies of the Software, and to permit persons to whom the 31 * sell copies of the Software, and to permit persons to whom the
32 * Software is furnished to do so, subject to the following 32 * Software is furnished to do so, subject to the following
@@ -35,11 +35,11 @@
35 * The above copyright notice and this permission notice shall be 35 * The above copyright notice and this permission notice shall be
36 * included in all copies or substantial portions of the Software. 36 * included in all copies or substantial portions of the Software.
37 * 37 *
38 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 38 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
45 * OTHER DEALINGS IN THE SOFTWARE. 45 * OTHER DEALINGS IN THE SOFTWARE.
@@ -173,6 +173,8 @@
173 }; 173 };
174 174
175 dsa { 175 dsa {
176 status = "disabled";
177
176 compatible = "marvell,dsa"; 178 compatible = "marvell,dsa";
177 #address-cells = <2>; 179 #address-cells = <2>;
178 #size-cells = <0>; 180 #size-cells = <0>;
@@ -235,6 +237,48 @@
235 phy0: ethernet-phy@0 { 237 phy0: ethernet-phy@0 {
236 reg = <0>; 238 reg = <0>;
237 }; 239 };
240
241 switch: switch@10 {
242 compatible = "marvell,mv88e6085";
243 #address-cells = <1>;
244 #size-cells = <0>;
245 reg = <0x10>;
246
247 ports {
248 #address-cells = <1>;
249 #size-cells = <0>;
250
251 port@0 {
252 reg = <0>;
253 label = "lan0";
254 };
255
256 port@1 {
257 reg = <1>;
258 label = "lan1";
259 };
260
261 port@2 {
262 reg = <2>;
263 label = "lan2";
264 };
265
266 port@3 {
267 reg = <3>;
268 label = "lan3";
269 };
270
271 port@5 {
272 reg = <5>;
273 label = "cpu";
274 ethernet = <&eth1>;
275 fixed-link {
276 speed = <1000>;
277 full-duplex;
278 };
279 };
280 };
281 };
238}; 282};
239 283
240 284
diff --git a/arch/arm/boot/dts/armada-370-synology-ds213j.dts b/arch/arm/boot/dts/armada-370-synology-ds213j.dts
index 99f9de229ea8..4978011df5bd 100644
--- a/arch/arm/boot/dts/armada-370-synology-ds213j.dts
+++ b/arch/arm/boot/dts/armada-370-synology-ds213j.dts
@@ -13,17 +13,17 @@
13 * published by the Free Software Foundation; either version 2 of the 13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version. 14 * License, or (at your option) any later version.
15 * 15 *
16 * This file is distributed in the hope that it will be useful 16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details. 19 * GNU General Public License for more details.
20 * 20 *
21 * Or, alternatively 21 * Or, alternatively,
22 * 22 *
23 * b) Permission is hereby granted, free of charge, to any person 23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation 24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without 25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use 26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or 27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the 28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following 29 * Software is furnished to do so, subject to the following
@@ -32,11 +32,11 @@
32 * The above copyright notice and this permission notice shall be 32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software. 33 * included in all copies or substantial portions of the Software.
34 * 34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-370-xp.dtsi b/arch/arm/boot/dts/armada-370-xp.dtsi
index b0520bdeea27..09495e87b038 100644
--- a/arch/arm/boot/dts/armada-370-xp.dtsi
+++ b/arch/arm/boot/dts/armada-370-xp.dtsi
@@ -18,17 +18,17 @@
18 * published by the Free Software Foundation; either version 2 of the 18 * published by the Free Software Foundation; either version 2 of the
19 * License, or (at your option) any later version. 19 * License, or (at your option) any later version.
20 * 20 *
21 * This file is distributed in the hope that it will be useful 21 * This file is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of 22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details. 24 * GNU General Public License for more details.
25 * 25 *
26 * Or, alternatively 26 * Or, alternatively,
27 * 27 *
28 * b) Permission is hereby granted, free of charge, to any person 28 * b) Permission is hereby granted, free of charge, to any person
29 * obtaining a copy of this software and associated documentation 29 * obtaining a copy of this software and associated documentation
30 * files (the "Software"), to deal in the Software without 30 * files (the "Software"), to deal in the Software without
31 * restriction, including without limitation the rights to use 31 * restriction, including without limitation the rights to use,
32 * copy, modify, merge, publish, distribute, sublicense, and/or 32 * copy, modify, merge, publish, distribute, sublicense, and/or
33 * sell copies of the Software, and to permit persons to whom the 33 * sell copies of the Software, and to permit persons to whom the
34 * Software is furnished to do so, subject to the following 34 * Software is furnished to do so, subject to the following
@@ -37,11 +37,11 @@
37 * The above copyright notice and this permission notice shall be 37 * The above copyright notice and this permission notice shall be
38 * included in all copies or substantial portions of the Software. 38 * included in all copies or substantial portions of the Software.
39 * 39 *
40 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 40 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
41 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 41 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
42 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 42 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
43 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 43 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
44 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 44 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
45 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 45 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
46 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 46 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
47 * OTHER DEALINGS IN THE SOFTWARE. 47 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-370.dtsi b/arch/arm/boot/dts/armada-370.dtsi
index b704bcc597f7..cc011c8bc36b 100644
--- a/arch/arm/boot/dts/armada-370.dtsi
+++ b/arch/arm/boot/dts/armada-370.dtsi
@@ -17,17 +17,17 @@
17 * published by the Free Software Foundation; either version 2 of the 17 * published by the Free Software Foundation; either version 2 of the
18 * License, or (at your option) any later version. 18 * License, or (at your option) any later version.
19 * 19 *
20 * This file is distributed in the hope that it will be useful 20 * This file is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details. 23 * GNU General Public License for more details.
24 * 24 *
25 * Or, alternatively 25 * Or, alternatively,
26 * 26 *
27 * b) Permission is hereby granted, free of charge, to any person 27 * b) Permission is hereby granted, free of charge, to any person
28 * obtaining a copy of this software and associated documentation 28 * obtaining a copy of this software and associated documentation
29 * files (the "Software"), to deal in the Software without 29 * files (the "Software"), to deal in the Software without
30 * restriction, including without limitation the rights to use 30 * restriction, including without limitation the rights to use,
31 * copy, modify, merge, publish, distribute, sublicense, and/or 31 * copy, modify, merge, publish, distribute, sublicense, and/or
32 * sell copies of the Software, and to permit persons to whom the 32 * sell copies of the Software, and to permit persons to whom the
33 * Software is furnished to do so, subject to the following 33 * Software is furnished to do so, subject to the following
@@ -36,11 +36,11 @@
36 * The above copyright notice and this permission notice shall be 36 * The above copyright notice and this permission notice shall be
37 * included in all copies or substantial portions of the Software. 37 * included in all copies or substantial portions of the Software.
38 * 38 *
39 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 39 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46 * OTHER DEALINGS IN THE SOFTWARE. 46 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-375-db.dts b/arch/arm/boot/dts/armada-375-db.dts
index ef45cbeb3e7d..bcdbb8ba1d65 100644
--- a/arch/arm/boot/dts/armada-375-db.dts
+++ b/arch/arm/boot/dts/armada-375-db.dts
@@ -17,17 +17,17 @@
17 * published by the Free Software Foundation; either version 2 of the 17 * published by the Free Software Foundation; either version 2 of the
18 * License, or (at your option) any later version. 18 * License, or (at your option) any later version.
19 * 19 *
20 * This file is distributed in the hope that it will be useful 20 * This file is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details. 23 * GNU General Public License for more details.
24 * 24 *
25 * Or, alternatively 25 * Or, alternatively,
26 * 26 *
27 * b) Permission is hereby granted, free of charge, to any person 27 * b) Permission is hereby granted, free of charge, to any person
28 * obtaining a copy of this software and associated documentation 28 * obtaining a copy of this software and associated documentation
29 * files (the "Software"), to deal in the Software without 29 * files (the "Software"), to deal in the Software without
30 * restriction, including without limitation the rights to use 30 * restriction, including without limitation the rights to use,
31 * copy, modify, merge, publish, distribute, sublicense, and/or 31 * copy, modify, merge, publish, distribute, sublicense, and/or
32 * sell copies of the Software, and to permit persons to whom the 32 * sell copies of the Software, and to permit persons to whom the
33 * Software is furnished to do so, subject to the following 33 * Software is furnished to do so, subject to the following
@@ -36,11 +36,11 @@
36 * The above copyright notice and this permission notice shall be 36 * The above copyright notice and this permission notice shall be
37 * included in all copies or substantial portions of the Software. 37 * included in all copies or substantial portions of the Software.
38 * 38 *
39 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 39 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46 * OTHER DEALINGS IN THE SOFTWARE. 46 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-375.dtsi b/arch/arm/boot/dts/armada-375.dtsi
index f515591e8733..50c5e8417802 100644
--- a/arch/arm/boot/dts/armada-375.dtsi
+++ b/arch/arm/boot/dts/armada-375.dtsi
@@ -16,17 +16,17 @@
16 * published by the Free Software Foundation; either version 2 of the 16 * published by the Free Software Foundation; either version 2 of the
17 * License, or (at your option) any later version. 17 * License, or (at your option) any later version.
18 * 18 *
19 * This file is distributed in the hope that it will be useful 19 * This file is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of 20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details. 22 * GNU General Public License for more details.
23 * 23 *
24 * Or, alternatively 24 * Or, alternatively,
25 * 25 *
26 * b) Permission is hereby granted, free of charge, to any person 26 * b) Permission is hereby granted, free of charge, to any person
27 * obtaining a copy of this software and associated documentation 27 * obtaining a copy of this software and associated documentation
28 * files (the "Software"), to deal in the Software without 28 * files (the "Software"), to deal in the Software without
29 * restriction, including without limitation the rights to use 29 * restriction, including without limitation the rights to use,
30 * copy, modify, merge, publish, distribute, sublicense, and/or 30 * copy, modify, merge, publish, distribute, sublicense, and/or
31 * sell copies of the Software, and to permit persons to whom the 31 * sell copies of the Software, and to permit persons to whom the
32 * Software is furnished to do so, subject to the following 32 * Software is furnished to do so, subject to the following
@@ -35,11 +35,11 @@
35 * The above copyright notice and this permission notice shall be 35 * The above copyright notice and this permission notice shall be
36 * included in all copies or substantial portions of the Software. 36 * included in all copies or substantial portions of the Software.
37 * 37 *
38 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 38 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
45 * OTHER DEALINGS IN THE SOFTWARE. 45 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-380.dtsi b/arch/arm/boot/dts/armada-380.dtsi
index 5102d19cc8f4..e392f6036f39 100644
--- a/arch/arm/boot/dts/armada-380.dtsi
+++ b/arch/arm/boot/dts/armada-380.dtsi
@@ -17,17 +17,17 @@
17 * published by the Free Software Foundation; either version 2 of the 17 * published by the Free Software Foundation; either version 2 of the
18 * License, or (at your option) any later version. 18 * License, or (at your option) any later version.
19 * 19 *
20 * This file is distributed in the hope that it will be useful 20 * This file is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details. 23 * GNU General Public License for more details.
24 * 24 *
25 * Or, alternatively 25 * Or, alternatively,
26 * 26 *
27 * b) Permission is hereby granted, free of charge, to any person 27 * b) Permission is hereby granted, free of charge, to any person
28 * obtaining a copy of this software and associated documentation 28 * obtaining a copy of this software and associated documentation
29 * files (the "Software"), to deal in the Software without 29 * files (the "Software"), to deal in the Software without
30 * restriction, including without limitation the rights to use 30 * restriction, including without limitation the rights to use,
31 * copy, modify, merge, publish, distribute, sublicense, and/or 31 * copy, modify, merge, publish, distribute, sublicense, and/or
32 * sell copies of the Software, and to permit persons to whom the 32 * sell copies of the Software, and to permit persons to whom the
33 * Software is furnished to do so, subject to the following 33 * Software is furnished to do so, subject to the following
@@ -36,11 +36,11 @@
36 * The above copyright notice and this permission notice shall be 36 * The above copyright notice and this permission notice shall be
37 * included in all copies or substantial portions of the Software. 37 * included in all copies or substantial portions of the Software.
38 * 38 *
39 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 39 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46 * OTHER DEALINGS IN THE SOFTWARE. 46 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-385-linksys.dtsi b/arch/arm/boot/dts/armada-385-linksys.dtsi
index 8f0e508f64ae..df47bf1ea5eb 100644
--- a/arch/arm/boot/dts/armada-385-linksys.dtsi
+++ b/arch/arm/boot/dts/armada-385-linksys.dtsi
@@ -103,8 +103,56 @@
103 }; 103 };
104 }; 104 };
105 105
106 mdio { 106 mdio@72004 {
107 status = "okay"; 107 status = "okay";
108
109 switch@0 {
110 compatible = "marvell,mv88e6085";
111 #address-cells = <1>;
112 #size-cells = <0>;
113 reg = <0>;
114
115 ports {
116 #address-cells = <1>;
117 #size-cells = <0>;
118
119 port@0 {
120 reg = <0>;
121 label = "lan4";
122 };
123
124 port@1 {
125 reg = <1>;
126 label = "lan3";
127 };
128
129 port@2 {
130 reg = <2>;
131 label = "lan2";
132 };
133
134 port@3 {
135 reg = <3>;
136 label = "lan1";
137 };
138
139 port@4 {
140 reg = <4>;
141 label = "wan";
142 };
143
144 port@5 {
145 reg = <5>;
146 label = "cpu";
147 ethernet = <&eth2>;
148
149 fixed-link {
150 speed = <1000>;
151 full-duplex;
152 };
153 };
154 };
155 };
108 }; 156 };
109 157
110 sata@a8000 { 158 sata@a8000 {
@@ -261,6 +309,8 @@
261 }; 309 };
262 310
263 dsa@0 { 311 dsa@0 {
312 status = "disabled";
313
264 compatible = "marvell,dsa"; 314 compatible = "marvell,dsa";
265 #address-cells = <2>; 315 #address-cells = <2>;
266 #size-cells = <0>; 316 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/armada-385-turris-omnia.dts b/arch/arm/boot/dts/armada-385-turris-omnia.dts
index ab49acb2d452..28eede180e4f 100644
--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts
@@ -122,7 +122,7 @@
122 pinctrl-names = "default"; 122 pinctrl-names = "default";
123 pinctrl-0 = <&ge0_rgmii_pins>; 123 pinctrl-0 = <&ge0_rgmii_pins>;
124 status = "okay"; 124 status = "okay";
125 phy-mode = "rgmii-id"; 125 phy-mode = "rgmii";
126 126
127 fixed-link { 127 fixed-link {
128 speed = <1000>; 128 speed = <1000>;
@@ -135,7 +135,7 @@
135 pinctrl-names = "default"; 135 pinctrl-names = "default";
136 pinctrl-0 = <&ge1_rgmii_pins>; 136 pinctrl-0 = <&ge1_rgmii_pins>;
137 status = "okay"; 137 status = "okay";
138 phy-mode = "rgmii-id"; 138 phy-mode = "rgmii";
139 139
140 fixed-link { 140 fixed-link {
141 speed = <1000>; 141 speed = <1000>;
@@ -273,7 +273,59 @@
273 /* irq is connected to &pcawan pin 7 */ 273 /* irq is connected to &pcawan pin 7 */
274 }; 274 };
275 275
276 /* Switch MV88E7176 at address 0x10 */ 276 /* Switch MV88E6176 at address 0x10 */
277 switch@10 {
278 compatible = "marvell,mv88e6085";
279 #address-cells = <1>;
280 #size-cells = <0>;
281 dsa,member = <0 0>;
282
283 reg = <0x10>;
284
285 ports {
286 #address-cells = <1>;
287 #size-cells = <0>;
288
289 ports@0 {
290 reg = <0>;
291 label = "lan0";
292 };
293
294 ports@1 {
295 reg = <1>;
296 label = "lan1";
297 };
298
299 ports@2 {
300 reg = <2>;
301 label = "lan2";
302 };
303
304 ports@3 {
305 reg = <3>;
306 label = "lan3";
307 };
308
309 ports@4 {
310 reg = <4>;
311 label = "lan4";
312 };
313
314 ports@5 {
315 reg = <5>;
316 label = "cpu";
317 ethernet = <&eth1>;
318 phy-mode = "rgmii-id";
319
320 fixed-link {
321 speed = <1000>;
322 full-duplex;
323 };
324 };
325
326 /* port 6 is connected to eth0 */
327 };
328 };
277}; 329};
278 330
279&pinctrl { 331&pinctrl {
diff --git a/arch/arm/boot/dts/armada-385.dtsi b/arch/arm/boot/dts/armada-385.dtsi
index 8e67d2c083dd..8e63be33472e 100644
--- a/arch/arm/boot/dts/armada-385.dtsi
+++ b/arch/arm/boot/dts/armada-385.dtsi
@@ -17,17 +17,17 @@
17 * published by the Free Software Foundation; either version 2 of the 17 * published by the Free Software Foundation; either version 2 of the
18 * License, or (at your option) any later version. 18 * License, or (at your option) any later version.
19 * 19 *
20 * This file is distributed in the hope that it will be useful 20 * This file is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details. 23 * GNU General Public License for more details.
24 * 24 *
25 * Or, alternatively 25 * Or, alternatively,
26 * 26 *
27 * b) Permission is hereby granted, free of charge, to any person 27 * b) Permission is hereby granted, free of charge, to any person
28 * obtaining a copy of this software and associated documentation 28 * obtaining a copy of this software and associated documentation
29 * files (the "Software"), to deal in the Software without 29 * files (the "Software"), to deal in the Software without
30 * restriction, including without limitation the rights to use 30 * restriction, including without limitation the rights to use,
31 * copy, modify, merge, publish, distribute, sublicense, and/or 31 * copy, modify, merge, publish, distribute, sublicense, and/or
32 * sell copies of the Software, and to permit persons to whom the 32 * sell copies of the Software, and to permit persons to whom the
33 * Software is furnished to do so, subject to the following 33 * Software is furnished to do so, subject to the following
@@ -36,11 +36,11 @@
36 * The above copyright notice and this permission notice shall be 36 * The above copyright notice and this permission notice shall be
37 * included in all copies or substantial portions of the Software. 37 * included in all copies or substantial portions of the Software.
38 * 38 *
39 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 39 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46 * OTHER DEALINGS IN THE SOFTWARE. 46 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-388-clearfog-base.dts b/arch/arm/boot/dts/armada-388-clearfog-base.dts
new file mode 100644
index 000000000000..22ed07fc2979
--- /dev/null
+++ b/arch/arm/boot/dts/armada-388-clearfog-base.dts
@@ -0,0 +1,109 @@
1/*
2 * Device Tree file for SolidRun Clearfog Base revision A1 rev 2.0 (88F6828)
3 *
4 * Copyright (C) 2015 Russell King
5 *
6 * This board is in development; the contents of this file work with
7 * the A1 rev 2.0 of the board, which does not represent final
8 * production board. Things will change, don't expect this file to
9 * remain compatible info the future.
10 *
11 * This file is dual-licensed: you can use it either under the terms
12 * of the GPL or the X11 license, at your option. Note that this dual
13 * licensing only applies to this file, and not this project as a
14 * whole.
15 *
16 * a) This file is free software; you can redistribute it and/or
17 * modify it under the terms of the GNU General Public License
18 * version 2 as published by the Free Software Foundation.
19 *
20 * This file is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * Or, alternatively,
26 *
27 * b) Permission is hereby granted, free of charge, to any person
28 * obtaining a copy of this software and associated documentation
29 * files (the "Software"), to deal in the Software without
30 * restriction, including without limitation the rights to use,
31 * copy, modify, merge, publish, distribute, sublicense, and/or
32 * sell copies of the Software, and to permit persons to whom the
33 * Software is furnished to do so, subject to the following
34 * conditions:
35 *
36 * The above copyright notice and this permission notice shall be
37 * included in all copies or substantial portions of the Software.
38 *
39 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46 * OTHER DEALINGS IN THE SOFTWARE.
47 */
48
49/dts-v1/;
50#include "armada-388-clearfog.dtsi"
51
52/ {
53 model = "SolidRun Clearfog Base A1";
54 compatible = "solidrun,clearfog-base-a1",
55 "solidrun,clearfog-a1", "marvell,armada388",
56 "marvell,armada385", "marvell,armada380";
57
58 gpio-keys {
59 compatible = "gpio-keys";
60 pinctrl-0 = <&rear_button_pins>;
61 pinctrl-names = "default";
62
63 button_0 {
64 /* The rear SW3 button */
65 label = "Rear Button";
66 gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
67 linux,can-disable;
68 linux,code = <BTN_0>;
69 };
70 };
71};
72
73&eth1 {
74 phy = <&phy1>;
75};
76
77&gpio0 {
78 phy1_reset {
79 gpio-hog;
80 gpios = <19 GPIO_ACTIVE_LOW>;
81 output-low;
82 line-name = "phy1-reset";
83 };
84};
85
86&mdio {
87 pinctrl-0 = <&mdio_pins &microsom_phy_clk_pins &clearfog_phy_pins>;
88 phy1: ethernet-phy@1 {
89 /*
90 * Annoyingly, the marvell phy driver configures the LED
91 * register, rather than preserving reset-loaded setting.
92 * We undo that rubbish here.
93 */
94 marvell,reg-init = <3 16 0 0x101e>;
95 reg = <1>;
96 };
97};
98
99&pinctrl {
100 /* phy1 reset */
101 clearfog_phy_pins: clearfog-phy-pins {
102 marvell,pins = "mpp19";
103 marvell,function = "gpio";
104 };
105 rear_button_pins: rear-button-pins {
106 marvell,pins = "mpp44";
107 marvell,function = "gpio";
108 };
109};
diff --git a/arch/arm/boot/dts/armada-388-clearfog-pro.dts b/arch/arm/boot/dts/armada-388-clearfog-pro.dts
new file mode 100644
index 000000000000..bd85870bbdbb
--- /dev/null
+++ b/arch/arm/boot/dts/armada-388-clearfog-pro.dts
@@ -0,0 +1,55 @@
1/*
2 * Device Tree file for SolidRun Clearfog Pro revision A1 rev 2.0 (88F6828)
3 *
4 * Copyright (C) 2015 Russell King
5 *
6 * This board is in development; the contents of this file work with
7 * the A1 rev 2.0 of the board, which does not represent final
8 * production board. Things will change, don't expect this file to
9 * remain compatible info the future.
10 *
11 * This file is dual-licensed: you can use it either under the terms
12 * of the GPL or the X11 license, at your option. Note that this dual
13 * licensing only applies to this file, and not this project as a
14 * whole.
15 *
16 * a) This file is free software; you can redistribute it and/or
17 * modify it under the terms of the GNU General Public License
18 * version 2 as published by the Free Software Foundation.
19 *
20 * This file is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * Or, alternatively,
26 *
27 * b) Permission is hereby granted, free of charge, to any person
28 * obtaining a copy of this software and associated documentation
29 * files (the "Software"), to deal in the Software without
30 * restriction, including without limitation the rights to use,
31 * copy, modify, merge, publish, distribute, sublicense, and/or
32 * sell copies of the Software, and to permit persons to whom the
33 * Software is furnished to do so, subject to the following
34 * conditions:
35 *
36 * The above copyright notice and this permission notice shall be
37 * included in all copies or substantial portions of the Software.
38 *
39 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46 * OTHER DEALINGS IN THE SOFTWARE.
47 */
48#include "armada-388-clearfog.dts"
49
50/ {
51 model = "SolidRun Clearfog Pro A1";
52 compatible = "solidrun,clearfog-pro-a1",
53 "solidrun,clearfog-a1", "marvell,armada388",
54 "marvell,armada385", "marvell,armada380";
55};
diff --git a/arch/arm/boot/dts/armada-388-clearfog.dts b/arch/arm/boot/dts/armada-388-clearfog.dts
index 71ce201c903e..2745b7416313 100644
--- a/arch/arm/boot/dts/armada-388-clearfog.dts
+++ b/arch/arm/boot/dts/armada-388-clearfog.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Device Tree file for SolidRun Clearfog revision A1 rev 2.0 (88F6828) 2 * Device Tree file for SolidRun Clearfog Pro revision A1 rev 2.0 (88F6828)
3 * 3 *
4 * Copyright (C) 2015 Russell King 4 * Copyright (C) 2015 Russell King
5 * 5 *
@@ -17,17 +17,17 @@
17 * modify it under the terms of the GNU General Public License 17 * modify it under the terms of the GNU General Public License
18 * version 2 as published by the Free Software Foundation. 18 * version 2 as published by the Free Software Foundation.
19 * 19 *
20 * This file is distributed in the hope that it will be useful 20 * This file is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details. 23 * GNU General Public License for more details.
24 * 24 *
25 * Or, alternatively 25 * Or, alternatively,
26 * 26 *
27 * b) Permission is hereby granted, free of charge, to any person 27 * b) Permission is hereby granted, free of charge, to any person
28 * obtaining a copy of this software and associated documentation 28 * obtaining a copy of this software and associated documentation
29 * files (the "Software"), to deal in the Software without 29 * files (the "Software"), to deal in the Software without
30 * restriction, including without limitation the rights to use 30 * restriction, including without limitation the rights to use,
31 * copy, modify, merge, publish, distribute, sublicense, and/or 31 * copy, modify, merge, publish, distribute, sublicense, and/or
32 * sell copies of the Software, and to permit persons to whom the 32 * sell copies of the Software, and to permit persons to whom the
33 * Software is furnished to do so, subject to the following 33 * Software is furnished to do so, subject to the following
@@ -36,312 +36,33 @@
36 * The above copyright notice and this permission notice shall be 36 * The above copyright notice and this permission notice shall be
37 * included in all copies or substantial portions of the Software. 37 * included in all copies or substantial portions of the Software.
38 * 38 *
39 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 39 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46 * OTHER DEALINGS IN THE SOFTWARE. 46 * OTHER DEALINGS IN THE SOFTWARE.
47 */ 47 */
48 48
49/dts-v1/; 49/dts-v1/;
50#include "armada-388.dtsi" 50#include "armada-388-clearfog.dtsi"
51#include "armada-38x-solidrun-microsom.dtsi"
52 51
53/ { 52/ {
54 model = "SolidRun Clearfog A1"; 53 model = "SolidRun Clearfog A1";
55 compatible = "solidrun,clearfog-a1", "marvell,armada388", 54 compatible = "solidrun,clearfog-a1", "marvell,armada388",
56 "marvell,armada385", "marvell,armada380"; 55 "marvell,armada385", "marvell,armada380";
57 56
58 aliases {
59 /* So that mvebu u-boot can update the MAC addresses */
60 ethernet1 = &eth0;
61 ethernet2 = &eth1;
62 ethernet3 = &eth2;
63 };
64
65 chosen {
66 stdout-path = "serial0:115200n8";
67 };
68
69 reg_3p3v: regulator-3p3v {
70 compatible = "regulator-fixed";
71 regulator-name = "3P3V";
72 regulator-min-microvolt = <3300000>;
73 regulator-max-microvolt = <3300000>;
74 regulator-always-on;
75 };
76
77 soc { 57 soc {
78 internal-regs { 58 internal-regs {
79 ethernet@30000 {
80 phy-mode = "sgmii";
81 buffer-manager = <&bm>;
82 bm,pool-long = <2>;
83 bm,pool-short = <1>;
84 status = "okay";
85
86 fixed-link {
87 speed = <1000>;
88 full-duplex;
89 };
90 };
91
92 ethernet@34000 {
93 phy-mode = "sgmii";
94 buffer-manager = <&bm>;
95 bm,pool-long = <3>;
96 bm,pool-short = <1>;
97 status = "okay";
98
99 fixed-link {
100 speed = <1000>;
101 full-duplex;
102 };
103 };
104
105 i2c@11000 {
106 /* Is there anything on this? */
107 clock-frequency = <100000>;
108 pinctrl-0 = <&i2c0_pins>;
109 pinctrl-names = "default";
110 status = "okay";
111
112 /*
113 * PCA9655 GPIO expander, up to 1MHz clock.
114 * 0-CON3 CLKREQ#
115 * 1-CON3 PERST#
116 * 2-CON2 PERST#
117 * 3-CON3 W_DISABLE
118 * 4-CON2 CLKREQ#
119 * 5-USB3 overcurrent
120 * 6-USB3 power
121 * 7-CON2 W_DISABLE
122 * 8-JP4 P1
123 * 9-JP4 P4
124 * 10-JP4 P5
125 * 11-m.2 DEVSLP
126 * 12-SFP_LOS
127 * 13-SFP_TX_FAULT
128 * 14-SFP_TX_DISABLE
129 * 15-SFP_MOD_DEF0
130 */
131 expander0: gpio-expander@20 {
132 /*
133 * This is how it should be:
134 * compatible = "onnn,pca9655",
135 * "nxp,pca9555";
136 * but you can't do this because of
137 * the way I2C works.
138 */
139 compatible = "nxp,pca9555";
140 gpio-controller;
141 #gpio-cells = <2>;
142 reg = <0x20>;
143
144 pcie1_0_clkreq {
145 gpio-hog;
146 gpios = <0 GPIO_ACTIVE_LOW>;
147 input;
148 line-name = "pcie1.0-clkreq";
149 };
150 pcie1_0_w_disable {
151 gpio-hog;
152 gpios = <3 GPIO_ACTIVE_LOW>;
153 output-low;
154 line-name = "pcie1.0-w-disable";
155 };
156 pcie2_0_clkreq {
157 gpio-hog;
158 gpios = <4 GPIO_ACTIVE_LOW>;
159 input;
160 line-name = "pcie2.0-clkreq";
161 };
162 pcie2_0_w_disable {
163 gpio-hog;
164 gpios = <7 GPIO_ACTIVE_LOW>;
165 output-low;
166 line-name = "pcie2.0-w-disable";
167 };
168 usb3_ilimit {
169 gpio-hog;
170 gpios = <5 GPIO_ACTIVE_LOW>;
171 input;
172 line-name = "usb3-current-limit";
173 };
174 usb3_power {
175 gpio-hog;
176 gpios = <6 GPIO_ACTIVE_HIGH>;
177 output-high;
178 line-name = "usb3-power";
179 };
180 m2_devslp {
181 gpio-hog;
182 gpios = <11 GPIO_ACTIVE_HIGH>;
183 output-low;
184 line-name = "m.2 devslp";
185 };
186 sfp_los {
187 /* SFP loss of signal */
188 gpio-hog;
189 gpios = <12 GPIO_ACTIVE_HIGH>;
190 input;
191 line-name = "sfp-los";
192 };
193 sfp_tx_fault {
194 /* SFP laser fault */
195 gpio-hog;
196 gpios = <13 GPIO_ACTIVE_HIGH>;
197 input;
198 line-name = "sfp-tx-fault";
199 };
200 sfp_tx_disable {
201 /* SFP transmit disable */
202 gpio-hog;
203 gpios = <14 GPIO_ACTIVE_HIGH>;
204 output-low;
205 line-name = "sfp-tx-disable";
206 };
207 sfp_mod_def0 {
208 /* SFP module present */
209 gpio-hog;
210 gpios = <15 GPIO_ACTIVE_LOW>;
211 input;
212 line-name = "sfp-mod-def0";
213 };
214 };
215
216 /* The MCP3021 is 100kHz clock only */
217 mikrobus_adc: mcp3021@4c {
218 compatible = "microchip,mcp3021";
219 reg = <0x4c>;
220 };
221
222 /* Also something at 0x64 */
223 };
224
225 i2c@11100 {
226 /*
227 * Routed to SFP, mikrobus, and PCIe.
228 * SFP limits this to 100kHz, and requires
229 * an AT24C01A/02/04 with address pins tied
230 * low, which takes addresses 0x50 and 0x51.
231 * Mikrobus doesn't specify beyond an I2C
232 * bus being present.
233 * PCIe uses ARP to assign addresses, or
234 * 0x63-0x64.
235 */
236 clock-frequency = <100000>;
237 pinctrl-0 = <&clearfog_i2c1_pins>;
238 pinctrl-names = "default";
239 status = "okay";
240 };
241
242 pinctrl@18000 {
243 clearfog_dsa0_clk_pins: clearfog-dsa0-clk-pins {
244 marvell,pins = "mpp46";
245 marvell,function = "ref";
246 };
247 clearfog_dsa0_pins: clearfog-dsa0-pins {
248 marvell,pins = "mpp23", "mpp41";
249 marvell,function = "gpio";
250 };
251 clearfog_i2c1_pins: i2c1-pins {
252 /* SFP, PCIe, mSATA, mikrobus */
253 marvell,pins = "mpp26", "mpp27";
254 marvell,function = "i2c1";
255 };
256 clearfog_sdhci_cd_pins: clearfog-sdhci-cd-pins {
257 marvell,pins = "mpp20";
258 marvell,function = "gpio";
259 };
260 clearfog_sdhci_pins: clearfog-sdhci-pins {
261 marvell,pins = "mpp21", "mpp28",
262 "mpp37", "mpp38",
263 "mpp39", "mpp40";
264 marvell,function = "sd0";
265 };
266 clearfog_spi1_cs_pins: spi1-cs-pins {
267 marvell,pins = "mpp55";
268 marvell,function = "spi1";
269 };
270 mikro_pins: mikro-pins {
271 /* int: mpp22 rst: mpp29 */
272 marvell,pins = "mpp22", "mpp29";
273 marvell,function = "gpio";
274 };
275 mikro_spi_pins: mikro-spi-pins {
276 marvell,pins = "mpp43";
277 marvell,function = "spi1";
278 };
279 mikro_uart_pins: mikro-uart-pins {
280 marvell,pins = "mpp24", "mpp25";
281 marvell,function = "ua1";
282 };
283 rear_button_pins: rear-button-pins {
284 marvell,pins = "mpp34";
285 marvell,function = "gpio";
286 };
287 };
288
289 sata@a8000 {
290 /* pinctrl? */
291 status = "okay";
292 };
293
294 sata@e0000 {
295 /* pinctrl? */
296 status = "okay";
297 };
298
299 sdhci@d8000 {
300 bus-width = <4>;
301 cd-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
302 no-1-8-v;
303 pinctrl-0 = <&clearfog_sdhci_pins
304 &clearfog_sdhci_cd_pins>;
305 pinctrl-names = "default";
306 status = "okay";
307 vmmc = <&reg_3p3v>;
308 wp-inverted;
309 };
310
311 serial@12100 {
312 /* mikrobus uart */
313 pinctrl-0 = <&mikro_uart_pins>;
314 pinctrl-names = "default";
315 status = "okay";
316 };
317
318 usb@58000 {
319 /* CON3, nearest power. */
320 status = "okay";
321 };
322
323 usb3@f0000 { 59 usb3@f0000 {
324 /* CON2, nearest CPU, USB2 only. */ 60 /* CON2, nearest CPU, USB2 only. */
325 status = "okay"; 61 status = "okay";
326 }; 62 };
327
328 usb3@f8000 {
329 /* CON7 */
330 status = "okay";
331 };
332 }; 63 };
333 64
334 pcie-controller { 65 pcie-controller {
335 status = "okay";
336 /*
337 * The two PCIe units are accessible through
338 * the mini-PCIe connectors on the board.
339 */
340 pcie@2,0 {
341 /* Port 1, Lane 0. CON3, nearest power. */
342 reset-gpios = <&expander0 1 GPIO_ACTIVE_LOW>;
343 status = "okay";
344 };
345 pcie@3,0 { 66 pcie@3,0 {
346 /* Port 2, Lane 0. CON2, nearest CPU. */ 67 /* Port 2, Lane 0. CON2, nearest CPU. */
347 reset-gpios = <&expander0 2 GPIO_ACTIVE_LOW>; 68 reset-gpios = <&expander0 2 GPIO_ACTIVE_LOW>;
@@ -351,6 +72,8 @@
351 }; 72 };
352 73
353 dsa@0 { 74 dsa@0 {
75 status = "disabled";
76
354 compatible = "marvell,dsa"; 77 compatible = "marvell,dsa";
355 dsa,ethernet = <&eth1>; 78 dsa,ethernet = <&eth1>;
356 dsa,mii-bus = <&mdio>; 79 dsa,mii-bus = <&mdio>;
@@ -421,26 +144,136 @@
421 }; 144 };
422}; 145};
423 146
424&spi1 { 147&eth1 {
148 /* ethernet@30000 */
149 fixed-link {
150 speed = <1000>;
151 full-duplex;
152 };
153};
154
155&expander0 {
425 /* 156 /*
426 * We don't seem to have the W25Q32 on the 157 * PCA9655 GPIO expander:
427 * A1 Rev 2.0 boards, so disable SPI. 158 * 0-CON3 CLKREQ#
428 * CS0: W25Q32 (doesn't appear to be present) 159 * 1-CON3 PERST#
429 * CS1: 160 * 2-CON2 PERST#
430 * CS2: mikrobus 161 * 3-CON3 W_DISABLE
162 * 4-CON2 CLKREQ#
163 * 5-USB3 overcurrent
164 * 6-USB3 power
165 * 7-CON2 W_DISABLE
166 * 8-JP4 P1
167 * 9-JP4 P4
168 * 10-JP4 P5
169 * 11-m.2 DEVSLP
170 * 12-SFP_LOS
171 * 13-SFP_TX_FAULT
172 * 14-SFP_TX_DISABLE
173 * 15-SFP_MOD_DEF0
431 */ 174 */
432 pinctrl-0 = <&spi1_pins 175 pcie2_0_clkreq {
433 &clearfog_spi1_cs_pins 176 gpio-hog;
434 &mikro_spi_pins>; 177 gpios = <4 GPIO_ACTIVE_LOW>;
435 pinctrl-names = "default"; 178 input;
179 line-name = "pcie2.0-clkreq";
180 };
181 pcie2_0_w_disable {
182 gpio-hog;
183 gpios = <7 GPIO_ACTIVE_LOW>;
184 output-low;
185 line-name = "pcie2.0-w-disable";
186 };
187};
188
189&pinctrl {
190 clearfog_dsa0_clk_pins: clearfog-dsa0-clk-pins {
191 marvell,pins = "mpp46";
192 marvell,function = "ref";
193 };
194 clearfog_dsa0_pins: clearfog-dsa0-pins {
195 marvell,pins = "mpp23", "mpp41";
196 marvell,function = "gpio";
197 };
198 clearfog_spi1_cs_pins: spi1-cs-pins {
199 marvell,pins = "mpp55";
200 marvell,function = "spi1";
201 };
202 rear_button_pins: rear-button-pins {
203 marvell,pins = "mpp34";
204 marvell,function = "gpio";
205 };
206};
207
208&mdio {
436 status = "okay"; 209 status = "okay";
437 210
438 spi-flash@0 { 211 switch@4 {
212 compatible = "marvell,mv88e6085";
439 #address-cells = <1>; 213 #address-cells = <1>;
440 #size-cells = <0>; 214 #size-cells = <0>;
441 compatible = "w25q32", "jedec,spi-nor"; 215 reg = <4>;
442 reg = <0>; /* Chip select 0 */ 216 pinctrl-0 = <&clearfog_dsa0_clk_pins &clearfog_dsa0_pins>;
443 spi-max-frequency = <3000000>; 217 pinctrl-names = "default";
444 status = "disabled"; 218
219 ports {
220 #address-cells = <1>;
221 #size-cells = <0>;
222
223 port@0 {
224 reg = <0>;
225 label = "lan5";
226 };
227
228 port@1 {
229 reg = <1>;
230 label = "lan4";
231 };
232
233 port@2 {
234 reg = <2>;
235 label = "lan3";
236 };
237
238 port@3 {
239 reg = <3>;
240 label = "lan2";
241 };
242
243 port@4 {
244 reg = <4>;
245 label = "lan1";
246 };
247
248 port@5 {
249 reg = <5>;
250 label = "cpu";
251 ethernet = <&eth1>;
252 fixed-link {
253 speed = <1000>;
254 full-duplex;
255 };
256 };
257
258 port@6 {
259 /* 88E1512 external phy */
260 reg = <6>;
261 label = "lan6";
262 fixed-link {
263 speed = <1000>;
264 full-duplex;
265 };
266 };
267 };
445 }; 268 };
446}; 269};
270
271&spi1 {
272 /*
273 * Add SPI CS pins for clearfog:
274 * CS0: W25Q32 (not populated on uSOM)
275 * CS1:
276 * CS2: mikrobus
277 */
278 pinctrl-0 = <&spi1_pins &clearfog_spi1_cs_pins &mikro_spi_pins>;
279};
diff --git a/arch/arm/boot/dts/armada-388-clearfog.dtsi b/arch/arm/boot/dts/armada-388-clearfog.dtsi
new file mode 100644
index 000000000000..0f5938bede53
--- /dev/null
+++ b/arch/arm/boot/dts/armada-388-clearfog.dtsi
@@ -0,0 +1,307 @@
1/*
2 * Device Tree include file for SolidRun Clearfog 88F6828 based boards
3 *
4 * Copyright (C) 2015 Russell King
5 *
6 * This board is in development; the contents of this file work with
7 * the A1 rev 2.0 of the board, which does not represent final
8 * production board. Things will change, don't expect this file to
9 * remain compatible info the future.
10 *
11 * This file is dual-licensed: you can use it either under the terms
12 * of the GPL or the X11 license, at your option. Note that this dual
13 * licensing only applies to this file, and not this project as a
14 * whole.
15 *
16 * a) This file is free software; you can redistribute it and/or
17 * modify it under the terms of the GNU General Public License
18 * version 2 as published by the Free Software Foundation.
19 *
20 * This file is distributed in the hope that it will be useful
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * Or, alternatively
26 *
27 * b) Permission is hereby granted, free of charge, to any person
28 * obtaining a copy of this software and associated documentation
29 * files (the "Software"), to deal in the Software without
30 * restriction, including without limitation the rights to use
31 * copy, modify, merge, publish, distribute, sublicense, and/or
32 * sell copies of the Software, and to permit persons to whom the
33 * Software is furnished to do so, subject to the following
34 * conditions:
35 *
36 * The above copyright notice and this permission notice shall be
37 * included in all copies or substantial portions of the Software.
38 *
39 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46 * OTHER DEALINGS IN THE SOFTWARE.
47 */
48
49#include "armada-388.dtsi"
50#include "armada-38x-solidrun-microsom.dtsi"
51
52/ {
53 aliases {
54 /* So that mvebu u-boot can update the MAC addresses */
55 ethernet1 = &eth0;
56 ethernet2 = &eth1;
57 ethernet3 = &eth2;
58 };
59
60 chosen {
61 stdout-path = "serial0:115200n8";
62 };
63
64 reg_3p3v: regulator-3p3v {
65 compatible = "regulator-fixed";
66 regulator-name = "3P3V";
67 regulator-min-microvolt = <3300000>;
68 regulator-max-microvolt = <3300000>;
69 regulator-always-on;
70 };
71
72 soc {
73 internal-regs {
74 sata@a8000 {
75 /* pinctrl? */
76 status = "okay";
77 };
78
79 sata@e0000 {
80 /* pinctrl? */
81 status = "okay";
82 };
83
84 sdhci@d8000 {
85 bus-width = <4>;
86 cd-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
87 no-1-8-v;
88 pinctrl-0 = <&microsom_sdhci_pins
89 &clearfog_sdhci_cd_pins>;
90 pinctrl-names = "default";
91 status = "okay";
92 vmmc = <&reg_3p3v>;
93 wp-inverted;
94 };
95
96 usb@58000 {
97 /* CON3, nearest power. */
98 status = "okay";
99 };
100
101 usb3@f8000 {
102 /* CON7 */
103 status = "okay";
104 };
105 };
106
107 pcie-controller {
108 status = "okay";
109 /*
110 * The two PCIe units are accessible through
111 * the mini-PCIe connectors on the board.
112 */
113 pcie@2,0 {
114 /* Port 1, Lane 0. CON3, nearest power. */
115 reset-gpios = <&expander0 1 GPIO_ACTIVE_LOW>;
116 status = "okay";
117 };
118 };
119 };
120};
121
122&eth1 {
123 /* ethernet@30000 */
124 bm,pool-long = <2>;
125 bm,pool-short = <1>;
126 buffer-manager = <&bm>;
127 phy-mode = "sgmii";
128 status = "okay";
129};
130
131&eth2 {
132 /* ethernet@34000 */
133 bm,pool-long = <3>;
134 bm,pool-short = <1>;
135 buffer-manager = <&bm>;
136 phy-mode = "sgmii";
137 status = "okay";
138
139 fixed-link {
140 speed = <1000>;
141 full-duplex;
142 };
143};
144
145&i2c0 {
146 /* Is there anything on this? */
147 clock-frequency = <100000>;
148 pinctrl-0 = <&i2c0_pins>;
149 pinctrl-names = "default";
150 status = "okay";
151
152 /*
153 * PCA9655 GPIO expander, up to 1MHz clock.
154 * 0-CON3 CLKREQ#
155 * 1-CON3 PERST#
156 * 2-
157 * 3-CON3 W_DISABLE
158 * 4-
159 * 5-USB3 overcurrent
160 * 6-USB3 power
161 * 7-
162 * 8-JP4 P1
163 * 9-JP4 P4
164 * 10-JP4 P5
165 * 11-m.2 DEVSLP
166 * 12-SFP_LOS
167 * 13-SFP_TX_FAULT
168 * 14-SFP_TX_DISABLE
169 * 15-SFP_MOD_DEF0
170 */
171 expander0: gpio-expander@20 {
172 /*
173 * This is how it should be:
174 * compatible = "onnn,pca9655", "nxp,pca9555";
175 * but you can't do this because of the way I2C works.
176 */
177 compatible = "nxp,pca9555";
178 gpio-controller;
179 #gpio-cells = <2>;
180 reg = <0x20>;
181
182 pcie1_0_clkreq {
183 gpio-hog;
184 gpios = <0 GPIO_ACTIVE_LOW>;
185 input;
186 line-name = "pcie1.0-clkreq";
187 };
188 pcie1_0_w_disable {
189 gpio-hog;
190 gpios = <3 GPIO_ACTIVE_LOW>;
191 output-low;
192 line-name = "pcie1.0-w-disable";
193 };
194 usb3_ilimit {
195 gpio-hog;
196 gpios = <5 GPIO_ACTIVE_LOW>;
197 input;
198 line-name = "usb3-current-limit";
199 };
200 usb3_power {
201 gpio-hog;
202 gpios = <6 GPIO_ACTIVE_HIGH>;
203 output-high;
204 line-name = "usb3-power";
205 };
206 m2_devslp {
207 gpio-hog;
208 gpios = <11 GPIO_ACTIVE_HIGH>;
209 output-low;
210 line-name = "m.2 devslp";
211 };
212 sfp_los {
213 /* SFP loss of signal */
214 gpio-hog;
215 gpios = <12 GPIO_ACTIVE_HIGH>;
216 input;
217 line-name = "sfp-los";
218 };
219 sfp_tx_fault {
220 /* SFP laser fault */
221 gpio-hog;
222 gpios = <13 GPIO_ACTIVE_HIGH>;
223 input;
224 line-name = "sfp-tx-fault";
225 };
226 sfp_tx_disable {
227 /* SFP transmit disable */
228 gpio-hog;
229 gpios = <14 GPIO_ACTIVE_HIGH>;
230 output-low;
231 line-name = "sfp-tx-disable";
232 };
233 sfp_mod_def0 {
234 /* SFP module present */
235 gpio-hog;
236 gpios = <15 GPIO_ACTIVE_LOW>;
237 input;
238 line-name = "sfp-mod-def0";
239 };
240 };
241
242 /* The MCP3021 is 100kHz clock only */
243 mikrobus_adc: mcp3021@4c {
244 compatible = "microchip,mcp3021";
245 reg = <0x4c>;
246 };
247
248 /* Also something at 0x64 */
249};
250
251&i2c1 {
252 /*
253 * Routed to SFP, mikrobus, and PCIe.
254 * SFP limits this to 100kHz, and requires an AT24C01A/02/04 with
255 * address pins tied low, which takes addresses 0x50 and 0x51.
256 * Mikrobus doesn't specify beyond an I2C bus being present.
257 * PCIe uses ARP to assign addresses, or 0x63-0x64.
258 */
259 clock-frequency = <100000>;
260 pinctrl-0 = <&clearfog_i2c1_pins>;
261 pinctrl-names = "default";
262 status = "okay";
263};
264
265&pinctrl {
266 clearfog_i2c1_pins: i2c1-pins {
267 /* SFP, PCIe, mSATA, mikrobus */
268 marvell,pins = "mpp26", "mpp27";
269 marvell,function = "i2c1";
270 };
271 clearfog_sdhci_cd_pins: clearfog-sdhci-cd-pins {
272 marvell,pins = "mpp20";
273 marvell,function = "gpio";
274 };
275 mikro_pins: mikro-pins {
276 /* int: mpp22 rst: mpp29 */
277 marvell,pins = "mpp22", "mpp29";
278 marvell,function = "gpio";
279 };
280 mikro_spi_pins: mikro-spi-pins {
281 marvell,pins = "mpp43";
282 marvell,function = "spi1";
283 };
284 mikro_uart_pins: mikro-uart-pins {
285 marvell,pins = "mpp24", "mpp25";
286 marvell,function = "ua1";
287 };
288};
289
290&spi1 {
291 /*
292 * Add SPI CS pins for clearfog:
293 * CS0: W25Q32 (not populated on uSOM)
294 * CS1: PIC microcontroller (Pro models)
295 * CS2: mikrobus
296 */
297 pinctrl-0 = <&spi1_pins &mikro_spi_pins>;
298 pinctrl-names = "default";
299 status = "okay";
300};
301
302&uart1 {
303 /* mikrobus uart */
304 pinctrl-0 = <&mikro_uart_pins>;
305 pinctrl-names = "default";
306 status = "okay";
307};
diff --git a/arch/arm/boot/dts/armada-388-db.dts b/arch/arm/boot/dts/armada-388-db.dts
index de26c762239c..1ac923826445 100644
--- a/arch/arm/boot/dts/armada-388-db.dts
+++ b/arch/arm/boot/dts/armada-388-db.dts
@@ -16,17 +16,17 @@
16 * published by the Free Software Foundation; either version 2 of the 16 * published by the Free Software Foundation; either version 2 of the
17 * License, or (at your option) any later version. 17 * License, or (at your option) any later version.
18 * 18 *
19 * This file is distributed in the hope that it will be useful 19 * This file is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of 20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details. 22 * GNU General Public License for more details.
23 * 23 *
24 * Or, alternatively 24 * Or, alternatively,
25 * 25 *
26 * b) Permission is hereby granted, free of charge, to any person 26 * b) Permission is hereby granted, free of charge, to any person
27 * obtaining a copy of this software and associated documentation 27 * obtaining a copy of this software and associated documentation
28 * files (the "Software"), to deal in the Software without 28 * files (the "Software"), to deal in the Software without
29 * restriction, including without limitation the rights to use 29 * restriction, including without limitation the rights to use,
30 * copy, modify, merge, publish, distribute, sublicense, and/or 30 * copy, modify, merge, publish, distribute, sublicense, and/or
31 * sell copies of the Software, and to permit persons to whom the 31 * sell copies of the Software, and to permit persons to whom the
32 * Software is furnished to do so, subject to the following 32 * Software is furnished to do so, subject to the following
@@ -35,11 +35,11 @@
35 * The above copyright notice and this permission notice shall be 35 * The above copyright notice and this permission notice shall be
36 * included in all copies or substantial portions of the Software. 36 * included in all copies or substantial portions of the Software.
37 * 37 *
38 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 38 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
45 * OTHER DEALINGS IN THE SOFTWARE. 45 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-388-rd.dts b/arch/arm/boot/dts/armada-388-rd.dts
index dd3462ddb6b9..af82f275eac2 100644
--- a/arch/arm/boot/dts/armada-388-rd.dts
+++ b/arch/arm/boot/dts/armada-388-rd.dts
@@ -17,17 +17,17 @@
17 * published by the Free Software Foundation; either version 2 of the 17 * published by the Free Software Foundation; either version 2 of the
18 * License, or (at your option) any later version. 18 * License, or (at your option) any later version.
19 * 19 *
20 * This file is distributed in the hope that it will be useful 20 * This file is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details. 23 * GNU General Public License for more details.
24 * 24 *
25 * Or, alternatively 25 * Or, alternatively,
26 * 26 *
27 * b) Permission is hereby granted, free of charge, to any person 27 * b) Permission is hereby granted, free of charge, to any person
28 * obtaining a copy of this software and associated documentation 28 * obtaining a copy of this software and associated documentation
29 * files (the "Software"), to deal in the Software without 29 * files (the "Software"), to deal in the Software without
30 * restriction, including without limitation the rights to use 30 * restriction, including without limitation the rights to use,
31 * copy, modify, merge, publish, distribute, sublicense, and/or 31 * copy, modify, merge, publish, distribute, sublicense, and/or
32 * sell copies of the Software, and to permit persons to whom the 32 * sell copies of the Software, and to permit persons to whom the
33 * Software is furnished to do so, subject to the following 33 * Software is furnished to do so, subject to the following
@@ -36,11 +36,11 @@
36 * The above copyright notice and this permission notice shall be 36 * The above copyright notice and this permission notice shall be
37 * included in all copies or substantial portions of the Software. 37 * included in all copies or substantial portions of the Software.
38 * 38 *
39 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 39 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46 * OTHER DEALINGS IN THE SOFTWARE. 46 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi b/arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi
index 8c9842237b60..9b508a8161f5 100644
--- a/arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi
+++ b/arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi
@@ -17,17 +17,17 @@
17 * modify it under the terms of the GNU General Public License 17 * modify it under the terms of the GNU General Public License
18 * version 2 as published by the Free Software Foundation. 18 * version 2 as published by the Free Software Foundation.
19 * 19 *
20 * This file is distributed in the hope that it will be useful 20 * This file is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details. 23 * GNU General Public License for more details.
24 * 24 *
25 * Or, alternatively 25 * Or, alternatively,
26 * 26 *
27 * b) Permission is hereby granted, free of charge, to any person 27 * b) Permission is hereby granted, free of charge, to any person
28 * obtaining a copy of this software and associated documentation 28 * obtaining a copy of this software and associated documentation
29 * files (the "Software"), to deal in the Software without 29 * files (the "Software"), to deal in the Software without
30 * restriction, including without limitation the rights to use 30 * restriction, including without limitation the rights to use,
31 * copy, modify, merge, publish, distribute, sublicense, and/or 31 * copy, modify, merge, publish, distribute, sublicense, and/or
32 * sell copies of the Software, and to permit persons to whom the 32 * sell copies of the Software, and to permit persons to whom the
33 * Software is furnished to do so, subject to the following 33 * Software is furnished to do so, subject to the following
@@ -36,11 +36,11 @@
36 * The above copyright notice and this permission notice shall be 36 * The above copyright notice and this permission notice shall be
37 * included in all copies or substantial portions of the Software. 37 * included in all copies or substantial portions of the Software.
38 * 38 *
39 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 39 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46 * OTHER DEALINGS IN THE SOFTWARE. 46 * OTHER DEALINGS IN THE SOFTWARE.
@@ -62,45 +62,6 @@
62 MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>; 62 MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
63 63
64 internal-regs { 64 internal-regs {
65 ethernet@70000 {
66 pinctrl-0 = <&ge0_rgmii_pins>;
67 pinctrl-names = "default";
68 phy = <&phy_dedicated>;
69 phy-mode = "rgmii-id";
70 buffer-manager = <&bm>;
71 bm,pool-long = <0>;
72 bm,pool-short = <1>;
73 status = "okay";
74 };
75
76 mdio@72004 {
77 /*
78 * Add the phy clock here, so the phy can be
79 * accessed to read its IDs prior to binding
80 * with the driver.
81 */
82 pinctrl-0 = <&mdio_pins &microsom_phy_clk_pins>;
83 pinctrl-names = "default";
84
85 phy_dedicated: ethernet-phy@0 {
86 /*
87 * Annoyingly, the marvell phy driver
88 * configures the LED register, rather
89 * than preserving reset-loaded setting.
90 * We undo that rubbish here.
91 */
92 marvell,reg-init = <3 16 0 0x101e>;
93 reg = <0>;
94 };
95 };
96
97 pinctrl@18000 {
98 microsom_phy_clk_pins: microsom-phy-clk-pins {
99 marvell,pins = "mpp45";
100 marvell,function = "ref";
101 };
102 };
103
104 rtc@a3800 { 65 rtc@a3800 {
105 /* 66 /*
106 * If the rtc doesn't work, run "date reset" 67 * If the rtc doesn't work, run "date reset"
@@ -108,21 +69,78 @@
108 */ 69 */
109 status = "okay"; 70 status = "okay";
110 }; 71 };
72 };
73 };
74};
111 75
112 serial@12000 { 76&bm {
113 pinctrl-0 = <&uart0_pins>; 77 status = "okay";
114 pinctrl-names = "default"; 78};
115 status = "okay";
116 };
117 79
118 bm@c8000 { 80&bm_bppi {
119 status = "okay"; 81 status = "okay";
120 }; 82};
121 };
122 83
123 bm-bppi { 84&eth0 {
124 status = "okay"; 85 /* ethernet@70000 */
125 }; 86 pinctrl-0 = <&ge0_rgmii_pins>;
87 pinctrl-names = "default";
88 phy = <&phy_dedicated>;
89 phy-mode = "rgmii-id";
90 buffer-manager = <&bm>;
91 bm,pool-long = <0>;
92 bm,pool-short = <1>;
93 status = "okay";
94};
95
96&mdio {
97 /*
98 * Add the phy clock here, so the phy can be accessed to read its
99 * IDs prior to binding with the driver.
100 */
101 pinctrl-0 = <&mdio_pins &microsom_phy_clk_pins>;
102 pinctrl-names = "default";
103
104 phy_dedicated: ethernet-phy@0 {
105 /*
106 * Annoyingly, the marvell phy driver configures the LED
107 * register, rather than preserving reset-loaded setting.
108 * We undo that rubbish here.
109 */
110 marvell,reg-init = <3 16 0 0x101e>;
111 reg = <0>;
112 };
113};
114
115&pinctrl {
116 microsom_phy_clk_pins: microsom-phy-clk-pins {
117 marvell,pins = "mpp45";
118 marvell,function = "ref";
119 };
120 /* Optional eMMC */
121 microsom_sdhci_pins: microsom-sdhci-pins {
122 marvell,pins = "mpp21", "mpp28", "mpp37",
123 "mpp38", "mpp39", "mpp40";
124 marvell,function = "sd0";
125 };
126};
127
128&spi1 {
129 /* The microsom has an optional W25Q32 on board, connected to CS0 */
130 pinctrl-0 = <&spi1_pins>;
126 131
132 w25q32: spi-flash@0 {
133 #address-cells = <1>;
134 #size-cells = <1>;
135 compatible = "w25q32", "jedec,spi-nor";
136 reg = <0>; /* Chip select 0 */
137 spi-max-frequency = <3000000>;
138 status = "disabled";
127 }; 139 };
128}; 140};
141
142&uart0 {
143 pinctrl-0 = <&uart0_pins>;
144 pinctrl-names = "default";
145 status = "okay";
146};
diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
index 7450e9fea45d..79b767507eab 100644
--- a/arch/arm/boot/dts/armada-38x.dtsi
+++ b/arch/arm/boot/dts/armada-38x.dtsi
@@ -17,17 +17,17 @@
17 * published by the Free Software Foundation; either version 2 of the 17 * published by the Free Software Foundation; either version 2 of the
18 * License, or (at your option) any later version. 18 * License, or (at your option) any later version.
19 * 19 *
20 * This file is distributed in the hope that it will be useful 20 * This file is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details. 23 * GNU General Public License for more details.
24 * 24 *
25 * Or, alternatively 25 * Or, alternatively,
26 * 26 *
27 * b) Permission is hereby granted, free of charge, to any person 27 * b) Permission is hereby granted, free of charge, to any person
28 * obtaining a copy of this software and associated documentation 28 * obtaining a copy of this software and associated documentation
29 * files (the "Software"), to deal in the Software without 29 * files (the "Software"), to deal in the Software without
30 * restriction, including without limitation the rights to use 30 * restriction, including without limitation the rights to use,
31 * copy, modify, merge, publish, distribute, sublicense, and/or 31 * copy, modify, merge, publish, distribute, sublicense, and/or
32 * sell copies of the Software, and to permit persons to whom the 32 * sell copies of the Software, and to permit persons to whom the
33 * Software is furnished to do so, subject to the following 33 * Software is furnished to do so, subject to the following
@@ -36,11 +36,11 @@
36 * The above copyright notice and this permission notice shall be 36 * The above copyright notice and this permission notice shall be
37 * included in all copies or substantial portions of the Software. 37 * included in all copies or substantial portions of the Software.
38 * 38 *
39 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 39 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46 * OTHER DEALINGS IN THE SOFTWARE. 46 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-390-db.dts b/arch/arm/boot/dts/armada-390-db.dts
index 34e279d973c8..2afed2ce4741 100644
--- a/arch/arm/boot/dts/armada-390-db.dts
+++ b/arch/arm/boot/dts/armada-390-db.dts
@@ -16,17 +16,17 @@
16 * published by the Free Software Foundation; either version 2 of the 16 * published by the Free Software Foundation; either version 2 of the
17 * License, or (at your option) any later version. 17 * License, or (at your option) any later version.
18 * 18 *
19 * This file is distributed in the hope that it will be useful 19 * This file is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of 20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details. 22 * GNU General Public License for more details.
23 * 23 *
24 * Or, alternatively 24 * Or, alternatively,
25 * 25 *
26 * b) Permission is hereby granted, free of charge, to any person 26 * b) Permission is hereby granted, free of charge, to any person
27 * obtaining a copy of this software and associated documentation 27 * obtaining a copy of this software and associated documentation
28 * files (the "Software"), to deal in the Software without 28 * files (the "Software"), to deal in the Software without
29 * restriction, including without limitation the rights to use 29 * restriction, including without limitation the rights to use,
30 * copy, modify, merge, publish, distribute, sublicense, and/or 30 * copy, modify, merge, publish, distribute, sublicense, and/or
31 * sell copies of the Software, and to permit persons to whom the 31 * sell copies of the Software, and to permit persons to whom the
32 * Software is furnished to do so, subject to the following 32 * Software is furnished to do so, subject to the following
@@ -35,11 +35,11 @@
35 * The above copyright notice and this permission notice shall be 35 * The above copyright notice and this permission notice shall be
36 * included in all copies or substantial portions of the Software. 36 * included in all copies or substantial portions of the Software.
37 * 37 *
38 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 38 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
45 * OTHER DEALINGS IN THE SOFTWARE. 45 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-390.dtsi b/arch/arm/boot/dts/armada-390.dtsi
index 6cd18d8aaac7..0d8a54ad007c 100644
--- a/arch/arm/boot/dts/armada-390.dtsi
+++ b/arch/arm/boot/dts/armada-390.dtsi
@@ -15,17 +15,17 @@
15 * published by the Free Software Foundation; either version 2 of the 15 * published by the Free Software Foundation; either version 2 of the
16 * License, or (at your option) any later version. 16 * License, or (at your option) any later version.
17 * 17 *
18 * This file is distributed in the hope that it will be useful 18 * This file is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details. 21 * GNU General Public License for more details.
22 * 22 *
23 * Or, alternatively 23 * Or, alternatively,
24 * 24 *
25 * b) Permission is hereby granted, free of charge, to any person 25 * b) Permission is hereby granted, free of charge, to any person
26 * obtaining a copy of this software and associated documentation 26 * obtaining a copy of this software and associated documentation
27 * files (the "Software"), to deal in the Software without 27 * files (the "Software"), to deal in the Software without
28 * restriction, including without limitation the rights to use 28 * restriction, including without limitation the rights to use,
29 * copy, modify, merge, publish, distribute, sublicense, and/or 29 * copy, modify, merge, publish, distribute, sublicense, and/or
30 * sell copies of the Software, and to permit persons to whom the 30 * sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following 31 * Software is furnished to do so, subject to the following
@@ -34,11 +34,11 @@
34 * The above copyright notice and this permission notice shall be 34 * The above copyright notice and this permission notice shall be
35 * included in all copies or substantial portions of the Software. 35 * included in all copies or substantial portions of the Software.
36 * 36 *
37 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 37 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 * OTHER DEALINGS IN THE SOFTWARE. 44 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-395.dtsi b/arch/arm/boot/dts/armada-395.dtsi
index ab5dc49f2bff..bf7e4335e36a 100644
--- a/arch/arm/boot/dts/armada-395.dtsi
+++ b/arch/arm/boot/dts/armada-395.dtsi
@@ -15,17 +15,17 @@
15 * published by the Free Software Foundation; either version 2 of the 15 * published by the Free Software Foundation; either version 2 of the
16 * License, or (at your option) any later version. 16 * License, or (at your option) any later version.
17 * 17 *
18 * This file is distributed in the hope that it will be useful 18 * This file is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details. 21 * GNU General Public License for more details.
22 * 22 *
23 * Or, alternatively 23 * Or, alternatively,
24 * 24 *
25 * b) Permission is hereby granted, free of charge, to any person 25 * b) Permission is hereby granted, free of charge, to any person
26 * obtaining a copy of this software and associated documentation 26 * obtaining a copy of this software and associated documentation
27 * files (the "Software"), to deal in the Software without 27 * files (the "Software"), to deal in the Software without
28 * restriction, including without limitation the rights to use 28 * restriction, including without limitation the rights to use,
29 * copy, modify, merge, publish, distribute, sublicense, and/or 29 * copy, modify, merge, publish, distribute, sublicense, and/or
30 * sell copies of the Software, and to permit persons to whom the 30 * sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following 31 * Software is furnished to do so, subject to the following
@@ -34,11 +34,11 @@
34 * The above copyright notice and this permission notice shall be 34 * The above copyright notice and this permission notice shall be
35 * included in all copies or substantial portions of the Software. 35 * included in all copies or substantial portions of the Software.
36 * 36 *
37 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 37 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 * OTHER DEALINGS IN THE SOFTWARE. 44 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-398-db.dts b/arch/arm/boot/dts/armada-398-db.dts
index 268c8349c884..e8604281c3c9 100644
--- a/arch/arm/boot/dts/armada-398-db.dts
+++ b/arch/arm/boot/dts/armada-398-db.dts
@@ -15,17 +15,17 @@
15 * published by the Free Software Foundation; either version 2 of the 15 * published by the Free Software Foundation; either version 2 of the
16 * License, or (at your option) any later version. 16 * License, or (at your option) any later version.
17 * 17 *
18 * This file is distributed in the hope that it will be useful 18 * This file is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details. 21 * GNU General Public License for more details.
22 * 22 *
23 * Or, alternatively 23 * Or, alternatively,
24 * 24 *
25 * b) Permission is hereby granted, free of charge, to any person 25 * b) Permission is hereby granted, free of charge, to any person
26 * obtaining a copy of this software and associated documentation 26 * obtaining a copy of this software and associated documentation
27 * files (the "Software"), to deal in the Software without 27 * files (the "Software"), to deal in the Software without
28 * restriction, including without limitation the rights to use 28 * restriction, including without limitation the rights to use,
29 * copy, modify, merge, publish, distribute, sublicense, and/or 29 * copy, modify, merge, publish, distribute, sublicense, and/or
30 * sell copies of the Software, and to permit persons to whom the 30 * sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following 31 * Software is furnished to do so, subject to the following
@@ -34,11 +34,11 @@
34 * The above copyright notice and this permission notice shall be 34 * The above copyright notice and this permission notice shall be
35 * included in all copies or substantial portions of the Software. 35 * included in all copies or substantial portions of the Software.
36 * 36 *
37 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 37 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 * OTHER DEALINGS IN THE SOFTWARE. 44 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-398.dtsi b/arch/arm/boot/dts/armada-398.dtsi
index 234a99891a29..1f4e113fc821 100644
--- a/arch/arm/boot/dts/armada-398.dtsi
+++ b/arch/arm/boot/dts/armada-398.dtsi
@@ -15,17 +15,17 @@
15 * published by the Free Software Foundation; either version 2 of the 15 * published by the Free Software Foundation; either version 2 of the
16 * License, or (at your option) any later version. 16 * License, or (at your option) any later version.
17 * 17 *
18 * This file is distributed in the hope that it will be useful 18 * This file is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details. 21 * GNU General Public License for more details.
22 * 22 *
23 * Or, alternatively 23 * Or, alternatively,
24 * 24 *
25 * b) Permission is hereby granted, free of charge, to any person 25 * b) Permission is hereby granted, free of charge, to any person
26 * obtaining a copy of this software and associated documentation 26 * obtaining a copy of this software and associated documentation
27 * files (the "Software"), to deal in the Software without 27 * files (the "Software"), to deal in the Software without
28 * restriction, including without limitation the rights to use 28 * restriction, including without limitation the rights to use,
29 * copy, modify, merge, publish, distribute, sublicense, and/or 29 * copy, modify, merge, publish, distribute, sublicense, and/or
30 * sell copies of the Software, and to permit persons to whom the 30 * sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following 31 * Software is furnished to do so, subject to the following
@@ -34,11 +34,11 @@
34 * The above copyright notice and this permission notice shall be 34 * The above copyright notice and this permission notice shall be
35 * included in all copies or substantial portions of the Software. 35 * included in all copies or substantial portions of the Software.
36 * 36 *
37 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 37 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 * OTHER DEALINGS IN THE SOFTWARE. 44 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-39x.dtsi b/arch/arm/boot/dts/armada-39x.dtsi
index de171baffcf6..60fbfd5907c7 100644
--- a/arch/arm/boot/dts/armada-39x.dtsi
+++ b/arch/arm/boot/dts/armada-39x.dtsi
@@ -15,17 +15,17 @@
15 * published by the Free Software Foundation; either version 2 of the 15 * published by the Free Software Foundation; either version 2 of the
16 * License, or (at your option) any later version. 16 * License, or (at your option) any later version.
17 * 17 *
18 * This file is distributed in the hope that it will be useful 18 * This file is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details. 21 * GNU General Public License for more details.
22 * 22 *
23 * Or, alternatively 23 * Or, alternatively,
24 * 24 *
25 * b) Permission is hereby granted, free of charge, to any person 25 * b) Permission is hereby granted, free of charge, to any person
26 * obtaining a copy of this software and associated documentation 26 * obtaining a copy of this software and associated documentation
27 * files (the "Software"), to deal in the Software without 27 * files (the "Software"), to deal in the Software without
28 * restriction, including without limitation the rights to use 28 * restriction, including without limitation the rights to use,
29 * copy, modify, merge, publish, distribute, sublicense, and/or 29 * copy, modify, merge, publish, distribute, sublicense, and/or
30 * sell copies of the Software, and to permit persons to whom the 30 * sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following 31 * Software is furnished to do so, subject to the following
@@ -34,11 +34,11 @@
34 * The above copyright notice and this permission notice shall be 34 * The above copyright notice and this permission notice shall be
35 * included in all copies or substantial portions of the Software. 35 * included in all copies or substantial portions of the Software.
36 * 36 *
37 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 37 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 * OTHER DEALINGS IN THE SOFTWARE. 44 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
new file mode 100644
index 000000000000..f6a03dcee5ef
--- /dev/null
+++ b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
@@ -0,0 +1,254 @@
1/*
2 * Device Tree Include file for Marvell 98dx3236 family SoC
3 *
4 * Copyright (C) 2016 Allied Telesis Labs
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 *
44 * Contains definitions specific to the 98dx3236 SoC that are not
45 * common to all Armada XP SoCs.
46 */
47
48#include "armada-xp.dtsi"
49
50/ {
51 model = "Marvell 98DX3236 SoC";
52 compatible = "marvell,armadaxp-98dx3236", "marvell,armadaxp", "marvell,armada-370-xp";
53
54 aliases {
55 gpio0 = &gpio0;
56 gpio1 = &gpio1;
57 gpio2 = &gpio2;
58 };
59
60 cpus {
61 #address-cells = <1>;
62 #size-cells = <0>;
63 enable-method = "marvell,98dx3236-smp";
64
65 cpu@0 {
66 device_type = "cpu";
67 compatible = "marvell,sheeva-v7";
68 reg = <0>;
69 clocks = <&cpuclk 0>;
70 clock-latency = <1000000>;
71 };
72 };
73
74 soc {
75 ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000
76 MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
77 MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000
78 MBUS_ID(0x03, 0x00) 0 0 0xa8000000 0x4000000
79 MBUS_ID(0x08, 0x00) 0 0 0xac000000 0x100000>;
80
81 /*
82 * 98DX3236 has 1 x1 PCIe unit Gen2.0
83 */
84 pciec: pcie-controller@82000000 {
85 compatible = "marvell,armada-xp-pcie";
86 status = "disabled";
87 device_type = "pci";
88
89 #address-cells = <3>;
90 #size-cells = <2>;
91
92 msi-parent = <&mpic>;
93 bus-range = <0x00 0xff>;
94
95 ranges =
96 <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 /* Port 0.0 registers */
97 0x82000000 0x1 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */
98 0x81000000 0x1 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO */
99 0x82000000 0x2 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */>;
100
101 pcie1: pcie@1,0 {
102 device_type = "pci";
103 assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
104 reg = <0x0800 0 0 0 0>;
105 #address-cells = <3>;
106 #size-cells = <2>;
107 #interrupt-cells = <1>;
108 ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
109 0x81000000 0 0 0x81000000 0x1 0 1 0>;
110 interrupt-map-mask = <0 0 0 0>;
111 interrupt-map = <0 0 0 0 &mpic 58>;
112 marvell,pcie-port = <0>;
113 marvell,pcie-lane = <0>;
114 clocks = <&gateclk 5>;
115 status = "disabled";
116 };
117 };
118
119 internal-regs {
120 coreclk: mvebu-sar@18230 {
121 compatible = "marvell,mv98dx3236-core-clock";
122 };
123
124 cpuclk: clock-complex@18700 {
125 compatible = "marvell,mv98dx3236-cpu-clock";
126 };
127
128 corediv-clock@18740 {
129 status = "disabled";
130 };
131
132 xor@60900 {
133 status = "disabled";
134 };
135
136 crypto@90000 {
137 status = "disabled";
138 };
139
140 xor@f0900 {
141 status = "disabled";
142 };
143
144 xor@f0800 {
145 compatible = "marvell,orion-xor";
146 reg = <0xf0800 0x100
147 0xf0a00 0x100>;
148 clocks = <&gateclk 22>;
149 status = "okay";
150
151 xor10 {
152 interrupts = <51>;
153 dmacap,memcpy;
154 dmacap,xor;
155 };
156 xor11 {
157 interrupts = <52>;
158 dmacap,memcpy;
159 dmacap,xor;
160 dmacap,memset;
161 };
162 };
163
164 gpio0: gpio@18100 {
165 compatible = "marvell,orion-gpio";
166 reg = <0x18100 0x40>;
167 ngpios = <32>;
168 gpio-controller;
169 #gpio-cells = <2>;
170 interrupt-controller;
171 #interrupt-cells = <2>;
172 interrupts = <82>, <83>, <84>, <85>;
173 };
174
175 /* does not exist */
176 gpio1: gpio@18140 {
177 compatible = "marvell,orion-gpio";
178 reg = <0x18140 0x40>;
179 status = "disabled";
180 };
181
182 gpio2: gpio@18180 { /* rework some properties */
183 compatible = "marvell,orion-gpio";
184 reg = <0x18180 0x40>;
185 ngpios = <1>; /* only gpio #32 */
186 gpio-controller;
187 #gpio-cells = <2>;
188 interrupt-controller;
189 #interrupt-cells = <2>;
190 interrupts = <87>;
191 };
192
193 nand: nand@d0000 {
194 clocks = <&dfx_coredivclk 0>;
195 };
196 };
197
198 dfxr: dfx-registers@ac000000 {
199 compatible = "simple-bus";
200 #address-cells = <1>;
201 #size-cells = <1>;
202 ranges = <0 MBUS_ID(0x08, 0x00) 0 0x100000>;
203
204 dfx_coredivclk: corediv-clock@f8268 {
205 compatible = "marvell,mv98dx3236-corediv-clock";
206 reg = <0xf8268 0xc>;
207 #clock-cells = <1>;
208 clocks = <&mainpll>;
209 clock-output-names = "nand";
210 };
211
212 dfx: dfx@0 {
213 compatible = "marvell,dfx-server";
214 reg = <0 0x100000>;
215 };
216 };
217
218 switch: switch@a8000000 {
219 compatible = "simple-bus";
220 #address-cells = <1>;
221 #size-cells = <1>;
222 ranges = <0 MBUS_ID(0x03, 0x00) 0 0x100000>;
223
224 pp0: packet-processor@0 {
225 compatible = "marvell,prestera-98dx3236";
226 reg = <0 0x4000000>;
227 interrupts = <33>, <34>, <35>;
228 dfx = <&dfx>;
229 };
230 };
231 };
232};
233
234&pinctrl {
235 compatible = "marvell,98dx3236-pinctrl";
236
237 spi0_pins: spi0-pins {
238 marvell,pins = "mpp0", "mpp1",
239 "mpp2", "mpp3";
240 marvell,function = "spi0";
241 };
242};
243
244&sdio {
245 status = "disabled";
246};
247
248&crypto_sram0 {
249 status = "disabled";
250};
251
252&crypto_sram1 {
253 status = "disabled";
254};
diff --git a/arch/arm/boot/dts/armada-xp-98dx3336.dtsi b/arch/arm/boot/dts/armada-xp-98dx3336.dtsi
new file mode 100644
index 000000000000..e1580afdc260
--- /dev/null
+++ b/arch/arm/boot/dts/armada-xp-98dx3336.dtsi
@@ -0,0 +1,76 @@
1/*
2 * Device Tree Include file for Marvell 98dx3336 family SoC
3 *
4 * Copyright (C) 2016 Allied Telesis Labs
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 *
44 * Contains definitions specific to the 98dx3236 SoC that are not
45 * common to all Armada XP SoCs.
46 */
47
48#include "armada-xp-98dx3236.dtsi"
49
50/ {
51 model = "Marvell 98DX3336 SoC";
52 compatible = "marvell,armadaxp-98dx3336", "marvell,armadaxp-98dx3236", "marvell,armadaxp", "marvell,armada-370-xp";
53
54 cpus {
55 cpu@1 {
56 device_type = "cpu";
57 compatible = "marvell,sheeva-v7";
58 reg = <1>;
59 clocks = <&cpuclk 1>;
60 clock-latency = <1000000>;
61 };
62 };
63
64 soc {
65 internal-regs {
66 resume@20980 {
67 compatible = "marvell,98dx3336-resume-ctrl";
68 reg = <0x20980 0x10>;
69 };
70 };
71 };
72};
73
74&pp0 {
75 compatible = "marvell,prestera-98dx3336";
76};
diff --git a/arch/arm/boot/dts/armada-xp-98dx4251.dtsi b/arch/arm/boot/dts/armada-xp-98dx4251.dtsi
new file mode 100644
index 000000000000..b9d9b269efb4
--- /dev/null
+++ b/arch/arm/boot/dts/armada-xp-98dx4251.dtsi
@@ -0,0 +1,90 @@
1/*
2 * Device Tree Include file for Marvell 98dx4521 family SoC
3 *
4 * Copyright (C) 2016 Allied Telesis Labs
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 *
44 * Contains definitions specific to the 98dx4521 SoC that are not
45 * common to all Armada XP SoCs.
46 */
47
48#include "armada-xp-98dx3236.dtsi"
49
50/ {
51 model = "Marvell 98DX4251 SoC";
52 compatible = "marvell,armadaxp-98dx4251", "marvell,armadaxp-98dx3236", "marvell,armadaxp", "marvell,armada-370-xp";
53
54 cpus {
55 cpu@1 {
56 device_type = "cpu";
57 compatible = "marvell,sheeva-v7";
58 reg = <1>;
59 clocks = <&cpuclk 1>;
60 clock-latency = <1000000>;
61 };
62 };
63
64 soc {
65 internal-regs {
66 resume@20980 {
67 compatible = "marvell,98dx3336-resume-ctrl";
68 reg = <0x20980 0x10>;
69 };
70 };
71 };
72};
73
74&sdio {
75 status = "okay";
76};
77
78&pinctrl {
79 compatible = "marvell,98dx4251-pinctrl";
80
81 sdio_pins: sdio-pins {
82 marvell,pins = "mpp5", "mpp6", "mpp7",
83 "mpp8", "mpp9", "mpp10";
84 marvell,function = "sd0";
85 };
86};
87
88&pp0 {
89 compatible = "marvell,prestera-98dx4251";
90};
diff --git a/arch/arm/boot/dts/armada-xp-axpwifiap.dts b/arch/arm/boot/dts/armada-xp-axpwifiap.dts
index 1e1fc4fccbad..d0c6a01f48a6 100644
--- a/arch/arm/boot/dts/armada-xp-axpwifiap.dts
+++ b/arch/arm/boot/dts/armada-xp-axpwifiap.dts
@@ -20,17 +20,17 @@
20 * published by the Free Software Foundation; either version 2 of the 20 * published by the Free Software Foundation; either version 2 of the
21 * License, or (at your option) any later version. 21 * License, or (at your option) any later version.
22 * 22 *
23 * This file is distributed in the hope that it will be useful 23 * This file is distributed in the hope that it will be useful,
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of 24 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 * GNU General Public License for more details. 26 * GNU General Public License for more details.
27 * 27 *
28 * Or, alternatively 28 * Or, alternatively,
29 * 29 *
30 * b) Permission is hereby granted, free of charge, to any person 30 * b) Permission is hereby granted, free of charge, to any person
31 * obtaining a copy of this software and associated documentation 31 * obtaining a copy of this software and associated documentation
32 * files (the "Software"), to deal in the Software without 32 * files (the "Software"), to deal in the Software without
33 * restriction, including without limitation the rights to use 33 * restriction, including without limitation the rights to use,
34 * copy, modify, merge, publish, distribute, sublicense, and/or 34 * copy, modify, merge, publish, distribute, sublicense, and/or
35 * sell copies of the Software, and to permit persons to whom the 35 * sell copies of the Software, and to permit persons to whom the
36 * Software is furnished to do so, subject to the following 36 * Software is furnished to do so, subject to the following
@@ -39,11 +39,11 @@
39 * The above copyright notice and this permission notice shall be 39 * The above copyright notice and this permission notice shall be
40 * included in all copies or substantial portions of the Software. 40 * included in all copies or substantial portions of the Software.
41 * 41 *
42 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 42 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
43 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 43 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
44 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 44 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
45 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 45 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
46 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 46 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
47 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 47 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
48 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 48 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
49 * OTHER DEALINGS IN THE SOFTWARE. 49 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-xp-db-dxbc2.dts b/arch/arm/boot/dts/armada-xp-db-dxbc2.dts
new file mode 100644
index 000000000000..a8130805074e
--- /dev/null
+++ b/arch/arm/boot/dts/armada-xp-db-dxbc2.dts
@@ -0,0 +1,151 @@
1/*
2 * Device Tree file for DB-DXBC2 board
3 *
4 * Copyright (C) 2016 Allied Telesis Labs
5 *
6 * Based on armada-xp-db.dts
7 *
8 * This file is dual-licensed: you can use it either under the terms
9 * of the GPL or the X11 license, at your option. Note that this dual
10 * licensing only applies to this file, and not this project as a
11 * whole.
12 *
13 * a) This file is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License as
15 * published by the Free Software Foundation; either version 2 of the
16 * License, or (at your option) any later version.
17 *
18 * This file is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
22 *
23 * Or, alternatively,
24 *
25 * b) Permission is hereby granted, free of charge, to any person
26 * obtaining a copy of this software and associated documentation
27 * files (the "Software"), to deal in the Software without
28 * restriction, including without limitation the rights to use,
29 * copy, modify, merge, publish, distribute, sublicense, and/or
30 * sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following
32 * conditions:
33 *
34 * The above copyright notice and this permission notice shall be
35 * included in all copies or substantial portions of the Software.
36 *
37 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 * OTHER DEALINGS IN THE SOFTWARE.
45 *
46 * Note: this Device Tree assumes that the bootloader has remapped the
47 * internal registers to 0xf1000000 (instead of the default
48 * 0xd0000000). The 0xf1000000 is the default used by the recent,
49 * DT-capable, U-Boot bootloaders provided by Marvell. Some earlier
50 * boards were delivered with an older version of the bootloader that
51 * left internal registers mapped at 0xd0000000. If you are in this
52 * situation, you should either update your bootloader (preferred
53 * solution) or the below Device Tree should be adjusted.
54 */
55
56/dts-v1/;
57#include "armada-xp-98dx4251.dtsi"
58
59/ {
60 model = "Marvell Bobcat2 Evaluation Board";
61 compatible = "marvell,db-dxbc2", "marvell,armadaxp-98dx4251", "marvell,armadaxp", "marvell,armada-370-xp";
62
63 chosen {
64 bootargs = "console=ttyS0,115200 earlyprintk";
65 };
66
67 memory {
68 device_type = "memory";
69 reg = <0 0x00000000 0 0x20000000>; /* 512 MB */
70 };
71
72};
73
74&devbus_bootcs {
75 status = "okay";
76
77 /* Device Bus parameters are required */
78
79 /* Read parameters */
80 devbus,bus-width = <16>;
81 devbus,turn-off-ps = <60000>;
82 devbus,badr-skew-ps = <0>;
83 devbus,acc-first-ps = <124000>;
84 devbus,acc-next-ps = <248000>;
85 devbus,rd-setup-ps = <0>;
86 devbus,rd-hold-ps = <0>;
87
88 /* Write parameters */
89 devbus,sync-enable = <0>;
90 devbus,wr-high-ps = <60000>;
91 devbus,wr-low-ps = <60000>;
92 devbus,ale-wr-ps = <60000>;
93};
94
95&i2c0 {
96 clock-frequency = <100000>;
97 status = "okay";
98};
99
100&uart0 {
101 status = "okay";
102};
103
104&uart1 {
105 status = "okay";
106};
107
108&nand {
109 status = "okay";
110 num-cs = <1>;
111 marvell,nand-keep-config;
112 marvell,nand-enable-arbiter;
113 nand-on-flash-bbt;
114 nand-ecc-strength = <4>;
115 nand-ecc-step-size = <512>;
116};
117
118&sdio {
119 pinctrl-0 = <&sdio_pins>;
120 pinctrl-names = "default";
121 status = "okay";
122 /* No CD or WP GPIOs */
123 broken-cd;
124};
125
126&spi0 {
127 status = "okay";
128
129 spi-flash@0 {
130 #address-cells = <1>;
131 #size-cells = <1>;
132 compatible = "m25p64";
133 reg = <0>; /* Chip select 0 */
134 spi-max-frequency = <20000000>;
135 m25p,fast-read;
136
137 partition@u-boot {
138 reg = <0x00000000 0x00100000>;
139 label = "u-boot";
140 };
141 partition@u-boot-env {
142 reg = <0x00100000 0x00040000>;
143 label = "u-boot-env";
144 };
145 partition@unused {
146 reg = <0x00140000 0x00ec0000>;
147 label = "unused";
148 };
149
150 };
151};
diff --git a/arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts b/arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts
new file mode 100644
index 000000000000..4e07cb6ed800
--- /dev/null
+++ b/arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts
@@ -0,0 +1,142 @@
1/*
2 * Device Tree file for DB-XC3-24G4XG board
3 *
4 * Copyright (C) 2016 Allied Telesis Labs
5 *
6 * Based on armada-xp-db.dts
7 *
8 * This file is dual-licensed: you can use it either under the terms
9 * of the GPL or the X11 license, at your option. Note that this dual
10 * licensing only applies to this file, and not this project as a
11 * whole.
12 *
13 * a) This file is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License as
15 * published by the Free Software Foundation; either version 2 of the
16 * License, or (at your option) any later version.
17 *
18 * This file is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
22 *
23 * Or, alternatively,
24 *
25 * b) Permission is hereby granted, free of charge, to any person
26 * obtaining a copy of this software and associated documentation
27 * files (the "Software"), to deal in the Software without
28 * restriction, including without limitation the rights to use,
29 * copy, modify, merge, publish, distribute, sublicense, and/or
30 * sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following
32 * conditions:
33 *
34 * The above copyright notice and this permission notice shall be
35 * included in all copies or substantial portions of the Software.
36 *
37 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 * OTHER DEALINGS IN THE SOFTWARE.
45 *
46 * Note: this Device Tree assumes that the bootloader has remapped the
47 * internal registers to 0xf1000000 (instead of the default
48 * 0xd0000000). The 0xf1000000 is the default used by the recent,
49 * DT-capable, U-Boot bootloaders provided by Marvell. Some earlier
50 * boards were delivered with an older version of the bootloader that
51 * left internal registers mapped at 0xd0000000. If you are in this
52 * situation, you should either update your bootloader (preferred
53 * solution) or the below Device Tree should be adjusted.
54 */
55
56/dts-v1/;
57#include "armada-xp-98dx3336.dtsi"
58
59/ {
60 model = "DB-XC3-24G4XG";
61 compatible = "marvell,db-xc3-24g4xg", "marvell,armadaxp-98dx3336", "marvell,armadaxp", "marvell,armada-370-xp";
62
63 chosen {
64 bootargs = "console=ttyS0,115200 earlyprintk";
65 };
66
67 memory {
68 device_type = "memory";
69 reg = <0 0x00000000 0 0x40000000>; /* 1 GB */
70 };
71};
72
73&devbus_bootcs {
74 status = "okay";
75
76 /* Device Bus parameters are required */
77
78 /* Read parameters */
79 devbus,bus-width = <16>;
80 devbus,turn-off-ps = <60000>;
81 devbus,badr-skew-ps = <0>;
82 devbus,acc-first-ps = <124000>;
83 devbus,acc-next-ps = <248000>;
84 devbus,rd-setup-ps = <0>;
85 devbus,rd-hold-ps = <0>;
86
87 /* Write parameters */
88 devbus,sync-enable = <0>;
89 devbus,wr-high-ps = <60000>;
90 devbus,wr-low-ps = <60000>;
91 devbus,ale-wr-ps = <60000>;
92};
93
94&uart0 {
95 status = "okay";
96};
97
98&uart1 {
99 status = "okay";
100};
101
102&i2c0 {
103 clock-frequency = <100000>;
104 status = "okay";
105};
106
107&nand {
108 status = "okay";
109 num-cs = <1>;
110 marvell,nand-keep-config;
111 marvell,nand-enable-arbiter;
112 nand-on-flash-bbt;
113 nand-ecc-strength = <4>;
114 nand-ecc-step-size = <512>;
115};
116
117&spi0 {
118 status = "okay";
119
120 spi-flash@0 {
121 #address-cells = <1>;
122 #size-cells = <1>;
123 compatible = "m25p64";
124 reg = <0>; /* Chip select 0 */
125 spi-max-frequency = <20000000>;
126 m25p,fast-read;
127
128 partition@u-boot {
129 reg = <0x00000000 0x00100000>;
130 label = "u-boot";
131 };
132 partition@u-boot-env {
133 reg = <0x00100000 0x00040000>;
134 label = "u-boot-env";
135 };
136 partition@unused {
137 reg = <0x00140000 0x00ec0000>;
138 label = "unused";
139 };
140
141 };
142};
diff --git a/arch/arm/boot/dts/armada-xp-db.dts b/arch/arm/boot/dts/armada-xp-db.dts
index 44a724d39dbe..a33974254d8c 100644
--- a/arch/arm/boot/dts/armada-xp-db.dts
+++ b/arch/arm/boot/dts/armada-xp-db.dts
@@ -18,17 +18,17 @@
18 * published by the Free Software Foundation; either version 2 of the 18 * published by the Free Software Foundation; either version 2 of the
19 * License, or (at your option) any later version. 19 * License, or (at your option) any later version.
20 * 20 *
21 * This file is distributed in the hope that it will be useful 21 * This file is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of 22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details. 24 * GNU General Public License for more details.
25 * 25 *
26 * Or, alternatively 26 * Or, alternatively,
27 * 27 *
28 * b) Permission is hereby granted, free of charge, to any person 28 * b) Permission is hereby granted, free of charge, to any person
29 * obtaining a copy of this software and associated documentation 29 * obtaining a copy of this software and associated documentation
30 * files (the "Software"), to deal in the Software without 30 * files (the "Software"), to deal in the Software without
31 * restriction, including without limitation the rights to use 31 * restriction, including without limitation the rights to use,
32 * copy, modify, merge, publish, distribute, sublicense, and/or 32 * copy, modify, merge, publish, distribute, sublicense, and/or
33 * sell copies of the Software, and to permit persons to whom the 33 * sell copies of the Software, and to permit persons to whom the
34 * Software is furnished to do so, subject to the following 34 * Software is furnished to do so, subject to the following
@@ -37,11 +37,11 @@
37 * The above copyright notice and this permission notice shall be 37 * The above copyright notice and this permission notice shall be
38 * included in all copies or substantial portions of the Software. 38 * included in all copies or substantial portions of the Software.
39 * 39 *
40 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 40 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
41 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 41 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
42 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 42 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
43 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 43 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
44 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 44 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
45 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 45 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
46 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 46 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
47 * OTHER DEALINGS IN THE SOFTWARE. 47 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-xp-gp.dts b/arch/arm/boot/dts/armada-xp-gp.dts
index 72cb8fa377e3..d62bf7bea1df 100644
--- a/arch/arm/boot/dts/armada-xp-gp.dts
+++ b/arch/arm/boot/dts/armada-xp-gp.dts
@@ -18,17 +18,17 @@
18 * published by the Free Software Foundation; either version 2 of the 18 * published by the Free Software Foundation; either version 2 of the
19 * License, or (at your option) any later version. 19 * License, or (at your option) any later version.
20 * 20 *
21 * This file is distributed in the hope that it will be useful 21 * This file is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of 22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details. 24 * GNU General Public License for more details.
25 * 25 *
26 * Or, alternatively 26 * Or, alternatively,
27 * 27 *
28 * b) Permission is hereby granted, free of charge, to any person 28 * b) Permission is hereby granted, free of charge, to any person
29 * obtaining a copy of this software and associated documentation 29 * obtaining a copy of this software and associated documentation
30 * files (the "Software"), to deal in the Software without 30 * files (the "Software"), to deal in the Software without
31 * restriction, including without limitation the rights to use 31 * restriction, including without limitation the rights to use,
32 * copy, modify, merge, publish, distribute, sublicense, and/or 32 * copy, modify, merge, publish, distribute, sublicense, and/or
33 * sell copies of the Software, and to permit persons to whom the 33 * sell copies of the Software, and to permit persons to whom the
34 * Software is furnished to do so, subject to the following 34 * Software is furnished to do so, subject to the following
@@ -37,11 +37,11 @@
37 * The above copyright notice and this permission notice shall be 37 * The above copyright notice and this permission notice shall be
38 * included in all copies or substantial portions of the Software. 38 * included in all copies or substantial portions of the Software.
39 * 39 *
40 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 40 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
41 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 41 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
42 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 42 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
43 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 43 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
44 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 44 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
45 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 45 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
46 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 46 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
47 * OTHER DEALINGS IN THE SOFTWARE. 47 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts b/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts
index d848ae9007db..ce0afba1ce58 100644
--- a/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts
+++ b/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts
@@ -13,17 +13,17 @@
13 * published by the Free Software Foundation; either version 2 of the 13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version. 14 * License, or (at your option) any later version.
15 * 15 *
16 * This file is distributed in the hope that it will be useful 16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details. 19 * GNU General Public License for more details.
20 * 20 *
21 * Or, alternatively 21 * Or, alternatively,
22 * 22 *
23 * b) Permission is hereby granted, free of charge, to any person 23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation 24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without 25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use 26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or 27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the 28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following 29 * Software is furnished to do so, subject to the following
@@ -32,11 +32,11 @@
32 * The above copyright notice and this permission notice shall be 32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software. 33 * included in all copies or substantial portions of the Software.
34 * 34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
index 83ac884c0f8a..42ea8764814c 100644
--- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
@@ -302,6 +302,8 @@
302 }; 302 };
303 303
304 dsa { 304 dsa {
305 status = "disabled";
306
305 compatible = "marvell,dsa"; 307 compatible = "marvell,dsa";
306 #address-cells = <2>; 308 #address-cells = <2>;
307 #size-cells = <0>; 309 #size-cells = <0>;
@@ -398,3 +400,54 @@
398 spi-max-frequency = <40000000>; 400 spi-max-frequency = <40000000>;
399 }; 401 };
400}; 402};
403
404&mdio {
405 status = "okay";
406
407 switch@0 {
408 compatible = "marvell,mv88e6085";
409 #address-cells = <1>;
410 #size-cells = <0>;
411 reg = <0>;
412
413 ports {
414 #address-cells = <1>;
415 #size-cells = <0>;
416
417 port@0 {
418 reg = <0>;
419 label = "lan4";
420 };
421
422 port@1 {
423 reg = <1>;
424 label = "lan3";
425 };
426
427 port@2 {
428 reg = <2>;
429 label = "lan2";
430 };
431
432 port@3 {
433 reg = <3>;
434 label = "lan1";
435 };
436
437 port@4 {
438 reg = <4>;
439 label = "internet";
440 };
441
442 port@5 {
443 reg = <5>;
444 label = "cpu";
445 ethernet = <&eth0>;
446 fixed-link {
447 speed = <1000>;
448 full-duplex;
449 };
450 };
451 };
452 };
453};
diff --git a/arch/arm/boot/dts/armada-xp-matrix.dts b/arch/arm/boot/dts/armada-xp-matrix.dts
index 16277380e714..977f6b3fc1f8 100644
--- a/arch/arm/boot/dts/armada-xp-matrix.dts
+++ b/arch/arm/boot/dts/armada-xp-matrix.dts
@@ -15,17 +15,17 @@
15 * published by the Free Software Foundation; either version 2 of the 15 * published by the Free Software Foundation; either version 2 of the
16 * License, or (at your option) any later version. 16 * License, or (at your option) any later version.
17 * 17 *
18 * This file is distributed in the hope that it will be useful 18 * This file is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details. 21 * GNU General Public License for more details.
22 * 22 *
23 * Or, alternatively 23 * Or, alternatively,
24 * 24 *
25 * b) Permission is hereby granted, free of charge, to any person 25 * b) Permission is hereby granted, free of charge, to any person
26 * obtaining a copy of this software and associated documentation 26 * obtaining a copy of this software and associated documentation
27 * files (the "Software"), to deal in the Software without 27 * files (the "Software"), to deal in the Software without
28 * restriction, including without limitation the rights to use 28 * restriction, including without limitation the rights to use,
29 * copy, modify, merge, publish, distribute, sublicense, and/or 29 * copy, modify, merge, publish, distribute, sublicense, and/or
30 * sell copies of the Software, and to permit persons to whom the 30 * sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following 31 * Software is furnished to do so, subject to the following
@@ -34,11 +34,11 @@
34 * The above copyright notice and this permission notice shall be 34 * The above copyright notice and this permission notice shall be
35 * included in all copies or substantial portions of the Software. 35 * included in all copies or substantial portions of the Software.
36 * 36 *
37 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 37 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 * OTHER DEALINGS IN THE SOFTWARE. 44 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-xp-mv78230.dtsi b/arch/arm/boot/dts/armada-xp-mv78230.dtsi
index 05c164b5786d..07c5090ecd29 100644
--- a/arch/arm/boot/dts/armada-xp-mv78230.dtsi
+++ b/arch/arm/boot/dts/armada-xp-mv78230.dtsi
@@ -15,17 +15,17 @@
15 * published by the Free Software Foundation; either version 2 of the 15 * published by the Free Software Foundation; either version 2 of the
16 * License, or (at your option) any later version. 16 * License, or (at your option) any later version.
17 * 17 *
18 * This file is distributed in the hope that it will be useful 18 * This file is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details. 21 * GNU General Public License for more details.
22 * 22 *
23 * Or, alternatively 23 * Or, alternatively,
24 * 24 *
25 * b) Permission is hereby granted, free of charge, to any person 25 * b) Permission is hereby granted, free of charge, to any person
26 * obtaining a copy of this software and associated documentation 26 * obtaining a copy of this software and associated documentation
27 * files (the "Software"), to deal in the Software without 27 * files (the "Software"), to deal in the Software without
28 * restriction, including without limitation the rights to use 28 * restriction, including without limitation the rights to use,
29 * copy, modify, merge, publish, distribute, sublicense, and/or 29 * copy, modify, merge, publish, distribute, sublicense, and/or
30 * sell copies of the Software, and to permit persons to whom the 30 * sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following 31 * Software is furnished to do so, subject to the following
@@ -34,11 +34,11 @@
34 * The above copyright notice and this permission notice shall be 34 * The above copyright notice and this permission notice shall be
35 * included in all copies or substantial portions of the Software. 35 * included in all copies or substantial portions of the Software.
36 * 36 *
37 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 37 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 * OTHER DEALINGS IN THE SOFTWARE. 44 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-xp-mv78260.dtsi b/arch/arm/boot/dts/armada-xp-mv78260.dtsi
index 07894b0d3e59..64e936ae7b22 100644
--- a/arch/arm/boot/dts/armada-xp-mv78260.dtsi
+++ b/arch/arm/boot/dts/armada-xp-mv78260.dtsi
@@ -15,17 +15,17 @@
15 * published by the Free Software Foundation; either version 2 of the 15 * published by the Free Software Foundation; either version 2 of the
16 * License, or (at your option) any later version. 16 * License, or (at your option) any later version.
17 * 17 *
18 * This file is distributed in the hope that it will be useful 18 * This file is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details. 21 * GNU General Public License for more details.
22 * 22 *
23 * Or, alternatively 23 * Or, alternatively,
24 * 24 *
25 * b) Permission is hereby granted, free of charge, to any person 25 * b) Permission is hereby granted, free of charge, to any person
26 * obtaining a copy of this software and associated documentation 26 * obtaining a copy of this software and associated documentation
27 * files (the "Software"), to deal in the Software without 27 * files (the "Software"), to deal in the Software without
28 * restriction, including without limitation the rights to use 28 * restriction, including without limitation the rights to use,
29 * copy, modify, merge, publish, distribute, sublicense, and/or 29 * copy, modify, merge, publish, distribute, sublicense, and/or
30 * sell copies of the Software, and to permit persons to whom the 30 * sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following 31 * Software is furnished to do so, subject to the following
@@ -34,11 +34,11 @@
34 * The above copyright notice and this permission notice shall be 34 * The above copyright notice and this permission notice shall be
35 * included in all copies or substantial portions of the Software. 35 * included in all copies or substantial portions of the Software.
36 * 36 *
37 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 37 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 * OTHER DEALINGS IN THE SOFTWARE. 44 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-xp-mv78460.dtsi b/arch/arm/boot/dts/armada-xp-mv78460.dtsi
index 775bee53ce86..d1383dde43eb 100644
--- a/arch/arm/boot/dts/armada-xp-mv78460.dtsi
+++ b/arch/arm/boot/dts/armada-xp-mv78460.dtsi
@@ -15,17 +15,17 @@
15 * published by the Free Software Foundation; either version 2 of the 15 * published by the Free Software Foundation; either version 2 of the
16 * License, or (at your option) any later version. 16 * License, or (at your option) any later version.
17 * 17 *
18 * This file is distributed in the hope that it will be useful 18 * This file is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details. 21 * GNU General Public License for more details.
22 * 22 *
23 * Or, alternatively 23 * Or, alternatively,
24 * 24 *
25 * b) Permission is hereby granted, free of charge, to any person 25 * b) Permission is hereby granted, free of charge, to any person
26 * obtaining a copy of this software and associated documentation 26 * obtaining a copy of this software and associated documentation
27 * files (the "Software"), to deal in the Software without 27 * files (the "Software"), to deal in the Software without
28 * restriction, including without limitation the rights to use 28 * restriction, including without limitation the rights to use,
29 * copy, modify, merge, publish, distribute, sublicense, and/or 29 * copy, modify, merge, publish, distribute, sublicense, and/or
30 * sell copies of the Software, and to permit persons to whom the 30 * sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following 31 * Software is furnished to do so, subject to the following
@@ -34,11 +34,11 @@
34 * The above copyright notice and this permission notice shall be 34 * The above copyright notice and this permission notice shall be
35 * included in all copies or substantial portions of the Software. 35 * included in all copies or substantial portions of the Software.
36 * 36 *
37 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 37 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 * OTHER DEALINGS IN THE SOFTWARE. 44 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts b/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts
index a2f0e789465d..40c6fe21e720 100644
--- a/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts
+++ b/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts
@@ -13,17 +13,17 @@
13 * published by the Free Software Foundation; either version 2 of the 13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version. 14 * License, or (at your option) any later version.
15 * 15 *
16 * This file is distributed in the hope that it will be useful 16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details. 19 * GNU General Public License for more details.
20 * 20 *
21 * Or, alternatively 21 * Or, alternatively,
22 * 22 *
23 * b) Permission is hereby granted, free of charge, to any person 23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation 24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without 25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use 26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or 27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the 28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following 29 * Software is furnished to do so, subject to the following
@@ -32,11 +32,11 @@
32 * The above copyright notice and this permission notice shall be 32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software. 33 * included in all copies or substantial portions of the Software.
34 * 34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
index b577c9fb03a4..66b78131a038 100644
--- a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
+++ b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
@@ -15,17 +15,17 @@
15 * published by the Free Software Foundation; either version 2 of the 15 * published by the Free Software Foundation; either version 2 of the
16 * License, or (at your option) any later version. 16 * License, or (at your option) any later version.
17 * 17 *
18 * This file is distributed in the hope that it will be useful 18 * This file is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details. 21 * GNU General Public License for more details.
22 * 22 *
23 * Or, alternatively 23 * Or, alternatively,
24 * 24 *
25 * b) Permission is hereby granted, free of charge, to any person 25 * b) Permission is hereby granted, free of charge, to any person
26 * obtaining a copy of this software and associated documentation 26 * obtaining a copy of this software and associated documentation
27 * files (the "Software"), to deal in the Software without 27 * files (the "Software"), to deal in the Software without
28 * restriction, including without limitation the rights to use 28 * restriction, including without limitation the rights to use,
29 * copy, modify, merge, publish, distribute, sublicense, and/or 29 * copy, modify, merge, publish, distribute, sublicense, and/or
30 * sell copies of the Software, and to permit persons to whom the 30 * sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following 31 * Software is furnished to do so, subject to the following
@@ -34,11 +34,11 @@
34 * The above copyright notice and this permission notice shall be 34 * The above copyright notice and this permission notice shall be
35 * included in all copies or substantial portions of the Software. 35 * included in all copies or substantial portions of the Software.
36 * 36 *
37 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 37 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 * OTHER DEALINGS IN THE SOFTWARE. 44 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-xp-synology-ds414.dts b/arch/arm/boot/dts/armada-xp-synology-ds414.dts
index e803da03146a..d8e05bab0cee 100644
--- a/arch/arm/boot/dts/armada-xp-synology-ds414.dts
+++ b/arch/arm/boot/dts/armada-xp-synology-ds414.dts
@@ -13,17 +13,17 @@
13 * published by the Free Software Foundation; either version 2 of the 13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version. 14 * License, or (at your option) any later version.
15 * 15 *
16 * This file is distributed in the hope that it will be useful 16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details. 19 * GNU General Public License for more details.
20 * 20 *
21 * Or, alternatively 21 * Or, alternatively,
22 * 22 *
23 * b) Permission is hereby granted, free of charge, to any person 23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation 24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without 25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use 26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or 27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the 28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following 29 * Software is furnished to do so, subject to the following
@@ -32,11 +32,11 @@
32 * The above copyright notice and this permission notice shall be 32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software. 33 * included in all copies or substantial portions of the Software.
34 * 34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi
index 5274e4ff5d62..fa1e881266ac 100644
--- a/arch/arm/boot/dts/armada-xp.dtsi
+++ b/arch/arm/boot/dts/armada-xp.dtsi
@@ -18,17 +18,17 @@
18 * published by the Free Software Foundation; either version 2 of the 18 * published by the Free Software Foundation; either version 2 of the
19 * License, or (at your option) any later version. 19 * License, or (at your option) any later version.
20 * 20 *
21 * This file is distributed in the hope that it will be useful 21 * This file is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of 22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details. 24 * GNU General Public License for more details.
25 * 25 *
26 * Or, alternatively 26 * Or, alternatively,
27 * 27 *
28 * b) Permission is hereby granted, free of charge, to any person 28 * b) Permission is hereby granted, free of charge, to any person
29 * obtaining a copy of this software and associated documentation 29 * obtaining a copy of this software and associated documentation
30 * files (the "Software"), to deal in the Software without 30 * files (the "Software"), to deal in the Software without
31 * restriction, including without limitation the rights to use 31 * restriction, including without limitation the rights to use,
32 * copy, modify, merge, publish, distribute, sublicense, and/or 32 * copy, modify, merge, publish, distribute, sublicense, and/or
33 * sell copies of the Software, and to permit persons to whom the 33 * sell copies of the Software, and to permit persons to whom the
34 * Software is furnished to do so, subject to the following 34 * Software is furnished to do so, subject to the following
@@ -37,11 +37,11 @@
37 * The above copyright notice and this permission notice shall be 37 * The above copyright notice and this permission notice shall be
38 * included in all copies or substantial portions of the Software. 38 * included in all copies or substantial portions of the Software.
39 * 39 *
40 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 40 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
41 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 41 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
42 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 42 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
43 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 43 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
44 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 44 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
45 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 45 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
46 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 46 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
47 * OTHER DEALINGS IN THE SOFTWARE. 47 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/aspeed-ast2500-evb.dts b/arch/arm/boot/dts/aspeed-ast2500-evb.dts
index 1b7a5ff0e533..d967603dade8 100644
--- a/arch/arm/boot/dts/aspeed-ast2500-evb.dts
+++ b/arch/arm/boot/dts/aspeed-ast2500-evb.dts
@@ -23,3 +23,17 @@
23&uart5 { 23&uart5 {
24 status = "okay"; 24 status = "okay";
25}; 25};
26
27&mac0 {
28 status = "okay";
29
30 pinctrl-names = "default";
31 pinctrl-0 = <&pinctrl_rgmii1_default &pinctrl_mdio1_default>;
32};
33
34&mac1 {
35 status = "okay";
36
37 pinctrl-names = "default";
38 pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>;
39};
diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts b/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts
index cc5fcf2940bf..1d2fc1e1dc29 100644
--- a/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts
+++ b/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts
@@ -12,14 +12,34 @@
12 12
13 chosen { 13 chosen {
14 stdout-path = &uart5; 14 stdout-path = &uart5;
15 bootargs = "console=ttyS4,38400 earlyprintk"; 15 bootargs = "console=ttyS4,115200 earlyprintk";
16 }; 16 };
17 17
18 memory { 18 memory {
19 reg = <0x40000000 0x10000000>; 19 reg = <0x40000000 0x20000000>;
20 };
21
22 reserved-memory {
23 #address-cells = <1>;
24 #size-cells = <1>;
25 ranges;
26
27 vga_memory: framebuffer@5f000000 {
28 no-map;
29 reg = <0x5f000000 0x01000000>; /* 16M */
30 };
20 }; 31 };
21}; 32};
22 33
23&uart5 { 34&uart5 {
24 status = "okay"; 35 status = "okay";
25}; 36};
37
38&mac0 {
39 status = "okay";
40
41 use-ncsi;
42
43 pinctrl-names = "default";
44 pinctrl-0 = <&pinctrl_rmii1_default>;
45};
diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts b/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts
new file mode 100644
index 000000000000..7a3b2b50c884
--- /dev/null
+++ b/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts
@@ -0,0 +1,45 @@
1/dts-v1/;
2
3#include "aspeed-g5.dtsi"
4
5/ {
6 model = "Romulus BMC";
7 compatible = "ibm,romulus-bmc", "aspeed,ast2500";
8
9 aliases {
10 serial4 = &uart5;
11 };
12
13 chosen {
14 stdout-path = &uart5;
15 bootargs = "console=ttyS4,115200 earlyprintk";
16 };
17
18 memory {
19 reg = <0x80000000 0x40000000>;
20 };
21
22 reserved-memory {
23 #address-cells = <1>;
24 #size-cells = <1>;
25 ranges;
26
27 vga_memory: framebuffer@bf000000 {
28 no-map;
29 reg = <0xbf000000 0x01000000>; /* 16M */
30 };
31 };
32};
33
34&uart5 {
35 status = "okay";
36};
37
38&mac0 {
39 status = "okay";
40
41 use-ncsi;
42
43 pinctrl-names = "default";
44 pinctrl-0 = <&pinctrl_rmii1_default>;
45};
diff --git a/arch/arm/boot/dts/aspeed-g4.dtsi b/arch/arm/boot/dts/aspeed-g4.dtsi
index 22dee5937d5c..0b4932cc02a8 100644
--- a/arch/arm/boot/dts/aspeed-g4.dtsi
+++ b/arch/arm/boot/dts/aspeed-g4.dtsi
@@ -41,6 +41,22 @@
41 reg = <0x1e6c0080 0x80>; 41 reg = <0x1e6c0080 0x80>;
42 }; 42 };
43 43
44 mac0: ethernet@1e660000 {
45 compatible = "faraday,ftgmac100";
46 reg = <0x1e660000 0x180>;
47 interrupts = <2>;
48 no-hw-checksum;
49 status = "disabled";
50 };
51
52 mac1: ethernet@1e680000 {
53 compatible = "faraday,ftgmac100";
54 reg = <0x1e680000 0x180>;
55 interrupts = <3>;
56 no-hw-checksum;
57 status = "disabled";
58 };
59
44 apb { 60 apb {
45 compatible = "simple-bus"; 61 compatible = "simple-bus";
46 #address-cells = <1>; 62 #address-cells = <1>;
@@ -54,6 +70,756 @@
54 clocks = <&clk_clkin>; 70 clocks = <&clk_clkin>;
55 }; 71 };
56 72
73 syscon: syscon@1e6e2000 {
74 compatible = "aspeed,g4-scu", "syscon", "simple-mfd";
75 reg = <0x1e6e2000 0x1a8>;
76
77 pinctrl: pinctrl {
78 compatible = "aspeed,g4-pinctrl";
79
80 pinctrl_acpi_default: acpi_default {
81 function = "ACPI";
82 groups = "ACPI";
83 };
84
85 pinctrl_adc0_default: adc0_default {
86 function = "ADC0";
87 groups = "ADC0";
88 };
89
90 pinctrl_adc1_default: adc1_default {
91 function = "ADC1";
92 groups = "ADC1";
93 };
94
95 pinctrl_adc10_default: adc10_default {
96 function = "ADC10";
97 groups = "ADC10";
98 };
99
100 pinctrl_adc11_default: adc11_default {
101 function = "ADC11";
102 groups = "ADC11";
103 };
104
105 pinctrl_adc12_default: adc12_default {
106 function = "ADC12";
107 groups = "ADC12";
108 };
109
110 pinctrl_adc13_default: adc13_default {
111 function = "ADC13";
112 groups = "ADC13";
113 };
114
115 pinctrl_adc14_default: adc14_default {
116 function = "ADC14";
117 groups = "ADC14";
118 };
119
120 pinctrl_adc15_default: adc15_default {
121 function = "ADC15";
122 groups = "ADC15";
123 };
124
125 pinctrl_adc2_default: adc2_default {
126 function = "ADC2";
127 groups = "ADC2";
128 };
129
130 pinctrl_adc3_default: adc3_default {
131 function = "ADC3";
132 groups = "ADC3";
133 };
134
135 pinctrl_adc4_default: adc4_default {
136 function = "ADC4";
137 groups = "ADC4";
138 };
139
140 pinctrl_adc5_default: adc5_default {
141 function = "ADC5";
142 groups = "ADC5";
143 };
144
145 pinctrl_adc6_default: adc6_default {
146 function = "ADC6";
147 groups = "ADC6";
148 };
149
150 pinctrl_adc7_default: adc7_default {
151 function = "ADC7";
152 groups = "ADC7";
153 };
154
155 pinctrl_adc8_default: adc8_default {
156 function = "ADC8";
157 groups = "ADC8";
158 };
159
160 pinctrl_adc9_default: adc9_default {
161 function = "ADC9";
162 groups = "ADC9";
163 };
164
165 pinctrl_bmcint_default: bmcint_default {
166 function = "BMCINT";
167 groups = "BMCINT";
168 };
169
170 pinctrl_ddcclk_default: ddcclk_default {
171 function = "DDCCLK";
172 groups = "DDCCLK";
173 };
174
175 pinctrl_ddcdat_default: ddcdat_default {
176 function = "DDCDAT";
177 groups = "DDCDAT";
178 };
179
180 pinctrl_extrst_default: extrst_default {
181 function = "EXTRST";
182 groups = "EXTRST";
183 };
184
185 pinctrl_flack_default: flack_default {
186 function = "FLACK";
187 groups = "FLACK";
188 };
189
190 pinctrl_flbusy_default: flbusy_default {
191 function = "FLBUSY";
192 groups = "FLBUSY";
193 };
194
195 pinctrl_flwp_default: flwp_default {
196 function = "FLWP";
197 groups = "FLWP";
198 };
199
200 pinctrl_gpid_default: gpid_default {
201 function = "GPID";
202 groups = "GPID";
203 };
204
205 pinctrl_gpid0_default: gpid0_default {
206 function = "GPID0";
207 groups = "GPID0";
208 };
209
210 pinctrl_gpid2_default: gpid2_default {
211 function = "GPID2";
212 groups = "GPID2";
213 };
214
215 pinctrl_gpid4_default: gpid4_default {
216 function = "GPID4";
217 groups = "GPID4";
218 };
219
220 pinctrl_gpid6_default: gpid6_default {
221 function = "GPID6";
222 groups = "GPID6";
223 };
224
225 pinctrl_gpie0_default: gpie0_default {
226 function = "GPIE0";
227 groups = "GPIE0";
228 };
229
230 pinctrl_gpie2_default: gpie2_default {
231 function = "GPIE2";
232 groups = "GPIE2";
233 };
234
235 pinctrl_gpie4_default: gpie4_default {
236 function = "GPIE4";
237 groups = "GPIE4";
238 };
239
240 pinctrl_gpie6_default: gpie6_default {
241 function = "GPIE6";
242 groups = "GPIE6";
243 };
244
245 pinctrl_i2c10_default: i2c10_default {
246 function = "I2C10";
247 groups = "I2C10";
248 };
249
250 pinctrl_i2c11_default: i2c11_default {
251 function = "I2C11";
252 groups = "I2C11";
253 };
254
255 pinctrl_i2c12_default: i2c12_default {
256 function = "I2C12";
257 groups = "I2C12";
258 };
259
260 pinctrl_i2c13_default: i2c13_default {
261 function = "I2C13";
262 groups = "I2C13";
263 };
264
265 pinctrl_i2c14_default: i2c14_default {
266 function = "I2C14";
267 groups = "I2C14";
268 };
269
270 pinctrl_i2c3_default: i2c3_default {
271 function = "I2C3";
272 groups = "I2C3";
273 };
274
275 pinctrl_i2c4_default: i2c4_default {
276 function = "I2C4";
277 groups = "I2C4";
278 };
279
280 pinctrl_i2c5_default: i2c5_default {
281 function = "I2C5";
282 groups = "I2C5";
283 };
284
285 pinctrl_i2c6_default: i2c6_default {
286 function = "I2C6";
287 groups = "I2C6";
288 };
289
290 pinctrl_i2c7_default: i2c7_default {
291 function = "I2C7";
292 groups = "I2C7";
293 };
294
295 pinctrl_i2c8_default: i2c8_default {
296 function = "I2C8";
297 groups = "I2C8";
298 };
299
300 pinctrl_i2c9_default: i2c9_default {
301 function = "I2C9";
302 groups = "I2C9";
303 };
304
305 pinctrl_lpcpd_default: lpcpd_default {
306 function = "LPCPD";
307 groups = "LPCPD";
308 };
309
310 pinctrl_lpcpme_default: lpcpme_default {
311 function = "LPCPME";
312 groups = "LPCPME";
313 };
314
315 pinctrl_lpcrst_default: lpcrst_default {
316 function = "LPCRST";
317 groups = "LPCRST";
318 };
319
320 pinctrl_lpcsmi_default: lpcsmi_default {
321 function = "LPCSMI";
322 groups = "LPCSMI";
323 };
324
325 pinctrl_mac1link_default: mac1link_default {
326 function = "MAC1LINK";
327 groups = "MAC1LINK";
328 };
329
330 pinctrl_mac2link_default: mac2link_default {
331 function = "MAC2LINK";
332 groups = "MAC2LINK";
333 };
334
335 pinctrl_mdio1_default: mdio1_default {
336 function = "MDIO1";
337 groups = "MDIO1";
338 };
339
340 pinctrl_mdio2_default: mdio2_default {
341 function = "MDIO2";
342 groups = "MDIO2";
343 };
344
345 pinctrl_ncts1_default: ncts1_default {
346 function = "NCTS1";
347 groups = "NCTS1";
348 };
349
350 pinctrl_ncts2_default: ncts2_default {
351 function = "NCTS2";
352 groups = "NCTS2";
353 };
354
355 pinctrl_ncts3_default: ncts3_default {
356 function = "NCTS3";
357 groups = "NCTS3";
358 };
359
360 pinctrl_ncts4_default: ncts4_default {
361 function = "NCTS4";
362 groups = "NCTS4";
363 };
364
365 pinctrl_ndcd1_default: ndcd1_default {
366 function = "NDCD1";
367 groups = "NDCD1";
368 };
369
370 pinctrl_ndcd2_default: ndcd2_default {
371 function = "NDCD2";
372 groups = "NDCD2";
373 };
374
375 pinctrl_ndcd3_default: ndcd3_default {
376 function = "NDCD3";
377 groups = "NDCD3";
378 };
379
380 pinctrl_ndcd4_default: ndcd4_default {
381 function = "NDCD4";
382 groups = "NDCD4";
383 };
384
385 pinctrl_ndsr1_default: ndsr1_default {
386 function = "NDSR1";
387 groups = "NDSR1";
388 };
389
390 pinctrl_ndsr2_default: ndsr2_default {
391 function = "NDSR2";
392 groups = "NDSR2";
393 };
394
395 pinctrl_ndsr3_default: ndsr3_default {
396 function = "NDSR3";
397 groups = "NDSR3";
398 };
399
400 pinctrl_ndsr4_default: ndsr4_default {
401 function = "NDSR4";
402 groups = "NDSR4";
403 };
404
405 pinctrl_ndtr1_default: ndtr1_default {
406 function = "NDTR1";
407 groups = "NDTR1";
408 };
409
410 pinctrl_ndtr2_default: ndtr2_default {
411 function = "NDTR2";
412 groups = "NDTR2";
413 };
414
415 pinctrl_ndtr3_default: ndtr3_default {
416 function = "NDTR3";
417 groups = "NDTR3";
418 };
419
420 pinctrl_ndtr4_default: ndtr4_default {
421 function = "NDTR4";
422 groups = "NDTR4";
423 };
424
425 pinctrl_ndts4_default: ndts4_default {
426 function = "NDTS4";
427 groups = "NDTS4";
428 };
429
430 pinctrl_nri1_default: nri1_default {
431 function = "NRI1";
432 groups = "NRI1";
433 };
434
435 pinctrl_nri2_default: nri2_default {
436 function = "NRI2";
437 groups = "NRI2";
438 };
439
440 pinctrl_nri3_default: nri3_default {
441 function = "NRI3";
442 groups = "NRI3";
443 };
444
445 pinctrl_nri4_default: nri4_default {
446 function = "NRI4";
447 groups = "NRI4";
448 };
449
450 pinctrl_nrts1_default: nrts1_default {
451 function = "NRTS1";
452 groups = "NRTS1";
453 };
454
455 pinctrl_nrts2_default: nrts2_default {
456 function = "NRTS2";
457 groups = "NRTS2";
458 };
459
460 pinctrl_nrts3_default: nrts3_default {
461 function = "NRTS3";
462 groups = "NRTS3";
463 };
464
465 pinctrl_oscclk_default: oscclk_default {
466 function = "OSCCLK";
467 groups = "OSCCLK";
468 };
469
470 pinctrl_pwm0_default: pwm0_default {
471 function = "PWM0";
472 groups = "PWM0";
473 };
474
475 pinctrl_pwm1_default: pwm1_default {
476 function = "PWM1";
477 groups = "PWM1";
478 };
479
480 pinctrl_pwm2_default: pwm2_default {
481 function = "PWM2";
482 groups = "PWM2";
483 };
484
485 pinctrl_pwm3_default: pwm3_default {
486 function = "PWM3";
487 groups = "PWM3";
488 };
489
490 pinctrl_pwm4_default: pwm4_default {
491 function = "PWM4";
492 groups = "PWM4";
493 };
494
495 pinctrl_pwm5_default: pwm5_default {
496 function = "PWM5";
497 groups = "PWM5";
498 };
499
500 pinctrl_pwm6_default: pwm6_default {
501 function = "PWM6";
502 groups = "PWM6";
503 };
504
505 pinctrl_pwm7_default: pwm7_default {
506 function = "PWM7";
507 groups = "PWM7";
508 };
509
510 pinctrl_rgmii1_default: rgmii1_default {
511 function = "RGMII1";
512 groups = "RGMII1";
513 };
514
515 pinctrl_rgmii2_default: rgmii2_default {
516 function = "RGMII2";
517 groups = "RGMII2";
518 };
519
520 pinctrl_rmii1_default: rmii1_default {
521 function = "RMII1";
522 groups = "RMII1";
523 };
524
525 pinctrl_rmii2_default: rmii2_default {
526 function = "RMII2";
527 groups = "RMII2";
528 };
529
530 pinctrl_rom16_default: rom16_default {
531 function = "ROM16";
532 groups = "ROM16";
533 };
534
535 pinctrl_rom8_default: rom8_default {
536 function = "ROM8";
537 groups = "ROM8";
538 };
539
540 pinctrl_romcs1_default: romcs1_default {
541 function = "ROMCS1";
542 groups = "ROMCS1";
543 };
544
545 pinctrl_romcs2_default: romcs2_default {
546 function = "ROMCS2";
547 groups = "ROMCS2";
548 };
549
550 pinctrl_romcs3_default: romcs3_default {
551 function = "ROMCS3";
552 groups = "ROMCS3";
553 };
554
555 pinctrl_romcs4_default: romcs4_default {
556 function = "ROMCS4";
557 groups = "ROMCS4";
558 };
559
560 pinctrl_rxd1_default: rxd1_default {
561 function = "RXD1";
562 groups = "RXD1";
563 };
564
565 pinctrl_rxd2_default: rxd2_default {
566 function = "RXD2";
567 groups = "RXD2";
568 };
569
570 pinctrl_rxd3_default: rxd3_default {
571 function = "RXD3";
572 groups = "RXD3";
573 };
574
575 pinctrl_rxd4_default: rxd4_default {
576 function = "RXD4";
577 groups = "RXD4";
578 };
579
580 pinctrl_salt1_default: salt1_default {
581 function = "SALT1";
582 groups = "SALT1";
583 };
584
585 pinctrl_salt2_default: salt2_default {
586 function = "SALT2";
587 groups = "SALT2";
588 };
589
590 pinctrl_salt3_default: salt3_default {
591 function = "SALT3";
592 groups = "SALT3";
593 };
594
595 pinctrl_salt4_default: salt4_default {
596 function = "SALT4";
597 groups = "SALT4";
598 };
599
600 pinctrl_sd1_default: sd1_default {
601 function = "SD1";
602 groups = "SD1";
603 };
604
605 pinctrl_sd2_default: sd2_default {
606 function = "SD2";
607 groups = "SD2";
608 };
609
610 pinctrl_sgpmck_default: sgpmck_default {
611 function = "SGPMCK";
612 groups = "SGPMCK";
613 };
614
615 pinctrl_sgpmi_default: sgpmi_default {
616 function = "SGPMI";
617 groups = "SGPMI";
618 };
619
620 pinctrl_sgpmld_default: sgpmld_default {
621 function = "SGPMLD";
622 groups = "SGPMLD";
623 };
624
625 pinctrl_sgpmo_default: sgpmo_default {
626 function = "SGPMO";
627 groups = "SGPMO";
628 };
629
630 pinctrl_sgpsck_default: sgpsck_default {
631 function = "SGPSCK";
632 groups = "SGPSCK";
633 };
634
635 pinctrl_sgpsi0_default: sgpsi0_default {
636 function = "SGPSI0";
637 groups = "SGPSI0";
638 };
639
640 pinctrl_sgpsi1_default: sgpsi1_default {
641 function = "SGPSI1";
642 groups = "SGPSI1";
643 };
644
645 pinctrl_sgpsld_default: sgpsld_default {
646 function = "SGPSLD";
647 groups = "SGPSLD";
648 };
649
650 pinctrl_sioonctrl_default: sioonctrl_default {
651 function = "SIOONCTRL";
652 groups = "SIOONCTRL";
653 };
654
655 pinctrl_siopbi_default: siopbi_default {
656 function = "SIOPBI";
657 groups = "SIOPBI";
658 };
659
660 pinctrl_siopbo_default: siopbo_default {
661 function = "SIOPBO";
662 groups = "SIOPBO";
663 };
664
665 pinctrl_siopwreq_default: siopwreq_default {
666 function = "SIOPWREQ";
667 groups = "SIOPWREQ";
668 };
669
670 pinctrl_siopwrgd_default: siopwrgd_default {
671 function = "SIOPWRGD";
672 groups = "SIOPWRGD";
673 };
674
675 pinctrl_sios3_default: sios3_default {
676 function = "SIOS3";
677 groups = "SIOS3";
678 };
679
680 pinctrl_sios5_default: sios5_default {
681 function = "SIOS5";
682 groups = "SIOS5";
683 };
684
685 pinctrl_siosci_default: siosci_default {
686 function = "SIOSCI";
687 groups = "SIOSCI";
688 };
689
690 pinctrl_spi1_default: spi1_default {
691 function = "SPI1";
692 groups = "SPI1";
693 };
694
695 pinctrl_spi1debug_default: spi1debug_default {
696 function = "SPI1DEBUG";
697 groups = "SPI1DEBUG";
698 };
699
700 pinctrl_spi1passthru_default: spi1passthru_default {
701 function = "SPI1PASSTHRU";
702 groups = "SPI1PASSTHRU";
703 };
704
705 pinctrl_spics1_default: spics1_default {
706 function = "SPICS1";
707 groups = "SPICS1";
708 };
709
710 pinctrl_timer3_default: timer3_default {
711 function = "TIMER3";
712 groups = "TIMER3";
713 };
714
715 pinctrl_timer4_default: timer4_default {
716 function = "TIMER4";
717 groups = "TIMER4";
718 };
719
720 pinctrl_timer5_default: timer5_default {
721 function = "TIMER5";
722 groups = "TIMER5";
723 };
724
725 pinctrl_timer6_default: timer6_default {
726 function = "TIMER6";
727 groups = "TIMER6";
728 };
729
730 pinctrl_timer7_default: timer7_default {
731 function = "TIMER7";
732 groups = "TIMER7";
733 };
734
735 pinctrl_timer8_default: timer8_default {
736 function = "TIMER8";
737 groups = "TIMER8";
738 };
739
740 pinctrl_txd1_default: txd1_default {
741 function = "TXD1";
742 groups = "TXD1";
743 };
744
745 pinctrl_txd2_default: txd2_default {
746 function = "TXD2";
747 groups = "TXD2";
748 };
749
750 pinctrl_txd3_default: txd3_default {
751 function = "TXD3";
752 groups = "TXD3";
753 };
754
755 pinctrl_txd4_default: txd4_default {
756 function = "TXD4";
757 groups = "TXD4";
758 };
759
760 pinctrl_uart6_default: uart6_default {
761 function = "UART6";
762 groups = "UART6";
763 };
764
765 pinctrl_usbcki_default: usbcki_default {
766 function = "USBCKI";
767 groups = "USBCKI";
768 };
769
770 pinctrl_vgabios_rom_default: vgabios_rom_default {
771 function = "VGABIOS_ROM";
772 groups = "VGABIOS_ROM";
773 };
774
775 pinctrl_vgahs_default: vgahs_default {
776 function = "VGAHS";
777 groups = "VGAHS";
778 };
779
780 pinctrl_vgavs_default: vgavs_default {
781 function = "VGAVS";
782 groups = "VGAVS";
783 };
784
785 pinctrl_vpi18_default: vpi18_default {
786 function = "VPI18";
787 groups = "VPI18";
788 };
789
790 pinctrl_vpi24_default: vpi24_default {
791 function = "VPI24";
792 groups = "VPI24";
793 };
794
795 pinctrl_vpi30_default: vpi30_default {
796 function = "VPI30";
797 groups = "VPI30";
798 };
799
800 pinctrl_vpo12_default: vpo12_default {
801 function = "VPO12";
802 groups = "VPO12";
803 };
804
805 pinctrl_vpo24_default: vpo24_default {
806 function = "VPO24";
807 groups = "VPO24";
808 };
809
810 pinctrl_wdtrst1_default: wdtrst1_default {
811 function = "WDTRST1";
812 groups = "WDTRST1";
813 };
814
815 pinctrl_wdtrst2_default: wdtrst2_default {
816 function = "WDTRST2";
817 groups = "WDTRST2";
818 };
819
820 };
821 };
822
57 clk_apb: clk_apb@1e6e2008 { 823 clk_apb: clk_apb@1e6e2008 {
58 #clock-cells = <0>; 824 #clock-cells = <0>;
59 compatible = "aspeed,g4-apb-clock"; 825 compatible = "aspeed,g4-apb-clock";
@@ -72,6 +838,16 @@
72 reg = <0x1e720000 0x8000>; // 32K 838 reg = <0x1e720000 0x8000>; // 32K
73 }; 839 };
74 840
841 gpio: gpio@1e780000 {
842 #gpio-cells = <2>;
843 gpio-controller;
844 compatible = "aspeed,ast2400-gpio";
845 reg = <0x1e780000 0x1000>;
846 interrupts = <20>;
847 gpio-ranges = <&pinctrl 0 0 220>;
848 interrupt-controller;
849 };
850
75 timer: timer@1e782000 { 851 timer: timer@1e782000 {
76 compatible = "aspeed,ast2400-timer"; 852 compatible = "aspeed,ast2400-timer";
77 reg = <0x1e782000 0x90>; 853 reg = <0x1e782000 0x90>;
diff --git a/arch/arm/boot/dts/aspeed-g5.dtsi b/arch/arm/boot/dts/aspeed-g5.dtsi
index dd94d9361fda..b664fe380936 100644
--- a/arch/arm/boot/dts/aspeed-g5.dtsi
+++ b/arch/arm/boot/dts/aspeed-g5.dtsi
@@ -32,6 +32,22 @@
32 reg = <0x1e6c0080 0x80>; 32 reg = <0x1e6c0080 0x80>;
33 }; 33 };
34 34
35 mac0: ethernet@1e660000 {
36 compatible = "faraday,ftgmac100";
37 reg = <0x1e660000 0x180>;
38 interrupts = <2>;
39 no-hw-checksum;
40 status = "disabled";
41 };
42
43 mac1: ethernet@1e680000 {
44 compatible = "faraday,ftgmac100";
45 reg = <0x1e680000 0x180>;
46 interrupts = <3>;
47 no-hw-checksum;
48 status = "disabled";
49 };
50
35 apb { 51 apb {
36 compatible = "simple-bus"; 52 compatible = "simple-bus";
37 #address-cells = <1>; 53 #address-cells = <1>;
@@ -44,6 +60,822 @@
44 reg = <0x1e6e2070 0x04>; 60 reg = <0x1e6e2070 0x04>;
45 }; 61 };
46 62
63 syscon: syscon@1e6e2000 {
64 compatible = "aspeed,g5-scu", "syscon", "simple-mfd";
65 reg = <0x1e6e2000 0x1a8>;
66
67 pinctrl: pinctrl {
68 compatible = "aspeed,g5-pinctrl";
69 aspeed,external-nodes = <&gfx &lhc>;
70
71 pinctrl_acpi_default: acpi_default {
72 function = "ACPI";
73 groups = "ACPI";
74 };
75
76 pinctrl_adc0_default: adc0_default {
77 function = "ADC0";
78 groups = "ADC0";
79 };
80
81 pinctrl_adc1_default: adc1_default {
82 function = "ADC1";
83 groups = "ADC1";
84 };
85
86 pinctrl_adc10_default: adc10_default {
87 function = "ADC10";
88 groups = "ADC10";
89 };
90
91 pinctrl_adc11_default: adc11_default {
92 function = "ADC11";
93 groups = "ADC11";
94 };
95
96 pinctrl_adc12_default: adc12_default {
97 function = "ADC12";
98 groups = "ADC12";
99 };
100
101 pinctrl_adc13_default: adc13_default {
102 function = "ADC13";
103 groups = "ADC13";
104 };
105
106 pinctrl_adc14_default: adc14_default {
107 function = "ADC14";
108 groups = "ADC14";
109 };
110
111 pinctrl_adc15_default: adc15_default {
112 function = "ADC15";
113 groups = "ADC15";
114 };
115
116 pinctrl_adc2_default: adc2_default {
117 function = "ADC2";
118 groups = "ADC2";
119 };
120
121 pinctrl_adc3_default: adc3_default {
122 function = "ADC3";
123 groups = "ADC3";
124 };
125
126 pinctrl_adc4_default: adc4_default {
127 function = "ADC4";
128 groups = "ADC4";
129 };
130
131 pinctrl_adc5_default: adc5_default {
132 function = "ADC5";
133 groups = "ADC5";
134 };
135
136 pinctrl_adc6_default: adc6_default {
137 function = "ADC6";
138 groups = "ADC6";
139 };
140
141 pinctrl_adc7_default: adc7_default {
142 function = "ADC7";
143 groups = "ADC7";
144 };
145
146 pinctrl_adc8_default: adc8_default {
147 function = "ADC8";
148 groups = "ADC8";
149 };
150
151 pinctrl_adc9_default: adc9_default {
152 function = "ADC9";
153 groups = "ADC9";
154 };
155
156 pinctrl_bmcint_default: bmcint_default {
157 function = "BMCINT";
158 groups = "BMCINT";
159 };
160
161 pinctrl_ddcclk_default: ddcclk_default {
162 function = "DDCCLK";
163 groups = "DDCCLK";
164 };
165
166 pinctrl_ddcdat_default: ddcdat_default {
167 function = "DDCDAT";
168 groups = "DDCDAT";
169 };
170
171 pinctrl_espi_default: espi_default {
172 function = "ESPI";
173 groups = "ESPI";
174 };
175
176 pinctrl_fwspics1_default: fwspics1_default {
177 function = "FWSPICS1";
178 groups = "FWSPICS1";
179 };
180
181 pinctrl_fwspics2_default: fwspics2_default {
182 function = "FWSPICS2";
183 groups = "FWSPICS2";
184 };
185
186 pinctrl_gpid0_default: gpid0_default {
187 function = "GPID0";
188 groups = "GPID0";
189 };
190
191 pinctrl_gpid2_default: gpid2_default {
192 function = "GPID2";
193 groups = "GPID2";
194 };
195
196 pinctrl_gpid4_default: gpid4_default {
197 function = "GPID4";
198 groups = "GPID4";
199 };
200
201 pinctrl_gpid6_default: gpid6_default {
202 function = "GPID6";
203 groups = "GPID6";
204 };
205
206 pinctrl_gpie0_default: gpie0_default {
207 function = "GPIE0";
208 groups = "GPIE0";
209 };
210
211 pinctrl_gpie2_default: gpie2_default {
212 function = "GPIE2";
213 groups = "GPIE2";
214 };
215
216 pinctrl_gpie4_default: gpie4_default {
217 function = "GPIE4";
218 groups = "GPIE4";
219 };
220
221 pinctrl_gpie6_default: gpie6_default {
222 function = "GPIE6";
223 groups = "GPIE6";
224 };
225
226 pinctrl_i2c10_default: i2c10_default {
227 function = "I2C10";
228 groups = "I2C10";
229 };
230
231 pinctrl_i2c11_default: i2c11_default {
232 function = "I2C11";
233 groups = "I2C11";
234 };
235
236 pinctrl_i2c12_default: i2c12_default {
237 function = "I2C12";
238 groups = "I2C12";
239 };
240
241 pinctrl_i2c13_default: i2c13_default {
242 function = "I2C13";
243 groups = "I2C13";
244 };
245
246 pinctrl_i2c14_default: i2c14_default {
247 function = "I2C14";
248 groups = "I2C14";
249 };
250
251 pinctrl_i2c3_default: i2c3_default {
252 function = "I2C3";
253 groups = "I2C3";
254 };
255
256 pinctrl_i2c4_default: i2c4_default {
257 function = "I2C4";
258 groups = "I2C4";
259 };
260
261 pinctrl_i2c5_default: i2c5_default {
262 function = "I2C5";
263 groups = "I2C5";
264 };
265
266 pinctrl_i2c6_default: i2c6_default {
267 function = "I2C6";
268 groups = "I2C6";
269 };
270
271 pinctrl_i2c7_default: i2c7_default {
272 function = "I2C7";
273 groups = "I2C7";
274 };
275
276 pinctrl_i2c8_default: i2c8_default {
277 function = "I2C8";
278 groups = "I2C8";
279 };
280
281 pinctrl_i2c9_default: i2c9_default {
282 function = "I2C9";
283 groups = "I2C9";
284 };
285
286 pinctrl_lad0_default: lad0_default {
287 function = "LAD0";
288 groups = "LAD0";
289 };
290
291 pinctrl_lad1_default: lad1_default {
292 function = "LAD1";
293 groups = "LAD1";
294 };
295
296 pinctrl_lad2_default: lad2_default {
297 function = "LAD2";
298 groups = "LAD2";
299 };
300
301 pinctrl_lad3_default: lad3_default {
302 function = "LAD3";
303 groups = "LAD3";
304 };
305
306 pinctrl_lclk_default: lclk_default {
307 function = "LCLK";
308 groups = "LCLK";
309 };
310
311 pinctrl_lframe_default: lframe_default {
312 function = "LFRAME";
313 groups = "LFRAME";
314 };
315
316 pinctrl_lpchc_default: lpchc_default {
317 function = "LPCHC";
318 groups = "LPCHC";
319 };
320
321 pinctrl_lpcpd_default: lpcpd_default {
322 function = "LPCPD";
323 groups = "LPCPD";
324 };
325
326 pinctrl_lpcplus_default: lpcplus_default {
327 function = "LPCPLUS";
328 groups = "LPCPLUS";
329 };
330
331 pinctrl_lpcpme_default: lpcpme_default {
332 function = "LPCPME";
333 groups = "LPCPME";
334 };
335
336 pinctrl_lpcrst_default: lpcrst_default {
337 function = "LPCRST";
338 groups = "LPCRST";
339 };
340
341 pinctrl_lpcsmi_default: lpcsmi_default {
342 function = "LPCSMI";
343 groups = "LPCSMI";
344 };
345
346 pinctrl_lsirq_default: lsirq_default {
347 function = "LSIRQ";
348 groups = "LSIRQ";
349 };
350
351 pinctrl_mac1link_default: mac1link_default {
352 function = "MAC1LINK";
353 groups = "MAC1LINK";
354 };
355
356 pinctrl_mac2link_default: mac2link_default {
357 function = "MAC2LINK";
358 groups = "MAC2LINK";
359 };
360
361 pinctrl_mdio1_default: mdio1_default {
362 function = "MDIO1";
363 groups = "MDIO1";
364 };
365
366 pinctrl_mdio2_default: mdio2_default {
367 function = "MDIO2";
368 groups = "MDIO2";
369 };
370
371 pinctrl_ncts1_default: ncts1_default {
372 function = "NCTS1";
373 groups = "NCTS1";
374 };
375
376 pinctrl_ncts2_default: ncts2_default {
377 function = "NCTS2";
378 groups = "NCTS2";
379 };
380
381 pinctrl_ncts3_default: ncts3_default {
382 function = "NCTS3";
383 groups = "NCTS3";
384 };
385
386 pinctrl_ncts4_default: ncts4_default {
387 function = "NCTS4";
388 groups = "NCTS4";
389 };
390
391 pinctrl_ndcd1_default: ndcd1_default {
392 function = "NDCD1";
393 groups = "NDCD1";
394 };
395
396 pinctrl_ndcd2_default: ndcd2_default {
397 function = "NDCD2";
398 groups = "NDCD2";
399 };
400
401 pinctrl_ndcd3_default: ndcd3_default {
402 function = "NDCD3";
403 groups = "NDCD3";
404 };
405
406 pinctrl_ndcd4_default: ndcd4_default {
407 function = "NDCD4";
408 groups = "NDCD4";
409 };
410
411 pinctrl_ndsr1_default: ndsr1_default {
412 function = "NDSR1";
413 groups = "NDSR1";
414 };
415
416 pinctrl_ndsr2_default: ndsr2_default {
417 function = "NDSR2";
418 groups = "NDSR2";
419 };
420
421 pinctrl_ndsr3_default: ndsr3_default {
422 function = "NDSR3";
423 groups = "NDSR3";
424 };
425
426 pinctrl_ndsr4_default: ndsr4_default {
427 function = "NDSR4";
428 groups = "NDSR4";
429 };
430
431 pinctrl_ndtr1_default: ndtr1_default {
432 function = "NDTR1";
433 groups = "NDTR1";
434 };
435
436 pinctrl_ndtr2_default: ndtr2_default {
437 function = "NDTR2";
438 groups = "NDTR2";
439 };
440
441 pinctrl_ndtr3_default: ndtr3_default {
442 function = "NDTR3";
443 groups = "NDTR3";
444 };
445
446 pinctrl_ndtr4_default: ndtr4_default {
447 function = "NDTR4";
448 groups = "NDTR4";
449 };
450
451 pinctrl_nri1_default: nri1_default {
452 function = "NRI1";
453 groups = "NRI1";
454 };
455
456 pinctrl_nri2_default: nri2_default {
457 function = "NRI2";
458 groups = "NRI2";
459 };
460
461 pinctrl_nri3_default: nri3_default {
462 function = "NRI3";
463 groups = "NRI3";
464 };
465
466 pinctrl_nri4_default: nri4_default {
467 function = "NRI4";
468 groups = "NRI4";
469 };
470
471 pinctrl_nrts1_default: nrts1_default {
472 function = "NRTS1";
473 groups = "NRTS1";
474 };
475
476 pinctrl_nrts2_default: nrts2_default {
477 function = "NRTS2";
478 groups = "NRTS2";
479 };
480
481 pinctrl_nrts3_default: nrts3_default {
482 function = "NRTS3";
483 groups = "NRTS3";
484 };
485
486 pinctrl_nrts4_default: nrts4_default {
487 function = "NRTS4";
488 groups = "NRTS4";
489 };
490
491 pinctrl_oscclk_default: oscclk_default {
492 function = "OSCCLK";
493 groups = "OSCCLK";
494 };
495
496 pinctrl_pewake_default: pewake_default {
497 function = "PEWAKE";
498 groups = "PEWAKE";
499 };
500
501 pinctrl_pnor_default: pnor_default {
502 function = "PNOR";
503 groups = "PNOR";
504 };
505
506 pinctrl_pwm0_default: pwm0_default {
507 function = "PWM0";
508 groups = "PWM0";
509 };
510
511 pinctrl_pwm1_default: pwm1_default {
512 function = "PWM1";
513 groups = "PWM1";
514 };
515
516 pinctrl_pwm2_default: pwm2_default {
517 function = "PWM2";
518 groups = "PWM2";
519 };
520
521 pinctrl_pwm3_default: pwm3_default {
522 function = "PWM3";
523 groups = "PWM3";
524 };
525
526 pinctrl_pwm4_default: pwm4_default {
527 function = "PWM4";
528 groups = "PWM4";
529 };
530
531 pinctrl_pwm5_default: pwm5_default {
532 function = "PWM5";
533 groups = "PWM5";
534 };
535
536 pinctrl_pwm6_default: pwm6_default {
537 function = "PWM6";
538 groups = "PWM6";
539 };
540
541 pinctrl_pwm7_default: pwm7_default {
542 function = "PWM7";
543 groups = "PWM7";
544 };
545
546 pinctrl_rgmii1_default: rgmii1_default {
547 function = "RGMII1";
548 groups = "RGMII1";
549 };
550
551 pinctrl_rgmii2_default: rgmii2_default {
552 function = "RGMII2";
553 groups = "RGMII2";
554 };
555
556 pinctrl_rmii1_default: rmii1_default {
557 function = "RMII1";
558 groups = "RMII1";
559 };
560
561 pinctrl_rmii2_default: rmii2_default {
562 function = "RMII2";
563 groups = "RMII2";
564 };
565
566 pinctrl_rxd1_default: rxd1_default {
567 function = "RXD1";
568 groups = "RXD1";
569 };
570
571 pinctrl_rxd2_default: rxd2_default {
572 function = "RXD2";
573 groups = "RXD2";
574 };
575
576 pinctrl_rxd3_default: rxd3_default {
577 function = "RXD3";
578 groups = "RXD3";
579 };
580
581 pinctrl_rxd4_default: rxd4_default {
582 function = "RXD4";
583 groups = "RXD4";
584 };
585
586 pinctrl_salt1_default: salt1_default {
587 function = "SALT1";
588 groups = "SALT1";
589 };
590
591 pinctrl_salt10_default: salt10_default {
592 function = "SALT10";
593 groups = "SALT10";
594 };
595
596 pinctrl_salt11_default: salt11_default {
597 function = "SALT11";
598 groups = "SALT11";
599 };
600
601 pinctrl_salt12_default: salt12_default {
602 function = "SALT12";
603 groups = "SALT12";
604 };
605
606 pinctrl_salt13_default: salt13_default {
607 function = "SALT13";
608 groups = "SALT13";
609 };
610
611 pinctrl_salt14_default: salt14_default {
612 function = "SALT14";
613 groups = "SALT14";
614 };
615
616 pinctrl_salt2_default: salt2_default {
617 function = "SALT2";
618 groups = "SALT2";
619 };
620
621 pinctrl_salt3_default: salt3_default {
622 function = "SALT3";
623 groups = "SALT3";
624 };
625
626 pinctrl_salt4_default: salt4_default {
627 function = "SALT4";
628 groups = "SALT4";
629 };
630
631 pinctrl_salt5_default: salt5_default {
632 function = "SALT5";
633 groups = "SALT5";
634 };
635
636 pinctrl_salt6_default: salt6_default {
637 function = "SALT6";
638 groups = "SALT6";
639 };
640
641 pinctrl_salt7_default: salt7_default {
642 function = "SALT7";
643 groups = "SALT7";
644 };
645
646 pinctrl_salt8_default: salt8_default {
647 function = "SALT8";
648 groups = "SALT8";
649 };
650
651 pinctrl_salt9_default: salt9_default {
652 function = "SALT9";
653 groups = "SALT9";
654 };
655
656 pinctrl_scl1_default: scl1_default {
657 function = "SCL1";
658 groups = "SCL1";
659 };
660
661 pinctrl_scl2_default: scl2_default {
662 function = "SCL2";
663 groups = "SCL2";
664 };
665
666 pinctrl_sd1_default: sd1_default {
667 function = "SD1";
668 groups = "SD1";
669 };
670
671 pinctrl_sd2_default: sd2_default {
672 function = "SD2";
673 groups = "SD2";
674 };
675
676 pinctrl_sda1_default: sda1_default {
677 function = "SDA1";
678 groups = "SDA1";
679 };
680
681 pinctrl_sda2_default: sda2_default {
682 function = "SDA2";
683 groups = "SDA2";
684 };
685
686 pinctrl_sgps1_default: sgps1_default {
687 function = "SGPS1";
688 groups = "SGPS1";
689 };
690
691 pinctrl_sgps2_default: sgps2_default {
692 function = "SGPS2";
693 groups = "SGPS2";
694 };
695
696 pinctrl_sioonctrl_default: sioonctrl_default {
697 function = "SIOONCTRL";
698 groups = "SIOONCTRL";
699 };
700
701 pinctrl_siopbi_default: siopbi_default {
702 function = "SIOPBI";
703 groups = "SIOPBI";
704 };
705
706 pinctrl_siopbo_default: siopbo_default {
707 function = "SIOPBO";
708 groups = "SIOPBO";
709 };
710
711 pinctrl_siopwreq_default: siopwreq_default {
712 function = "SIOPWREQ";
713 groups = "SIOPWREQ";
714 };
715
716 pinctrl_siopwrgd_default: siopwrgd_default {
717 function = "SIOPWRGD";
718 groups = "SIOPWRGD";
719 };
720
721 pinctrl_sios3_default: sios3_default {
722 function = "SIOS3";
723 groups = "SIOS3";
724 };
725
726 pinctrl_sios5_default: sios5_default {
727 function = "SIOS5";
728 groups = "SIOS5";
729 };
730
731 pinctrl_siosci_default: siosci_default {
732 function = "SIOSCI";
733 groups = "SIOSCI";
734 };
735
736 pinctrl_spi1_default: spi1_default {
737 function = "SPI1";
738 groups = "SPI1";
739 };
740
741 pinctrl_spi1cs1_default: spi1cs1_default {
742 function = "SPI1CS1";
743 groups = "SPI1CS1";
744 };
745
746 pinctrl_spi1debug_default: spi1debug_default {
747 function = "SPI1DEBUG";
748 groups = "SPI1DEBUG";
749 };
750
751 pinctrl_spi1passthru_default: spi1passthru_default {
752 function = "SPI1PASSTHRU";
753 groups = "SPI1PASSTHRU";
754 };
755
756 pinctrl_spi2ck_default: spi2ck_default {
757 function = "SPI2CK";
758 groups = "SPI2CK";
759 };
760
761 pinctrl_spi2cs0_default: spi2cs0_default {
762 function = "SPI2CS0";
763 groups = "SPI2CS0";
764 };
765
766 pinctrl_spi2cs1_default: spi2cs1_default {
767 function = "SPI2CS1";
768 groups = "SPI2CS1";
769 };
770
771 pinctrl_spi2miso_default: spi2miso_default {
772 function = "SPI2MISO";
773 groups = "SPI2MISO";
774 };
775
776 pinctrl_spi2mosi_default: spi2mosi_default {
777 function = "SPI2MOSI";
778 groups = "SPI2MOSI";
779 };
780
781 pinctrl_timer3_default: timer3_default {
782 function = "TIMER3";
783 groups = "TIMER3";
784 };
785
786 pinctrl_timer4_default: timer4_default {
787 function = "TIMER4";
788 groups = "TIMER4";
789 };
790
791 pinctrl_timer5_default: timer5_default {
792 function = "TIMER5";
793 groups = "TIMER5";
794 };
795
796 pinctrl_timer6_default: timer6_default {
797 function = "TIMER6";
798 groups = "TIMER6";
799 };
800
801 pinctrl_timer7_default: timer7_default {
802 function = "TIMER7";
803 groups = "TIMER7";
804 };
805
806 pinctrl_timer8_default: timer8_default {
807 function = "TIMER8";
808 groups = "TIMER8";
809 };
810
811 pinctrl_txd1_default: txd1_default {
812 function = "TXD1";
813 groups = "TXD1";
814 };
815
816 pinctrl_txd2_default: txd2_default {
817 function = "TXD2";
818 groups = "TXD2";
819 };
820
821 pinctrl_txd3_default: txd3_default {
822 function = "TXD3";
823 groups = "TXD3";
824 };
825
826 pinctrl_txd4_default: txd4_default {
827 function = "TXD4";
828 groups = "TXD4";
829 };
830
831 pinctrl_uart6_default: uart6_default {
832 function = "UART6";
833 groups = "UART6";
834 };
835
836 pinctrl_usbcki_default: usbcki_default {
837 function = "USBCKI";
838 groups = "USBCKI";
839 };
840
841 pinctrl_vgabiosrom_default: vgabiosrom_default {
842 function = "VGABIOSROM";
843 groups = "VGABIOSROM";
844 };
845
846 pinctrl_vgahs_default: vgahs_default {
847 function = "VGAHS";
848 groups = "VGAHS";
849 };
850
851 pinctrl_vgavs_default: vgavs_default {
852 function = "VGAVS";
853 groups = "VGAVS";
854 };
855
856 pinctrl_vpi24_default: vpi24_default {
857 function = "VPI24";
858 groups = "VPI24";
859 };
860
861 pinctrl_vpo_default: vpo_default {
862 function = "VPO";
863 groups = "VPO";
864 };
865
866 pinctrl_wdtrst1_default: wdtrst1_default {
867 function = "WDTRST1";
868 groups = "WDTRST1";
869 };
870
871 pinctrl_wdtrst2_default: wdtrst2_default {
872 function = "WDTRST2";
873 groups = "WDTRST2";
874 };
875
876 };
877 };
878
47 clk_hpll: clk_hpll@1e6e2024 { 879 clk_hpll: clk_hpll@1e6e2024 {
48 #clock-cells = <0>; 880 #clock-cells = <0>;
49 compatible = "aspeed,g5-hpll-clock"; 881 compatible = "aspeed,g5-hpll-clock";
@@ -71,11 +903,27 @@
71 reg = <0x1e6e202c 0x4>; 903 reg = <0x1e6e202c 0x4>;
72 }; 904 };
73 905
906 gfx: display@1e6e6000 {
907 compatible = "aspeed,ast2500-gfx", "syscon";
908 reg = <0x1e6e6000 0x1000>;
909 reg-io-width = <4>;
910 };
911
74 sram@1e720000 { 912 sram@1e720000 {
75 compatible = "mmio-sram"; 913 compatible = "mmio-sram";
76 reg = <0x1e720000 0x9000>; // 36K 914 reg = <0x1e720000 0x9000>; // 36K
77 }; 915 };
78 916
917 gpio: gpio@1e780000 {
918 #gpio-cells = <2>;
919 gpio-controller;
920 compatible = "aspeed,ast2500-gpio";
921 reg = <0x1e780000 0x1000>;
922 interrupts = <20>;
923 gpio-ranges = <&pinctrl 0 0 220>;
924 interrupt-controller;
925 };
926
79 timer: timer@1e782000 { 927 timer: timer@1e782000 {
80 compatible = "aspeed,ast2400-timer"; 928 compatible = "aspeed,ast2400-timer";
81 reg = <0x1e782000 0x90>; 929 reg = <0x1e782000 0x90>;
@@ -86,6 +934,7 @@
86 clocks = <&clk_apb>; 934 clocks = <&clk_apb>;
87 }; 935 };
88 936
937
89 wdt1: wdt@1e785000 { 938 wdt1: wdt@1e785000 {
90 compatible = "aspeed,wdt"; 939 compatible = "aspeed,wdt";
91 reg = <0x1e785000 0x1c>; 940 reg = <0x1e785000 0x1c>;
@@ -115,6 +964,36 @@
115 status = "disabled"; 964 status = "disabled";
116 }; 965 };
117 966
967 lpc: lpc@1e789000 {
968 compatible = "aspeed,ast2500-lpc", "simple-mfd";
969 reg = <0x1e789000 0x1000>;
970
971 #address-cells = <1>;
972 #size-cells = <1>;
973 ranges = <0 0x1e789000 0x1000>;
974
975 lpc_bmc: lpc-bmc@0 {
976 compatible = "aspeed,ast2500-lpc-bmc";
977 reg = <0x0 0x80>;
978 };
979
980 lpc_host: lpc-host@80 {
981 compatible = "aspeed,ast2500-lpc-host", "simple-mfd", "syscon";
982 reg = <0x80 0x1e0>;
983
984 #address-cells = <1>;
985 #size-cells = <1>;
986 ranges = <0 0x80 0x1e0>;
987
988 reg-io-width = <4>;
989
990 lhc: lhc@20 {
991 compatible = "aspeed,ast2500-lhc";
992 reg = <0x20 0x24 0x48 0x8>;
993 };
994 };
995 };
996
118 uart2: serial@1e78d000 { 997 uart2: serial@1e78d000 {
119 compatible = "ns16550a"; 998 compatible = "ns16550a";
120 reg = <0x1e78d000 0x1000>; 999 reg = <0x1e78d000 0x1000>;
diff --git a/arch/arm/boot/dts/at91-linea.dtsi b/arch/arm/boot/dts/at91-linea.dtsi
new file mode 100644
index 000000000000..0721c8472509
--- /dev/null
+++ b/arch/arm/boot/dts/at91-linea.dtsi
@@ -0,0 +1,49 @@
1/*
2 * at91-linea.dtsi - Device Tree Include file for the Axentia Linea Module.
3 *
4 * Copyright (C) 2017 Axentia Technologies AB
5 *
6 * Author: Peter Rosin <peda@axentia.se>
7 *
8 * Licensed under GPLv2 or later.
9 */
10
11#include "sama5d31.dtsi"
12
13/ {
14 compatible = "axentia,linea",
15 "atmel,sama5d31", "atmel,sama5d3", "atmel,sama5";
16
17 memory {
18 reg = <0x20000000 0x4000000>;
19 };
20};
21
22&slow_xtal {
23 clock-frequency = <32768>;
24};
25
26&main_xtal {
27 clock-frequency = <12000000>;
28};
29
30&i2c0 {
31 status = "okay";
32
33 eeprom@51 {
34 compatible = "st,24c64";
35 reg = <0x51>;
36 pagesize = <32>;
37 };
38};
39
40&nand0 {
41 status = "okay";
42
43 nand-bus-width = <8>;
44 nand-ecc-mode = "hw";
45 atmel,has-pmecc;
46 atmel,pmecc-cap = <4>;
47 atmel,pmecc-sector-size = <512>;
48 nand-on-flash-bbt;
49};
diff --git a/arch/arm/boot/dts/at91-sama5d2_xplained.dts b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
index 0b9a59d5fdac..9f7f8a7d8ff9 100644
--- a/arch/arm/boot/dts/at91-sama5d2_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
@@ -148,6 +148,8 @@
148 uart1: serial@f8020000 { 148 uart1: serial@f8020000 {
149 pinctrl-names = "default"; 149 pinctrl-names = "default";
150 pinctrl-0 = <&pinctrl_uart1_default>; 150 pinctrl-0 = <&pinctrl_uart1_default>;
151 atmel,use-dma-rx;
152 atmel,use-dma-tx;
151 status = "okay"; 153 status = "okay";
152 }; 154 };
153 155
@@ -256,6 +258,8 @@
256 }; 258 };
257 259
258 uart3: serial@fc008000 { 260 uart3: serial@fc008000 {
261 atmel,use-dma-rx;
262 atmel,use-dma-tx;
259 pinctrl-names = "default"; 263 pinctrl-names = "default";
260 pinctrl-0 = <&pinctrl_uart3_default>; 264 pinctrl-0 = <&pinctrl_uart3_default>;
261 status = "okay"; 265 status = "okay";
diff --git a/arch/arm/boot/dts/at91-sama5d4_xplained.dts b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
index ed7fce297738..5ab14cedb1db 100644
--- a/arch/arm/boot/dts/at91-sama5d4_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
@@ -69,6 +69,12 @@
69 69
70 ahb { 70 ahb {
71 apb { 71 apb {
72 uart0: serial@f8004000 {
73 atmel,use-dma-rx;
74 atmel,use-dma-tx;
75 status = "okay";
76 };
77
72 spi0: spi@f8010000 { 78 spi0: spi@f8010000 {
73 cs-gpios = <&pioC 3 0>, <0>, <0>, <0>; 79 cs-gpios = <&pioC 3 0>, <0>, <0>, <0>;
74 status = "okay"; 80 status = "okay";
@@ -110,6 +116,8 @@
110 }; 116 };
111 117
112 usart3: serial@fc00c000 { 118 usart3: serial@fc00c000 {
119 atmel,use-dma-rx;
120 atmel,use-dma-tx;
113 status = "okay"; 121 status = "okay";
114 }; 122 };
115 123
diff --git a/arch/arm/boot/dts/at91-tse850-3.dts b/arch/arm/boot/dts/at91-tse850-3.dts
new file mode 100644
index 000000000000..669a2c6bdefc
--- /dev/null
+++ b/arch/arm/boot/dts/at91-tse850-3.dts
@@ -0,0 +1,274 @@
1/*
2 * at91-tse850-3.dts - Device Tree file for the Axentia TSE-850 3.0 board
3 *
4 * Copyright (C) 2017 Axentia Technologies AB
5 *
6 * Author: Peter Rosin <peda@axentia.se>
7 *
8 * Licensed under GPLv2 or later.
9 */
10/dts-v1/;
11#include <dt-bindings/pwm/pwm.h>
12#include "at91-linea.dtsi"
13
14/ {
15 model = "Axentia TSE-850 3.0";
16 compatible = "axentia,tse850v3", "axentia,linea",
17 "atmel,sama5d31", "atmel,sama5d3", "atmel,sama5";
18
19 ahb {
20 apb {
21 pinctrl@fffff200 {
22 tse850 {
23 pinctrl_usba_vbus: usba-vbus {
24 atmel,pins =
25 <AT91_PIOC 31
26 AT91_PERIPH_GPIO
27 AT91_PINCTRL_DEGLITCH>;
28 };
29 };
30 };
31
32 watchdog@fffffe40 {
33 status = "okay";
34 };
35 };
36 };
37
38 sck: oscillator {
39 compatible = "fixed-clock";
40
41 #clock-cells = <0>;
42 clock-frequency = <16000000>;
43 clock-output-names = "sck";
44 };
45
46 reg_3v3: regulator {
47 compatible = "regulator-fixed";
48
49 regulator-name = "3v3-supply";
50 regulator-min-microvolt = <3300000>;
51 regulator-max-microvolt = <3300000>;
52 };
53
54 ana: reg-ana {
55 compatible = "pwm-regulator";
56
57 regulator-name = "ANA";
58
59 pwms = <&pwm0 2 1000 PWM_POLARITY_INVERTED>;
60 pwm-dutycycle-unit = <1000>;
61 pwm-dutycycle-range = <100 1000>;
62
63 regulator-min-microvolt = <2000000>;
64 regulator-max-microvolt = <20000000>;
65 regulator-ramp-delay = <1000>;
66 };
67
68 sound {
69 compatible = "axentia,tse850-pcm5142";
70
71 axentia,cpu-dai = <&ssc0>;
72 axentia,audio-codec = <&pcm5142>;
73
74 axentia,add-gpios = <&pioA 8 GPIO_ACTIVE_LOW>;
75 axentia,loop1-gpios = <&pioA 10 GPIO_ACTIVE_LOW>;
76 axentia,loop2-gpios = <&pioA 11 GPIO_ACTIVE_LOW>;
77
78 axentia,ana-supply = <&ana>;
79 };
80
81 dac: dpot-dac {
82 compatible = "dpot-dac";
83 vref-supply = <&reg_3v3>;
84 io-channels = <&dpot 0>;
85 io-channel-names = "dpot";
86 #io-channel-cells = <1>;
87 };
88
89 envelope-detector {
90 compatible = "axentia,tse850-envelope-detector";
91 io-channels = <&dac 0>;
92 io-channel-names = "dac";
93
94 interrupt-parent = <&pioA>;
95 interrupts = <3 IRQ_TYPE_EDGE_RISING>;
96 interrupt-names = "comp";
97 };
98
99 leds {
100 compatible = "gpio-leds";
101
102 ch1-red {
103 label = "ch-1:red";
104 gpios = <&pioA 23 GPIO_ACTIVE_LOW>;
105 };
106 ch1-green {
107 label = "ch-1:green";
108 gpios = <&pioA 22 GPIO_ACTIVE_LOW>;
109 };
110 ch2-red {
111 label = "ch-2:red";
112 gpios = <&pioA 21 GPIO_ACTIVE_LOW>;
113 };
114 ch2-green {
115 label = "ch-2:green";
116 gpios = <&pioA 20 GPIO_ACTIVE_LOW>;
117 };
118 data-red {
119 label = "data:red";
120 gpios = <&pioA 19 GPIO_ACTIVE_LOW>;
121 };
122 data-green {
123 label = "data:green";
124 gpios = <&pioA 18 GPIO_ACTIVE_LOW>;
125 };
126 alarm-red {
127 label = "alarm:red";
128 gpios = <&pioA 17 GPIO_ACTIVE_LOW>;
129 };
130 alarm-green {
131 label = "alarm:green";
132 gpios = <&pioA 16 GPIO_ACTIVE_LOW>;
133 };
134 };
135};
136
137&nand0 {
138 at91bootstrap@0 {
139 label = "at91bootstrap";
140 reg = <0x0 0x40000>;
141 };
142
143 barebox@40000 {
144 label = "bootloader";
145 reg = <0x40000 0x60000>;
146 };
147
148 bareboxenv@c0000 {
149 label = "bareboxenv";
150 reg = <0xc0000 0x40000>;
151 };
152
153 bareboxenv2@100000 {
154 label = "bareboxenv2";
155 reg = <0x100000 0x40000>;
156 };
157
158 oftree@180000 {
159 label = "oftree";
160 reg = <0x180000 0x20000>;
161 };
162
163 kernel@200000 {
164 label = "kernel";
165 reg = <0x200000 0x500000>;
166 };
167
168 rootfs@800000 {
169 label = "rootfs";
170 reg = <0x800000 0x0f800000>;
171 };
172
173 ovlfs@10000000 {
174 label = "ovlfs";
175 reg = <0x10000000 0x10000000>;
176 };
177};
178
179&ssc0 {
180 #sound-dai-cells = <0>;
181
182 status = "okay";
183};
184
185&i2c0 {
186 status = "okay";
187
188 jc42@18 {
189 compatible = "nxp,se97b", "jedec,jc-42.4-temp";
190 reg = <0x18>;
191 };
192
193 dpot: mcp4651-104@28 {
194 compatible = "microchip,mcp4651-104";
195 reg = <0x28>;
196 #io-channel-cells = <1>;
197 };
198
199 pcm5142: pcm5142@4c {
200 compatible = "ti,pcm5142";
201
202 reg = <0x4c>;
203
204 AVDD-supply = <&reg_3v3>;
205 DVDD-supply = <&reg_3v3>;
206 CPVDD-supply = <&reg_3v3>;
207
208 clocks = <&sck>;
209
210 pll-in = <3>;
211 pll-out = <6>;
212 };
213
214 eeprom@50 {
215 compatible = "nxp,24c02";
216 reg = <0x50>;
217 pagesize = <16>;
218 };
219};
220
221&usart0 {
222 status = "okay";
223
224 atmel,use-dma-rx;
225};
226
227&pwm0 {
228 status = "okay";
229
230 pinctrl-0 = <&pinctrl_pwm0_pwml2_1>;
231 pinctrl-names = "default";
232};
233
234&macb1 {
235 status = "okay";
236
237 phy-mode = "rgmii";
238
239 #address-cells = <1>;
240 #size-cells = <0>;
241
242 phy0: ethernet-phy@3 {
243 reg = <3>;
244
245 interrupt-parent = <&pioE>;
246 interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
247 };
248};
249
250&usb0 {
251 status = "okay";
252
253 pinctrl-names = "default";
254 pinctrl-0 = <&pinctrl_usba_vbus>;
255 atmel,vbus-gpio = <&pioC 31 GPIO_ACTIVE_HIGH>;
256};
257
258&usb1 {
259 status = "okay";
260
261 num-ports = <1>;
262 atmel,vbus-gpio = <&pioD 29 GPIO_ACTIVE_HIGH>;
263 atmel,oc-gpio = <&pioC 15 GPIO_ACTIVE_LOW>;
264};
265
266&usb2 {
267 status = "okay";
268};
269
270&dbgu {
271 status = "okay";
272
273 dmas = <0>, <0>; /* Do not use DMA for dbgu */
274};
diff --git a/arch/arm/boot/dts/axm55xx.dtsi b/arch/arm/boot/dts/axm55xx.dtsi
index a9d6d593fc8a..47799f59faa5 100644
--- a/arch/arm/boot/dts/axm55xx.dtsi
+++ b/arch/arm/boot/dts/axm55xx.dtsi
@@ -62,7 +62,7 @@
62 #address-cells = <0>; 62 #address-cells = <0>;
63 interrupt-controller; 63 interrupt-controller;
64 reg = <0x20 0x01001000 0 0x1000>, 64 reg = <0x20 0x01001000 0 0x1000>,
65 <0x20 0x01002000 0 0x1000>, 65 <0x20 0x01002000 0 0x2000>,
66 <0x20 0x01004000 0 0x2000>, 66 <0x20 0x01004000 0 0x2000>,
67 <0x20 0x01006000 0 0x2000>; 67 <0x20 0x01006000 0 0x2000>;
68 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | 68 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
diff --git a/arch/arm/boot/dts/axp223.dtsi b/arch/arm/boot/dts/axp223.dtsi
new file mode 100644
index 000000000000..b91b6c1278c7
--- /dev/null
+++ b/arch/arm/boot/dts/axp223.dtsi
@@ -0,0 +1,58 @@
1/*
2 * Copyright 2016 Free Electrons
3 *
4 * Quentin Schulz <quentin.schulz@free-electrons.com>
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/*
46 * AXP223 Integrated Power Management Chip
47 * http://www.x-powers.com/product/AXP22X.php
48 * http://dl.linux-sunxi.org/AXP/AXP223-en.pdf
49 *
50 * The AXP223 shares most of its logic with the AXP221 but it has some
51 * differences, for the VBUS driver for example.
52 */
53
54#include "axp22x.dtsi"
55
56&usb_power_supply {
57 compatible = "x-powers,axp223-usb-power-supply";
58};
diff --git a/arch/arm/boot/dts/bcm-nsp.dtsi b/arch/arm/boot/dts/bcm-nsp.dtsi
index 15f07f9af3b3..832795b0fd0f 100644
--- a/arch/arm/boot/dts/bcm-nsp.dtsi
+++ b/arch/arm/boot/dts/bcm-nsp.dtsi
@@ -209,6 +209,15 @@
209 #dma-cells = <1>; 209 #dma-cells = <1>;
210 }; 210 };
211 211
212 sdio: sdhci@21000 {
213 compatible = "brcm,sdhci-iproc-cygnus";
214 reg = <0x21000 0x100>;
215 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
216 sdhci,auto-cmd12;
217 clocks = <&lcpll0 BCM_NSP_LCPLL0_SDIO_CLK>;
218 status = "disabled";
219 };
220
212 amac0: ethernet@22000 { 221 amac0: ethernet@22000 {
213 compatible = "brcm,nsp-amac"; 222 compatible = "brcm,nsp-amac";
214 reg = <0x022000 0x1000>, 223 reg = <0x022000 0x1000>,
@@ -227,6 +236,15 @@
227 status = "disabled"; 236 status = "disabled";
228 }; 237 };
229 238
239 amac2: ethernet@24000 {
240 compatible = "brcm,nsp-amac";
241 reg = <0x024000 0x1000>,
242 <0x112000 0x1000>;
243 reg-names = "amac_base", "idm_base";
244 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
245 status = "disabled";
246 };
247
230 nand: nand@26000 { 248 nand: nand@26000 {
231 compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1"; 249 compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
232 reg = <0x026000 0x600>, 250 reg = <0x026000 0x600>,
@@ -241,29 +259,6 @@
241 brcm,nand-has-wp; 259 brcm,nand-has-wp;
242 }; 260 };
243 261
244 gpiob: gpio@30000 {
245 compatible = "brcm,iproc-nsp-gpio", "brcm,iproc-gpio";
246 reg = <0x30000 0x50>;
247 #gpio-cells = <2>;
248 gpio-controller;
249 ngpios = <4>;
250 interrupt-controller;
251 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
252 };
253
254 pwm: pwm@31000 {
255 compatible = "brcm,iproc-pwm";
256 reg = <0x31000 0x28>;
257 clocks = <&osc>;
258 #pwm-cells = <3>;
259 status = "disabled";
260 };
261
262 rng: rng@33000 {
263 compatible = "brcm,bcm-nsp-rng";
264 reg = <0x33000 0x14>;
265 };
266
267 qspi: qspi@27200 { 262 qspi: qspi@27200 {
268 compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi"; 263 compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi";
269 reg = <0x027200 0x184>, 264 reg = <0x027200 0x184>,
@@ -293,6 +288,29 @@
293 #size-cells = <0>; 288 #size-cells = <0>;
294 }; 289 };
295 290
291 gpiob: gpio@30000 {
292 compatible = "brcm,iproc-nsp-gpio", "brcm,iproc-gpio";
293 reg = <0x30000 0x50>;
294 #gpio-cells = <2>;
295 gpio-controller;
296 ngpios = <4>;
297 interrupt-controller;
298 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
299 };
300
301 pwm: pwm@31000 {
302 compatible = "brcm,iproc-pwm";
303 reg = <0x31000 0x28>;
304 clocks = <&osc>;
305 #pwm-cells = <3>;
306 status = "disabled";
307 };
308
309 rng: rng@33000 {
310 compatible = "brcm,bcm-nsp-rng";
311 reg = <0x33000 0x14>;
312 };
313
296 ccbtimer0: timer@34000 { 314 ccbtimer0: timer@34000 {
297 compatible = "arm,sp804"; 315 compatible = "arm,sp804";
298 reg = <0x34000 0x1000>; 316 reg = <0x34000 0x1000>;
diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
index 6ddf7dfe3f72..38e6050035bc 100644
--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
@@ -87,3 +87,8 @@
87 power-domains = <&power RPI_POWER_DOMAIN_HDMI>; 87 power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
88 status = "okay"; 88 status = "okay";
89}; 89};
90
91&vec {
92 power-domains = <&power RPI_POWER_DOMAIN_VEC>;
93 status = "okay";
94};
diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
index 9a44da190897..a3106aa446c6 100644
--- a/arch/arm/boot/dts/bcm283x.dtsi
+++ b/arch/arm/boot/dts/bcm283x.dtsi
@@ -476,6 +476,14 @@
476 status = "disabled"; 476 status = "disabled";
477 }; 477 };
478 478
479 vec: vec@7e806000 {
480 compatible = "brcm,bcm2835-vec";
481 reg = <0x7e806000 0x1000>;
482 clocks = <&clocks BCM2835_CLOCK_VEC>;
483 interrupts = <2 27>;
484 status = "disabled";
485 };
486
479 pixelvalve@7e807000 { 487 pixelvalve@7e807000 {
480 compatible = "brcm,bcm2835-pixelvalve2"; 488 compatible = "brcm,bcm2835-pixelvalve2";
481 reg = <0x7e807000 0x100>; 489 reg = <0x7e807000 0x100>;
diff --git a/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
index 112a5a834ddc..d241cee4bfcc 100644
--- a/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
+++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
@@ -21,7 +21,8 @@
21 }; 21 };
22 22
23 memory { 23 memory {
24 reg = <0x00000000 0x08000000>; 24 reg = <0x00000000 0x08000000
25 0x88000000 0x08000000>;
25 }; 26 };
26 27
27 leds { 28 leds {
diff --git a/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts b/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
index 3600f56f46f4..b0e62042f62f 100644
--- a/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
+++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
@@ -21,7 +21,8 @@
21 }; 21 };
22 22
23 memory { 23 memory {
24 reg = <0x00000000 0x08000000>; 24 reg = <0x00000000 0x08000000
25 0x88000000 0x08000000>;
25 }; 26 };
26 27
27 leds { 28 leds {
diff --git a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
index 9cb186ea2e97..c9ba6b964b38 100644
--- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
+++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
@@ -21,7 +21,8 @@
21 }; 21 };
22 22
23 memory { 23 memory {
24 reg = <0x00000000 0x08000000>; 24 reg = <0x00000000 0x08000000
25 0x88000000 0x18000000>;
25 }; 26 };
26 27
27 spi { 28 spi {
@@ -136,10 +137,6 @@
136 }; 137 };
137}; 138};
138 139
139&uart0 {
140 status = "okay";
141};
142
143&usb2 { 140&usb2 {
144 vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>; 141 vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
145}; 142};
diff --git a/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts b/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
index 35e6ed6a3ef7..f591b0f256d8 100644
--- a/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
+++ b/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
@@ -55,10 +55,6 @@
55 }; 55 };
56}; 56};
57 57
58&uart0 {
59 status = "okay";
60};
61
62&spi_nor { 58&spi_nor {
63 status = "okay"; 59 status = "okay";
64}; 60};
diff --git a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
index 1c7e53d60aa4..50d65d8fbd9a 100644
--- a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
+++ b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
@@ -56,10 +56,6 @@
56 }; 56 };
57}; 57};
58 58
59&uart0 {
60 status = "okay";
61};
62
63&spi_nor { 59&spi_nor {
64 status = "okay"; 60 status = "okay";
65}; 61};
diff --git a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
index 8ce39d58eeb8..b9f66c0fae27 100644
--- a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
+++ b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
@@ -21,7 +21,8 @@
21 }; 21 };
22 22
23 memory { 23 memory {
24 reg = <0x00000000 0x08000000>; 24 reg = <0x00000000 0x08000000
25 0x88000000 0x08000000>;
25 }; 26 };
26 27
27 leds { 28 leds {
@@ -83,10 +84,6 @@
83 }; 84 };
84}; 85};
85 86
86&uart0 {
87 status = "okay";
88};
89
90&usb3 { 87&usb3 {
91 vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>; 88 vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
92}; 89};
diff --git a/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts b/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
index 6229ef283c41..ae0199f6c7a2 100644
--- a/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
+++ b/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
@@ -21,7 +21,8 @@
21 }; 21 };
22 22
23 memory { 23 memory {
24 reg = <0x00000000 0x08000000>; 24 reg = <0x00000000 0x08000000
25 0x88000000 0x08000000>;
25 }; 26 };
26 27
27 leds { 28 leds {
diff --git a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
index 70f4bb9d864a..36b628b190d7 100644
--- a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
+++ b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
@@ -21,7 +21,8 @@
21 }; 21 };
22 22
23 memory { 23 memory {
24 reg = <0x00000000 0x08000000>; 24 reg = <0x00000000 0x08000000
25 0x88000000 0x08000000>;
25 }; 26 };
26 27
27 leds { 28 leds {
@@ -119,10 +120,6 @@
119 }; 120 };
120}; 121};
121 122
122&uart0 {
123 status = "okay";
124};
125
126&spi_nor { 123&spi_nor {
127 status = "okay"; 124 status = "okay";
128}; 125};
diff --git a/arch/arm/boot/dts/bcm4708.dtsi b/arch/arm/boot/dts/bcm4708.dtsi
index eed4dd159995..d0eec099f1f8 100644
--- a/arch/arm/boot/dts/bcm4708.dtsi
+++ b/arch/arm/boot/dts/bcm4708.dtsi
@@ -34,3 +34,7 @@
34 }; 34 };
35 35
36}; 36};
37
38&uart0 {
39 status = "okay";
40};
diff --git a/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts b/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
index 71b98cfaf944..db8608be0ee7 100644
--- a/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
+++ b/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
@@ -21,7 +21,8 @@
21 }; 21 };
22 22
23 memory { 23 memory {
24 reg = <0x00000000 0x08000000>; 24 reg = <0x00000000 0x08000000
25 0x88000000 0x08000000>;
25 }; 26 };
26 27
27 leds { 28 leds {
diff --git a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
index a9c8defed4d3..d51586d95b9a 100644
--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
+++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
@@ -21,7 +21,8 @@
21 }; 21 };
22 22
23 memory { 23 memory {
24 reg = <0x00000000 0x08000000>; 24 reg = <0x00000000 0x08000000
25 0x88000000 0x08000000>;
25 }; 26 };
26 27
27 spi { 28 spi {
@@ -122,7 +123,3 @@
122 }; 123 };
123 }; 124 };
124}; 125};
125
126&uart0 {
127 status = "okay";
128};
diff --git a/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts b/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
index 184fd9214110..de041b8c3342 100644
--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
+++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
@@ -21,7 +21,8 @@
21 }; 21 };
22 22
23 memory { 23 memory {
24 reg = <0x00000000 0x08000000>; 24 reg = <0x00000000 0x08000000
25 0x88000000 0x08000000>;
25 }; 26 };
26 27
27 gpio-keys { 28 gpio-keys {
diff --git a/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts b/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
new file mode 100644
index 000000000000..9b5759849983
--- /dev/null
+++ b/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
@@ -0,0 +1,60 @@
1/*
2 * Copyright 2017 Luxul Inc.
3 *
4 * Licensed under the ISC license.
5 */
6
7/dts-v1/;
8
9#include "bcm47081.dtsi"
10
11/ {
12 compatible = "luxul,xap-1410v1", "brcm,bcm47081", "brcm,bcm4708";
13 model = "Luxul XAP-1410 V1";
14
15 chosen {
16 bootargs = "console=ttyS0,115200";
17 };
18
19 memory {
20 reg = <0x00000000 0x08000000>;
21 };
22
23 leds {
24 compatible = "gpio-leds";
25
26 5ghz {
27 label = "bcm53xx:blue:5ghz";
28 gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
29 linux,default-trigger = "none";
30 };
31
32 2ghz {
33 label = "bcm53xx:blue:2ghz";
34 gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
35 linux,default-trigger = "none";
36 };
37
38 status {
39 label = "bcm53xx:green:status";
40 gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
41 linux,default-trigger = "timer";
42 };
43 };
44
45 gpio-keys {
46 compatible = "gpio-keys";
47 #address-cells = <1>;
48 #size-cells = <0>;
49
50 restart {
51 label = "Reset";
52 linux,code = <KEY_RESTART>;
53 gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
54 };
55 };
56};
57
58&spi_nor {
59 status = "okay";
60};
diff --git a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
new file mode 100644
index 000000000000..c544ab302012
--- /dev/null
+++ b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
@@ -0,0 +1,107 @@
1/*
2 * Copyright 2017 Luxul Inc.
3 *
4 * Licensed under the ISC license.
5 */
6
7/dts-v1/;
8
9#include "bcm47081.dtsi"
10#include "bcm5301x-nand-cs0-bch4.dtsi"
11
12/ {
13 compatible = "luxul,xwr-1200v1", "brcm,bcm47081", "brcm,bcm4708";
14 model = "Luxul XWR-1200 V1";
15
16 chosen {
17 bootargs = "console=ttyS0,115200";
18 };
19
20 memory {
21 reg = <0x00000000 0x08000000>;
22 };
23
24 leds {
25 compatible = "gpio-leds";
26
27 power {
28 label = "bcm53xx:green:power";
29 gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
30 linux,default-trigger = "default-on";
31 };
32
33 lan3 {
34 label = "bcm53xx:green:lan3";
35 gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
36 linux,default-trigger = "none";
37 };
38
39 lan4 {
40 label = "bcm53xx:green:lan4";
41 gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
42 linux,default-trigger = "none";
43 };
44
45 wan {
46 label = "bcm53xx:green:wan";
47 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
48 linux,default-trigger = "none";
49 };
50
51 lan2 {
52 label = "bcm53xx:green:lan2";
53 gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
54 linux,default-trigger = "none";
55 };
56
57 usb {
58 label = "bcm53xx:green:usb";
59 gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
60 linux,default-trigger = "none";
61 };
62
63 status {
64 label = "bcm53xx:green:status";
65 gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
66 linux,default-trigger = "timer";
67 };
68
69 2ghz {
70 label = "bcm53xx:green:2ghz";
71 gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
72 linux,default-trigger = "none";
73 };
74
75 5ghz {
76 label = "bcm53xx:green:5ghz";
77 gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
78 linux,default-trigger = "none";
79 };
80
81 lan1 {
82 label = "bcm53xx:green:lan1";
83 gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
84 linux,default-trigger = "none";
85 };
86 };
87
88 gpio-keys {
89 compatible = "gpio-keys";
90 #address-cells = <1>;
91 #size-cells = <0>;
92
93 restart {
94 label = "Reset";
95 linux,code = <KEY_RESTART>;
96 gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
97 };
98 };
99};
100
101&usb2 {
102 vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
103};
104
105&spi_nor {
106 status = "okay";
107};
diff --git a/arch/arm/boot/dts/bcm47081.dtsi b/arch/arm/boot/dts/bcm47081.dtsi
index f720012ee5ed..c5f7619af4a6 100644
--- a/arch/arm/boot/dts/bcm47081.dtsi
+++ b/arch/arm/boot/dts/bcm47081.dtsi
@@ -24,3 +24,7 @@
24 }; 24 };
25 }; 25 };
26}; 26};
27
28&uart0 {
29 status = "okay";
30};
diff --git a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
index eac0f52e5ebd..eaca6876db0f 100644
--- a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
+++ b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
@@ -21,7 +21,8 @@
21 }; 21 };
22 22
23 memory { 23 memory {
24 reg = <0x00000000 0x08000000>; 24 reg = <0x00000000 0x08000000
25 0x88000000 0x08000000>;
25 }; 26 };
26 27
27 leds { 28 leds {
diff --git a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
index aab39c9864da..b32957ca9443 100644
--- a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
+++ b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
@@ -21,7 +21,8 @@
21 }; 21 };
22 22
23 memory { 23 memory {
24 reg = <0x00000000 0x08000000>; 24 reg = <0x00000000 0x08000000
25 0x88000000 0x18000000>;
25 }; 26 };
26 27
27 leds { 28 leds {
diff --git a/arch/arm/boot/dts/bcm4709-netgear-r7000.dts b/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
index fd38d2aa3521..f459a98a72c6 100644
--- a/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
+++ b/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
@@ -21,7 +21,8 @@
21 }; 21 };
22 22
23 memory { 23 memory {
24 reg = <0x00000000 0x08000000>; 24 reg = <0x00000000 0x08000000
25 0x88000000 0x08000000>;
25 }; 26 };
26 27
27 leds { 28 leds {
@@ -101,6 +102,10 @@
101 }; 102 };
102}; 103};
103 104
104&uart0 { 105&usb2 {
105 status = "okay"; 106 vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
107};
108
109&usb3 {
110 vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
106}; 111};
diff --git a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
index 92f8a7219e98..8e39a84e5bf9 100644
--- a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
+++ b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
@@ -21,7 +21,8 @@
21 }; 21 };
22 22
23 memory { 23 memory {
24 reg = <0x00000000 0x08000000>; 24 reg = <0x00000000 0x08000000
25 0x88000000 0x08000000>;
25 }; 26 };
26 27
27 leds { 28 leds {
@@ -107,8 +108,52 @@
107 }; 108 };
108}; 109};
109 110
110&uart0 { 111&pcie0 {
111 status = "okay"; 112 #address-cells = <3>;
113 #size-cells = <2>;
114
115 bridge@0,0,0 {
116 reg = <0x0000 0 0 0 0>;
117
118 #address-cells = <3>;
119 #size-cells = <2>;
120
121 wifi@0,1,0 {
122 reg = <0x0000 0 0 0 0>;
123 ieee80211-freq-limit = <5735000 5835000>;
124 };
125 };
126};
127
128&pcie1 {
129 #address-cells = <3>;
130 #size-cells = <2>;
131
132 bridge@1,0,0 {
133 reg = <0x0000 0 0 0 0>;
134
135 #address-cells = <3>;
136 #size-cells = <2>;
137
138 bridge@1,1,0 {
139 reg = <0x0000 0 0 0 0>;
140
141 #address-cells = <3>;
142 #size-cells = <2>;
143
144 bridge@1,2,2 {
145 reg = <0x1000 0 0 0 0>;
146
147 #address-cells = <3>;
148 #size-cells = <2>;
149
150 wifi@1,4,0 {
151 reg = <0x0000 0 0 0 0>;
152 ieee80211-freq-limit = <5170000 5730000>;
153 };
154 };
155 };
156 };
112}; 157};
113 158
114&usb2 { 159&usb2 {
diff --git a/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts b/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
index 9a92c24ac2d8..c67bfaa0c8e8 100644
--- a/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
+++ b/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
@@ -97,10 +97,6 @@
97 }; 97 };
98}; 98};
99 99
100&uart0 {
101 status = "okay";
102};
103
104&usb2 { 100&usb2 {
105 vcc-gpio = <&chipcommon 13 GPIO_ACTIVE_HIGH>; 101 vcc-gpio = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
106}; 102};
diff --git a/arch/arm/boot/dts/bcm4709.dtsi b/arch/arm/boot/dts/bcm4709.dtsi
index f03976597a6d..c645fea2b7f7 100644
--- a/arch/arm/boot/dts/bcm4709.dtsi
+++ b/arch/arm/boot/dts/bcm4709.dtsi
@@ -8,4 +8,5 @@
8 8
9&uart0 { 9&uart0 {
10 clock-frequency = <125000000>; 10 clock-frequency = <125000000>;
11 status = "okay";
11}; 12};
diff --git a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
index 661348dbb7ce..64ded7643e9f 100644
--- a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
+++ b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
@@ -21,7 +21,8 @@
21 }; 21 };
22 22
23 memory { 23 memory {
24 reg = <0x00000000 0x08000000>; 24 reg = <0x00000000 0x08000000
25 0x88000000 0x08000000>;
25 }; 26 };
26 27
27 nand: nand@18028000 { 28 nand: nand@18028000 {
@@ -105,10 +106,6 @@
105 }; 106 };
106}; 107};
107 108
108&uart0 {
109 status = "okay";
110};
111
112&usb3 { 109&usb3 {
113 vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>; 110 vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
114}; 111};
diff --git a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
index 169b35fe5651..5cf4ab1ebe85 100644
--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
+++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
@@ -18,7 +18,8 @@
18 }; 18 };
19 19
20 memory { 20 memory {
21 reg = <0x00000000 0x08000000>; 21 reg = <0x00000000 0x08000000
22 0x88000000 0x08000000>;
22 }; 23 };
23 24
24 leds { 25 leds {
@@ -31,13 +32,13 @@
31 }; 32 };
32 33
33 lan3 { 34 lan3 {
34 label = "bcm53xx:green:lan1"; 35 label = "bcm53xx:green:lan3";
35 gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>; 36 gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
36 linux,default-trigger = "default-off"; 37 linux,default-trigger = "default-off";
37 }; 38 };
38 39
39 lan4 { 40 lan4 {
40 label = "bcm53xx:green:lan0"; 41 label = "bcm53xx:green:lan4";
41 gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>; 42 gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
42 linux,default-trigger = "default-off"; 43 linux,default-trigger = "default-off";
43 }; 44 };
@@ -49,7 +50,7 @@
49 }; 50 };
50 51
51 lan1 { 52 lan1 {
52 label = "bcm53xx:green:lan3"; 53 label = "bcm53xx:green:lan1";
53 gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>; 54 gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
54 linux,default-trigger = "default-off"; 55 linux,default-trigger = "default-off";
55 }; 56 };
@@ -98,10 +99,6 @@
98 }; 99 };
99}; 100};
100 101
101&uart0 {
102 status = "okay";
103};
104
105&usb3 { 102&usb3 {
106 vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>; 103 vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
107}; 104};
diff --git a/arch/arm/boot/dts/bcm47094-netgear-r8500.dts b/arch/arm/boot/dts/bcm47094-netgear-r8500.dts
index 521b4155de60..600795ee1aed 100644
--- a/arch/arm/boot/dts/bcm47094-netgear-r8500.dts
+++ b/arch/arm/boot/dts/bcm47094-netgear-r8500.dts
@@ -18,7 +18,8 @@
18 }; 18 };
19 19
20 memory { 20 memory {
21 reg = <0x00000000 0x08000000>; 21 reg = <0x00000000 0x08000000
22 0x88000000 0x18000000>;
22 }; 23 };
23 24
24 leds { 25 leds {
@@ -97,7 +98,3 @@
97 }; 98 };
98 }; 99 };
99}; 100};
100
101&uart0 {
102 status = "okay";
103};
diff --git a/arch/arm/boot/dts/bcm47094.dtsi b/arch/arm/boot/dts/bcm47094.dtsi
index 4f09aa0114e6..4840a782fc05 100644
--- a/arch/arm/boot/dts/bcm47094.dtsi
+++ b/arch/arm/boot/dts/bcm47094.dtsi
@@ -14,4 +14,5 @@
14 14
15&uart0 { 15&uart0 {
16 clock-frequency = <125000000>; 16 clock-frequency = <125000000>;
17 status = "okay";
17}; 18};
diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index f09a2bb08979..4fbb089cf5ad 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -243,13 +243,39 @@
243 #gpio-cells = <2>; 243 #gpio-cells = <2>;
244 }; 244 };
245 245
246 pcie0: pcie@12000 {
247 reg = <0x00012000 0x1000>;
248 };
249
250 pcie1: pcie@13000 {
251 reg = <0x00013000 0x1000>;
252 };
253
246 usb2: usb2@21000 { 254 usb2: usb2@21000 {
247 reg = <0x00021000 0x1000>; 255 reg = <0x00021000 0x1000>;
248 256
249 #address-cells = <1>; 257 #address-cells = <1>;
250 #size-cells = <1>; 258 #size-cells = <1>;
259 ranges;
260
261 interrupt-parent = <&gic>;
262
263 ehci: ehci@21000 {
264 #usb-cells = <0>;
265
266 compatible = "generic-ehci";
267 reg = <0x00021000 0x1000>;
268 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
269 phys = <&usb2_phy>;
270 };
271
272 ohci: ohci@22000 {
273 #usb-cells = <0>;
251 274
252 phys = <&usb2_phy>; 275 compatible = "generic-ohci";
276 reg = <0x00022000 0x1000>;
277 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
278 };
253 }; 279 };
254 280
255 usb3: usb3@23000 { 281 usb3: usb3@23000 {
@@ -257,6 +283,19 @@
257 283
258 #address-cells = <1>; 284 #address-cells = <1>;
259 #size-cells = <1>; 285 #size-cells = <1>;
286 ranges;
287
288 interrupt-parent = <&gic>;
289
290 xhci: xhci@23000 {
291 #usb-cells = <0>;
292
293 compatible = "generic-xhci";
294 reg = <0x00023000 0x1000>;
295 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
296 phys = <&usb3_phy>;
297 phy-names = "usb";
298 };
260 }; 299 };
261 300
262 spi@29000 { 301 spi@29000 {
diff --git a/arch/arm/boot/dts/bcm53573.dtsi b/arch/arm/boot/dts/bcm53573.dtsi
index e2c496a96c32..2da04d0a7348 100644
--- a/arch/arm/boot/dts/bcm53573.dtsi
+++ b/arch/arm/boot/dts/bcm53573.dtsi
@@ -124,6 +124,17 @@
124 reg = <0x4000 0x1000>; 124 reg = <0x4000 0x1000>;
125 interrupt-parent = <&gic>; 125 interrupt-parent = <&gic>;
126 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 126 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
127
128 #address-cells = <1>;
129 #size-cells = <0>;
130
131 ehci_port1: port@1 {
132 reg = <1>;
133 };
134
135 ehci_port2: port@2 {
136 reg = <2>;
137 };
127 }; 138 };
128 139
129 ohci: ohci@d000 { 140 ohci: ohci@d000 {
@@ -133,6 +144,17 @@
133 reg = <0xd000 0x1000>; 144 reg = <0xd000 0x1000>;
134 interrupt-parent = <&gic>; 145 interrupt-parent = <&gic>;
135 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 146 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
147
148 #address-cells = <1>;
149 #size-cells = <0>;
150
151 ohci_port1: port@1 {
152 reg = <1>;
153 };
154
155 ohci_port2: port@2 {
156 reg = <2>;
157 };
136 }; 158 };
137 }; 159 };
138 160
diff --git a/arch/arm/boot/dts/bcm94708.dts b/arch/arm/boot/dts/bcm94708.dts
index 251a486f2da6..42855a7c1bfa 100644
--- a/arch/arm/boot/dts/bcm94708.dts
+++ b/arch/arm/boot/dts/bcm94708.dts
@@ -50,7 +50,3 @@
50 reg = <0x00000000 0x08000000>; 50 reg = <0x00000000 0x08000000>;
51 }; 51 };
52}; 52};
53
54&uart0 {
55 status = "okay";
56};
diff --git a/arch/arm/boot/dts/bcm94709.dts b/arch/arm/boot/dts/bcm94709.dts
index b16cac92904f..95e8be65f2f1 100644
--- a/arch/arm/boot/dts/bcm94709.dts
+++ b/arch/arm/boot/dts/bcm94709.dts
@@ -50,7 +50,3 @@
50 reg = <0x00000000 0x08000000>; 50 reg = <0x00000000 0x08000000>;
51 }; 51 };
52}; 52};
53
54&uart0 {
55 status = "okay";
56};
diff --git a/arch/arm/boot/dts/bcm953012er.dts b/arch/arm/boot/dts/bcm953012er.dts
index 0a9abecf9423..decd86bae901 100644
--- a/arch/arm/boot/dts/bcm953012er.dts
+++ b/arch/arm/boot/dts/bcm953012er.dts
@@ -70,10 +70,6 @@
70 }; 70 };
71}; 71};
72 72
73&uart0 {
74 status = "okay";
75};
76
77&spi_nor { 73&spi_nor {
78 status = "okay"; 74 status = "okay";
79}; 75};
diff --git a/arch/arm/boot/dts/bcm953012k.dts b/arch/arm/boot/dts/bcm953012k.dts
index 05a985a20378..bfd923096a8c 100644
--- a/arch/arm/boot/dts/bcm953012k.dts
+++ b/arch/arm/boot/dts/bcm953012k.dts
@@ -54,7 +54,6 @@
54 54
55&uart0 { 55&uart0 {
56 clock-frequency = <62499840>; 56 clock-frequency = <62499840>;
57 status = "okay";
58}; 57};
59 58
60&uart1 { 59&uart1 {
diff --git a/arch/arm/boot/dts/bcm958522er.dts b/arch/arm/boot/dts/bcm958522er.dts
index a21b0fd21f4e..3f04a40eb90c 100644
--- a/arch/arm/boot/dts/bcm958522er.dts
+++ b/arch/arm/boot/dts/bcm958522er.dts
@@ -65,7 +65,6 @@
65 status = "okay"; 65 status = "okay";
66}; 66};
67 67
68
69&amac1 { 68&amac1 {
70 status = "okay"; 69 status = "okay";
71}; 70};
@@ -125,6 +124,40 @@
125 }; 124 };
126}; 125};
127 126
127&qspi {
128 bspi-sel = <0>;
129 flash: m25p80@0 {
130 #address-cells = <1>;
131 #size-cells = <1>;
132 compatible = "m25p80";
133 reg = <0x0>;
134 spi-max-frequency = <12500000>;
135 m25p,fast-read;
136 spi-cpol;
137 spi-cpha;
138
139 partition@0 {
140 label = "boot";
141 reg = <0x00000000 0x000a0000>;
142 };
143
144 partition@a0000 {
145 label = "env";
146 reg = <0x000a0000 0x00060000>;
147 };
148
149 partition@100000 {
150 label = "system";
151 reg = <0x00100000 0x00600000>;
152 };
153
154 partition@700000 {
155 label = "rootfs";
156 reg = <0x00700000 0x01900000>;
157 };
158 };
159};
160
128&uart0 { 161&uart0 {
129 status = "okay"; 162 status = "okay";
130}; 163};
diff --git a/arch/arm/boot/dts/bcm958525er.dts b/arch/arm/boot/dts/bcm958525er.dts
index be7f2f8ecf39..9fd542200d3d 100644
--- a/arch/arm/boot/dts/bcm958525er.dts
+++ b/arch/arm/boot/dts/bcm958525er.dts
@@ -65,7 +65,6 @@
65 status = "okay"; 65 status = "okay";
66}; 66};
67 67
68
69&amac1 { 68&amac1 {
70 status = "okay"; 69 status = "okay";
71}; 70};
@@ -125,6 +124,40 @@
125 }; 124 };
126}; 125};
127 126
127&qspi {
128 bspi-sel = <0>;
129 flash: m25p80@0 {
130 #address-cells = <1>;
131 #size-cells = <1>;
132 compatible = "m25p80";
133 reg = <0x0>;
134 spi-max-frequency = <12500000>;
135 m25p,fast-read;
136 spi-cpol;
137 spi-cpha;
138
139 partition@0 {
140 label = "boot";
141 reg = <0x00000000 0x000a0000>;
142 };
143
144 partition@a0000 {
145 label = "env";
146 reg = <0x000a0000 0x00060000>;
147 };
148
149 partition@100000 {
150 label = "system";
151 reg = <0x00100000 0x00600000>;
152 };
153
154 partition@700000 {
155 label = "rootfs";
156 reg = <0x00700000 0x01900000>;
157 };
158 };
159};
160
128&sata_phy0 { 161&sata_phy0 {
129 status = "okay"; 162 status = "okay";
130}; 163};
diff --git a/arch/arm/boot/dts/bcm958525xmc.dts b/arch/arm/boot/dts/bcm958525xmc.dts
index 959cde911c3c..41e7fd350fcd 100644
--- a/arch/arm/boot/dts/bcm958525xmc.dts
+++ b/arch/arm/boot/dts/bcm958525xmc.dts
@@ -59,6 +59,12 @@
59 }; 59 };
60}; 60};
61 61
62/* XHCI support needed to be complete */
63
64&amac0 {
65 status = "okay";
66};
67
62&i2c0 { 68&i2c0 {
63 temperature-sensor@4c { 69 temperature-sensor@4c {
64 compatible = "adi,adt7461a"; 70 compatible = "adi,adt7461a";
@@ -115,12 +121,6 @@
115 }; 121 };
116}; 122};
117 123
118/* XHCI, MMC, and Ethernet support needed to be complete */
119
120&uart0 {
121 status = "okay";
122};
123
124&pcie0 { 124&pcie0 {
125 status = "okay"; 125 status = "okay";
126}; 126};
@@ -129,6 +129,49 @@
129 status = "okay"; 129 status = "okay";
130}; 130};
131 131
132&pinctrl {
133 pinctrl-names = "default";
134 pinctrl-0 = <&nand_sel>;
135 nand_sel: nand_sel {
136 function = "nand";
137 groups = "nand_grp";
138 };
139};
140
141&qspi {
142 bspi-sel = <0>;
143 flash: m25p80@0 {
144 #address-cells = <1>;
145 #size-cells = <1>;
146 compatible = "m25p80";
147 reg = <0x0>;
148 spi-max-frequency = <12500000>;
149 m25p,fast-read;
150 spi-cpol;
151 spi-cpha;
152
153 partition@0 {
154 label = "boot";
155 reg = <0x00000000 0x000a0000>;
156 };
157
158 partition@a0000 {
159 label = "env";
160 reg = <0x000a0000 0x00060000>;
161 };
162
163 partition@100000 {
164 label = "system";
165 reg = <0x00100000 0x00600000>;
166 };
167
168 partition@700000 {
169 label = "rootfs";
170 reg = <0x00700000 0x01900000>;
171 };
172 };
173};
174
132&sata_phy0 { 175&sata_phy0 {
133 status = "okay"; 176 status = "okay";
134}; 177};
@@ -141,11 +184,10 @@
141 status = "okay"; 184 status = "okay";
142}; 185};
143 186
144&pinctrl { 187&sdio {
145 pinctrl-names = "default"; 188 status = "ok";
146 pinctrl-0 = <&nand_sel>; 189};
147 nand_sel: nand_sel { 190
148 function = "nand"; 191&uart0 {
149 groups = "nand_grp"; 192 status = "okay";
150 };
151}; 193};
diff --git a/arch/arm/boot/dts/bcm958622hr.dts b/arch/arm/boot/dts/bcm958622hr.dts
index ad2aa87dd15a..477c4860db52 100644
--- a/arch/arm/boot/dts/bcm958622hr.dts
+++ b/arch/arm/boot/dts/bcm958622hr.dts
@@ -65,6 +65,14 @@
65 status = "okay"; 65 status = "okay";
66}; 66};
67 67
68&amac1 {
69 status = "okay";
70};
71
72&amac2 {
73 status = "okay";
74};
75
68&nand { 76&nand {
69 nandcs@0 { 77 nandcs@0 {
70 compatible = "brcm,nandcs"; 78 compatible = "brcm,nandcs";
@@ -120,6 +128,40 @@
120 }; 128 };
121}; 129};
122 130
131&qspi {
132 bspi-sel = <0>;
133 flash: m25p80@0 {
134 #address-cells = <1>;
135 #size-cells = <1>;
136 compatible = "m25p80";
137 reg = <0x0>;
138 spi-max-frequency = <12500000>;
139 m25p,fast-read;
140 spi-cpol;
141 spi-cpha;
142
143 partition@0 {
144 label = "boot";
145 reg = <0x00000000 0x000a0000>;
146 };
147
148 partition@a0000 {
149 label = "env";
150 reg = <0x000a0000 0x00060000>;
151 };
152
153 partition@100000 {
154 label = "system";
155 reg = <0x00100000 0x00600000>;
156 };
157
158 partition@700000 {
159 label = "rootfs";
160 reg = <0x00700000 0x01900000>;
161 };
162 };
163};
164
123&srab { 165&srab {
124 compatible = "brcm,bcm58622-srab", "brcm,nsp-srab"; 166 compatible = "brcm,bcm58622-srab", "brcm,nsp-srab";
125 status = "okay"; 167 status = "okay";
diff --git a/arch/arm/boot/dts/bcm958623hr.dts b/arch/arm/boot/dts/bcm958623hr.dts
index 4ceb8fef8041..c0a499d5ba44 100644
--- a/arch/arm/boot/dts/bcm958623hr.dts
+++ b/arch/arm/boot/dts/bcm958623hr.dts
@@ -65,6 +65,14 @@
65 status = "okay"; 65 status = "okay";
66}; 66};
67 67
68&amac1 {
69 status = "okay";
70};
71
72&amac2 {
73 status = "okay";
74};
75
68&nand { 76&nand {
69 nandcs@0 { 77 nandcs@0 {
70 compatible = "brcm,nandcs"; 78 compatible = "brcm,nandcs";
@@ -120,6 +128,48 @@
120 }; 128 };
121}; 129};
122 130
131&sata_phy0 {
132 status = "okay";
133};
134
135&sata {
136 status = "okay";
137};
138
139&qspi {
140 bspi-sel = <0>;
141 flash: m25p80@0 {
142 #address-cells = <1>;
143 #size-cells = <1>;
144 compatible = "m25p80";
145 reg = <0x0>;
146 spi-max-frequency = <12500000>;
147 m25p,fast-read;
148 spi-cpol;
149 spi-cpha;
150
151 partition@0 {
152 label = "boot";
153 reg = <0x00000000 0x000a0000>;
154 };
155
156 partition@a0000 {
157 label = "env";
158 reg = <0x000a0000 0x00060000>;
159 };
160
161 partition@100000 {
162 label = "system";
163 reg = <0x00100000 0x00600000>;
164 };
165
166 partition@700000 {
167 label = "rootfs";
168 reg = <0x00700000 0x01900000>;
169 };
170 };
171};
172
123&srab { 173&srab {
124 compatible = "brcm,bcm58623-srab", "brcm,nsp-srab"; 174 compatible = "brcm,bcm58623-srab", "brcm,nsp-srab";
125 status = "okay"; 175 status = "okay";
@@ -165,14 +215,6 @@
165 }; 215 };
166}; 216};
167 217
168&sata_phy0 {
169 status = "okay";
170};
171
172&sata {
173 status = "okay";
174};
175
176&uart0 { 218&uart0 {
177 status = "okay"; 219 status = "okay";
178}; 220};
diff --git a/arch/arm/boot/dts/bcm958625hr.dts b/arch/arm/boot/dts/bcm958625hr.dts
index 442002597063..f7eb5854a224 100644
--- a/arch/arm/boot/dts/bcm958625hr.dts
+++ b/arch/arm/boot/dts/bcm958625hr.dts
@@ -1,7 +1,7 @@
1/* 1/*
2 * BSD LICENSE 2 * BSD LICENSE
3 * 3 *
4 * Copyright (c) 2016 Broadcom. All rights reserved. 4 * Copyright(c) 2016 Broadcom. All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
@@ -59,6 +59,18 @@
59 }; 59 };
60}; 60};
61 61
62&amac0 {
63 status = "okay";
64};
65
66&amac1 {
67 status = "okay";
68};
69
70&amac2 {
71 status = "okay";
72};
73
62&nand { 74&nand {
63 nandcs@0 { 75 nandcs@0 {
64 compatible = "brcm,nandcs"; 76 compatible = "brcm,nandcs";
@@ -97,10 +109,6 @@
97 }; 109 };
98}; 110};
99 111
100&uart0 {
101 status = "okay";
102};
103
104&pcie0 { 112&pcie0 {
105 status = "okay"; 113 status = "okay";
106}; 114};
@@ -118,7 +126,49 @@
118 }; 126 };
119}; 127};
120 128
121&amac0 { 129&qspi {
130 bspi-sel = <0>;
131 flash: m25p80@0 {
132 #address-cells = <1>;
133 #size-cells = <1>;
134 compatible = "m25p80";
135 reg = <0x0>;
136 spi-max-frequency = <12500000>;
137 m25p,fast-read;
138 spi-cpol;
139 spi-cpha;
140
141 partition@0 {
142 label = "boot";
143 reg = <0x00000000 0x000a0000>;
144 };
145
146 partition@a0000 {
147 label = "env";
148 reg = <0x000a0000 0x00060000>;
149 };
150
151 partition@100000 {
152 label = "system";
153 reg = <0x00100000 0x00600000>;
154 };
155
156 partition@700000 {
157 label = "rootfs";
158 reg = <0x00700000 0x01900000>;
159 };
160 };
161};
162
163&sata_phy0 {
164 status = "okay";
165};
166
167&sata_phy1 {
168 status = "okay";
169};
170
171&sata {
122 status = "okay"; 172 status = "okay";
123}; 173};
124 174
@@ -167,14 +217,6 @@
167 }; 217 };
168}; 218};
169 219
170&sata_phy0 { 220&uart0 {
171 status = "okay";
172};
173
174&sata_phy1 {
175 status = "okay";
176};
177
178&sata {
179 status = "okay"; 221 status = "okay";
180}; 222};
diff --git a/arch/arm/boot/dts/bcm958625k.dts b/arch/arm/boot/dts/bcm958625k.dts
index 59d96fb91583..f8d47e517e18 100644
--- a/arch/arm/boot/dts/bcm958625k.dts
+++ b/arch/arm/boot/dts/bcm958625k.dts
@@ -53,14 +53,6 @@
53 }; 53 };
54}; 54};
55 55
56&uart0 {
57 status = "okay";
58};
59
60&uart1 {
61 status = "okay";
62};
63
64&amac0 { 56&amac0 {
65 status = "okay"; 57 status = "okay";
66}; 58};
@@ -69,27 +61,7 @@
69 status = "okay"; 61 status = "okay";
70}; 62};
71 63
72&pcie0 { 64&amac2 {
73 status = "okay";
74};
75
76&pcie1 {
77 status = "okay";
78};
79
80&pcie2 {
81 status = "okay";
82};
83
84&sata_phy0 {
85 status = "okay";
86};
87
88&sata_phy1 {
89 status = "okay";
90};
91
92&sata {
93 status = "okay"; 65 status = "okay";
94}; 66};
95 67
@@ -112,32 +84,65 @@
112 reg = <0x00000000 0x00200000>; 84 reg = <0x00000000 0x00200000>;
113 read-only; 85 read-only;
114 }; 86 };
115 partition@1 { 87 partition@200000 {
116 label = "nenv"; 88 label = "nenv";
117 reg = <0x00200000 0x00400000>; 89 reg = <0x00200000 0x00400000>;
118 }; 90 };
119 partition@2 { 91 partition@600000 {
120 label = "nsystem"; 92 label = "nsystem";
121 reg = <0x00600000 0x00a00000>; 93 reg = <0x00600000 0x00a00000>;
122 }; 94 };
123 partition@3 { 95 partition@1000000 {
124 label = "nrootfs"; 96 label = "nrootfs";
125 reg = <0x01000000 0x03000000>; 97 reg = <0x01000000 0x03000000>;
126 }; 98 };
127 partition@4 { 99 partition@4000000 {
128 label = "ncustfs"; 100 label = "ncustfs";
129 reg = <0x04000000 0x3c000000>; 101 reg = <0x04000000 0x3c000000>;
130 }; 102 };
131 }; 103 };
132}; 104};
133 105
106&pcie0 {
107 status = "okay";
108};
109
110&pcie1 {
111 status = "okay";
112};
113
114&pcie2 {
115 status = "okay";
116};
117
134&pinctrl { 118&pinctrl {
135 pinctrl-names = "default"; 119 pinctrl-names = "default";
136 pinctrl-0 = <&nand_sel>; 120 pinctrl-0 = <&nand_sel>, <&gpiobs>, <&pwmc>;
121
137 nand_sel: nand_sel { 122 nand_sel: nand_sel {
138 function = "nand"; 123 function = "nand";
139 groups = "nand_grp"; 124 groups = "nand_grp";
140 }; 125 };
126
127 gpiobs: gpiobs {
128 function = "gpio_b";
129 groups = "gpio_b_0_grp", "gpio_b_1_grp", "gpio_b_2_grp",
130 "gpio_b_3_grp";
131 };
132
133 pwmc: pwmc {
134 function = "pwm";
135 groups = "pwm0_grp", "pwm1_grp", "pwm2_grp", "pwm3_grp";
136 };
137
138 emmc_sel: emmc_sel {
139 function = "emmc";
140 groups = "emmc_grp";
141 };
142};
143
144&pwm {
145 status = "okay";
141}; 146};
142 147
143&qspi { 148&qspi {
@@ -173,3 +178,81 @@
173 }; 178 };
174 }; 179 };
175}; 180};
181
182&sata_phy0 {
183 status = "okay";
184};
185
186&sata_phy1 {
187 status = "okay";
188};
189
190&sata {
191 status = "okay";
192};
193
194/*
195 * By default the sd slot is functional. For emmc to work add "<&emmc_sel>"
196 * and delete "<&nand_sel>" in "pinctrl-0" property of pinctrl node. Remove the
197 * bus-width property here and disable the nand node with status = "disabled";.
198 *
199 * Ex: pinctrl-0 = <&emmc_sel>, <&gpiobs>, <&pwmc>;
200 */
201&sdio {
202 bus-width = <4>;
203 no-1-8-v;
204 status = "ok";
205};
206
207&srab {
208 compatible = "brcm,bcm58625-srab", "brcm,nsp-srab";
209 status = "okay";
210
211 ports {
212 #address-cells = <1>;
213 #size-cells = <0>;
214
215 port@0 {
216 label = "port0";
217 reg = <0>;
218 };
219
220 port@1 {
221 label = "port1";
222 reg = <1>;
223 };
224
225 port@2 {
226 label = "port2";
227 reg = <2>;
228 };
229
230 port@3 {
231 label = "port3";
232 reg = <3>;
233 };
234
235 port@4 {
236 label = "port4";
237 reg = <4>;
238 };
239
240 port@5 {
241 ethernet = <&amac0>;
242 label = "cpu";
243 reg = <5>;
244 fixed-link {
245 speed = <1000>;
246 full-duplex;
247 };
248 };
249 };
250};
251
252&uart0 {
253 status = "okay";
254};
255
256&uart1 {
257 status = "okay";
258};
diff --git a/arch/arm/boot/dts/bcm988312hr.dts b/arch/arm/boot/dts/bcm988312hr.dts
index 104afe98a43b..16666324fda8 100644
--- a/arch/arm/boot/dts/bcm988312hr.dts
+++ b/arch/arm/boot/dts/bcm988312hr.dts
@@ -65,6 +65,14 @@
65 status = "okay"; 65 status = "okay";
66}; 66};
67 67
68&amac1 {
69 status = "okay";
70};
71
72&amac2 {
73 status = "okay";
74};
75
68&nand { 76&nand {
69 nandcs@0 { 77 nandcs@0 {
70 compatible = "brcm,nandcs"; 78 compatible = "brcm,nandcs";
@@ -120,6 +128,40 @@
120 }; 128 };
121}; 129};
122 130
131&qspi {
132 bspi-sel = <0>;
133 flash: m25p80@0 {
134 #address-cells = <1>;
135 #size-cells = <1>;
136 compatible = "m25p80";
137 reg = <0x0>;
138 spi-max-frequency = <12500000>;
139 m25p,fast-read;
140 spi-cpol;
141 spi-cpha;
142
143 partition@0 {
144 label = "boot";
145 reg = <0x00000000 0x000a0000>;
146 };
147
148 partition@a0000 {
149 label = "env";
150 reg = <0x000a0000 0x00060000>;
151 };
152
153 partition@100000 {
154 label = "system";
155 reg = <0x00100000 0x00600000>;
156 };
157
158 partition@700000 {
159 label = "rootfs";
160 reg = <0x00700000 0x01900000>;
161 };
162 };
163};
164
123&sata_phy0 { 165&sata_phy0 {
124 status = "okay"; 166 status = "okay";
125}; 167};
diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts
index 78492a0bbbab..d15107cba765 100644
--- a/arch/arm/boot/dts/da850-evm.dts
+++ b/arch/arm/boot/dts/da850-evm.dts
@@ -290,3 +290,23 @@
290 }; 290 };
291 }; 291 };
292}; 292};
293
294&vpif {
295 pinctrl-names = "default";
296 pinctrl-0 = <&vpif_capture_pins>;
297 status = "okay";
298
299 /* VPIF capture port */
300 port {
301 vpif_ch0: endpoint@0 {
302 reg = <0>;
303 bus-width = <8>;
304 };
305
306 vpif_ch1: endpoint@1 {
307 reg = <1>;
308 bus-width = <8>;
309 data-shift = <8>;
310 };
311 };
312};
diff --git a/arch/arm/boot/dts/da850-lcdk.dts b/arch/arm/boot/dts/da850-lcdk.dts
index afcb4821deb1..b837fec70eec 100644
--- a/arch/arm/boot/dts/da850-lcdk.dts
+++ b/arch/arm/boot/dts/da850-lcdk.dts
@@ -6,6 +6,7 @@
6/dts-v1/; 6/dts-v1/;
7#include "da850.dtsi" 7#include "da850.dtsi"
8#include <dt-bindings/gpio/gpio.h> 8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/input/input.h>
9 10
10/ { 11/ {
11 model = "DA850/AM1808/OMAP-L138 LCDK"; 12 model = "DA850/AM1808/OMAP-L138 LCDK";
@@ -51,6 +52,62 @@
51 system-clock-frequency = <24576000>; 52 system-clock-frequency = <24576000>;
52 }; 53 };
53 }; 54 };
55
56 gpio-keys {
57 compatible = "gpio-keys";
58 autorepeat;
59
60 user1 {
61 label = "GPIO Key USER1";
62 linux,code = <BTN_0>;
63 gpios = <&gpio 36 GPIO_ACTIVE_LOW>;
64 };
65
66 user2 {
67 label = "GPIO Key USER2";
68 linux,code = <BTN_1>;
69 gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
70 };
71 };
72
73 vga-bridge {
74 compatible = "ti,ths8135";
75 #address-cells = <1>;
76 #size-cells = <0>;
77
78 ports {
79 #address-cells = <1>;
80 #size-cells = <0>;
81
82 port@0 {
83 reg = <0>;
84
85 vga_bridge_in: endpoint {
86 remote-endpoint = <&lcdc_out_vga>;
87 };
88 };
89
90 port@1 {
91 reg = <1>;
92
93 vga_bridge_out: endpoint {
94 remote-endpoint = <&vga_con_in>;
95 };
96 };
97 };
98 };
99
100 vga {
101 compatible = "vga-connector";
102
103 ddc-i2c-bus = <&i2c0>;
104
105 port {
106 vga_con_in: endpoint {
107 remote-endpoint = <&vga_bridge_out>;
108 };
109 };
110 };
54}; 111};
55 112
56&pmx_core { 113&pmx_core {
@@ -105,6 +162,10 @@
105 status = "okay"; 162 status = "okay";
106}; 163};
107 164
165&sata {
166 status = "okay";
167};
168
108&mdio { 169&mdio {
109 pinctrl-names = "default"; 170 pinctrl-names = "default";
110 pinctrl-0 = <&mdio_pins>; 171 pinctrl-0 = <&mdio_pins>;
@@ -167,6 +228,10 @@
167 status = "okay"; 228 status = "okay";
168}; 229};
169 230
231&usb1 {
232 status = "okay";
233};
234
170&aemif { 235&aemif {
171 pinctrl-names = "default"; 236 pinctrl-names = "default";
172 pinctrl-0 = <&nand_pins>; 237 pinctrl-0 = <&nand_pins>;
@@ -236,3 +301,28 @@
236&memctrl { 301&memctrl {
237 status = "okay"; 302 status = "okay";
238}; 303};
304
305&lcdc {
306 status = "okay";
307 pinctrl-names = "default";
308 pinctrl-0 = <&lcd_pins>;
309
310 port {
311 lcdc_out_vga: endpoint {
312 remote-endpoint = <&vga_bridge_in>;
313 };
314 };
315};
316
317&vpif {
318 pinctrl-names = "default";
319 pinctrl-0 = <&vpif_capture_pins>;
320 status = "okay";
321
322 /* VPIF capture port */
323 port {
324 vpif_ch0: endpoint {
325 bus-width = <8>;
326 };
327 };
328};
diff --git a/arch/arm/boot/dts/da850-lego-ev3.dts b/arch/arm/boot/dts/da850-lego-ev3.dts
new file mode 100644
index 000000000000..112ec92064ce
--- /dev/null
+++ b/arch/arm/boot/dts/da850-lego-ev3.dts
@@ -0,0 +1,313 @@
1/*
2 * Device tree for LEGO MINDSTORMS EV3
3 *
4 * Copyright (C) 2017 David Lechner <david@lechnology.com>
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation, version 2.
9 */
10
11/dts-v1/;
12#include <dt-bindings/gpio/gpio.h>
13#include <dt-bindings/input/linux-event-codes.h>
14#include <dt-bindings/pwm/pwm.h>
15
16#include "da850.dtsi"
17
18/ {
19 compatible = "lego,ev3", "ti,da850";
20 model = "LEGO MINDSTORMS EV3";
21
22 aliases {
23 serial1 = &serial1;
24 };
25
26 memory@c0000000 {
27 device_type = "memory";
28 reg = <0xc0000000 0x04000000>;
29 };
30
31 /*
32 * The buttons on the EV3 are mapped to keyboard keys.
33 */
34 gpio_keys {
35 compatible = "gpio-keys";
36 #address-cells = <1>;
37 #size-cells = <0>;
38 label = "EV3 Brick Buttons";
39 pinctrl-names = "default";
40 pinctrl-0 = <&button_pins>, <&button_bias>;
41
42 center {
43 label = "Center";
44 linux,code = <KEY_ENTER>;
45 gpios = <&gpio 29 GPIO_ACTIVE_HIGH>;
46 };
47
48 left {
49 label = "Left";
50 linux,code = <KEY_LEFT>;
51 gpios = <&gpio 102 GPIO_ACTIVE_HIGH>;
52 };
53
54 back {
55 label = "Back";
56 linux,code = <KEY_BACKSPACE>;
57 gpios = <&gpio 106 GPIO_ACTIVE_HIGH>;
58 };
59
60 right {
61 label = "Right";
62 linux,code = <KEY_RIGHT>;
63 gpios = <&gpio 124 GPIO_ACTIVE_HIGH>;
64 };
65
66 down {
67 label = "Down";
68 linux,code = <KEY_DOWN>;
69 gpios = <&gpio 126 GPIO_ACTIVE_HIGH>;
70 };
71
72 up {
73 label = "Up";
74 linux,code = <KEY_UP>;
75 gpios = <&gpio 127 GPIO_ACTIVE_HIGH>;
76 };
77 };
78
79 /*
80 * The EV3 has two built-in bi-color LEDs behind the buttons.
81 */
82 leds {
83 compatible = "gpio-leds";
84 pinctrl-names = "default";
85 pinctrl-0 = <&led_pins>;
86
87 left_green {
88 label = "led0:green:brick-status";
89 /* GP6[13] */
90 gpios = <&gpio 103 GPIO_ACTIVE_HIGH>;
91 linux,default-trigger = "default-on";
92 };
93
94 right_red {
95 label = "led1:red:brick-status";
96 /* GP6[7] */
97 gpios = <&gpio 108 GPIO_ACTIVE_HIGH>;
98 linux,default-trigger = "default-on";
99 };
100
101 left_red {
102 label = "led0:red:brick-status";
103 /* GP6[12] */
104 gpios = <&gpio 109 GPIO_ACTIVE_HIGH>;
105 linux,default-trigger = "default-on";
106 };
107
108 right_green {
109 label = "led1:green:brick-status";
110 /* GP6[14] */
111 gpios = <&gpio 110 GPIO_ACTIVE_HIGH>;
112 linux,default-trigger = "default-on";
113 };
114 };
115
116 /*
117 * The EV3 is powered down by turning off the main 5V supply.
118 */
119 gpio-poweroff {
120 compatible = "gpio-poweroff";
121 gpios = <&gpio 107 GPIO_ACTIVE_LOW>;
122 pinctrl-names = "default";
123 pinctrl-0 = <&system_power_pin>;
124 };
125
126 /*
127 * This is a 5V current limiting regulator that is shared by USB,
128 * the sensor (input) ports, the motor (output) ports and the A/DC.
129 */
130 vcc5v: regulator1 {
131 pinctrl-names = "default";
132 pinctrl-0 = <&vcc5v_pins>;
133 compatible = "regulator-fixed";
134 regulator-name = "vcc5v";
135 regulator-min-microvolt = <5000000>;
136 regulator-max-microvolt = <5000000>;
137 gpio = <&gpio 101 0>;
138 over-current-gpios = <&gpio 99 GPIO_ACTIVE_LOW>;
139 enable-active-high;
140 regulator-boot-on;
141 };
142};
143
144&pmx_core {
145 status = "okay";
146
147 spi0_cs3_pin: pinmux_spi0_cs3_pin {
148 pinctrl-single,bits = <
149 /* CS3 */
150 0xc 0x01000000 0x0f000000
151 >;
152 };
153
154 mmc0_cd_pin: pinmux_mmc0_cd {
155 pinctrl-single,bits = <
156 /* GP5[14] */
157 0x2C 0x00000080 0x000000f0
158 >;
159 };
160
161 button_pins: pinmux_button_pins {
162 pinctrl-single,bits = <
163 /* GP1[13] */
164 0x8 0x00000800 0x00000f00
165 /* GP6[10] */
166 0x34 0x00800000 0x00f00000
167 /* GP6[6] */
168 0x38 0x00000080 0x000000f0
169 /* GP7[12], GP7[14], GP7[15] */
170 0x40 0x00808800 0x00f0ff00
171 >;
172 };
173
174 led_pins: pinmux_led_pins {
175 pinctrl-single,bits = <
176 /* GP6[12], GP6[13], GP6[14] */
177 0x34 0x00008880 0x0000fff0
178 /* GP6[7] */
179 0x38 0x00000008 0x0000000f
180 >;
181 };
182
183 system_power_pin: pinmux_system_power {
184 pinctrl-single,bits = <
185 /* GP6[11] */
186 0x34 0x00080000 0x000f0000
187 >;
188 };
189
190 vcc5v_pins: pinmux_vcc5v {
191 pinctrl-single,bits = <
192 /* GP6[5] */
193 0x40 0x00000080 0x000000f0
194 /* GP6[3] */
195 0x4c 0x00008000 0x0000f000
196 >;
197 };
198};
199
200&pinconf {
201 status = "okay";
202
203 /* Buttons have external pulldown resistors */
204 button_bias: button-bias-groups {
205 disable {
206 groups = "cp5", "cp24", "cp25", "cp28";
207 bias-disable;
208 };
209 };
210};
211
212/* Input port 1 */
213&serial1 {
214 status = "okay";
215 pinctrl-names = "default";
216 pinctrl-0 = <&serial1_rxtx_pins>;
217};
218
219&rtc0 {
220 status = "okay";
221};
222
223&i2c0 {
224 status = "okay";
225 clock-frequency = <400000>;
226 pinctrl-names = "default";
227 pinctrl-0 = <&i2c0_pins>;
228
229 /*
230 * EEPROM contains the first stage bootloader, HW ID and Bluetooth MAC.
231 */
232 eeprom@50 {
233 compatible = "microchip,24c128";
234 pagesize = <64>;
235 read-only;
236 reg = <0x50>;
237 };
238};
239
240&wdt {
241 status = "okay";
242};
243
244&mmc0 {
245 status = "okay";
246 max-frequency = <50000000>;
247 bus-width = <4>;
248 cd-gpios = <&gpio 94 GPIO_ACTIVE_LOW>;
249 pinctrl-names = "default";
250 pinctrl-0 = <&mmc0_pins>, <&mmc0_cd_pin>;
251};
252
253&spi0 {
254 status = "okay";
255 pinctrl-names = "default";
256 pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>, <&spi0_cs3_pin>;
257
258 flash@0 {
259 compatible = "n25q128a13", "jedec,spi-nor";
260 reg = <0>;
261 spi-max-frequency = <50000000>;
262 ti,spi-wdelay = <8>;
263
264 /* Partitions are based on the official firmware from LEGO */
265 partitions {
266 compatible = "fixed-partitions";
267 #address-cells = <1>;
268 #size-cells = <1>;
269
270 partition@0 {
271 label = "U-Boot";
272 reg = <0 0x40000>;
273 };
274
275 partition@40000 {
276 label = "U-Boot Env";
277 reg = <0x40000 0x10000>;
278 };
279
280 partition@50000 {
281 label = "Kernel";
282 reg = <0x50000 0x200000>;
283 };
284
285 partition@250000 {
286 label = "Filesystem";
287 reg = <0x250000 0xa50000>;
288 };
289
290 partition@cb0000 {
291 label = "Storage";
292 reg = <0xcb0000 0x2f0000>;
293 };
294 };
295 };
296};
297
298&gpio {
299 status = "okay";
300};
301
302&usb_phy {
303 status = "okay";
304};
305
306&usb0 {
307 status = "okay";
308};
309
310&usb1 {
311 status = "okay";
312 vbus-supply = <&vcc5v>;
313};
diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi
index 104155d12c2f..92d633d1da68 100644
--- a/arch/arm/boot/dts/da850.dtsi
+++ b/arch/arm/boot/dts/da850.dtsi
@@ -208,7 +208,18 @@
208 0x4c 0x02000022 0x0f0000ff 208 0x4c 0x02000022 0x0f0000ff
209 >; 209 >;
210 }; 210 };
211 211 vpif_capture_pins: vpif_capture_pins {
212 pinctrl-single,bits = <
213 /* VP_DIN[2..7], VP_CLKIN1, VP_CLKIN0 */
214 0x38 0x11111111 0xffffffff
215 /* VP_DIN[10..15,0..1] */
216 0x3c 0x11111111 0xffffffff
217 /* VP_DIN[8..9] */
218 0x40 0x00000011 0x000000ff
219 /* VP_CLKIN3, VP_CLKIN2 */
220 0x4c 0x00010100 0x000f0f00
221 >;
222 };
212 }; 223 };
213 prictrl: priority-controller@14110 { 224 prictrl: priority-controller@14110 {
214 compatible = "ti,da850-mstpri"; 225 compatible = "ti,da850-mstpri";
@@ -266,22 +277,25 @@
266 interrupt-names = "edm3_tcerrint"; 277 interrupt-names = "edm3_tcerrint";
267 }; 278 };
268 serial0: serial@42000 { 279 serial0: serial@42000 {
269 compatible = "ns16550a"; 280 compatible = "ti,da830-uart", "ns16550a";
270 reg = <0x42000 0x100>; 281 reg = <0x42000 0x100>;
282 reg-io-width = <4>;
271 reg-shift = <2>; 283 reg-shift = <2>;
272 interrupts = <25>; 284 interrupts = <25>;
273 status = "disabled"; 285 status = "disabled";
274 }; 286 };
275 serial1: serial@10c000 { 287 serial1: serial@10c000 {
276 compatible = "ns16550a"; 288 compatible = "ti,da830-uart", "ns16550a";
277 reg = <0x10c000 0x100>; 289 reg = <0x10c000 0x100>;
290 reg-io-width = <4>;
278 reg-shift = <2>; 291 reg-shift = <2>;
279 interrupts = <53>; 292 interrupts = <53>;
280 status = "disabled"; 293 status = "disabled";
281 }; 294 };
282 serial2: serial@10d000 { 295 serial2: serial@10d000 {
283 compatible = "ns16550a"; 296 compatible = "ti,da830-uart", "ns16550a";
284 reg = <0x10d000 0x100>; 297 reg = <0x10d000 0x100>;
298 reg-io-width = <4>;
285 reg-shift = <2>; 299 reg-shift = <2>;
286 interrupts = <61>; 300 interrupts = <61>;
287 status = "disabled"; 301 status = "disabled";
@@ -324,6 +338,18 @@
324 dma-names = "rx", "tx"; 338 dma-names = "rx", "tx";
325 status = "disabled"; 339 status = "disabled";
326 }; 340 };
341 vpif: video@217000 {
342 compatible = "ti,da850-vpif";
343 reg = <0x217000 0x1000>;
344 interrupts = <92>;
345 status = "disabled";
346
347 /* VPIF capture port */
348 port {
349 #address-cells = <1>;
350 #size-cells = <0>;
351 };
352 };
327 mmc1: mmc@21b000 { 353 mmc1: mmc@21b000 {
328 compatible = "ti,da830-mmc"; 354 compatible = "ti,da830-mmc";
329 reg = <0x21b000 0x1000>; 355 reg = <0x21b000 0x1000>;
@@ -403,6 +429,12 @@
403 phy-names = "usb-phy"; 429 phy-names = "usb-phy";
404 status = "disabled"; 430 status = "disabled";
405 }; 431 };
432 sata: sata@218000 {
433 compatible = "ti,da850-ahci";
434 reg = <0x218000 0x2000>, <0x22c018 0x4>;
435 interrupts = <67>;
436 status = "disabled";
437 };
406 mdio: mdio@224000 { 438 mdio: mdio@224000 {
407 compatible = "ti,davinci_mdio"; 439 compatible = "ti,davinci_mdio";
408 #address-cells = <1>; 440 #address-cells = <1>;
@@ -425,6 +457,14 @@
425 >; 457 >;
426 status = "disabled"; 458 status = "disabled";
427 }; 459 };
460 usb1: usb@225000 {
461 compatible = "ti,da830-ohci";
462 reg = <0x225000 0x1000>;
463 interrupts = <59>;
464 phys = <&usb_phy 1>;
465 phy-names = "usb-phy";
466 status = "disabled";
467 };
428 gpio: gpio@226000 { 468 gpio: gpio@226000 {
429 compatible = "ti,dm6441-gpio"; 469 compatible = "ti,dm6441-gpio";
430 gpio-controller; 470 gpio-controller;
@@ -458,10 +498,11 @@
458 dma-names = "tx", "rx"; 498 dma-names = "tx", "rx";
459 }; 499 };
460 500
461 display: display@213000 { 501 lcdc: display@213000 {
462 compatible = "ti,da850-tilcdc"; 502 compatible = "ti,da850-tilcdc";
463 reg = <0x213000 0x1000>; 503 reg = <0x213000 0x1000>;
464 interrupts = <52>; 504 interrupts = <52>;
505 max-pixelclock = <37500>;
465 status = "disabled"; 506 status = "disabled";
466 }; 507 };
467 }; 508 };
diff --git a/arch/arm/boot/dts/dove-cm-a510.dtsi b/arch/arm/boot/dts/dove-cm-a510.dtsi
index 59b4056b478f..9b9dfbe07be4 100644
--- a/arch/arm/boot/dts/dove-cm-a510.dtsi
+++ b/arch/arm/boot/dts/dove-cm-a510.dtsi
@@ -13,17 +13,17 @@
13 * published by the Free Software Foundation; version 2 of the 13 * published by the Free Software Foundation; version 2 of the
14 * License. 14 * License.
15 * 15 *
16 * This file is distributed in the hope that it will be useful 16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details. 19 * GNU General Public License for more details.
20 * 20 *
21 * Or, alternatively 21 * Or, alternatively,
22 * 22 *
23 * b) Permission is hereby granted, free of charge, to any person 23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation 24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without 25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use 26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or 27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the 28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following 29 * Software is furnished to do so, subject to the following
@@ -32,11 +32,11 @@
32 * The above copyright notice and this permission notice shall be 32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software. 33 * included in all copies or substantial portions of the Software.
34 * 34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/dove-sbc-a510.dts b/arch/arm/boot/dts/dove-sbc-a510.dts
index 288e707dea99..2bb85a9b7614 100644
--- a/arch/arm/boot/dts/dove-sbc-a510.dts
+++ b/arch/arm/boot/dts/dove-sbc-a510.dts
@@ -13,17 +13,17 @@
13 * published by the Free Software Foundation; version 2 of the 13 * published by the Free Software Foundation; version 2 of the
14 * License. 14 * License.
15 * 15 *
16 * This file is distributed in the hope that it will be useful 16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details. 19 * GNU General Public License for more details.
20 * 20 *
21 * Or, alternatively 21 * Or, alternatively,
22 * 22 *
23 * b) Permission is hereby granted, free of charge, to any person 23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation 24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without 25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use 26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or 27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the 28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following 29 * Software is furnished to do so, subject to the following
@@ -32,11 +32,11 @@
32 * The above copyright notice and this permission notice shall be 32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software. 33 * included in all copies or substantial portions of the Software.
34 * 34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/dra7-evm.dts b/arch/arm/boot/dts/dra7-evm.dts
index 132f2be10889..4bc4b575c99b 100644
--- a/arch/arm/boot/dts/dra7-evm.dts
+++ b/arch/arm/boot/dts/dra7-evm.dts
@@ -21,6 +21,10 @@
21 reg = <0x0 0x80000000 0x0 0x60000000>; /* 1536 MB */ 21 reg = <0x0 0x80000000 0x0 0x60000000>; /* 1536 MB */
22 }; 22 };
23 23
24 chosen {
25 stdout-path = &uart1;
26 };
27
24 evm_3v3_sd: fixedregulator-sd { 28 evm_3v3_sd: fixedregulator-sd {
25 compatible = "regulator-fixed"; 29 compatible = "regulator-fixed";
26 regulator-name = "evm_3v3_sd"; 30 regulator-name = "evm_3v3_sd";
@@ -151,204 +155,6 @@
151}; 155};
152 156
153&dra7_pmx_core { 157&dra7_pmx_core {
154 pinctrl-names = "default";
155 pinctrl-0 = <&vtt_pin>;
156
157 vtt_pin: pinmux_vtt_pin {
158 pinctrl-single,pins = <
159 DRA7XX_CORE_IOPAD(0x37b4, PIN_OUTPUT | MUX_MODE14) /* spi1_cs1.gpio7_11 */
160 >;
161 };
162
163 i2c1_pins: pinmux_i2c1_pins {
164 pinctrl-single,pins = <
165 DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT | MUX_MODE0) /* i2c1_sda */
166 DRA7XX_CORE_IOPAD(0x3804, PIN_INPUT | MUX_MODE0) /* i2c1_scl */
167 >;
168 };
169
170 i2c2_pins: pinmux_i2c2_pins {
171 pinctrl-single,pins = <
172 DRA7XX_CORE_IOPAD(0x3808, PIN_INPUT | MUX_MODE0) /* i2c2_sda */
173 DRA7XX_CORE_IOPAD(0x380c, PIN_INPUT | MUX_MODE0) /* i2c2_scl */
174 >;
175 };
176
177 i2c3_pins: pinmux_i2c3_pins {
178 pinctrl-single,pins = <
179 DRA7XX_CORE_IOPAD(0x3688, PIN_INPUT | MUX_MODE9) /* gpio6_14.i2c3_sda */
180 DRA7XX_CORE_IOPAD(0x368c, PIN_INPUT | MUX_MODE9) /* gpio6_15.i2c3_scl */
181 >;
182 };
183
184 mcspi1_pins: pinmux_mcspi1_pins {
185 pinctrl-single,pins = <
186 DRA7XX_CORE_IOPAD(0x37a4, PIN_INPUT | MUX_MODE0) /* spi1_sclk */
187 DRA7XX_CORE_IOPAD(0x37a8, PIN_INPUT | MUX_MODE0) /* spi1_d1 */
188 DRA7XX_CORE_IOPAD(0x37ac, PIN_INPUT | MUX_MODE0) /* spi1_d0 */
189 DRA7XX_CORE_IOPAD(0x37b0, PIN_INPUT_SLEW | MUX_MODE0) /* spi1_cs0 */
190 DRA7XX_CORE_IOPAD(0x37b8, PIN_INPUT_SLEW | MUX_MODE6) /* spi1_cs2.hdmi1_hpd */
191 DRA7XX_CORE_IOPAD(0x37bc, PIN_INPUT_SLEW | MUX_MODE6) /* spi1_cs3.hdmi1_cec */
192 >;
193 };
194
195 mcspi2_pins: pinmux_mcspi2_pins {
196 pinctrl-single,pins = <
197 DRA7XX_CORE_IOPAD(0x37c0, PIN_INPUT | MUX_MODE0) /* spi2_sclk */
198 DRA7XX_CORE_IOPAD(0x37c4, PIN_INPUT_SLEW | MUX_MODE0) /* spi2_d1 */
199 DRA7XX_CORE_IOPAD(0x37c8, PIN_INPUT_SLEW | MUX_MODE0) /* spi2_d1 */
200 DRA7XX_CORE_IOPAD(0x37cc, PIN_INPUT_SLEW | MUX_MODE0) /* spi2_cs0 */
201 >;
202 };
203
204 uart1_pins: pinmux_uart1_pins {
205 pinctrl-single,pins = <
206 DRA7XX_CORE_IOPAD(0x37e0, PIN_INPUT_SLEW | MUX_MODE0) /* uart1_rxd */
207 DRA7XX_CORE_IOPAD(0x37e4, PIN_INPUT_SLEW | MUX_MODE0) /* uart1_txd */
208 DRA7XX_CORE_IOPAD(0x37e8, PIN_INPUT | MUX_MODE3) /* uart1_ctsn */
209 DRA7XX_CORE_IOPAD(0x37ec, PIN_INPUT | MUX_MODE3) /* uart1_rtsn */
210 >;
211 };
212
213 uart2_pins: pinmux_uart2_pins {
214 pinctrl-single,pins = <
215 DRA7XX_CORE_IOPAD(0x37f0, PIN_INPUT | MUX_MODE0) /* uart2_rxd */
216 DRA7XX_CORE_IOPAD(0x37f4, PIN_INPUT | MUX_MODE0) /* uart2_txd */
217 DRA7XX_CORE_IOPAD(0x37f8, PIN_INPUT | MUX_MODE0) /* uart2_ctsn */
218 DRA7XX_CORE_IOPAD(0x37fc, PIN_INPUT | MUX_MODE0) /* uart2_rtsn */
219 >;
220 };
221
222 uart3_pins: pinmux_uart3_pins {
223 pinctrl-single,pins = <
224 DRA7XX_CORE_IOPAD(0x3648, PIN_INPUT_SLEW | MUX_MODE0) /* uart3_rxd */
225 DRA7XX_CORE_IOPAD(0x364c, PIN_INPUT_SLEW | MUX_MODE0) /* uart3_txd */
226 >;
227 };
228
229 usb1_pins: pinmux_usb1_pins {
230 pinctrl-single,pins = <
231 DRA7XX_CORE_IOPAD(0x3680, PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */
232 >;
233 };
234
235 usb2_pins: pinmux_usb2_pins {
236 pinctrl-single,pins = <
237 DRA7XX_CORE_IOPAD(0x3684, PIN_INPUT_SLEW | MUX_MODE0) /* usb2_drvvbus */
238 >;
239 };
240
241 nand_flash_x16: nand_flash_x16 {
242 /* On DRA7 EVM, GPMC_WPN and NAND_BOOTn comes from DIP switch
243 * So NAND flash requires following switch settings:
244 * SW5.1 (NAND_BOOTn) = ON (LOW)
245 * SW5.9 (GPMC_WPN) = OFF (HIGH)
246 */
247 pinctrl-single,pins = <
248 DRA7XX_CORE_IOPAD(0x3400, PIN_INPUT | MUX_MODE0) /* gpmc_ad0 */
249 DRA7XX_CORE_IOPAD(0x3404, PIN_INPUT | MUX_MODE0) /* gpmc_ad1 */
250 DRA7XX_CORE_IOPAD(0x3408, PIN_INPUT | MUX_MODE0) /* gpmc_ad2 */
251 DRA7XX_CORE_IOPAD(0x340c, PIN_INPUT | MUX_MODE0) /* gpmc_ad3 */
252 DRA7XX_CORE_IOPAD(0x3410, PIN_INPUT | MUX_MODE0) /* gpmc_ad4 */
253 DRA7XX_CORE_IOPAD(0x3414, PIN_INPUT | MUX_MODE0) /* gpmc_ad5 */
254 DRA7XX_CORE_IOPAD(0x3418, PIN_INPUT | MUX_MODE0) /* gpmc_ad6 */
255 DRA7XX_CORE_IOPAD(0x341c, PIN_INPUT | MUX_MODE0) /* gpmc_ad7 */
256 DRA7XX_CORE_IOPAD(0x3420, PIN_INPUT | MUX_MODE0) /* gpmc_ad8 */
257 DRA7XX_CORE_IOPAD(0x3424, PIN_INPUT | MUX_MODE0) /* gpmc_ad9 */
258 DRA7XX_CORE_IOPAD(0x3428, PIN_INPUT | MUX_MODE0) /* gpmc_ad10 */
259 DRA7XX_CORE_IOPAD(0x342c, PIN_INPUT | MUX_MODE0) /* gpmc_ad11 */
260 DRA7XX_CORE_IOPAD(0x3430, PIN_INPUT | MUX_MODE0) /* gpmc_ad12 */
261 DRA7XX_CORE_IOPAD(0x3434, PIN_INPUT | MUX_MODE0) /* gpmc_ad13 */
262 DRA7XX_CORE_IOPAD(0x3438, PIN_INPUT | MUX_MODE0) /* gpmc_ad14 */
263 DRA7XX_CORE_IOPAD(0x343c, PIN_INPUT | MUX_MODE0) /* gpmc_ad15 */
264 DRA7XX_CORE_IOPAD(0x34d8, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0 */
265 DRA7XX_CORE_IOPAD(0x34cc, PIN_OUTPUT | MUX_MODE0) /* gpmc_wen */
266 DRA7XX_CORE_IOPAD(0x34b4, PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_csn0 */
267 DRA7XX_CORE_IOPAD(0x34c4, PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale */
268 DRA7XX_CORE_IOPAD(0x34c8, PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren */
269 DRA7XX_CORE_IOPAD(0x34d0, PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle */
270 >;
271 };
272
273 cpsw_default: cpsw_default {
274 pinctrl-single,pins = <
275 /* Slave 1 */
276 DRA7XX_CORE_IOPAD(0x3650, PIN_OUTPUT | MUX_MODE0) /* rgmii0_txc.rgmii0_txc */
277 DRA7XX_CORE_IOPAD(0x3654, PIN_OUTPUT | MUX_MODE0) /* rgmii0_txctl.rgmii0_txctl */
278 DRA7XX_CORE_IOPAD(0x3658, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td3.rgmii0_txd3 */
279 DRA7XX_CORE_IOPAD(0x365c, PIN_OUTPUT | MUX_MODE0) /* rgmii0_txd2.rgmii0_txd2 */
280 DRA7XX_CORE_IOPAD(0x3660, PIN_OUTPUT | MUX_MODE0) /* rgmii0_txd1.rgmii0_txd1 */
281 DRA7XX_CORE_IOPAD(0x3664, PIN_OUTPUT | MUX_MODE0) /* rgmii0_txd0.rgmii0_txd0 */
282 DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT | MUX_MODE0) /* rgmii0_rxc.rgmii0_rxc */
283 DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT | MUX_MODE0) /* rgmii0_rxctl.rgmii0_rxctl */
284 DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT | MUX_MODE0) /* rgmii0_rxd3.rgmii0_rxd3 */
285 DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT | MUX_MODE0) /* rgmii0_rxd2.rgmii0_rxd2 */
286 DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT | MUX_MODE0) /* rgmii0_rxd1.rgmii0_rxd1 */
287 DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT | MUX_MODE0) /* rgmii0_rxd0.rgmii0_rxd0 */
288
289 /* Slave 2 */
290 DRA7XX_CORE_IOPAD(0x3598, PIN_OUTPUT | MUX_MODE3) /* vin2a_d12.rgmii1_txc */
291 DRA7XX_CORE_IOPAD(0x359c, PIN_OUTPUT | MUX_MODE3) /* vin2a_d13.rgmii1_tctl */
292 DRA7XX_CORE_IOPAD(0x35a0, PIN_OUTPUT | MUX_MODE3) /* vin2a_d14.rgmii1_td3 */
293 DRA7XX_CORE_IOPAD(0x35a4, PIN_OUTPUT | MUX_MODE3) /* vin2a_d15.rgmii1_td2 */
294 DRA7XX_CORE_IOPAD(0x35a8, PIN_OUTPUT | MUX_MODE3) /* vin2a_d16.rgmii1_td1 */
295 DRA7XX_CORE_IOPAD(0x35ac, PIN_OUTPUT | MUX_MODE3) /* vin2a_d17.rgmii1_td0 */
296 DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE3) /* vin2a_d18.rgmii1_rclk */
297 DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE3) /* vin2a_d19.rgmii1_rctl */
298 DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE3) /* vin2a_d20.rgmii1_rd3 */
299 DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE3) /* vin2a_d21.rgmii1_rd2 */
300 DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE3) /* vin2a_d22.rgmii1_rd1 */
301 DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE3) /* vin2a_d23.rgmii1_rd0 */
302 >;
303
304 };
305
306 cpsw_sleep: cpsw_sleep {
307 pinctrl-single,pins = <
308 /* Slave 1 */
309 DRA7XX_CORE_IOPAD(0x3650, MUX_MODE15)
310 DRA7XX_CORE_IOPAD(0x3654, MUX_MODE15)
311 DRA7XX_CORE_IOPAD(0x3658, MUX_MODE15)
312 DRA7XX_CORE_IOPAD(0x365c, MUX_MODE15)
313 DRA7XX_CORE_IOPAD(0x3660, MUX_MODE15)
314 DRA7XX_CORE_IOPAD(0x3664, MUX_MODE15)
315 DRA7XX_CORE_IOPAD(0x3668, MUX_MODE15)
316 DRA7XX_CORE_IOPAD(0x366c, MUX_MODE15)
317 DRA7XX_CORE_IOPAD(0x3670, MUX_MODE15)
318 DRA7XX_CORE_IOPAD(0x3674, MUX_MODE15)
319 DRA7XX_CORE_IOPAD(0x3678, MUX_MODE15)
320 DRA7XX_CORE_IOPAD(0x367c, MUX_MODE15)
321
322 /* Slave 2 */
323 DRA7XX_CORE_IOPAD(0x3598, MUX_MODE15)
324 DRA7XX_CORE_IOPAD(0x359c, MUX_MODE15)
325 DRA7XX_CORE_IOPAD(0x35a0, MUX_MODE15)
326 DRA7XX_CORE_IOPAD(0x35a4, MUX_MODE15)
327 DRA7XX_CORE_IOPAD(0x35a8, MUX_MODE15)
328 DRA7XX_CORE_IOPAD(0x35ac, MUX_MODE15)
329 DRA7XX_CORE_IOPAD(0x35b0, MUX_MODE15)
330 DRA7XX_CORE_IOPAD(0x35b4, MUX_MODE15)
331 DRA7XX_CORE_IOPAD(0x35b8, MUX_MODE15)
332 DRA7XX_CORE_IOPAD(0x35bc, MUX_MODE15)
333 DRA7XX_CORE_IOPAD(0x35c0, MUX_MODE15)
334 DRA7XX_CORE_IOPAD(0x35c4, MUX_MODE15)
335 >;
336 };
337
338 davinci_mdio_default: davinci_mdio_default {
339 pinctrl-single,pins = <
340 DRA7XX_CORE_IOPAD(0x363c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_d.mdio_d */
341 DRA7XX_CORE_IOPAD(0x3640, PIN_INPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
342 >;
343 };
344
345 davinci_mdio_sleep: davinci_mdio_sleep {
346 pinctrl-single,pins = <
347 DRA7XX_CORE_IOPAD(0x363c, MUX_MODE15)
348 DRA7XX_CORE_IOPAD(0x3640, MUX_MODE15)
349 >;
350 };
351
352 dcan1_pins_default: dcan1_pins_default { 158 dcan1_pins_default: dcan1_pins_default {
353 pinctrl-single,pins = < 159 pinctrl-single,pins = <
354 DRA7XX_CORE_IOPAD(0x37d0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* dcan1_tx */ 160 DRA7XX_CORE_IOPAD(0x37d0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* dcan1_tx */
@@ -363,36 +169,36 @@
363 >; 169 >;
364 }; 170 };
365 171
366 atl_pins: pinmux_atl_pins { 172 mmc1_pins_default: mmc1_pins_default {
367 pinctrl-single,pins = <
368 DRA7XX_CORE_IOPAD(0x3698, PIN_OUTPUT | MUX_MODE5) /* xref_clk1.atl_clk1 */
369 DRA7XX_CORE_IOPAD(0x369c, PIN_OUTPUT | MUX_MODE5) /* xref_clk2.atl_clk2 */
370 >;
371 };
372
373 mcasp3_pins: pinmux_mcasp3_pins {
374 pinctrl-single,pins = < 173 pinctrl-single,pins = <
375 DRA7XX_CORE_IOPAD(0x3724, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_aclkx */ 174 DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14) /* mmc1sdcd.gpio219 */
376 DRA7XX_CORE_IOPAD(0x3728, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_fsx */ 175 DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
377 DRA7XX_CORE_IOPAD(0x372c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr0 */ 176 DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
378 DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr1 */ 177 DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
178 DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
179 DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
180 DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
379 >; 181 >;
380 }; 182 };
381 183
382 mcasp3_sleep_pins: pinmux_mcasp3_sleep_pins { 184 mmc2_pins_default: mmc2_pins_default {
383 pinctrl-single,pins = < 185 pinctrl-single,pins = <
384 DRA7XX_CORE_IOPAD(0x3724, MUX_MODE15) 186 DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
385 DRA7XX_CORE_IOPAD(0x3728, MUX_MODE15) 187 DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
386 DRA7XX_CORE_IOPAD(0x372c, MUX_MODE15) 188 DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
387 DRA7XX_CORE_IOPAD(0x3730, MUX_MODE15) 189 DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
190 DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
191 DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
192 DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
193 DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
194 DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
195 DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
388 >; 196 >;
389 }; 197 };
390}; 198};
391 199
392&i2c1 { 200&i2c1 {
393 status = "okay"; 201 status = "okay";
394 pinctrl-names = "default";
395 pinctrl-0 = <&i2c1_pins>;
396 clock-frequency = <400000>; 202 clock-frequency = <400000>;
397 203
398 tps659038: tps659038@58 { 204 tps659038: tps659038@58 {
@@ -581,8 +387,6 @@
581 387
582&i2c2 { 388&i2c2 {
583 status = "okay"; 389 status = "okay";
584 pinctrl-names = "default";
585 pinctrl-0 = <&i2c2_pins>;
586 clock-frequency = <400000>; 390 clock-frequency = <400000>;
587 391
588 pcf_hdmi: gpio@26 { 392 pcf_hdmi: gpio@26 {
@@ -602,45 +406,35 @@
602 406
603&i2c3 { 407&i2c3 {
604 status = "okay"; 408 status = "okay";
605 pinctrl-names = "default";
606 pinctrl-0 = <&i2c3_pins>;
607 clock-frequency = <400000>; 409 clock-frequency = <400000>;
608}; 410};
609 411
610&mcspi1 { 412&mcspi1 {
611 status = "okay"; 413 status = "okay";
612 pinctrl-names = "default";
613 pinctrl-0 = <&mcspi1_pins>;
614}; 414};
615 415
616&mcspi2 { 416&mcspi2 {
617 status = "okay"; 417 status = "okay";
618 pinctrl-names = "default";
619 pinctrl-0 = <&mcspi2_pins>;
620}; 418};
621 419
622&uart1 { 420&uart1 {
623 status = "okay"; 421 status = "okay";
624 pinctrl-names = "default";
625 pinctrl-0 = <&uart1_pins>;
626 interrupts-extended = <&crossbar_mpu GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, 422 interrupts-extended = <&crossbar_mpu GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
627 <&dra7_pmx_core 0x3e0>; 423 <&dra7_pmx_core 0x3e0>;
628}; 424};
629 425
630&uart2 { 426&uart2 {
631 status = "okay"; 427 status = "okay";
632 pinctrl-names = "default";
633 pinctrl-0 = <&uart2_pins>;
634}; 428};
635 429
636&uart3 { 430&uart3 {
637 status = "okay"; 431 status = "okay";
638 pinctrl-names = "default";
639 pinctrl-0 = <&uart3_pins>;
640}; 432};
641 433
642&mmc1 { 434&mmc1 {
643 status = "okay"; 435 status = "okay";
436 pinctrl-names = "default";
437 pinctrl-0 = <&mmc1_pins_default>;
644 vmmc-supply = <&evm_3v3_sd>; 438 vmmc-supply = <&evm_3v3_sd>;
645 vmmc_aux-supply = <&ldo1_reg>; 439 vmmc_aux-supply = <&ldo1_reg>;
646 bus-width = <4>; 440 bus-width = <4>;
@@ -653,6 +447,8 @@
653 447
654&mmc2 { 448&mmc2 {
655 status = "okay"; 449 status = "okay";
450 pinctrl-names = "default";
451 pinctrl-0 = <&mmc2_pins_default>;
656 vmmc-supply = <&evm_3v3_sw>; 452 vmmc-supply = <&evm_3v3_sw>;
657 bus-width = <8>; 453 bus-width = <8>;
658}; 454};
@@ -732,14 +528,10 @@
732 528
733&usb1 { 529&usb1 {
734 dr_mode = "peripheral"; 530 dr_mode = "peripheral";
735 pinctrl-names = "default";
736 pinctrl-0 = <&usb1_pins>;
737}; 531};
738 532
739&usb2 { 533&usb2 {
740 dr_mode = "host"; 534 dr_mode = "host";
741 pinctrl-names = "default";
742 pinctrl-0 = <&usb2_pins>;
743}; 535};
744 536
745&elm { 537&elm {
@@ -747,9 +539,12 @@
747}; 539};
748 540
749&gpmc { 541&gpmc {
750 status = "okay"; 542 /*
751 pinctrl-names = "default"; 543 * For the existing IOdelay configuration via U-Boot we don't
752 pinctrl-0 = <&nand_flash_x16>; 544 * support NAND on dra7-evm. Keep it disabled. Enabling it
545 * requires a different configuration by U-Boot.
546 */
547 status = "disabled";
753 ranges = <0 0 0x08000000 0x01000000>; /* minimum GPMC partition = 16MB */ 548 ranges = <0 0 0x08000000 0x01000000>; /* minimum GPMC partition = 16MB */
754 nand@0,0 { 549 nand@0,0 {
755 compatible = "ti,omap2-nand"; 550 compatible = "ti,omap2-nand";
@@ -845,9 +640,6 @@
845 640
846&mac { 641&mac {
847 status = "okay"; 642 status = "okay";
848 pinctrl-names = "default", "sleep";
849 pinctrl-0 = <&cpsw_default>;
850 pinctrl-1 = <&cpsw_sleep>;
851 dual_emac; 643 dual_emac;
852}; 644};
853 645
@@ -863,12 +655,6 @@
863 dual_emac_res_vlan = <2>; 655 dual_emac_res_vlan = <2>;
864}; 656};
865 657
866&davinci_mdio {
867 pinctrl-names = "default", "sleep";
868 pinctrl-0 = <&davinci_mdio_default>;
869 pinctrl-1 = <&davinci_mdio_sleep>;
870};
871
872&dcan1 { 658&dcan1 {
873 status = "ok"; 659 status = "ok";
874 pinctrl-names = "default", "sleep", "active"; 660 pinctrl-names = "default", "sleep", "active";
@@ -878,9 +664,6 @@
878}; 664};
879 665
880&atl { 666&atl {
881 pinctrl-names = "default";
882 pinctrl-0 = <&atl_pins>;
883
884 assigned-clocks = <&abe_dpll_sys_clk_mux>, 667 assigned-clocks = <&abe_dpll_sys_clk_mux>,
885 <&atl_gfclk_mux>, 668 <&atl_gfclk_mux>,
886 <&dpll_abe_ck>, 669 <&dpll_abe_ck>,
@@ -899,9 +682,6 @@
899 682
900&mcasp3 { 683&mcasp3 {
901 #sound-dai-cells = <0>; 684 #sound-dai-cells = <0>;
902 pinctrl-names = "default", "sleep";
903 pinctrl-0 = <&mcasp3_pins>;
904 pinctrl-1 = <&mcasp3_sleep_pins>;
905 685
906 assigned-clocks = <&mcasp3_ahclkx_mux>; 686 assigned-clocks = <&mcasp3_ahclkx_mux>;
907 assigned-clock-parents = <&atl_clkin2_ck>; 687 assigned-clock-parents = <&atl_clkin2_ck>;
diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi
index 3e1f75026eac..2c9e56f4aac5 100644
--- a/arch/arm/boot/dts/dra7.dtsi
+++ b/arch/arm/boot/dts/dra7.dtsi
@@ -57,7 +57,7 @@
57 interrupt-controller; 57 interrupt-controller;
58 #interrupt-cells = <3>; 58 #interrupt-cells = <3>;
59 reg = <0x0 0x48211000 0x0 0x1000>, 59 reg = <0x0 0x48211000 0x0 0x1000>,
60 <0x0 0x48212000 0x0 0x1000>, 60 <0x0 0x48212000 0x0 0x2000>,
61 <0x0 0x48214000 0x0 0x2000>, 61 <0x0 0x48214000 0x0 0x2000>,
62 <0x0 0x48216000 0x0 0x2000>; 62 <0x0 0x48216000 0x0 0x2000>;
63 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 63 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
diff --git a/arch/arm/boot/dts/dra71-evm.dts b/arch/arm/boot/dts/dra71-evm.dts
index 2b9a5a8d69ad..4d57a55473af 100644
--- a/arch/arm/boot/dts/dra71-evm.dts
+++ b/arch/arm/boot/dts/dra71-evm.dts
@@ -138,6 +138,11 @@
138 }; 138 };
139}; 139};
140 140
141&pcf_lcd {
142 interrupt-parent = <&gpio7>;
143 interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
144};
145
141&pcf_gpio_21 { 146&pcf_gpio_21 {
142 interrupt-parent = <&gpio7>; 147 interrupt-parent = <&gpio7>;
143 interrupts = <31 IRQ_TYPE_EDGE_FALLING>; 148 interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
diff --git a/arch/arm/boot/dts/dra72-evm-common.dtsi b/arch/arm/boot/dts/dra72-evm-common.dtsi
index e50fbeea96e0..ad24544adf0f 100644
--- a/arch/arm/boot/dts/dra72-evm-common.dtsi
+++ b/arch/arm/boot/dts/dra72-evm-common.dtsi
@@ -18,6 +18,10 @@
18 display0 = &hdmi0; 18 display0 = &hdmi0;
19 }; 19 };
20 20
21 chosen {
22 stdout-path = &uart1;
23 };
24
21 evm_12v0: fixedregulator-evm12v0 { 25 evm_12v0: fixedregulator-evm12v0 {
22 /* main supply */ 26 /* main supply */
23 compatible = "regulator-fixed"; 27 compatible = "regulator-fixed";
@@ -216,6 +220,15 @@
216 status = "okay"; 220 status = "okay";
217 clock-frequency = <400000>; 221 clock-frequency = <400000>;
218 222
223 pcf_lcd: gpio@20 {
224 compatible = "nxp,pcf8575";
225 reg = <0x20>;
226 gpio-controller;
227 #gpio-cells = <2>;
228 interrupt-controller;
229 #interrupt-cells = <2>;
230 };
231
219 pcf_gpio_21: gpio@21 { 232 pcf_gpio_21: gpio@21 {
220 compatible = "ti,pcf8575", "nxp,pcf8575"; 233 compatible = "ti,pcf8575", "nxp,pcf8575";
221 reg = <0x21>; 234 reg = <0x21>;
@@ -280,7 +293,12 @@
280}; 293};
281 294
282&gpmc { 295&gpmc {
283 status = "okay"; 296 /*
297 * For the existing IOdelay configuration via U-Boot we don't
298 * support NAND on dra72-evm. Keep it disabled. Enabling it
299 * requires a different configuration by U-Boot.
300 */
301 status = "disabled";
284 ranges = <0 0 0x08000000 0x01000000>; /* minimum GPMC partition = 16MB */ 302 ranges = <0 0 0x08000000 0x01000000>; /* minimum GPMC partition = 16MB */
285 nand@0,0 { 303 nand@0,0 {
286 /* To use NAND, DIP switch SW5 must be set like so: 304 /* To use NAND, DIP switch SW5 must be set like so:
diff --git a/arch/arm/boot/dts/dra72-evm-revc.dts b/arch/arm/boot/dts/dra72-evm-revc.dts
index 3f808a47df03..3ecac56bf504 100644
--- a/arch/arm/boot/dts/dra72-evm-revc.dts
+++ b/arch/arm/boot/dts/dra72-evm-revc.dts
@@ -68,6 +68,8 @@
68 ti,tx-internal-delay = <DP83867_RGMIIDCTL_250_PS>; 68 ti,tx-internal-delay = <DP83867_RGMIIDCTL_250_PS>;
69 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_8_B_NIB>; 69 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_8_B_NIB>;
70 ti,min-output-impedance; 70 ti,min-output-impedance;
71 interrupt-parent = <&gpio6>;
72 interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
71 }; 73 };
72 74
73 dp83867_1: ethernet-phy@3 { 75 dp83867_1: ethernet-phy@3 {
@@ -76,5 +78,7 @@
76 ti,tx-internal-delay = <DP83867_RGMIIDCTL_250_PS>; 78 ti,tx-internal-delay = <DP83867_RGMIIDCTL_250_PS>;
77 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_8_B_NIB>; 79 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_8_B_NIB>;
78 ti,min-output-impedance; 80 ti,min-output-impedance;
81 interrupt-parent = <&gpio6>;
82 interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
79 }; 83 };
80}; 84};
diff --git a/arch/arm/boot/dts/ecx-2000.dts b/arch/arm/boot/dts/ecx-2000.dts
index 2ccbb57fbfa8..c15e7e0c7e08 100644
--- a/arch/arm/boot/dts/ecx-2000.dts
+++ b/arch/arm/boot/dts/ecx-2000.dts
@@ -99,7 +99,7 @@
99 interrupt-controller; 99 interrupt-controller;
100 interrupts = <1 9 0xf04>; 100 interrupts = <1 9 0xf04>;
101 reg = <0xfff11000 0x1000>, 101 reg = <0xfff11000 0x1000>,
102 <0xfff12000 0x1000>, 102 <0xfff12000 0x2000>,
103 <0xfff14000 0x2000>, 103 <0xfff14000 0x2000>,
104 <0xfff16000 0x2000>; 104 <0xfff16000 0x2000>;
105 }; 105 };
diff --git a/arch/arm/boot/dts/exynos-mfc-reserved-memory.dtsi b/arch/arm/boot/dts/exynos-mfc-reserved-memory.dtsi
index f78c14c82e17..25186ac4188d 100644
--- a/arch/arm/boot/dts/exynos-mfc-reserved-memory.dtsi
+++ b/arch/arm/boot/dts/exynos-mfc-reserved-memory.dtsi
@@ -17,7 +17,7 @@
17 mfc_left: region_mfc_left { 17 mfc_left: region_mfc_left {
18 compatible = "shared-dma-pool"; 18 compatible = "shared-dma-pool";
19 no-map; 19 no-map;
20 size = <0x1000000>; 20 size = <0x2400000>;
21 alignment = <0x100000>; 21 alignment = <0x100000>;
22 }; 22 };
23 23
diff --git a/arch/arm/boot/dts/exynos3250.dtsi b/arch/arm/boot/dts/exynos3250.dtsi
index ba17ee1eb749..9c28ef4508e0 100644
--- a/arch/arm/boot/dts/exynos3250.dtsi
+++ b/arch/arm/boot/dts/exynos3250.dtsi
@@ -234,7 +234,7 @@
234 #interrupt-cells = <3>; 234 #interrupt-cells = <3>;
235 interrupt-controller; 235 interrupt-controller;
236 reg = <0x10481000 0x1000>, 236 reg = <0x10481000 0x1000>,
237 <0x10482000 0x1000>, 237 <0x10482000 0x2000>,
238 <0x10484000 0x2000>, 238 <0x10484000 0x2000>,
239 <0x10486000 0x2000>; 239 <0x10486000 0x2000>;
240 interrupts = <GIC_PPI 9 240 interrupts = <GIC_PPI 9
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index c64737baa45e..18def1c774d5 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -64,8 +64,10 @@
64 i2s0: i2s@03830000 { 64 i2s0: i2s@03830000 {
65 compatible = "samsung,s5pv210-i2s"; 65 compatible = "samsung,s5pv210-i2s";
66 reg = <0x03830000 0x100>; 66 reg = <0x03830000 0x100>;
67 clocks = <&clock_audss EXYNOS_I2S_BUS>; 67 clocks = <&clock_audss EXYNOS_I2S_BUS>,
68 clock-names = "iis"; 68 <&clock_audss EXYNOS_DOUT_AUD_BUS>,
69 <&clock_audss EXYNOS_SCLK_I2S>;
70 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
69 #clock-cells = <1>; 71 #clock-cells = <1>;
70 clock-output-names = "i2s_cdclk0"; 72 clock-output-names = "i2s_cdclk0";
71 dmas = <&pdma0 12>, <&pdma0 11>, <&pdma0 10>; 73 dmas = <&pdma0 12>, <&pdma0 11>, <&pdma0 10>;
@@ -100,18 +102,21 @@
100 compatible = "samsung,exynos4210-pd"; 102 compatible = "samsung,exynos4210-pd";
101 reg = <0x10023C40 0x20>; 103 reg = <0x10023C40 0x20>;
102 #power-domain-cells = <0>; 104 #power-domain-cells = <0>;
105 label = "MFC";
103 }; 106 };
104 107
105 pd_g3d: g3d-power-domain@10023C60 { 108 pd_g3d: g3d-power-domain@10023C60 {
106 compatible = "samsung,exynos4210-pd"; 109 compatible = "samsung,exynos4210-pd";
107 reg = <0x10023C60 0x20>; 110 reg = <0x10023C60 0x20>;
108 #power-domain-cells = <0>; 111 #power-domain-cells = <0>;
112 label = "G3D";
109 }; 113 };
110 114
111 pd_lcd0: lcd0-power-domain@10023C80 { 115 pd_lcd0: lcd0-power-domain@10023C80 {
112 compatible = "samsung,exynos4210-pd"; 116 compatible = "samsung,exynos4210-pd";
113 reg = <0x10023C80 0x20>; 117 reg = <0x10023C80 0x20>;
114 #power-domain-cells = <0>; 118 #power-domain-cells = <0>;
119 label = "LCD0";
115 }; 120 };
116 121
117 pd_tv: tv-power-domain@10023C20 { 122 pd_tv: tv-power-domain@10023C20 {
@@ -119,24 +124,28 @@
119 reg = <0x10023C20 0x20>; 124 reg = <0x10023C20 0x20>;
120 #power-domain-cells = <0>; 125 #power-domain-cells = <0>;
121 power-domains = <&pd_lcd0>; 126 power-domains = <&pd_lcd0>;
127 label = "TV";
122 }; 128 };
123 129
124 pd_cam: cam-power-domain@10023C00 { 130 pd_cam: cam-power-domain@10023C00 {
125 compatible = "samsung,exynos4210-pd"; 131 compatible = "samsung,exynos4210-pd";
126 reg = <0x10023C00 0x20>; 132 reg = <0x10023C00 0x20>;
127 #power-domain-cells = <0>; 133 #power-domain-cells = <0>;
134 label = "CAM";
128 }; 135 };
129 136
130 pd_gps: gps-power-domain@10023CE0 { 137 pd_gps: gps-power-domain@10023CE0 {
131 compatible = "samsung,exynos4210-pd"; 138 compatible = "samsung,exynos4210-pd";
132 reg = <0x10023CE0 0x20>; 139 reg = <0x10023CE0 0x20>;
133 #power-domain-cells = <0>; 140 #power-domain-cells = <0>;
141 label = "GPS";
134 }; 142 };
135 143
136 pd_gps_alive: gps-alive-power-domain@10023D00 { 144 pd_gps_alive: gps-alive-power-domain@10023D00 {
137 compatible = "samsung,exynos4210-pd"; 145 compatible = "samsung,exynos4210-pd";
138 reg = <0x10023D00 0x20>; 146 reg = <0x10023D00 0x20>;
139 #power-domain-cells = <0>; 147 #power-domain-cells = <0>;
148 label = "GPS alive";
140 }; 149 };
141 150
142 gic: interrupt-controller@10490000 { 151 gic: interrupt-controller@10490000 {
@@ -370,19 +379,19 @@
370 #address-cells = <1>; 379 #address-cells = <1>;
371 #size-cells = <0>; 380 #size-cells = <0>;
372 port@0 { 381 port@0 {
373 reg = <0>; 382 reg = <0>;
374 phys = <&exynos_usbphy 1>; 383 phys = <&exynos_usbphy 1>;
375 status = "disabled"; 384 status = "disabled";
376 }; 385 };
377 port@1 { 386 port@1 {
378 reg = <1>; 387 reg = <1>;
379 phys = <&exynos_usbphy 2>; 388 phys = <&exynos_usbphy 2>;
380 status = "disabled"; 389 status = "disabled";
381 }; 390 };
382 port@2 { 391 port@2 {
383 reg = <2>; 392 reg = <2>;
384 phys = <&exynos_usbphy 3>; 393 phys = <&exynos_usbphy 3>;
385 status = "disabled"; 394 status = "disabled";
386 }; 395 };
387 }; 396 };
388 397
@@ -396,9 +405,9 @@
396 #address-cells = <1>; 405 #address-cells = <1>;
397 #size-cells = <0>; 406 #size-cells = <0>;
398 port@0 { 407 port@0 {
399 reg = <0>; 408 reg = <0>;
400 phys = <&exynos_usbphy 1>; 409 phys = <&exynos_usbphy 1>;
401 status = "disabled"; 410 status = "disabled";
402 }; 411 };
403 }; 412 };
404 413
diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
index 7f3a18c8f60f..f9408188f97f 100644
--- a/arch/arm/boot/dts/exynos4210.dtsi
+++ b/arch/arm/boot/dts/exynos4210.dtsi
@@ -86,6 +86,7 @@
86 compatible = "samsung,exynos4210-pd"; 86 compatible = "samsung,exynos4210-pd";
87 reg = <0x10023CA0 0x20>; 87 reg = <0x10023CA0 0x20>;
88 #power-domain-cells = <0>; 88 #power-domain-cells = <0>;
89 label = "LCD1";
89 }; 90 };
90 91
91 l2c: l2-cache-controller@10502000 { 92 l2c: l2-cache-controller@10502000 {
diff --git a/arch/arm/boot/dts/exynos4212.dtsi b/arch/arm/boot/dts/exynos4212.dtsi
deleted file mode 100644
index 538901123d37..000000000000
--- a/arch/arm/boot/dts/exynos4212.dtsi
+++ /dev/null
@@ -1,133 +0,0 @@
1/*
2 * Samsung's Exynos4212 SoC device tree source
3 *
4 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 * http://www.samsung.com
6 *
7 * Samsung's Exynos4212 SoC device nodes are listed in this file. Exynos4212
8 * based board files can include this file and provide values for board specfic
9 * bindings.
10 *
11 * Note: This file does not include device nodes for all the controllers in
12 * Exynos4212 SoC. As device tree coverage for Exynos4212 increases, additional
13 * nodes can be added to this file.
14 *
15 * This program is free software; you can redistribute it and/or modify
16 * it under the terms of the GNU General Public License version 2 as
17 * published by the Free Software Foundation.
18*/
19
20#include "exynos4x12.dtsi"
21
22/ {
23 compatible = "samsung,exynos4212", "samsung,exynos4";
24
25 cpus {
26 #address-cells = <1>;
27 #size-cells = <0>;
28
29 cpu0: cpu@A00 {
30 device_type = "cpu";
31 compatible = "arm,cortex-a9";
32 reg = <0xA00>;
33 clocks = <&clock CLK_ARM_CLK>;
34 clock-names = "cpu";
35 operating-points-v2 = <&cpu0_opp_table>;
36 cooling-min-level = <13>;
37 cooling-max-level = <7>;
38 #cooling-cells = <2>; /* min followed by max */
39 };
40
41 cpu@A01 {
42 device_type = "cpu";
43 compatible = "arm,cortex-a9";
44 reg = <0xA01>;
45 operating-points-v2 = <&cpu0_opp_table>;
46 };
47 };
48
49 cpu0_opp_table: opp_table0 {
50 compatible = "operating-points-v2";
51 opp-shared;
52
53 opp00 {
54 opp-hz = /bits/ 64 <200000000>;
55 opp-microvolt = <900000>;
56 clock-latency-ns = <200000>;
57 };
58 opp01 {
59 opp-hz = /bits/ 64 <300000000>;
60 opp-microvolt = <900000>;
61 clock-latency-ns = <200000>;
62 };
63 opp02 {
64 opp-hz = /bits/ 64 <400000000>;
65 opp-microvolt = <925000>;
66 clock-latency-ns = <200000>;
67 };
68 opp03 {
69 opp-hz = /bits/ 64 <500000000>;
70 opp-microvolt = <950000>;
71 clock-latency-ns = <200000>;
72 };
73 opp04 {
74 opp-hz = /bits/ 64 <600000000>;
75 opp-microvolt = <975000>;
76 clock-latency-ns = <200000>;
77 };
78 opp05 {
79 opp-hz = /bits/ 64 <700000000>;
80 opp-microvolt = <987500>;
81 clock-latency-ns = <200000>;
82 };
83 opp06 {
84 opp-hz = /bits/ 64 <800000000>;
85 opp-microvolt = <1000000>;
86 clock-latency-ns = <200000>;
87 };
88 opp07 {
89 opp-hz = /bits/ 64 <900000000>;
90 opp-microvolt = <1037500>;
91 clock-latency-ns = <200000>;
92 };
93 opp08 {
94 opp-hz = /bits/ 64 <1000000000>;
95 opp-microvolt = <1087500>;
96 clock-latency-ns = <200000>;
97 };
98 opp09 {
99 opp-hz = /bits/ 64 <1100000000>;
100 opp-microvolt = <1137500>;
101 clock-latency-ns = <200000>;
102 };
103 opp10 {
104 opp-hz = /bits/ 64 <1200000000>;
105 opp-microvolt = <1187500>;
106 clock-latency-ns = <200000>;
107 };
108 opp11 {
109 opp-hz = /bits/ 64 <1300000000>;
110 opp-microvolt = <1250000>;
111 clock-latency-ns = <200000>;
112 };
113 opp12 {
114 opp-hz = /bits/ 64 <1400000000>;
115 opp-microvolt = <1287500>;
116 clock-latency-ns = <200000>;
117 };
118 opp13 {
119 opp-hz = /bits/ 64 <1500000000>;
120 opp-microvolt = <1350000>;
121 clock-latency-ns = <200000>;
122 turbo-mode;
123 };
124 };
125};
126
127&combiner {
128 samsung,combiner-nr = <18>;
129};
130
131&gic {
132 cpu-offset = <0x8000>;
133};
diff --git a/arch/arm/boot/dts/exynos4412-itop-elite.dts b/arch/arm/boot/dts/exynos4412-itop-elite.dts
index 76d87f397178..d66093084dbb 100644
--- a/arch/arm/boot/dts/exynos4412-itop-elite.dts
+++ b/arch/arm/boot/dts/exynos4412-itop-elite.dts
@@ -82,17 +82,6 @@
82 compatible = "simple-audio-card"; 82 compatible = "simple-audio-card";
83 simple-audio-card,name = "wm-sound"; 83 simple-audio-card,name = "wm-sound";
84 84
85 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
86 <&clock_audss EXYNOS_MOUT_I2S>,
87 <&clock_audss EXYNOS_DOUT_SRP>,
88 <&clock_audss EXYNOS_DOUT_AUD_BUS>;
89 assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
90 <&clock_audss EXYNOS_MOUT_AUDSS>;
91 assigned-clock-rates = <0>,
92 <0>,
93 <112896000>,
94 <11289600>;
95
96 simple-audio-card,format = "i2s"; 85 simple-audio-card,format = "i2s";
97 simple-audio-card,bitclock-master = <&link0_codec>; 86 simple-audio-card,bitclock-master = <&link0_codec>;
98 simple-audio-card,frame-master = <&link0_codec>; 87 simple-audio-card,frame-master = <&link0_codec>;
@@ -145,6 +134,16 @@
145 status = "okay"; 134 status = "okay";
146}; 135};
147 136
137&clock_audss {
138 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
139 <&clock_audss EXYNOS_MOUT_I2S>,
140 <&clock_audss EXYNOS_DOUT_SRP>,
141 <&clock_audss EXYNOS_DOUT_AUD_BUS>;
142 assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
143 <&clock_audss EXYNOS_MOUT_AUDSS>;
144 assigned-clock-rates = <0>, <0>, <112896000>, <11289600>;
145};
146
148&ehci { 147&ehci {
149 status = "okay"; 148 status = "okay";
150 /* In order to reset USB ethernet */ 149 /* In order to reset USB ethernet */
@@ -198,10 +197,6 @@
198 pinctrl-0 = <&i2s0_bus>; 197 pinctrl-0 = <&i2s0_bus>;
199 pinctrl-names = "default"; 198 pinctrl-names = "default";
200 status = "okay"; 199 status = "okay";
201 clocks = <&clock_audss EXYNOS_I2S_BUS>,
202 <&clock_audss EXYNOS_DOUT_AUD_BUS>,
203 <&clock_audss EXYNOS_SCLK_I2S>;
204 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
205}; 200};
206 201
207&pinctrl_1 { 202&pinctrl_1 {
diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
index 8aa19ba14436..78f118cb73d4 100644
--- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
+++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
@@ -43,16 +43,6 @@
43 43
44 sound: sound { 44 sound: sound {
45 compatible = "simple-audio-card"; 45 compatible = "simple-audio-card";
46 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
47 <&clock_audss EXYNOS_MOUT_I2S>,
48 <&clock_audss EXYNOS_DOUT_SRP>,
49 <&clock_audss EXYNOS_DOUT_AUD_BUS>;
50 assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
51 <&clock_audss EXYNOS_MOUT_AUDSS>;
52 assigned-clock-rates = <0>,
53 <0>,
54 <192000000>,
55 <19200000>;
56 46
57 simple-audio-card,format = "i2s"; 47 simple-audio-card,format = "i2s";
58 simple-audio-card,bitclock-master = <&link0_codec>; 48 simple-audio-card,bitclock-master = <&link0_codec>;
@@ -97,11 +87,11 @@
97 thermal-zones { 87 thermal-zones {
98 cpu_thermal: cpu-thermal { 88 cpu_thermal: cpu-thermal {
99 cooling-maps { 89 cooling-maps {
100 map0 { 90 cooling_map0: map0 {
101 /* Corresponds to 800MHz at freq_table */ 91 /* Corresponds to 800MHz at freq_table */
102 cooling-device = <&cpu0 7 7>; 92 cooling-device = <&cpu0 7 7>;
103 }; 93 };
104 map1 { 94 cooling_map1: map1 {
105 /* Corresponds to 200MHz at freq_table */ 95 /* Corresponds to 200MHz at freq_table */
106 cooling-device = <&cpu0 13 13>; 96 cooling-device = <&cpu0 13 13>;
107 }; 97 };
@@ -157,6 +147,16 @@
157 status = "okay"; 147 status = "okay";
158}; 148};
159 149
150&clock_audss {
151 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
152 <&clock_audss EXYNOS_MOUT_I2S>,
153 <&clock_audss EXYNOS_DOUT_SRP>,
154 <&clock_audss EXYNOS_DOUT_AUD_BUS>;
155 assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
156 <&clock_audss EXYNOS_MOUT_AUDSS>;
157 assigned-clock-rates = <0>, <0>, <192000000>, <19200000>;
158};
159
160&cpu0 { 160&cpu0 {
161 cpu0-supply = <&buck2_reg>; 161 cpu0-supply = <&buck2_reg>;
162}; 162};
@@ -503,10 +503,6 @@
503 pinctrl-0 = <&i2s0_bus>; 503 pinctrl-0 = <&i2s0_bus>;
504 pinctrl-names = "default"; 504 pinctrl-names = "default";
505 status = "okay"; 505 status = "okay";
506 clocks = <&clock_audss EXYNOS_I2S_BUS>,
507 <&clock_audss EXYNOS_DOUT_AUD_BUS>,
508 <&clock_audss EXYNOS_SCLK_I2S>;
509 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
510}; 506};
511 507
512&mixer { 508&mixer {
diff --git a/arch/arm/boot/dts/exynos4412-odroidu3.dts b/arch/arm/boot/dts/exynos4412-odroidu3.dts
index 99634c54dca9..7504a5aa538e 100644
--- a/arch/arm/boot/dts/exynos4412-odroidu3.dts
+++ b/arch/arm/boot/dts/exynos4412-odroidu3.dts
@@ -13,6 +13,7 @@
13 13
14/dts-v1/; 14/dts-v1/;
15#include "exynos4412-odroid-common.dtsi" 15#include "exynos4412-odroid-common.dtsi"
16#include "exynos4412-prime.dtsi"
16 17
17/ { 18/ {
18 model = "Hardkernel ODROID-U3 board based on Exynos4412"; 19 model = "Hardkernel ODROID-U3 board based on Exynos4412";
@@ -47,11 +48,11 @@
47 cooling-maps { 48 cooling-maps {
48 map0 { 49 map0 {
49 trip = <&cpu_alert1>; 50 trip = <&cpu_alert1>;
50 cooling-device = <&cpu0 7 7>; 51 cooling-device = <&cpu0 9 9>;
51 }; 52 };
52 map1 { 53 map1 {
53 trip = <&cpu_alert2>; 54 trip = <&cpu_alert2>;
54 cooling-device = <&cpu0 13 13>; 55 cooling-device = <&cpu0 15 15>;
55 }; 56 };
56 map2 { 57 map2 {
57 trip = <&cpu_alert0>; 58 trip = <&cpu_alert0>;
diff --git a/arch/arm/boot/dts/exynos4412-odroidx.dts b/arch/arm/boot/dts/exynos4412-odroidx.dts
index 153a75fe6e24..46b931eec228 100644
--- a/arch/arm/boot/dts/exynos4412-odroidx.dts
+++ b/arch/arm/boot/dts/exynos4412-odroidx.dts
@@ -100,3 +100,16 @@
100&serial_3 { 100&serial_3 {
101 status = "okay"; 101 status = "okay";
102}; 102};
103
104&sound {
105 simple-audio-card,name = "Odroid-X";
106 simple-audio-card,widgets =
107 "Headphone", "Headphone Jack",
108 "Microphone", "Mic Jack",
109 "Microphone", "DMIC";
110 simple-audio-card,routing =
111 "Headphone Jack", "HPL",
112 "Headphone Jack", "HPR",
113 "IN1", "Mic Jack",
114 "Mic Jack", "MICBIAS";
115};
diff --git a/arch/arm/boot/dts/exynos4412-odroidx2.dts b/arch/arm/boot/dts/exynos4412-odroidx2.dts
index 4d228858f172..d867b2ee95ca 100644
--- a/arch/arm/boot/dts/exynos4412-odroidx2.dts
+++ b/arch/arm/boot/dts/exynos4412-odroidx2.dts
@@ -12,6 +12,7 @@
12*/ 12*/
13 13
14#include "exynos4412-odroidx.dts" 14#include "exynos4412-odroidx.dts"
15#include "exynos4412-prime.dtsi"
15 16
16/ { 17/ {
17 model = "Hardkernel ODROID-X2 board based on Exynos4412"; 18 model = "Hardkernel ODROID-X2 board based on Exynos4412";
@@ -22,27 +23,3 @@
22 reg = <0x40000000 0x7FF00000>; 23 reg = <0x40000000 0x7FF00000>;
23 }; 24 };
24}; 25};
25
26/* VDDQ for MSHC (eMMC card) */
27&buck8_reg {
28 regulator-name = "BUCK8_VDDQ_MMC4_2.8V";
29 regulator-min-microvolt = <2800000>;
30 regulator-max-microvolt = <2800000>;
31};
32
33&mshc_0 {
34 vqmmc-supply = <&buck8_reg>;
35};
36
37&sound {
38 simple-audio-card,name = "Odroid-X2";
39 simple-audio-card,widgets =
40 "Headphone", "Headphone Jack",
41 "Microphone", "Mic Jack",
42 "Microphone", "DMIC";
43 simple-audio-card,routing =
44 "Headphone Jack", "HPL",
45 "Headphone Jack", "HPR",
46 "IN1", "Mic Jack",
47 "Mic Jack", "MICBIAS";
48};
diff --git a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi b/arch/arm/boot/dts/exynos4412-pinctrl.dtsi
index 2f866f6e5838..1d27c28564e4 100644
--- a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
+++ b/arch/arm/boot/dts/exynos4412-pinctrl.dtsi
@@ -1,10 +1,10 @@
1/* 1/*
2 * Samsung's Exynos4x12 SoCs pin-mux and pin-config device tree source 2 * Samsung's Exynos4412 SoCs pin-mux and pin-config device tree source
3 * 3 *
4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 4 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 * http://www.samsung.com 5 * http://www.samsung.com
6 * 6 *
7 * Samsung's Exynos4x12 SoCs pin-mux and pin-config optiosn are listed as device 7 * Samsung's Exynos4412 SoCs pin-mux and pin-config optiosn are listed as device
8 * tree nodes are listed in this file. 8 * tree nodes are listed in this file.
9 * 9 *
10 * This program is free software; you can redistribute it and/or modify 10 * This program is free software; you can redistribute it and/or modify
diff --git a/arch/arm/boot/dts/exynos4412-prime.dtsi b/arch/arm/boot/dts/exynos4412-prime.dtsi
new file mode 100644
index 000000000000..e75bc170c89c
--- /dev/null
+++ b/arch/arm/boot/dts/exynos4412-prime.dtsi
@@ -0,0 +1,41 @@
1/*
2 * Samsung's Exynos4412 Prime SoC device tree source
3 *
4 * Copyright (c) 2016 Samsung Electronics Co., Ltd.
5 * http://www.samsung.com
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11
12/*
13 * Exynos4412 Prime SoC revision supports higher CPU frequencies than
14 * non-Prime version. Therefore we need to update OPPs table and
15 * thermal maps accordingly.
16 */
17
18&cpu0_opp_1500 {
19 /delete-property/turbo-mode;
20};
21
22&cpu0_opp_table {
23 opp@1600000000 {
24 opp-hz = /bits/ 64 <1600000000>;
25 opp-microvolt = <1350000>;
26 clock-latency-ns = <200000>;
27 };
28 opp@1704000000 {
29 opp-hz = /bits/ 64 <1704000000>;
30 opp-microvolt = <1350000>;
31 clock-latency-ns = <200000>;
32 };
33};
34
35&cooling_map0 {
36 cooling-device = <&cpu0 9 9>;
37};
38
39&cooling_map1 {
40 cooling-device = <&cpu0 15 15>;
41};
diff --git a/arch/arm/boot/dts/exynos4412.dtsi b/arch/arm/boot/dts/exynos4412.dtsi
index 40beede46e55..235bbb69ad7c 100644
--- a/arch/arm/boot/dts/exynos4412.dtsi
+++ b/arch/arm/boot/dts/exynos4412.dtsi
@@ -17,11 +17,23 @@
17 * published by the Free Software Foundation. 17 * published by the Free Software Foundation.
18*/ 18*/
19 19
20#include "exynos4x12.dtsi" 20#include "exynos4.dtsi"
21#include "exynos4412-pinctrl.dtsi"
22#include "exynos4-cpu-thermal.dtsi"
21 23
22/ { 24/ {
23 compatible = "samsung,exynos4412", "samsung,exynos4"; 25 compatible = "samsung,exynos4412", "samsung,exynos4";
24 26
27 aliases {
28 pinctrl0 = &pinctrl_0;
29 pinctrl1 = &pinctrl_1;
30 pinctrl2 = &pinctrl_2;
31 pinctrl3 = &pinctrl_3;
32 fimc-lite0 = &fimc_lite_0;
33 fimc-lite1 = &fimc_lite_1;
34 mshc0 = &mshc_0;
35 };
36
25 cpus { 37 cpus {
26 #address-cells = <1>; 38 #address-cells = <1>;
27 #size-cells = <0>; 39 #size-cells = <0>;
@@ -130,7 +142,7 @@
130 opp-microvolt = <1287500>; 142 opp-microvolt = <1287500>;
131 clock-latency-ns = <200000>; 143 clock-latency-ns = <200000>;
132 }; 144 };
133 opp@1500000000 { 145 cpu0_opp_1500: opp@1500000000 {
134 opp-hz = /bits/ 64 <1500000000>; 146 opp-hz = /bits/ 64 <1500000000>;
135 opp-microvolt = <1350000>; 147 opp-microvolt = <1350000>;
136 clock-latency-ns = <200000>; 148 clock-latency-ns = <200000>;
@@ -138,19 +150,573 @@
138 }; 150 };
139 }; 151 };
140 152
153 sysram@02020000 {
154 compatible = "mmio-sram";
155 reg = <0x02020000 0x40000>;
156 #address-cells = <1>;
157 #size-cells = <1>;
158 ranges = <0 0x02020000 0x40000>;
159
160 smp-sysram@0 {
161 compatible = "samsung,exynos4210-sysram";
162 reg = <0x0 0x1000>;
163 };
164
165 smp-sysram@2f000 {
166 compatible = "samsung,exynos4210-sysram-ns";
167 reg = <0x2f000 0x1000>;
168 };
169 };
170
171 pd_isp: isp-power-domain@10023CA0 {
172 compatible = "samsung,exynos4210-pd";
173 reg = <0x10023CA0 0x20>;
174 #power-domain-cells = <0>;
175 label = "ISP";
176 };
177
178 l2c: l2-cache-controller@10502000 {
179 compatible = "arm,pl310-cache";
180 reg = <0x10502000 0x1000>;
181 cache-unified;
182 cache-level = <2>;
183 arm,tag-latency = <2 2 1>;
184 arm,data-latency = <3 2 1>;
185 arm,double-linefill = <1>;
186 arm,double-linefill-incr = <0>;
187 arm,double-linefill-wrap = <1>;
188 arm,prefetch-drop = <1>;
189 arm,prefetch-offset = <7>;
190 };
191
192 clock: clock-controller@10030000 {
193 compatible = "samsung,exynos4412-clock";
194 reg = <0x10030000 0x20000>;
195 #clock-cells = <1>;
196 };
197
198 mct@10050000 {
199 compatible = "samsung,exynos4412-mct";
200 reg = <0x10050000 0x800>;
201 interrupt-parent = <&mct_map>;
202 interrupts = <0>, <1>, <2>, <3>, <4>;
203 clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MCT>;
204 clock-names = "fin_pll", "mct";
205
206 mct_map: mct-map {
207 #interrupt-cells = <1>;
208 #address-cells = <0>;
209 #size-cells = <0>;
210 interrupt-map = <0 &gic 0 57 IRQ_TYPE_LEVEL_HIGH>,
211 <1 &combiner 12 5>,
212 <2 &combiner 12 6>,
213 <3 &combiner 12 7>,
214 <4 &gic 1 12 IRQ_TYPE_LEVEL_HIGH>;
215 };
216 };
217
218 adc: adc@126C0000 {
219 compatible = "samsung,exynos-adc-v1";
220 reg = <0x126C0000 0x100>;
221 interrupt-parent = <&combiner>;
222 interrupts = <10 3>;
223 clocks = <&clock CLK_TSADC>;
224 clock-names = "adc";
225 #io-channel-cells = <1>;
226 io-channel-ranges;
227 samsung,syscon-phandle = <&pmu_system_controller>;
228 status = "disabled";
229 };
230
231 g2d: g2d@10800000 {
232 compatible = "samsung,exynos4212-g2d";
233 reg = <0x10800000 0x1000>;
234 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
235 clocks = <&clock CLK_SCLK_FIMG2D>, <&clock CLK_G2D>;
236 clock-names = "sclk_fimg2d", "fimg2d";
237 iommus = <&sysmmu_g2d>;
238 };
239
240 camera {
241 clocks = <&clock CLK_SCLK_CAM0>, <&clock CLK_SCLK_CAM1>,
242 <&clock CLK_PIXELASYNCM0>, <&clock CLK_PIXELASYNCM1>;
243 clock-names = "sclk_cam0", "sclk_cam1", "pxl_async0", "pxl_async1";
244
245 /* fimc_[0-3] are configured outside, under phandles */
246 fimc_lite_0: fimc-lite@12390000 {
247 compatible = "samsung,exynos4212-fimc-lite";
248 reg = <0x12390000 0x1000>;
249 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
250 power-domains = <&pd_isp>;
251 clocks = <&clock CLK_FIMC_LITE0>;
252 clock-names = "flite";
253 iommus = <&sysmmu_fimc_lite0>;
254 status = "disabled";
255 };
256
257 fimc_lite_1: fimc-lite@123A0000 {
258 compatible = "samsung,exynos4212-fimc-lite";
259 reg = <0x123A0000 0x1000>;
260 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
261 power-domains = <&pd_isp>;
262 clocks = <&clock CLK_FIMC_LITE1>;
263 clock-names = "flite";
264 iommus = <&sysmmu_fimc_lite1>;
265 status = "disabled";
266 };
267
268 fimc_is: fimc-is@12000000 {
269 compatible = "samsung,exynos4212-fimc-is";
270 reg = <0x12000000 0x260000>;
271 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
272 <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
273 power-domains = <&pd_isp>;
274 clocks = <&clock CLK_FIMC_LITE0>,
275 <&clock CLK_FIMC_LITE1>, <&clock CLK_PPMUISPX>,
276 <&clock CLK_PPMUISPMX>,
277 <&clock CLK_MOUT_MPLL_USER_T>,
278 <&clock CLK_FIMC_ISP>, <&clock CLK_FIMC_DRC>,
279 <&clock CLK_FIMC_FD>, <&clock CLK_MCUISP>,
280 <&clock CLK_GICISP>, <&clock CLK_MCUCTL_ISP>,
281 <&clock CLK_PWM_ISP>,
282 <&clock CLK_DIV_ISP0>, <&clock CLK_DIV_ISP1>,
283 <&clock CLK_DIV_MCUISP0>,
284 <&clock CLK_DIV_MCUISP1>,
285 <&clock CLK_UART_ISP_SCLK>,
286 <&clock CLK_ACLK200>, <&clock CLK_DIV_ACLK200>,
287 <&clock CLK_ACLK400_MCUISP>,
288 <&clock CLK_DIV_ACLK400_MCUISP>;
289 clock-names = "lite0", "lite1", "ppmuispx",
290 "ppmuispmx", "mpll", "isp",
291 "drc", "fd", "mcuisp",
292 "gicisp", "mcuctl_isp", "pwm_isp",
293 "ispdiv0", "ispdiv1", "mcuispdiv0",
294 "mcuispdiv1", "uart", "aclk200",
295 "div_aclk200", "aclk400mcuisp",
296 "div_aclk400mcuisp";
297 iommus = <&sysmmu_fimc_isp>, <&sysmmu_fimc_drc>,
298 <&sysmmu_fimc_fd>, <&sysmmu_fimc_mcuctl>;
299 iommu-names = "isp", "drc", "fd", "mcuctl";
300 #address-cells = <1>;
301 #size-cells = <1>;
302 ranges;
303 status = "disabled";
304
305 pmu@10020000 {
306 reg = <0x10020000 0x3000>;
307 };
308
309 i2c1_isp: i2c-isp@12140000 {
310 compatible = "samsung,exynos4212-i2c-isp";
311 reg = <0x12140000 0x100>;
312 clocks = <&clock CLK_I2C1_ISP>;
313 clock-names = "i2c_isp";
314 #address-cells = <1>;
315 #size-cells = <0>;
316 };
317 };
318 };
319
320 mshc_0: mmc@12550000 {
321 compatible = "samsung,exynos4412-dw-mshc";
322 reg = <0x12550000 0x1000>;
323 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
324 #address-cells = <1>;
325 #size-cells = <0>;
326 fifo-depth = <0x80>;
327 clocks = <&clock CLK_SDMMC4>, <&clock CLK_SCLK_MMC4>;
328 clock-names = "biu", "ciu";
329 status = "disabled";
330 };
331
332 sysmmu_g2d: sysmmu@10A40000{
333 compatible = "samsung,exynos-sysmmu";
334 reg = <0x10A40000 0x1000>;
335 interrupt-parent = <&combiner>;
336 interrupts = <4 7>;
337 clock-names = "sysmmu", "master";
338 clocks = <&clock CLK_SMMU_G2D>, <&clock CLK_G2D>;
339 #iommu-cells = <0>;
340 };
341
342 sysmmu_fimc_isp: sysmmu@12260000 {
343 compatible = "samsung,exynos-sysmmu";
344 reg = <0x12260000 0x1000>;
345 interrupt-parent = <&combiner>;
346 interrupts = <16 2>;
347 power-domains = <&pd_isp>;
348 clock-names = "sysmmu";
349 clocks = <&clock CLK_SMMU_ISP>;
350 #iommu-cells = <0>;
351 };
352
353 sysmmu_fimc_drc: sysmmu@12270000 {
354 compatible = "samsung,exynos-sysmmu";
355 reg = <0x12270000 0x1000>;
356 interrupt-parent = <&combiner>;
357 interrupts = <16 3>;
358 power-domains = <&pd_isp>;
359 clock-names = "sysmmu";
360 clocks = <&clock CLK_SMMU_DRC>;
361 #iommu-cells = <0>;
362 };
363
364 sysmmu_fimc_fd: sysmmu@122A0000 {
365 compatible = "samsung,exynos-sysmmu";
366 reg = <0x122A0000 0x1000>;
367 interrupt-parent = <&combiner>;
368 interrupts = <16 4>;
369 power-domains = <&pd_isp>;
370 clock-names = "sysmmu";
371 clocks = <&clock CLK_SMMU_FD>;
372 #iommu-cells = <0>;
373 };
374
375 sysmmu_fimc_mcuctl: sysmmu@122B0000 {
376 compatible = "samsung,exynos-sysmmu";
377 reg = <0x122B0000 0x1000>;
378 interrupt-parent = <&combiner>;
379 interrupts = <16 5>;
380 power-domains = <&pd_isp>;
381 clock-names = "sysmmu";
382 clocks = <&clock CLK_SMMU_ISPCX>;
383 #iommu-cells = <0>;
384 };
385
386 sysmmu_fimc_lite0: sysmmu@123B0000 {
387 compatible = "samsung,exynos-sysmmu";
388 reg = <0x123B0000 0x1000>;
389 interrupt-parent = <&combiner>;
390 interrupts = <16 0>;
391 power-domains = <&pd_isp>;
392 clock-names = "sysmmu", "master";
393 clocks = <&clock CLK_SMMU_LITE0>, <&clock CLK_FIMC_LITE0>;
394 #iommu-cells = <0>;
395 };
396
397 sysmmu_fimc_lite1: sysmmu@123C0000 {
398 compatible = "samsung,exynos-sysmmu";
399 reg = <0x123C0000 0x1000>;
400 interrupt-parent = <&combiner>;
401 interrupts = <16 1>;
402 power-domains = <&pd_isp>;
403 clock-names = "sysmmu", "master";
404 clocks = <&clock CLK_SMMU_LITE1>, <&clock CLK_FIMC_LITE1>;
405 #iommu-cells = <0>;
406 };
407
408 bus_dmc: bus_dmc {
409 compatible = "samsung,exynos-bus";
410 clocks = <&clock CLK_DIV_DMC>;
411 clock-names = "bus";
412 operating-points-v2 = <&bus_dmc_opp_table>;
413 status = "disabled";
414 };
415
416 bus_acp: bus_acp {
417 compatible = "samsung,exynos-bus";
418 clocks = <&clock CLK_DIV_ACP>;
419 clock-names = "bus";
420 operating-points-v2 = <&bus_acp_opp_table>;
421 status = "disabled";
422 };
423
424 bus_c2c: bus_c2c {
425 compatible = "samsung,exynos-bus";
426 clocks = <&clock CLK_DIV_C2C>;
427 clock-names = "bus";
428 operating-points-v2 = <&bus_dmc_opp_table>;
429 status = "disabled";
430 };
431
432 bus_dmc_opp_table: opp_table1 {
433 compatible = "operating-points-v2";
434 opp-shared;
435
436 opp@100000000 {
437 opp-hz = /bits/ 64 <100000000>;
438 opp-microvolt = <900000>;
439 };
440 opp@134000000 {
441 opp-hz = /bits/ 64 <134000000>;
442 opp-microvolt = <900000>;
443 };
444 opp@160000000 {
445 opp-hz = /bits/ 64 <160000000>;
446 opp-microvolt = <900000>;
447 };
448 opp@267000000 {
449 opp-hz = /bits/ 64 <267000000>;
450 opp-microvolt = <950000>;
451 };
452 opp@400000000 {
453 opp-hz = /bits/ 64 <400000000>;
454 opp-microvolt = <1050000>;
455 };
456 };
457
458 bus_acp_opp_table: opp_table2 {
459 compatible = "operating-points-v2";
460 opp-shared;
461
462 opp@100000000 {
463 opp-hz = /bits/ 64 <100000000>;
464 };
465 opp@134000000 {
466 opp-hz = /bits/ 64 <134000000>;
467 };
468 opp@160000000 {
469 opp-hz = /bits/ 64 <160000000>;
470 };
471 opp@267000000 {
472 opp-hz = /bits/ 64 <267000000>;
473 };
474 };
475
476 bus_leftbus: bus_leftbus {
477 compatible = "samsung,exynos-bus";
478 clocks = <&clock CLK_DIV_GDL>;
479 clock-names = "bus";
480 operating-points-v2 = <&bus_leftbus_opp_table>;
481 status = "disabled";
482 };
483
484 bus_rightbus: bus_rightbus {
485 compatible = "samsung,exynos-bus";
486 clocks = <&clock CLK_DIV_GDR>;
487 clock-names = "bus";
488 operating-points-v2 = <&bus_leftbus_opp_table>;
489 status = "disabled";
490 };
491
492 bus_display: bus_display {
493 compatible = "samsung,exynos-bus";
494 clocks = <&clock CLK_ACLK160>;
495 clock-names = "bus";
496 operating-points-v2 = <&bus_display_opp_table>;
497 status = "disabled";
498 };
499
500 bus_fsys: bus_fsys {
501 compatible = "samsung,exynos-bus";
502 clocks = <&clock CLK_ACLK133>;
503 clock-names = "bus";
504 operating-points-v2 = <&bus_fsys_opp_table>;
505 status = "disabled";
506 };
507
508 bus_peri: bus_peri {
509 compatible = "samsung,exynos-bus";
510 clocks = <&clock CLK_ACLK100>;
511 clock-names = "bus";
512 operating-points-v2 = <&bus_peri_opp_table>;
513 status = "disabled";
514 };
515
516 bus_mfc: bus_mfc {
517 compatible = "samsung,exynos-bus";
518 clocks = <&clock CLK_SCLK_MFC>;
519 clock-names = "bus";
520 operating-points-v2 = <&bus_leftbus_opp_table>;
521 status = "disabled";
522 };
523
524 bus_leftbus_opp_table: opp_table3 {
525 compatible = "operating-points-v2";
526 opp-shared;
527
528 opp@100000000 {
529 opp-hz = /bits/ 64 <100000000>;
530 opp-microvolt = <900000>;
531 };
532 opp@134000000 {
533 opp-hz = /bits/ 64 <134000000>;
534 opp-microvolt = <925000>;
535 };
536 opp@160000000 {
537 opp-hz = /bits/ 64 <160000000>;
538 opp-microvolt = <950000>;
539 };
540 opp@200000000 {
541 opp-hz = /bits/ 64 <200000000>;
542 opp-microvolt = <1000000>;
543 };
544 };
545
546 bus_display_opp_table: opp_table4 {
547 compatible = "operating-points-v2";
548 opp-shared;
549
550 opp@160000000 {
551 opp-hz = /bits/ 64 <160000000>;
552 };
553 opp@200000000 {
554 opp-hz = /bits/ 64 <200000000>;
555 };
556 };
557
558 bus_fsys_opp_table: opp_table5 {
559 compatible = "operating-points-v2";
560 opp-shared;
561
562 opp@100000000 {
563 opp-hz = /bits/ 64 <100000000>;
564 };
565 opp@134000000 {
566 opp-hz = /bits/ 64 <134000000>;
567 };
568 };
569
570 bus_peri_opp_table: opp_table6 {
571 compatible = "operating-points-v2";
572 opp-shared;
573
574 opp@50000000 {
575 opp-hz = /bits/ 64 <50000000>;
576 };
577 opp@100000000 {
578 opp-hz = /bits/ 64 <100000000>;
579 };
580 };
581
141 pmu { 582 pmu {
142 interrupts = <2 2>, <3 2>, <18 2>, <19 2>; 583 interrupts = <2 2>, <3 2>, <18 2>, <19 2>;
143 }; 584 };
144}; 585};
145 586
146&pmu_system_controller {
147 compatible = "samsung,exynos4412-pmu", "syscon";
148};
149
150&combiner { 587&combiner {
151 samsung,combiner-nr = <20>; 588 samsung,combiner-nr = <20>;
589 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
590 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
591 <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
592 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
593 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
594 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
595 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
596 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
597 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
598 <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
599 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
600 <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
601 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
602 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
603 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
604 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
605 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
606 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
607 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
608 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
609};
610
611&exynos_usbphy {
612 compatible = "samsung,exynos4x12-usb2-phy";
613 samsung,sysreg-phandle = <&sys_reg>;
614};
615
616&fimc_0 {
617 compatible = "samsung,exynos4212-fimc";
618 samsung,pix-limits = <4224 8192 1920 4224>;
619 samsung,mainscaler-ext;
620 samsung,isp-wb;
621 samsung,cam-if;
622};
623
624&fimc_1 {
625 compatible = "samsung,exynos4212-fimc";
626 samsung,pix-limits = <4224 8192 1920 4224>;
627 samsung,mainscaler-ext;
628 samsung,isp-wb;
629 samsung,cam-if;
630};
631
632&fimc_2 {
633 compatible = "samsung,exynos4212-fimc";
634 samsung,pix-limits = <4224 8192 1920 4224>;
635 samsung,mainscaler-ext;
636 samsung,isp-wb;
637 samsung,lcd-wb;
638 samsung,cam-if;
639};
640
641&fimc_3 {
642 compatible = "samsung,exynos4212-fimc";
643 samsung,pix-limits = <1920 8192 1366 1920>;
644 samsung,rotators = <0>;
645 samsung,mainscaler-ext;
646 samsung,isp-wb;
647 samsung,lcd-wb;
152}; 648};
153 649
154&gic { 650&gic {
155 cpu-offset = <0x4000>; 651 cpu-offset = <0x4000>;
156}; 652};
653
654&hdmi {
655 compatible = "samsung,exynos4212-hdmi";
656};
657
658&jpeg_codec {
659 compatible = "samsung,exynos4212-jpeg";
660};
661
662&rotator {
663 compatible = "samsung,exynos4212-rotator";
664};
665
666&mixer {
667 compatible = "samsung,exynos4212-mixer";
668 clock-names = "mixer", "hdmi", "sclk_hdmi", "vp";
669 clocks = <&clock CLK_MIXER>, <&clock CLK_HDMI>,
670 <&clock CLK_SCLK_HDMI>, <&clock CLK_VP>;
671};
672
673&pinctrl_0 {
674 compatible = "samsung,exynos4x12-pinctrl";
675 reg = <0x11400000 0x1000>;
676 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
677};
678
679&pinctrl_1 {
680 compatible = "samsung,exynos4x12-pinctrl";
681 reg = <0x11000000 0x1000>;
682 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
683
684 wakup_eint: wakeup-interrupt-controller {
685 compatible = "samsung,exynos4210-wakeup-eint";
686 interrupt-parent = <&gic>;
687 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
688 };
689};
690
691&pinctrl_2 {
692 compatible = "samsung,exynos4x12-pinctrl";
693 reg = <0x03860000 0x1000>;
694 interrupt-parent = <&combiner>;
695 interrupts = <10 0>;
696};
697
698&pinctrl_3 {
699 compatible = "samsung,exynos4x12-pinctrl";
700 reg = <0x106E0000 0x1000>;
701 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
702};
703
704&pmu_system_controller {
705 compatible = "samsung,exynos4412-pmu", "syscon";
706 clock-names = "clkout0", "clkout1", "clkout2", "clkout3",
707 "clkout4", "clkout8", "clkout9";
708 clocks = <&clock CLK_OUT_DMC>, <&clock CLK_OUT_TOP>,
709 <&clock CLK_OUT_LEFTBUS>, <&clock CLK_OUT_RIGHTBUS>,
710 <&clock CLK_OUT_CPU>, <&clock CLK_XXTI>, <&clock CLK_XUSBXTI>;
711 #clock-cells = <1>;
712};
713
714&tmu {
715 compatible = "samsung,exynos4412-tmu";
716 interrupt-parent = <&combiner>;
717 interrupts = <2 4>;
718 reg = <0x100C0000 0x100>;
719 clocks = <&clock 383>;
720 clock-names = "tmu_apbif";
721 status = "disabled";
722};
diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
deleted file mode 100644
index 85a7122658f1..000000000000
--- a/arch/arm/boot/dts/exynos4x12.dtsi
+++ /dev/null
@@ -1,594 +0,0 @@
1/*
2 * Samsung's Exynos4x12 SoCs device tree source
3 *
4 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 * http://www.samsung.com
6 *
7 * Samsung's Exynos4x12 SoCs device nodes are listed in this file. Exynos4x12
8 * based board files can include this file and provide values for board specfic
9 * bindings.
10 *
11 * Note: This file does not include device nodes for all the controllers in
12 * Exynos4x12 SoC. As device tree coverage for Exynos4x12 increases, additional
13 * nodes can be added to this file.
14 *
15 * This program is free software; you can redistribute it and/or modify
16 * it under the terms of the GNU General Public License version 2 as
17 * published by the Free Software Foundation.
18*/
19
20#include "exynos4.dtsi"
21#include "exynos4x12-pinctrl.dtsi"
22#include "exynos4-cpu-thermal.dtsi"
23
24/ {
25 aliases {
26 pinctrl0 = &pinctrl_0;
27 pinctrl1 = &pinctrl_1;
28 pinctrl2 = &pinctrl_2;
29 pinctrl3 = &pinctrl_3;
30 fimc-lite0 = &fimc_lite_0;
31 fimc-lite1 = &fimc_lite_1;
32 mshc0 = &mshc_0;
33 };
34
35 sysram@02020000 {
36 compatible = "mmio-sram";
37 reg = <0x02020000 0x40000>;
38 #address-cells = <1>;
39 #size-cells = <1>;
40 ranges = <0 0x02020000 0x40000>;
41
42 smp-sysram@0 {
43 compatible = "samsung,exynos4210-sysram";
44 reg = <0x0 0x1000>;
45 };
46
47 smp-sysram@2f000 {
48 compatible = "samsung,exynos4210-sysram-ns";
49 reg = <0x2f000 0x1000>;
50 };
51 };
52
53 pd_isp: isp-power-domain@10023CA0 {
54 compatible = "samsung,exynos4210-pd";
55 reg = <0x10023CA0 0x20>;
56 #power-domain-cells = <0>;
57 };
58
59 l2c: l2-cache-controller@10502000 {
60 compatible = "arm,pl310-cache";
61 reg = <0x10502000 0x1000>;
62 cache-unified;
63 cache-level = <2>;
64 arm,tag-latency = <2 2 1>;
65 arm,data-latency = <3 2 1>;
66 arm,double-linefill = <1>;
67 arm,double-linefill-incr = <0>;
68 arm,double-linefill-wrap = <1>;
69 arm,prefetch-drop = <1>;
70 arm,prefetch-offset = <7>;
71 };
72
73 clock: clock-controller@10030000 {
74 compatible = "samsung,exynos4412-clock";
75 reg = <0x10030000 0x20000>;
76 #clock-cells = <1>;
77 };
78
79 mct@10050000 {
80 compatible = "samsung,exynos4412-mct";
81 reg = <0x10050000 0x800>;
82 interrupt-parent = <&mct_map>;
83 interrupts = <0>, <1>, <2>, <3>, <4>;
84 clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MCT>;
85 clock-names = "fin_pll", "mct";
86
87 mct_map: mct-map {
88 #interrupt-cells = <1>;
89 #address-cells = <0>;
90 #size-cells = <0>;
91 interrupt-map = <0 &gic 0 57 IRQ_TYPE_LEVEL_HIGH>,
92 <1 &combiner 12 5>,
93 <2 &combiner 12 6>,
94 <3 &combiner 12 7>,
95 <4 &gic 1 12 IRQ_TYPE_LEVEL_HIGH>;
96 };
97 };
98
99 adc: adc@126C0000 {
100 compatible = "samsung,exynos-adc-v1";
101 reg = <0x126C0000 0x100>;
102 interrupt-parent = <&combiner>;
103 interrupts = <10 3>;
104 clocks = <&clock CLK_TSADC>;
105 clock-names = "adc";
106 #io-channel-cells = <1>;
107 io-channel-ranges;
108 samsung,syscon-phandle = <&pmu_system_controller>;
109 status = "disabled";
110 };
111
112 g2d: g2d@10800000 {
113 compatible = "samsung,exynos4212-g2d";
114 reg = <0x10800000 0x1000>;
115 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
116 clocks = <&clock CLK_SCLK_FIMG2D>, <&clock CLK_G2D>;
117 clock-names = "sclk_fimg2d", "fimg2d";
118 iommus = <&sysmmu_g2d>;
119 };
120
121 camera {
122 clocks = <&clock CLK_SCLK_CAM0>, <&clock CLK_SCLK_CAM1>,
123 <&clock CLK_PIXELASYNCM0>, <&clock CLK_PIXELASYNCM1>;
124 clock-names = "sclk_cam0", "sclk_cam1", "pxl_async0", "pxl_async1";
125
126 /* fimc_[0-3] are configured outside, under phandles */
127 fimc_lite_0: fimc-lite@12390000 {
128 compatible = "samsung,exynos4212-fimc-lite";
129 reg = <0x12390000 0x1000>;
130 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
131 power-domains = <&pd_isp>;
132 clocks = <&clock CLK_FIMC_LITE0>;
133 clock-names = "flite";
134 iommus = <&sysmmu_fimc_lite0>;
135 status = "disabled";
136 };
137
138 fimc_lite_1: fimc-lite@123A0000 {
139 compatible = "samsung,exynos4212-fimc-lite";
140 reg = <0x123A0000 0x1000>;
141 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
142 power-domains = <&pd_isp>;
143 clocks = <&clock CLK_FIMC_LITE1>;
144 clock-names = "flite";
145 iommus = <&sysmmu_fimc_lite1>;
146 status = "disabled";
147 };
148
149 fimc_is: fimc-is@12000000 {
150 compatible = "samsung,exynos4212-fimc-is";
151 reg = <0x12000000 0x260000>;
152 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
153 <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
154 power-domains = <&pd_isp>;
155 clocks = <&clock CLK_FIMC_LITE0>,
156 <&clock CLK_FIMC_LITE1>, <&clock CLK_PPMUISPX>,
157 <&clock CLK_PPMUISPMX>,
158 <&clock CLK_MOUT_MPLL_USER_T>,
159 <&clock CLK_FIMC_ISP>, <&clock CLK_FIMC_DRC>,
160 <&clock CLK_FIMC_FD>, <&clock CLK_MCUISP>,
161 <&clock CLK_GICISP>, <&clock CLK_MCUCTL_ISP>,
162 <&clock CLK_PWM_ISP>,
163 <&clock CLK_DIV_ISP0>, <&clock CLK_DIV_ISP1>,
164 <&clock CLK_DIV_MCUISP0>,
165 <&clock CLK_DIV_MCUISP1>,
166 <&clock CLK_UART_ISP_SCLK>,
167 <&clock CLK_ACLK200>, <&clock CLK_DIV_ACLK200>,
168 <&clock CLK_ACLK400_MCUISP>,
169 <&clock CLK_DIV_ACLK400_MCUISP>;
170 clock-names = "lite0", "lite1", "ppmuispx",
171 "ppmuispmx", "mpll", "isp",
172 "drc", "fd", "mcuisp",
173 "gicisp", "mcuctl_isp", "pwm_isp",
174 "ispdiv0", "ispdiv1", "mcuispdiv0",
175 "mcuispdiv1", "uart", "aclk200",
176 "div_aclk200", "aclk400mcuisp",
177 "div_aclk400mcuisp";
178 iommus = <&sysmmu_fimc_isp>, <&sysmmu_fimc_drc>,
179 <&sysmmu_fimc_fd>, <&sysmmu_fimc_mcuctl>;
180 iommu-names = "isp", "drc", "fd", "mcuctl";
181 #address-cells = <1>;
182 #size-cells = <1>;
183 ranges;
184 status = "disabled";
185
186 pmu@10020000 {
187 reg = <0x10020000 0x3000>;
188 };
189
190 i2c1_isp: i2c-isp@12140000 {
191 compatible = "samsung,exynos4212-i2c-isp";
192 reg = <0x12140000 0x100>;
193 clocks = <&clock CLK_I2C1_ISP>;
194 clock-names = "i2c_isp";
195 #address-cells = <1>;
196 #size-cells = <0>;
197 };
198 };
199 };
200
201 mshc_0: mmc@12550000 {
202 compatible = "samsung,exynos4412-dw-mshc";
203 reg = <0x12550000 0x1000>;
204 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
205 #address-cells = <1>;
206 #size-cells = <0>;
207 fifo-depth = <0x80>;
208 clocks = <&clock CLK_SDMMC4>, <&clock CLK_SCLK_MMC4>;
209 clock-names = "biu", "ciu";
210 status = "disabled";
211 };
212
213 sysmmu_g2d: sysmmu@10A40000{
214 compatible = "samsung,exynos-sysmmu";
215 reg = <0x10A40000 0x1000>;
216 interrupt-parent = <&combiner>;
217 interrupts = <4 7>;
218 clock-names = "sysmmu", "master";
219 clocks = <&clock CLK_SMMU_G2D>, <&clock CLK_G2D>;
220 #iommu-cells = <0>;
221 };
222
223 sysmmu_fimc_isp: sysmmu@12260000 {
224 compatible = "samsung,exynos-sysmmu";
225 reg = <0x12260000 0x1000>;
226 interrupt-parent = <&combiner>;
227 interrupts = <16 2>;
228 power-domains = <&pd_isp>;
229 clock-names = "sysmmu";
230 clocks = <&clock CLK_SMMU_ISP>;
231 #iommu-cells = <0>;
232 };
233
234 sysmmu_fimc_drc: sysmmu@12270000 {
235 compatible = "samsung,exynos-sysmmu";
236 reg = <0x12270000 0x1000>;
237 interrupt-parent = <&combiner>;
238 interrupts = <16 3>;
239 power-domains = <&pd_isp>;
240 clock-names = "sysmmu";
241 clocks = <&clock CLK_SMMU_DRC>;
242 #iommu-cells = <0>;
243 };
244
245 sysmmu_fimc_fd: sysmmu@122A0000 {
246 compatible = "samsung,exynos-sysmmu";
247 reg = <0x122A0000 0x1000>;
248 interrupt-parent = <&combiner>;
249 interrupts = <16 4>;
250 power-domains = <&pd_isp>;
251 clock-names = "sysmmu";
252 clocks = <&clock CLK_SMMU_FD>;
253 #iommu-cells = <0>;
254 };
255
256 sysmmu_fimc_mcuctl: sysmmu@122B0000 {
257 compatible = "samsung,exynos-sysmmu";
258 reg = <0x122B0000 0x1000>;
259 interrupt-parent = <&combiner>;
260 interrupts = <16 5>;
261 power-domains = <&pd_isp>;
262 clock-names = "sysmmu";
263 clocks = <&clock CLK_SMMU_ISPCX>;
264 #iommu-cells = <0>;
265 };
266
267 sysmmu_fimc_lite0: sysmmu@123B0000 {
268 compatible = "samsung,exynos-sysmmu";
269 reg = <0x123B0000 0x1000>;
270 interrupt-parent = <&combiner>;
271 interrupts = <16 0>;
272 power-domains = <&pd_isp>;
273 clock-names = "sysmmu", "master";
274 clocks = <&clock CLK_SMMU_LITE0>, <&clock CLK_FIMC_LITE0>;
275 #iommu-cells = <0>;
276 };
277
278 sysmmu_fimc_lite1: sysmmu@123C0000 {
279 compatible = "samsung,exynos-sysmmu";
280 reg = <0x123C0000 0x1000>;
281 interrupt-parent = <&combiner>;
282 interrupts = <16 1>;
283 power-domains = <&pd_isp>;
284 clock-names = "sysmmu", "master";
285 clocks = <&clock CLK_SMMU_LITE1>, <&clock CLK_FIMC_LITE1>;
286 #iommu-cells = <0>;
287 };
288
289 bus_dmc: bus_dmc {
290 compatible = "samsung,exynos-bus";
291 clocks = <&clock CLK_DIV_DMC>;
292 clock-names = "bus";
293 operating-points-v2 = <&bus_dmc_opp_table>;
294 status = "disabled";
295 };
296
297 bus_acp: bus_acp {
298 compatible = "samsung,exynos-bus";
299 clocks = <&clock CLK_DIV_ACP>;
300 clock-names = "bus";
301 operating-points-v2 = <&bus_acp_opp_table>;
302 status = "disabled";
303 };
304
305 bus_c2c: bus_c2c {
306 compatible = "samsung,exynos-bus";
307 clocks = <&clock CLK_DIV_C2C>;
308 clock-names = "bus";
309 operating-points-v2 = <&bus_dmc_opp_table>;
310 status = "disabled";
311 };
312
313 bus_dmc_opp_table: opp_table1 {
314 compatible = "operating-points-v2";
315 opp-shared;
316
317 opp@100000000 {
318 opp-hz = /bits/ 64 <100000000>;
319 opp-microvolt = <900000>;
320 };
321 opp@134000000 {
322 opp-hz = /bits/ 64 <134000000>;
323 opp-microvolt = <900000>;
324 };
325 opp@160000000 {
326 opp-hz = /bits/ 64 <160000000>;
327 opp-microvolt = <900000>;
328 };
329 opp@267000000 {
330 opp-hz = /bits/ 64 <267000000>;
331 opp-microvolt = <950000>;
332 };
333 opp@400000000 {
334 opp-hz = /bits/ 64 <400000000>;
335 opp-microvolt = <1050000>;
336 };
337 };
338
339 bus_acp_opp_table: opp_table2 {
340 compatible = "operating-points-v2";
341 opp-shared;
342
343 opp@100000000 {
344 opp-hz = /bits/ 64 <100000000>;
345 };
346 opp@134000000 {
347 opp-hz = /bits/ 64 <134000000>;
348 };
349 opp@160000000 {
350 opp-hz = /bits/ 64 <160000000>;
351 };
352 opp@267000000 {
353 opp-hz = /bits/ 64 <267000000>;
354 };
355 };
356
357 bus_leftbus: bus_leftbus {
358 compatible = "samsung,exynos-bus";
359 clocks = <&clock CLK_DIV_GDL>;
360 clock-names = "bus";
361 operating-points-v2 = <&bus_leftbus_opp_table>;
362 status = "disabled";
363 };
364
365 bus_rightbus: bus_rightbus {
366 compatible = "samsung,exynos-bus";
367 clocks = <&clock CLK_DIV_GDR>;
368 clock-names = "bus";
369 operating-points-v2 = <&bus_leftbus_opp_table>;
370 status = "disabled";
371 };
372
373 bus_display: bus_display {
374 compatible = "samsung,exynos-bus";
375 clocks = <&clock CLK_ACLK160>;
376 clock-names = "bus";
377 operating-points-v2 = <&bus_display_opp_table>;
378 status = "disabled";
379 };
380
381 bus_fsys: bus_fsys {
382 compatible = "samsung,exynos-bus";
383 clocks = <&clock CLK_ACLK133>;
384 clock-names = "bus";
385 operating-points-v2 = <&bus_fsys_opp_table>;
386 status = "disabled";
387 };
388
389 bus_peri: bus_peri {
390 compatible = "samsung,exynos-bus";
391 clocks = <&clock CLK_ACLK100>;
392 clock-names = "bus";
393 operating-points-v2 = <&bus_peri_opp_table>;
394 status = "disabled";
395 };
396
397 bus_mfc: bus_mfc {
398 compatible = "samsung,exynos-bus";
399 clocks = <&clock CLK_SCLK_MFC>;
400 clock-names = "bus";
401 operating-points-v2 = <&bus_leftbus_opp_table>;
402 status = "disabled";
403 };
404
405 bus_leftbus_opp_table: opp_table3 {
406 compatible = "operating-points-v2";
407 opp-shared;
408
409 opp@100000000 {
410 opp-hz = /bits/ 64 <100000000>;
411 opp-microvolt = <900000>;
412 };
413 opp@134000000 {
414 opp-hz = /bits/ 64 <134000000>;
415 opp-microvolt = <925000>;
416 };
417 opp@160000000 {
418 opp-hz = /bits/ 64 <160000000>;
419 opp-microvolt = <950000>;
420 };
421 opp@200000000 {
422 opp-hz = /bits/ 64 <200000000>;
423 opp-microvolt = <1000000>;
424 };
425 };
426
427 bus_display_opp_table: opp_table4 {
428 compatible = "operating-points-v2";
429 opp-shared;
430
431 opp@160000000 {
432 opp-hz = /bits/ 64 <160000000>;
433 };
434 opp@200000000 {
435 opp-hz = /bits/ 64 <200000000>;
436 };
437 };
438
439 bus_fsys_opp_table: opp_table5 {
440 compatible = "operating-points-v2";
441 opp-shared;
442
443 opp@100000000 {
444 opp-hz = /bits/ 64 <100000000>;
445 };
446 opp@134000000 {
447 opp-hz = /bits/ 64 <134000000>;
448 };
449 };
450
451 bus_peri_opp_table: opp_table6 {
452 compatible = "operating-points-v2";
453 opp-shared;
454
455 opp@50000000 {
456 opp-hz = /bits/ 64 <50000000>;
457 };
458 opp@100000000 {
459 opp-hz = /bits/ 64 <100000000>;
460 };
461 };
462};
463
464&combiner {
465 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
466 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
467 <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
468 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
469 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
470 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
471 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
472 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
473 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
474 <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
475 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
476 <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
477 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
478 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
479 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
480 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
481 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
482 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
483 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
484 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
485};
486
487&exynos_usbphy {
488 compatible = "samsung,exynos4x12-usb2-phy";
489 samsung,sysreg-phandle = <&sys_reg>;
490};
491
492&fimc_0 {
493 compatible = "samsung,exynos4212-fimc";
494 samsung,pix-limits = <4224 8192 1920 4224>;
495 samsung,mainscaler-ext;
496 samsung,isp-wb;
497 samsung,cam-if;
498};
499
500&fimc_1 {
501 compatible = "samsung,exynos4212-fimc";
502 samsung,pix-limits = <4224 8192 1920 4224>;
503 samsung,mainscaler-ext;
504 samsung,isp-wb;
505 samsung,cam-if;
506};
507
508&fimc_2 {
509 compatible = "samsung,exynos4212-fimc";
510 samsung,pix-limits = <4224 8192 1920 4224>;
511 samsung,mainscaler-ext;
512 samsung,isp-wb;
513 samsung,lcd-wb;
514 samsung,cam-if;
515};
516
517&fimc_3 {
518 compatible = "samsung,exynos4212-fimc";
519 samsung,pix-limits = <1920 8192 1366 1920>;
520 samsung,rotators = <0>;
521 samsung,mainscaler-ext;
522 samsung,isp-wb;
523 samsung,lcd-wb;
524};
525
526&hdmi {
527 compatible = "samsung,exynos4212-hdmi";
528};
529
530&jpeg_codec {
531 compatible = "samsung,exynos4212-jpeg";
532};
533
534&rotator {
535 compatible = "samsung,exynos4212-rotator";
536};
537
538&mixer {
539 compatible = "samsung,exynos4212-mixer";
540 clock-names = "mixer", "hdmi", "sclk_hdmi", "vp";
541 clocks = <&clock CLK_MIXER>, <&clock CLK_HDMI>,
542 <&clock CLK_SCLK_HDMI>, <&clock CLK_VP>;
543};
544
545&pinctrl_0 {
546 compatible = "samsung,exynos4x12-pinctrl";
547 reg = <0x11400000 0x1000>;
548 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
549};
550
551&pinctrl_1 {
552 compatible = "samsung,exynos4x12-pinctrl";
553 reg = <0x11000000 0x1000>;
554 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
555
556 wakup_eint: wakeup-interrupt-controller {
557 compatible = "samsung,exynos4210-wakeup-eint";
558 interrupt-parent = <&gic>;
559 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
560 };
561};
562
563&pinctrl_2 {
564 compatible = "samsung,exynos4x12-pinctrl";
565 reg = <0x03860000 0x1000>;
566 interrupt-parent = <&combiner>;
567 interrupts = <10 0>;
568};
569
570&pinctrl_3 {
571 compatible = "samsung,exynos4x12-pinctrl";
572 reg = <0x106E0000 0x1000>;
573 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
574};
575
576&pmu_system_controller {
577 compatible = "samsung,exynos4212-pmu", "syscon";
578 clock-names = "clkout0", "clkout1", "clkout2", "clkout3",
579 "clkout4", "clkout8", "clkout9";
580 clocks = <&clock CLK_OUT_DMC>, <&clock CLK_OUT_TOP>,
581 <&clock CLK_OUT_LEFTBUS>, <&clock CLK_OUT_RIGHTBUS>,
582 <&clock CLK_OUT_CPU>, <&clock CLK_XXTI>, <&clock CLK_XUSBXTI>;
583 #clock-cells = <1>;
584};
585
586&tmu {
587 compatible = "samsung,exynos4412-tmu";
588 interrupt-parent = <&combiner>;
589 interrupts = <2 4>;
590 reg = <0x100C0000 0x100>;
591 clocks = <&clock 383>;
592 clock-names = "tmu_apbif";
593 status = "disabled";
594};
diff --git a/arch/arm/boot/dts/exynos5.dtsi b/arch/arm/boot/dts/exynos5.dtsi
index 7fd870ee5093..b74c5379ca26 100644
--- a/arch/arm/boot/dts/exynos5.dtsi
+++ b/arch/arm/boot/dts/exynos5.dtsi
@@ -90,11 +90,11 @@
90 }; 90 };
91 91
92 gic: interrupt-controller@10481000 { 92 gic: interrupt-controller@10481000 {
93 compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; 93 compatible = "arm,gic-400", "arm,cortex-a15-gic", "arm,cortex-a9-gic";
94 #interrupt-cells = <3>; 94 #interrupt-cells = <3>;
95 interrupt-controller; 95 interrupt-controller;
96 reg = <0x10481000 0x1000>, 96 reg = <0x10481000 0x1000>,
97 <0x10482000 0x1000>, 97 <0x10482000 0x2000>,
98 <0x10484000 0x2000>, 98 <0x10484000 0x2000>,
99 <0x10486000 0x2000>; 99 <0x10486000 0x2000>;
100 interrupts = <GIC_PPI 9 100 interrupts = <GIC_PPI 9
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi
index b6d7444d8585..79c9c885613a 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -115,18 +115,21 @@
115 compatible = "samsung,exynos4210-pd"; 115 compatible = "samsung,exynos4210-pd";
116 reg = <0x10044000 0x20>; 116 reg = <0x10044000 0x20>;
117 #power-domain-cells = <0>; 117 #power-domain-cells = <0>;
118 label = "GSC";
118 }; 119 };
119 120
120 pd_mfc: mfc-power-domain@10044040 { 121 pd_mfc: mfc-power-domain@10044040 {
121 compatible = "samsung,exynos4210-pd"; 122 compatible = "samsung,exynos4210-pd";
122 reg = <0x10044040 0x20>; 123 reg = <0x10044040 0x20>;
123 #power-domain-cells = <0>; 124 #power-domain-cells = <0>;
125 label = "MFC";
124 }; 126 };
125 127
126 pd_disp1: disp1-power-domain@100440A0 { 128 pd_disp1: disp1-power-domain@100440A0 {
127 compatible = "samsung,exynos4210-pd"; 129 compatible = "samsung,exynos4210-pd";
128 reg = <0x100440A0 0x20>; 130 reg = <0x100440A0 0x20>;
129 #power-domain-cells = <0>; 131 #power-domain-cells = <0>;
132 label = "DISP1";
130 clocks = <&clock CLK_FIN_PLL>, 133 clocks = <&clock CLK_FIN_PLL>,
131 <&clock CLK_MOUT_ACLK200_DISP1_SUB>, 134 <&clock CLK_MOUT_ACLK200_DISP1_SUB>,
132 <&clock CLK_MOUT_ACLK300_DISP1_SUB>; 135 <&clock CLK_MOUT_ACLK300_DISP1_SUB>;
@@ -1043,21 +1046,29 @@
1043&serial_0 { 1046&serial_0 {
1044 clocks = <&clock CLK_UART0>, <&clock CLK_SCLK_UART0>; 1047 clocks = <&clock CLK_UART0>, <&clock CLK_SCLK_UART0>;
1045 clock-names = "uart", "clk_uart_baud0"; 1048 clock-names = "uart", "clk_uart_baud0";
1049 dmas = <&pdma0 13>, <&pdma0 14>;
1050 dma-names = "rx", "tx";
1046}; 1051};
1047 1052
1048&serial_1 { 1053&serial_1 {
1049 clocks = <&clock CLK_UART1>, <&clock CLK_SCLK_UART1>; 1054 clocks = <&clock CLK_UART1>, <&clock CLK_SCLK_UART1>;
1050 clock-names = "uart", "clk_uart_baud0"; 1055 clock-names = "uart", "clk_uart_baud0";
1056 dmas = <&pdma1 15>, <&pdma1 16>;
1057 dma-names = "rx", "tx";
1051}; 1058};
1052 1059
1053&serial_2 { 1060&serial_2 {
1054 clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>; 1061 clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>;
1055 clock-names = "uart", "clk_uart_baud0"; 1062 clock-names = "uart", "clk_uart_baud0";
1063 dmas = <&pdma0 15>, <&pdma0 16>;
1064 dma-names = "rx", "tx";
1056}; 1065};
1057 1066
1058&serial_3 { 1067&serial_3 {
1059 clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>; 1068 clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>;
1060 clock-names = "uart", "clk_uart_baud0"; 1069 clock-names = "uart", "clk_uart_baud0";
1070 dmas = <&pdma1 17>, <&pdma1 18>;
1071 dma-names = "rx", "tx";
1061}; 1072};
1062 1073
1063#include "exynos5250-pinctrl.dtsi" 1074#include "exynos5250-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/exynos5260.dtsi b/arch/arm/boot/dts/exynos5260.dtsi
index 5818718618b1..5e88c9645975 100644
--- a/arch/arm/boot/dts/exynos5260.dtsi
+++ b/arch/arm/boot/dts/exynos5260.dtsi
@@ -167,7 +167,7 @@
167 #size-cells = <0>; 167 #size-cells = <0>;
168 interrupt-controller; 168 interrupt-controller;
169 reg = <0x10481000 0x1000>, 169 reg = <0x10481000 0x1000>,
170 <0x10482000 0x1000>, 170 <0x10482000 0x2000>,
171 <0x10484000 0x2000>, 171 <0x10484000 0x2000>,
172 <0x10486000 0x2000>; 172 <0x10486000 0x2000>;
173 interrupts = <GIC_PPI 9 173 interrupts = <GIC_PPI 9
diff --git a/arch/arm/boot/dts/exynos5410.dtsi b/arch/arm/boot/dts/exynos5410.dtsi
index 2b6adafe18e2..7eab4bc07cec 100644
--- a/arch/arm/boot/dts/exynos5410.dtsi
+++ b/arch/arm/boot/dts/exynos5410.dtsi
@@ -340,21 +340,29 @@
340&serial_0 { 340&serial_0 {
341 clocks = <&clock CLK_UART0>, <&clock CLK_SCLK_UART0>; 341 clocks = <&clock CLK_UART0>, <&clock CLK_SCLK_UART0>;
342 clock-names = "uart", "clk_uart_baud0"; 342 clock-names = "uart", "clk_uart_baud0";
343 dmas = <&pdma0 13>, <&pdma0 14>;
344 dma-names = "rx", "tx";
343}; 345};
344 346
345&serial_1 { 347&serial_1 {
346 clocks = <&clock CLK_UART1>, <&clock CLK_SCLK_UART1>; 348 clocks = <&clock CLK_UART1>, <&clock CLK_SCLK_UART1>;
347 clock-names = "uart", "clk_uart_baud0"; 349 clock-names = "uart", "clk_uart_baud0";
350 dmas = <&pdma1 15>, <&pdma1 16>;
351 dma-names = "rx", "tx";
348}; 352};
349 353
350&serial_2 { 354&serial_2 {
351 clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>; 355 clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>;
352 clock-names = "uart", "clk_uart_baud0"; 356 clock-names = "uart", "clk_uart_baud0";
357 dmas = <&pdma0 15>, <&pdma0 16>;
358 dma-names = "rx", "tx";
353}; 359};
354 360
355&serial_3 { 361&serial_3 {
356 clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>; 362 clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>;
357 clock-names = "uart", "clk_uart_baud0"; 363 clock-names = "uart", "clk_uart_baud0";
364 dmas = <&pdma1 17>, <&pdma1 18>;
365 dma-names = "rx", "tx";
358}; 366};
359 367
360&sss { 368&sss {
diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
index 906a1a42a7ea..7dc9dc82afd8 100644
--- a/arch/arm/boot/dts/exynos5420.dtsi
+++ b/arch/arm/boot/dts/exynos5420.dtsi
@@ -277,6 +277,7 @@
277 compatible = "samsung,exynos4210-pd"; 277 compatible = "samsung,exynos4210-pd";
278 reg = <0x10044000 0x20>; 278 reg = <0x10044000 0x20>;
279 #power-domain-cells = <0>; 279 #power-domain-cells = <0>;
280 label = "GSC";
280 clocks = <&clock CLK_FIN_PLL>, 281 clocks = <&clock CLK_FIN_PLL>,
281 <&clock CLK_MOUT_USER_ACLK300_GSCL>, 282 <&clock CLK_MOUT_USER_ACLK300_GSCL>,
282 <&clock CLK_GSCL0>, <&clock CLK_GSCL1>; 283 <&clock CLK_GSCL0>, <&clock CLK_GSCL1>;
@@ -287,6 +288,7 @@
287 compatible = "samsung,exynos4210-pd"; 288 compatible = "samsung,exynos4210-pd";
288 reg = <0x10044020 0x20>; 289 reg = <0x10044020 0x20>;
289 #power-domain-cells = <0>; 290 #power-domain-cells = <0>;
291 label = "ISP";
290 }; 292 };
291 293
292 mfc_pd: power-domain@10044060 { 294 mfc_pd: power-domain@10044060 {
@@ -297,18 +299,21 @@
297 <&clock CLK_ACLK333>; 299 <&clock CLK_ACLK333>;
298 clock-names = "oscclk", "clk0","asb0"; 300 clock-names = "oscclk", "clk0","asb0";
299 #power-domain-cells = <0>; 301 #power-domain-cells = <0>;
302 label = "MFC";
300 }; 303 };
301 304
302 msc_pd: power-domain@10044120 { 305 msc_pd: power-domain@10044120 {
303 compatible = "samsung,exynos4210-pd"; 306 compatible = "samsung,exynos4210-pd";
304 reg = <0x10044120 0x20>; 307 reg = <0x10044120 0x20>;
305 #power-domain-cells = <0>; 308 #power-domain-cells = <0>;
309 label = "MSC";
306 }; 310 };
307 311
308 disp_pd: power-domain@100440C0 { 312 disp_pd: power-domain@100440C0 {
309 compatible = "samsung,exynos4210-pd"; 313 compatible = "samsung,exynos4210-pd";
310 reg = <0x100440C0 0x20>; 314 reg = <0x100440C0 0x20>;
311 #power-domain-cells = <0>; 315 #power-domain-cells = <0>;
316 label = "DISP";
312 clocks = <&clock CLK_FIN_PLL>, 317 clocks = <&clock CLK_FIN_PLL>,
313 <&clock CLK_MOUT_USER_ACLK200_DISP1>, 318 <&clock CLK_MOUT_USER_ACLK200_DISP1>,
314 <&clock CLK_MOUT_USER_ACLK300_DISP1>, 319 <&clock CLK_MOUT_USER_ACLK300_DISP1>,
@@ -1406,21 +1411,29 @@
1406&serial_0 { 1411&serial_0 {
1407 clocks = <&clock CLK_UART0>, <&clock CLK_SCLK_UART0>; 1412 clocks = <&clock CLK_UART0>, <&clock CLK_SCLK_UART0>;
1408 clock-names = "uart", "clk_uart_baud0"; 1413 clock-names = "uart", "clk_uart_baud0";
1414 dmas = <&pdma0 13>, <&pdma0 14>;
1415 dma-names = "rx", "tx";
1409}; 1416};
1410 1417
1411&serial_1 { 1418&serial_1 {
1412 clocks = <&clock CLK_UART1>, <&clock CLK_SCLK_UART1>; 1419 clocks = <&clock CLK_UART1>, <&clock CLK_SCLK_UART1>;
1413 clock-names = "uart", "clk_uart_baud0"; 1420 clock-names = "uart", "clk_uart_baud0";
1421 dmas = <&pdma1 15>, <&pdma1 16>;
1422 dma-names = "rx", "tx";
1414}; 1423};
1415 1424
1416&serial_2 { 1425&serial_2 {
1417 clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>; 1426 clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>;
1418 clock-names = "uart", "clk_uart_baud0"; 1427 clock-names = "uart", "clk_uart_baud0";
1428 dmas = <&pdma0 15>, <&pdma0 16>;
1429 dma-names = "rx", "tx";
1419}; 1430};
1420 1431
1421&serial_3 { 1432&serial_3 {
1422 clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>; 1433 clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>;
1423 clock-names = "uart", "clk_uart_baud0"; 1434 clock-names = "uart", "clk_uart_baud0";
1435 dmas = <&pdma1 17>, <&pdma1 18>;
1436 dma-names = "rx", "tx";
1424}; 1437};
1425 1438
1426&sss { 1439&sss {
diff --git a/arch/arm/boot/dts/exynos5440.dtsi b/arch/arm/boot/dts/exynos5440.dtsi
index 2a2e570bbee6..77d35bb92950 100644
--- a/arch/arm/boot/dts/exynos5440.dtsi
+++ b/arch/arm/boot/dts/exynos5440.dtsi
@@ -40,7 +40,7 @@
40 #interrupt-cells = <3>; 40 #interrupt-cells = <3>;
41 interrupt-controller; 41 interrupt-controller;
42 reg = <0x2E1000 0x1000>, 42 reg = <0x2E1000 0x1000>,
43 <0x2E2000 0x1000>, 43 <0x2E2000 0x2000>,
44 <0x2E4000 0x2000>, 44 <0x2E4000 0x2000>,
45 <0x2E6000 0x2000>; 45 <0x2E6000 0x2000>;
46 interrupts = <GIC_PPI 9 46 interrupts = <GIC_PPI 9
diff --git a/arch/arm/boot/dts/imx1-ads.dts b/arch/arm/boot/dts/imx1-ads.dts
index f50498659cc3..5ea28ee07cf4 100644
--- a/arch/arm/boot/dts/imx1-ads.dts
+++ b/arch/arm/boot/dts/imx1-ads.dts
@@ -38,7 +38,6 @@
38 38
39&cspi1 { 39&cspi1 {
40 pinctrl-0 = <&pinctrl_cspi1>; 40 pinctrl-0 = <&pinctrl_cspi1>;
41 fsl,spi-num-chipselects = <1>;
42 cs-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>; 41 cs-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
43 status = "okay"; 42 status = "okay";
44}; 43};
diff --git a/arch/arm/boot/dts/imx1.dtsi b/arch/arm/boot/dts/imx1.dtsi
index 2ee40bc9ec21..38d712be5685 100644
--- a/arch/arm/boot/dts/imx1.dtsi
+++ b/arch/arm/boot/dts/imx1.dtsi
@@ -51,8 +51,9 @@
51 #size-cells = <0>; 51 #size-cells = <0>;
52 #address-cells = <1>; 52 #address-cells = <1>;
53 53
54 cpu: cpu@0 { 54 cpu@0 {
55 device_type = "cpu"; 55 device_type = "cpu";
56 reg = <0>;
56 compatible = "arm,arm920t"; 57 compatible = "arm,arm920t";
57 operating-points = <200000 1900000>; 58 operating-points = <200000 1900000>;
58 clock-latency = <62500>; 59 clock-latency = <62500>;
diff --git a/arch/arm/boot/dts/imx23.dtsi b/arch/arm/boot/dts/imx23.dtsi
index 43ccbbf754a3..10d57f9cbb42 100644
--- a/arch/arm/boot/dts/imx23.dtsi
+++ b/arch/arm/boot/dts/imx23.dtsi
@@ -37,12 +37,13 @@
37 }; 37 };
38 38
39 cpus { 39 cpus {
40 #address-cells = <0>; 40 #address-cells = <1>;
41 #size-cells = <0>; 41 #size-cells = <0>;
42 42
43 cpu { 43 cpu@0 {
44 compatible = "arm,arm926ej-s"; 44 compatible = "arm,arm926ej-s";
45 device_type = "cpu"; 45 device_type = "cpu";
46 reg = <0>;
46 }; 47 };
47 }; 48 };
48 49
diff --git a/arch/arm/boot/dts/imx25.dtsi b/arch/arm/boot/dts/imx25.dtsi
index acd475659156..e0ba55016a04 100644
--- a/arch/arm/boot/dts/imx25.dtsi
+++ b/arch/arm/boot/dts/imx25.dtsi
@@ -51,12 +51,13 @@
51 }; 51 };
52 52
53 cpus { 53 cpus {
54 #address-cells = <0>; 54 #address-cells = <1>;
55 #size-cells = <0>; 55 #size-cells = <0>;
56 56
57 cpu { 57 cpu@0 {
58 compatible = "arm,arm926ej-s"; 58 compatible = "arm,arm926ej-s";
59 device_type = "cpu"; 59 device_type = "cpu";
60 reg = <0>;
60 }; 61 };
61 }; 62 };
62 63
@@ -568,7 +569,7 @@
568 reg = <0x53ffc000 0x4000>; 569 reg = <0x53ffc000 0x4000>;
569 clocks = <&clks 81>; 570 clocks = <&clks 81>;
570 clock-names = "ipg"; 571 clock-names = "ipg";
571 interrupts = <25>; 572 interrupts = <25 56>;
572 }; 573 };
573 }; 574 };
574 575
diff --git a/arch/arm/boot/dts/imx27-apf27dev.dts b/arch/arm/boot/dts/imx27-apf27dev.dts
index bba3f41b89ef..5f84b598e0d0 100644
--- a/arch/arm/boot/dts/imx27-apf27dev.dts
+++ b/arch/arm/boot/dts/imx27-apf27dev.dts
@@ -77,7 +77,6 @@
77}; 77};
78 78
79&cspi1 { 79&cspi1 {
80 fsl,spi-num-chipselects = <1>;
81 cs-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>; 80 cs-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
82 pinctrl-names = "default"; 81 pinctrl-names = "default";
83 pinctrl-0 = <&pinctrl_cspi1 &pinctrl_cspi1_cs>; 82 pinctrl-0 = <&pinctrl_cspi1 &pinctrl_cspi1_cs>;
@@ -95,7 +94,6 @@
95}; 94};
96 95
97&cspi2 { 96&cspi2 {
98 fsl,spi-num-chipselects = <3>;
99 cs-gpios = <&gpio4 21 GPIO_ACTIVE_LOW>, 97 cs-gpios = <&gpio4 21 GPIO_ACTIVE_LOW>,
100 <&gpio4 27 GPIO_ACTIVE_LOW>, 98 <&gpio4 27 GPIO_ACTIVE_LOW>,
101 <&gpio2 17 GPIO_ACTIVE_LOW>; 99 <&gpio2 17 GPIO_ACTIVE_LOW>;
diff --git a/arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts b/arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts
index 27846ff9bb0d..f56535768ee8 100644
--- a/arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts
+++ b/arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts
@@ -81,7 +81,6 @@
81 81
82&cspi1 { 82&cspi1 {
83 pinctrl-0 = <&pinctrl_cspi1>; 83 pinctrl-0 = <&pinctrl_cspi1>;
84 fsl,spi-num-chipselects = <1>;
85 cs-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>; 84 cs-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
86 status = "okay"; 85 status = "okay";
87 86
diff --git a/arch/arm/boot/dts/imx27-pdk.dts b/arch/arm/boot/dts/imx27-pdk.dts
index d0ef496a1af8..96f442ba6d22 100644
--- a/arch/arm/boot/dts/imx27-pdk.dts
+++ b/arch/arm/boot/dts/imx27-pdk.dts
@@ -37,7 +37,6 @@
37&cspi2 { 37&cspi2 {
38 pinctrl-names = "default"; 38 pinctrl-names = "default";
39 pinctrl-0 = <&pinctrl_cspi2>; 39 pinctrl-0 = <&pinctrl_cspi2>;
40 fsl,spi-num-chipselects = <1>;
41 cs-gpios = <&gpio4 21 GPIO_ACTIVE_HIGH>; 40 cs-gpios = <&gpio4 21 GPIO_ACTIVE_HIGH>;
42 status = "okay"; 41 status = "okay";
43 42
diff --git a/arch/arm/boot/dts/imx27-phytec-phycard-s-som.dtsi b/arch/arm/boot/dts/imx27-phytec-phycard-s-som.dtsi
index 1b6248079682..4f3e0f473581 100644
--- a/arch/arm/boot/dts/imx27-phytec-phycard-s-som.dtsi
+++ b/arch/arm/boot/dts/imx27-phytec-phycard-s-som.dtsi
@@ -23,7 +23,6 @@
23}; 23};
24 24
25&cspi1 { 25&cspi1 {
26 fsl,spi-num-chipselects = <2>;
27 cs-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>, 26 cs-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>,
28 <&gpio4 27 GPIO_ACTIVE_HIGH>; 27 <&gpio4 27 GPIO_ACTIVE_HIGH>;
29 status = "okay"; 28 status = "okay";
diff --git a/arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts b/arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts
index cf09e72aeb06..2a9198f99a8d 100644
--- a/arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts
+++ b/arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts
@@ -69,7 +69,6 @@
69 69
70&cspi1 { 70&cspi1 {
71 pinctrl-0 = <&pinctrl_cspi1>, <&pinctrl_cspi1cs1>; 71 pinctrl-0 = <&pinctrl_cspi1>, <&pinctrl_cspi1cs1>;
72 fsl,spi-num-chipselects = <2>;
73 cs-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>, 72 cs-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>,
74 <&gpio4 27 GPIO_ACTIVE_LOW>; 73 <&gpio4 27 GPIO_ACTIVE_LOW>;
75}; 74};
diff --git a/arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi b/arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi
index b4e955e3be8d..82fec935ce83 100644
--- a/arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi
+++ b/arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi
@@ -75,7 +75,6 @@
75&cspi1 { 75&cspi1 {
76 pinctrl-names = "default"; 76 pinctrl-names = "default";
77 pinctrl-0 = <&pinctrl_cspi1>; 77 pinctrl-0 = <&pinctrl_cspi1>;
78 fsl,spi-num-chipselects = <1>;
79 cs-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>; 78 cs-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>;
80 status = "okay"; 79 status = "okay";
81 80
diff --git a/arch/arm/boot/dts/imx27.dtsi b/arch/arm/boot/dts/imx27.dtsi
index b397384248f4..15d85f1f85fd 100644
--- a/arch/arm/boot/dts/imx27.dtsi
+++ b/arch/arm/boot/dts/imx27.dtsi
@@ -73,6 +73,7 @@
73 73
74 cpu: cpu@0 { 74 cpu: cpu@0 {
75 device_type = "cpu"; 75 device_type = "cpu";
76 reg = <0>;
76 compatible = "arm,arm926ej-s"; 77 compatible = "arm,arm926ej-s";
77 operating-points = < 78 operating-points = <
78 /* kHz uV */ 79 /* kHz uV */
diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi
index d6a2190b60ef..148fcf4d3b98 100644
--- a/arch/arm/boot/dts/imx28.dtsi
+++ b/arch/arm/boot/dts/imx28.dtsi
@@ -48,12 +48,13 @@
48 }; 48 };
49 49
50 cpus { 50 cpus {
51 #address-cells = <0>; 51 #address-cells = <1>;
52 #size-cells = <0>; 52 #size-cells = <0>;
53 53
54 cpu { 54 cpu@0 {
55 compatible = "arm,arm926ej-s"; 55 compatible = "arm,arm926ej-s";
56 device_type = "cpu"; 56 device_type = "cpu";
57 reg = <0>;
57 }; 58 };
58 }; 59 };
59 60
@@ -1078,6 +1079,7 @@
1078 }; 1079 };
1079 1080
1080 saif0: saif@80042000 { 1081 saif0: saif@80042000 {
1082 #sound-dai-cells = <0>;
1081 compatible = "fsl,imx28-saif"; 1083 compatible = "fsl,imx28-saif";
1082 reg = <0x80042000 0x2000>; 1084 reg = <0x80042000 0x2000>;
1083 interrupts = <59>; 1085 interrupts = <59>;
@@ -1094,6 +1096,7 @@
1094 }; 1096 };
1095 1097
1096 saif1: saif@80046000 { 1098 saif1: saif@80046000 {
1099 #sound-dai-cells = <0>;
1097 compatible = "fsl,imx28-saif"; 1100 compatible = "fsl,imx28-saif";
1098 reg = <0x80046000 0x2000>; 1101 reg = <0x80046000 0x2000>;
1099 interrupts = <58>; 1102 interrupts = <58>;
diff --git a/arch/arm/boot/dts/imx31.dtsi b/arch/arm/boot/dts/imx31.dtsi
index 23b0d2cf9acd..a72031407ebd 100644
--- a/arch/arm/boot/dts/imx31.dtsi
+++ b/arch/arm/boot/dts/imx31.dtsi
@@ -30,12 +30,13 @@
30 }; 30 };
31 31
32 cpus { 32 cpus {
33 #address-cells = <0>; 33 #address-cells = <1>;
34 #size-cells = <0>; 34 #size-cells = <0>;
35 35
36 cpu { 36 cpu@0 {
37 compatible = "arm,arm1136jf-s"; 37 compatible = "arm,arm1136jf-s";
38 device_type = "cpu"; 38 device_type = "cpu";
39 reg = <0>;
39 }; 40 };
40 }; 41 };
41 42
diff --git a/arch/arm/boot/dts/imx35.dtsi b/arch/arm/boot/dts/imx35.dtsi
index d0496c65cea2..6d5e6a60bee7 100644
--- a/arch/arm/boot/dts/imx35.dtsi
+++ b/arch/arm/boot/dts/imx35.dtsi
@@ -35,12 +35,13 @@
35 }; 35 };
36 36
37 cpus { 37 cpus {
38 #address-cells = <0>; 38 #address-cells = <1>;
39 #size-cells = <0>; 39 #size-cells = <0>;
40 40
41 cpu { 41 cpu@0 {
42 compatible = "arm,arm1136jf-s"; 42 compatible = "arm,arm1136jf-s";
43 device_type = "cpu"; 43 device_type = "cpu";
44 reg = <0>;
44 }; 45 };
45 }; 46 };
46 47
diff --git a/arch/arm/boot/dts/imx50-evk.dts b/arch/arm/boot/dts/imx50-evk.dts
index 27d763c7a307..dba2d951aa15 100644
--- a/arch/arm/boot/dts/imx50-evk.dts
+++ b/arch/arm/boot/dts/imx50-evk.dts
@@ -26,7 +26,6 @@
26&cspi { 26&cspi {
27 pinctrl-names = "default"; 27 pinctrl-names = "default";
28 pinctrl-0 = <&pinctrl_cspi>; 28 pinctrl-0 = <&pinctrl_cspi>;
29 fsl,spi-num-chipselects = <2>;
30 cs-gpios = <&gpio4 11 0>, <&gpio4 13 0>; 29 cs-gpios = <&gpio4 11 0>, <&gpio4 13 0>;
31 status = "okay"; 30 status = "okay";
32 31
diff --git a/arch/arm/boot/dts/imx51-apf51dev.dts b/arch/arm/boot/dts/imx51-apf51dev.dts
index 0f3fe29b816e..a5e6091c8729 100644
--- a/arch/arm/boot/dts/imx51-apf51dev.dts
+++ b/arch/arm/boot/dts/imx51-apf51dev.dts
@@ -80,7 +80,6 @@
80&ecspi1 { 80&ecspi1 {
81 pinctrl-names = "default"; 81 pinctrl-names = "default";
82 pinctrl-0 = <&pinctrl_ecspi1>; 82 pinctrl-0 = <&pinctrl_ecspi1>;
83 fsl,spi-num-chipselects = <2>;
84 cs-gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>, 83 cs-gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>,
85 <&gpio4 25 GPIO_ACTIVE_HIGH>; 84 <&gpio4 25 GPIO_ACTIVE_HIGH>;
86 status = "okay"; 85 status = "okay";
@@ -89,7 +88,6 @@
89&ecspi2 { 88&ecspi2 {
90 pinctrl-names = "default"; 89 pinctrl-names = "default";
91 pinctrl-0 = <&pinctrl_ecspi2>; 90 pinctrl-0 = <&pinctrl_ecspi2>;
92 fsl,spi-num-chipselects = <2>;
93 cs-gpios = <&gpio3 28 GPIO_ACTIVE_LOW>, 91 cs-gpios = <&gpio3 28 GPIO_ACTIVE_LOW>,
94 <&gpio3 27 GPIO_ACTIVE_LOW>; 92 <&gpio3 27 GPIO_ACTIVE_LOW>;
95 status = "okay"; 93 status = "okay";
diff --git a/arch/arm/boot/dts/imx51-babbage.dts b/arch/arm/boot/dts/imx51-babbage.dts
index f097b4f29ab4..873cf242679c 100644
--- a/arch/arm/boot/dts/imx51-babbage.dts
+++ b/arch/arm/boot/dts/imx51-babbage.dts
@@ -178,7 +178,6 @@
178&ecspi1 { 178&ecspi1 {
179 pinctrl-names = "default"; 179 pinctrl-names = "default";
180 pinctrl-0 = <&pinctrl_ecspi1>; 180 pinctrl-0 = <&pinctrl_ecspi1>;
181 fsl,spi-num-chipselects = <2>;
182 cs-gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>, 181 cs-gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>,
183 <&gpio4 25 GPIO_ACTIVE_LOW>; 182 <&gpio4 25 GPIO_ACTIVE_LOW>;
184 status = "okay"; 183 status = "okay";
diff --git a/arch/arm/boot/dts/imx51-digi-connectcore-som.dtsi b/arch/arm/boot/dts/imx51-digi-connectcore-som.dtsi
index 16fc69c69ab2..b821066a0d2a 100644
--- a/arch/arm/boot/dts/imx51-digi-connectcore-som.dtsi
+++ b/arch/arm/boot/dts/imx51-digi-connectcore-som.dtsi
@@ -24,7 +24,6 @@
24&ecspi1 { 24&ecspi1 {
25 pinctrl-names = "default"; 25 pinctrl-names = "default";
26 pinctrl-0 = <&pinctrl_ecspi1>; 26 pinctrl-0 = <&pinctrl_ecspi1>;
27 fsl,spi-num-chipselects = <1>;
28 cs-gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>; 27 cs-gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
29 status = "okay"; 28 status = "okay";
30 29
diff --git a/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts b/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts
index 728212861ece..1305b05c7ed9 100644
--- a/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts
+++ b/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts
@@ -114,7 +114,6 @@
114&ecspi1 { 114&ecspi1 {
115 pinctrl-names = "default"; 115 pinctrl-names = "default";
116 pinctrl-0 = <&pinctrl_ecspi1>; 116 pinctrl-0 = <&pinctrl_ecspi1>;
117 fsl,spi-num-chipselects = <1>;
118 cs-gpios = <&gpio4 24 GPIO_ACTIVE_LOW>; 117 cs-gpios = <&gpio4 24 GPIO_ACTIVE_LOW>;
119 status = "okay"; 118 status = "okay";
120 119
diff --git a/arch/arm/boot/dts/imx53-qsb-common.dtsi b/arch/arm/boot/dts/imx53-qsb-common.dtsi
index c05e7cfd0cbc..40b3e31935d0 100644
--- a/arch/arm/boot/dts/imx53-qsb-common.dtsi
+++ b/arch/arm/boot/dts/imx53-qsb-common.dtsi
@@ -215,16 +215,16 @@
215 215
216 pinctrl_fec: fecgrp { 216 pinctrl_fec: fecgrp {
217 fsl,pins = < 217 fsl,pins = <
218 MX53_PAD_FEC_MDC__FEC_MDC 0x80000000 218 MX53_PAD_FEC_MDC__FEC_MDC 0x4
219 MX53_PAD_FEC_MDIO__FEC_MDIO 0x80000000 219 MX53_PAD_FEC_MDIO__FEC_MDIO 0x1fc
220 MX53_PAD_FEC_REF_CLK__FEC_TX_CLK 0x80000000 220 MX53_PAD_FEC_REF_CLK__FEC_TX_CLK 0x180
221 MX53_PAD_FEC_RX_ER__FEC_RX_ER 0x80000000 221 MX53_PAD_FEC_RX_ER__FEC_RX_ER 0x180
222 MX53_PAD_FEC_CRS_DV__FEC_RX_DV 0x80000000 222 MX53_PAD_FEC_CRS_DV__FEC_RX_DV 0x180
223 MX53_PAD_FEC_RXD1__FEC_RDATA_1 0x80000000 223 MX53_PAD_FEC_RXD1__FEC_RDATA_1 0x180
224 MX53_PAD_FEC_RXD0__FEC_RDATA_0 0x80000000 224 MX53_PAD_FEC_RXD0__FEC_RDATA_0 0x180
225 MX53_PAD_FEC_TX_EN__FEC_TX_EN 0x80000000 225 MX53_PAD_FEC_TX_EN__FEC_TX_EN 0x4
226 MX53_PAD_FEC_TXD1__FEC_TDATA_1 0x80000000 226 MX53_PAD_FEC_TXD1__FEC_TDATA_1 0x4
227 MX53_PAD_FEC_TXD0__FEC_TDATA_0 0x80000000 227 MX53_PAD_FEC_TXD0__FEC_TDATA_0 0x4
228 >; 228 >;
229 }; 229 };
230 230
diff --git a/arch/arm/boot/dts/imx53-qsb.dts b/arch/arm/boot/dts/imx53-qsb.dts
index 379939699164..f4c158cce908 100644
--- a/arch/arm/boot/dts/imx53-qsb.dts
+++ b/arch/arm/boot/dts/imx53-qsb.dts
@@ -90,7 +90,6 @@
90 ldo7_reg: ldo7 { 90 ldo7_reg: ldo7 {
91 regulator-min-microvolt = <1200000>; 91 regulator-min-microvolt = <1200000>;
92 regulator-max-microvolt = <3600000>; 92 regulator-max-microvolt = <3600000>;
93 regulator-always-on;
94 }; 93 };
95 94
96 ldo8_reg: ldo8 { 95 ldo8_reg: ldo8 {
@@ -113,3 +112,7 @@
113 }; 112 };
114 }; 113 };
115}; 114};
115
116&tve {
117 dac-supply = <&ldo7_reg>;
118};
diff --git a/arch/arm/boot/dts/imx53-qsrb.dts b/arch/arm/boot/dts/imx53-qsrb.dts
index 96d7eede412e..479ca4c9e384 100644
--- a/arch/arm/boot/dts/imx53-qsrb.dts
+++ b/arch/arm/boot/dts/imx53-qsrb.dts
@@ -130,8 +130,6 @@
130 regulator-name = "VDAC"; 130 regulator-name = "VDAC";
131 regulator-min-microvolt = <2500000>; 131 regulator-min-microvolt = <2500000>;
132 regulator-max-microvolt = <2775000>; 132 regulator-max-microvolt = <2775000>;
133 regulator-boot-on;
134 regulator-always-on;
135 }; 133 };
136 134
137 vgen1_reg: vgen1 { 135 vgen1_reg: vgen1 {
@@ -152,3 +150,7 @@
152 }; 150 };
153 }; 151 };
154}; 152};
153
154&tve {
155 dac-supply = <&vdac_reg>;
156};
diff --git a/arch/arm/boot/dts/imx53-smd.dts b/arch/arm/boot/dts/imx53-smd.dts
index 9f5190040555..472f6f0f55b3 100644
--- a/arch/arm/boot/dts/imx53-smd.dts
+++ b/arch/arm/boot/dts/imx53-smd.dts
@@ -63,7 +63,6 @@
63&ecspi1 { 63&ecspi1 {
64 pinctrl-names = "default"; 64 pinctrl-names = "default";
65 pinctrl-0 = <&pinctrl_ecspi1>; 65 pinctrl-0 = <&pinctrl_ecspi1>;
66 fsl,spi-num-chipselects = <2>;
67 cs-gpios = <&gpio2 30 0>, <&gpio3 19 0>; 66 cs-gpios = <&gpio2 30 0>, <&gpio3 19 0>;
68 status = "okay"; 67 status = "okay";
69 68
diff --git a/arch/arm/boot/dts/imx53-tqma53.dtsi b/arch/arm/boot/dts/imx53-tqma53.dtsi
index 91a6a9ff50d7..85972f2201c2 100644
--- a/arch/arm/boot/dts/imx53-tqma53.dtsi
+++ b/arch/arm/boot/dts/imx53-tqma53.dtsi
@@ -55,7 +55,6 @@
55&ecspi1 { 55&ecspi1 {
56 pinctrl-names = "default"; 56 pinctrl-names = "default";
57 pinctrl-0 = <&pinctrl_ecspi1>; 57 pinctrl-0 = <&pinctrl_ecspi1>;
58 fsl,spi-num-chipselects = <4>;
59 cs-gpios = <&gpio2 30 0>, <&gpio3 19 0>, 58 cs-gpios = <&gpio2 30 0>, <&gpio3 19 0>,
60 <&gpio3 24 0>, <&gpio3 25 0>; 59 <&gpio3 24 0>, <&gpio3 25 0>;
61 status = "disabled"; 60 status = "disabled";
@@ -249,7 +248,6 @@
249&cspi { 248&cspi {
250 pinctrl-names = "default"; 249 pinctrl-names = "default";
251 pinctrl-0 = <&pinctrl_cspi>; 250 pinctrl-0 = <&pinctrl_cspi>;
252 fsl,spi-num-chipselects = <3>;
253 cs-gpios = <&gpio1 18 0>, <&gpio1 19 0>, 251 cs-gpios = <&gpio1 18 0>, <&gpio1 19 0>,
254 <&gpio1 21 0>; 252 <&gpio1 21 0>;
255 status = "disabled"; 253 status = "disabled";
diff --git a/arch/arm/boot/dts/imx53-tx53.dtsi b/arch/arm/boot/dts/imx53-tx53.dtsi
index 57e75f1639e0..3a3220141988 100644
--- a/arch/arm/boot/dts/imx53-tx53.dtsi
+++ b/arch/arm/boot/dts/imx53-tx53.dtsi
@@ -161,7 +161,6 @@
161&ecspi1 { 161&ecspi1 {
162 pinctrl-names = "default"; 162 pinctrl-names = "default";
163 pinctrl-0 = <&pinctrl_ecspi1>; 163 pinctrl-0 = <&pinctrl_ecspi1>;
164 fsl,spi-num-chipselects = <2>;
165 status = "okay"; 164 status = "okay";
166 165
167 cs-gpios = < 166 cs-gpios = <
diff --git a/arch/arm/boot/dts/imx53-voipac-dmm-668.dtsi b/arch/arm/boot/dts/imx53-voipac-dmm-668.dtsi
index ba689fbd0e41..524192cf6a0f 100644
--- a/arch/arm/boot/dts/imx53-voipac-dmm-668.dtsi
+++ b/arch/arm/boot/dts/imx53-voipac-dmm-668.dtsi
@@ -129,7 +129,6 @@
129&ecspi1 { 129&ecspi1 {
130 pinctrl-names = "default"; 130 pinctrl-names = "default";
131 pinctrl-0 = <&pinctrl_ecspi1>; 131 pinctrl-0 = <&pinctrl_ecspi1>;
132 fsl,spi-num-chipselects = <4>;
133 cs-gpios = <&gpio2 30 0>, <&gpio3 19 0>, <&gpio2 16 0>, <&gpio2 17 0>; 132 cs-gpios = <&gpio2 30 0>, <&gpio3 19 0>, <&gpio2 16 0>, <&gpio2 17 0>;
134 status = "okay"; 133 status = "okay";
135}; 134};
diff --git a/arch/arm/boot/dts/imx6dl-aristainetos2_4.dts b/arch/arm/boot/dts/imx6dl-aristainetos2_4.dts
index bb92f309c191..0677625463d6 100644
--- a/arch/arm/boot/dts/imx6dl-aristainetos2_4.dts
+++ b/arch/arm/boot/dts/imx6dl-aristainetos2_4.dts
@@ -12,17 +12,17 @@
12 * modify it under the terms of the GNU General Public License 12 * modify it under the terms of the GNU General Public License
13 * version 2 as published by the Free Software Foundation. 13 * version 2 as published by the Free Software Foundation.
14 * 14 *
15 * This file is distributed in the hope that it will be useful 15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details. 18 * GNU General Public License for more details.
19 * 19 *
20 * Or, alternatively 20 * Or, alternatively,
21 * 21 *
22 * b) Permission is hereby granted, free of charge, to any person 22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation 23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without 24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use 25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or 26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the 27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following 28 * Software is furnished to do so, subject to the following
@@ -31,11 +31,11 @@
31 * The above copyright notice and this permission notice shall be 31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software. 32 * included in all copies or substantial portions of the Software.
33 * 33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE. 41 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6dl-aristainetos2_7.dts b/arch/arm/boot/dts/imx6dl-aristainetos2_7.dts
index 3d5ad2cc7e22..805b1318b7f7 100644
--- a/arch/arm/boot/dts/imx6dl-aristainetos2_7.dts
+++ b/arch/arm/boot/dts/imx6dl-aristainetos2_7.dts
@@ -12,17 +12,17 @@
12 * modify it under the terms of the GNU General Public License 12 * modify it under the terms of the GNU General Public License
13 * version 2 as published by the Free Software Foundation. 13 * version 2 as published by the Free Software Foundation.
14 * 14 *
15 * This file is distributed in the hope that it will be useful 15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details. 18 * GNU General Public License for more details.
19 * 19 *
20 * Or, alternatively 20 * Or, alternatively,
21 * 21 *
22 * b) Permission is hereby granted, free of charge, to any person 22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation 23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without 24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use 25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or 26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the 27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following 28 * Software is furnished to do so, subject to the following
@@ -31,11 +31,11 @@
31 * The above copyright notice and this permission notice shall be 31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software. 32 * included in all copies or substantial portions of the Software.
33 * 33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE. 41 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6dl-aristainetos_4.dts b/arch/arm/boot/dts/imx6dl-aristainetos_4.dts
index d4c4a22db488..32a812b1839e 100644
--- a/arch/arm/boot/dts/imx6dl-aristainetos_4.dts
+++ b/arch/arm/boot/dts/imx6dl-aristainetos_4.dts
@@ -66,7 +66,6 @@
66}; 66};
67 67
68&ecspi2 { 68&ecspi2 {
69 fsl,spi-num-chipselects = <1>;
70 cs-gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>; 69 cs-gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>;
71 pinctrl-names = "default"; 70 pinctrl-names = "default";
72 pinctrl-0 = <&pinctrl_ecspi2>; 71 pinctrl-0 = <&pinctrl_ecspi2>;
diff --git a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
index e0c21727866d..26541538562c 100644
--- a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
+++ b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
@@ -12,17 +12,17 @@
12 * modify it under the terms of the GNU General Public License 12 * modify it under the terms of the GNU General Public License
13 * version 2 as published by the Free Software Foundation. 13 * version 2 as published by the Free Software Foundation.
14 * 14 *
15 * This file is distributed in the hope that it will be useful 15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details. 18 * GNU General Public License for more details.
19 * 19 *
20 * Or, alternatively 20 * Or, alternatively,
21 * 21 *
22 * b) Permission is hereby granted, free of charge, to any person 22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation 23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without 24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use 25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or 26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the 27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following 28 * Software is furnished to do so, subject to the following
@@ -31,11 +31,11 @@
31 * The above copyright notice and this permission notice shall be 31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software. 32 * included in all copies or substantial portions of the Software.
33 * 33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE. 41 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6dl-cubox-i.dts b/arch/arm/boot/dts/imx6dl-cubox-i.dts
index 2a43917d048e..f10a36b8647d 100644
--- a/arch/arm/boot/dts/imx6dl-cubox-i.dts
+++ b/arch/arm/boot/dts/imx6dl-cubox-i.dts
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6dl-hummingboard.dts b/arch/arm/boot/dts/imx6dl-hummingboard.dts
index d5c966031962..39c2602fa87c 100644
--- a/arch/arm/boot/dts/imx6dl-hummingboard.dts
+++ b/arch/arm/boot/dts/imx6dl-hummingboard.dts
@@ -11,17 +11,17 @@
11 * modify it under the terms of the GNU General Public License 11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation. 12 * version 2 as published by the Free Software Foundation.
13 * 13 *
14 * This file is distributed in the hope that it will be useful 14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details. 17 * GNU General Public License for more details.
18 * 18 *
19 * Or, alternatively 19 * Or, alternatively,
20 * 20 *
21 * b) Permission is hereby granted, free of charge, to any person 21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation 22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without 23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use 24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or 25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the 26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following 27 * Software is furnished to do so, subject to the following
@@ -30,11 +30,11 @@
30 * The above copyright notice and this permission notice shall be 30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software. 31 * included in all copies or substantial portions of the Software.
32 * 32 *
33 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6dl-icore-rqs.dts b/arch/arm/boot/dts/imx6dl-icore-rqs.dts
new file mode 100644
index 000000000000..cf42c2f5cdc7
--- /dev/null
+++ b/arch/arm/boot/dts/imx6dl-icore-rqs.dts
@@ -0,0 +1,51 @@
1/*
2 * Copyright (C) 2016 Amarula Solutions B.V.
3 * Copyright (C) 2016 Engicam S.r.l.
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44
45#include "imx6q.dtsi"
46#include "imx6qdl-icore-rqs.dtsi"
47
48/ {
49 model = "Engicam i.CoreM6 DualLite/Solo RQS Starter Kit";
50 compatible = "engicam,imx6-icore-rqs", "fsl,imx6dl";
51};
diff --git a/arch/arm/boot/dts/imx6dl-icore.dts b/arch/arm/boot/dts/imx6dl-icore.dts
index aec332c14af1..6de83c72bd72 100644
--- a/arch/arm/boot/dts/imx6dl-icore.dts
+++ b/arch/arm/boot/dts/imx6dl-icore.dts
@@ -11,17 +11,17 @@
11 * modify it under the terms of the GNU General Public License 11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation. 12 * version 2 as published by the Free Software Foundation.
13 * 13 *
14 * This file is distributed in the hope that it will be useful 14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details. 17 * GNU General Public License for more details.
18 * 18 *
19 * Or, alternatively 19 * Or, alternatively,
20 * 20 *
21 * b) Permission is hereby granted, free of charge, to any person 21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation 22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without 23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use 24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or 25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the 26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following 27 * Software is furnished to do so, subject to the following
@@ -30,11 +30,11 @@
30 * The above copyright notice and this permission notice shall be 30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software. 31 * included in all copies or substantial portions of the Software.
32 * 32 *
33 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6dl-nit6xlite.dts b/arch/arm/boot/dts/imx6dl-nit6xlite.dts
index e0161e46195c..30ce2c0cec2b 100644
--- a/arch/arm/boot/dts/imx6dl-nit6xlite.dts
+++ b/arch/arm/boot/dts/imx6dl-nit6xlite.dts
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6dl-nitrogen6x.dts b/arch/arm/boot/dts/imx6dl-nitrogen6x.dts
index 8398f979b912..ec53d7a09572 100644
--- a/arch/arm/boot/dts/imx6dl-nitrogen6x.dts
+++ b/arch/arm/boot/dts/imx6dl-nitrogen6x.dts
@@ -12,17 +12,17 @@
12 * modify it under the terms of the GNU General Public License 12 * modify it under the terms of the GNU General Public License
13 * version 2 as published by the Free Software Foundation. 13 * version 2 as published by the Free Software Foundation.
14 * 14 *
15 * This file is distributed in the hope that it will be useful 15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details. 18 * GNU General Public License for more details.
19 * 19 *
20 * Or, alternatively 20 * Or, alternatively,
21 * 21 *
22 * b) Permission is hereby granted, free of charge, to any person 22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation 23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without 24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use 25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or 26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the 27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following 28 * Software is furnished to do so, subject to the following
@@ -31,11 +31,11 @@
31 * The above copyright notice and this permission notice shall be 31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software. 32 * included in all copies or substantial portions of the Software.
33 * 33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE. 41 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6dl-sabrelite.dts b/arch/arm/boot/dts/imx6dl-sabrelite.dts
index 0f06ca5c9146..2f904527a097 100644
--- a/arch/arm/boot/dts/imx6dl-sabrelite.dts
+++ b/arch/arm/boot/dts/imx6dl-sabrelite.dts
@@ -11,17 +11,17 @@
11 * modify it under the terms of the GNU General Public License 11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation. 12 * version 2 as published by the Free Software Foundation.
13 * 13 *
14 * This file is distributed in the hope that it will be useful 14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details. 17 * GNU General Public License for more details.
18 * 18 *
19 * Or, alternatively 19 * Or, alternatively,
20 * 20 *
21 * b) Permission is hereby granted, free of charge, to any person 21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation 22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without 23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use 24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or 25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the 26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following 27 * Software is furnished to do so, subject to the following
@@ -30,11 +30,11 @@
30 * The above copyright notice and this permission notice shall be 30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software. 31 * included in all copies or substantial portions of the Software.
32 * 32 *
33 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6dl-savageboard.dts b/arch/arm/boot/dts/imx6dl-savageboard.dts
new file mode 100644
index 000000000000..b95469c520a4
--- /dev/null
+++ b/arch/arm/boot/dts/imx6dl-savageboard.dts
@@ -0,0 +1,51 @@
1/*
2 * Copyright (C) 2017 Milo Kim <woogyom.kim@gmail.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44
45#include "imx6dl.dtsi"
46#include "imx6qdl-savageboard.dtsi"
47
48/ {
49 model = "Poslab SavageBoard Dual";
50 compatible = "poslab,imx6dl-savageboard", "fsl,imx6dl";
51};
diff --git a/arch/arm/boot/dts/imx6dl-ts4900.dts b/arch/arm/boot/dts/imx6dl-ts4900.dts
index 85eddeb30e21..6ea0b780677d 100644
--- a/arch/arm/boot/dts/imx6dl-ts4900.dts
+++ b/arch/arm/boot/dts/imx6dl-ts4900.dts
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6q-apalis-ixora.dts b/arch/arm/boot/dts/imx6q-apalis-ixora.dts
index 0ea75f7b6039..88cc7f51a4e9 100644
--- a/arch/arm/boot/dts/imx6q-apalis-ixora.dts
+++ b/arch/arm/boot/dts/imx6q-apalis-ixora.dts
@@ -12,17 +12,17 @@
12 * modify it under the terms of the GNU General Public License 12 * modify it under the terms of the GNU General Public License
13 * version 2 as published by the Free Software Foundation. 13 * version 2 as published by the Free Software Foundation.
14 * 14 *
15 * This file is distributed in the hope that it will be useful 15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details. 18 * GNU General Public License for more details.
19 * 19 *
20 * Or, alternatively 20 * Or, alternatively,
21 * 21 *
22 * b) Permission is hereby granted, free of charge, to any person 22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation 23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without 24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use 25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or 26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the 27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following 28 * Software is furnished to do so, subject to the following
@@ -31,11 +31,11 @@
31 * The above copyright notice and this permission notice shall be 31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software. 32 * included in all copies or substantial portions of the Software.
33 * 33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE. 41 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6q-b450v3.dts b/arch/arm/boot/dts/imx6q-b450v3.dts
index 78bfc1a307d6..116bebb5e435 100644
--- a/arch/arm/boot/dts/imx6q-b450v3.dts
+++ b/arch/arm/boot/dts/imx6q-b450v3.dts
@@ -11,17 +11,17 @@
11 * modify it under the terms of the GNU General Public License 11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation. 12 * version 2 as published by the Free Software Foundation.
13 * 13 *
14 * This file is distributed in the hope that it will be useful 14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details. 17 * GNU General Public License for more details.
18 * 18 *
19 * Or, alternatively 19 * Or, alternatively,
20 * 20 *
21 * b) Permission is hereby granted, free of charge, to any person 21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation 22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without 23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use 24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or 25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the 26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following 27 * Software is furnished to do so, subject to the following
@@ -30,11 +30,11 @@
30 * The above copyright notice and this permission notice shall be 30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software. 31 * included in all copies or substantial portions of the Software.
32 * 32 *
33 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6q-b650v3.dts b/arch/arm/boot/dts/imx6q-b650v3.dts
index 1dcaee23ed9c..33f5c436c09f 100644
--- a/arch/arm/boot/dts/imx6q-b650v3.dts
+++ b/arch/arm/boot/dts/imx6q-b650v3.dts
@@ -11,17 +11,17 @@
11 * modify it under the terms of the GNU General Public License 11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation. 12 * version 2 as published by the Free Software Foundation.
13 * 13 *
14 * This file is distributed in the hope that it will be useful 14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details. 17 * GNU General Public License for more details.
18 * 18 *
19 * Or, alternatively 19 * Or, alternatively,
20 * 20 *
21 * b) Permission is hereby granted, free of charge, to any person 21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation 22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without 23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use 24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or 25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the 26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following 27 * Software is furnished to do so, subject to the following
@@ -30,11 +30,11 @@
30 * The above copyright notice and this permission notice shall be 30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software. 31 * included in all copies or substantial portions of the Software.
32 * 32 *
33 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6q-b850v3.dts b/arch/arm/boot/dts/imx6q-b850v3.dts
index 167f7446722a..d78514c92349 100644
--- a/arch/arm/boot/dts/imx6q-b850v3.dts
+++ b/arch/arm/boot/dts/imx6q-b850v3.dts
@@ -11,17 +11,17 @@
11 * modify it under the terms of the GNU General Public License 11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation. 12 * version 2 as published by the Free Software Foundation.
13 * 13 *
14 * This file is distributed in the hope that it will be useful 14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details. 17 * GNU General Public License for more details.
18 * 18 *
19 * Or, alternatively 19 * Or, alternatively,
20 * 20 *
21 * b) Permission is hereby granted, free of charge, to any person 21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation 22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without 23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use 24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or 25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the 26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following 27 * Software is furnished to do so, subject to the following
@@ -30,11 +30,11 @@
30 * The above copyright notice and this permission notice shall be 30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software. 31 * included in all copies or substantial portions of the Software.
32 * 32 *
33 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6q-ba16.dtsi b/arch/arm/boot/dts/imx6q-ba16.dtsi
index 308e11cea1db..14fa6b25dc45 100644
--- a/arch/arm/boot/dts/imx6q-ba16.dtsi
+++ b/arch/arm/boot/dts/imx6q-ba16.dtsi
@@ -13,17 +13,17 @@
13 * modify it under the terms of the GNU General Public License 13 * modify it under the terms of the GNU General Public License
14 * version 2 as published by the Free Software Foundation. 14 * version 2 as published by the Free Software Foundation.
15 * 15 *
16 * This file is distributed in the hope that it will be useful 16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details. 19 * GNU General Public License for more details.
20 * 20 *
21 * Or, alternatively 21 * Or, alternatively,
22 * 22 *
23 * b) Permission is hereby granted, free of charge, to any person 23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation 24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without 25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use 26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or 27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the 28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following 29 * Software is furnished to do so, subject to the following
@@ -32,11 +32,11 @@
32 * The above copyright notice and this permission notice shall be 32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software. 33 * included in all copies or substantial portions of the Software.
34 * 34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
@@ -133,7 +133,6 @@
133}; 133};
134 134
135&ecspi1 { 135&ecspi1 {
136 fsl,spi-num-chipselects = <1>;
137 cs-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>; 136 cs-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>;
138 pinctrl-names = "default"; 137 pinctrl-names = "default";
139 pinctrl-0 = <&pinctrl_ecspi1>; 138 pinctrl-0 = <&pinctrl_ecspi1>;
diff --git a/arch/arm/boot/dts/imx6q-bx50v3.dtsi b/arch/arm/boot/dts/imx6q-bx50v3.dtsi
index e4a415fd899b..36d6bb39593a 100644
--- a/arch/arm/boot/dts/imx6q-bx50v3.dtsi
+++ b/arch/arm/boot/dts/imx6q-bx50v3.dtsi
@@ -11,17 +11,17 @@
11 * modify it under the terms of the GNU General Public License 11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation. 12 * version 2 as published by the Free Software Foundation.
13 * 13 *
14 * This file is distributed in the hope that it will be useful 14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details. 17 * GNU General Public License for more details.
18 * 18 *
19 * Or, alternatively 19 * Or, alternatively,
20 * 20 *
21 * b) Permission is hereby granted, free of charge, to any person 21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation 22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without 23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use 24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or 25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the 26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following 27 * Software is furnished to do so, subject to the following
@@ -30,11 +30,11 @@
30 * The above copyright notice and this permission notice shall be 30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software. 31 * included in all copies or substantial portions of the Software.
32 * 32 *
33 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
@@ -95,7 +95,6 @@
95}; 95};
96 96
97&ecspi5 { 97&ecspi5 {
98 fsl,spi-num-chipselects = <1>;
99 cs-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>; 98 cs-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
100 pinctrl-names = "default"; 99 pinctrl-names = "default";
101 pinctrl-0 = <&pinctrl_ecspi5>; 100 pinctrl-0 = <&pinctrl_ecspi5>;
diff --git a/arch/arm/boot/dts/imx6q-cm-fx6.dts b/arch/arm/boot/dts/imx6q-cm-fx6.dts
index a150bca84daa..d8a5789a4bc8 100644
--- a/arch/arm/boot/dts/imx6q-cm-fx6.dts
+++ b/arch/arm/boot/dts/imx6q-cm-fx6.dts
@@ -12,17 +12,17 @@
12 * modify it under the terms of the GNU General Public License 12 * modify it under the terms of the GNU General Public License
13 * version 2 as published by the Free Software Foundation. 13 * version 2 as published by the Free Software Foundation.
14 * 14 *
15 * This file is distributed in the hope that it will be useful 15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details. 18 * GNU General Public License for more details.
19 * 19 *
20 * Or, alternatively 20 * Or, alternatively,
21 * 21 *
22 * b) Permission is hereby granted, free of charge, to any person 22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation 23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without 24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use 25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or 26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the 27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following 28 * Software is furnished to do so, subject to the following
@@ -31,11 +31,11 @@
31 * The above copyright notice and this permission notice shall be 31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software. 32 * included in all copies or substantial portions of the Software.
33 * 33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE. 41 * OTHER DEALINGS IN THE SOFTWARE.
@@ -89,6 +89,14 @@
89 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>; 89 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
90 enable-active-high; 90 enable-active-high;
91 }; 91 };
92
93 sound-spdif {
94 compatible = "fsl,imx-audio-spdif";
95 model = "imx-spdif";
96 spdif-controller = <&spdif>;
97 spdif-out;
98 spdif-in;
99 };
92}; 100};
93 101
94&cpu0 { 102&cpu0 {
@@ -114,7 +122,6 @@
114}; 122};
115 123
116&ecspi1 { 124&ecspi1 {
117 fsl,spi-num-chipselects = <2>;
118 cs-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>, <&gpio3 19 GPIO_ACTIVE_HIGH>; 125 cs-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>, <&gpio3 19 GPIO_ACTIVE_HIGH>;
119 pinctrl-names = "default"; 126 pinctrl-names = "default";
120 pinctrl-0 = <&pinctrl_ecspi1>; 127 pinctrl-0 = <&pinctrl_ecspi1>;
@@ -222,6 +229,13 @@
222 >; 229 >;
223 }; 230 };
224 231
232 pinctrl_spdif: spdifgrp {
233 fsl,pins = <
234 MX6QDL_PAD_GPIO_16__SPDIF_IN 0x1b0b0
235 MX6QDL_PAD_GPIO_19__SPDIF_OUT 0x1b0b0
236 >;
237 };
238
225 pinctrl_uart4: uart4grp { 239 pinctrl_uart4: uart4grp {
226 fsl,pins = < 240 fsl,pins = <
227 MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1 241 MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1
@@ -259,6 +273,12 @@
259 status = "okay"; 273 status = "okay";
260}; 274};
261 275
276&spdif {
277 pinctrl-names = "default";
278 pinctrl-0 = <&pinctrl_spdif>;
279 status = "okay";
280};
281
262&uart4 { 282&uart4 {
263 pinctrl-names = "default"; 283 pinctrl-names = "default";
264 pinctrl-0 = <&pinctrl_uart4>; 284 pinctrl-0 = <&pinctrl_uart4>;
diff --git a/arch/arm/boot/dts/imx6q-cubox-i.dts b/arch/arm/boot/dts/imx6q-cubox-i.dts
index 353425edcdf4..b68aa0e57f20 100644
--- a/arch/arm/boot/dts/imx6q-cubox-i.dts
+++ b/arch/arm/boot/dts/imx6q-cubox-i.dts
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts b/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts
index 908dab68bdca..f28883bbe7b1 100644
--- a/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts
+++ b/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts
@@ -104,7 +104,6 @@
104&ecspi5 { 104&ecspi5 {
105 pinctrl-names = "default"; 105 pinctrl-names = "default";
106 pinctrl-0 = <&pinctrl_ecspi5>; 106 pinctrl-0 = <&pinctrl_ecspi5>;
107 fsl,spi-num-chipselects = <1>;
108 cs-gpios = <&gpio1 12 0>; 107 cs-gpios = <&gpio1 12 0>;
109 status = "okay"; 108 status = "okay";
110 109
diff --git a/arch/arm/boot/dts/imx6q-evi.dts b/arch/arm/boot/dts/imx6q-evi.dts
index 7c7c1a855ece..fd2220aa49e2 100644
--- a/arch/arm/boot/dts/imx6q-evi.dts
+++ b/arch/arm/boot/dts/imx6q-evi.dts
@@ -90,7 +90,6 @@
90}; 90};
91 91
92&ecspi1 { 92&ecspi1 {
93 fsl,spi-num-chipselects = <1>;
94 cs-gpios = <&gpio4 10 GPIO_ACTIVE_LOW>; 93 cs-gpios = <&gpio4 10 GPIO_ACTIVE_LOW>;
95 pinctrl-names = "default"; 94 pinctrl-names = "default";
96 pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1cs>; 95 pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1cs>;
@@ -98,7 +97,6 @@
98}; 97};
99 98
100&ecspi3 { 99&ecspi3 {
101 fsl,spi-num-chipselects = <3>;
102 cs-gpios = <&gpio4 24 GPIO_ACTIVE_LOW>, 100 cs-gpios = <&gpio4 24 GPIO_ACTIVE_LOW>,
103 <&gpio4 25 GPIO_ACTIVE_LOW>, 101 <&gpio4 25 GPIO_ACTIVE_LOW>,
104 <&gpio4 26 GPIO_ACTIVE_LOW>; 102 <&gpio4 26 GPIO_ACTIVE_LOW>;
@@ -108,7 +106,6 @@
108}; 106};
109 107
110&ecspi5 { 108&ecspi5 {
111 fsl,spi-num-chipselects = <4>;
112 cs-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>, 109 cs-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>,
113 <&gpio1 13 GPIO_ACTIVE_LOW>, 110 <&gpio1 13 GPIO_ACTIVE_LOW>,
114 <&gpio1 12 GPIO_ACTIVE_LOW>, 111 <&gpio1 12 GPIO_ACTIVE_LOW>,
diff --git a/arch/arm/boot/dts/imx6q-gw5400-a.dts b/arch/arm/boot/dts/imx6q-gw5400-a.dts
index 747bc104ad00..8e84713f42c0 100644
--- a/arch/arm/boot/dts/imx6q-gw5400-a.dts
+++ b/arch/arm/boot/dts/imx6q-gw5400-a.dts
@@ -138,7 +138,6 @@
138}; 138};
139 139
140&ecspi1 { 140&ecspi1 {
141 fsl,spi-num-chipselects = <1>;
142 cs-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; 141 cs-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
143 pinctrl-names = "default"; 142 pinctrl-names = "default";
144 pinctrl-0 = <&pinctrl_ecspi1>; 143 pinctrl-0 = <&pinctrl_ecspi1>;
diff --git a/arch/arm/boot/dts/imx6q-h100.dts b/arch/arm/boot/dts/imx6q-h100.dts
index 65e66f994f88..8f9252889971 100644
--- a/arch/arm/boot/dts/imx6q-h100.dts
+++ b/arch/arm/boot/dts/imx6q-h100.dts
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6q-hummingboard.dts b/arch/arm/boot/dts/imx6q-hummingboard.dts
index 1884c16784e2..69a7a0a1cb21 100644
--- a/arch/arm/boot/dts/imx6q-hummingboard.dts
+++ b/arch/arm/boot/dts/imx6q-hummingboard.dts
@@ -11,17 +11,17 @@
11 * modify it under the terms of the GNU General Public License 11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation. 12 * version 2 as published by the Free Software Foundation.
13 * 13 *
14 * This file is distributed in the hope that it will be useful 14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details. 17 * GNU General Public License for more details.
18 * 18 *
19 * Or, alternatively 19 * Or, alternatively,
20 * 20 *
21 * b) Permission is hereby granted, free of charge, to any person 21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation 22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without 23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use 24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or 25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the 26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following 27 * Software is furnished to do so, subject to the following
@@ -30,11 +30,11 @@
30 * The above copyright notice and this permission notice shall be 30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software. 31 * included in all copies or substantial portions of the Software.
32 * 32 *
33 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6q-icore-rqs.dts b/arch/arm/boot/dts/imx6q-icore-rqs.dts
index 005318865f66..e451b4ceb4d8 100644
--- a/arch/arm/boot/dts/imx6q-icore-rqs.dts
+++ b/arch/arm/boot/dts/imx6q-icore-rqs.dts
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
@@ -45,7 +45,7 @@
45#include "imx6qdl-icore-rqs.dtsi" 45#include "imx6qdl-icore-rqs.dtsi"
46 46
47/ { 47/ {
48 model = "Engicam i.CoreM6 Quad SOM"; 48 model = "Engicam i.CoreM6 Quad/Dual RQS Starter Kit";
49 compatible = "engicam,imx6-icore-rqs", "fsl,imx6q"; 49 compatible = "engicam,imx6-icore-rqs", "fsl,imx6q";
50 50
51 sound { 51 sound {
diff --git a/arch/arm/boot/dts/imx6q-icore.dts b/arch/arm/boot/dts/imx6q-icore.dts
index 025f54350c28..59eb7adc2472 100644
--- a/arch/arm/boot/dts/imx6q-icore.dts
+++ b/arch/arm/boot/dts/imx6q-icore.dts
@@ -11,17 +11,17 @@
11 * modify it under the terms of the GNU General Public License 11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation. 12 * version 2 as published by the Free Software Foundation.
13 * 13 *
14 * This file is distributed in the hope that it will be useful 14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details. 17 * GNU General Public License for more details.
18 * 18 *
19 * Or, alternatively 19 * Or, alternatively,
20 * 20 *
21 * b) Permission is hereby granted, free of charge, to any person 21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation 22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without 23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use 24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or 25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the 26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following 27 * Software is furnished to do so, subject to the following
@@ -30,11 +30,11 @@
30 * The above copyright notice and this permission notice shall be 30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software. 31 * included in all copies or substantial portions of the Software.
32 * 32 *
33 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6q-marsboard.dts b/arch/arm/boot/dts/imx6q-marsboard.dts
index f7995c513b67..432291bedcf1 100644
--- a/arch/arm/boot/dts/imx6q-marsboard.dts
+++ b/arch/arm/boot/dts/imx6q-marsboard.dts
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
@@ -97,7 +97,6 @@
97 pinctrl-names = "default"; 97 pinctrl-names = "default";
98 pinctrl-0 = <&pinctrl_ecspi1>; 98 pinctrl-0 = <&pinctrl_ecspi1>;
99 cs-gpios = <&gpio2 30 GPIO_ACTIVE_LOW>; 99 cs-gpios = <&gpio2 30 GPIO_ACTIVE_LOW>;
100 fsl,spi-num-chipselects = <1>;
101 status = "okay"; 100 status = "okay";
102 101
103 m25p80@0 { 102 m25p80@0 {
diff --git a/arch/arm/boot/dts/imx6q-mccmon6.dts b/arch/arm/boot/dts/imx6q-mccmon6.dts
new file mode 100644
index 000000000000..eedbe737420c
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-mccmon6.dts
@@ -0,0 +1,473 @@
1/*
2 * Copyright 2016-2017
3 * Lukasz Majewski, DENX Software Engineering, lukma@denx.de
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 *
9 */
10
11/dts-v1/;
12
13#include "imx6q.dtsi"
14
15#include <dt-bindings/gpio/gpio.h>
16#include <dt-bindings/pwm/pwm.h>
17
18/ {
19 model = "Liebherr (LWN) monitor6 i.MX6 Quad Board";
20 compatible = "lwn,mccmon6", "fsl,imx6q";
21
22 memory {
23 reg = <0x10000000 0x80000000>;
24 };
25
26 backlight_lvds: backlight {
27 compatible = "pwm-backlight";
28 pinctrl-names = "default";
29 pinctrl-0 = <&pinctrl_backlight>;
30 pwms = <&pwm2 0 5000000 PWM_POLARITY_INVERTED>;
31 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
32 10 11 12 13 14 15 16 17 18 19
33 20 21 22 23 24 25 26 27 28 29
34 30 31 32 33 34 35 36 37 38 39
35 40 41 42 43 44 45 46 47 48 49
36 50 51 52 53 54 55 56 57 58 59
37 60 61 62 63 64 65 66 67 68 69
38 70 71 72 73 74 75 76 77 78 79
39 80 81 82 83 84 85 86 87 88 89
40 90 91 92 93 94 95 96 97 98 99
41 100 101 102 103 104 105 106 107 108 109
42 110 111 112 113 114 115 116 117 118 119
43 120 121 122 123 124 125 126 127 128 129
44 130 131 132 133 134 135 136 137 138 139
45 140 141 142 143 144 145 146 147 148 149
46 150 151 152 153 154 155 156 157 158 159
47 160 161 162 163 164 165 166 167 168 169
48 170 171 172 173 174 175 176 177 178 179
49 180 181 182 183 184 185 186 187 188 189
50 190 191 192 193 194 195 196 197 198 199
51 200 201 202 203 204 205 206 207 208 209
52 210 211 212 213 214 215 216 217 218 219
53 220 221 222 223 224 225 226 227 228 229
54 230 231 232 233 234 235 236 237 238 239
55 240 241 242 243 244 245 246 247 248 249
56 250 251 252 253 254 255>;
57 default-brightness-level = <50>;
58 enable-gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
59 };
60
61 reg_lvds: regulator-lvds {
62 compatible = "regulator-fixed";
63 regulator-name = "lvds_ppen";
64 regulator-min-microvolt = <3300000>;
65 regulator-max-microvolt = <3300000>;
66 regulator-boot-on;
67 pinctrl-names = "default";
68 pinctrl-0 = <&pinctrl_reg_lvds>;
69 gpio = <&gpio1 19 GPIO_ACTIVE_HIGH>;
70 enable-active-high;
71 };
72
73 panel-lvds0 {
74 compatible = "innolux,g121x1-l03";
75 backlight = <&backlight_lvds>;
76 power-supply = <&reg_lvds>;
77
78 port {
79 panel_in_lvds0: endpoint {
80 remote-endpoint = <&lvds0_out>;
81 };
82 };
83 };
84};
85
86&ecspi3 {
87 cs-gpios = <&gpio4 24 GPIO_ACTIVE_LOW>;
88 pinctrl-names = "default";
89 pinctrl-0 = <&pinctrl_ecspi3 &pinctrl_ecspi3_cs &pinctrl_ecspi3_flwp>;
90 status = "okay";
91
92 s25sl032p: flash@0 {
93 #address-cells = <1>;
94 #size-cells = <1>;
95 compatible = "jedec,spi-nor";
96 spi-max-frequency = <40000000>;
97 reg = <0>;
98 };
99};
100
101&fec {
102 pinctrl-names = "default";
103 pinctrl-0 = <&pinctrl_enet>;
104 phy-mode = "rgmii";
105 phy-reset-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>;
106 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
107 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
108 status = "okay";
109};
110
111&i2c1 {
112 clock-frequency = <100000>;
113 pinctrl-names = "default";
114 pinctrl-0 = <&pinctrl_i2c1>;
115 status = "okay";
116};
117
118&i2c2 {
119 clock-frequency = <100000>;
120 pinctrl-names = "default";
121 pinctrl-0 = <&pinctrl_i2c2>;
122 status = "okay";
123
124 pfuze100: pmic@08 {
125 compatible = "fsl,pfuze100";
126 reg = <0x08>;
127
128 regulators {
129 sw1a_reg: sw1ab {
130 regulator-min-microvolt = <300000>;
131 regulator-max-microvolt = <1875000>;
132 regulator-boot-on;
133 regulator-always-on;
134 regulator-ramp-delay = <6250>;
135 };
136
137 sw1c_reg: sw1c {
138 regulator-min-microvolt = <300000>;
139 regulator-max-microvolt = <1875000>;
140 regulator-boot-on;
141 regulator-always-on;
142 regulator-ramp-delay = <6250>;
143 };
144
145 sw2_reg: sw2 {
146 regulator-min-microvolt = <800000>;
147 regulator-max-microvolt = <3950000>;
148 regulator-boot-on;
149 regulator-always-on;
150 };
151
152 sw3a_reg: sw3a {
153 regulator-min-microvolt = <400000>;
154 regulator-max-microvolt = <1975000>;
155 regulator-boot-on;
156 regulator-always-on;
157 };
158
159 sw3b_reg: sw3b {
160 regulator-min-microvolt = <400000>;
161 regulator-max-microvolt = <1975000>;
162 regulator-boot-on;
163 regulator-always-on;
164 };
165
166 sw4_reg: sw4 {
167 regulator-min-microvolt = <800000>;
168 regulator-max-microvolt = <3300000>;
169 };
170
171 swbst_reg: swbst {
172 regulator-min-microvolt = <5000000>;
173 regulator-max-microvolt = <5150000>;
174 };
175
176 snvs_reg: vsnvs {
177 regulator-min-microvolt = <1000000>;
178 regulator-max-microvolt = <3000000>;
179 regulator-boot-on;
180 regulator-always-on;
181 };
182
183 vref_reg: vrefddr {
184 regulator-boot-on;
185 regulator-always-on;
186 };
187
188 vgen1_reg: vgen1 {
189 regulator-min-microvolt = <800000>;
190 regulator-max-microvolt = <1550000>;
191 };
192
193 vgen2_reg: vgen2 {
194 regulator-min-microvolt = <800000>;
195 regulator-max-microvolt = <1550000>;
196 };
197
198 vgen3_reg: vgen3 {
199 regulator-min-microvolt = <1800000>;
200 regulator-max-microvolt = <3300000>;
201 };
202
203 vgen4_reg: vgen4 {
204 regulator-min-microvolt = <1800000>;
205 regulator-max-microvolt = <3300000>;
206 regulator-always-on;
207 };
208
209 vgen5_reg: vgen5 {
210 regulator-min-microvolt = <1800000>;
211 regulator-max-microvolt = <3300000>;
212 regulator-always-on;
213 };
214
215 vgen6_reg: vgen6 {
216 regulator-min-microvolt = <1800000>;
217 regulator-max-microvolt = <3300000>;
218 regulator-always-on;
219 };
220 };
221 };
222};
223
224&ldb {
225 status = "okay";
226
227 lvds0: lvds-channel@0 {
228 fsl,data-mapping = "spwg";
229 fsl,data-width = <24>;
230 status = "okay";
231
232 port@4 {
233 reg = <4>;
234
235 lvds0_out: endpoint {
236 remote-endpoint = <&panel_in_lvds0>;
237 };
238 };
239 };
240};
241
242&pwm2 {
243 #pwm-cells = <3>;
244 pinctrl-names = "default";
245 pinctrl-0 = <&pinctrl_pwm2>;
246 status = "okay";
247};
248
249&uart1 {
250 pinctrl-names = "default";
251 pinctrl-0 = <&pinctrl_uart1>;
252 status = "okay";
253};
254
255&uart4 {
256 pinctrl-names = "default";
257 pinctrl-0 = <&pinctrl_uart4>;
258 uart-has-rtscts;
259 status = "okay";
260};
261
262&usdhc2 {
263 pinctrl-names = "default";
264 pinctrl-0 = <&pinctrl_usdhc2>;
265 cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
266 bus-width = <4>;
267 status = "okay";
268};
269
270&usdhc3 {
271 pinctrl-names = "default";
272 pinctrl-0 = <&pinctrl_usdhc3>;
273 bus-width = <8>;
274 non-removable;
275 status = "okay";
276};
277
278&weim {
279 pinctrl-names = "default";
280 pinctrl-0 = <&pinctrl_weim_nor &pinctrl_weim_cs0>;
281 ranges = <0 0 0x08000000 0x08000000>;
282 status = "okay";
283
284 nor@0,0 {
285 compatible = "cfi-flash";
286 reg = <0 0 0x02000000>;
287 #address-cells = <1>;
288 #size-cells = <1>;
289 bank-width = <2>;
290 use-advanced-sector-protection;
291 fsl,weim-cs-timing = <0x00620081 0x00000001 0x1c022000
292 0x0000c000 0x1404a38e 0x00000000>;
293 };
294};
295
296&iomuxc {
297 pinctrl-names = "default";
298
299 pinctrl_backlight: dispgrp {
300 fsl,pins = <
301 /* BLEN_OUT */
302 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b0
303 >;
304 };
305
306 pinctrl_ecspi3: ecspi3grp {
307 fsl,pins = <
308 MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x100b1
309 MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x100b1
310 MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1
311 >;
312 };
313
314 pinctrl_ecspi3_cs: ecspi3csgrp {
315 fsl,pins = <
316 MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24 0x80000000
317 >;
318 };
319
320 pinctrl_ecspi3_flwp: ecspi3flwpgrp {
321 fsl,pins = <
322 MX6QDL_PAD_DISP0_DAT6__GPIO4_IO27 0x80000000
323 >;
324 };
325
326 pinctrl_enet: enetgrp {
327 fsl,pins = <
328 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
329 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
330 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0
331 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0
332 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0
333 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0
334 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0
335 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0
336 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
337 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
338 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0
339 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0
340 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0
341 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0
342 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
343 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
344 MX6QDL_PAD_GPIO_6__ENET_IRQ 0x000b1
345 MX6QDL_PAD_ENET_RXD0__GPIO1_IO27 0x1b0b0
346 >;
347 };
348
349 pinctrl_i2c1: i2c1grp {
350 fsl,pins = <
351 MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001b8b1
352 MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1
353 >;
354 };
355
356 pinctrl_i2c2: i2c2grp {
357 fsl,pins = <
358 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
359 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
360 >;
361 };
362
363 pinctrl_pwm2: pwm2grp {
364 fsl,pins = <
365 MX6QDL_PAD_GPIO_1__PWM2_OUT 0x1b0b1
366 >;
367 };
368
369 pinctrl_reg_lvds: reqlvdsgrp {
370 fsl,pins = <
371 /* LVDS_PPEN_OUT */
372 MX6QDL_PAD_SD1_DAT2__GPIO1_IO19 0x1b0b0
373 >;
374 };
375
376 pinctrl_uart1: uart1grp {
377 fsl,pins = <
378 MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1
379 MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1
380 >;
381 };
382
383 pinctrl_uart4: uart4grp {
384 fsl,pins = <
385 MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1
386 MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1
387 MX6QDL_PAD_CSI0_DAT16__UART4_RTS_B 0x1b0b1
388 MX6QDL_PAD_CSI0_DAT17__UART4_CTS_B 0x1b0b1
389 >;
390 };
391
392 pinctrl_usdhc2: usdhc2grp {
393 fsl,pins = <
394 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059
395 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059
396 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
397 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
398 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
399 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059
400 MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b1
401 >;
402 };
403
404 pinctrl_usdhc3: usdhc3grp {
405 fsl,pins = <
406 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
407 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
408 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
409 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
410 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
411 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
412 MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17059
413 MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17059
414 MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17059
415 MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17059
416 MX6QDL_PAD_SD3_RST__SD3_RESET 0x17059
417 >;
418 };
419
420 pinctrl_weim_cs0: weimcs0grp {
421 fsl,pins = <
422 MX6QDL_PAD_EIM_CS0__EIM_CS0_B 0xb0b1
423 >;
424 };
425
426 pinctrl_weim_nor: weimnorgrp {
427 fsl,pins = <
428 MX6QDL_PAD_EIM_OE__EIM_OE_B 0xb0b1
429 MX6QDL_PAD_EIM_RW__EIM_RW 0xb0b1
430 MX6QDL_PAD_EIM_WAIT__EIM_WAIT_B 0xb060
431 MX6QDL_PAD_EIM_D16__EIM_DATA16 0x1b0b0
432 MX6QDL_PAD_EIM_D17__EIM_DATA17 0x1b0b0
433 MX6QDL_PAD_EIM_D18__EIM_DATA18 0x1b0b0
434 MX6QDL_PAD_EIM_D19__EIM_DATA19 0x1b0b0
435 MX6QDL_PAD_EIM_D20__EIM_DATA20 0x1b0b0
436 MX6QDL_PAD_EIM_D21__EIM_DATA21 0x1b0b0
437 MX6QDL_PAD_EIM_D22__EIM_DATA22 0x1b0b0
438 MX6QDL_PAD_EIM_D23__EIM_DATA23 0x1b0b0
439 MX6QDL_PAD_EIM_D24__EIM_DATA24 0x1b0b0
440 MX6QDL_PAD_EIM_D25__EIM_DATA25 0x1b0b0
441 MX6QDL_PAD_EIM_D26__EIM_DATA26 0x1b0b0
442 MX6QDL_PAD_EIM_D27__EIM_DATA27 0x1b0b0
443 MX6QDL_PAD_EIM_D28__EIM_DATA28 0x1b0b0
444 MX6QDL_PAD_EIM_D29__EIM_DATA29 0x1b0b0
445 MX6QDL_PAD_EIM_D30__EIM_DATA30 0x1b0b0
446 MX6QDL_PAD_EIM_D31__EIM_DATA31 0x1b0b0
447 MX6QDL_PAD_EIM_A23__EIM_ADDR23 0xb0b1
448 MX6QDL_PAD_EIM_A22__EIM_ADDR22 0xb0b1
449 MX6QDL_PAD_EIM_A21__EIM_ADDR21 0xb0b1
450 MX6QDL_PAD_EIM_A20__EIM_ADDR20 0xb0b1
451 MX6QDL_PAD_EIM_A19__EIM_ADDR19 0xb0b1
452 MX6QDL_PAD_EIM_A18__EIM_ADDR18 0xb0b1
453 MX6QDL_PAD_EIM_A17__EIM_ADDR17 0xb0b1
454 MX6QDL_PAD_EIM_A16__EIM_ADDR16 0xb0b1
455 MX6QDL_PAD_EIM_DA15__EIM_AD15 0xb0b1
456 MX6QDL_PAD_EIM_DA14__EIM_AD14 0xb0b1
457 MX6QDL_PAD_EIM_DA13__EIM_AD13 0xb0b1
458 MX6QDL_PAD_EIM_DA12__EIM_AD12 0xb0b1
459 MX6QDL_PAD_EIM_DA11__EIM_AD11 0xb0b1
460 MX6QDL_PAD_EIM_DA10__EIM_AD10 0xb0b1
461 MX6QDL_PAD_EIM_DA9__EIM_AD09 0xb0b1
462 MX6QDL_PAD_EIM_DA8__EIM_AD08 0xb0b1
463 MX6QDL_PAD_EIM_DA7__EIM_AD07 0xb0b1
464 MX6QDL_PAD_EIM_DA6__EIM_AD06 0xb0b1
465 MX6QDL_PAD_EIM_DA5__EIM_AD05 0xb0b1
466 MX6QDL_PAD_EIM_DA4__EIM_AD04 0xb0b1
467 MX6QDL_PAD_EIM_DA3__EIM_AD03 0xb0b1
468 MX6QDL_PAD_EIM_DA2__EIM_AD02 0xb0b1
469 MX6QDL_PAD_EIM_DA1__EIM_AD01 0xb0b1
470 MX6QDL_PAD_EIM_DA0__EIM_AD00 0xb0b1
471 >;
472 };
473};
diff --git a/arch/arm/boot/dts/imx6q-nitrogen6_max.dts b/arch/arm/boot/dts/imx6q-nitrogen6_max.dts
index d417457ca6db..2a3c44f98eed 100644
--- a/arch/arm/boot/dts/imx6q-nitrogen6_max.dts
+++ b/arch/arm/boot/dts/imx6q-nitrogen6_max.dts
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6q-nitrogen6_som2.dts b/arch/arm/boot/dts/imx6q-nitrogen6_som2.dts
index cf4feefe02c5..c5d59baa1a07 100644
--- a/arch/arm/boot/dts/imx6q-nitrogen6_som2.dts
+++ b/arch/arm/boot/dts/imx6q-nitrogen6_som2.dts
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6q-nitrogen6x.dts b/arch/arm/boot/dts/imx6q-nitrogen6x.dts
index d1686339dc48..df8ff397a914 100644
--- a/arch/arm/boot/dts/imx6q-nitrogen6x.dts
+++ b/arch/arm/boot/dts/imx6q-nitrogen6x.dts
@@ -12,17 +12,17 @@
12 * modify it under the terms of the GNU General Public License 12 * modify it under the terms of the GNU General Public License
13 * version 2 as published by the Free Software Foundation. 13 * version 2 as published by the Free Software Foundation.
14 * 14 *
15 * This file is distributed in the hope that it will be useful 15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details. 18 * GNU General Public License for more details.
19 * 19 *
20 * Or, alternatively 20 * Or, alternatively,
21 * 21 *
22 * b) Permission is hereby granted, free of charge, to any person 22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation 23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without 24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use 25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or 26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the 27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following 28 * Software is furnished to do so, subject to the following
@@ -31,11 +31,11 @@
31 * The above copyright notice and this permission notice shall be 31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software. 32 * included in all copies or substantial portions of the Software.
33 * 33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE. 41 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6q-novena.dts b/arch/arm/boot/dts/imx6q-novena.dts
index 758bca96786f..0fa32b2f3aec 100644
--- a/arch/arm/boot/dts/imx6q-novena.dts
+++ b/arch/arm/boot/dts/imx6q-novena.dts
@@ -210,7 +210,6 @@
210&ecspi3 { 210&ecspi3 {
211 pinctrl-names = "default"; 211 pinctrl-names = "default";
212 pinctrl-0 = <&pinctrl_ecspi3_novena>; 212 pinctrl-0 = <&pinctrl_ecspi3_novena>;
213 fsl,spi-num-chipselects = <3>;
214 status = "okay"; 213 status = "okay";
215}; 214};
216 215
diff --git a/arch/arm/boot/dts/imx6q-sabrelite.dts b/arch/arm/boot/dts/imx6q-sabrelite.dts
index 66d10d8d534c..02a7cdfd57c9 100644
--- a/arch/arm/boot/dts/imx6q-sabrelite.dts
+++ b/arch/arm/boot/dts/imx6q-sabrelite.dts
@@ -11,17 +11,17 @@
11 * modify it under the terms of the GNU General Public License 11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation. 12 * version 2 as published by the Free Software Foundation.
13 * 13 *
14 * This file is distributed in the hope that it will be useful 14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details. 17 * GNU General Public License for more details.
18 * 18 *
19 * Or, alternatively 19 * Or, alternatively,
20 * 20 *
21 * b) Permission is hereby granted, free of charge, to any person 21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation 22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without 23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use 24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or 25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the 26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following 27 * Software is furnished to do so, subject to the following
@@ -30,11 +30,11 @@
30 * The above copyright notice and this permission notice shall be 30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software. 31 * included in all copies or substantial portions of the Software.
32 * 32 *
33 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6q-savageboard.dts b/arch/arm/boot/dts/imx6q-savageboard.dts
new file mode 100644
index 000000000000..717ac62fc2cf
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-savageboard.dts
@@ -0,0 +1,55 @@
1/*
2 * Copyright (C) 2017 Milo Kim <woogyom.kim@gmail.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44
45#include "imx6q.dtsi"
46#include "imx6qdl-savageboard.dtsi"
47
48/ {
49 model = "Poslab SavageBoard Quad";
50 compatible = "poslab,imx6q-savageboard", "fsl,imx6q";
51};
52
53&sata {
54 status = "okay";
55};
diff --git a/arch/arm/boot/dts/imx6q-ts4900.dts b/arch/arm/boot/dts/imx6q-ts4900.dts
index 9b81ebc8b0d4..fab76f8cd076 100644
--- a/arch/arm/boot/dts/imx6q-ts4900.dts
+++ b/arch/arm/boot/dts/imx6q-ts4900.dts
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6q-utilite-pro.dts b/arch/arm/boot/dts/imx6q-utilite-pro.dts
index 22009947cebc..69bdd82ce21f 100644
--- a/arch/arm/boot/dts/imx6q-utilite-pro.dts
+++ b/arch/arm/boot/dts/imx6q-utilite-pro.dts
@@ -59,6 +59,33 @@
59 rtc1 = &snvs_rtc; 59 rtc1 = &snvs_rtc;
60 }; 60 };
61 61
62 encoder {
63 compatible = "ti,tfp410";
64 #address-cells = <1>;
65 #size-cells = <0>;
66
67 ports {
68 #address-cells = <1>;
69 #size-cells = <0>;
70
71 port@0 {
72 reg = <0>;
73
74 tfp410_in: endpoint {
75 remote-endpoint = <&parallel_display_out>;
76 };
77 };
78
79 port@1 {
80 reg = <1>;
81
82 tfp410_out: endpoint {
83 remote-endpoint = <&hdmi_connector_in>;
84 };
85 };
86 };
87 };
88
62 gpio-keys { 89 gpio-keys {
63 compatible = "gpio-keys"; 90 compatible = "gpio-keys";
64 pinctrl-names = "default"; 91 pinctrl-names = "default";
@@ -72,6 +99,19 @@
72 }; 99 };
73 }; 100 };
74 101
102 hdmi-connector {
103 compatible = "hdmi-connector";
104
105 type = "a";
106 ddc-i2c-bus = <&i2c_dvi_ddc>;
107
108 port {
109 hdmi_connector_in: endpoint {
110 remote-endpoint = <&tfp410_out>;
111 };
112 };
113 };
114
75 i2cmux { 115 i2cmux {
76 compatible = "i2c-mux-gpio"; 116 compatible = "i2c-mux-gpio";
77 pinctrl-names = "default"; 117 pinctrl-names = "default";
@@ -105,8 +145,46 @@
105 #size-cells = <0>; 145 #size-cells = <0>;
106 }; 146 };
107 }; 147 };
148
149 parallel-display {
150 compatible = "fsl,imx-parallel-display";
151 #address-cells = <1>;
152 #size-cells = <0>;
153 pinctrl-names = "default";
154 pinctrl-0 = <&pinctrl_ipu1>;
155
156 interface-pix-fmt = "rgb24";
157
158 port@0 {
159 reg = <0>;
160
161 parallel_display_in: endpoint {
162 remote-endpoint = <&ipu1_di0_disp0>;
163 };
164 };
165
166 port@1 {
167 reg = <1>;
168
169 parallel_display_out: endpoint {
170 remote-endpoint = <&tfp410_in>;
171 };
172 };
173 };
108}; 174};
109 175
176/*
177 * A single IPU is not able to drive both display interfaces available on the
178 * Utilite Pro at high resolution due to its bandwidth limitation. Since the
179 * tfp410 encoder is wired up to IPU1, sever the link between IPU1 and the
180 * SoC-internal Designware HDMI encoder forcing the latter to be connected to
181 * IPU2 instead of IPU1.
182 */
183/delete-node/&ipu1_di0_hdmi;
184/delete-node/&hdmi_mux_0;
185/delete-node/&ipu1_di1_hdmi;
186/delete-node/&hdmi_mux_1;
187
110&hdmi { 188&hdmi {
111 ddc-i2c-bus = <&i2c2>; 189 ddc-i2c-bus = <&i2c2>;
112 status = "okay"; 190 status = "okay";
@@ -151,6 +229,39 @@
151 >; 229 >;
152 }; 230 };
153 231
232 pinctrl_ipu1: ipu1grp {
233 fsl,pins = <
234 MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x38
235 MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x38
236 MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x38
237 MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x38
238 MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x38
239 MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x38
240 MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x38
241 MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x38
242 MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x38
243 MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x38
244 MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x38
245 MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x38
246 MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x38
247 MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x38
248 MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x38
249 MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x38
250 MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x38
251 MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x38
252 MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x38
253 MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x38
254 MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x38
255 MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x38
256 MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x38
257 MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x38
258 MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x38
259 MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x38
260 MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x38
261 MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x38
262 >;
263 };
264
154 pinctrl_uart2: uart2grp { 265 pinctrl_uart2: uart2grp {
155 fsl,pins = < 266 fsl,pins = <
156 MX6QDL_PAD_GPIO_7__UART2_TX_DATA 0x1b0b1 267 MX6QDL_PAD_GPIO_7__UART2_TX_DATA 0x1b0b1
@@ -194,6 +305,10 @@
194 }; 305 };
195}; 306};
196 307
308&ipu1_di0_disp0 {
309 remote-endpoint = <&parallel_display_in>;
310};
311
197&pcie { 312&pcie {
198 pcie@0,0 { 313 pcie@0,0 {
199 reg = <0x000000 0 0 0 0>; 314 reg = <0x000000 0 0 0 0>;
diff --git a/arch/arm/boot/dts/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
index 8c8a049eb3d0..ba01dd76d887 100644
--- a/arch/arm/boot/dts/imx6qdl-apalis.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
@@ -12,17 +12,17 @@
12 * modify it under the terms of the GNU General Public License 12 * modify it under the terms of the GNU General Public License
13 * version 2 as published by the Free Software Foundation. 13 * version 2 as published by the Free Software Foundation.
14 * 14 *
15 * This file is distributed in the hope that it will be useful 15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details. 18 * GNU General Public License for more details.
19 * 19 *
20 * Or, alternatively 20 * Or, alternatively,
21 * 21 *
22 * b) Permission is hereby granted, free of charge, to any person 22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation 23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without 24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use 25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or 26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the 27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following 28 * Software is furnished to do so, subject to the following
@@ -31,11 +31,11 @@
31 * The above copyright notice and this permission notice shall be 31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software. 32 * included in all copies or substantial portions of the Software.
33 * 33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE. 41 * OTHER DEALINGS IN THE SOFTWARE.
@@ -175,7 +175,6 @@
175 175
176/* Apalis SPI1 */ 176/* Apalis SPI1 */
177&ecspi1 { 177&ecspi1 {
178 fsl,spi-num-chipselects = <1>;
179 cs-gpios = <&gpio5 25 GPIO_ACTIVE_HIGH>; 178 cs-gpios = <&gpio5 25 GPIO_ACTIVE_HIGH>;
180 pinctrl-names = "default"; 179 pinctrl-names = "default";
181 pinctrl-0 = <&pinctrl_ecspi1>; 180 pinctrl-0 = <&pinctrl_ecspi1>;
@@ -184,7 +183,6 @@
184 183
185/* Apalis SPI2 */ 184/* Apalis SPI2 */
186&ecspi2 { 185&ecspi2 {
187 fsl,spi-num-chipselects = <1>;
188 cs-gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>; 186 cs-gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
189 pinctrl-names = "default"; 187 pinctrl-names = "default";
190 pinctrl-0 = <&pinctrl_ecspi2>; 188 pinctrl-0 = <&pinctrl_ecspi2>;
diff --git a/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi b/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi
index 5e7792d6bf58..550e100e85fc 100644
--- a/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi
@@ -176,7 +176,6 @@
176&ecspi1 { 176&ecspi1 {
177 pinctrl-names = "default"; 177 pinctrl-names = "default";
178 pinctrl-0 = <&pinctrl_ecspi1>; 178 pinctrl-0 = <&pinctrl_ecspi1>;
179 fsl,spi-num-chipselects = <3>;
180 cs-gpios = <&gpio4 9 GPIO_ACTIVE_LOW>, 179 cs-gpios = <&gpio4 9 GPIO_ACTIVE_LOW>,
181 <&gpio4 10 GPIO_ACTIVE_LOW>, 180 <&gpio4 10 GPIO_ACTIVE_LOW>,
182 <&gpio4 11 GPIO_ACTIVE_LOW>; 181 <&gpio4 11 GPIO_ACTIVE_LOW>;
diff --git a/arch/arm/boot/dts/imx6qdl-aristainetos.dtsi b/arch/arm/boot/dts/imx6qdl-aristainetos.dtsi
index 54f4f0193f2b..b2debc0aa720 100644
--- a/arch/arm/boot/dts/imx6qdl-aristainetos.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-aristainetos.dtsi
@@ -100,7 +100,6 @@
100}; 100};
101 101
102&ecspi4 { 102&ecspi4 {
103 fsl,spi-num-chipselects = <1>;
104 cs-gpios = <&gpio3 20 0>; 103 cs-gpios = <&gpio3 20 0>;
105 pinctrl-names = "default"; 104 pinctrl-names = "default";
106 pinctrl-0 = <&pinctrl_ecspi4>; 105 pinctrl-0 = <&pinctrl_ecspi4>;
diff --git a/arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi b/arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi
index 7fff02c406f2..ec68f1cace31 100644
--- a/arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi
@@ -12,17 +12,17 @@
12 * modify it under the terms of the GNU General Public License 12 * modify it under the terms of the GNU General Public License
13 * version 2 as published by the Free Software Foundation. 13 * version 2 as published by the Free Software Foundation.
14 * 14 *
15 * This file is distributed in the hope that it will be useful 15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details. 18 * GNU General Public License for more details.
19 * 19 *
20 * Or, alternatively 20 * Or, alternatively,
21 * 21 *
22 * b) Permission is hereby granted, free of charge, to any person 22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation 23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without 24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use 25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or 26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the 27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following 28 * Software is furnished to do so, subject to the following
@@ -31,11 +31,11 @@
31 * The above copyright notice and this permission notice shall be 31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software. 32 * included in all copies or substantial portions of the Software.
33 * 33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE. 41 * OTHER DEALINGS IN THE SOFTWARE.
@@ -114,7 +114,6 @@
114}; 114};
115 115
116&ecspi1 { 116&ecspi1 {
117 fsl,spi-num-chipselects = <3>;
118 cs-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH 117 cs-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH
119 &gpio4 10 GPIO_ACTIVE_HIGH 118 &gpio4 10 GPIO_ACTIVE_HIGH
120 &gpio4 11 GPIO_ACTIVE_HIGH>; 119 &gpio4 11 GPIO_ACTIVE_HIGH>;
@@ -124,7 +123,6 @@
124}; 123};
125 124
126&ecspi2 { 125&ecspi2 {
127 fsl,spi-num-chipselects = <2>;
128 cs-gpios = <&gpio2 26 GPIO_ACTIVE_HIGH &gpio2 27 GPIO_ACTIVE_HIGH>; 126 cs-gpios = <&gpio2 26 GPIO_ACTIVE_HIGH &gpio2 27 GPIO_ACTIVE_HIGH>;
129 pinctrl-names = "default"; 127 pinctrl-names = "default";
130 pinctrl-0 = <&pinctrl_ecspi2>; 128 pinctrl-0 = <&pinctrl_ecspi2>;
@@ -132,7 +130,6 @@
132}; 130};
133 131
134&ecspi4 { 132&ecspi4 {
135 fsl,spi-num-chipselects = <2>;
136 cs-gpios = <&gpio3 29 GPIO_ACTIVE_HIGH &gpio5 2 GPIO_ACTIVE_HIGH>; 133 cs-gpios = <&gpio3 29 GPIO_ACTIVE_HIGH &gpio5 2 GPIO_ACTIVE_HIGH>;
137 pinctrl-names = "default"; 134 pinctrl-names = "default";
138 pinctrl-0 = <&pinctrl_ecspi4>; 135 pinctrl-0 = <&pinctrl_ecspi4>;
diff --git a/arch/arm/boot/dts/imx6qdl-colibri.dtsi b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
index e6faa653f91a..e8078758f26c 100644
--- a/arch/arm/boot/dts/imx6qdl-colibri.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
@@ -12,17 +12,17 @@
12 * modify it under the terms of the GNU General Public License 12 * modify it under the terms of the GNU General Public License
13 * version 2 as published by the Free Software Foundation. 13 * version 2 as published by the Free Software Foundation.
14 * 14 *
15 * This file is distributed in the hope that it will be useful 15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details. 18 * GNU General Public License for more details.
19 * 19 *
20 * Or, alternatively 20 * Or, alternatively,
21 * 21 *
22 * b) Permission is hereby granted, free of charge, to any person 22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation 23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without 24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use 25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or 26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the 27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following 28 * Software is furnished to do so, subject to the following
@@ -31,11 +31,11 @@
31 * The above copyright notice and this permission notice shall be 31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software. 32 * included in all copies or substantial portions of the Software.
33 * 33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE. 41 * OTHER DEALINGS IN THE SOFTWARE.
@@ -138,7 +138,6 @@
138 138
139/* Colibri SSP */ 139/* Colibri SSP */
140&ecspi4 { 140&ecspi4 {
141 fsl,spi-num-chipselects = <1>;
142 cs-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>; 141 cs-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
143 pinctrl-names = "default"; 142 pinctrl-names = "default";
144 pinctrl-0 = <&pinctrl_ecspi4>; 143 pinctrl-0 = <&pinctrl_ecspi4>;
diff --git a/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi b/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi
index ff41f83551de..14fff4ee6516 100644
--- a/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi b/arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi
index b2c083d57598..d78312c63672 100644
--- a/arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi
@@ -29,7 +29,6 @@
29}; 29};
30 30
31&ecspi3 { 31&ecspi3 {
32 fsl,spi-num-chipselects = <1>;
33 cs-gpios = <&gpio4 24 0>; 32 cs-gpios = <&gpio4 24 0>;
34 pinctrl-names = "default"; 33 pinctrl-names = "default";
35 pinctrl-0 = <&pinctrl_ecspi3>; 34 pinctrl-0 = <&pinctrl_ecspi3>;
diff --git a/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
index afec2c7628ef..e8c1edc82e6e 100644
--- a/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
@@ -56,38 +56,29 @@
56 status = "okay"; 56 status = "okay";
57 }; 57 };
58 58
59 regulators { 59 reg_3p3v: regulator-3p3v {
60 compatible = "simple-bus"; 60 compatible = "regulator-fixed";
61 #address-cells = <1>; 61 regulator-name = "3P3V";
62 #size-cells = <0>; 62 regulator-min-microvolt = <3300000>;
63 63 regulator-max-microvolt = <3300000>;
64 reg_3p3v: regulator@0 { 64 regulator-always-on;
65 compatible = "regulator-fixed"; 65 };
66 reg = <0>;
67 regulator-name = "3P3V";
68 regulator-min-microvolt = <3300000>;
69 regulator-max-microvolt = <3300000>;
70 regulator-always-on;
71 };
72 66
73 reg_5p0v: regulator@1 { 67 reg_5p0v: regulator-5p0v {
74 compatible = "regulator-fixed"; 68 compatible = "regulator-fixed";
75 reg = <1>; 69 regulator-name = "5P0V";
76 regulator-name = "5P0V"; 70 regulator-min-microvolt = <5000000>;
77 regulator-min-microvolt = <5000000>; 71 regulator-max-microvolt = <5000000>;
78 regulator-max-microvolt = <5000000>; 72 regulator-always-on;
79 regulator-always-on; 73 };
80 };
81 74
82 reg_usb_otg_vbus: regulator@2 { 75 reg_usb_otg_vbus: regulator-usb-otg-vbus {
83 compatible = "regulator-fixed"; 76 compatible = "regulator-fixed";
84 reg = <2>; 77 regulator-name = "usb_otg_vbus";
85 regulator-name = "usb_otg_vbus"; 78 regulator-min-microvolt = <5000000>;
86 regulator-min-microvolt = <5000000>; 79 regulator-max-microvolt = <5000000>;
87 regulator-max-microvolt = <5000000>; 80 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
88 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>; 81 enable-active-high;
89 enable-active-high;
90 };
91 }; 82 };
92}; 83};
93 84
@@ -158,6 +149,81 @@
158 pinctrl-names = "default"; 149 pinctrl-names = "default";
159 pinctrl-0 = <&pinctrl_i2c2>; 150 pinctrl-0 = <&pinctrl_i2c2>;
160 status = "okay"; 151 status = "okay";
152
153 ltc3676: pmic@3c {
154 compatible = "lltc,ltc3676";
155 reg = <0x3c>;
156 pinctrl-names = "default";
157 pinctrl-0 = <&pinctrl_pmic>;
158 interrupt-parent = <&gpio1>;
159 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
160
161 regulators {
162 /* VDD_SOC (1+R1/R2 = 1.635) */
163 reg_vdd_soc: sw1 {
164 regulator-name = "vddsoc";
165 regulator-min-microvolt = <674400>;
166 regulator-max-microvolt = <1308000>;
167 lltc,fb-voltage-divider = <127000 200000>;
168 regulator-ramp-delay = <7000>;
169 regulator-boot-on;
170 regulator-always-on;
171 };
172
173 /* VDD_1P8 (1+R1/R2 = 2.505): GPS/VideoIn/ENET-PHY */
174 reg_1p8v: sw2 {
175 regulator-name = "vdd1p8";
176 regulator-min-microvolt = <1033310>;
177 regulator-max-microvolt = <2004000>;
178 lltc,fb-voltage-divider = <301000 200000>;
179 regulator-ramp-delay = <7000>;
180 regulator-boot-on;
181 regulator-always-on;
182 };
183
184 /* VDD_ARM (1+R1/R2 = 1.635) */
185 reg_vdd_arm: sw3 {
186 regulator-name = "vddarm";
187 regulator-min-microvolt = <674400>;
188 regulator-max-microvolt = <1308000>;
189 lltc,fb-voltage-divider = <127000 200000>;
190 regulator-ramp-delay = <7000>;
191 regulator-boot-on;
192 regulator-always-on;
193 };
194
195 /* VDD_DDR (1+R1/R2 = 2.105) */
196 reg_vdd_ddr: sw4 {
197 regulator-name = "vddddr";
198 regulator-min-microvolt = <868310>;
199 regulator-max-microvolt = <1684000>;
200 lltc,fb-voltage-divider = <221000 200000>;
201 regulator-ramp-delay = <7000>;
202 regulator-boot-on;
203 regulator-always-on;
204 };
205
206 /* VDD_2P5 (1+R1/R2 = 3.435): PCIe/ENET-PHY */
207 reg_2p5v: ldo2 {
208 regulator-name = "vdd2p5";
209 regulator-min-microvolt = <2490375>;
210 regulator-max-microvolt = <2490375>;
211 lltc,fb-voltage-divider = <487000 200000>;
212 regulator-boot-on;
213 regulator-always-on;
214 };
215
216 /* VDD_HIGH (1+R1/R2 = 4.17) */
217 reg_3p0v: ldo4 {
218 regulator-name = "vdd3p0";
219 regulator-min-microvolt = <3023250>;
220 regulator-max-microvolt = <3023250>;
221 lltc,fb-voltage-divider = <634000 200000>;
222 regulator-boot-on;
223 regulator-always-on;
224 };
225 };
226 };
161}; 227};
162 228
163&i2c3 { 229&i2c3 {
@@ -312,6 +378,12 @@
312 >; 378 >;
313 }; 379 };
314 380
381 pinctrl_pmic: pmicgrp {
382 fsl,pins = <
383 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */
384 >;
385 };
386
315 pinctrl_pps: ppsgrp { 387 pinctrl_pps: ppsgrp {
316 fsl,pins = < 388 fsl,pins = <
317 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1 389 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1
diff --git a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
index 54aca3a07ce4..91991d63a69c 100644
--- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
@@ -71,57 +71,37 @@
71 status = "okay"; 71 status = "okay";
72 }; 72 };
73 73
74 regulators { 74 reg_1p0v: regulator-1p0v {
75 compatible = "simple-bus"; 75 compatible = "regulator-fixed";
76 #address-cells = <1>; 76 regulator-name = "1P0V";
77 #size-cells = <0>; 77 regulator-min-microvolt = <1000000>;
78 78 regulator-max-microvolt = <1000000>;
79 reg_1p0v: regulator@0 { 79 regulator-always-on;
80 compatible = "regulator-fixed"; 80 };
81 reg = <0>;
82 regulator-name = "1P0V";
83 regulator-min-microvolt = <1000000>;
84 regulator-max-microvolt = <1000000>;
85 regulator-always-on;
86 };
87
88 /* remove this fixed regulator once ltc3676__sw2 driver available */
89 reg_1p8v: regulator@1 {
90 compatible = "regulator-fixed";
91 reg = <1>;
92 regulator-name = "1P8V";
93 regulator-min-microvolt = <1800000>;
94 regulator-max-microvolt = <1800000>;
95 regulator-always-on;
96 };
97 81
98 reg_3p3v: regulator@2 { 82 reg_3p3v: regulator-3p3v {
99 compatible = "regulator-fixed"; 83 compatible = "regulator-fixed";
100 reg = <2>; 84 regulator-name = "3P3V";
101 regulator-name = "3P3V"; 85 regulator-min-microvolt = <3300000>;
102 regulator-min-microvolt = <3300000>; 86 regulator-max-microvolt = <3300000>;
103 regulator-max-microvolt = <3300000>; 87 regulator-always-on;
104 regulator-always-on; 88 };
105 };
106 89
107 reg_5p0v: regulator@3 { 90 reg_5p0v: regulator-5p0v {
108 compatible = "regulator-fixed"; 91 compatible = "regulator-fixed";
109 reg = <3>; 92 regulator-name = "5P0V";
110 regulator-name = "5P0V"; 93 regulator-min-microvolt = <5000000>;
111 regulator-min-microvolt = <5000000>; 94 regulator-max-microvolt = <5000000>;
112 regulator-max-microvolt = <5000000>; 95 regulator-always-on;
113 regulator-always-on; 96 };
114 };
115 97
116 reg_usb_otg_vbus: regulator@4 { 98 reg_usb_otg_vbus: regulator-usb-otg-vbus {
117 compatible = "regulator-fixed"; 99 compatible = "regulator-fixed";
118 reg = <4>; 100 regulator-name = "usb_otg_vbus";
119 regulator-name = "usb_otg_vbus"; 101 regulator-min-microvolt = <5000000>;
120 regulator-min-microvolt = <5000000>; 102 regulator-max-microvolt = <5000000>;
121 regulator-max-microvolt = <5000000>; 103 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
122 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>; 104 enable-active-high;
123 enable-active-high;
124 };
125 }; 105 };
126 106
127 sound { 107 sound {
@@ -159,7 +139,6 @@
159}; 139};
160 140
161&ecspi3 { 141&ecspi3 {
162 fsl,spi-num-chipselects = <1>;
163 cs-gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>; 142 cs-gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
164 pinctrl-names = "default"; 143 pinctrl-names = "default";
165 pinctrl-0 = <&pinctrl_ecspi3>; 144 pinctrl-0 = <&pinctrl_ecspi3>;
@@ -233,6 +212,89 @@
233 pinctrl-names = "default"; 212 pinctrl-names = "default";
234 pinctrl-0 = <&pinctrl_i2c2>; 213 pinctrl-0 = <&pinctrl_i2c2>;
235 status = "okay"; 214 status = "okay";
215
216 ltc3676: pmic@3c {
217 compatible = "lltc,ltc3676";
218 reg = <0x3c>;
219 pinctrl-names = "default";
220 pinctrl-0 = <&pinctrl_pmic>;
221 interrupt-parent = <&gpio1>;
222 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
223
224 regulators {
225 /* VDD_SOC (1+R1/R2 = 1.635) */
226 reg_vdd_soc: sw1 {
227 regulator-name = "vddsoc";
228 regulator-min-microvolt = <674400>;
229 regulator-max-microvolt = <1308000>;
230 lltc,fb-voltage-divider = <127000 200000>;
231 regulator-ramp-delay = <7000>;
232 regulator-boot-on;
233 regulator-always-on;
234 };
235
236 /* VDD_1P8 (1+R1/R2 = 2.505): GPS/VideoIn/ENET-PHY */
237 reg_1p8v: sw2 {
238 regulator-name = "vdd1p8";
239 regulator-min-microvolt = <1033310>;
240 regulator-max-microvolt = <2004000>;
241 lltc,fb-voltage-divider = <301000 200000>;
242 regulator-ramp-delay = <7000>;
243 regulator-boot-on;
244 regulator-always-on;
245 };
246
247 /* VDD_ARM (1+R1/R2 = 1.635) */
248 reg_vdd_arm: sw3 {
249 regulator-name = "vddarm";
250 regulator-min-microvolt = <674400>;
251 regulator-max-microvolt = <1308000>;
252 lltc,fb-voltage-divider = <127000 200000>;
253 regulator-ramp-delay = <7000>;
254 regulator-boot-on;
255 regulator-always-on;
256 };
257
258 /* VDD_DDR (1+R1/R2 = 2.105) */
259 reg_vdd_ddr: sw4 {
260 regulator-name = "vddddr";
261 regulator-min-microvolt = <868310>;
262 regulator-max-microvolt = <1684000>;
263 lltc,fb-voltage-divider = <221000 200000>;
264 regulator-ramp-delay = <7000>;
265 regulator-boot-on;
266 regulator-always-on;
267 };
268
269 /* VDD_2P5 (1+R1/R2 = 3.435): PCIe/ENET-PHY */
270 reg_2p5v: ldo2 {
271 regulator-name = "vdd2p5";
272 regulator-min-microvolt = <2490375>;
273 regulator-max-microvolt = <2490375>;
274 lltc,fb-voltage-divider = <487000 200000>;
275 regulator-boot-on;
276 regulator-always-on;
277 };
278
279 /* VDD_AUD_1P8: Audio codec */
280 reg_aud_1p8v: ldo3 {
281 regulator-name = "vdd1p8";
282 regulator-min-microvolt = <1800000>;
283 regulator-max-microvolt = <1800000>;
284 regulator-boot-on;
285 };
286
287 /* VDD_HIGH (1+R1/R2 = 4.17) */
288 reg_3p0v: ldo4 {
289 regulator-name = "vdd3p0";
290 regulator-min-microvolt = <3023250>;
291 regulator-max-microvolt = <3023250>;
292 lltc,fb-voltage-divider = <634000 200000>;
293 regulator-boot-on;
294 regulator-always-on;
295 };
296 };
297 };
236}; 298};
237 299
238&i2c3 { 300&i2c3 {
@@ -467,6 +529,12 @@
467 >; 529 >;
468 }; 530 };
469 531
532 pinctrl_pmic: pmicgrp {
533 fsl,pins = <
534 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */
535 >;
536 };
537
470 pinctrl_pps: ppsgrp { 538 pinctrl_pps: ppsgrp {
471 fsl,pins = < 539 fsl,pins = <
472 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1 540 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1
diff --git a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
index 88e5cb3b6be9..a208e7e0dc6e 100644
--- a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
@@ -72,57 +72,37 @@
72 status = "okay"; 72 status = "okay";
73 }; 73 };
74 74
75 regulators { 75 reg_1p0v: regulator-1p0v {
76 compatible = "simple-bus"; 76 compatible = "regulator-fixed";
77 #address-cells = <1>; 77 regulator-name = "1P0V";
78 #size-cells = <0>; 78 regulator-min-microvolt = <1000000>;
79 79 regulator-max-microvolt = <1000000>;
80 reg_1p0v: regulator@0 { 80 regulator-always-on;
81 compatible = "regulator-fixed"; 81 };
82 reg = <0>;
83 regulator-name = "1P0V";
84 regulator-min-microvolt = <1000000>;
85 regulator-max-microvolt = <1000000>;
86 regulator-always-on;
87 };
88
89 /* remove when pmic 1p8 regulator available */
90 reg_1p8v: regulator@1 {
91 compatible = "regulator-fixed";
92 reg = <1>;
93 regulator-name = "1P8V";
94 regulator-min-microvolt = <1800000>;
95 regulator-max-microvolt = <1800000>;
96 regulator-always-on;
97 };
98 82
99 reg_3p3v: regulator@2 { 83 reg_3p3v: regulator-3p3v {
100 compatible = "regulator-fixed"; 84 compatible = "regulator-fixed";
101 reg = <2>; 85 regulator-name = "3P3V";
102 regulator-name = "3P3V"; 86 regulator-min-microvolt = <3300000>;
103 regulator-min-microvolt = <3300000>; 87 regulator-max-microvolt = <3300000>;
104 regulator-max-microvolt = <3300000>; 88 regulator-always-on;
105 regulator-always-on; 89 };
106 };
107 90
108 reg_usb_h1_vbus: regulator@3 { 91 reg_usb_h1_vbus: regulator-usb-h1-vbus {
109 compatible = "regulator-fixed"; 92 compatible = "regulator-fixed";
110 reg = <3>; 93 regulator-name = "usb_h1_vbus";
111 regulator-name = "usb_h1_vbus"; 94 regulator-min-microvolt = <5000000>;
112 regulator-min-microvolt = <5000000>; 95 regulator-max-microvolt = <5000000>;
113 regulator-max-microvolt = <5000000>; 96 regulator-always-on;
114 regulator-always-on; 97 };
115 };
116 98
117 reg_usb_otg_vbus: regulator@4 { 99 reg_usb_otg_vbus: regulator-usb-otg-vbus {
118 compatible = "regulator-fixed"; 100 compatible = "regulator-fixed";
119 reg = <4>; 101 regulator-name = "usb_otg_vbus";
120 regulator-name = "usb_otg_vbus"; 102 regulator-min-microvolt = <5000000>;
121 regulator-min-microvolt = <5000000>; 103 regulator-max-microvolt = <5000000>;
122 regulator-max-microvolt = <5000000>; 104 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
123 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>; 105 enable-active-high;
124 enable-active-high;
125 };
126 }; 106 };
127 107
128 sound { 108 sound {
@@ -226,6 +206,87 @@
226 pinctrl-names = "default"; 206 pinctrl-names = "default";
227 pinctrl-0 = <&pinctrl_i2c2>; 207 pinctrl-0 = <&pinctrl_i2c2>;
228 status = "okay"; 208 status = "okay";
209
210 ltc3676: pmic@3c {
211 compatible = "lltc,ltc3676";
212 reg = <0x3c>;
213 interrupt-parent = <&gpio1>;
214 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
215
216 regulators {
217 /* VDD_SOC (1+R1/R2 = 1.635) */
218 reg_vdd_soc: sw1 {
219 regulator-name = "vddsoc";
220 regulator-min-microvolt = <674400>;
221 regulator-max-microvolt = <1308000>;
222 lltc,fb-voltage-divider = <127000 200000>;
223 regulator-ramp-delay = <7000>;
224 regulator-boot-on;
225 regulator-always-on;
226 };
227
228 /* VDD_1P8 (1+R1/R2 = 2.505): GPS/VideoIn/ENET-PHY */
229 reg_1p8v: sw2 {
230 regulator-name = "vdd1p8";
231 regulator-min-microvolt = <1033310>;
232 regulator-max-microvolt = <2004000>;
233 lltc,fb-voltage-divider = <301000 200000>;
234 regulator-ramp-delay = <7000>;
235 regulator-boot-on;
236 regulator-always-on;
237 };
238
239 /* VDD_ARM (1+R1/R2 = 1.635) */
240 reg_vdd_arm: sw3 {
241 regulator-name = "vddarm";
242 regulator-min-microvolt = <674400>;
243 regulator-max-microvolt = <1308000>;
244 lltc,fb-voltage-divider = <127000 200000>;
245 regulator-ramp-delay = <7000>;
246 regulator-boot-on;
247 regulator-always-on;
248 };
249
250 /* VDD_DDR (1+R1/R2 = 2.105) */
251 reg_vdd_ddr: sw4 {
252 regulator-name = "vddddr";
253 regulator-min-microvolt = <868310>;
254 regulator-max-microvolt = <1684000>;
255 lltc,fb-voltage-divider = <221000 200000>;
256 regulator-ramp-delay = <7000>;
257 regulator-boot-on;
258 regulator-always-on;
259 };
260
261 /* VDD_2P5 (1+R1/R2 = 3.435): PCIe/ENET-PHY */
262 reg_2p5v: ldo2 {
263 regulator-name = "vdd2p5";
264 regulator-min-microvolt = <2490375>;
265 regulator-max-microvolt = <2490375>;
266 lltc,fb-voltage-divider = <487000 200000>;
267 regulator-boot-on;
268 regulator-always-on;
269 };
270
271 /* VDD_AUD_1P8: Audio codec */
272 reg_aud_1p8v: ldo3 {
273 regulator-name = "vdd1p8a";
274 regulator-min-microvolt = <1800000>;
275 regulator-max-microvolt = <1800000>;
276 regulator-boot-on;
277 };
278
279 /* VDD_HIGH (1+R1/R2 = 4.17) */
280 reg_3p0v: ldo4 {
281 regulator-name = "vdd3p0";
282 regulator-min-microvolt = <3023250>;
283 regulator-max-microvolt = <3023250>;
284 lltc,fb-voltage-divider = <634000 200000>;
285 regulator-boot-on;
286 regulator-always-on;
287 };
288 };
289 };
229}; 290};
230 291
231&i2c3 { 292&i2c3 {
@@ -456,6 +517,12 @@
456 >; 517 >;
457 }; 518 };
458 519
520 pinctrl_pmic: pmicgrp {
521 fsl,pins = <
522 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */
523 >;
524 };
525
459 pinctrl_pps: ppsgrp { 526 pinctrl_pps: ppsgrp {
460 fsl,pins = < 527 fsl,pins = <
461 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1 528 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1
diff --git a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
index 1753ab720b0b..968fda94d14b 100644
--- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
@@ -149,6 +149,13 @@
149 <&clks IMX6QDL_CLK_PLL3_USB_OTG>; 149 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
150}; 150};
151 151
152&ecspi2 {
153 cs-gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
154 pinctrl-names = "default";
155 pinctrl-0 = <&pinctrl_ecspi2>;
156 status = "okay";
157};
158
152&fec { 159&fec {
153 pinctrl-names = "default"; 160 pinctrl-names = "default";
154 pinctrl-0 = <&pinctrl_enet>; 161 pinctrl-0 = <&pinctrl_enet>;
@@ -499,6 +506,15 @@
499 >; 506 >;
500 }; 507 };
501 508
509 pinctrl_ecspi2: escpi2grp {
510 fsl,pins = <
511 MX6QDL_PAD_EIM_CS0__ECSPI2_SCLK 0x100b1
512 MX6QDL_PAD_EIM_CS1__ECSPI2_MOSI 0x100b1
513 MX6QDL_PAD_EIM_OE__ECSPI2_MISO 0x100b1
514 MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x100b1
515 >;
516 };
517
502 pinctrl_flexcan1: flexcan1grp { 518 pinctrl_flexcan1: flexcan1grp {
503 fsl,pins = < 519 fsl,pins = <
504 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b1 520 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b1
diff --git a/arch/arm/boot/dts/imx6qdl-gw551x.dtsi b/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
index 4b9fef834822..405b40310ddf 100644
--- a/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
@@ -78,34 +78,25 @@
78 reg = <0x10000000 0x20000000>; 78 reg = <0x10000000 0x20000000>;
79 }; 79 };
80 80
81 regulators { 81 reg_5p0v: regulator-5p0v {
82 compatible = "simple-bus"; 82 compatible = "regulator-fixed";
83 #address-cells = <1>; 83 regulator-name = "5P0V";
84 #size-cells = <0>; 84 regulator-min-microvolt = <5000000>;
85 85 regulator-max-microvolt = <5000000>;
86 reg_5p0v: regulator@0 { 86 };
87 compatible = "regulator-fixed";
88 reg = <0>;
89 regulator-name = "5P0V";
90 regulator-min-microvolt = <5000000>;
91 regulator-max-microvolt = <5000000>;
92 };
93 87
94 reg_usb_h1_vbus: regulator@1 { 88 reg_usb_h1_vbus: regulator-usb-h1-vbus {
95 compatible = "regulator-fixed"; 89 compatible = "regulator-fixed";
96 reg = <1>; 90 regulator-name = "usb_h1_vbus";
97 regulator-name = "usb_h1_vbus"; 91 regulator-min-microvolt = <5000000>;
98 regulator-min-microvolt = <5000000>; 92 regulator-max-microvolt = <5000000>;
99 regulator-max-microvolt = <5000000>; 93 };
100 };
101 94
102 reg_usb_otg_vbus: regulator@2 { 95 reg_usb_otg_vbus: regulator-usb-otg-vbus {
103 compatible = "regulator-fixed"; 96 compatible = "regulator-fixed";
104 reg = <2>; 97 regulator-name = "usb_otg_vbus";
105 regulator-name = "usb_otg_vbus"; 98 regulator-min-microvolt = <5000000>;
106 regulator-min-microvolt = <5000000>; 99 regulator-max-microvolt = <5000000>;
107 regulator-max-microvolt = <5000000>;
108 };
109 }; 100 };
110}; 101};
111 102
@@ -174,6 +165,89 @@
174 pinctrl-names = "default"; 165 pinctrl-names = "default";
175 pinctrl-0 = <&pinctrl_i2c2>; 166 pinctrl-0 = <&pinctrl_i2c2>;
176 status = "okay"; 167 status = "okay";
168
169 ltc3676: pmic@3c {
170 compatible = "lltc,ltc3676";
171 reg = <0x3c>;
172 pinctrl-names = "default";
173 pinctrl-0 = <&pinctrl_pmic>;
174 interrupt-parent = <&gpio1>;
175 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
176
177 regulators {
178 /* VDD_SOC (1+R1/R2 = 1.635) */
179 reg_vdd_soc: sw1 {
180 regulator-name = "vddsoc";
181 regulator-min-microvolt = <674400>;
182 regulator-max-microvolt = <1308000>;
183 lltc,fb-voltage-divider = <127000 200000>;
184 regulator-ramp-delay = <7000>;
185 regulator-boot-on;
186 regulator-always-on;
187 };
188
189 /* VDD_DDR (1+R1/R2 = 2.105) */
190 reg_vdd_ddr: sw2 {
191 regulator-name = "vddddr";
192 regulator-min-microvolt = <868310>;
193 regulator-max-microvolt = <1684000>;
194 lltc,fb-voltage-divider = <221000 200000>;
195 regulator-ramp-delay = <7000>;
196 regulator-boot-on;
197 regulator-always-on;
198 };
199
200 /* VDD_ARM (1+R1/R2 = 1.635) */
201 reg_vdd_arm: sw3 {
202 regulator-name = "vddarm";
203 regulator-min-microvolt = <674400>;
204 regulator-max-microvolt = <1308000>;
205 lltc,fb-voltage-divider = <127000 200000>;
206 regulator-ramp-delay = <7000>;
207 regulator-boot-on;
208 regulator-always-on;
209 };
210
211 /* VDD_3P3 (1+R1/R2 = 1.281) */
212 reg_3p3: sw4 {
213 regulator-name = "vdd3p3";
214 regulator-min-microvolt = <1880000>;
215 regulator-max-microvolt = <3647000>;
216 lltc,fb-voltage-divider = <200000 56200>;
217 regulator-ramp-delay = <7000>;
218 regulator-boot-on;
219 regulator-always-on;
220 };
221
222 /* VDD_1P8a (1+R1/R2 = 2.505): HDMI In core */
223 reg_1p8a: ldo2 {
224 regulator-name = "vdd1p8a";
225 regulator-min-microvolt = <1816125>;
226 regulator-max-microvolt = <1816125>;
227 lltc,fb-voltage-divider = <301000 200000>;
228 regulator-boot-on;
229 regulator-always-on;
230 };
231
232 /* VDD_1P8b: HDMI In analog */
233 reg_1p8b: ldo3 {
234 regulator-name = "vdd1p8b";
235 regulator-min-microvolt = <1800000>;
236 regulator-max-microvolt = <1800000>;
237 regulator-boot-on;
238 };
239
240 /* VDD_HIGH (1+R1/R2 = 4.17) */
241 reg_3p0: ldo4 {
242 regulator-name = "vdd3p0";
243 regulator-min-microvolt = <3023250>;
244 regulator-max-microvolt = <3023250>;
245 lltc,fb-voltage-divider = <634000 200000>;
246 regulator-boot-on;
247 regulator-always-on;
248 };
249 };
250 };
177}; 251};
178 252
179&i2c3 { 253&i2c3 {
@@ -308,6 +382,12 @@
308 >; 382 >;
309 }; 383 };
310 384
385 pinctrl_pmic: pmicgrp {
386 fsl,pins = <
387 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */
388 >;
389 };
390
311 pinctrl_pwm2: pwm2grp { 391 pinctrl_pwm2: pwm2grp {
312 fsl,pins = < 392 fsl,pins = <
313 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1 393 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1
diff --git a/arch/arm/boot/dts/imx6qdl-gw552x.dtsi b/arch/arm/boot/dts/imx6qdl-gw552x.dtsi
index ee83161f674b..67613dd7cc92 100644
--- a/arch/arm/boot/dts/imx6qdl-gw552x.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw552x.dtsi
@@ -55,37 +55,28 @@
55 reg = <0x10000000 0x20000000>; 55 reg = <0x10000000 0x20000000>;
56 }; 56 };
57 57
58 regulators { 58 reg_1p0v: regulator-1p0v {
59 compatible = "simple-bus"; 59 compatible = "regulator-fixed";
60 #address-cells = <1>; 60 regulator-name = "1P0V";
61 #size-cells = <0>; 61 regulator-min-microvolt = <1000000>;
62 62 regulator-max-microvolt = <1000000>;
63 reg_1p0v: regulator@0 { 63 regulator-always-on;
64 compatible = "regulator-fixed"; 64 };
65 reg = <0>;
66 regulator-name = "1P0V";
67 regulator-min-microvolt = <1000000>;
68 regulator-max-microvolt = <1000000>;
69 regulator-always-on;
70 };
71 65
72 reg_3p3v: regulator@2 { 66 reg_3p3v: regulator-3p3v {
73 compatible = "regulator-fixed"; 67 compatible = "regulator-fixed";
74 reg = <2>; 68 regulator-name = "3P3V";
75 regulator-name = "3P3V"; 69 regulator-min-microvolt = <3300000>;
76 regulator-min-microvolt = <3300000>; 70 regulator-max-microvolt = <3300000>;
77 regulator-max-microvolt = <3300000>; 71 regulator-always-on;
78 regulator-always-on; 72 };
79 };
80 73
81 reg_5p0v: regulator@3 { 74 reg_5p0v: regulator-5p0v {
82 compatible = "regulator-fixed"; 75 compatible = "regulator-fixed";
83 reg = <3>; 76 regulator-name = "5P0V";
84 regulator-name = "5P0V"; 77 regulator-min-microvolt = <5000000>;
85 regulator-min-microvolt = <5000000>; 78 regulator-max-microvolt = <5000000>;
86 regulator-max-microvolt = <5000000>; 79 regulator-always-on;
87 regulator-always-on;
88 };
89 }; 80 };
90}; 81};
91 82
@@ -148,6 +139,81 @@
148 pinctrl-names = "default"; 139 pinctrl-names = "default";
149 pinctrl-0 = <&pinctrl_i2c2>; 140 pinctrl-0 = <&pinctrl_i2c2>;
150 status = "okay"; 141 status = "okay";
142
143 ltc3676: pmic@3c {
144 compatible = "lltc,ltc3676";
145 reg = <0x3c>;
146 pinctrl-names = "default";
147 pinctrl-0 = <&pinctrl_pmic>;
148 interrupt-parent = <&gpio1>;
149 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
150
151 regulators {
152 /* VDD_SOC (1+R1/R2 = 1.635) */
153 reg_vdd_soc: sw1 {
154 regulator-name = "vddsoc";
155 regulator-min-microvolt = <674400>;
156 regulator-max-microvolt = <1308000>;
157 lltc,fb-voltage-divider = <127000 200000>;
158 regulator-ramp-delay = <7000>;
159 regulator-boot-on;
160 regulator-always-on;
161 };
162
163 /* VDD_1P8 (1+R1/R2 = 2.505): ENET-PHY */
164 reg_1p8v: sw2 {
165 regulator-name = "vdd1p8";
166 regulator-min-microvolt = <1033310>;
167 regulator-max-microvolt = <2004000>;
168 lltc,fb-voltage-divider = <301000 200000>;
169 regulator-ramp-delay = <7000>;
170 regulator-boot-on;
171 regulator-always-on;
172 };
173
174 /* VDD_ARM (1+R1/R2 = 1.635) */
175 reg_vdd_arm: sw3 {
176 regulator-name = "vddarm";
177 regulator-min-microvolt = <674400>;
178 regulator-max-microvolt = <1308000>;
179 lltc,fb-voltage-divider = <127000 200000>;
180 regulator-ramp-delay = <7000>;
181 regulator-boot-on;
182 regulator-always-on;
183 };
184
185 /* VDD_DDR (1+R1/R2 = 2.105) */
186 reg_vdd_ddr: sw4 {
187 regulator-name = "vddddr";
188 regulator-min-microvolt = <868310>;
189 regulator-max-microvolt = <1684000>;
190 lltc,fb-voltage-divider = <221000 200000>;
191 regulator-ramp-delay = <7000>;
192 regulator-boot-on;
193 regulator-always-on;
194 };
195
196 /* VDD_2P5 (1+R1/R2 = 3.435): PCIe/ENET-PHY */
197 reg_2p5v: ldo2 {
198 regulator-name = "vdd2p5";
199 regulator-min-microvolt = <2490375>;
200 regulator-max-microvolt = <2490375>;
201 lltc,fb-voltage-divider = <487000 200000>;
202 regulator-boot-on;
203 regulator-always-on;
204 };
205
206 /* VDD_HIGH (1+R1/R2 = 4.17) */
207 reg_3p0v: ldo4 {
208 regulator-name = "vdd3p0";
209 regulator-min-microvolt = <3023250>;
210 regulator-max-microvolt = <3023250>;
211 lltc,fb-voltage-divider = <634000 200000>;
212 regulator-boot-on;
213 regulator-always-on;
214 };
215 };
216 };
151}; 217};
152 218
153&i2c3 { 219&i2c3 {
@@ -260,6 +326,12 @@
260 >; 326 >;
261 }; 327 };
262 328
329 pinctrl_pmic: pmicgrp {
330 fsl,pins = <
331 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */
332 >;
333 };
334
263 pinctrl_pwm2: pwm2grp { 335 pinctrl_pwm2: pwm2grp {
264 fsl,pins = < 336 fsl,pins = <
265 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1 337 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1
diff --git a/arch/arm/boot/dts/imx6qdl-gw553x.dtsi b/arch/arm/boot/dts/imx6qdl-gw553x.dtsi
index 86cec0527f73..57374dddf98d 100644
--- a/arch/arm/boot/dts/imx6qdl-gw553x.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw553x.dtsi
@@ -92,14 +92,6 @@
92 status = "okay"; 92 status = "okay";
93 }; 93 };
94 94
95 reg_3p3v: regulator-3p3v {
96 compatible = "regulator-fixed";
97 regulator-name = "3P0V";
98 regulator-min-microvolt = <3300000>;
99 regulator-max-microvolt = <3300000>;
100 regulator-always-on;
101 };
102
103 reg_5p0v: regulator-5p0v { 95 reg_5p0v: regulator-5p0v {
104 compatible = "regulator-fixed"; 96 compatible = "regulator-fixed";
105 regulator-name = "5P0V"; 97 regulator-name = "5P0V";
@@ -179,6 +171,89 @@
179 pinctrl-names = "default"; 171 pinctrl-names = "default";
180 pinctrl-0 = <&pinctrl_i2c2>; 172 pinctrl-0 = <&pinctrl_i2c2>;
181 status = "okay"; 173 status = "okay";
174
175 ltc3676: pmic@3c {
176 compatible = "lltc,ltc3676";
177 reg = <0x3c>;
178 pinctrl-names = "default";
179 pinctrl-0 = <&pinctrl_pmic>;
180 interrupt-parent = <&gpio1>;
181 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
182
183 regulators {
184 /* VDD_SOC (1+R1/R2 = 1.635) */
185 reg_vdd_soc: sw1 {
186 regulator-name = "vddsoc";
187 regulator-min-microvolt = <674400>;
188 regulator-max-microvolt = <1308000>;
189 lltc,fb-voltage-divider = <127000 200000>;
190 regulator-ramp-delay = <7000>;
191 regulator-boot-on;
192 regulator-always-on;
193 };
194
195 /* VDD_DDR (1+R1/R2 = 2.105) */
196 reg_vdd_ddr: sw2 {
197 regulator-name = "vddddr";
198 regulator-min-microvolt = <868310>;
199 regulator-max-microvolt = <1684000>;
200 lltc,fb-voltage-divider = <221000 200000>;
201 regulator-ramp-delay = <7000>;
202 regulator-boot-on;
203 regulator-always-on;
204 };
205
206 /* VDD_ARM (1+R1/R2 = 1.635) */
207 reg_vdd_arm: sw3 {
208 regulator-name = "vddarm";
209 regulator-min-microvolt = <674400>;
210 regulator-max-microvolt = <1308000>;
211 lltc,fb-voltage-divider = <127000 200000>;
212 regulator-ramp-delay = <7000>;
213 regulator-boot-on;
214 regulator-always-on;
215 };
216
217 /* VDD_3P3 (1+R1/R2 = 1.281) */
218 reg_3p3v: sw4 {
219 regulator-name = "vdd3p3";
220 regulator-min-microvolt = <1880000>;
221 regulator-max-microvolt = <3647000>;
222 lltc,fb-voltage-divider = <200000 56200>;
223 regulator-ramp-delay = <7000>;
224 regulator-boot-on;
225 regulator-always-on;
226 };
227
228 /* VDD_1P8a (1+R1/R2 = 2.505): Analog Video Decoder */
229 reg_1p8a: ldo2 {
230 regulator-name = "vdd1p8a";
231 regulator-min-microvolt = <1816125>;
232 regulator-max-microvolt = <1816125>;
233 lltc,fb-voltage-divider = <301000 200000>;
234 regulator-boot-on;
235 regulator-always-on;
236 };
237
238 /* VDD_1P8b: microSD VDD_1P8 */
239 reg_1p8b: ldo3 {
240 regulator-name = "vdd1p8b";
241 regulator-min-microvolt = <1800000>;
242 regulator-max-microvolt = <1800000>;
243 regulator-boot-on;
244 };
245
246 /* VDD_HIGH (1+R1/R2 = 4.17) */
247 reg_3p0v: ldo4 {
248 regulator-name = "vdd3p0";
249 regulator-min-microvolt = <3023250>;
250 regulator-max-microvolt = <3023250>;
251 lltc,fb-voltage-divider = <634000 200000>;
252 regulator-boot-on;
253 regulator-always-on;
254 };
255 };
256 };
182}; 257};
183 258
184&i2c3 { 259&i2c3 {
@@ -255,7 +330,6 @@
255 pinctrl-1 = <&pinctrl_usdhc3_100mhz>; 330 pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
256 pinctrl-2 = <&pinctrl_usdhc3_200mhz>; 331 pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
257 cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; 332 cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
258 vmmc-supply = <&reg_3p3v>;
259 status = "okay"; 333 status = "okay";
260}; 334};
261 335
@@ -327,6 +401,12 @@
327 >; 401 >;
328 }; 402 };
329 403
404 pinctrl_pmic: pmicgrp {
405 fsl,pins = <
406 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */
407 >;
408 };
409
330 pinctrl_pps: ppsgrp { 410 pinctrl_pps: ppsgrp {
331 fsl,pins = < 411 fsl,pins = <
332 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1 412 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi
index d6c2358ffad4..988334c889eb 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi b/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
index d5c3aa88adbe..5fab5be414fe 100644
--- a/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
@@ -223,7 +223,7 @@
223 pinctrl-2 = <&pinctrl_usdhc3_200mhz>; 223 pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
224 vmcc-supply = <&reg_sd3_vmmc>; 224 vmcc-supply = <&reg_sd3_vmmc>;
225 cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; 225 cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
226 bus-witdh=<4>; 226 bus-witdh = <4>;
227 no-1-8-v; 227 no-1-8-v;
228 status = "okay"; 228 status = "okay";
229}; 229};
@@ -234,7 +234,7 @@
234 pinctrl-1 = <&pinctrl_usdhc4_100mhz>; 234 pinctrl-1 = <&pinctrl_usdhc4_100mhz>;
235 pinctrl-2 = <&pinctrl_usdhc4_200mhz>; 235 pinctrl-2 = <&pinctrl_usdhc4_200mhz>;
236 vmcc-supply = <&reg_sd4_vmmc>; 236 vmcc-supply = <&reg_sd4_vmmc>;
237 bus-witdh=<8>; 237 bus-witdh = <8>;
238 no-1-8-v; 238 no-1-8-v;
239 non-removable; 239 non-removable;
240 status = "okay"; 240 status = "okay";
diff --git a/arch/arm/boot/dts/imx6qdl-icore.dtsi b/arch/arm/boot/dts/imx6qdl-icore.dtsi
index 023839a02dd0..55bebfc9ad94 100644
--- a/arch/arm/boot/dts/imx6qdl-icore.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-icore.dtsi
@@ -11,17 +11,17 @@
11 * modify it under the terms of the GNU General Public License 11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation. 12 * version 2 as published by the Free Software Foundation.
13 * 13 *
14 * This file is distributed in the hope that it will be useful 14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details. 17 * GNU General Public License for more details.
18 * 18 *
19 * Or, alternatively 19 * Or, alternatively,
20 * 20 *
21 * b) Permission is hereby granted, free of charge, to any person 21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation 22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without 23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use 24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or 25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the 26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following 27 * Software is furnished to do so, subject to the following
@@ -30,11 +30,11 @@
30 * The above copyright notice and this permission notice shall be 30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software. 31 * included in all copies or substantial portions of the Software.
32 * 32 *
33 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6qdl-microsom-ar8035.dtsi b/arch/arm/boot/dts/imx6qdl-microsom-ar8035.dtsi
index 469ef58ce4bc..a9b207751a02 100644
--- a/arch/arm/boot/dts/imx6qdl-microsom-ar8035.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-microsom-ar8035.dtsi
@@ -13,17 +13,17 @@
13 * modify it under the terms of the GNU General Public License 13 * modify it under the terms of the GNU General Public License
14 * version 2 as published by the Free Software Foundation. 14 * version 2 as published by the Free Software Foundation.
15 * 15 *
16 * This file is distributed in the hope that it will be useful 16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details. 19 * GNU General Public License for more details.
20 * 20 *
21 * Or, alternatively 21 * Or, alternatively,
22 * 22 *
23 * b) Permission is hereby granted, free of charge, to any person 23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation 24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without 25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use 26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or 27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the 28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following 29 * Software is furnished to do so, subject to the following
@@ -32,11 +32,11 @@
32 * The above copyright notice and this permission notice shall be 32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software. 33 * included in all copies or substantial portions of the Software.
34 * 34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6qdl-microsom.dtsi b/arch/arm/boot/dts/imx6qdl-microsom.dtsi
index 3d62401dbd7f..6a410160c9ee 100644
--- a/arch/arm/boot/dts/imx6qdl-microsom.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-microsom.dtsi
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi b/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
index 63acd54f5278..6b81580623ff 100644
--- a/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
@@ -209,7 +209,6 @@
209}; 209};
210 210
211&ecspi1 { 211&ecspi1 {
212 fsl,spi-num-chipselects = <1>;
213 cs-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>; 212 cs-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>;
214 pinctrl-names = "default"; 213 pinctrl-names = "default";
215 pinctrl-0 = <&pinctrl_ecspi1>; 214 pinctrl-0 = <&pinctrl_ecspi1>;
@@ -515,8 +514,6 @@
515 status = "okay"; 514 status = "okay";
516 515
517 lvds-channel@0 { 516 lvds-channel@0 {
518 fsl,data-mapping = "spwg";
519 fsl,data-width = <18>;
520 status = "okay"; 517 status = "okay";
521 518
522 port@4 { 519 port@4 {
diff --git a/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi b/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
index 47ba97229a48..bad3c9f9eeac 100644
--- a/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
@@ -351,7 +351,6 @@
351}; 351};
352 352
353&ecspi1 { 353&ecspi1 {
354 fsl,spi-num-chipselects = <1>;
355 cs-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; 354 cs-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
356 pinctrl-names = "default"; 355 pinctrl-names = "default";
357 pinctrl-0 = <&pinctrl_ecspi1>; 356 pinctrl-0 = <&pinctrl_ecspi1>;
@@ -739,8 +738,6 @@
739 status = "okay"; 738 status = "okay";
740 739
741 lvds-channel@0 { 740 lvds-channel@0 {
742 fsl,data-mapping = "spwg";
743 fsl,data-width = <18>;
744 status = "okay"; 741 status = "okay";
745 742
746 port@4 { 743 port@4 {
@@ -753,8 +750,6 @@
753 }; 750 };
754 751
755 lvds-channel@1 { 752 lvds-channel@1 {
756 fsl,data-mapping = "spwg";
757 fsl,data-width = <18>;
758 status = "okay"; 753 status = "okay";
759 754
760 port@4 { 755 port@4 {
diff --git a/arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi b/arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi
index 31d4cc62dbc7..559da17297ef 100644
--- a/arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
@@ -282,7 +282,6 @@
282}; 282};
283 283
284&ecspi1 { 284&ecspi1 {
285 fsl,spi-num-chipselects = <1>;
286 cs-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; 285 cs-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
287 pinctrl-names = "default"; 286 pinctrl-names = "default";
288 pinctrl-0 = <&pinctrl_ecspi1>; 287 pinctrl-0 = <&pinctrl_ecspi1>;
@@ -640,8 +639,6 @@
640 status = "okay"; 639 status = "okay";
641 640
642 lvds-channel@0 { 641 lvds-channel@0 {
643 fsl,data-mapping = "spwg";
644 fsl,data-width = <18>;
645 status = "okay"; 642 status = "okay";
646 643
647 port@4 { 644 port@4 {
diff --git a/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi b/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
index 26d060484728..70772ebadd4d 100644
--- a/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
@@ -12,17 +12,17 @@
12 * modify it under the terms of the GNU General Public License 12 * modify it under the terms of the GNU General Public License
13 * version 2 as published by the Free Software Foundation. 13 * version 2 as published by the Free Software Foundation.
14 * 14 *
15 * This file is distributed in the hope that it will be useful 15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details. 18 * GNU General Public License for more details.
19 * 19 *
20 * Or, alternatively 20 * Or, alternatively,
21 * 21 *
22 * b) Permission is hereby granted, free of charge, to any person 22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation 23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without 24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use 25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or 26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the 27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following 28 * Software is furnished to do so, subject to the following
@@ -31,11 +31,11 @@
31 * The above copyright notice and this permission notice shall be 31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software. 32 * included in all copies or substantial portions of the Software.
33 * 33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE. 41 * OTHER DEALINGS IN THE SOFTWARE.
@@ -255,7 +255,6 @@
255}; 255};
256 256
257&ecspi1 { 257&ecspi1 {
258 fsl,spi-num-chipselects = <1>;
259 cs-gpios = <&gpio3 19 0>; 258 cs-gpios = <&gpio3 19 0>;
260 pinctrl-names = "default"; 259 pinctrl-names = "default";
261 pinctrl-0 = <&pinctrl_ecspi1>; 260 pinctrl-0 = <&pinctrl_ecspi1>;
@@ -579,8 +578,6 @@
579 status = "okay"; 578 status = "okay";
580 579
581 lvds-channel@0 { 580 lvds-channel@0 {
582 fsl,data-mapping = "spwg";
583 fsl,data-width = <18>;
584 status = "okay"; 581 status = "okay";
585 582
586 port@4 { 583 port@4 {
diff --git a/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi b/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
index e9801a26f3b4..6e5cb6a99550 100644
--- a/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
@@ -76,7 +76,6 @@
76 pinctrl-names = "default"; 76 pinctrl-names = "default";
77 pinctrl-0 = <&pinctrl_ecspi3>; 77 pinctrl-0 = <&pinctrl_ecspi3>;
78 status = "okay"; 78 status = "okay";
79 fsl,spi-num-chipselects = <1>;
80 cs-gpios = <&gpio4 24 0>; 79 cs-gpios = <&gpio4 24 0>;
81 80
82 flash@0 { 81 flash@0 {
diff --git a/arch/arm/boot/dts/imx6qdl-rex.dtsi b/arch/arm/boot/dts/imx6qdl-rex.dtsi
index 17704a5c1bcb..5cf90c24c707 100644
--- a/arch/arm/boot/dts/imx6qdl-rex.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-rex.dtsi
@@ -89,7 +89,6 @@
89}; 89};
90 90
91&ecspi2 { 91&ecspi2 {
92 fsl,spi-num-chipselects = <1>;
93 cs-gpios = <&gpio5 12 GPIO_ACTIVE_LOW>; 92 cs-gpios = <&gpio5 12 GPIO_ACTIVE_LOW>;
94 pinctrl-names = "default"; 93 pinctrl-names = "default";
95 pinctrl-0 = <&pinctrl_ecspi2>; 94 pinctrl-0 = <&pinctrl_ecspi2>;
@@ -97,7 +96,6 @@
97}; 96};
98 97
99&ecspi3 { 98&ecspi3 {
100 fsl,spi-num-chipselects = <1>;
101 cs-gpios = <&gpio4 26 GPIO_ACTIVE_LOW>; 99 cs-gpios = <&gpio4 26 GPIO_ACTIVE_LOW>;
102 pinctrl-names = "default"; 100 pinctrl-names = "default";
103 pinctrl-0 = <&pinctrl_ecspi3>; 101 pinctrl-0 = <&pinctrl_ecspi3>;
diff --git a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
index 52390ba83e81..a2a714d199ea 100644
--- a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
@@ -124,7 +124,6 @@
124}; 124};
125 125
126&ecspi1 { 126&ecspi1 {
127 fsl,spi-num-chipselects = <1>;
128 cs-gpios = <&gpio3 19 0>; 127 cs-gpios = <&gpio3 19 0>;
129 pinctrl-names = "default"; 128 pinctrl-names = "default";
130 pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>; 129 pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>;
diff --git a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
index 1f9076e271e4..84131794e97b 100644
--- a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
@@ -11,17 +11,17 @@
11 * modify it under the terms of the GNU General Public License 11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation. 12 * version 2 as published by the Free Software Foundation.
13 * 13 *
14 * This file is distributed in the hope that it will be useful 14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details. 17 * GNU General Public License for more details.
18 * 18 *
19 * Or, alternatively 19 * Or, alternatively,
20 * 20 *
21 * b) Permission is hereby granted, free of charge, to any person 21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation 22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without 23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use 24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or 25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the 26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following 27 * Software is furnished to do so, subject to the following
@@ -30,11 +30,11 @@
30 * The above copyright notice and this permission notice shall be 30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software. 31 * included in all copies or substantial portions of the Software.
32 * 32 *
33 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
@@ -241,7 +241,6 @@
241}; 241};
242 242
243&ecspi1 { 243&ecspi1 {
244 fsl,spi-num-chipselects = <1>;
245 cs-gpios = <&gpio3 19 0>; 244 cs-gpios = <&gpio3 19 0>;
246 pinctrl-names = "default"; 245 pinctrl-names = "default";
247 pinctrl-0 = <&pinctrl_ecspi1>; 246 pinctrl-0 = <&pinctrl_ecspi1>;
@@ -525,8 +524,6 @@
525 status = "okay"; 524 status = "okay";
526 525
527 lvds-channel@0 { 526 lvds-channel@0 {
528 fsl,data-mapping = "spwg";
529 fsl,data-width = <18>;
530 status = "okay"; 527 status = "okay";
531 528
532 port@4 { 529 port@4 {
diff --git a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
index 55ef53571fdd..63bf95ed8c88 100644
--- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
@@ -160,7 +160,6 @@
160}; 160};
161 161
162&ecspi1 { 162&ecspi1 {
163 fsl,spi-num-chipselects = <1>;
164 cs-gpios = <&gpio4 9 0>; 163 cs-gpios = <&gpio4 9 0>;
165 pinctrl-names = "default"; 164 pinctrl-names = "default";
166 pinctrl-0 = <&pinctrl_ecspi1>; 165 pinctrl-0 = <&pinctrl_ecspi1>;
diff --git a/arch/arm/boot/dts/imx6qdl-savageboard.dtsi b/arch/arm/boot/dts/imx6qdl-savageboard.dtsi
new file mode 100644
index 000000000000..a616e3c400d3
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qdl-savageboard.dtsi
@@ -0,0 +1,255 @@
1/*
2 * Copyright (C) 2017 Milo Kim <woogyom.kim@gmail.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43#include <dt-bindings/gpio/gpio.h>
44#include <dt-bindings/input/input.h>
45
46/ {
47 chosen {
48 stdout-path = &uart1;
49 };
50
51 memory@10000000 {
52 device_type = "memory";
53 reg = <0x10000000 0x40000000>;
54 };
55
56 gpio-keys {
57 compatible = "gpio-keys";
58 pinctrl-names = "default";
59 pinctrl-0 = <&pinctrl_gpio_keys>;
60
61 power {
62 gpios = <&gpio3 7 GPIO_ACTIVE_LOW>;
63 label = "Power Button";
64 linux,code = <KEY_POWER>;
65 wakeup-source;
66 };
67 };
68
69 panel {
70 compatible = "avic,tm097tdh02", "hannstar,hsd100pxn1";
71 backlight = <&panel_bl>;
72 power-supply = <&reg_3p3v>;
73
74 port {
75 panel_in: endpoint {
76 remote-endpoint = <&lvds0_out>;
77 };
78 };
79 };
80
81 panel_bl: backlight {
82 compatible = "pwm-backlight";
83 brightness-levels = <0 4 8 16 32 64 128 255>;
84 default-brightness-level = <4>;
85 power-supply = <&reg_3p3v>;
86 pwms = <&pwm1 0 10000>;
87 };
88
89 reg_3p3v: regulator-3p3v {
90 compatible = "regulator-fixed";
91 regulator-name = "3P3V";
92 regulator-min-microvolt = <3300000>;
93 regulator-max-microvolt = <3300000>;
94 regulator-always-on;
95 };
96};
97
98&clks {
99 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
100 <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
101 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
102 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
103};
104
105&fec {
106 phy-mode = "rgmii";
107 phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
108 pinctrl-names = "default";
109 pinctrl-0 = <&pinctrl_enet>;
110 status = "okay";
111};
112
113&hdmi {
114 ddc-i2c-bus = <&i2c2>;
115 status = "okay";
116};
117
118&i2c2 {
119 clock-frequency = <100000>;
120 pinctrl-names = "default";
121 pinctrl-0 = <&pinctrl_i2c2>;
122 status = "okay";
123};
124
125&ldb {
126 status = "okay";
127
128 lvds-channel@0 {
129 reg = <0>;
130 status = "okay";
131
132 port@4 {
133 reg = <4>;
134
135 lvds0_out: endpoint {
136 remote-endpoint = <&panel_in>;
137 };
138 };
139 };
140};
141
142&pwm1 {
143 pinctrl-names = "default";
144 pinctrl-0 = <&pinctrl_pwm1>;
145 status = "okay";
146};
147
148&uart1 {
149 pinctrl-names = "default";
150 pinctrl-0 = <&pinctrl_uart1>;
151 status = "okay";
152};
153
154&usbh1 {
155 status = "okay";
156};
157
158/* SD card */
159&usdhc3 {
160 bus-width = <4>;
161 cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
162 no-1-8-v;
163 pinctrl-names = "default";
164 pinctrl-0 = <&pinctrl_sd>;
165 status = "okay";
166};
167
168/* eMMC */
169&usdhc4 {
170 bus-width = <8>;
171 keep-power-in-suspend;
172 no-1-8-v;
173 non-removable;
174 pinctrl-names = "default";
175 pinctrl-0 = <&pinctrl_emmc>;
176 status = "okay";
177};
178
179&iomuxc {
180 pinctrl_emmc: emmcgrp {
181 fsl,pins = <
182 MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059
183 MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059
184 MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059
185 MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059
186 MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059
187 MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059
188 MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x17059
189 MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x17059
190 MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x17059
191 MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x17059
192 >;
193 };
194
195 pinctrl_enet: enetgrp {
196 fsl,pins = <
197 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
198 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
199 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
200 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
201 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
202 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
203 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
204 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
205 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
206 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
207 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030
208 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030
209 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
210 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
211 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
212 /* PHY reset */
213 MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x1b0b0
214 >;
215 };
216
217 pinctrl_gpio_keys: gpiokeysgrp {
218 fsl,pins = <
219 MX6QDL_PAD_EIM_DA7__GPIO3_IO07 0x1b0b1
220 >;
221 };
222
223 pinctrl_i2c2: i2c2grp {
224 fsl,pins = <
225 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
226 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
227 >;
228 };
229
230 pinctrl_pwm1: pwm1grp {
231 fsl,pins = <
232 MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x1b0b1
233 >;
234 };
235
236 pinctrl_sd: sdgrp {
237 fsl,pins = <
238 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
239 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
240 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
241 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
242 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
243 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
244 /* CD pin */
245 MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b1
246 >;
247 };
248
249 pinctrl_uart1: uart1grp {
250 fsl,pins = <
251 MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1
252 MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1
253 >;
254 };
255};
diff --git a/arch/arm/boot/dts/imx6qdl-ts4900.dtsi b/arch/arm/boot/dts/imx6qdl-ts4900.dtsi
index 5c26b26e851a..267c956d8910 100644
--- a/arch/arm/boot/dts/imx6qdl-ts4900.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-ts4900.dtsi
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
@@ -95,7 +95,6 @@
95}; 95};
96 96
97&ecspi1 { 97&ecspi1 {
98 fsl,spi-num-chipselects = <1>;
99 cs-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; 98 cs-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
100 pinctrl-names = "default"; 99 pinctrl-names = "default";
101 pinctrl-0 = <&pinctrl_ecspi1>; 100 pinctrl-0 = <&pinctrl_ecspi1>;
@@ -109,7 +108,6 @@
109}; 108};
110 109
111&ecspi2 { 110&ecspi2 {
112 fsl,spi-num-chipselects = <1>;
113 cs-gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>; 111 cs-gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>;
114 pinctrl-names = "default"; 112 pinctrl-names = "default";
115 pinctrl-0 = <&pinctrl_ecspi2>; 113 pinctrl-0 = <&pinctrl_ecspi2>;
diff --git a/arch/arm/boot/dts/imx6qdl-tx6.dtsi b/arch/arm/boot/dts/imx6qdl-tx6.dtsi
index 2bf2e623ac1e..1691714f13a2 100644
--- a/arch/arm/boot/dts/imx6qdl-tx6.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-tx6.dtsi
@@ -221,7 +221,6 @@
221&ecspi1 { 221&ecspi1 {
222 pinctrl-names = "default"; 222 pinctrl-names = "default";
223 pinctrl-0 = <&pinctrl_ecspi1>; 223 pinctrl-0 = <&pinctrl_ecspi1>;
224 fsl,spi-num-chipselects = <2>;
225 cs-gpios = < 224 cs-gpios = <
226 &gpio2 30 GPIO_ACTIVE_HIGH 225 &gpio2 30 GPIO_ACTIVE_HIGH
227 &gpio3 19 GPIO_ACTIVE_HIGH 226 &gpio3 19 GPIO_ACTIVE_HIGH
diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
index 6d37d9af5f1d..6d7bf6496117 100644
--- a/arch/arm/boot/dts/imx6qdl.dtsi
+++ b/arch/arm/boot/dts/imx6qdl.dtsi
@@ -634,8 +634,8 @@
634 regulator-1p1 { 634 regulator-1p1 {
635 compatible = "fsl,anatop-regulator"; 635 compatible = "fsl,anatop-regulator";
636 regulator-name = "vdd1p1"; 636 regulator-name = "vdd1p1";
637 regulator-min-microvolt = <800000>; 637 regulator-min-microvolt = <1000000>;
638 regulator-max-microvolt = <1375000>; 638 regulator-max-microvolt = <1200000>;
639 regulator-always-on; 639 regulator-always-on;
640 anatop-reg-offset = <0x110>; 640 anatop-reg-offset = <0x110>;
641 anatop-vol-bit-shift = <8>; 641 anatop-vol-bit-shift = <8>;
@@ -662,15 +662,15 @@
662 regulator-2p5 { 662 regulator-2p5 {
663 compatible = "fsl,anatop-regulator"; 663 compatible = "fsl,anatop-regulator";
664 regulator-name = "vdd2p5"; 664 regulator-name = "vdd2p5";
665 regulator-min-microvolt = <2000000>; 665 regulator-min-microvolt = <2250000>;
666 regulator-max-microvolt = <2750000>; 666 regulator-max-microvolt = <2750000>;
667 regulator-always-on; 667 regulator-always-on;
668 anatop-reg-offset = <0x130>; 668 anatop-reg-offset = <0x130>;
669 anatop-vol-bit-shift = <8>; 669 anatop-vol-bit-shift = <8>;
670 anatop-vol-bit-width = <5>; 670 anatop-vol-bit-width = <5>;
671 anatop-min-bit-val = <0>; 671 anatop-min-bit-val = <0>;
672 anatop-min-voltage = <2000000>; 672 anatop-min-voltage = <2100000>;
673 anatop-max-voltage = <2750000>; 673 anatop-max-voltage = <2875000>;
674 }; 674 };
675 675
676 reg_arm: regulator-vddcore { 676 reg_arm: regulator-vddcore {
@@ -816,7 +816,7 @@
816 reg = <0x020e0000 0x4000>; 816 reg = <0x020e0000 0x4000>;
817 }; 817 };
818 818
819 ldb: ldb@020e0008 { 819 ldb: ldb {
820 #address-cells = <1>; 820 #address-cells = <1>;
821 #size-cells = <0>; 821 #size-cells = <0>;
822 compatible = "fsl,imx6q-ldb", "fsl,imx53-ldb"; 822 compatible = "fsl,imx6q-ldb", "fsl,imx53-ldb";
diff --git a/arch/arm/boot/dts/imx6qp.dtsi b/arch/arm/boot/dts/imx6qp.dtsi
index 0d4977ab7d29..24d071f5d9cd 100644
--- a/arch/arm/boot/dts/imx6qp.dtsi
+++ b/arch/arm/boot/dts/imx6qp.dtsi
@@ -95,6 +95,12 @@
95 }; 95 };
96}; 96};
97 97
98&fec {
99 /delete-property/interrupts-extended;
100 interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>,
101 <0 119 IRQ_TYPE_LEVEL_HIGH>;
102};
103
98&ldb { 104&ldb {
99 clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, <&clks IMX6QDL_CLK_LDB_DI1_SEL>, 105 clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
100 <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>, 106 <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>,
diff --git a/arch/arm/boot/dts/imx6sl-evk.dts b/arch/arm/boot/dts/imx6sl-evk.dts
index be118820e9f7..0a90eea17018 100644
--- a/arch/arm/boot/dts/imx6sl-evk.dts
+++ b/arch/arm/boot/dts/imx6sl-evk.dts
@@ -117,7 +117,6 @@
117}; 117};
118 118
119&ecspi1 { 119&ecspi1 {
120 fsl,spi-num-chipselects = <1>;
121 cs-gpios = <&gpio4 11 0>; 120 cs-gpios = <&gpio4 11 0>;
122 pinctrl-names = "default"; 121 pinctrl-names = "default";
123 pinctrl-0 = <&pinctrl_ecspi1>; 122 pinctrl-0 = <&pinctrl_ecspi1>;
diff --git a/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts b/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts
index 9b817f3501a6..802da45aa551 100644
--- a/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts
+++ b/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
@@ -142,7 +142,6 @@
142}; 142};
143 143
144&ecspi1 { 144&ecspi1 {
145 fsl,spi-num-chipselects = <1>;
146 cs-gpios = <&gpio2 16 GPIO_ACTIVE_LOW>; 145 cs-gpios = <&gpio2 16 GPIO_ACTIVE_LOW>;
147 pinctrl-names = "default"; 146 pinctrl-names = "default";
148 pinctrl-0 = <&pinctrl_ecspi1>; 147 pinctrl-0 = <&pinctrl_ecspi1>;
diff --git a/arch/arm/boot/dts/imx6sx-sdb-sai.dts b/arch/arm/boot/dts/imx6sx-sdb-sai.dts
index 0155450d680e..2ac865b7c364 100644
--- a/arch/arm/boot/dts/imx6sx-sdb-sai.dts
+++ b/arch/arm/boot/dts/imx6sx-sdb-sai.dts
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi b/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi
index 2b65d26f4396..49f466fe0b1d 100644
--- a/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi
+++ b/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi
@@ -75,6 +75,50 @@
75 regulator-max-microvolt = <3300000>; 75 regulator-max-microvolt = <3300000>;
76 regulator-boot-on; 76 regulator-boot-on;
77 }; 77 };
78
79 reg_usb_otg1_vbus: regulator-usb-otg1-vbus {
80 compatible = "regulator-fixed";
81 pinctrl-names = "default";
82 pinctrl-0 = <&pinctrl_otg1_reg>;
83 regulator-name = "usb_otg1_vbus";
84 regulator-min-microvolt = <5000000>;
85 regulator-max-microvolt = <5000000>;
86 gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
87 enable-active-high;
88 };
89
90 reg_usb_otg2_vbus: regulator-usb-otg2-vbus {
91 compatible = "regulator-fixed";
92 pinctrl-names = "default";
93 pinctrl-0 = <&pinctrl_otg2_reg>;
94 regulator-name = "usb_otg2_vbus";
95 regulator-min-microvolt = <5000000>;
96 regulator-max-microvolt = <5000000>;
97 gpio = <&gpio4 12 GPIO_ACTIVE_HIGH>;
98 enable-active-high;
99 };
100
101 reg_wlan: regulator-wlan {
102 compatible = "regulator-fixed";
103 regulator-name = "wlan-en-regulator";
104 regulator-min-microvolt = <1800000>;
105 regulator-max-microvolt = <1800000>;
106 gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>;
107 startup-delay-us = <70000>;
108 enable-active-high;
109 };
110
111 reg_bt: regulator-bt {
112 compatible = "regulator-fixed";
113 pinctrl-names = "default";
114 pinctrl-0 = <&pinctrl_bt_reg>;
115 enable-active-high;
116 gpio = <&gpio2 17 GPIO_ACTIVE_HIGH>;
117 regulator-name = "bt_reg";
118 regulator-min-microvolt = <1800000>;
119 regulator-max-microvolt = <1800000>;
120 regulator-always-on;
121 };
78}; 122};
79 123
80&cpu0 { 124&cpu0 {
@@ -86,6 +130,7 @@
86 pinctrl-names = "default"; 130 pinctrl-names = "default";
87 pinctrl-0 = <&pinctrl_enet1>; 131 pinctrl-0 = <&pinctrl_enet1>;
88 phy-mode = "rmii"; 132 phy-mode = "rmii";
133 phy-reset-duration = <10>;
89 phy-reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>; 134 phy-reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
90}; 135};
91 136
@@ -186,6 +231,11 @@
186}; 231};
187 232
188&iomuxc { 233&iomuxc {
234 pinctrl_bt_reg: btreggrp {
235 fsl,pins =
236 <MX6SX_PAD_KEY_ROW2__GPIO2_IO_17 0x15059>;
237 };
238
189 pinctrl_enet1: enet1grp { 239 pinctrl_enet1: enet1grp {
190 fsl,pins = 240 fsl,pins =
191 <MX6SX_PAD_ENET1_CRS__GPIO2_IO_1 0xa0b1>, 241 <MX6SX_PAD_ENET1_CRS__GPIO2_IO_1 0xa0b1>,
@@ -223,6 +273,14 @@
223 <MX6SX_PAD_GPIO1_IO07__UART2_RX 0x1b0b1>; 273 <MX6SX_PAD_GPIO1_IO07__UART2_RX 0x1b0b1>;
224 }; 274 };
225 275
276 pinctrl_uart3: uart3grp {
277 fsl,pins =
278 <MX6SX_PAD_SD3_DATA4__UART3_RX 0x13059>,
279 <MX6SX_PAD_SD3_DATA5__UART3_TX 0x13059>,
280 <MX6SX_PAD_SD3_DATA6__UART3_RTS_B 0x13059>,
281 <MX6SX_PAD_SD3_DATA7__UART3_CTS_B 0x13059>;
282 };
283
226 pinctrl_uart5: uart5grp { 284 pinctrl_uart5: uart5grp {
227 fsl,pins = 285 fsl,pins =
228 <MX6SX_PAD_SD4_DATA4__UART5_RX 0x1b0b1>, 286 <MX6SX_PAD_SD4_DATA4__UART5_RX 0x1b0b1>,
@@ -241,6 +299,28 @@
241 <MX6SX_PAD_CSI_DATA07__UART6_CTS_B 0x1b0b1>; 299 <MX6SX_PAD_CSI_DATA07__UART6_CTS_B 0x1b0b1>;
242 }; 300 };
243 301
302 pinctrl_otg1_reg: otg1grp {
303 fsl,pins =
304 <MX6SX_PAD_GPIO1_IO09__GPIO1_IO_9 0x10b0>;
305 };
306
307
308 pinctrl_otg2_reg: otg2grp {
309 fsl,pins =
310 <MX6SX_PAD_NAND_RE_B__GPIO4_IO_12 0x10b0>;
311 };
312
313 pinctrl_usb_otg1: usbotg1grp {
314 fsl,pins =
315 <MX6SX_PAD_GPIO1_IO10__ANATOP_OTG1_ID 0x17059>,
316 <MX6SX_PAD_GPIO1_IO08__USB_OTG1_OC 0x10b0>;
317 };
318
319 pinctrl_usb_otg2: usbot2ggrp {
320 fsl,pins =
321 <MX6SX_PAD_QSPI1A_DATA0__USB_OTG2_OC 0x10b0>;
322 };
323
244 pinctrl_usdhc2: usdhc2grp { 324 pinctrl_usdhc2: usdhc2grp {
245 fsl,pins = 325 fsl,pins =
246 <MX6SX_PAD_SD2_CMD__USDHC2_CMD 0x17059>, 326 <MX6SX_PAD_SD2_CMD__USDHC2_CMD 0x17059>,
@@ -251,6 +331,19 @@
251 <MX6SX_PAD_SD2_DATA3__USDHC2_DATA3 0x17059>, 331 <MX6SX_PAD_SD2_DATA3__USDHC2_DATA3 0x17059>,
252 <MX6SX_PAD_SD1_DATA0__GPIO6_IO_2 0x17059>; /* CD */ 332 <MX6SX_PAD_SD1_DATA0__GPIO6_IO_2 0x17059>; /* CD */
253 }; 333 };
334
335 pinctrl_usdhc3: usdhc3grp {
336 fsl,pins =
337 <MX6SX_PAD_KEY_COL2__GPIO2_IO_12 0x15059>,
338 <MX6SX_PAD_KEY_ROW1__GPIO2_IO_16 0x13059>,
339 <MX6SX_PAD_SD3_DATA0__USDHC3_DATA0 0x17069>,
340 <MX6SX_PAD_SD3_DATA1__USDHC3_DATA1 0x17069>,
341 <MX6SX_PAD_SD3_DATA2__USDHC3_DATA2 0x17069>,
342 <MX6SX_PAD_SD3_DATA3__USDHC3_DATA3 0x17069>,
343 <MX6SX_PAD_SD3_CMD__USDHC3_CMD 0x17069>,
344 <MX6SX_PAD_SD3_CLK__USDHC3_CLK 0x10069>,
345 <MX6SX_PAD_CSI_MCLK__OSC32K_32K_OUT 0x10059>;
346 };
254}; 347};
255 348
256&uart1 { 349&uart1 {
@@ -266,6 +359,13 @@
266 status = "disabled"; 359 status = "disabled";
267}; 360};
268 361
362&uart3 { /* Bluetooth */
363 pinctrl-names = "default";
364 pinctrl-0 = <&pinctrl_uart3>;
365 uart-has-rtscts;
366 status = "okay";
367};
368
269/* Arduino serial */ 369/* Arduino serial */
270&uart5 { 370&uart5 {
271 pinctrl-names = "default"; 371 pinctrl-names = "default";
@@ -280,6 +380,21 @@
280 status = "disabled"; 380 status = "disabled";
281}; 381};
282 382
383&usbotg1 { /* J2 micro USB port */
384 vbus-supply = <&reg_usb_otg1_vbus>;
385 pinctrl-names = "default";
386 pinctrl-0 = <&pinctrl_usb_otg1>;
387 status = "okay";
388};
389
390&usbotg2 { /* J3 host USB port */
391 vbus-supply = <&reg_usb_otg2_vbus>;
392 pinctrl-names = "default";
393 pinctrl-0 = <&pinctrl_usb_otg2>;
394 dr_mode = "host";
395 status = "okay";
396};
397
283&usdhc2 { 398&usdhc2 {
284 pinctrl-names = "default"; 399 pinctrl-names = "default";
285 pinctrl-0 = <&pinctrl_usdhc2>; 400 pinctrl-0 = <&pinctrl_usdhc2>;
@@ -291,3 +406,25 @@
291 wakeup-source; 406 wakeup-source;
292 status = "okay"; 407 status = "okay";
293}; 408};
409
410&usdhc3 { /* Wi-Fi */
411 pinctrl-names = "default";
412 pinctrl-0 = <&pinctrl_usdhc3>;
413 non-removable;
414 vmmc-supply = <&reg_wlan>;
415 cap-power-off-card;
416 wakeup-source;
417 keep-power-in-suspend;
418 #address-cells = <1>;
419 #size-cells = <0>;
420 status = "okay";
421
422 wlcore: wlcore@2 {
423 compatible = "ti,wl1831";
424 reg = <2>;
425 interrupt-parent = <&gpio2>;
426 interrupts = <16 IRQ_TYPE_EDGE_RISING>;
427 ref-clock-frequency = <38400000>;
428 tcxo-clock-frequency = <26000000>;
429 };
430};
diff --git a/arch/arm/boot/dts/imx6ul-geam-kit.dts b/arch/arm/boot/dts/imx6ul-geam-kit.dts
index 4c4af76143e3..142e60cab65f 100644
--- a/arch/arm/boot/dts/imx6ul-geam-kit.dts
+++ b/arch/arm/boot/dts/imx6ul-geam-kit.dts
@@ -11,17 +11,17 @@
11 * modify it under the terms of the GNU General Public License 11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation. 12 * version 2 as published by the Free Software Foundation.
13 * 13 *
14 * This file is distributed in the hope that it will be useful 14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details. 17 * GNU General Public License for more details.
18 * 18 *
19 * Or, alternatively 19 * Or, alternatively,
20 * 20 *
21 * b) Permission is hereby granted, free of charge, to any person 21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation 22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without 23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use 24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or 25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the 26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following 27 * Software is furnished to do so, subject to the following
@@ -30,11 +30,11 @@
30 * The above copyright notice and this permission notice shall be 30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software. 31 * included in all copies or substantial portions of the Software.
32 * 32 *
33 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6ul-geam.dtsi b/arch/arm/boot/dts/imx6ul-geam.dtsi
index 64eb9ed59b9c..940aef67313b 100644
--- a/arch/arm/boot/dts/imx6ul-geam.dtsi
+++ b/arch/arm/boot/dts/imx6ul-geam.dtsi
@@ -11,17 +11,17 @@
11 * modify it under the terms of the GNU General Public License 11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation. 12 * version 2 as published by the Free Software Foundation.
13 * 13 *
14 * This file is distributed in the hope that it will be useful 14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details. 17 * GNU General Public License for more details.
18 * 18 *
19 * Or, alternatively 19 * Or, alternatively,
20 * 20 *
21 * b) Permission is hereby granted, free of charge, to any person 21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation 22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without 23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use 24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or 25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the 26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following 27 * Software is furnished to do so, subject to the following
@@ -30,11 +30,11 @@
30 * The above copyright notice and this permission notice shall be 30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software. 31 * included in all copies or substantial portions of the Software.
32 * 32 *
33 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6ul-isiot-emmc.dts b/arch/arm/boot/dts/imx6ul-isiot-emmc.dts
new file mode 100644
index 000000000000..f5b422898e61
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ul-isiot-emmc.dts
@@ -0,0 +1,77 @@
1/*
2 * Copyright (C) 2016 Amarula Solutions B.V.
3 * Copyright (C) 2016 Engicam S.r.l.
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44
45#include "imx6ul-isiot.dtsi"
46
47/ {
48 model = "Engicam Is.IoT MX6UL eMMC Starter kit";
49 compatible = "engicam,imx6ul-isiot", "fsl,imx6ul";
50};
51
52&usdhc2 {
53 pinctrl-names = "default";
54 pinctrl-0 = <&pinctrl_usdhc2>;
55 cd-gpios = <&gpio4 5 GPIO_ACTIVE_LOW>;
56 bus-width = <8>;
57 no-1-8-v;
58 status = "okay";
59};
60
61&iomuxc {
62 pinctrl_usdhc2: usdhc2grp {
63 fsl,pins = <
64 MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x17070
65 MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x10070
66 MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17070
67 MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17070
68 MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17070
69 MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17070
70 MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x17070
71 MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x17070
72 MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x17070
73 MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x17070
74 MX6UL_PAD_NAND_ALE__USDHC2_RESET_B 0x17070
75 >;
76 };
77};
diff --git a/arch/arm/boot/dts/imx6ul-isiot-nand.dts b/arch/arm/boot/dts/imx6ul-isiot-nand.dts
new file mode 100644
index 000000000000..de15e1c75dd1
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ul-isiot-nand.dts
@@ -0,0 +1,79 @@
1/*
2 * Copyright (C) 2016 Amarula Solutions B.V.
3 * Copyright (C) 2016 Engicam S.r.l.
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44
45#include "imx6ul-isiot.dtsi"
46
47/ {
48 model = "Engicam Is.IoT MX6UL NAND Starter kit";
49 compatible = "engicam,imx6ul-isiot", "fsl,imx6ul";
50};
51
52&gpmi {
53 pinctrl-names = "default";
54 pinctrl-0 = <&pinctrl_gpmi_nand>;
55 nand-on-flash-bbt;
56 status = "okay";
57};
58
59&iomuxc {
60 pinctrl_gpmi_nand: gpmi-nand {
61 fsl,pins = <
62 MX6UL_PAD_NAND_CLE__RAWNAND_CLE 0xb0b1
63 MX6UL_PAD_NAND_ALE__RAWNAND_ALE 0xb0b1
64 MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B 0xb0b1
65 MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B 0xb000
66 MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B 0xb0b1
67 MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B 0xb0b1
68 MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B 0xb0b1
69 MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00 0xb0b1
70 MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01 0xb0b1
71 MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02 0xb0b1
72 MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03 0xb0b1
73 MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04 0xb0b1
74 MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05 0xb0b1
75 MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06 0xb0b1
76 MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07 0xb0b1
77 >;
78 };
79};
diff --git a/arch/arm/boot/dts/imx6ul-isiot.dtsi b/arch/arm/boot/dts/imx6ul-isiot.dtsi
new file mode 100644
index 000000000000..0b43699af3e3
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ul-isiot.dtsi
@@ -0,0 +1,114 @@
1/*
2 * Copyright (C) 2016 Amarula Solutions B.V.
3 * Copyright (C) 2016 Engicam S.r.l.
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43#include <dt-bindings/gpio/gpio.h>
44#include <dt-bindings/input/input.h>
45#include "imx6ul.dtsi"
46
47/ {
48 memory {
49 reg = <0x80000000 0x20000000>;
50 };
51
52 chosen {
53 stdout-path = &uart1;
54 };
55};
56
57&uart1 {
58 pinctrl-names = "default";
59 pinctrl-0 = <&pinctrl_uart1>;
60 status = "okay";
61};
62
63&usdhc1 {
64 pinctrl-names = "default", "state_100mhz", "state_200mhz";
65 pinctrl-0 = <&pinctrl_usdhc1>;
66 pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
67 pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
68 cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
69 bus-width = <4>;
70 no-1-8-v;
71 status = "okay";
72};
73
74&iomuxc {
75 pinctrl_uart1: uart1grp {
76 fsl,pins = <
77 MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
78 MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
79 >;
80 };
81
82 pinctrl_usdhc1: usdhc1grp {
83 fsl,pins = <
84 MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059
85 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10059
86 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059
87 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059
88 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059
89 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059
90 >;
91 };
92
93 pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
94 fsl,pins = <
95 MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170b9
96 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100b9
97 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9
98 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9
99 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9
100 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9
101 >;
102 };
103
104 pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
105 fsl,pins = <
106 MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170f9
107 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100f9
108 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9
109 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9
110 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9
111 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9
112 >;
113 };
114};
diff --git a/arch/arm/boot/dts/imx6ul-liteboard.dts b/arch/arm/boot/dts/imx6ul-liteboard.dts
index 6e04cb9202f4..ed1d891d6a89 100644
--- a/arch/arm/boot/dts/imx6ul-liteboard.dts
+++ b/arch/arm/boot/dts/imx6ul-liteboard.dts
@@ -12,17 +12,17 @@
12 * modify it under the terms of the GNU General Public License 12 * modify it under the terms of the GNU General Public License
13 * version 2 as published by the Free Software Foundation. 13 * version 2 as published by the Free Software Foundation.
14 * 14 *
15 * This file is distributed in the hope that it will be useful 15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details. 18 * GNU General Public License for more details.
19 * 19 *
20 * Or, alternatively 20 * Or, alternatively,
21 * 21 *
22 * b) Permission is hereby granted, free of charge, to any person 22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation 23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without 24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use 25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or 26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the 27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following 28 * Software is furnished to do so, subject to the following
@@ -31,11 +31,11 @@
31 * The above copyright notice and this permission notice shall be 31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software. 32 * included in all copies or substantial portions of the Software.
33 * 33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE. 41 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6ul-litesom.dtsi b/arch/arm/boot/dts/imx6ul-litesom.dtsi
index 461292d33417..039721d3dcb4 100644
--- a/arch/arm/boot/dts/imx6ul-litesom.dtsi
+++ b/arch/arm/boot/dts/imx6ul-litesom.dtsi
@@ -12,17 +12,17 @@
12 * modify it under the terms of the GNU General Public License 12 * modify it under the terms of the GNU General Public License
13 * version 2 as published by the Free Software Foundation. 13 * version 2 as published by the Free Software Foundation.
14 * 14 *
15 * This file is distributed in the hope that it will be useful 15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details. 18 * GNU General Public License for more details.
19 * 19 *
20 * Or, alternatively 20 * Or, alternatively,
21 * 21 *
22 * b) Permission is hereby granted, free of charge, to any person 22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation 23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without 24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use 25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or 26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the 27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following 28 * Software is furnished to do so, subject to the following
@@ -31,11 +31,11 @@
31 * The above copyright notice and this permission notice shall be 31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software. 32 * included in all copies or substantial portions of the Software.
33 * 33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE. 41 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6ul-opos6ul.dtsi b/arch/arm/boot/dts/imx6ul-opos6ul.dtsi
new file mode 100644
index 000000000000..51095df33a90
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ul-opos6ul.dtsi
@@ -0,0 +1,192 @@
1/*
2 * Copyright 2017 Armadeus Systems <support@armadeus.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of
12 * the License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public
20 * License along with this file; if not, write to the Free
21 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
22 * MA 02110-1301 USA
23 *
24 * Or, alternatively,
25 *
26 * b) Permission is hereby granted, free of charge, to any person
27 * obtaining a copy of this software and associated documentation
28 * files (the "Software"), to deal in the Software without
29 * restriction, including without limitation the rights to use,
30 * copy, modify, merge, publish, distribute, sublicense, and/or
31 * sell copies of the Software, and to permit persons to whom the
32 * Software is furnished to do so, subject to the following
33 * conditions:
34 *
35 * The above copyright notice and this permission notice shall be
36 * included in all copies or substantial portions of the Software.
37 *
38 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
45 * OTHER DEALINGS IN THE SOFTWARE.
46 */
47
48#include "imx6ul.dtsi"
49
50/ {
51 memory {
52 reg = <0x80000000 0>; /* will be filled by U-Boot */
53 };
54
55 reg_3v3: regulator-3v3 {
56 compatible = "regulator-fixed";
57 regulator-name = "3V3";
58 regulator-min-microvolt = <3300000>;
59 regulator-max-microvolt = <3300000>;
60 };
61
62 usdhc3_pwrseq: usdhc3-pwrseq {
63 compatible = "mmc-pwrseq-simple";
64 reset-gpios = <&gpio2 9 GPIO_ACTIVE_LOW>;
65 };
66};
67
68&fec1 {
69 pinctrl-names = "default";
70 pinctrl-0 = <&pinctrl_enet1>;
71 phy-mode = "rmii";
72 phy-reset-duration = <1>;
73 phy-reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
74 phy-handle = <&ethphy1>;
75 phy-supply = <&reg_3v3>;
76 status = "okay";
77
78 mdio: mdio {
79 #address-cells = <1>;
80 #size-cells = <0>;
81
82 ethphy1: ethernet-phy@1 {
83 compatible = "ethernet-phy-ieee802.3-c22";
84 reg = <1>;
85 interrupt-parent = <&gpio4>;
86 interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
87 status = "okay";
88 };
89 };
90};
91
92/* Bluetooth */
93&uart8 {
94 pinctrl-names = "default";
95 pinctrl-0 = <&pinctrl_uart8>;
96 uart-has-rtscts;
97 status = "okay";
98};
99
100/* eMMC */
101&usdhc1 {
102 pinctrl-names = "default";
103 pinctrl-0 = <&pinctrl_usdhc1>;
104 bus-width = <8>;
105 no-1-8-v;
106 non-removable;
107 status = "okay";
108};
109
110/* WiFi */
111&usdhc2 {
112 pinctrl-names = "default";
113 pinctrl-0 = <&pinctrl_usdhc2>;
114 bus-width = <4>;
115 no-1-8-v;
116 non-removable;
117 mmc-pwrseq = <&usdhc3_pwrseq>;
118 status = "okay";
119
120 #address-cells = <1>;
121 #size-cells = <0>;
122
123 brcmf: bcrmf@1 {
124 compatible = "brcm,bcm4329-fmac";
125 reg = <1>;
126 interrupt-parent = <&gpio2>;
127 interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
128 interrupt-names = "host-wake";
129 };
130};
131
132&iomuxc {
133 pinctrl_enet1: enet1grp {
134 fsl,pins = <
135 MX6UL_PAD_GPIO1_IO06__ENET1_MDIO 0x1b0b0
136 MX6UL_PAD_GPIO1_IO07__ENET1_MDC 0x1b0b0
137 MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x130b0
138 MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x130b0
139 MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x130b0
140 MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x130b0
141 MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
142 MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
143 MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0
144 /* INT# */
145 MX6UL_PAD_NAND_DQS__GPIO4_IO16 0x1b0b0
146 /* RST# */
147 MX6UL_PAD_NAND_DATA00__GPIO4_IO02 0x130b0
148 MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031
149 >;
150 };
151
152 pinctrl_uart8: uart8grp {
153 fsl,pins = <
154 MX6UL_PAD_ENET2_TX_EN__UART8_DCE_RX 0x1b0b0
155 MX6UL_PAD_ENET2_TX_DATA1__UART8_DCE_TX 0x1b0b0
156 MX6UL_PAD_ENET2_RX_ER__UART8_DCE_RTS 0x1b0b0
157 MX6UL_PAD_ENET2_TX_CLK__UART8_DCE_CTS 0x1b0b0
158 /* BT_REG_ON */
159 MX6UL_PAD_ENET2_RX_EN__GPIO2_IO10 0x130b0
160 >;
161 };
162
163 pinctrl_usdhc1: usdhc1grp {
164 fsl,pins = <
165 MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059
166 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10059
167 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059
168 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059
169 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059
170 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059
171 MX6UL_PAD_NAND_READY_B__USDHC1_DATA4 0x17059
172 MX6UL_PAD_NAND_CE0_B__USDHC1_DATA5 0x17059
173 MX6UL_PAD_NAND_CE1_B__USDHC1_DATA6 0x17059
174 MX6UL_PAD_NAND_CLE__USDHC1_DATA7 0x17059
175 >;
176 };
177
178 pinctrl_usdhc2: usdhc2grp {
179 fsl,pins = <
180 MX6UL_PAD_LCD_DATA18__USDHC2_CMD 0x1b0b0
181 MX6UL_PAD_LCD_DATA19__USDHC2_CLK 0x100b0
182 MX6UL_PAD_LCD_DATA20__USDHC2_DATA0 0x1b0b0
183 MX6UL_PAD_LCD_DATA21__USDHC2_DATA1 0x1b0b0
184 MX6UL_PAD_LCD_DATA22__USDHC2_DATA2 0x1b0b0
185 MX6UL_PAD_LCD_DATA23__USDHC2_DATA3 0x1b0b0
186 /* WL_REG_ON */
187 MX6UL_PAD_ENET2_RX_DATA1__GPIO2_IO09 0x130b0
188 /* WL_IRQ */
189 MX6UL_PAD_ENET2_RX_DATA0__GPIO2_IO08 0x1b0b0
190 >;
191 };
192};
diff --git a/arch/arm/boot/dts/imx6ul-opos6uldev.dts b/arch/arm/boot/dts/imx6ul-opos6uldev.dts
new file mode 100644
index 000000000000..0e59ee57fd55
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ul-opos6uldev.dts
@@ -0,0 +1,412 @@
1/*
2 * Copyright 2017 Armadeus Systems <support@armadeus.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of
12 * the License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public
20 * License along with this file; if not, write to the Free
21 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
22 * MA 02110-1301 USA
23 *
24 * Or, alternatively,
25 *
26 * b) Permission is hereby granted, free of charge, to any person
27 * obtaining a copy of this software and associated documentation
28 * files (the "Software"), to deal in the Software without
29 * restriction, including without limitation the rights to use,
30 * copy, modify, merge, publish, distribute, sublicense, and/or
31 * sell copies of the Software, and to permit persons to whom the
32 * Software is furnished to do so, subject to the following
33 * conditions:
34 *
35 * The above copyright notice and this permission notice shall be
36 * included in all copies or substantial portions of the Software.
37 *
38 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
45 * OTHER DEALINGS IN THE SOFTWARE.
46 */
47
48/dts-v1/;
49#include "imx6ul-opos6ul.dtsi"
50
51/ {
52 model = "Armadeus Systems OPOS6UL SoM on OPOS6ULDev board";
53 compatible = "armadeus,opos6uldev", "armadeus,opos6ul", "fsl,imx6ul";
54
55 chosen {
56 stdout-path = &uart1;
57 };
58
59 backlight {
60 compatible = "pwm-backlight";
61 pwms = <&pwm3 0 191000>;
62 brightness-levels = <0 4 8 16 32 64 128 255>;
63 default-brightness-level = <7>;
64 power-supply = <&reg_5v>;
65 status = "okay";
66 };
67
68 gpio-keys {
69 compatible = "gpio-keys";
70 pinctrl-names = "default";
71 pinctrl-0 = <&pinctrl_gpio_keys>;
72
73 user-button {
74 label = "User button";
75 gpios = <&gpio2 11 GPIO_ACTIVE_LOW>;
76 linux,code = <BTN_MISC>;
77 wakeup-source;
78 };
79 };
80
81 leds {
82 compatible = "gpio-leds";
83
84 user-led {
85 label = "User";
86 pinctrl-names = "default";
87 pinctrl-0 = <&pinctrl_led>;
88 gpios = <&gpio3 4 GPIO_ACTIVE_HIGH>;
89 linux,default-trigger = "heartbeat";
90 };
91 };
92
93 onewire {
94 compatible = "w1-gpio";
95 pinctrl-names = "default";
96 pinctrl-0 = <&pinctrl_w1>;
97 gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
98 };
99
100 reg_5v: regulator-5v {
101 compatible = "regulator-fixed";
102 regulator-name = "5V";
103 regulator-min-microvolt = <5000000>;
104 regulator-max-microvolt = <5000000>;
105 };
106
107 reg_usbotg1_vbus: regulator-usbotg1vbus {
108 compatible = "regulator-fixed";
109 regulator-name = "usbotg1vbus";
110 regulator-min-microvolt = <5000000>;
111 regulator-max-microvolt = <5000000>;
112 pinctrl-names = "default";
113 pinctrl-0 = <&pinctrl_usbotg1_vbus>;
114 gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
115 enable-active-high;
116 };
117
118 reg_usbotg2_vbus: regulator-usbotg2vbus {
119 compatible = "regulator-fixed";
120 regulator-name = "usbotg2vbus";
121 regulator-min-microvolt = <5000000>;
122 regulator-max-microvolt = <5000000>;
123 pinctrl-names = "default";
124 pinctrl-0 = <&pinctrl_usbotg2_vbus>;
125 gpio = <&gpio5 9 GPIO_ACTIVE_HIGH>;
126 enable-active-high;
127 };
128};
129
130&adc1 {
131 vref-supply = <&reg_3v3>;
132 status = "okay";
133};
134
135&can1 {
136 pinctrl-names = "default";
137 pinctrl-0 = <&pinctrl_flexcan1>;
138 xceiver-supply = <&reg_5v>;
139 status = "okay";
140};
141
142&can2 {
143 pinctrl-names = "default";
144 pinctrl-0 = <&pinctrl_flexcan2>;
145 xceiver-supply = <&reg_5v>;
146 status = "okay";
147};
148
149&ecspi4 {
150 pinctrl-names = "default";
151 pinctrl-0 = <&pinctrl_ecspi4>;
152 cs-gpios = <&gpio4 9 GPIO_ACTIVE_LOW>, <&gpio4 3 GPIO_ACTIVE_LOW>;
153 status = "okay";
154
155 spidev0: spi@0 {
156 compatible = "spidev";
157 reg = <0>;
158 spi-max-frequency = <5000000>;
159 };
160
161 spidev1: spi@1 {
162 compatible = "spidev";
163 reg = <1>;
164 spi-max-frequency = <5000000>;
165 };
166};
167
168&i2c1 {
169 pinctrl-names = "default";
170 pinctrl-0 = <&pinctrl_i2c1>;
171 clock_frequency = <400000>;
172 status = "okay";
173};
174
175&i2c2 {
176 pinctrl-names = "default";
177 pinctrl-0 = <&pinctrl_i2c2>;
178 clock_frequency = <400000>;
179 status = "okay";
180};
181
182&lcdif {
183 pinctrl-names = "default";
184 pinctrl-0 = <&pinctrl_lcdif>;
185 display = <&display0>;
186 lcd-supply = <&reg_3v3>;
187 status = "okay";
188
189 display0: display0 {
190 bits-per-pixel = <32>;
191 bus-width = <18>;
192
193 display-timings {
194 timing0: timing0 {
195 clock-frequency = <33000033>;
196 hactive = <800>;
197 vactive = <480>;
198 hback-porch = <96>;
199 hfront-porch = <96>;
200 vback-porch = <20>;
201 vfront-porch = <21>;
202 hsync-len = <64>;
203 vsync-len = <4>;
204 de-active = <1>;
205 pixelclk-active = <0>;
206 };
207 };
208 };
209};
210
211&pwm3 {
212 pinctrl-names = "default";
213 pinctrl-0 = <&pinctrl_pwm3>;
214 status = "okay";
215};
216
217&snvs_pwrkey {
218 status = "disabled";
219};
220
221&tsc {
222 pinctrl-names = "default";
223 pinctrl-0 = <&pinctrl_tsc>;
224 xnur-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
225 measure-delay-time = <0xffff>;
226 pre-charge-time = <0xffff>;
227 status = "okay";
228};
229
230&uart1 {
231 pinctrl-names = "default";
232 pinctrl-0 = <&pinctrl_uart1>;
233 status = "okay";
234};
235
236&uart2 {
237 pinctrl-names = "default";
238 pinctrl-0 = <&pinctrl_uart2>;
239 status = "okay";
240};
241
242&usbotg1 {
243 pinctrl-names = "default";
244 pinctrl-0 = <&pinctrl_usbotg1_id>;
245 vbus-supply = <&reg_usbotg1_vbus>;
246 dr_mode = "otg";
247 disable-over-current;
248 status = "okay";
249};
250
251&usbotg2 {
252 vbus-supply = <&reg_usbotg2_vbus>;
253 dr_mode = "host";
254 disable-over-current;
255 status = "okay";
256};
257
258&iomuxc {
259 pinctrl-names = "default";
260 pinctrl-0 = <&pinctrl_gpios>;
261
262 pinctrl_ecspi4: ecspi4grp {
263 fsl,pins = <
264 MX6UL_PAD_NAND_DATA04__ECSPI4_SCLK 0x1b0b0
265 MX6UL_PAD_NAND_DATA05__ECSPI4_MOSI 0x1b0b0
266 MX6UL_PAD_NAND_DATA06__ECSPI4_MISO 0x1b0b0
267 MX6UL_PAD_NAND_DATA01__GPIO4_IO03 0x1b0b0
268 MX6UL_PAD_NAND_DATA07__GPIO4_IO09 0x1b0b0
269 >;
270 };
271
272 pinctrl_flexcan1: flexcan1grp {
273 fsl,pins = <
274 MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x0b0b0
275 MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x0b0b0
276 >;
277 };
278
279 pinctrl_flexcan2: flexcan2grp {
280 fsl,pins = <
281 MX6UL_PAD_UART2_CTS_B__FLEXCAN2_TX 0x0b0b0
282 MX6UL_PAD_UART2_RTS_B__FLEXCAN2_RX 0x0b0b0
283 >;
284 };
285
286 pinctrl_gpios: gpiosgrp {
287 fsl,pins = <
288 MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x0b0b0
289 MX6UL_PAD_UART3_RX_DATA__GPIO1_IO25 0x0b0b0
290 MX6UL_PAD_UART3_TX_DATA__GPIO1_IO24 0x0b0b0
291 MX6UL_PAD_NAND_RE_B__GPIO4_IO00 0x0b0b0
292 MX6UL_PAD_GPIO1_IO08__GPIO1_IO08 0x0b0b0
293 MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x0b0b0
294 MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x0b0b0
295 MX6UL_PAD_NAND_WE_B__GPIO4_IO01 0x0b0b0
296 MX6UL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x0b0b0
297 MX6UL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x0b0b0
298 MX6UL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x0b0b0
299 MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x0b0b0
300 MX6UL_PAD_SNVS_TAMPER5__GPIO5_IO05 0x0b0b0
301 MX6UL_PAD_SNVS_TAMPER6__GPIO5_IO06 0x0b0b0
302 MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x0b0b0
303 MX6UL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x0b0b0
304 >;
305 };
306
307 pinctrl_gpio_keys: gpiokeysgrp {
308 fsl,pins = <
309 MX6UL_PAD_ENET2_TX_DATA0__GPIO2_IO11 0x0b0b0
310 >;
311 };
312
313 pinctrl_i2c1: i2c1grp {
314 fsl,pins = <
315 MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
316 MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
317 >;
318 };
319
320 pinctrl_i2c2: i2c2grp {
321 fsl,pins = <
322 MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0
323 MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x4001b8b0
324 >;
325 };
326
327 pinctrl_lcdif: lcdifgrp {
328 fsl,pins = <
329 MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x100b1
330 MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x100b1
331 MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x100b1
332 MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x100b1
333 MX6UL_PAD_LCD_DATA00__LCDIF_DATA00 0x100b1
334 MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x100b1
335 MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x100b1
336 MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x100b1
337 MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x100b1
338 MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x100b1
339 MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x100b1
340 MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x100b1
341 MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x100b1
342 MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x100b1
343 MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x100b1
344 MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x100b1
345 MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x100b1
346 MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x100b1
347 MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x100b1
348 MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x100b1
349 MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x100b1
350 MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x100b1
351 >;
352 };
353
354 pinctrl_led: ledgrp {
355 fsl,pins = <
356 MX6UL_PAD_LCD_RESET__GPIO3_IO04 0x0b0b0
357 >;
358 };
359
360 pinctrl_pwm3: pwm3grp {
361 fsl,pins = <
362 MX6UL_PAD_NAND_ALE__PWM3_OUT 0x1b0b0
363 >;
364 };
365
366 pinctrl_tsc: tscgrp {
367 fsl,pins = <
368 MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0xb0
369 MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0xb0
370 MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0xb0
371 MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0xb0
372 >;
373 };
374
375 pinctrl_uart1: uart1grp {
376 fsl,pins = <
377 MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
378 MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
379 >;
380 };
381
382 pinctrl_uart2: uart2grp {
383 fsl,pins = <
384 MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1
385 MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1
386 >;
387 };
388
389 pinctrl_usbotg1_id: usbotg1idgrp {
390 fsl,pins = <
391 MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID 0x1b0b0
392 >;
393 };
394
395 pinctrl_usbotg1_vbus: usbotg1vbusgrp {
396 fsl,pins = <
397 MX6UL_PAD_GPIO1_IO05__GPIO1_IO05 0x1b0b0
398 >;
399 };
400
401 pinctrl_usbotg2_vbus: usbotg2vbusgrp {
402 fsl,pins = <
403 MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x1b0b0
404 >;
405 };
406
407 pinctrl_w1: w1grp {
408 fsl,pins = <
409 MX6UL_PAD_SNVS_TAMPER1__GPIO5_IO01 0x0b0b0
410 >;
411 };
412};
diff --git a/arch/arm/boot/dts/imx6ul-pico-hobbit.dts b/arch/arm/boot/dts/imx6ul-pico-hobbit.dts
index 827d9e8fc74e..7d7254b12a75 100644
--- a/arch/arm/boot/dts/imx6ul-pico-hobbit.dts
+++ b/arch/arm/boot/dts/imx6ul-pico-hobbit.dts
@@ -14,17 +14,17 @@
14 * modify it under the terms of the GNU General Public License 14 * modify it under the terms of the GNU General Public License
15 * version 2 as published by the Free Software Foundation. 15 * version 2 as published by the Free Software Foundation.
16 * 16 *
17 * This file is distributed in the hope that it will be useful 17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details. 20 * GNU General Public License for more details.
21 * 21 *
22 * Or, alternatively 22 * Or, alternatively,
23 * 23 *
24 * b) Permission is hereby granted, free of charge, to any person 24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation 25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without 26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use 27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or 28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the 29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following 30 * Software is furnished to do so, subject to the following
@@ -33,11 +33,11 @@
33 * The above copyright notice and this permission notice shall be 33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software. 34 * included in all copies or substantial portions of the Software.
35 * 35 *
36 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6ul-tx6ul.dtsi b/arch/arm/boot/dts/imx6ul-tx6ul.dtsi
index 530e9ca13a74..c784a0b75ca0 100644
--- a/arch/arm/boot/dts/imx6ul-tx6ul.dtsi
+++ b/arch/arm/boot/dts/imx6ul-tx6ul.dtsi
@@ -285,7 +285,6 @@
285&ecspi2 { 285&ecspi2 {
286 pinctrl-names = "default"; 286 pinctrl-names = "default";
287 pinctrl-0 = <&pinctrl_ecspi2>; 287 pinctrl-0 = <&pinctrl_ecspi2>;
288 fsl,spi-num-chipselects = <2>;
289 cs-gpios = < 288 cs-gpios = <
290 &gpio1 29 GPIO_ACTIVE_HIGH 289 &gpio1 29 GPIO_ACTIVE_HIGH
291 &gpio1 10 GPIO_ACTIVE_HIGH 290 &gpio1 10 GPIO_ACTIVE_HIGH
diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi
index 53d3f8e41e9b..b9d7d2d09402 100644
--- a/arch/arm/boot/dts/imx6ul.dtsi
+++ b/arch/arm/boot/dts/imx6ul.dtsi
@@ -99,11 +99,11 @@
99 }; 99 };
100 100
101 intc: interrupt-controller@00a01000 { 101 intc: interrupt-controller@00a01000 {
102 compatible = "arm,cortex-a7-gic"; 102 compatible = "arm,gic-400", "arm,cortex-a7-gic";
103 #interrupt-cells = <3>; 103 #interrupt-cells = <3>;
104 interrupt-controller; 104 interrupt-controller;
105 reg = <0x00a01000 0x1000>, 105 reg = <0x00a01000 0x1000>,
106 <0x00a02000 0x1000>, 106 <0x00a02000 0x2000>,
107 <0x00a04000 0x2000>, 107 <0x00a04000 0x2000>,
108 <0x00a06000 0x2000>; 108 <0x00a06000 0x2000>;
109 }; 109 };
@@ -542,7 +542,6 @@
542 anatop-min-bit-val = <0>; 542 anatop-min-bit-val = <0>;
543 anatop-min-voltage = <2625000>; 543 anatop-min-voltage = <2625000>;
544 anatop-max-voltage = <3400000>; 544 anatop-max-voltage = <3400000>;
545 anatop-enable-bit = <0>;
546 }; 545 };
547 546
548 reg_arm: regulator-vddcore { 547 reg_arm: regulator-vddcore {
@@ -859,6 +858,12 @@
859 reg = <0x021b0000 0x4000>; 858 reg = <0x021b0000 0x4000>;
860 }; 859 };
861 860
861 ocotp: ocotp-ctrl@021bc000 {
862 compatible = "fsl,imx6ul-ocotp", "syscon";
863 reg = <0x021bc000 0x4000>;
864 clocks = <&clks IMX6UL_CLK_OCOTP>;
865 };
866
862 lcdif: lcdif@021c8000 { 867 lcdif: lcdif@021c8000 {
863 compatible = "fsl,imx6ul-lcdif", "fsl,imx28-lcdif"; 868 compatible = "fsl,imx6ul-lcdif", "fsl,imx28-lcdif";
864 reg = <0x021c8000 0x4000>; 869 reg = <0x021c8000 0x4000>;
diff --git a/arch/arm/boot/dts/imx6ull-14x14-evk.dts b/arch/arm/boot/dts/imx6ull-14x14-evk.dts
index db5bc076e1cc..4741871434dd 100644
--- a/arch/arm/boot/dts/imx6ull-14x14-evk.dts
+++ b/arch/arm/boot/dts/imx6ull-14x14-evk.dts
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx6ull.dtsi b/arch/arm/boot/dts/imx6ull.dtsi
index dee8ab8135e1..0c182917b863 100644
--- a/arch/arm/boot/dts/imx6ull.dtsi
+++ b/arch/arm/boot/dts/imx6ull.dtsi
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/imx7-colibri.dtsi b/arch/arm/boot/dts/imx7-colibri.dtsi
index a9cc65725f19..a171545478be 100644
--- a/arch/arm/boot/dts/imx7-colibri.dtsi
+++ b/arch/arm/boot/dts/imx7-colibri.dtsi
@@ -596,29 +596,29 @@
596 596
597 pinctrl_gpio_lpsr: gpio1-grp { 597 pinctrl_gpio_lpsr: gpio1-grp {
598 fsl,pins = < 598 fsl,pins = <
599 MX7D_PAD_GPIO1_IO01__GPIO1_IO1 0x59 599 MX7D_PAD_LPSR_GPIO1_IO01__GPIO1_IO1 0x59
600 MX7D_PAD_GPIO1_IO02__GPIO1_IO2 0x59 600 MX7D_PAD_LPSR_GPIO1_IO02__GPIO1_IO2 0x59
601 MX7D_PAD_GPIO1_IO03__GPIO1_IO3 0x59 601 MX7D_PAD_LPSR_GPIO1_IO03__GPIO1_IO3 0x59
602 >; 602 >;
603 }; 603 };
604 604
605 pinctrl_i2c1: i2c1-grp { 605 pinctrl_i2c1: i2c1-grp {
606 fsl,pins = < 606 fsl,pins = <
607 MX7D_PAD_GPIO1_IO05__I2C1_SDA 0x4000007f 607 MX7D_PAD_LPSR_GPIO1_IO05__I2C1_SDA 0x4000007f
608 MX7D_PAD_GPIO1_IO04__I2C1_SCL 0x4000007f 608 MX7D_PAD_LPSR_GPIO1_IO04__I2C1_SCL 0x4000007f
609 >; 609 >;
610 }; 610 };
611 611
612 pinctrl_cd_usdhc1: usdhc1-cd-grp { 612 pinctrl_cd_usdhc1: usdhc1-cd-grp {
613 fsl,pins = < 613 fsl,pins = <
614 MX7D_PAD_GPIO1_IO00__GPIO1_IO0 0x59 /* CD */ 614 MX7D_PAD_LPSR_GPIO1_IO00__GPIO1_IO0 0x59 /* CD */
615 >; 615 >;
616 }; 616 };
617 617
618 pinctrl_uart1_ctrl2: uart1-ctrl2-grp { 618 pinctrl_uart1_ctrl2: uart1-ctrl2-grp {
619 fsl,pins = < 619 fsl,pins = <
620 MX7D_PAD_GPIO1_IO07__GPIO1_IO7 0x14 /* DSR */ 620 MX7D_PAD_LPSR_GPIO1_IO07__GPIO1_IO7 0x14 /* DSR */
621 MX7D_PAD_GPIO1_IO06__GPIO1_IO6 0x14 /* RI */ 621 MX7D_PAD_LPSR_GPIO1_IO06__GPIO1_IO6 0x14 /* RI */
622 >; 622 >;
623 }; 623 };
624}; 624};
diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
index 58b09bf1ba2d..ae45af1ad062 100644
--- a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
+++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
@@ -261,12 +261,6 @@
261 >; 261 >;
262 }; 262 };
263 263
264 pinctrl_usbotg1: usbotg1grp {
265 fsl,pins = <
266 MX7D_PAD_GPIO1_IO05__GPIO1_IO5 0x14 /* OTG PWREN */
267 >;
268 };
269
270 pinctrl_usdhc3: usdhc3grp { 264 pinctrl_usdhc3: usdhc3grp {
271 fsl,pins = < 265 fsl,pins = <
272 MX7D_PAD_SD3_CMD__SD3_CMD 0x59 266 MX7D_PAD_SD3_CMD__SD3_CMD 0x59
@@ -283,3 +277,11 @@
283 >; 277 >;
284 }; 278 };
285}; 279};
280
281&iomuxc_lpsr {
282 pinctrl_usbotg1: usbotg1grp {
283 fsl,pins = <
284 MX7D_PAD_LPSR_GPIO1_IO05__GPIO1_IO5 0x14 /* OTG PWREN */
285 >;
286 };
287}; \ No newline at end of file
diff --git a/arch/arm/boot/dts/imx7d-nitrogen7.dts b/arch/arm/boot/dts/imx7d-nitrogen7.dts
index ce08f180f213..5d98e2b5d54b 100644
--- a/arch/arm/boot/dts/imx7d-nitrogen7.dts
+++ b/arch/arm/boot/dts/imx7d-nitrogen7.dts
@@ -712,33 +712,33 @@
712 712
713 pinctrl_hog_2: hoggrp-2 { 713 pinctrl_hog_2: hoggrp-2 {
714 fsl,pins = < 714 fsl,pins = <
715 MX7D_PAD_GPIO1_IO02__GPIO1_IO2 0x7d 715 MX7D_PAD_LPSR_GPIO1_IO02__GPIO1_IO2 0x7d
716 MX7D_PAD_GPIO1_IO03__CCM_CLKO2 0x7d 716 MX7D_PAD_LPSR_GPIO1_IO03__CCM_CLKO2 0x7d
717 >; 717 >;
718 }; 718 };
719 719
720 pinctrl_backlight_j9: backlightj9grp { 720 pinctrl_backlight_j9: backlightj9grp {
721 fsl,pins = < 721 fsl,pins = <
722 MX7D_PAD_GPIO1_IO07__GPIO1_IO7 0x7d 722 MX7D_PAD_LPSR_GPIO1_IO07__GPIO1_IO7 0x7d
723 >; 723 >;
724 }; 724 };
725 725
726 pinctrl_pwm1: pwm1grp { 726 pinctrl_pwm1: pwm1grp {
727 fsl,pins = < 727 fsl,pins = <
728 MX7D_PAD_GPIO1_IO01__PWM1_OUT 0x7d 728 MX7D_PAD_LPSR_GPIO1_IO01__PWM1_OUT 0x7d
729 >; 729 >;
730 }; 730 };
731 731
732 pinctrl_usbotg1: usbotg1grp { 732 pinctrl_usbotg1: usbotg1grp {
733 fsl,pins = < 733 fsl,pins = <
734 MX7D_PAD_GPIO1_IO04__USB_OTG1_OC 0x7d 734 MX7D_PAD_LPSR_GPIO1_IO04__USB_OTG1_OC 0x7d
735 MX7D_PAD_GPIO1_IO05__GPIO1_IO5 0x14 735 MX7D_PAD_LPSR_GPIO1_IO05__GPIO1_IO5 0x14
736 >; 736 >;
737 }; 737 };
738 738
739 pinctrl_wdog1: wdog1grp { 739 pinctrl_wdog1: wdog1grp {
740 fsl,pins = < 740 fsl,pins = <
741 MX7D_PAD_GPIO1_IO00__WDOD1_WDOG_B 0x75 741 MX7D_PAD_LPSR_GPIO1_IO00__WDOD1_WDOG_B 0x75
742 >; 742 >;
743 }; 743 };
744}; 744};
diff --git a/arch/arm/boot/dts/imx7d-pinfunc.h b/arch/arm/boot/dts/imx7d-pinfunc.h
index 7bc3c00e56c6..f6f7e78f8820 100644
--- a/arch/arm/boot/dts/imx7d-pinfunc.h
+++ b/arch/arm/boot/dts/imx7d-pinfunc.h
@@ -15,61 +15,61 @@
15 * <mux_reg conf_reg input_reg mux_mode input_val> 15 * <mux_reg conf_reg input_reg mux_mode input_val>
16 */ 16 */
17 17
18#define MX7D_PAD_GPIO1_IO00__GPIO1_IO0 0x0000 0x0030 0x0000 0x0 0x0 18#define MX7D_PAD_LPSR_GPIO1_IO00__GPIO1_IO0 0x0000 0x0030 0x0000 0x0 0x0
19#define MX7D_PAD_GPIO1_IO00__PWM4_OUT 0x0000 0x0030 0x0000 0x1 0x0 19#define MX7D_PAD_LPSR_GPIO1_IO00__PWM4_OUT 0x0000 0x0030 0x0000 0x1 0x0
20#define MX7D_PAD_GPIO1_IO00__WDOD1_WDOG_ANY 0x0000 0x0030 0x0000 0x2 0x0 20#define MX7D_PAD_LPSR_GPIO1_IO00__WDOD1_WDOG_ANY 0x0000 0x0030 0x0000 0x2 0x0
21#define MX7D_PAD_GPIO1_IO00__WDOD1_WDOG_B 0x0000 0x0030 0x0000 0x3 0x0 21#define MX7D_PAD_LPSR_GPIO1_IO00__WDOD1_WDOG_B 0x0000 0x0030 0x0000 0x3 0x0
22#define MX7D_PAD_GPIO1_IO00__WDOD1_WDOG__RST_B_DEB 0x0000 0x0030 0x0000 0x4 0x0 22#define MX7D_PAD_LPSR_GPIO1_IO00__WDOD1_WDOG__RST_B_DEB 0x0000 0x0030 0x0000 0x4 0x0
23#define MX7D_PAD_GPIO1_IO01__GPIO1_IO1 0x0004 0x0034 0x0000 0x0 0x0 23#define MX7D_PAD_LPSR_GPIO1_IO01__GPIO1_IO1 0x0004 0x0034 0x0000 0x0 0x0
24#define MX7D_PAD_GPIO1_IO01__PWM1_OUT 0x0004 0x0034 0x0000 0x1 0x0 24#define MX7D_PAD_LPSR_GPIO1_IO01__PWM1_OUT 0x0004 0x0034 0x0000 0x1 0x0
25#define MX7D_PAD_GPIO1_IO01__CCM_ENET_REF_CLK3 0x0004 0x0034 0x0000 0x2 0x0 25#define MX7D_PAD_LPSR_GPIO1_IO01__CCM_ENET_REF_CLK3 0x0004 0x0034 0x0000 0x2 0x0
26#define MX7D_PAD_GPIO1_IO01__SAI1_MCLK 0x0004 0x0034 0x0000 0x3 0x0 26#define MX7D_PAD_LPSR_GPIO1_IO01__SAI1_MCLK 0x0004 0x0034 0x0000 0x3 0x0
27#define MX7D_PAD_GPIO1_IO01__ANATOP_24M_OUT 0x0004 0x0034 0x0000 0x4 0x0 27#define MX7D_PAD_LPSR_GPIO1_IO01__ANATOP_24M_OUT 0x0004 0x0034 0x0000 0x4 0x0
28#define MX7D_PAD_GPIO1_IO01__OBSERVE0_OUT 0x0004 0x0034 0x0000 0x6 0x0 28#define MX7D_PAD_LPSR_GPIO1_IO01__OBSERVE0_OUT 0x0004 0x0034 0x0000 0x6 0x0
29#define MX7D_PAD_GPIO1_IO02__GPIO1_IO2 0x0008 0x0038 0x0000 0x0 0x0 29#define MX7D_PAD_LPSR_GPIO1_IO02__GPIO1_IO2 0x0008 0x0038 0x0000 0x0 0x0
30#define MX7D_PAD_GPIO1_IO02__PWM2_OUT 0x0008 0x0038 0x0000 0x1 0x0 30#define MX7D_PAD_LPSR_GPIO1_IO02__PWM2_OUT 0x0008 0x0038 0x0000 0x1 0x0
31#define MX7D_PAD_GPIO1_IO02__CCM_ENET_REF_CLK1 0x0008 0x0038 0x0564 0x2 0x3 31#define MX7D_PAD_LPSR_GPIO1_IO02__CCM_ENET_REF_CLK1 0x0008 0x0038 0x0564 0x2 0x3
32#define MX7D_PAD_GPIO1_IO02__SAI2_MCLK 0x0008 0x0038 0x0000 0x3 0x0 32#define MX7D_PAD_LPSR_GPIO1_IO02__SAI2_MCLK 0x0008 0x0038 0x0000 0x3 0x0
33#define MX7D_PAD_GPIO1_IO02__CCM_CLKO1 0x0008 0x0038 0x0000 0x5 0x0 33#define MX7D_PAD_LPSR_GPIO1_IO02__CCM_CLKO1 0x0008 0x0038 0x0000 0x5 0x0
34#define MX7D_PAD_GPIO1_IO02__OBSERVE1_OUT 0x0008 0x0038 0x0000 0x6 0x0 34#define MX7D_PAD_LPSR_GPIO1_IO02__OBSERVE1_OUT 0x0008 0x0038 0x0000 0x6 0x0
35#define MX7D_PAD_GPIO1_IO02__USB_OTG1_ID 0x0008 0x0038 0x0734 0x7 0x3 35#define MX7D_PAD_LPSR_GPIO1_IO02__USB_OTG1_ID 0x0008 0x0038 0x0734 0x7 0x3
36#define MX7D_PAD_GPIO1_IO03__GPIO1_IO3 0x000C 0x003C 0x0000 0x0 0x0 36#define MX7D_PAD_LPSR_GPIO1_IO03__GPIO1_IO3 0x000C 0x003C 0x0000 0x0 0x0
37#define MX7D_PAD_GPIO1_IO03__PWM3_OUT 0x000C 0x003C 0x0000 0x1 0x0 37#define MX7D_PAD_LPSR_GPIO1_IO03__PWM3_OUT 0x000C 0x003C 0x0000 0x1 0x0
38#define MX7D_PAD_GPIO1_IO03__CCM_ENET_REF_CLK2 0x000C 0x003C 0x0570 0x2 0x3 38#define MX7D_PAD_LPSR_GPIO1_IO03__CCM_ENET_REF_CLK2 0x000C 0x003C 0x0570 0x2 0x3
39#define MX7D_PAD_GPIO1_IO03__SAI3_MCLK 0x000C 0x003C 0x0000 0x3 0x0 39#define MX7D_PAD_LPSR_GPIO1_IO03__SAI3_MCLK 0x000C 0x003C 0x0000 0x3 0x0
40#define MX7D_PAD_GPIO1_IO03__CCM_CLKO2 0x000C 0x003C 0x0000 0x5 0x0 40#define MX7D_PAD_LPSR_GPIO1_IO03__CCM_CLKO2 0x000C 0x003C 0x0000 0x5 0x0
41#define MX7D_PAD_GPIO1_IO03__OBSERVE2_OUT 0x000C 0x003C 0x0000 0x6 0x0 41#define MX7D_PAD_LPSR_GPIO1_IO03__OBSERVE2_OUT 0x000C 0x003C 0x0000 0x6 0x0
42#define MX7D_PAD_GPIO1_IO03__USB_OTG2_ID 0x000C 0x003C 0x0730 0x7 0x3 42#define MX7D_PAD_LPSR_GPIO1_IO03__USB_OTG2_ID 0x000C 0x003C 0x0730 0x7 0x3
43#define MX7D_PAD_GPIO1_IO04__GPIO1_IO4 0x0010 0x0040 0x0000 0x0 0x0 43#define MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4 0x0010 0x0040 0x0000 0x0 0x0
44#define MX7D_PAD_GPIO1_IO04__USB_OTG1_OC 0x0010 0x0040 0x072C 0x1 0x1 44#define MX7D_PAD_LPSR_GPIO1_IO04__USB_OTG1_OC 0x0010 0x0040 0x072C 0x1 0x1
45#define MX7D_PAD_GPIO1_IO04__FLEXTIMER1_CH4 0x0010 0x0040 0x0594 0x2 0x1 45#define MX7D_PAD_LPSR_GPIO1_IO04__FLEXTIMER1_CH4 0x0010 0x0040 0x0594 0x2 0x1
46#define MX7D_PAD_GPIO1_IO04__UART5_DCE_CTS 0x0010 0x0040 0x0000 0x3 0x0 46#define MX7D_PAD_LPSR_GPIO1_IO04__UART5_DCE_CTS 0x0010 0x0040 0x0000 0x3 0x0
47#define MX7D_PAD_GPIO1_IO04__UART5_DTE_RTS 0x0010 0x0040 0x0710 0x3 0x4 47#define MX7D_PAD_LPSR_GPIO1_IO04__UART5_DTE_RTS 0x0010 0x0040 0x0710 0x3 0x4
48#define MX7D_PAD_GPIO1_IO04__I2C1_SCL 0x0010 0x0040 0x05D4 0x4 0x2 48#define MX7D_PAD_LPSR_GPIO1_IO04__I2C1_SCL 0x0010 0x0040 0x05D4 0x4 0x2
49#define MX7D_PAD_GPIO1_IO04__OBSERVE3_OUT 0x0010 0x0040 0x0000 0x6 0x0 49#define MX7D_PAD_LPSR_GPIO1_IO04__OBSERVE3_OUT 0x0010 0x0040 0x0000 0x6 0x0
50#define MX7D_PAD_GPIO1_IO05__GPIO1_IO5 0x0014 0x0044 0x0000 0x0 0x0 50#define MX7D_PAD_LPSR_GPIO1_IO05__GPIO1_IO5 0x0014 0x0044 0x0000 0x0 0x0
51#define MX7D_PAD_GPIO1_IO05__USB_OTG1_PWR 0x0014 0x0044 0x0000 0x1 0x0 51#define MX7D_PAD_LPSR_GPIO1_IO05__USB_OTG1_PWR 0x0014 0x0044 0x0000 0x1 0x0
52#define MX7D_PAD_GPIO1_IO05__FLEXTIMER1_CH5 0x0014 0x0044 0x0598 0x2 0x1 52#define MX7D_PAD_LPSR_GPIO1_IO05__FLEXTIMER1_CH5 0x0014 0x0044 0x0598 0x2 0x1
53#define MX7D_PAD_GPIO1_IO05__UART5_DCE_RTS 0x0014 0x0044 0x0710 0x3 0x5 53#define MX7D_PAD_LPSR_GPIO1_IO05__UART5_DCE_RTS 0x0014 0x0044 0x0710 0x3 0x5
54#define MX7D_PAD_GPIO1_IO05__UART5_DTE_CTS 0x0014 0x0044 0x0000 0x3 0x0 54#define MX7D_PAD_LPSR_GPIO1_IO05__UART5_DTE_CTS 0x0014 0x0044 0x0000 0x3 0x0
55#define MX7D_PAD_GPIO1_IO05__I2C1_SDA 0x0014 0x0044 0x05D8 0x4 0x2 55#define MX7D_PAD_LPSR_GPIO1_IO05__I2C1_SDA 0x0014 0x0044 0x05D8 0x4 0x2
56#define MX7D_PAD_GPIO1_IO05__OBSERVE4_OUT 0x0014 0x0044 0x0000 0x6 0x0 56#define MX7D_PAD_LPSR_GPIO1_IO05__OBSERVE4_OUT 0x0014 0x0044 0x0000 0x6 0x0
57#define MX7D_PAD_GPIO1_IO06__GPIO1_IO6 0x0018 0x0048 0x0000 0x0 0x0 57#define MX7D_PAD_LPSR_GPIO1_IO06__GPIO1_IO6 0x0018 0x0048 0x0000 0x0 0x0
58#define MX7D_PAD_GPIO1_IO06__USB_OTG2_OC 0x0018 0x0048 0x0728 0x1 0x1 58#define MX7D_PAD_LPSR_GPIO1_IO06__USB_OTG2_OC 0x0018 0x0048 0x0728 0x1 0x1
59#define MX7D_PAD_GPIO1_IO06__FLEXTIMER1_CH6 0x0018 0x0048 0x059C 0x2 0x1 59#define MX7D_PAD_LPSR_GPIO1_IO06__FLEXTIMER1_CH6 0x0018 0x0048 0x059C 0x2 0x1
60#define MX7D_PAD_GPIO1_IO06__UART5_DCE_RX 0x0018 0x0048 0x0714 0x3 0x4 60#define MX7D_PAD_LPSR_GPIO1_IO06__UART5_DCE_RX 0x0018 0x0048 0x0714 0x3 0x4
61#define MX7D_PAD_GPIO1_IO06__UART5_DTE_TX 0x0018 0x0048 0x0000 0x3 0x0 61#define MX7D_PAD_LPSR_GPIO1_IO06__UART5_DTE_TX 0x0018 0x0048 0x0000 0x3 0x0
62#define MX7D_PAD_GPIO1_IO06__I2C2_SCL 0x0018 0x0048 0x05DC 0x4 0x2 62#define MX7D_PAD_LPSR_GPIO1_IO06__I2C2_SCL 0x0018 0x0048 0x05DC 0x4 0x2
63#define MX7D_PAD_GPIO1_IO06__CCM_WAIT 0x0018 0x0048 0x0000 0x5 0x0 63#define MX7D_PAD_LPSR_GPIO1_IO06__CCM_WAIT 0x0018 0x0048 0x0000 0x5 0x0
64#define MX7D_PAD_GPIO1_IO06__KPP_ROW4 0x0018 0x0048 0x0624 0x6 0x1 64#define MX7D_PAD_LPSR_GPIO1_IO06__KPP_ROW4 0x0018 0x0048 0x0624 0x6 0x1
65#define MX7D_PAD_GPIO1_IO07__GPIO1_IO7 0x001C 0x004C 0x0000 0x0 0x0 65#define MX7D_PAD_LPSR_GPIO1_IO07__GPIO1_IO7 0x001C 0x004C 0x0000 0x0 0x0
66#define MX7D_PAD_GPIO1_IO07__USB_OTG2_PWR 0x001C 0x004C 0x0000 0x1 0x0 66#define MX7D_PAD_LPSR_GPIO1_IO07__USB_OTG2_PWR 0x001C 0x004C 0x0000 0x1 0x0
67#define MX7D_PAD_GPIO1_IO07__FLEXTIMER1_CH7 0x001C 0x004C 0x05A0 0x2 0x1 67#define MX7D_PAD_LPSR_GPIO1_IO07__FLEXTIMER1_CH7 0x001C 0x004C 0x05A0 0x2 0x1
68#define MX7D_PAD_GPIO1_IO07__UART5_DCE_TX 0x001C 0x004C 0x0000 0x3 0x0 68#define MX7D_PAD_LPSR_GPIO1_IO07__UART5_DCE_TX 0x001C 0x004C 0x0000 0x3 0x0
69#define MX7D_PAD_GPIO1_IO07__UART5_DTE_RX 0x001C 0x004C 0x0714 0x3 0x5 69#define MX7D_PAD_LPSR_GPIO1_IO07__UART5_DTE_RX 0x001C 0x004C 0x0714 0x3 0x5
70#define MX7D_PAD_GPIO1_IO07__I2C2_SDA 0x001C 0x004C 0x05E0 0x4 0x2 70#define MX7D_PAD_LPSR_GPIO1_IO07__I2C2_SDA 0x001C 0x004C 0x05E0 0x4 0x2
71#define MX7D_PAD_GPIO1_IO07__CCM_STOP 0x001C 0x004C 0x0000 0x5 0x0 71#define MX7D_PAD_LPSR_GPIO1_IO07__CCM_STOP 0x001C 0x004C 0x0000 0x5 0x0
72#define MX7D_PAD_GPIO1_IO07__KPP_COL4 0x001C 0x004C 0x0604 0x6 0x1 72#define MX7D_PAD_LPSR_GPIO1_IO07__KPP_COL4 0x001C 0x004C 0x0604 0x6 0x1
73#define MX7D_PAD_GPIO1_IO08__GPIO1_IO8 0x0014 0x026C 0x0000 0x0 0x0 73#define MX7D_PAD_GPIO1_IO08__GPIO1_IO8 0x0014 0x026C 0x0000 0x0 0x0
74#define MX7D_PAD_GPIO1_IO08__SD1_VSELECT 0x0014 0x026C 0x0000 0x1 0x0 74#define MX7D_PAD_GPIO1_IO08__SD1_VSELECT 0x0014 0x026C 0x0000 0x1 0x0
75#define MX7D_PAD_GPIO1_IO08__WDOG1_WDOG_B 0x0014 0x026C 0x0000 0x2 0x0 75#define MX7D_PAD_GPIO1_IO08__WDOG1_WDOG_B 0x0014 0x026C 0x0000 0x2 0x0
diff --git a/arch/arm/boot/dts/imx7d-sdb.dts b/arch/arm/boot/dts/imx7d-sdb.dts
index 2f33c463cbce..5be01a1bf840 100644
--- a/arch/arm/boot/dts/imx7d-sdb.dts
+++ b/arch/arm/boot/dts/imx7d-sdb.dts
@@ -111,7 +111,6 @@
111}; 111};
112 112
113&ecspi3 { 113&ecspi3 {
114 fsl,spi-num-chipselects = <1>;
115 pinctrl-names = "default"; 114 pinctrl-names = "default";
116 pinctrl-0 = <&pinctrl_ecspi3>; 115 pinctrl-0 = <&pinctrl_ecspi3>;
117 cs-gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>; 116 cs-gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>;
@@ -502,12 +501,6 @@
502 >; 501 >;
503 }; 502 };
504 503
505 pinctrl_pwm1: pwm1grp {
506 fsl,pins = <
507 MX7D_PAD_GPIO1_IO01__PWM1_OUT 0x110b0
508 >;
509 };
510
511 pinctrl_tsc2046_pendown: tsc2046_pendown { 504 pinctrl_tsc2046_pendown: tsc2046_pendown {
512 fsl,pins = < 505 fsl,pins = <
513 MX7D_PAD_EPDC_BDR1__GPIO2_IO29 0x59 506 MX7D_PAD_EPDC_BDR1__GPIO2_IO29 0x59
@@ -635,11 +628,19 @@
635 MX7D_PAD_SD3_STROBE__SD3_STROBE 0x1b 628 MX7D_PAD_SD3_STROBE__SD3_STROBE 0x1b
636 >; 629 >;
637 }; 630 };
631 };
632};
638 633
639 pinctrl_wdog: wdoggrp { 634&iomuxc_lpsr {
640 fsl,pins = < 635 pinctrl_wdog: wdoggrp {
641 MX7D_PAD_GPIO1_IO00__WDOD1_WDOG_B 0x74 636 fsl,pins = <
642 >; 637 MX7D_PAD_LPSR_GPIO1_IO00__WDOD1_WDOG_B 0x74
643 }; 638 >;
639 };
640
641 pinctrl_pwm1: pwm1grp {
642 fsl,pins = <
643 MX7D_PAD_LPSR_GPIO1_IO01__PWM1_OUT 0x110b0
644 >;
644 }; 645 };
645}; 646};
diff --git a/arch/arm/boot/dts/imx7s-warp.dts b/arch/arm/boot/dts/imx7s-warp.dts
index 0345267f3390..d5237fd0fa65 100644
--- a/arch/arm/boot/dts/imx7s-warp.dts
+++ b/arch/arm/boot/dts/imx7s-warp.dts
@@ -437,10 +437,12 @@
437 MX7D_PAD_SD3_RESET_B__SD3_RESET_B 0x1b 437 MX7D_PAD_SD3_RESET_B__SD3_RESET_B 0x1b
438 >; 438 >;
439 }; 439 };
440};
440 441
442&iomuxc_lpsr {
441 pinctrl_wdog: wdoggrp { 443 pinctrl_wdog: wdoggrp {
442 fsl,pins = < 444 fsl,pins = <
443 MX7D_PAD_GPIO1_IO00__WDOD1_WDOG_B 0x74 445 MX7D_PAD_LPSR_GPIO1_IO00__WDOD1_WDOG_B 0x74
444 >; 446 >;
445 }; 447 };
446}; 448};
diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi
index be33dfc86838..5d3a43b8de20 100644
--- a/arch/arm/boot/dts/imx7s.dtsi
+++ b/arch/arm/boot/dts/imx7s.dtsi
@@ -517,7 +517,6 @@
517 anatop-min-bit-val = <8>; 517 anatop-min-bit-val = <8>;
518 anatop-min-voltage = <800000>; 518 anatop-min-voltage = <800000>;
519 anatop-max-voltage = <1200000>; 519 anatop-max-voltage = <1200000>;
520 anatop-enable-bit = <31>;
521 }; 520 };
522 }; 521 };
523 522
diff --git a/arch/arm/boot/dts/keystone-k2e-netcp.dtsi b/arch/arm/boot/dts/keystone-k2e-netcp.dtsi
index ac990f679725..ba828cb59587 100644
--- a/arch/arm/boot/dts/keystone-k2e-netcp.dtsi
+++ b/arch/arm/boot/dts/keystone-k2e-netcp.dtsi
@@ -138,7 +138,8 @@ netcp: netcp@24000000 {
138 /* NetCP address range */ 138 /* NetCP address range */
139 ranges = <0 0x24000000 0x1000000>; 139 ranges = <0 0x24000000 0x1000000>;
140 140
141 clocks = <&papllclk>, <&clkcpgmac>, <&chipclk12>; 141 clocks = <&clkpa>, <&clkcpgmac>, <&chipclk12>;
142 clock-names = "pa_clk", "ethss_clk", "cpts";
142 dma-coherent; 143 dma-coherent;
143 144
144 ti,navigator-dmas = <&dma_gbe 0>, 145 ti,navigator-dmas = <&dma_gbe 0>,
diff --git a/arch/arm/boot/dts/keystone-k2e.dtsi b/arch/arm/boot/dts/keystone-k2e.dtsi
index 497c417db5b6..0dd4cdd6d40c 100644
--- a/arch/arm/boot/dts/keystone-k2e.dtsi
+++ b/arch/arm/boot/dts/keystone-k2e.dtsi
@@ -8,6 +8,8 @@
8 * published by the Free Software Foundation. 8 * published by the Free Software Foundation.
9 */ 9 */
10 10
11#include <dt-bindings/reset/ti-syscon.h>
12
11/ { 13/ {
12 compatible = "ti,k2e", "ti,keystone"; 14 compatible = "ti,k2e", "ti,keystone";
13 model = "Texas Instruments Keystone 2 Edison SoC"; 15 model = "Texas Instruments Keystone 2 Edison SoC";
@@ -82,6 +84,29 @@
82 }; 84 };
83 }; 85 };
84 86
87 msm_ram: msmram@0c000000 {
88 compatible = "mmio-sram";
89 reg = <0x0c000000 0x200000>;
90 ranges = <0x0 0x0c000000 0x200000>;
91 #address-cells = <1>;
92 #size-cells = <1>;
93
94 sram-bm@1f0000 {
95 reg = <0x001f0000 0x8000>;
96 };
97 };
98
99 psc: power-sleep-controller@02350000 {
100 pscrst: reset-controller {
101 compatible = "ti,k2e-pscrst", "ti,syscon-reset";
102 #reset-cells = <1>;
103
104 ti,reset-bits = <
105 0xa3c 8 0xa3c 8 0x83c 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 0: dsp0 */
106 >;
107 };
108 };
109
85 dspgpio0: keystone_dsp_gpio@02620240 { 110 dspgpio0: keystone_dsp_gpio@02620240 {
86 compatible = "ti,keystone-dsp-gpio"; 111 compatible = "ti,keystone-dsp-gpio";
87 gpio-controller; 112 gpio-controller;
diff --git a/arch/arm/boot/dts/keystone-k2g.dtsi b/arch/arm/boot/dts/keystone-k2g.dtsi
index 63c7cf0c6b6d..f59567fe7d91 100644
--- a/arch/arm/boot/dts/keystone-k2g.dtsi
+++ b/arch/arm/boot/dts/keystone-k2g.dtsi
@@ -40,12 +40,12 @@
40 }; 40 };
41 41
42 gic: interrupt-controller@02561000 { 42 gic: interrupt-controller@02561000 {
43 compatible = "arm,cortex-a15-gic"; 43 compatible = "arm,gic-400", "arm,cortex-a15-gic";
44 #interrupt-cells = <3>; 44 #interrupt-cells = <3>;
45 interrupt-controller; 45 interrupt-controller;
46 reg = <0x0 0x02561000 0x0 0x1000>, 46 reg = <0x0 0x02561000 0x0 0x1000>,
47 <0x0 0x02562000 0x0 0x2000>, 47 <0x0 0x02562000 0x0 0x2000>,
48 <0x0 0x02564000 0x0 0x1000>, 48 <0x0 0x02564000 0x0 0x2000>,
49 <0x0 0x02566000 0x0 0x2000>; 49 <0x0 0x02566000 0x0 0x2000>;
50 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | 50 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
51 IRQ_TYPE_LEVEL_HIGH)>; 51 IRQ_TYPE_LEVEL_HIGH)>;
@@ -77,6 +77,18 @@
77 ranges = <0x0 0x0 0x0 0xc0000000>; 77 ranges = <0x0 0x0 0x0 0xc0000000>;
78 dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>; 78 dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>;
79 79
80 msm_ram: msmram@0c000000 {
81 compatible = "mmio-sram";
82 reg = <0x0c000000 0x100000>;
83 ranges = <0x0 0x0c000000 0x100000>;
84 #address-cells = <1>;
85 #size-cells = <1>;
86
87 sram-bm@f7000 {
88 reg = <0x000f7000 0x8000>;
89 };
90 };
91
80 k2g_pinctrl: pinmux@02621000 { 92 k2g_pinctrl: pinmux@02621000 {
81 compatible = "pinctrl-single"; 93 compatible = "pinctrl-single";
82 reg = <0x02621000 0x410>; 94 reg = <0x02621000 0x410>;
@@ -90,7 +102,7 @@
90 }; 102 };
91 103
92 uart0: serial@02530c00 { 104 uart0: serial@02530c00 {
93 compatible = "ns16550a"; 105 compatible = "ti,da830-uart", "ns16550a";
94 current-speed = <115200>; 106 current-speed = <115200>;
95 reg-shift = <2>; 107 reg-shift = <2>;
96 reg-io-width = <4>; 108 reg-io-width = <4>;
diff --git a/arch/arm/boot/dts/keystone-k2hk-netcp.dtsi b/arch/arm/boot/dts/keystone-k2hk-netcp.dtsi
index f86d6ddb832b..a5ac845464bf 100644
--- a/arch/arm/boot/dts/keystone-k2hk-netcp.dtsi
+++ b/arch/arm/boot/dts/keystone-k2hk-netcp.dtsi
@@ -155,7 +155,8 @@ netcp: netcp@2000000 {
155 /* NetCP address range */ 155 /* NetCP address range */
156 ranges = <0 0x2000000 0x100000>; 156 ranges = <0 0x2000000 0x100000>;
157 157
158 clocks = <&papllclk>, <&clkcpgmac>, <&chipclk12>; 158 clocks = <&clkpa>, <&clkcpgmac>, <&chipclk12>;
159 clock-names = "pa_clk", "ethss_clk", "cpts";
159 dma-coherent; 160 dma-coherent;
160 161
161 ti,navigator-dmas = <&dma_gbe 22>, 162 ti,navigator-dmas = <&dma_gbe 22>,
diff --git a/arch/arm/boot/dts/keystone-k2hk.dtsi b/arch/arm/boot/dts/keystone-k2hk.dtsi
index 8f67fa8df936..69d449430511 100644
--- a/arch/arm/boot/dts/keystone-k2hk.dtsi
+++ b/arch/arm/boot/dts/keystone-k2hk.dtsi
@@ -8,6 +8,8 @@
8 * published by the Free Software Foundation. 8 * published by the Free Software Foundation.
9 */ 9 */
10 10
11#include <dt-bindings/reset/ti-syscon.h>
12
11/ { 13/ {
12 compatible = "ti,k2hk", "ti,keystone"; 14 compatible = "ti,k2hk", "ti,keystone";
13 model = "Texas Instruments Keystone 2 Kepler/Hawking SoC"; 15 model = "Texas Instruments Keystone 2 Kepler/Hawking SoC";
@@ -46,6 +48,36 @@
46 soc { 48 soc {
47 /include/ "keystone-k2hk-clocks.dtsi" 49 /include/ "keystone-k2hk-clocks.dtsi"
48 50
51 msm_ram: msmram@0c000000 {
52 compatible = "mmio-sram";
53 reg = <0x0c000000 0x600000>;
54 ranges = <0x0 0x0c000000 0x600000>;
55 #address-cells = <1>;
56 #size-cells = <1>;
57
58 sram-bm@5f0000 {
59 reg = <0x5f0000 0x8000>;
60 };
61 };
62
63 psc: power-sleep-controller@02350000 {
64 pscrst: reset-controller {
65 compatible = "ti,k2hk-pscrst", "ti,syscon-reset";
66 #reset-cells = <1>;
67
68 ti,reset-bits = <
69 0xa3c 8 0xa3c 8 0x83c 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 0: dsp0 */
70 0xa40 8 0xa40 8 0x840 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 1: dsp1 */
71 0xa44 8 0xa44 8 0x844 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 2: dsp2 */
72 0xa48 8 0xa48 8 0x848 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 3: dsp3 */
73 0xa4c 8 0xa4c 8 0x84c 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 4: dsp4 */
74 0xa50 8 0xa50 8 0x850 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 5: dsp5 */
75 0xa54 8 0xa54 8 0x854 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 6: dsp6 */
76 0xa58 8 0xa58 8 0x858 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 7: dsp7 */
77 >;
78 };
79 };
80
49 dspgpio0: keystone_dsp_gpio@02620240 { 81 dspgpio0: keystone_dsp_gpio@02620240 {
50 compatible = "ti,keystone-dsp-gpio"; 82 compatible = "ti,keystone-dsp-gpio";
51 gpio-controller; 83 gpio-controller;
diff --git a/arch/arm/boot/dts/keystone-k2l-netcp.dtsi b/arch/arm/boot/dts/keystone-k2l-netcp.dtsi
index 5acbd0dcc2ab..b6f26824e83a 100644
--- a/arch/arm/boot/dts/keystone-k2l-netcp.dtsi
+++ b/arch/arm/boot/dts/keystone-k2l-netcp.dtsi
@@ -137,7 +137,8 @@ netcp: netcp@26000000 {
137 /* NetCP address range */ 137 /* NetCP address range */
138 ranges = <0 0x26000000 0x1000000>; 138 ranges = <0 0x26000000 0x1000000>;
139 139
140 clocks = <&clkosr>, <&papllclk>, <&clkcpgmac>, <&chipclk12>; 140 clocks = <&clkpa>, <&clkcpgmac>, <&chipclk12>, <&clkosr>;
141 clock-names = "pa_clk", "ethss_clk", "cpts", "osr_clk";
141 dma-coherent; 142 dma-coherent;
142 143
143 ti,navigator-dmas = <&dma_gbe 0>, 144 ti,navigator-dmas = <&dma_gbe 0>,
diff --git a/arch/arm/boot/dts/keystone-k2l.dtsi b/arch/arm/boot/dts/keystone-k2l.dtsi
index 0c5e74e79ba2..b58e7ebc0919 100644
--- a/arch/arm/boot/dts/keystone-k2l.dtsi
+++ b/arch/arm/boot/dts/keystone-k2l.dtsi
@@ -8,6 +8,8 @@
8 * published by the Free Software Foundation. 8 * published by the Free Software Foundation.
9 */ 9 */
10 10
11#include <dt-bindings/reset/ti-syscon.h>
12
11/ { 13/ {
12 compatible = "ti,k2l", "ti,keystone"; 14 compatible = "ti,k2l", "ti,keystone";
13 model = "Texas Instruments Keystone 2 Lamarr SoC"; 15 model = "Texas Instruments Keystone 2 Lamarr SoC";
@@ -35,7 +37,7 @@
35 /include/ "keystone-k2l-clocks.dtsi" 37 /include/ "keystone-k2l-clocks.dtsi"
36 38
37 uart2: serial@02348400 { 39 uart2: serial@02348400 {
38 compatible = "ns16550a"; 40 compatible = "ti,da830-uart", "ns16550a";
39 current-speed = <115200>; 41 current-speed = <115200>;
40 reg-shift = <2>; 42 reg-shift = <2>;
41 reg-io-width = <4>; 43 reg-io-width = <4>;
@@ -45,7 +47,7 @@
45 }; 47 };
46 48
47 uart3: serial@02348800 { 49 uart3: serial@02348800 {
48 compatible = "ns16550a"; 50 compatible = "ti,da830-uart", "ns16550a";
49 current-speed = <115200>; 51 current-speed = <115200>;
50 reg-shift = <2>; 52 reg-shift = <2>;
51 reg-io-width = <4>; 53 reg-io-width = <4>;
@@ -204,6 +206,32 @@
204 }; 206 };
205 }; 207 };
206 208
209 msm_ram: msmram@0c000000 {
210 compatible = "mmio-sram";
211 reg = <0x0c000000 0x200000>;
212 ranges = <0x0 0x0c000000 0x200000>;
213 #address-cells = <1>;
214 #size-cells = <1>;
215
216 sram-bm@1f8000 {
217 reg = <0x001f8000 0x8000>;
218 };
219 };
220
221 psc: power-sleep-controller@02350000 {
222 pscrst: reset-controller {
223 compatible = "ti,k2l-pscrst", "ti,syscon-reset";
224 #reset-cells = <1>;
225
226 ti,reset-bits = <
227 0xa3c 8 0xa3c 8 0x83c 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 0: dsp0 */
228 0xa40 8 0xa40 8 0x840 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 1: dsp1 */
229 0xa44 8 0xa44 8 0x844 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 2: dsp2 */
230 0xa48 8 0xa48 8 0x848 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 3: dsp3 */
231 >;
232 };
233 };
234
207 dspgpio0: keystone_dsp_gpio@02620240 { 235 dspgpio0: keystone_dsp_gpio@02620240 {
208 compatible = "ti,keystone-dsp-gpio"; 236 compatible = "ti,keystone-dsp-gpio";
209 gpio-controller; 237 gpio-controller;
diff --git a/arch/arm/boot/dts/keystone.dtsi b/arch/arm/boot/dts/keystone.dtsi
index 02708ba2d4f4..8dd74f48a6d3 100644
--- a/arch/arm/boot/dts/keystone.dtsi
+++ b/arch/arm/boot/dts/keystone.dtsi
@@ -30,12 +30,12 @@
30 }; 30 };
31 31
32 gic: interrupt-controller { 32 gic: interrupt-controller {
33 compatible = "arm,cortex-a15-gic"; 33 compatible = "arm,gic-400", "arm,cortex-a15-gic";
34 #interrupt-cells = <3>; 34 #interrupt-cells = <3>;
35 interrupt-controller; 35 interrupt-controller;
36 reg = <0x0 0x02561000 0x0 0x1000>, 36 reg = <0x0 0x02561000 0x0 0x1000>,
37 <0x0 0x02562000 0x0 0x2000>, 37 <0x0 0x02562000 0x0 0x2000>,
38 <0x0 0x02564000 0x0 0x1000>, 38 <0x0 0x02564000 0x0 0x2000>,
39 <0x0 0x02566000 0x0 0x2000>; 39 <0x0 0x02566000 0x0 0x2000>;
40 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | 40 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
41 IRQ_TYPE_LEVEL_HIGH)>; 41 IRQ_TYPE_LEVEL_HIGH)>;
@@ -83,6 +83,11 @@
83 reg = <0x02310000 0x200>; 83 reg = <0x02310000 0x200>;
84 }; 84 };
85 85
86 psc: power-sleep-controller@02350000 {
87 compatible = "syscon", "simple-mfd";
88 reg = <0x02350000 0x1000>;
89 };
90
86 devctrl: device-state-control@02620000 { 91 devctrl: device-state-control@02620000 {
87 compatible = "ti,keystone-devctrl", "syscon"; 92 compatible = "ti,keystone-devctrl", "syscon";
88 reg = <0x02620000 0x1000>; 93 reg = <0x02620000 0x1000>;
@@ -98,7 +103,7 @@
98 /include/ "keystone-clocks.dtsi" 103 /include/ "keystone-clocks.dtsi"
99 104
100 uart0: serial@02530c00 { 105 uart0: serial@02530c00 {
101 compatible = "ns16550a"; 106 compatible = "ti,da830-uart", "ns16550a";
102 current-speed = <115200>; 107 current-speed = <115200>;
103 reg-shift = <2>; 108 reg-shift = <2>;
104 reg-io-width = <4>; 109 reg-io-width = <4>;
@@ -108,7 +113,7 @@
108 }; 113 };
109 114
110 uart1: serial@02531000 { 115 uart1: serial@02531000 {
111 compatible = "ns16550a"; 116 compatible = "ti,da830-uart", "ns16550a";
112 current-speed = <115200>; 117 current-speed = <115200>;
113 reg-shift = <2>; 118 reg-shift = <2>;
114 reg-io-width = <4>; 119 reg-io-width = <4>;
diff --git a/arch/arm/boot/dts/kirkwood-dir665.dts b/arch/arm/boot/dts/kirkwood-dir665.dts
index 41acbb6dd6ab..4d2b15d6244a 100644
--- a/arch/arm/boot/dts/kirkwood-dir665.dts
+++ b/arch/arm/boot/dts/kirkwood-dir665.dts
@@ -194,6 +194,8 @@
194 }; 194 };
195 195
196 dsa { 196 dsa {
197 status = "disabled";
198
197 compatible = "marvell,dsa"; 199 compatible = "marvell,dsa";
198 #address-cells = <2>; 200 #address-cells = <2>;
199 #size-cells = <0>; 201 #size-cells = <0>;
@@ -241,6 +243,53 @@
241 243
242&mdio { 244&mdio {
243 status = "okay"; 245 status = "okay";
246
247 switch@0 {
248 compatible = "marvell,mv88e6085";
249 #address-cells = <1>;
250 #size-cells = <0>;
251 reg = <0>;
252
253 ports {
254 #address-cells = <1>;
255 #size-cells = <0>;
256
257 port@0 {
258 reg = <0>;
259 label = "lan4";
260 };
261
262 port@1 {
263 reg = <1>;
264 label = "lan3";
265 };
266
267 port@2 {
268 reg = <2>;
269 label = "lan2";
270 };
271
272 port@3 {
273 reg = <3>;
274 label = "lan1";
275 };
276
277 port@4 {
278 reg = <4>;
279 label = "wan";
280 };
281
282 port@6 {
283 reg = <6>;
284 label = "cpu";
285 ethernet = <&eth0port>;
286 fixed-link {
287 speed = <1000>;
288 full-duplex;
289 };
290 };
291 };
292 };
244}; 293};
245 294
246/* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set 295/* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set
diff --git a/arch/arm/boot/dts/kirkwood-linkstation-6282.dtsi b/arch/arm/boot/dts/kirkwood-linkstation-6282.dtsi
index 6548e68a20d0..b9125e5ed076 100644
--- a/arch/arm/boot/dts/kirkwood-linkstation-6282.dtsi
+++ b/arch/arm/boot/dts/kirkwood-linkstation-6282.dtsi
@@ -14,17 +14,17 @@
14 * published by the Free Software Foundation; either version 2 of the 14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version. 15 * License, or (at your option) any later version.
16 * 16 *
17 * This file is distributed in the hope that it will be useful 17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details. 20 * GNU General Public License for more details.
21 * 21 *
22 * Or, alternatively 22 * Or, alternatively,
23 * 23 *
24 * b) Permission is hereby granted, free of charge, to any person 24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation 25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without 26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use 27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or 28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the 29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following 30 * Software is furnished to do so, subject to the following
@@ -33,11 +33,11 @@
33 * The above copyright notice and this permission notice shall be 33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software. 34 * included in all copies or substantial portions of the Software.
35 * 35 *
36 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/kirkwood-linkstation-duo-6281.dtsi b/arch/arm/boot/dts/kirkwood-linkstation-duo-6281.dtsi
index cf2e69f0d54f..29d929535453 100644
--- a/arch/arm/boot/dts/kirkwood-linkstation-duo-6281.dtsi
+++ b/arch/arm/boot/dts/kirkwood-linkstation-duo-6281.dtsi
@@ -14,17 +14,17 @@
14 * published by the Free Software Foundation; either version 2 of the 14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version. 15 * License, or (at your option) any later version.
16 * 16 *
17 * This file is distributed in the hope that it will be useful 17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details. 20 * GNU General Public License for more details.
21 * 21 *
22 * Or, alternatively 22 * Or, alternatively,
23 * 23 *
24 * b) Permission is hereby granted, free of charge, to any person 24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation 25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without 26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use 27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or 28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the 29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following 30 * Software is furnished to do so, subject to the following
@@ -33,11 +33,11 @@
33 * The above copyright notice and this permission notice shall be 33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software. 34 * included in all copies or substantial portions of the Software.
35 * 35 *
36 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/kirkwood-linkstation-lsqvl.dts b/arch/arm/boot/dts/kirkwood-linkstation-lsqvl.dts
index 6dc0df2969f0..9cc05203baee 100644
--- a/arch/arm/boot/dts/kirkwood-linkstation-lsqvl.dts
+++ b/arch/arm/boot/dts/kirkwood-linkstation-lsqvl.dts
@@ -17,17 +17,17 @@
17 * published by the Free Software Foundation; either version 2 of the 17 * published by the Free Software Foundation; either version 2 of the
18 * License, or (at your option) any later version. 18 * License, or (at your option) any later version.
19 * 19 *
20 * This file is distributed in the hope that it will be useful 20 * This file is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details. 23 * GNU General Public License for more details.
24 * 24 *
25 * Or, alternatively 25 * Or, alternatively,
26 * 26 *
27 * b) Permission is hereby granted, free of charge, to any person 27 * b) Permission is hereby granted, free of charge, to any person
28 * obtaining a copy of this software and associated documentation 28 * obtaining a copy of this software and associated documentation
29 * files (the "Software"), to deal in the Software without 29 * files (the "Software"), to deal in the Software without
30 * restriction, including without limitation the rights to use 30 * restriction, including without limitation the rights to use,
31 * copy, modify, merge, publish, distribute, sublicense, and/or 31 * copy, modify, merge, publish, distribute, sublicense, and/or
32 * sell copies of the Software, and to permit persons to whom the 32 * sell copies of the Software, and to permit persons to whom the
33 * Software is furnished to do so, subject to the following 33 * Software is furnished to do so, subject to the following
@@ -36,11 +36,11 @@
36 * The above copyright notice and this permission notice shall be 36 * The above copyright notice and this permission notice shall be
37 * included in all copies or substantial portions of the Software. 37 * included in all copies or substantial portions of the Software.
38 * 38 *
39 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 39 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46 * OTHER DEALINGS IN THE SOFTWARE. 46 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/kirkwood-linkstation-lsvl.dts b/arch/arm/boot/dts/kirkwood-linkstation-lsvl.dts
index edcba5c44b05..ff37e76ab551 100644
--- a/arch/arm/boot/dts/kirkwood-linkstation-lsvl.dts
+++ b/arch/arm/boot/dts/kirkwood-linkstation-lsvl.dts
@@ -14,17 +14,17 @@
14 * published by the Free Software Foundation; either version 2 of the 14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version. 15 * License, or (at your option) any later version.
16 * 16 *
17 * This file is distributed in the hope that it will be useful 17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details. 20 * GNU General Public License for more details.
21 * 21 *
22 * Or, alternatively 22 * Or, alternatively,
23 * 23 *
24 * b) Permission is hereby granted, free of charge, to any person 24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation 25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without 26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use 27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or 28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the 29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following 30 * Software is furnished to do so, subject to the following
@@ -33,11 +33,11 @@
33 * The above copyright notice and this permission notice shall be 33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software. 34 * included in all copies or substantial portions of the Software.
35 * 35 *
36 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/kirkwood-linkstation-lswsxl.dts b/arch/arm/boot/dts/kirkwood-linkstation-lswsxl.dts
index 4b6450186af5..f602c059c718 100644
--- a/arch/arm/boot/dts/kirkwood-linkstation-lswsxl.dts
+++ b/arch/arm/boot/dts/kirkwood-linkstation-lswsxl.dts
@@ -14,17 +14,17 @@
14 * published by the Free Software Foundation; either version 2 of the 14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version. 15 * License, or (at your option) any later version.
16 * 16 *
17 * This file is distributed in the hope that it will be useful 17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details. 20 * GNU General Public License for more details.
21 * 21 *
22 * Or, alternatively 22 * Or, alternatively,
23 * 23 *
24 * b) Permission is hereby granted, free of charge, to any person 24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation 25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without 26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use 27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or 28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the 29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following 30 * Software is furnished to do so, subject to the following
@@ -33,11 +33,11 @@
33 * The above copyright notice and this permission notice shall be 33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software. 34 * included in all copies or substantial portions of the Software.
35 * 35 *
36 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/kirkwood-linkstation-lswvl.dts b/arch/arm/boot/dts/kirkwood-linkstation-lswvl.dts
index 954ec1d5b6dc..ef8fc1a077f8 100644
--- a/arch/arm/boot/dts/kirkwood-linkstation-lswvl.dts
+++ b/arch/arm/boot/dts/kirkwood-linkstation-lswvl.dts
@@ -14,17 +14,17 @@
14 * published by the Free Software Foundation; either version 2 of the 14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version. 15 * License, or (at your option) any later version.
16 * 16 *
17 * This file is distributed in the hope that it will be useful 17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details. 20 * GNU General Public License for more details.
21 * 21 *
22 * Or, alternatively 22 * Or, alternatively,
23 * 23 *
24 * b) Permission is hereby granted, free of charge, to any person 24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation 25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without 26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use 27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or 28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the 29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following 30 * Software is furnished to do so, subject to the following
@@ -33,11 +33,11 @@
33 * The above copyright notice and this permission notice shall be 33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software. 34 * included in all copies or substantial portions of the Software.
35 * 35 *
36 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/kirkwood-linkstation-lswxl.dts b/arch/arm/boot/dts/kirkwood-linkstation-lswxl.dts
index ecd5c12a805d..ce41d553b693 100644
--- a/arch/arm/boot/dts/kirkwood-linkstation-lswxl.dts
+++ b/arch/arm/boot/dts/kirkwood-linkstation-lswxl.dts
@@ -14,17 +14,17 @@
14 * published by the Free Software Foundation; either version 2 of the 14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version. 15 * License, or (at your option) any later version.
16 * 16 *
17 * This file is distributed in the hope that it will be useful 17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details. 20 * GNU General Public License for more details.
21 * 21 *
22 * Or, alternatively 22 * Or, alternatively,
23 * 23 *
24 * b) Permission is hereby granted, free of charge, to any person 24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation 25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without 26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use 27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or 28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the 29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following 30 * Software is furnished to do so, subject to the following
@@ -33,11 +33,11 @@
33 * The above copyright notice and this permission notice shall be 33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software. 34 * included in all copies or substantial portions of the Software.
35 * 35 *
36 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/kirkwood-linkstation.dtsi b/arch/arm/boot/dts/kirkwood-linkstation.dtsi
index 36c54c9dfa30..b459042a904a 100644
--- a/arch/arm/boot/dts/kirkwood-linkstation.dtsi
+++ b/arch/arm/boot/dts/kirkwood-linkstation.dtsi
@@ -14,17 +14,17 @@
14 * published by the Free Software Foundation; either version 2 of the 14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version. 15 * License, or (at your option) any later version.
16 * 16 *
17 * This file is distributed in the hope that it will be useful 17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details. 20 * GNU General Public License for more details.
21 * 21 *
22 * Or, alternatively 22 * Or, alternatively,
23 * 23 *
24 * b) Permission is hereby granted, free of charge, to any person 24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation 25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without 26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use 27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or 28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the 29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following 30 * Software is furnished to do so, subject to the following
@@ -33,11 +33,11 @@
33 * The above copyright notice and this permission notice shall be 33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software. 34 * included in all copies or substantial portions of the Software.
35 * 35 *
36 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/kirkwood-linksys-viper.dts b/arch/arm/boot/dts/kirkwood-linksys-viper.dts
index 345fcac48dc7..df7851820507 100644
--- a/arch/arm/boot/dts/kirkwood-linksys-viper.dts
+++ b/arch/arm/boot/dts/kirkwood-linksys-viper.dts
@@ -70,6 +70,8 @@
70 }; 70 };
71 71
72 dsa { 72 dsa {
73 status = "disabled";
74
73 compatible = "marvell,dsa"; 75 compatible = "marvell,dsa";
74 #address-cells = <2>; 76 #address-cells = <2>;
75 #size-cells = <0>; 77 #size-cells = <0>;
@@ -207,6 +209,53 @@
207 209
208&mdio { 210&mdio {
209 status = "okay"; 211 status = "okay";
212
213 switch@10 {
214 compatible = "marvell,mv88e6085";
215 #address-cells = <1>;
216 #size-cells = <0>;
217 reg = <16>;
218
219 ports {
220 #address-cells = <1>;
221 #size-cells = <0>;
222
223 port@0 {
224 reg = <0>;
225 label = "ethernet1";
226 };
227
228 port@1 {
229 reg = <1>;
230 label = "ethernet2";
231 };
232
233 port@2 {
234 reg = <2>;
235 label = "ethernet3";
236 };
237
238 port@3 {
239 reg = <3>;
240 label = "ethernet4";
241 };
242
243 port@4 {
244 reg = <4>;
245 label = "internet";
246 };
247
248 port@5 {
249 reg = <5>;
250 label = "cpu";
251 ethernet = <&eth0port>;
252 fixed-link {
253 speed = <1000>;
254 full-duplex;
255 };
256 };
257 };
258 };
210}; 259};
211 260
212&uart0 { 261&uart0 {
diff --git a/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts b/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts
index 172a38c0b8a9..327023a477b8 100644
--- a/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts
+++ b/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts
@@ -112,6 +112,8 @@
112 }; 112 };
113 113
114 dsa { 114 dsa {
115 status = "disabled";
116
115 compatible = "marvell,dsa"; 117 compatible = "marvell,dsa";
116 #address-cells = <1>; 118 #address-cells = <1>;
117 #size-cells = <0>; 119 #size-cells = <0>;
@@ -159,6 +161,53 @@
159 161
160&mdio { 162&mdio {
161 status = "okay"; 163 status = "okay";
164
165 switch@0 {
166 compatible = "marvell,mv88e6085";
167 #address-cells = <1>;
168 #size-cells = <0>;
169 reg = <0>;
170
171 ports {
172 #address-cells = <1>;
173 #size-cells = <0>;
174
175 port@0 {
176 reg = <0>;
177 label = "lan1";
178 };
179
180 port@1 {
181 reg = <1>;
182 label = "lan2";
183 };
184
185 port@2 {
186 reg = <2>;
187 label = "lan3";
188 };
189
190 port@3 {
191 reg = <3>;
192 label = "lan4";
193 };
194
195 port@4 {
196 reg = <4>;
197 label = "wan";
198 };
199
200 port@5 {
201 reg = <5>;
202 label = "cpu";
203 ethernet = <&eth0port>;
204 fixed-link {
205 speed = <1000>;
206 full-duplex;
207 };
208 };
209 };
210 };
162}; 211};
163 212
164&eth0 { 213&eth0 {
diff --git a/arch/arm/boot/dts/kirkwood-rd88f6281-a.dts b/arch/arm/boot/dts/kirkwood-rd88f6281-a.dts
index 6f771a99cb02..9ec5a65561e9 100644
--- a/arch/arm/boot/dts/kirkwood-rd88f6281-a.dts
+++ b/arch/arm/boot/dts/kirkwood-rd88f6281-a.dts
@@ -19,11 +19,6 @@
19 model = "Marvell RD88f6281 Reference design, with A0 or higher SoC"; 19 model = "Marvell RD88f6281 Reference design, with A0 or higher SoC";
20 compatible = "marvell,rd88f6281-a", "marvell,rd88f6281","marvell,kirkwood-88f6281", "marvell,kirkwood"; 20 compatible = "marvell,rd88f6281-a", "marvell,rd88f6281","marvell,kirkwood-88f6281", "marvell,kirkwood";
21 21
22 dsa {
23 switch@0 {
24 reg = <10 0>; /* MDIO address 10, switch 0 in tree */
25 };
26 };
27}; 22};
28 23
29&mdio { 24&mdio {
@@ -34,6 +29,10 @@
34 }; 29 };
35}; 30};
36 31
32&switch {
33 reg = <10>;
34};
35
37&eth1 { 36&eth1 {
38 status = "okay"; 37 status = "okay";
39 38
diff --git a/arch/arm/boot/dts/kirkwood-rd88f6281-z0.dts b/arch/arm/boot/dts/kirkwood-rd88f6281-z0.dts
index 1a797381d3d4..6a4a65ec7944 100644
--- a/arch/arm/boot/dts/kirkwood-rd88f6281-z0.dts
+++ b/arch/arm/boot/dts/kirkwood-rd88f6281-z0.dts
@@ -33,3 +33,14 @@
33&eth1 { 33&eth1 {
34 status = "disabled"; 34 status = "disabled";
35}; 35};
36
37&switch {
38 reg = <0>;
39
40 ports {
41 port@4 {
42 reg = <4>;
43 label = "wan";
44 };
45 };
46};
diff --git a/arch/arm/boot/dts/kirkwood-rd88f6281.dtsi b/arch/arm/boot/dts/kirkwood-rd88f6281.dtsi
index d5aacf137e40..91f5da5dae5f 100644
--- a/arch/arm/boot/dts/kirkwood-rd88f6281.dtsi
+++ b/arch/arm/boot/dts/kirkwood-rd88f6281.dtsi
@@ -54,6 +54,8 @@
54 }; 54 };
55 55
56 dsa { 56 dsa {
57 status = "disabled";
58
57 compatible = "marvell,dsa"; 59 compatible = "marvell,dsa";
58 #address-cells = <2>; 60 #address-cells = <2>;
59 #size-cells = <0>; 61 #size-cells = <0>;
@@ -115,6 +117,48 @@
115 117
116&mdio { 118&mdio {
117 status = "okay"; 119 status = "okay";
120
121 switch: switch@0 {
122 compatible = "marvell,mv88e6085";
123 #address-cells = <1>;
124 #size-cells = <0>;
125
126 ports {
127 #address-cells = <1>;
128 #size-cells = <0>;
129
130 port@0 {
131 reg = <0>;
132 label = "lan1";
133 };
134
135 port@1 {
136 reg = <1>;
137 label = "lan2";
138 };
139
140 port@2 {
141 reg = <2>;
142 label = "lan3";
143 };
144
145 port@3 {
146 reg = <3>;
147 label = "lan4";
148 };
149
150 port@5 {
151 reg = <5>;
152 label = "cpu";
153 ethernet = <&eth0port>;
154 fixed-link {
155 speed = <1000>;
156 full-duplex;
157 };
158 };
159
160 };
161 };
118}; 162};
119 163
120&eth0 { 164&eth0 {
diff --git a/arch/arm/boot/dts/ls1021a.dtsi b/arch/arm/boot/dts/ls1021a.dtsi
index 282d854f4342..45ea57fafa18 100644
--- a/arch/arm/boot/dts/ls1021a.dtsi
+++ b/arch/arm/boot/dts/ls1021a.dtsi
@@ -110,11 +110,11 @@
110 ranges; 110 ranges;
111 111
112 gic: interrupt-controller@1400000 { 112 gic: interrupt-controller@1400000 {
113 compatible = "arm,cortex-a7-gic"; 113 compatible = "arm,gic-400", "arm,cortex-a7-gic";
114 #interrupt-cells = <3>; 114 #interrupt-cells = <3>;
115 interrupt-controller; 115 interrupt-controller;
116 reg = <0x0 0x1401000 0x0 0x1000>, 116 reg = <0x0 0x1401000 0x0 0x1000>,
117 <0x0 0x1402000 0x0 0x1000>, 117 <0x0 0x1402000 0x0 0x2000>,
118 <0x0 0x1404000 0x0 0x2000>, 118 <0x0 0x1404000 0x0 0x2000>,
119 <0x0 0x1406000 0x0 0x2000>; 119 <0x0 0x1406000 0x0 0x2000>;
120 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 120 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
diff --git a/arch/arm/boot/dts/mt2701-evb.dts b/arch/arm/boot/dts/mt2701-evb.dts
index 082ca8807c62..a4837985b7a7 100644
--- a/arch/arm/boot/dts/mt2701-evb.dts
+++ b/arch/arm/boot/dts/mt2701-evb.dts
@@ -24,6 +24,60 @@
24 }; 24 };
25}; 25};
26 26
27&auxadc {
28 status = "okay";
29};
30
31&pio {
32 spi_pins_a: spi0@0 {
33 pins_spi {
34 pinmux = <MT2701_PIN_53_SPI0_CSN__FUNC_SPI0_CS>,
35 <MT2701_PIN_54_SPI0_CK__FUNC_SPI0_CK>,
36 <MT2701_PIN_55_SPI0_MI__FUNC_SPI0_MI>,
37 <MT2701_PIN_56_SPI0_MO__FUNC_SPI0_MO>;
38 bias-disable;
39 };
40 };
41
42 spi_pins_b: spi1@0 {
43 pins_spi {
44 pinmux = <MT2701_PIN_7_SPI1_CSN__FUNC_SPI1_CS>,
45 <MT2701_PIN_8_SPI1_MI__FUNC_SPI1_MI>,
46 <MT2701_PIN_9_SPI1_MO__FUNC_SPI1_MO>,
47 <MT2701_PIN_199_SPI1_CLK__FUNC_SPI1_CK>;
48 bias-disable;
49 };
50 };
51
52 spi_pins_c: spi2@0 {
53 pins_spi {
54 pinmux = <MT2701_PIN_101_SPI2_CSN__FUNC_SPI2_CS>,
55 <MT2701_PIN_102_SPI2_MI__FUNC_SPI2_MI>,
56 <MT2701_PIN_103_SPI2_MO__FUNC_SPI2_MO>,
57 <MT2701_PIN_104_SPI2_CLK__FUNC_SPI2_CK>;
58 bias-disable;
59 };
60 };
61};
62
63&spi0 {
64 pinctrl-names = "default";
65 pinctrl-0 = <&spi_pins_a>;
66 status = "disabled";
67};
68
69&spi1 {
70 pinctrl-names = "default";
71 pinctrl-0 = <&spi_pins_b>;
72 status = "disabled";
73};
74
75&spi2 {
76 pinctrl-names = "default";
77 pinctrl-0 = <&spi_pins_c>;
78 status = "disabled";
79};
80
27&uart0 { 81&uart0 {
28 status = "okay"; 82 status = "okay";
29}; 83};
diff --git a/arch/arm/boot/dts/mt2701.dtsi b/arch/arm/boot/dts/mt2701.dtsi
index 7eab6f4c4665..803721050116 100644
--- a/arch/arm/boot/dts/mt2701.dtsi
+++ b/arch/arm/boot/dts/mt2701.dtsi
@@ -13,6 +13,7 @@
13 */ 13 */
14 14
15#include <dt-bindings/clock/mt2701-clk.h> 15#include <dt-bindings/clock/mt2701-clk.h>
16#include <dt-bindings/power/mt2701-power.h>
16#include <dt-bindings/interrupt-controller/irq.h> 17#include <dt-bindings/interrupt-controller/irq.h>
17#include <dt-bindings/interrupt-controller/arm-gic.h> 18#include <dt-bindings/interrupt-controller/arm-gic.h>
18#include <dt-bindings/reset/mt2701-resets.h> 19#include <dt-bindings/reset/mt2701-resets.h>
@@ -87,6 +88,36 @@
87 clock-output-names = "rtc32k"; 88 clock-output-names = "rtc32k";
88 }; 89 };
89 90
91 thermal-zones {
92 cpu_thermal: cpu_thermal {
93 polling-delay-passive = <1000>; /* milliseconds */
94 polling-delay = <1000>; /* milliseconds */
95
96 thermal-sensors = <&thermal 0>;
97 sustainable-power = <1000>;
98
99 trips {
100 threshold: trip-point@0 {
101 temperature = <68000>;
102 hysteresis = <2000>;
103 type = "passive";
104 };
105
106 target: trip-point@1 {
107 temperature = <85000>;
108 hysteresis = <2000>;
109 type = "passive";
110 };
111
112 cpu_crit: cpu_crit@0 {
113 temperature = <115000>;
114 hysteresis = <2000>;
115 type = "critical";
116 };
117 };
118 };
119 };
120
90 timer { 121 timer {
91 compatible = "arm,armv7-timer"; 122 compatible = "arm,armv7-timer";
92 interrupt-parent = <&gic>; 123 interrupt-parent = <&gic>;
@@ -96,24 +127,6 @@
96 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 127 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
97 }; 128 };
98 129
99 pio: pinctrl@10005000 {
100 compatible = "mediatek,mt2701-pinctrl";
101 reg = <0 0x1000b000 0 0x1000>;
102 mediatek,pctl-regmap = <&syscfg_pctl_a>;
103 pins-are-numbered;
104 gpio-controller;
105 #gpio-cells = <2>;
106 interrupt-controller;
107 #interrupt-cells = <2>;
108 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
109 <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
110 };
111
112 syscfg_pctl_a: syscfg@10005000 {
113 compatible = "mediatek,mt2701-pctl-a-syscfg", "syscon";
114 reg = <0 0x10005000 0 0x1000>;
115 };
116
117 topckgen: syscon@10000000 { 130 topckgen: syscon@10000000 {
118 compatible = "mediatek,mt2701-topckgen", "syscon"; 131 compatible = "mediatek,mt2701-topckgen", "syscon";
119 reg = <0 0x10000000 0 0x1000>; 132 reg = <0 0x10000000 0 0x1000>;
@@ -134,6 +147,22 @@
134 #reset-cells = <1>; 147 #reset-cells = <1>;
135 }; 148 };
136 149
150 syscfg_pctl_a: syscfg@10005000 {
151 compatible = "mediatek,mt2701-pctl-a-syscfg", "syscon";
152 reg = <0 0x10005000 0 0x1000>;
153 };
154
155 scpsys: scpsys@10006000 {
156 compatible = "mediatek,mt2701-scpsys", "syscon";
157 #power-domain-cells = <1>;
158 reg = <0 0x10006000 0 0x1000>;
159 infracfg = <&infracfg>;
160 clocks = <&topckgen CLK_TOP_MM_SEL>,
161 <&topckgen CLK_TOP_MFG_SEL>,
162 <&topckgen CLK_TOP_ETHIF_SEL>;
163 clock-names = "mm", "mfg", "ethif";
164 };
165
137 watchdog: watchdog@10007000 { 166 watchdog: watchdog@10007000 {
138 compatible = "mediatek,mt2701-wdt", 167 compatible = "mediatek,mt2701-wdt",
139 "mediatek,mt6589-wdt"; 168 "mediatek,mt6589-wdt";
@@ -149,6 +178,29 @@
149 clock-names = "system-clk", "rtc-clk"; 178 clock-names = "system-clk", "rtc-clk";
150 }; 179 };
151 180
181 pio: pinctrl@1000b000 {
182 compatible = "mediatek,mt2701-pinctrl";
183 reg = <0 0x1000b000 0 0x1000>;
184 mediatek,pctl-regmap = <&syscfg_pctl_a>;
185 pins-are-numbered;
186 gpio-controller;
187 #gpio-cells = <2>;
188 interrupt-controller;
189 #interrupt-cells = <2>;
190 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
191 <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
192 };
193
194 smi_common: smi@1000c000 {
195 compatible = "mediatek,mt2701-smi-common";
196 reg = <0 0x1000c000 0 0x1000>;
197 clocks = <&infracfg CLK_INFRA_SMI>,
198 <&mmsys CLK_MM_SMI_COMMON>,
199 <&infracfg CLK_INFRA_SMI>;
200 clock-names = "apb", "smi", "async";
201 power-domains = <&scpsys MT2701_POWER_DOMAIN_DISP>;
202 };
203
152 sysirq: interrupt-controller@10200100 { 204 sysirq: interrupt-controller@10200100 {
153 compatible = "mediatek,mt2701-sysirq", 205 compatible = "mediatek,mt2701-sysirq",
154 "mediatek,mt6577-sysirq"; 206 "mediatek,mt6577-sysirq";
@@ -158,6 +210,16 @@
158 reg = <0 0x10200100 0 0x1c>; 210 reg = <0 0x10200100 0 0x1c>;
159 }; 211 };
160 212
213 iommu: mmsys_iommu@10205000 {
214 compatible = "mediatek,mt2701-m4u";
215 reg = <0 0x10205000 0 0x1000>;
216 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_LOW>;
217 clocks = <&infracfg CLK_INFRA_M4U>;
218 clock-names = "bclk";
219 mediatek,larbs = <&larb0 &larb1 &larb2>;
220 #iommu-cells = <1>;
221 };
222
161 apmixedsys: syscon@10209000 { 223 apmixedsys: syscon@10209000 {
162 compatible = "mediatek,mt2701-apmixedsys", "syscon"; 224 compatible = "mediatek,mt2701-apmixedsys", "syscon";
163 reg = <0 0x10209000 0 0x1000>; 225 reg = <0 0x10209000 0 0x1000>;
@@ -170,11 +232,20 @@
170 #interrupt-cells = <3>; 232 #interrupt-cells = <3>;
171 interrupt-parent = <&gic>; 233 interrupt-parent = <&gic>;
172 reg = <0 0x10211000 0 0x1000>, 234 reg = <0 0x10211000 0 0x1000>,
173 <0 0x10212000 0 0x1000>, 235 <0 0x10212000 0 0x2000>,
174 <0 0x10214000 0 0x2000>, 236 <0 0x10214000 0 0x2000>,
175 <0 0x10216000 0 0x2000>; 237 <0 0x10216000 0 0x2000>;
176 }; 238 };
177 239
240 auxadc: adc@11001000 {
241 compatible = "mediatek,mt2701-auxadc";
242 reg = <0 0x11001000 0 0x1000>;
243 clocks = <&pericfg CLK_PERI_AUXADC>;
244 clock-names = "main";
245 #io-channel-cells = <1>;
246 status = "disabled";
247 };
248
178 uart0: serial@11002000 { 249 uart0: serial@11002000 {
179 compatible = "mediatek,mt2701-uart", 250 compatible = "mediatek,mt2701-uart",
180 "mediatek,mt6577-uart"; 251 "mediatek,mt6577-uart";
@@ -214,4 +285,144 @@
214 clock-names = "baud", "bus"; 285 clock-names = "baud", "bus";
215 status = "disabled"; 286 status = "disabled";
216 }; 287 };
288
289 spi0: spi@1100a000 {
290 compatible = "mediatek,mt2701-spi";
291 #address-cells = <1>;
292 #size-cells = <0>;
293 reg = <0 0x1100a000 0 0x100>;
294 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>;
295 clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
296 <&topckgen CLK_TOP_SPI0_SEL>,
297 <&pericfg CLK_PERI_SPI0>;
298 clock-names = "parent-clk", "sel-clk", "spi-clk";
299 status = "disabled";
300 };
301
302 thermal: thermal@1100b000 {
303 #thermal-sensor-cells = <0>;
304 compatible = "mediatek,mt2701-thermal";
305 reg = <0 0x1100b000 0 0x1000>;
306 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_LOW>;
307 clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>;
308 clock-names = "therm", "auxadc";
309 resets = <&pericfg MT2701_PERI_THERM_SW_RST>;
310 reset-names = "therm";
311 mediatek,auxadc = <&auxadc>;
312 mediatek,apmixedsys = <&apmixedsys>;
313 };
314
315 nandc: nfi@1100d000 {
316 compatible = "mediatek,mt2701-nfc";
317 reg = <0 0x1100d000 0 0x1000>;
318 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_LOW>;
319 clocks = <&pericfg CLK_PERI_NFI>,
320 <&pericfg CLK_PERI_NFI_PAD>;
321 clock-names = "nfi_clk", "pad_clk";
322 status = "disabled";
323 ecc-engine = <&bch>;
324 #address-cells = <1>;
325 #size-cells = <0>;
326 };
327
328 bch: ecc@1100e000 {
329 compatible = "mediatek,mt2701-ecc";
330 reg = <0 0x1100e000 0 0x1000>;
331 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_LOW>;
332 clocks = <&pericfg CLK_PERI_NFI_ECC>;
333 clock-names = "nfiecc_clk";
334 status = "disabled";
335 };
336
337 spi1: spi@11016000 {
338 compatible = "mediatek,mt2701-spi";
339 #address-cells = <1>;
340 #size-cells = <0>;
341 reg = <0 0x11016000 0 0x100>;
342 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_LOW>;
343 clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
344 <&topckgen CLK_TOP_SPI1_SEL>,
345 <&pericfg CLK_PERI_SPI1>;
346 clock-names = "parent-clk", "sel-clk", "spi-clk";
347 status = "disabled";
348 };
349
350 spi2: spi@11017000 {
351 compatible = "mediatek,mt2701-spi";
352 #address-cells = <1>;
353 #size-cells = <0>;
354 reg = <0 0x11017000 0 0x1000>;
355 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_LOW>;
356 clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
357 <&topckgen CLK_TOP_SPI2_SEL>,
358 <&pericfg CLK_PERI_SPI2>;
359 clock-names = "parent-clk", "sel-clk", "spi-clk";
360 status = "disabled";
361 };
362
363 mmsys: syscon@14000000 {
364 compatible = "mediatek,mt2701-mmsys", "syscon";
365 reg = <0 0x14000000 0 0x1000>;
366 #clock-cells = <1>;
367 };
368
369 larb0: larb@14010000 {
370 compatible = "mediatek,mt2701-smi-larb";
371 reg = <0 0x14010000 0 0x1000>;
372 mediatek,smi = <&smi_common>;
373 clocks = <&mmsys CLK_MM_SMI_LARB0>,
374 <&mmsys CLK_MM_SMI_LARB0>;
375 clock-names = "apb", "smi";
376 power-domains = <&scpsys MT2701_POWER_DOMAIN_DISP>;
377 };
378
379 imgsys: syscon@15000000 {
380 compatible = "mediatek,mt2701-imgsys", "syscon";
381 reg = <0 0x15000000 0 0x1000>;
382 #clock-cells = <1>;
383 };
384
385 larb2: larb@15001000 {
386 compatible = "mediatek,mt2701-smi-larb";
387 reg = <0 0x15001000 0 0x1000>;
388 mediatek,smi = <&smi_common>;
389 clocks = <&imgsys CLK_IMG_SMI_COMM>,
390 <&imgsys CLK_IMG_SMI_COMM>;
391 clock-names = "apb", "smi";
392 power-domains = <&scpsys MT2701_POWER_DOMAIN_ISP>;
393 };
394
395 vdecsys: syscon@16000000 {
396 compatible = "mediatek,mt2701-vdecsys", "syscon";
397 reg = <0 0x16000000 0 0x1000>;
398 #clock-cells = <1>;
399 };
400
401 larb1: larb@16010000 {
402 compatible = "mediatek,mt2701-smi-larb";
403 reg = <0 0x16010000 0 0x1000>;
404 mediatek,smi = <&smi_common>;
405 clocks = <&vdecsys CLK_VDEC_CKGEN>,
406 <&vdecsys CLK_VDEC_LARB>;
407 clock-names = "apb", "smi";
408 power-domains = <&scpsys MT2701_POWER_DOMAIN_VDEC>;
409 };
410
411 hifsys: syscon@1a000000 {
412 compatible = "mediatek,mt2701-hifsys", "syscon";
413 reg = <0 0x1a000000 0 0x1000>;
414 #clock-cells = <1>;
415 };
416
417 ethsys: syscon@1b000000 {
418 compatible = "mediatek,mt2701-ethsys", "syscon";
419 reg = <0 0x1b000000 0 0x1000>;
420 #clock-cells = <1>;
421 };
422
423 bdpsys: syscon@1c000000 {
424 compatible = "mediatek,mt2701-bdpsys", "syscon";
425 reg = <0 0x1c000000 0 0x1000>;
426 #clock-cells = <1>;
427 };
217}; 428};
diff --git a/arch/arm/boot/dts/mt6580.dtsi b/arch/arm/boot/dts/mt6580.dtsi
index 06fdf6c2d5fd..a349dba5ff79 100644
--- a/arch/arm/boot/dts/mt6580.dtsi
+++ b/arch/arm/boot/dts/mt6580.dtsi
@@ -91,7 +91,7 @@
91 #interrupt-cells = <3>; 91 #interrupt-cells = <3>;
92 interrupt-parent = <&gic>; 92 interrupt-parent = <&gic>;
93 reg = <0x10211000 0x1000>, 93 reg = <0x10211000 0x1000>,
94 <0x10212000 0x1000>, 94 <0x10212000 0x2000>,
95 <0x10214000 0x2000>, 95 <0x10214000 0x2000>,
96 <0x10216000 0x2000>; 96 <0x10216000 0x2000>;
97 }; 97 };
diff --git a/arch/arm/boot/dts/mt6589.dtsi b/arch/arm/boot/dts/mt6589.dtsi
index 88b3cb128698..0d6f60af7640 100644
--- a/arch/arm/boot/dts/mt6589.dtsi
+++ b/arch/arm/boot/dts/mt6589.dtsi
@@ -102,7 +102,7 @@
102 #interrupt-cells = <3>; 102 #interrupt-cells = <3>;
103 interrupt-parent = <&gic>; 103 interrupt-parent = <&gic>;
104 reg = <0x10211000 0x1000>, 104 reg = <0x10211000 0x1000>,
105 <0x10212000 0x1000>, 105 <0x10212000 0x2000>,
106 <0x10214000 0x2000>, 106 <0x10214000 0x2000>,
107 <0x10216000 0x2000>; 107 <0x10216000 0x2000>;
108 }; 108 };
diff --git a/arch/arm/boot/dts/mt7623-evb.dts b/arch/arm/boot/dts/mt7623-evb.dts
index a9ee2d64c6f7..b60b41cad592 100644
--- a/arch/arm/boot/dts/mt7623-evb.dts
+++ b/arch/arm/boot/dts/mt7623-evb.dts
@@ -1,6 +1,6 @@
1/* 1/*
2 * Copyright (c) 2016 MediaTek Inc. 2 * Copyright (c) 2016 MediaTek Inc.
3 * Author: John Crispin <blogic@openwrt.org> 3 * Author: John Crispin <john@phrozen.org>
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify 5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as 6 * it under the terms of the GNU General Public License version 2 as
diff --git a/arch/arm/boot/dts/mt7623.dtsi b/arch/arm/boot/dts/mt7623.dtsi
index fd2b614ae6f3..402579ab70d2 100644
--- a/arch/arm/boot/dts/mt7623.dtsi
+++ b/arch/arm/boot/dts/mt7623.dtsi
@@ -1,6 +1,6 @@
1/* 1/*
2 * Copyright (c) 2016 MediaTek Inc. 2 * Copyright (c) 2016 MediaTek Inc.
3 * Author: John Crispin <blogic@openwrt.org> 3 * Author: John Crispin <john@phrozen.org>
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify 5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as 6 * it under the terms of the GNU General Public License version 2 as
@@ -104,7 +104,7 @@
104 #interrupt-cells = <3>; 104 #interrupt-cells = <3>;
105 interrupt-parent = <&gic>; 105 interrupt-parent = <&gic>;
106 reg = <0 0x10211000 0 0x1000>, 106 reg = <0 0x10211000 0 0x1000>,
107 <0 0x10212000 0 0x1000>, 107 <0 0x10212000 0 0x2000>,
108 <0 0x10214000 0 0x2000>, 108 <0 0x10214000 0 0x2000>,
109 <0 0x10216000 0 0x2000>; 109 <0 0x10216000 0 0x2000>;
110 }; 110 };
diff --git a/arch/arm/boot/dts/mt8127.dtsi b/arch/arm/boot/dts/mt8127.dtsi
index 52086c8018e2..916c095d11b9 100644
--- a/arch/arm/boot/dts/mt8127.dtsi
+++ b/arch/arm/boot/dts/mt8127.dtsi
@@ -129,7 +129,7 @@
129 #interrupt-cells = <3>; 129 #interrupt-cells = <3>;
130 interrupt-parent = <&gic>; 130 interrupt-parent = <&gic>;
131 reg = <0 0x10211000 0 0x1000>, 131 reg = <0 0x10211000 0 0x1000>,
132 <0 0x10212000 0 0x1000>, 132 <0 0x10212000 0 0x2000>,
133 <0 0x10214000 0 0x2000>, 133 <0 0x10214000 0 0x2000>,
134 <0 0x10216000 0 0x2000>; 134 <0 0x10216000 0 0x2000>;
135 }; 135 };
diff --git a/arch/arm/boot/dts/mt8135.dtsi b/arch/arm/boot/dts/mt8135.dtsi
index 1d7f92bdcb9c..a97b4ee4ae79 100644
--- a/arch/arm/boot/dts/mt8135.dtsi
+++ b/arch/arm/boot/dts/mt8135.dtsi
@@ -221,7 +221,7 @@
221 #interrupt-cells = <3>; 221 #interrupt-cells = <3>;
222 interrupt-parent = <&gic>; 222 interrupt-parent = <&gic>;
223 reg = <0 0x10211000 0 0x1000>, 223 reg = <0 0x10211000 0 0x1000>,
224 <0 0x10212000 0 0x1000>, 224 <0 0x10212000 0 0x2000>,
225 <0 0x10214000 0 0x2000>, 225 <0 0x10214000 0 0x2000>,
226 <0 0x10216000 0 0x2000>; 226 <0 0x10216000 0 0x2000>;
227 }; 227 };
diff --git a/arch/arm/boot/dts/mvebu-linkstation-fan.dtsi b/arch/arm/boot/dts/mvebu-linkstation-fan.dtsi
index e211a3c47a76..e172029a0c4d 100644
--- a/arch/arm/boot/dts/mvebu-linkstation-fan.dtsi
+++ b/arch/arm/boot/dts/mvebu-linkstation-fan.dtsi
@@ -14,17 +14,17 @@
14 * published by the Free Software Foundation; either version 2 of the 14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version. 15 * License, or (at your option) any later version.
16 * 16 *
17 * This file is distributed in the hope that it will be useful 17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details. 20 * GNU General Public License for more details.
21 * 21 *
22 * Or, alternatively 22 * Or, alternatively,
23 * 23 *
24 * b) Permission is hereby granted, free of charge, to any person 24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation 25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without 26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use 27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or 28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the 29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following 30 * Software is furnished to do so, subject to the following
@@ -33,11 +33,11 @@
33 * The above copyright notice and this permission notice shall be 33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software. 34 * included in all copies or substantial portions of the Software.
35 * 35 *
36 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/mvebu-linkstation-gpio-simple.dtsi b/arch/arm/boot/dts/mvebu-linkstation-gpio-simple.dtsi
index 68d75e79a360..c2d87ba6190a 100644
--- a/arch/arm/boot/dts/mvebu-linkstation-gpio-simple.dtsi
+++ b/arch/arm/boot/dts/mvebu-linkstation-gpio-simple.dtsi
@@ -14,17 +14,17 @@
14 * published by the Free Software Foundation; either version 2 of the 14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version. 15 * License, or (at your option) any later version.
16 * 16 *
17 * This file is distributed in the hope that it will be useful 17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details. 20 * GNU General Public License for more details.
21 * 21 *
22 * Or, alternatively 22 * Or, alternatively,
23 * 23 *
24 * b) Permission is hereby granted, free of charge, to any person 24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation 25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without 26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use 27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or 28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the 29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following 30 * Software is furnished to do so, subject to the following
@@ -33,11 +33,11 @@
33 * The above copyright notice and this permission notice shall be 33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software. 34 * included in all copies or substantial portions of the Software.
35 * 35 *
36 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts
index 85e297ed0ea1..673cee2234b2 100644
--- a/arch/arm/boot/dts/omap3-beagle-xm.dts
+++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
@@ -27,6 +27,7 @@
27 aliases { 27 aliases {
28 display0 = &dvi0; 28 display0 = &dvi0;
29 display1 = &tv0; 29 display1 = &tv0;
30 ethernet = &ethernet;
30 }; 31 };
31 32
32 leds { 33 leds {
@@ -348,6 +349,21 @@
348 349
349&usbhsehci { 350&usbhsehci {
350 phys = <0 &hsusb2_phy>; 351 phys = <0 &hsusb2_phy>;
352
353 #address-cells = <1>;
354 #size-cells = <0>;
355
356 hub@2 {
357 compatible = "usb424,9514";
358 reg = <2>;
359 #address-cells = <1>;
360 #size-cells = <0>;
361
362 ethernet: usbether@1 {
363 compatible = "usb424,ec00";
364 reg = <1>;
365 };
366 };
351}; 367};
352 368
353&vaux2 { 369&vaux2 {
diff --git a/arch/arm/boot/dts/omap3-igep.dtsi b/arch/arm/boot/dts/omap3-igep.dtsi
index 54c4c07bbe4a..e268efde6c6d 100644
--- a/arch/arm/boot/dts/omap3-igep.dtsi
+++ b/arch/arm/boot/dts/omap3-igep.dtsi
@@ -126,27 +126,6 @@
126 126
127 #address-cells = <1>; 127 #address-cells = <1>;
128 #size-cells = <1>; 128 #size-cells = <1>;
129
130 partition@0 {
131 label = "SPL";
132 reg = <0 0x100000>;
133 };
134 partition@80000 {
135 label = "U-Boot";
136 reg = <0x100000 0x180000>;
137 };
138 partition@1c0000 {
139 label = "Environment";
140 reg = <0x280000 0x100000>;
141 };
142 partition@280000 {
143 label = "Kernel";
144 reg = <0x380000 0x300000>;
145 };
146 partition@780000 {
147 label = "Filesystem";
148 reg = <0x680000 0x1f980000>;
149 };
150 }; 129 };
151}; 130};
152 131
diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
index 4d448f145ed1..b64cfda8dbb7 100644
--- a/arch/arm/boot/dts/omap3-n900.dts
+++ b/arch/arm/boot/dts/omap3-n900.dts
@@ -47,7 +47,7 @@
47 compatible = "gpio-leds"; 47 compatible = "gpio-leds";
48 heartbeat { 48 heartbeat {
49 label = "debug::sleep"; 49 label = "debug::sleep";
50 gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>; /* gpio162 */ 50 gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>; /* 162 */
51 linux,default-trigger = "default-on"; 51 linux,default-trigger = "default-on";
52 pinctrl-names = "default"; 52 pinctrl-names = "default";
53 pinctrl-0 = <&debug_leds>; 53 pinctrl-0 = <&debug_leds>;
@@ -625,6 +625,7 @@
625 reg = <0x55>; 625 reg = <0x55>;
626 }; 626 };
627 627
628 /* Stereo headphone amplifier */
628 tpa6130a2: tpa6130a2@60 { 629 tpa6130a2: tpa6130a2@60 {
629 compatible = "ti,tpa6130a2"; 630 compatible = "ti,tpa6130a2";
630 reg = <0x60>; 631 reg = <0x60>;
diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
index 1673689e6705..edbc4090297d 100644
--- a/arch/arm/boot/dts/omap4-panda-common.dtsi
+++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
@@ -16,6 +16,7 @@
16 aliases { 16 aliases {
17 display0 = &dvi0; 17 display0 = &dvi0;
18 display1 = &hdmi0; 18 display1 = &hdmi0;
19 ethernet = &ethernet;
19 }; 20 };
20 21
21 leds: leds { 22 leds: leds {
@@ -520,6 +521,21 @@
520 521
521&usbhsehci { 522&usbhsehci {
522 phys = <&hsusb1_phy>; 523 phys = <&hsusb1_phy>;
524
525 #address-cells = <1>;
526 #size-cells = <0>;
527
528 hub@1 {
529 compatible = "usb424,9514";
530 reg = <1>;
531 #address-cells = <1>;
532 #size-cells = <0>;
533
534 ethernet: usbether@1 {
535 compatible = "usb424,ec00";
536 reg = <1>;
537 };
538 };
523}; 539};
524 540
525&dss { 541&dss {
diff --git a/arch/arm/boot/dts/omap5-igep0050.dts b/arch/arm/boot/dts/omap5-igep0050.dts
index 8fc19218057e..fef2a446b61c 100644
--- a/arch/arm/boot/dts/omap5-igep0050.dts
+++ b/arch/arm/boot/dts/omap5-igep0050.dts
@@ -19,6 +19,10 @@
19 reg = <0x0 0x80000000 0 0x7f000000>; /* 2032 MB */ 19 reg = <0x0 0x80000000 0 0x7f000000>; /* 2032 MB */
20 }; 20 };
21 21
22 aliases {
23 ethernet = &ethernet;
24 };
25
22 gpio_keys { 26 gpio_keys {
23 compatible = "gpio-keys"; 27 compatible = "gpio-keys";
24 pinctrl-0 = <&power_button_pin>; 28 pinctrl-0 = <&power_button_pin>;
@@ -116,3 +120,20 @@
116 OMAP5_IOPAD(0x1ca, PIN_OUTPUT | MUX_MODE6) /* perslimbus2_clock.gpio5_145 */ 120 OMAP5_IOPAD(0x1ca, PIN_OUTPUT | MUX_MODE6) /* perslimbus2_clock.gpio5_145 */
117 >; 121 >;
118}; 122};
123
124&usbhsehci {
125 #address-cells = <1>;
126 #size-cells = <0>;
127
128 hub@2 {
129 compatible = "usb424,3503";
130 reg = <2>;
131 #address-cells = <1>;
132 #size-cells = <0>;
133
134 ethernet: usbether@3 {
135 compatible = "usb424,7500";
136 reg = <3>;
137 };
138 };
139};
diff --git a/arch/arm/boot/dts/omap5-uevm.dts b/arch/arm/boot/dts/omap5-uevm.dts
index a8c72611fbe3..0d42c46f13e7 100644
--- a/arch/arm/boot/dts/omap5-uevm.dts
+++ b/arch/arm/boot/dts/omap5-uevm.dts
@@ -18,6 +18,10 @@
18 reg = <0 0x80000000 0 0x7f000000>; /* 2032 MB */ 18 reg = <0 0x80000000 0 0x7f000000>; /* 2032 MB */
19 }; 19 };
20 20
21 aliases {
22 ethernet = &ethernet;
23 };
24
21 leds { 25 leds {
22 compatible = "gpio-leds"; 26 compatible = "gpio-leds";
23 led1 { 27 led1 {
@@ -164,6 +168,23 @@
164 >; 168 >;
165}; 169};
166 170
171&usbhsehci {
172 #address-cells = <1>;
173 #size-cells = <0>;
174
175 hub@2 {
176 compatible = "usb424,3503";
177 reg = <2>;
178 #address-cells = <1>;
179 #size-cells = <0>;
180 };
181
182 ethernet: usbether@3 {
183 compatible = "usb424,9730";
184 reg = <3>;
185 };
186};
187
167&wlcore { 188&wlcore {
168 compatible = "ti,wl1837"; 189 compatible = "ti,wl1837";
169}; 190};
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
index 0844737b72b2..222155ca8ad7 100644
--- a/arch/arm/boot/dts/omap5.dtsi
+++ b/arch/arm/boot/dts/omap5.dtsi
@@ -92,7 +92,7 @@
92 interrupt-controller; 92 interrupt-controller;
93 #interrupt-cells = <3>; 93 #interrupt-cells = <3>;
94 reg = <0 0x48211000 0 0x1000>, 94 reg = <0 0x48211000 0 0x1000>,
95 <0 0x48212000 0 0x1000>, 95 <0 0x48212000 0 0x2000>,
96 <0 0x48214000 0 0x2000>, 96 <0 0x48214000 0 0x2000>,
97 <0 0x48216000 0 0x2000>; 97 <0 0x48216000 0 0x2000>;
98 interrupt-parent = <&gic>; 98 interrupt-parent = <&gic>;
diff --git a/arch/arm/boot/dts/orion5x-kuroboxpro.dts b/arch/arm/boot/dts/orion5x-kuroboxpro.dts
index 1a672b098d0b..e28b568e741a 100644
--- a/arch/arm/boot/dts/orion5x-kuroboxpro.dts
+++ b/arch/arm/boot/dts/orion5x-kuroboxpro.dts
@@ -17,17 +17,17 @@
17 * published by the Free Software Foundation; either version 2 of the 17 * published by the Free Software Foundation; either version 2 of the
18 * License, or (at your option) any later version. 18 * License, or (at your option) any later version.
19 * 19 *
20 * This file is distributed in the hope that it will be useful 20 * This file is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details. 23 * GNU General Public License for more details.
24 * 24 *
25 * Or, alternatively 25 * Or, alternatively,
26 * 26 *
27 * b) Permission is hereby granted, free of charge, to any person 27 * b) Permission is hereby granted, free of charge, to any person
28 * obtaining a copy of this software and associated documentation 28 * obtaining a copy of this software and associated documentation
29 * files (the "Software"), to deal in the Software without 29 * files (the "Software"), to deal in the Software without
30 * restriction, including without limitation the rights to use 30 * restriction, including without limitation the rights to use,
31 * copy, modify, merge, publish, distribute, sublicense, and/or 31 * copy, modify, merge, publish, distribute, sublicense, and/or
32 * sell copies of the Software, and to permit persons to whom the 32 * sell copies of the Software, and to permit persons to whom the
33 * Software is furnished to do so, subject to the following 33 * Software is furnished to do so, subject to the following
@@ -36,11 +36,11 @@
36 * The above copyright notice and this permission notice shall be 36 * The above copyright notice and this permission notice shall be
37 * included in all copies or substantial portions of the Software. 37 * included in all copies or substantial portions of the Software.
38 * 38 *
39 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 39 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46 * OTHER DEALINGS IN THE SOFTWARE. 46 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/orion5x-linkstation-lschl.dts b/arch/arm/boot/dts/orion5x-linkstation-lschl.dts
index ea6c881634b9..ee751995c8d0 100644
--- a/arch/arm/boot/dts/orion5x-linkstation-lschl.dts
+++ b/arch/arm/boot/dts/orion5x-linkstation-lschl.dts
@@ -15,17 +15,17 @@
15 * published by the Free Software Foundation; either version 2 of the 15 * published by the Free Software Foundation; either version 2 of the
16 * License, or (at your option) any later version. 16 * License, or (at your option) any later version.
17 * 17 *
18 * This file is distributed in the hope that it will be useful 18 * This file is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details. 21 * GNU General Public License for more details.
22 * 22 *
23 * Or, alternatively 23 * Or, alternatively,
24 * 24 *
25 * b) Permission is hereby granted, free of charge, to any person 25 * b) Permission is hereby granted, free of charge, to any person
26 * obtaining a copy of this software and associated documentation 26 * obtaining a copy of this software and associated documentation
27 * files (the "Software"), to deal in the Software without 27 * files (the "Software"), to deal in the Software without
28 * restriction, including without limitation the rights to use 28 * restriction, including without limitation the rights to use,
29 * copy, modify, merge, publish, distribute, sublicense, and/or 29 * copy, modify, merge, publish, distribute, sublicense, and/or
30 * sell copies of the Software, and to permit persons to whom the 30 * sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following 31 * Software is furnished to do so, subject to the following
@@ -34,11 +34,11 @@
34 * The above copyright notice and this permission notice shall be 34 * The above copyright notice and this permission notice shall be
35 * included in all copies or substantial portions of the Software. 35 * included in all copies or substantial portions of the Software.
36 * 36 *
37 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 37 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 * OTHER DEALINGS IN THE SOFTWARE. 44 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/orion5x-linkstation-lsgl.dts b/arch/arm/boot/dts/orion5x-linkstation-lsgl.dts
index 51dc734cd5b9..9f6fedd39170 100644
--- a/arch/arm/boot/dts/orion5x-linkstation-lsgl.dts
+++ b/arch/arm/boot/dts/orion5x-linkstation-lsgl.dts
@@ -18,17 +18,17 @@
18 * published by the Free Software Foundation; either version 2 of the 18 * published by the Free Software Foundation; either version 2 of the
19 * License, or (at your option) any later version. 19 * License, or (at your option) any later version.
20 * 20 *
21 * This file is distributed in the hope that it will be useful 21 * This file is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of 22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details. 24 * GNU General Public License for more details.
25 * 25 *
26 * Or, alternatively 26 * Or, alternatively,
27 * 27 *
28 * b) Permission is hereby granted, free of charge, to any person 28 * b) Permission is hereby granted, free of charge, to any person
29 * obtaining a copy of this software and associated documentation 29 * obtaining a copy of this software and associated documentation
30 * files (the "Software"), to deal in the Software without 30 * files (the "Software"), to deal in the Software without
31 * restriction, including without limitation the rights to use 31 * restriction, including without limitation the rights to use,
32 * copy, modify, merge, publish, distribute, sublicense, and/or 32 * copy, modify, merge, publish, distribute, sublicense, and/or
33 * sell copies of the Software, and to permit persons to whom the 33 * sell copies of the Software, and to permit persons to whom the
34 * Software is furnished to do so, subject to the following 34 * Software is furnished to do so, subject to the following
@@ -37,11 +37,11 @@
37 * The above copyright notice and this permission notice shall be 37 * The above copyright notice and this permission notice shall be
38 * included in all copies or substantial portions of the Software. 38 * included in all copies or substantial portions of the Software.
39 * 39 *
40 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 40 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
41 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 41 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
42 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 42 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
43 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 43 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
44 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 44 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
45 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 45 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
46 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 46 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
47 * OTHER DEALINGS IN THE SOFTWARE. 47 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts b/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts
index 0eead400f427..7f77ce8cc1fc 100644
--- a/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts
+++ b/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts
@@ -14,17 +14,17 @@
14 * published by the Free Software Foundation; either version 2 of the 14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version. 15 * License, or (at your option) any later version.
16 * 16 *
17 * This file is distributed in the hope that it will be useful 17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details. 20 * GNU General Public License for more details.
21 * 21 *
22 * Or, alternatively 22 * Or, alternatively,
23 * 23 *
24 * b) Permission is hereby granted, free of charge, to any person 24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation 25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without 26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use 27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or 28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the 29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following 30 * Software is furnished to do so, subject to the following
@@ -33,11 +33,11 @@
33 * The above copyright notice and this permission notice shall be 33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software. 34 * included in all copies or substantial portions of the Software.
35 * 35 *
36 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/orion5x-linkstation.dtsi b/arch/arm/boot/dts/orion5x-linkstation.dtsi
index ed456ab35fd8..e9991c83d7b7 100644
--- a/arch/arm/boot/dts/orion5x-linkstation.dtsi
+++ b/arch/arm/boot/dts/orion5x-linkstation.dtsi
@@ -14,17 +14,17 @@
14 * published by the Free Software Foundation; either version 2 of the 14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version. 15 * License, or (at your option) any later version.
16 * 16 *
17 * This file is distributed in the hope that it will be useful 17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details. 20 * GNU General Public License for more details.
21 * 21 *
22 * Or, alternatively 22 * Or, alternatively,
23 * 23 *
24 * b) Permission is hereby granted, free of charge, to any person 24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation 25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without 26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use 27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or 28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the 29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following 30 * Software is furnished to do so, subject to the following
@@ -33,11 +33,11 @@
33 * The above copyright notice and this permission notice shall be 33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software. 34 * included in all copies or substantial portions of the Software.
35 * 35 *
36 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/orion5x-lswsgl.dts b/arch/arm/boot/dts/orion5x-lswsgl.dts
index 6b47a52ceb9c..ea966ec03dd0 100644
--- a/arch/arm/boot/dts/orion5x-lswsgl.dts
+++ b/arch/arm/boot/dts/orion5x-lswsgl.dts
@@ -14,17 +14,17 @@
14 * published by the Free Software Foundation; either version 2 of the 14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version. 15 * License, or (at your option) any later version.
16 * 16 *
17 * This file is distributed in the hope that it will be useful 17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details. 20 * GNU General Public License for more details.
21 * 21 *
22 * Or, alternatively 22 * Or, alternatively,
23 * 23 *
24 * b) Permission is hereby granted, free of charge, to any person 24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation 25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without 26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use 27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or 28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the 29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following 30 * Software is furnished to do so, subject to the following
@@ -33,11 +33,11 @@
33 * The above copyright notice and this permission notice shall be 33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software. 34 * included in all copies or substantial portions of the Software.
35 * 35 *
36 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/ox810se.dtsi b/arch/arm/boot/dts/ox810se.dtsi
index ce13705c38d4..46aa6db8353a 100644
--- a/arch/arm/boot/dts/ox810se.dtsi
+++ b/arch/arm/boot/dts/ox810se.dtsi
@@ -7,6 +7,8 @@
7 */ 7 */
8 8
9/include/ "skeleton.dtsi" 9/include/ "skeleton.dtsi"
10#include <dt-bindings/clock/oxsemi,ox810se.h>
11#include <dt-bindings/reset/oxsemi,ox810se.h>
10 12
11/ { 13/ {
12 compatible = "oxsemi,ox810se"; 14 compatible = "oxsemi,ox810se";
@@ -242,7 +244,7 @@
242 current-speed = <115200>; 244 current-speed = <115200>;
243 no-loopback-test; 245 no-loopback-test;
244 status = "disabled"; 246 status = "disabled";
245 resets = <&reset 17>; 247 resets = <&reset RESET_UART1>;
246 }; 248 };
247 249
248 uart1: serial@300000 { 250 uart1: serial@300000 {
@@ -256,7 +258,7 @@
256 current-speed = <115200>; 258 current-speed = <115200>;
257 no-loopback-test; 259 no-loopback-test;
258 status = "disabled"; 260 status = "disabled";
259 resets = <&reset 18>; 261 resets = <&reset RESET_UART2>;
260 }; 262 };
261 263
262 uart2: serial@900000 { 264 uart2: serial@900000 {
@@ -270,7 +272,7 @@
270 current-speed = <115200>; 272 current-speed = <115200>;
271 no-loopback-test; 273 no-loopback-test;
272 status = "disabled"; 274 status = "disabled";
273 resets = <&reset 22>; 275 resets = <&reset RESET_UART3>;
274 }; 276 };
275 277
276 uart3: serial@a00000 { 278 uart3: serial@a00000 {
@@ -284,7 +286,7 @@
284 current-speed = <115200>; 286 current-speed = <115200>;
285 no-loopback-test; 287 no-loopback-test;
286 status = "disabled"; 288 status = "disabled";
287 resets = <&reset 23>; 289 resets = <&reset RESET_UART4>;
288 }; 290 };
289 }; 291 };
290 292
diff --git a/arch/arm/boot/dts/ox820.dtsi b/arch/arm/boot/dts/ox820.dtsi
index e40f282a023a..459207536a46 100644
--- a/arch/arm/boot/dts/ox820.dtsi
+++ b/arch/arm/boot/dts/ox820.dtsi
@@ -8,6 +8,8 @@
8 8
9/include/ "skeleton.dtsi" 9/include/ "skeleton.dtsi"
10#include <dt-bindings/interrupt-controller/arm-gic.h> 10#include <dt-bindings/interrupt-controller/arm-gic.h>
11#include <dt-bindings/clock/oxsemi,ox820.h>
12#include <dt-bindings/reset/oxsemi,ox820.h>
11 13
12/ { 14/ {
13 compatible = "oxsemi,ox820"; 15 compatible = "oxsemi,ox820";
@@ -83,8 +85,8 @@
83 nandc: nand-controller@41000000 { 85 nandc: nand-controller@41000000 {
84 compatible = "oxsemi,ox820-nand"; 86 compatible = "oxsemi,ox820-nand";
85 reg = <0x41000000 0x100000>; 87 reg = <0x41000000 0x100000>;
86 clocks = <&stdclk 11>; 88 clocks = <&stdclk CLK_820_NAND>;
87 resets = <&reset 15>; 89 resets = <&reset RESET_NAND>;
88 #address-cells = <1>; 90 #address-cells = <1>;
89 #size-cells = <0>; 91 #size-cells = <0>;
90 status = "disabled"; 92 status = "disabled";
@@ -99,9 +101,9 @@
99 mac-address = [000000000000]; /* Filled in by U-Boot */ 101 mac-address = [000000000000]; /* Filled in by U-Boot */
100 phy-mode = "rgmii"; 102 phy-mode = "rgmii";
101 103
102 clocks = <&stdclk 9>, <&gmacclk>; 104 clocks = <&stdclk CLK_820_ETHA>, <&gmacclk>;
103 clock-names = "gmac", "stmmaceth"; 105 clock-names = "gmac", "stmmaceth";
104 resets = <&reset 6>; 106 resets = <&reset RESET_MAC>;
105 107
106 /* Regmap for sys registers */ 108 /* Regmap for sys registers */
107 oxsemi,sys-ctrl = <&sys>; 109 oxsemi,sys-ctrl = <&sys>;
@@ -208,7 +210,7 @@
208 no-loopback-test; 210 no-loopback-test;
209 status = "disabled"; 211 status = "disabled";
210 clocks = <&sysclk>; 212 clocks = <&sysclk>;
211 resets = <&reset 17>; 213 resets = <&reset RESET_UART1>;
212 }; 214 };
213 215
214 uart1: serial@300000 { 216 uart1: serial@300000 {
@@ -222,7 +224,7 @@
222 no-loopback-test; 224 no-loopback-test;
223 status = "disabled"; 225 status = "disabled";
224 clocks = <&sysclk>; 226 clocks = <&sysclk>;
225 resets = <&reset 18>; 227 resets = <&reset RESET_UART2>;
226 }; 228 };
227 229
228 rps@400000 { 230 rps@400000 {
diff --git a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
index 4b8872cc8bf9..39d9e6ddefed 100644
--- a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
+++ b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
@@ -220,6 +220,14 @@
220 function = "ebi2"; 220 function = "ebi2";
221 }; 221 };
222 }; 222 };
223
224 /* Interrupt line for the KXSD9 accelerometer */
225 dragon_kxsd9_gpios: kxsd9 {
226 irq {
227 pins = "gpio57"; /* IRQ line */
228 bias-pull-up;
229 };
230 };
223 }; 231 };
224 232
225 qcom,ssbi@500000 { 233 qcom,ssbi@500000 {
@@ -272,6 +280,15 @@
272 power-source = <PM8058_GPIO_S3>; 280 power-source = <PM8058_GPIO_S3>;
273 }; 281 };
274 }; 282 };
283 dragon_mpu3050_gpios: mpu3050-gpios {
284 pinconf {
285 pins = "gpio17";
286 function = "normal";
287 input-enable;
288 bias-disable;
289 power-source = <PM8058_GPIO_S3>;
290 };
291 };
275 dragon_sdcc3_gpios: sdcc3-gpios { 292 dragon_sdcc3_gpios: sdcc3-gpios {
276 pinconf { 293 pinconf {
277 pins = "gpio22"; 294 pins = "gpio22";
@@ -369,8 +386,8 @@
369 ak8975@0c { 386 ak8975@0c {
370 compatible = "asahi-kasei,ak8975"; 387 compatible = "asahi-kasei,ak8975";
371 reg = <0x0c>; 388 reg = <0x0c>;
372 /* GPIO33 has interrupt 224 on the PM8058 */ 389 /* FIXME: GPIO33 has interrupt 224 on the PM8058 */
373 interrupt-parent = <&pm8058_gpio>; 390 interrupt-parent = <&pm8058>;
374 interrupts = <224 IRQ_TYPE_EDGE_RISING>; 391 interrupts = <224 IRQ_TYPE_EDGE_RISING>;
375 pinctrl-names = "default"; 392 pinctrl-names = "default";
376 pinctrl-0 = <&dragon_ak8975_gpios>; 393 pinctrl-0 = <&dragon_ak8975_gpios>;
@@ -380,8 +397,8 @@
380 bmp085@77 { 397 bmp085@77 {
381 compatible = "bosch,bmp085"; 398 compatible = "bosch,bmp085";
382 reg = <0x77>; 399 reg = <0x77>;
383 /* GPIO16 has interrupt 207 on the PM8058 */ 400 /* FIXME: GPIO16 has interrupt 207 on the PM8058 */
384 interrupt-parent = <&pm8058_gpio>; 401 interrupt-parent = <&pm8058>;
385 interrupts = <207 IRQ_TYPE_EDGE_RISING>; 402 interrupts = <207 IRQ_TYPE_EDGE_RISING>;
386 reset-gpios = <&tlmm 86 GPIO_ACTIVE_LOW>; 403 reset-gpios = <&tlmm 86 GPIO_ACTIVE_LOW>;
387 pinctrl-names = "default"; 404 pinctrl-names = "default";
@@ -389,6 +406,41 @@
389 vddd-supply = <&pm8058_lvs0>; // 1.8V 406 vddd-supply = <&pm8058_lvs0>; // 1.8V
390 vdda-supply = <&pm8058_l14>; // 2.85V 407 vdda-supply = <&pm8058_l14>; // 2.85V
391 }; 408 };
409 mpu3050@68 {
410 compatible = "invensense,mpu3050";
411 reg = <0x68>;
412 /*
413 * GPIO17 has interrupt 208 on the
414 * PM8058, it is pulled high by a 10k
415 * resistor to VLOGIC so needs to be
416 * active low/falling edge.
417 */
418 interrupts-extended = <&pm8058 208 IRQ_TYPE_EDGE_FALLING>;
419 pinctrl-names = "default";
420 pinctrl-0 = <&dragon_mpu3050_gpios>;
421 vlogic-supply = <&pm8058_lvs0>; // 1.8V
422 vdd-supply = <&pm8058_l14>; // 2.85V
423
424 /*
425 * The MPU-3050 acts as a hub for the
426 * accelerometer.
427 */
428 i2c-gate {
429 #address-cells = <1>;
430 #size-cells = <0>;
431
432 kxsd9@18 {
433 compatible = "kionix,kxsd9";
434 reg = <0x18>;
435 interrupt-parent = <&tlmm>;
436 interrupts = <57 IRQ_TYPE_EDGE_FALLING>;
437 pinctrl-names = "default";
438 pinctrl-0 = <&dragon_kxsd9_gpios>;
439 iovdd-supply = <&pm8058_lvs0>; // 1.8V
440 vdd-supply = <&pm8058_l14>; // 2.85V
441 };
442 };
443 };
392 }; 444 };
393 }; 445 };
394 446
@@ -412,7 +464,7 @@
412 * The second interrupt is the PME interrupt 464 * The second interrupt is the PME interrupt
413 * for network wakeup, connected to the TLMM. 465 * for network wakeup, connected to the TLMM.
414 */ 466 */
415 interrupts-extended = <&pmicintc 198 IRQ_TYPE_EDGE_FALLING>, 467 interrupts-extended = <&pm8058 198 IRQ_TYPE_EDGE_FALLING>,
416 <&tlmm 29 IRQ_TYPE_EDGE_RISING>; 468 <&tlmm 29 IRQ_TYPE_EDGE_RISING>;
417 reset-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; 469 reset-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>;
418 vdd33a-supply = <&dragon_veth>; 470 vdd33a-supply = <&dragon_veth>;
diff --git a/arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dts b/arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dts
index 39ae2bc8cb08..8f5de029bca9 100644
--- a/arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dts
+++ b/arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dts
@@ -39,6 +39,17 @@
39 39
40 }; 40 };
41 41
42 hdmi-out {
43 compatible = "hdmi-connector";
44 type = "a";
45
46 port {
47 hdmi_con: endpoint {
48 remote-endpoint = <&hdmi_out>;
49 };
50 };
51 };
52
42 soc { 53 soc {
43 rpm@108000 { 54 rpm@108000 {
44 regulators { 55 regulators {
@@ -74,6 +85,14 @@
74 bias-pull-down; 85 bias-pull-down;
75 }; 86 };
76 87
88 s2 {
89 regulator-min-microvolt = <1300000>;
90 regulator-max-microvolt = <1300000>;
91 qcom,switch-mode-frequency = <1600000>;
92 bias-pull-down;
93 regulator-always-on;
94 };
95
77 s3 { 96 s3 {
78 regulator-min-microvolt = <1000000>; 97 regulator-min-microvolt = <1000000>;
79 regulator-max-microvolt = <1400000>; 98 regulator-max-microvolt = <1400000>;
@@ -121,6 +140,16 @@
121 bias-pull-down; 140 bias-pull-down;
122 }; 141 };
123 142
143 /**
144 * 1.8v required on LS expansion
145 * for mezzanine boards
146 */
147 l15 {
148 regulator-min-microvolt = <1800000>;
149 regulator-max-microvolt = <1800000>;
150 regulator-always-on;
151 };
152
124 l23 { 153 l23 {
125 regulator-min-microvolt = <1700000>; 154 regulator-min-microvolt = <1700000>;
126 regulator-max-microvolt = <1900000>; 155 regulator-max-microvolt = <1900000>;
@@ -347,5 +376,45 @@
347 cd-gpios = <&tlmm_pinmux 26 GPIO_ACTIVE_HIGH>; 376 cd-gpios = <&tlmm_pinmux 26 GPIO_ACTIVE_HIGH>;
348 }; 377 };
349 }; 378 };
379
380 riva-pil@3204000 {
381 status = "okay";
382
383 pinctrl-names = "default";
384 pinctrl-0 = <&riva_wlan_pin_a>, <&riva_bt_pin_a>, <&riva_fm_pin_a>;
385 };
386
387 hdmi-tx@4a00000 {
388 status = "okay";
389 core-vdda-supply = <&pm8921_hdmi_switch>;
390 hdmi-mux-supply = <&vcc3v3>;
391
392 hpd-gpio = <&tlmm_pinmux 72 GPIO_ACTIVE_HIGH>;
393
394 ports {
395 port@1 {
396 endpoint {
397 remote-endpoint = <&hdmi_con>;
398 };
399 };
400 };
401 };
402
403 hdmi-phy@4a00400 {
404 status = "okay";
405 core-vdda-supply = <&pm8921_hdmi_switch>;
406 };
407
408 mdp@5100000 {
409 status = "okay";
410
411 ports {
412 port@3 {
413 endpoint {
414 remote-endpoint = <&hdmi_in>;
415 };
416 };
417 };
418 };
350 }; 419 };
351}; 420};
diff --git a/arch/arm/boot/dts/qcom-apq8064-ifc6410.dts b/arch/arm/boot/dts/qcom-apq8064-ifc6410.dts
index 3d37cab3b9a9..881ce707311a 100644
--- a/arch/arm/boot/dts/qcom-apq8064-ifc6410.dts
+++ b/arch/arm/boot/dts/qcom-apq8064-ifc6410.dts
@@ -75,25 +75,6 @@
75 bias-disable; 75 bias-disable;
76 }; 76 };
77 }; 77 };
78
79 hdmi_pinctrl: hdmi-pinctrl {
80 mux {
81 pins = "gpio70", "gpio71", "gpio72";
82 function = "hdmi";
83 };
84
85 pinconf_ddc {
86 pins = "gpio70", "gpio71";
87 bias-pull-up;
88 drive-strength = <2>;
89 };
90
91 pinconf_hpd {
92 pins = "gpio72";
93 bias-pull-down;
94 drive-strength = <16>;
95 };
96 };
97 }; 78 };
98 79
99 rpm@108000 { 80 rpm@108000 {
@@ -368,9 +349,6 @@
368 349
369 hpd-gpios = <&tlmm_pinmux 72 GPIO_ACTIVE_HIGH>; 350 hpd-gpios = <&tlmm_pinmux 72 GPIO_ACTIVE_HIGH>;
370 351
371 pinctrl-names = "default";
372 pinctrl-0 = <&hdmi_pinctrl>;
373
374 ports { 352 ports {
375 port@0 { 353 port@0 {
376 endpoint { 354 endpoint {
diff --git a/arch/arm/boot/dts/qcom-apq8064-pins.dtsi b/arch/arm/boot/dts/qcom-apq8064-pins.dtsi
index 6b801e7e57a2..173ab7c299ce 100644
--- a/arch/arm/boot/dts/qcom-apq8064-pins.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8064-pins.dtsi
@@ -284,4 +284,41 @@
284 bias-disable = <0>; 284 bias-disable = <0>;
285 }; 285 };
286 }; 286 };
287
288 riva_fm_pin_a: riva-fm-active {
289 pins = "gpio14", "gpio15";
290 function = "riva_fm";
291 };
292
293 riva_bt_pin_a: riva-bt-active {
294 pins = "gpio16", "gpio17";
295 function = "riva_bt";
296 };
297
298 riva_wlan_pin_a: riva-wlan-active {
299 pins = "gpio64", "gpio65", "gpio66", "gpio67", "gpio68";
300 function = "riva_wlan";
301
302 drive-strength = <6>;
303 bias-pull-down;
304 };
305
306 hdmi_pinctrl: hdmi-pinctrl {
307 mux {
308 pins = "gpio70", "gpio71", "gpio72";
309 function = "hdmi";
310 };
311
312 pinconf_ddc {
313 pins = "gpio70", "gpio71";
314 bias-pull-up;
315 drive-strength = <2>;
316 };
317
318 pinconf_hpd {
319 pins = "gpio72";
320 bias-pull-down;
321 drive-strength = <16>;
322 };
323 };
287}; 324};
diff --git a/arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts b/arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts
index ebd675ca94b4..a34ba3555454 100644
--- a/arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts
+++ b/arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts
@@ -390,5 +390,12 @@
390 pinctrl-0 = <&sdcc3_pins>, <&sdcc3_cd_pin_a>; 390 pinctrl-0 = <&sdcc3_pins>, <&sdcc3_cd_pin_a>;
391 }; 391 };
392 }; 392 };
393
394 riva-pil@3204000 {
395 status = "okay";
396
397 pinctrl-names = "default";
398 pinctrl-0 = <&riva_wlan_pin_a>, <&riva_bt_pin_a>, <&riva_fm_pin_a>;
399 };
393 }; 400 };
394}; 401};
diff --git a/arch/arm/boot/dts/qcom-apq8064.dtsi b/arch/arm/boot/dts/qcom-apq8064.dtsi
index 407a4610f4a7..14a6f5ed02de 100644
--- a/arch/arm/boot/dts/qcom-apq8064.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8064.dtsi
@@ -22,13 +22,18 @@
22 reg = <0x80000000 0x200000>; 22 reg = <0x80000000 0x200000>;
23 no-map; 23 no-map;
24 }; 24 };
25
26 wcnss_mem: wcnss@8f000000 {
27 reg = <0x8f000000 0x700000>;
28 no-map;
29 };
25 }; 30 };
26 31
27 cpus { 32 cpus {
28 #address-cells = <1>; 33 #address-cells = <1>;
29 #size-cells = <0>; 34 #size-cells = <0>;
30 35
31 cpu@0 { 36 CPU0: cpu@0 {
32 compatible = "qcom,krait"; 37 compatible = "qcom,krait";
33 enable-method = "qcom,kpss-acc-v1"; 38 enable-method = "qcom,kpss-acc-v1";
34 device_type = "cpu"; 39 device_type = "cpu";
@@ -39,7 +44,7 @@
39 cpu-idle-states = <&CPU_SPC>; 44 cpu-idle-states = <&CPU_SPC>;
40 }; 45 };
41 46
42 cpu@1 { 47 CPU1: cpu@1 {
43 compatible = "qcom,krait"; 48 compatible = "qcom,krait";
44 enable-method = "qcom,kpss-acc-v1"; 49 enable-method = "qcom,kpss-acc-v1";
45 device_type = "cpu"; 50 device_type = "cpu";
@@ -50,7 +55,7 @@
50 cpu-idle-states = <&CPU_SPC>; 55 cpu-idle-states = <&CPU_SPC>;
51 }; 56 };
52 57
53 cpu@2 { 58 CPU2: cpu@2 {
54 compatible = "qcom,krait"; 59 compatible = "qcom,krait";
55 enable-method = "qcom,kpss-acc-v1"; 60 enable-method = "qcom,kpss-acc-v1";
56 device_type = "cpu"; 61 device_type = "cpu";
@@ -61,7 +66,7 @@
61 cpu-idle-states = <&CPU_SPC>; 66 cpu-idle-states = <&CPU_SPC>;
62 }; 67 };
63 68
64 cpu@3 { 69 CPU3: cpu@3 {
65 compatible = "qcom,krait"; 70 compatible = "qcom,krait";
66 enable-method = "qcom,kpss-acc-v1"; 71 enable-method = "qcom,kpss-acc-v1";
67 device_type = "cpu"; 72 device_type = "cpu";
@@ -180,7 +185,7 @@
180 }; 185 };
181 186
182 clocks { 187 clocks {
183 cxo_board { 188 cxo_board: cxo_board {
184 compatible = "fixed-clock"; 189 compatible = "fixed-clock";
185 #clock-cells = <0>; 190 #clock-cells = <0>;
186 clock-frequency = <19200000>; 191 clock-frequency = <19200000>;
@@ -631,6 +636,33 @@
631 clock-names = "core"; 636 clock-names = "core";
632 }; 637 };
633 638
639 ssbi@c00000 {
640 compatible = "qcom,ssbi";
641 reg = <0x00c00000 0x1000>;
642 qcom,controller-type = "pmic-arbiter";
643
644 pm8821: pmic@1 {
645 compatible = "qcom,pm8821";
646 interrupt-parent = <&tlmm_pinmux>;
647 interrupts = <76 IRQ_TYPE_LEVEL_LOW>;
648 #interrupt-cells = <2>;
649 interrupt-controller;
650 #address-cells = <1>;
651 #size-cells = <0>;
652
653 pm8821_mpps: mpps@50 {
654 compatible = "qcom,pm8821-mpp", "qcom,ssbi-mpp";
655 reg = <0x50>;
656 interrupts = <24 IRQ_TYPE_NONE>,
657 <25 IRQ_TYPE_NONE>,
658 <26 IRQ_TYPE_NONE>,
659 <27 IRQ_TYPE_NONE>;
660 gpio-controller;
661 #gpio-cells = <2>;
662 };
663 };
664 };
665
634 qcom,ssbi@500000 { 666 qcom,ssbi@500000 {
635 compatible = "qcom,ssbi"; 667 compatible = "qcom,ssbi";
636 reg = <0x00500000 0x1000>; 668 reg = <0x00500000 0x1000>;
@@ -1327,6 +1359,8 @@
1327 1359
1328 hdmi: hdmi-tx@4a00000 { 1360 hdmi: hdmi-tx@4a00000 {
1329 compatible = "qcom,hdmi-tx-8960"; 1361 compatible = "qcom,hdmi-tx-8960";
1362 pinctrl-names = "default";
1363 pinctrl-0 = <&hdmi_pinctrl>;
1330 reg = <0x04a00000 0x2f0>; 1364 reg = <0x04a00000 0x2f0>;
1331 reg-names = "core_physical"; 1365 reg-names = "core_physical";
1332 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 1366 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
@@ -1420,6 +1454,249 @@
1420 }; 1454 };
1421 }; 1455 };
1422 }; 1456 };
1457
1458 riva: riva-pil@3204000 {
1459 compatible = "qcom,riva-pil";
1460
1461 reg = <0x03200800 0x1000>, <0x03202000 0x2000>, <0x03204000 0x100>;
1462 reg-names = "ccu", "dxe", "pmu";
1463
1464 interrupts-extended = <&intc GIC_SPI 199 IRQ_TYPE_EDGE_RISING>,
1465 <&wcnss_smsm 6 IRQ_TYPE_EDGE_RISING>;
1466 interrupt-names = "wdog", "fatal";
1467
1468 memory-region = <&wcnss_mem>;
1469
1470 vddcx-supply = <&pm8921_s3>;
1471 vddmx-supply = <&pm8921_l24>;
1472 vddpx-supply = <&pm8921_s4>;
1473
1474 status = "disabled";
1475
1476 iris {
1477 compatible = "qcom,wcn3660";
1478
1479 clocks = <&cxo_board>;
1480 clock-names = "xo";
1481
1482 vddxo-supply = <&pm8921_l4>;
1483 vddrfa-supply = <&pm8921_s2>;
1484 vddpa-supply = <&pm8921_l10>;
1485 vdddig-supply = <&pm8921_lvs2>;
1486 };
1487
1488 smd-edge {
1489 interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_RISING>;
1490
1491 qcom,ipc = <&l2cc 8 25>;
1492 qcom,smd-edge = <6>;
1493
1494 label = "riva";
1495
1496 wcnss {
1497 compatible = "qcom,wcnss";
1498 qcom,smd-channels = "WCNSS_CTRL";
1499
1500 qcom,mmio = <&riva>;
1501
1502 bt {
1503 compatible = "qcom,wcnss-bt";
1504 };
1505
1506 wifi {
1507 compatible = "qcom,wcnss-wlan";
1508
1509 interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>,
1510 <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
1511 interrupt-names = "tx", "rx";
1512
1513 qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
1514 qcom,smem-state-names = "tx-enable", "tx-rings-empty";
1515 };
1516 };
1517 };
1518 };
1519
1520 etb@1a01000 {
1521 compatible = "coresight-etb10", "arm,primecell";
1522 reg = <0x1a01000 0x1000>;
1523
1524 clocks = <&rpmcc RPM_QDSS_CLK>;
1525 clock-names = "apb_pclk";
1526
1527 port {
1528 etb_in: endpoint {
1529 slave-mode;
1530 remote-endpoint = <&replicator_out0>;
1531 };
1532 };
1533 };
1534
1535 tpiu@1a03000 {
1536 compatible = "arm,coresight-tpiu", "arm,primecell";
1537 reg = <0x1a03000 0x1000>;
1538
1539 clocks = <&rpmcc RPM_QDSS_CLK>;
1540 clock-names = "apb_pclk";
1541
1542 port {
1543 tpiu_in: endpoint {
1544 slave-mode;
1545 remote-endpoint = <&replicator_out1>;
1546 };
1547 };
1548 };
1549
1550 replicator {
1551 compatible = "arm,coresight-replicator";
1552
1553 clocks = <&rpmcc RPM_QDSS_CLK>;
1554 clock-names = "apb_pclk";
1555
1556 ports {
1557 #address-cells = <1>;
1558 #size-cells = <0>;
1559
1560 port@0 {
1561 reg = <0>;
1562 replicator_out0: endpoint {
1563 remote-endpoint = <&etb_in>;
1564 };
1565 };
1566 port@1 {
1567 reg = <1>;
1568 replicator_out1: endpoint {
1569 remote-endpoint = <&tpiu_in>;
1570 };
1571 };
1572 port@2 {
1573 reg = <0>;
1574 replicator_in: endpoint {
1575 slave-mode;
1576 remote-endpoint = <&funnel_out>;
1577 };
1578 };
1579 };
1580 };
1581
1582 funnel@1a04000 {
1583 compatible = "arm,coresight-funnel", "arm,primecell";
1584 reg = <0x1a04000 0x1000>;
1585
1586 clocks = <&rpmcc RPM_QDSS_CLK>;
1587 clock-names = "apb_pclk";
1588
1589 ports {
1590 #address-cells = <1>;
1591 #size-cells = <0>;
1592
1593 /*
1594 * Not described input ports:
1595 * 2 - connected to STM component
1596 * 3 - not-connected
1597 * 6 - not-connected
1598 * 7 - not-connected
1599 */
1600 port@0 {
1601 reg = <0>;
1602 funnel_in0: endpoint {
1603 slave-mode;
1604 remote-endpoint = <&etm0_out>;
1605 };
1606 };
1607 port@1 {
1608 reg = <1>;
1609 funnel_in1: endpoint {
1610 slave-mode;
1611 remote-endpoint = <&etm1_out>;
1612 };
1613 };
1614 port@4 {
1615 reg = <4>;
1616 funnel_in4: endpoint {
1617 slave-mode;
1618 remote-endpoint = <&etm2_out>;
1619 };
1620 };
1621 port@5 {
1622 reg = <5>;
1623 funnel_in5: endpoint {
1624 slave-mode;
1625 remote-endpoint = <&etm3_out>;
1626 };
1627 };
1628 port@8 {
1629 reg = <0>;
1630 funnel_out: endpoint {
1631 remote-endpoint = <&replicator_in>;
1632 };
1633 };
1634 };
1635 };
1636
1637 etm@1a1c000 {
1638 compatible = "arm,coresight-etm3x", "arm,primecell";
1639 reg = <0x1a1c000 0x1000>;
1640
1641 clocks = <&rpmcc RPM_QDSS_CLK>;
1642 clock-names = "apb_pclk";
1643
1644 cpu = <&CPU0>;
1645
1646 port {
1647 etm0_out: endpoint {
1648 remote-endpoint = <&funnel_in0>;
1649 };
1650 };
1651 };
1652
1653 etm@1a1d000 {
1654 compatible = "arm,coresight-etm3x", "arm,primecell";
1655 reg = <0x1a1d000 0x1000>;
1656
1657 clocks = <&rpmcc RPM_QDSS_CLK>;
1658 clock-names = "apb_pclk";
1659
1660 cpu = <&CPU1>;
1661
1662 port {
1663 etm1_out: endpoint {
1664 remote-endpoint = <&funnel_in1>;
1665 };
1666 };
1667 };
1668
1669 etm@1a1e000 {
1670 compatible = "arm,coresight-etm3x", "arm,primecell";
1671 reg = <0x1a1e000 0x1000>;
1672
1673 clocks = <&rpmcc RPM_QDSS_CLK>;
1674 clock-names = "apb_pclk";
1675
1676 cpu = <&CPU2>;
1677
1678 port {
1679 etm2_out: endpoint {
1680 remote-endpoint = <&funnel_in4>;
1681 };
1682 };
1683 };
1684
1685 etm@1a1f000 {
1686 compatible = "arm,coresight-etm3x", "arm,primecell";
1687 reg = <0x1a1f000 0x1000>;
1688
1689 clocks = <&rpmcc RPM_QDSS_CLK>;
1690 clock-names = "apb_pclk";
1691
1692 cpu = <&CPU3>;
1693
1694 port {
1695 etm3_out: endpoint {
1696 remote-endpoint = <&funnel_in5>;
1697 };
1698 };
1699 };
1423 }; 1700 };
1424}; 1701};
1425#include "qcom-apq8064-pins.dtsi" 1702#include "qcom-apq8064-pins.dtsi"
diff --git a/arch/arm/boot/dts/qcom-ipq8064.dtsi b/arch/arm/boot/dts/qcom-ipq8064.dtsi
index 2e375576ffd0..76f4e8921d58 100644
--- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
+++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi
@@ -65,13 +65,13 @@
65 cxo_board { 65 cxo_board {
66 compatible = "fixed-clock"; 66 compatible = "fixed-clock";
67 #clock-cells = <0>; 67 #clock-cells = <0>;
68 clock-frequency = <19200000>; 68 clock-frequency = <25000000>;
69 }; 69 };
70 70
71 pxo_board { 71 pxo_board {
72 compatible = "fixed-clock"; 72 compatible = "fixed-clock";
73 #clock-cells = <0>; 73 #clock-cells = <0>;
74 clock-frequency = <27000000>; 74 clock-frequency = <25000000>;
75 }; 75 };
76 76
77 sleep_clk: sleep_clk { 77 sleep_clk: sleep_clk {
diff --git a/arch/arm/boot/dts/qcom-msm8660-surf.dts b/arch/arm/boot/dts/qcom-msm8660-surf.dts
index 23de764558ab..1adc04978a47 100644
--- a/arch/arm/boot/dts/qcom-msm8660-surf.dts
+++ b/arch/arm/boot/dts/qcom-msm8660-surf.dts
@@ -48,7 +48,7 @@
48 }; 48 };
49}; 49};
50 50
51&pmicintc { 51&pm8058 {
52 keypad@148 { 52 keypad@148 {
53 linux,keymap = < 53 linux,keymap = <
54 MATRIX_KEY(0, 0, KEY_FN_F1) 54 MATRIX_KEY(0, 0, KEY_FN_F1)
diff --git a/arch/arm/boot/dts/qcom-msm8660.dtsi b/arch/arm/boot/dts/qcom-msm8660.dtsi
index 4d828f810746..91c9a62ae725 100644
--- a/arch/arm/boot/dts/qcom-msm8660.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8660.dtsi
@@ -163,7 +163,7 @@
163 reg = <0x500000 0x1000>; 163 reg = <0x500000 0x1000>;
164 qcom,controller-type = "pmic-arbiter"; 164 qcom,controller-type = "pmic-arbiter";
165 165
166 pmicintc: pmic@0 { 166 pm8058: pmic@0 {
167 compatible = "qcom,pm8058"; 167 compatible = "qcom,pm8058";
168 interrupt-parent = <&tlmm>; 168 interrupt-parent = <&tlmm>;
169 interrupts = <88 8>; 169 interrupts = <88 8>;
@@ -176,7 +176,7 @@
176 compatible = "qcom,pm8058-gpio", 176 compatible = "qcom,pm8058-gpio",
177 "qcom,ssbi-gpio"; 177 "qcom,ssbi-gpio";
178 reg = <0x150>; 178 reg = <0x150>;
179 interrupt-parent = <&pmicintc>; 179 interrupt-parent = <&pm8058>;
180 interrupts = <192 IRQ_TYPE_NONE>, 180 interrupts = <192 IRQ_TYPE_NONE>,
181 <193 IRQ_TYPE_NONE>, 181 <193 IRQ_TYPE_NONE>,
182 <194 IRQ_TYPE_NONE>, 182 <194 IRQ_TYPE_NONE>,
@@ -232,7 +232,7 @@
232 reg = <0x50>; 232 reg = <0x50>;
233 gpio-controller; 233 gpio-controller;
234 #gpio-cells = <2>; 234 #gpio-cells = <2>;
235 interrupt-parent = <&pmicintc>; 235 interrupt-parent = <&pm8058>;
236 interrupts = 236 interrupts =
237 <128 IRQ_TYPE_NONE>, 237 <128 IRQ_TYPE_NONE>,
238 <129 IRQ_TYPE_NONE>, 238 <129 IRQ_TYPE_NONE>,
@@ -251,7 +251,7 @@
251 pwrkey@1c { 251 pwrkey@1c {
252 compatible = "qcom,pm8058-pwrkey"; 252 compatible = "qcom,pm8058-pwrkey";
253 reg = <0x1c>; 253 reg = <0x1c>;
254 interrupt-parent = <&pmicintc>; 254 interrupt-parent = <&pm8058>;
255 interrupts = <50 1>, <51 1>; 255 interrupts = <50 1>, <51 1>;
256 debounce = <15625>; 256 debounce = <15625>;
257 pull-up; 257 pull-up;
@@ -260,7 +260,7 @@
260 keypad@148 { 260 keypad@148 {
261 compatible = "qcom,pm8058-keypad"; 261 compatible = "qcom,pm8058-keypad";
262 reg = <0x148>; 262 reg = <0x148>;
263 interrupt-parent = <&pmicintc>; 263 interrupt-parent = <&pm8058>;
264 interrupts = <74 1>, <75 1>; 264 interrupts = <74 1>, <75 1>;
265 debounce = <15>; 265 debounce = <15>;
266 scan-delay = <32>; 266 scan-delay = <32>;
@@ -270,7 +270,7 @@
270 rtc@1e8 { 270 rtc@1e8 {
271 compatible = "qcom,pm8058-rtc"; 271 compatible = "qcom,pm8058-rtc";
272 reg = <0x1e8>; 272 reg = <0x1e8>;
273 interrupt-parent = <&pmicintc>; 273 interrupt-parent = <&pm8058>;
274 interrupts = <39 1>; 274 interrupts = <39 1>;
275 allow-set-time; 275 allow-set-time;
276 }; 276 };
diff --git a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
index e7c1577d56f4..96c853bab8ba 100644
--- a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
@@ -413,6 +413,14 @@
413 dma-controller@f9944000 { 413 dma-controller@f9944000 {
414 qcom,controlled-remotely; 414 qcom,controlled-remotely;
415 }; 415 };
416
417 usb-phy@f9a55000 {
418 status = "ok";
419 };
420
421 usb@f9a55000 {
422 status = "ok";
423 };
416}; 424};
417 425
418&spmi_bus { 426&spmi_bus {
diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
index 49d579f28865..d3e1a61b8671 100644
--- a/arch/arm/boot/dts/qcom-msm8974.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
@@ -3,6 +3,7 @@
3#include <dt-bindings/interrupt-controller/arm-gic.h> 3#include <dt-bindings/interrupt-controller/arm-gic.h>
4#include <dt-bindings/clock/qcom,gcc-msm8974.h> 4#include <dt-bindings/clock/qcom,gcc-msm8974.h>
5#include <dt-bindings/gpio/gpio.h> 5#include <dt-bindings/gpio/gpio.h>
6#include <dt-bindings/reset/qcom,gcc-msm8974.h>
6#include "skeleton.dtsi" 7#include "skeleton.dtsi"
7 8
8/ { 9/ {
@@ -30,7 +31,7 @@
30 no-map; 31 no-map;
31 }; 32 };
32 33
33 adsp@0dc00000 { 34 adsp_region: adsp@0dc00000 {
34 reg = <0x0dc00000 0x1900000>; 35 reg = <0x0dc00000 0x1900000>;
35 no-map; 36 no-map;
36 }; 37 };
@@ -59,11 +60,6 @@
59 reg = <0x0fd80000 0x180000>; 60 reg = <0x0fd80000 0x180000>;
60 no-map; 61 no-map;
61 }; 62 };
62
63 unused@0ff00000 {
64 reg = <0x0ff00000 0x10100000>;
65 no-map;
66 };
67 }; 63 };
68 64
69 cpus { 65 cpus {
@@ -242,6 +238,24 @@
242 clock-frequency = <19200000>; 238 clock-frequency = <19200000>;
243 }; 239 };
244 240
241 adsp-pil {
242 compatible = "qcom,msm8974-adsp-pil";
243
244 interrupts-extended = <&intc 0 162 IRQ_TYPE_EDGE_RISING>,
245 <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
246 <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
247 <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
248 <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
249 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
250
251 cx-supply = <&pm8841_s2>;
252
253 memory-region = <&adsp_region>;
254
255 qcom,smem-states = <&adsp_smp2p_out 0>;
256 qcom,smem-state-names = "stop";
257 };
258
245 smem { 259 smem {
246 compatible = "qcom,smem"; 260 compatible = "qcom,smem";
247 261
@@ -251,6 +265,31 @@
251 hwlocks = <&tcsr_mutex 3>; 265 hwlocks = <&tcsr_mutex 3>;
252 }; 266 };
253 267
268 smp2p-adsp {
269 compatible = "qcom,smp2p";
270 qcom,smem = <443>, <429>;
271
272 interrupt-parent = <&intc>;
273 interrupts = <0 158 IRQ_TYPE_EDGE_RISING>;
274
275 qcom,ipc = <&apcs 8 10>;
276
277 qcom,local-pid = <0>;
278 qcom,remote-pid = <2>;
279
280 adsp_smp2p_out: master-kernel {
281 qcom,entry-name = "master-kernel";
282 #qcom,smem-state-cells = <1>;
283 };
284
285 adsp_smp2p_in: slave-kernel {
286 qcom,entry-name = "slave-kernel";
287
288 interrupt-controller;
289 #interrupt-cells = <2>;
290 };
291 };
292
254 smp2p-modem { 293 smp2p-modem {
255 compatible = "qcom,smp2p"; 294 compatible = "qcom,smp2p";
256 qcom,smem = <435>, <428>; 295 qcom,smem = <435>, <428>;
@@ -655,11 +694,56 @@
655 #dma-cells = <1>; 694 #dma-cells = <1>;
656 qcom,ee = <0>; 695 qcom,ee = <0>;
657 }; 696 };
697
698 usb1_phy: usb-phy@f9a55000 {
699 compatible = "qcom,usb-otg-snps";
700
701 reg = <0xf9a55000 0x400>;
702 interrupts-extended = <&intc 0 134 0>, <&intc 0 140 0>,
703 <&spmi_bus 0 0x9 0 0>;
704 interrupt-names = "core_irq", "async_irq", "pmic_id_irq";
705
706 vddcx-supply = <&pm8841_s2>;
707 v3p3-supply = <&pm8941_l24>;
708 v1p8-supply = <&pm8941_l6>;
709
710 dr_mode = "otg";
711 qcom,phy-init-sequence = <0x63 0x81 0xfffffff>;
712 qcom,otg-control = <1>;
713 qcom,phy-num = <0>;
714
715 resets = <&gcc GCC_USB2A_PHY_BCR>, <&gcc GCC_USB_HS_BCR>;
716 reset-names = "phy", "link";
717
718 clocks = <&gcc GCC_XO_CLK>, <&gcc GCC_USB_HS_SYSTEM_CLK>,
719 <&gcc GCC_USB_HS_AHB_CLK>;
720 clock-names = "phy", "core", "iface";
721
722 status = "disabled";
723 };
724
725 usb@f9a55000 {
726 compatible = "qcom,ci-hdrc";
727 reg = <0xf9a55000 0x400>;
728 dr_mode = "otg";
729 interrupts = <0 134 0>, <0 140 0>;
730 interrupt-names = "core_irq", "async_irq";
731 usb-phy = <&usb1_phy>;
732
733 status = "disabled";
734 };
658 }; 735 };
659 736
660 smd { 737 smd {
661 compatible = "qcom,smd"; 738 compatible = "qcom,smd";
662 739
740 adsp {
741 interrupts = <0 156 IRQ_TYPE_EDGE_RISING>;
742
743 qcom,ipc = <&apcs 8 8>;
744 qcom,smd-edge = <1>;
745 };
746
663 modem { 747 modem {
664 interrupts = <0 25 IRQ_TYPE_EDGE_RISING>; 748 interrupts = <0 25 IRQ_TYPE_EDGE_RISING>;
665 749
diff --git a/arch/arm/boot/dts/r7s72100-rskrza1.dts b/arch/arm/boot/dts/r7s72100-rskrza1.dts
index dd4418195ca6..02b59c5b3c53 100644
--- a/arch/arm/boot/dts/r7s72100-rskrza1.dts
+++ b/arch/arm/boot/dts/r7s72100-rskrza1.dts
@@ -61,6 +61,14 @@
61 status = "okay"; 61 status = "okay";
62}; 62};
63 63
64&ostm0 {
65 status = "okay";
66};
67
68&ostm1 {
69 status = "okay";
70};
71
64&scif2 { 72&scif2 {
65 status = "okay"; 73 status = "okay";
66}; 74};
diff --git a/arch/arm/boot/dts/r7s72100.dtsi b/arch/arm/boot/dts/r7s72100.dtsi
index 3dd427d68c83..b8aa256bd515 100644
--- a/arch/arm/boot/dts/r7s72100.dtsi
+++ b/arch/arm/boot/dts/r7s72100.dtsi
@@ -108,6 +108,15 @@
108 clock-output-names = "scif0", "scif1", "scif2", "scif3", "scif4", "scif5", "scif6", "scif7"; 108 clock-output-names = "scif0", "scif1", "scif2", "scif3", "scif4", "scif5", "scif6", "scif7";
109 }; 109 };
110 110
111 mstp5_clks: mstp5_clks@fcfe0428 {
112 #clock-cells = <1>;
113 compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
114 reg = <0xfcfe0428 4>;
115 clocks = <&p0_clk>, <&p0_clk>;
116 clock-indices = <R7S72100_CLK_OSTM0 R7S72100_CLK_OSTM1>;
117 clock-output-names = "ostm0", "ostm1";
118 };
119
111 mstp7_clks: mstp7_clks@fcfe0430 { 120 mstp7_clks: mstp7_clks@fcfe0430 {
112 #clock-cells = <1>; 121 #clock-cells = <1>;
113 compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks"; 122 compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
@@ -466,6 +475,7 @@
466 GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH 475 GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH
467 GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>; 476 GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>;
468 clocks = <&mstp8_clks R7S72100_CLK_MMCIF>; 477 clocks = <&mstp8_clks R7S72100_CLK_MMCIF>;
478 power-domains = <&cpg_clocks>;
469 reg-io-width = <4>; 479 reg-io-width = <4>;
470 bus-width = <8>; 480 bus-width = <8>;
471 status = "disabled"; 481 status = "disabled";
@@ -496,4 +506,22 @@
496 cap-sdio-irq; 506 cap-sdio-irq;
497 status = "disabled"; 507 status = "disabled";
498 }; 508 };
509
510 ostm0: timer@fcfec000 {
511 compatible = "renesas,r7s72100-ostm", "renesas,ostm";
512 reg = <0xfcfec000 0x30>;
513 interrupts = <GIC_SPI 102 IRQ_TYPE_EDGE_RISING>;
514 clocks = <&mstp5_clks R7S72100_CLK_OSTM0>;
515 power-domains = <&cpg_clocks>;
516 status = "disabled";
517 };
518
519 ostm1: timer@fcfec400 {
520 compatible = "renesas,r7s72100-ostm", "renesas,ostm";
521 reg = <0xfcfec400 0x30>;
522 interrupts = <GIC_SPI 103 IRQ_TYPE_EDGE_RISING>;
523 clocks = <&mstp5_clks R7S72100_CLK_OSTM1>;
524 power-domains = <&cpg_clocks>;
525 status = "disabled";
526 };
499}; 527};
diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi
index 53183ffe04c1..00eb9a7114dc 100644
--- a/arch/arm/boot/dts/r8a73a4.dtsi
+++ b/arch/arm/boot/dts/r8a73a4.dtsi
@@ -440,7 +440,7 @@
440 }; 440 };
441 441
442 mmcif0: mmc@ee200000 { 442 mmcif0: mmc@ee200000 {
443 compatible = "renesas,sh-mmcif"; 443 compatible = "renesas,mmcif-r8a73a4", "renesas,sh-mmcif";
444 reg = <0 0xee200000 0 0x80>; 444 reg = <0 0xee200000 0 0x80>;
445 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; 445 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
446 clocks = <&mstp3_clks R8A73A4_CLK_MMCIF0>; 446 clocks = <&mstp3_clks R8A73A4_CLK_MMCIF0>;
@@ -450,7 +450,7 @@
450 }; 450 };
451 451
452 mmcif1: mmc@ee220000 { 452 mmcif1: mmc@ee220000 {
453 compatible = "renesas,sh-mmcif"; 453 compatible = "renesas,mmcif-r8a73a4", "renesas,sh-mmcif";
454 reg = <0 0xee220000 0 0x80>; 454 reg = <0 0xee220000 0 0x80>;
455 interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>; 455 interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
456 clocks = <&mstp3_clks R8A73A4_CLK_MMCIF1>; 456 clocks = <&mstp3_clks R8A73A4_CLK_MMCIF1>;
@@ -465,7 +465,7 @@
465 #address-cells = <0>; 465 #address-cells = <0>;
466 interrupt-controller; 466 interrupt-controller;
467 reg = <0 0xf1001000 0 0x1000>, 467 reg = <0 0xf1001000 0 0x1000>,
468 <0 0xf1002000 0 0x1000>, 468 <0 0xf1002000 0 0x2000>,
469 <0 0xf1004000 0 0x2000>, 469 <0 0xf1004000 0 0x2000>,
470 <0 0xf1006000 0 0x2000>; 470 <0 0xf1006000 0 0x2000>;
471 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 471 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi
index 216cb1f37f87..d8393b97768b 100644
--- a/arch/arm/boot/dts/r8a7743.dtsi
+++ b/arch/arm/boot/dts/r8a7743.dtsi
@@ -55,11 +55,14 @@
55 #address-cells = <0>; 55 #address-cells = <0>;
56 interrupt-controller; 56 interrupt-controller;
57 reg = <0 0xf1001000 0 0x1000>, 57 reg = <0 0xf1001000 0 0x1000>,
58 <0 0xf1002000 0 0x1000>, 58 <0 0xf1002000 0 0x2000>,
59 <0 0xf1004000 0 0x2000>, 59 <0 0xf1004000 0 0x2000>,
60 <0 0xf1006000 0 0x2000>; 60 <0 0xf1006000 0 0x2000>;
61 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | 61 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) |
62 IRQ_TYPE_LEVEL_HIGH)>; 62 IRQ_TYPE_LEVEL_HIGH)>;
63 clocks = <&cpg CPG_MOD 408>;
64 clock-names = "clk";
65 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
63 }; 66 };
64 67
65 irqc: interrupt-controller@e61c0000 { 68 irqc: interrupt-controller@e61c0000 {
@@ -102,10 +105,9 @@
102 #power-domain-cells = <0>; 105 #power-domain-cells = <0>;
103 }; 106 };
104 107
105 sysc: system-controller@e6180000 { 108 prr: chipid@ff000044 {
106 compatible = "renesas,r8a7743-sysc"; 109 compatible = "renesas,prr";
107 reg = <0 0xe6180000 0 0x200>; 110 reg = <0 0xff000044 0 4>;
108 #power-domain-cells = <1>;
109 }; 111 };
110 112
111 rst: reset-controller@e6160000 { 113 rst: reset-controller@e6160000 {
@@ -113,6 +115,12 @@
113 reg = <0 0xe6160000 0 0x100>; 115 reg = <0 0xe6160000 0 0x100>;
114 }; 116 };
115 117
118 sysc: system-controller@e6180000 {
119 compatible = "renesas,r8a7743-sysc";
120 reg = <0 0xe6180000 0 0x200>;
121 #power-domain-cells = <1>;
122 };
123
116 dmac0: dma-controller@e6700000 { 124 dmac0: dma-controller@e6700000 {
117 compatible = "renesas,dmac-r8a7743", 125 compatible = "renesas,dmac-r8a7743",
118 "renesas,rcar-dmac"; 126 "renesas,rcar-dmac";
diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi
index 0b2e2f37150f..1f65ff68a469 100644
--- a/arch/arm/boot/dts/r8a7745.dtsi
+++ b/arch/arm/boot/dts/r8a7745.dtsi
@@ -55,11 +55,14 @@
55 #address-cells = <0>; 55 #address-cells = <0>;
56 interrupt-controller; 56 interrupt-controller;
57 reg = <0 0xf1001000 0 0x1000>, 57 reg = <0 0xf1001000 0 0x1000>,
58 <0 0xf1002000 0 0x1000>, 58 <0 0xf1002000 0 0x2000>,
59 <0 0xf1004000 0 0x2000>, 59 <0 0xf1004000 0 0x2000>,
60 <0 0xf1006000 0 0x2000>; 60 <0 0xf1006000 0 0x2000>;
61 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | 61 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) |
62 IRQ_TYPE_LEVEL_HIGH)>; 62 IRQ_TYPE_LEVEL_HIGH)>;
63 clocks = <&cpg CPG_MOD 408>;
64 clock-names = "clk";
65 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
63 }; 66 };
64 67
65 irqc: interrupt-controller@e61c0000 { 68 irqc: interrupt-controller@e61c0000 {
@@ -102,10 +105,9 @@
102 #power-domain-cells = <0>; 105 #power-domain-cells = <0>;
103 }; 106 };
104 107
105 sysc: system-controller@e6180000 { 108 prr: chipid@ff000044 {
106 compatible = "renesas,r8a7745-sysc"; 109 compatible = "renesas,prr";
107 reg = <0 0xe6180000 0 0x200>; 110 reg = <0 0xff000044 0 4>;
108 #power-domain-cells = <1>;
109 }; 111 };
110 112
111 rst: reset-controller@e6160000 { 113 rst: reset-controller@e6160000 {
@@ -113,6 +115,12 @@
113 reg = <0 0xe6160000 0 0x100>; 115 reg = <0 0xe6160000 0 0x100>;
114 }; 116 };
115 117
118 sysc: system-controller@e6180000 {
119 compatible = "renesas,r8a7745-sysc";
120 reg = <0 0xe6180000 0 0x200>;
121 #power-domain-cells = <1>;
122 };
123
116 dmac0: dma-controller@e6700000 { 124 dmac0: dma-controller@e6700000 {
117 compatible = "renesas,dmac-r8a7745", 125 compatible = "renesas,dmac-r8a7745",
118 "renesas,rcar-dmac"; 126 "renesas,rcar-dmac";
diff --git a/arch/arm/boot/dts/r8a7778.dtsi b/arch/arm/boot/dts/r8a7778.dtsi
index d0db998effc8..1e93c94a9eac 100644
--- a/arch/arm/boot/dts/r8a7778.dtsi
+++ b/arch/arm/boot/dts/r8a7778.dtsi
@@ -150,7 +150,7 @@
150 i2c0: i2c@ffc70000 { 150 i2c0: i2c@ffc70000 {
151 #address-cells = <1>; 151 #address-cells = <1>;
152 #size-cells = <0>; 152 #size-cells = <0>;
153 compatible = "renesas,i2c-r8a7778"; 153 compatible = "renesas,i2c-r8a7778", "renesas,rcar-gen1-i2c";
154 reg = <0xffc70000 0x1000>; 154 reg = <0xffc70000 0x1000>;
155 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 155 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
156 clocks = <&mstp0_clks R8A7778_CLK_I2C0>; 156 clocks = <&mstp0_clks R8A7778_CLK_I2C0>;
@@ -161,7 +161,7 @@
161 i2c1: i2c@ffc71000 { 161 i2c1: i2c@ffc71000 {
162 #address-cells = <1>; 162 #address-cells = <1>;
163 #size-cells = <0>; 163 #size-cells = <0>;
164 compatible = "renesas,i2c-r8a7778"; 164 compatible = "renesas,i2c-r8a7778", "renesas,rcar-gen1-i2c";
165 reg = <0xffc71000 0x1000>; 165 reg = <0xffc71000 0x1000>;
166 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 166 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
167 clocks = <&mstp0_clks R8A7778_CLK_I2C1>; 167 clocks = <&mstp0_clks R8A7778_CLK_I2C1>;
@@ -172,7 +172,7 @@
172 i2c2: i2c@ffc72000 { 172 i2c2: i2c@ffc72000 {
173 #address-cells = <1>; 173 #address-cells = <1>;
174 #size-cells = <0>; 174 #size-cells = <0>;
175 compatible = "renesas,i2c-r8a7778"; 175 compatible = "renesas,i2c-r8a7778", "renesas,rcar-gen1-i2c";
176 reg = <0xffc72000 0x1000>; 176 reg = <0xffc72000 0x1000>;
177 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 177 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
178 clocks = <&mstp0_clks R8A7778_CLK_I2C2>; 178 clocks = <&mstp0_clks R8A7778_CLK_I2C2>;
@@ -183,7 +183,7 @@
183 i2c3: i2c@ffc73000 { 183 i2c3: i2c@ffc73000 {
184 #address-cells = <1>; 184 #address-cells = <1>;
185 #size-cells = <0>; 185 #size-cells = <0>;
186 compatible = "renesas,i2c-r8a7778"; 186 compatible = "renesas,i2c-r8a7778", "renesas,rcar-gen1-i2c";
187 reg = <0xffc73000 0x1000>; 187 reg = <0xffc73000 0x1000>;
188 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 188 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
189 clocks = <&mstp0_clks R8A7778_CLK_I2C3>; 189 clocks = <&mstp0_clks R8A7778_CLK_I2C3>;
@@ -369,7 +369,7 @@
369 }; 369 };
370 370
371 mmcif: mmc@ffe4e000 { 371 mmcif: mmc@ffe4e000 {
372 compatible = "renesas,sh-mmcif"; 372 compatible = "renesas,mmcif-r8a7778", "renesas,sh-mmcif";
373 reg = <0xffe4e000 0x100>; 373 reg = <0xffe4e000 0x100>;
374 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 374 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
375 clocks = <&mstp3_clks R8A7778_CLK_MMC>; 375 clocks = <&mstp3_clks R8A7778_CLK_MMC>;
diff --git a/arch/arm/boot/dts/r8a7779-marzen.dts b/arch/arm/boot/dts/r8a7779-marzen.dts
index 676151b70185..89c5b24a3d03 100644
--- a/arch/arm/boot/dts/r8a7779-marzen.dts
+++ b/arch/arm/boot/dts/r8a7779-marzen.dts
@@ -216,6 +216,10 @@
216 }; 216 };
217}; 217};
218 218
219&sata {
220 status = "okay";
221};
222
219&scif2 { 223&scif2 {
220 pinctrl-0 = <&scif2_pins>; 224 pinctrl-0 = <&scif2_pins>;
221 pinctrl-names = "default"; 225 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/r8a7779.dtsi b/arch/arm/boot/dts/r8a7779.dtsi
index 55a7c1e37c57..ae2d9a9c65af 100644
--- a/arch/arm/boot/dts/r8a7779.dtsi
+++ b/arch/arm/boot/dts/r8a7779.dtsi
@@ -173,7 +173,7 @@
173 i2c0: i2c@ffc70000 { 173 i2c0: i2c@ffc70000 {
174 #address-cells = <1>; 174 #address-cells = <1>;
175 #size-cells = <0>; 175 #size-cells = <0>;
176 compatible = "renesas,i2c-r8a7779"; 176 compatible = "renesas,i2c-r8a7779", "renesas,rcar-gen1-i2c";
177 reg = <0xffc70000 0x1000>; 177 reg = <0xffc70000 0x1000>;
178 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 178 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
179 clocks = <&mstp0_clks R8A7779_CLK_I2C0>; 179 clocks = <&mstp0_clks R8A7779_CLK_I2C0>;
@@ -184,7 +184,7 @@
184 i2c1: i2c@ffc71000 { 184 i2c1: i2c@ffc71000 {
185 #address-cells = <1>; 185 #address-cells = <1>;
186 #size-cells = <0>; 186 #size-cells = <0>;
187 compatible = "renesas,i2c-r8a7779"; 187 compatible = "renesas,i2c-r8a7779", "renesas,rcar-gen1-i2c";
188 reg = <0xffc71000 0x1000>; 188 reg = <0xffc71000 0x1000>;
189 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 189 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
190 clocks = <&mstp0_clks R8A7779_CLK_I2C1>; 190 clocks = <&mstp0_clks R8A7779_CLK_I2C1>;
@@ -195,7 +195,7 @@
195 i2c2: i2c@ffc72000 { 195 i2c2: i2c@ffc72000 {
196 #address-cells = <1>; 196 #address-cells = <1>;
197 #size-cells = <0>; 197 #size-cells = <0>;
198 compatible = "renesas,i2c-r8a7779"; 198 compatible = "renesas,i2c-r8a7779", "renesas,rcar-gen1-i2c";
199 reg = <0xffc72000 0x1000>; 199 reg = <0xffc72000 0x1000>;
200 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 200 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
201 clocks = <&mstp0_clks R8A7779_CLK_I2C2>; 201 clocks = <&mstp0_clks R8A7779_CLK_I2C2>;
@@ -206,7 +206,7 @@
206 i2c3: i2c@ffc73000 { 206 i2c3: i2c@ffc73000 {
207 #address-cells = <1>; 207 #address-cells = <1>;
208 #size-cells = <0>; 208 #size-cells = <0>;
209 compatible = "renesas,i2c-r8a7779"; 209 compatible = "renesas,i2c-r8a7779", "renesas,rcar-gen1-i2c";
210 reg = <0xffc73000 0x1000>; 210 reg = <0xffc73000 0x1000>;
211 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 211 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
212 clocks = <&mstp0_clks R8A7779_CLK_I2C3>; 212 clocks = <&mstp0_clks R8A7779_CLK_I2C3>;
@@ -347,6 +347,7 @@
347 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 347 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
348 clocks = <&mstp1_clks R8A7779_CLK_SATA>; 348 clocks = <&mstp1_clks R8A7779_CLK_SATA>;
349 power-domains = <&sysc R8A7779_PD_ALWAYS_ON>; 349 power-domains = <&sysc R8A7779_PD_ALWAYS_ON>;
350 status = "disabled";
350 }; 351 };
351 352
352 sdhi0: sd@ffe4c000 { 353 sdhi0: sd@ffe4c000 {
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi
index 0c8900d4b824..6d10450de6d7 100644
--- a/arch/arm/boot/dts/r8a7790.dtsi
+++ b/arch/arm/boot/dts/r8a7790.dtsi
@@ -183,7 +183,7 @@
183 #address-cells = <0>; 183 #address-cells = <0>;
184 interrupt-controller; 184 interrupt-controller;
185 reg = <0 0xf1001000 0 0x1000>, 185 reg = <0 0xf1001000 0 0x1000>,
186 <0 0xf1002000 0 0x1000>, 186 <0 0xf1002000 0 0x2000>,
187 <0 0xf1004000 0 0x2000>, 187 <0 0xf1004000 0 0x2000>,
188 <0 0xf1006000 0 0x2000>; 188 <0 0xf1006000 0 0x2000>;
189 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 189 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
@@ -480,7 +480,7 @@
480 i2c0: i2c@e6508000 { 480 i2c0: i2c@e6508000 {
481 #address-cells = <1>; 481 #address-cells = <1>;
482 #size-cells = <0>; 482 #size-cells = <0>;
483 compatible = "renesas,i2c-r8a7790"; 483 compatible = "renesas,i2c-r8a7790", "renesas,rcar-gen2-i2c";
484 reg = <0 0xe6508000 0 0x40>; 484 reg = <0 0xe6508000 0 0x40>;
485 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 485 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
486 clocks = <&mstp9_clks R8A7790_CLK_I2C0>; 486 clocks = <&mstp9_clks R8A7790_CLK_I2C0>;
@@ -492,7 +492,7 @@
492 i2c1: i2c@e6518000 { 492 i2c1: i2c@e6518000 {
493 #address-cells = <1>; 493 #address-cells = <1>;
494 #size-cells = <0>; 494 #size-cells = <0>;
495 compatible = "renesas,i2c-r8a7790"; 495 compatible = "renesas,i2c-r8a7790", "renesas,rcar-gen2-i2c";
496 reg = <0 0xe6518000 0 0x40>; 496 reg = <0 0xe6518000 0 0x40>;
497 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; 497 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
498 clocks = <&mstp9_clks R8A7790_CLK_I2C1>; 498 clocks = <&mstp9_clks R8A7790_CLK_I2C1>;
@@ -504,7 +504,7 @@
504 i2c2: i2c@e6530000 { 504 i2c2: i2c@e6530000 {
505 #address-cells = <1>; 505 #address-cells = <1>;
506 #size-cells = <0>; 506 #size-cells = <0>;
507 compatible = "renesas,i2c-r8a7790"; 507 compatible = "renesas,i2c-r8a7790", "renesas,rcar-gen2-i2c";
508 reg = <0 0xe6530000 0 0x40>; 508 reg = <0 0xe6530000 0 0x40>;
509 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; 509 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
510 clocks = <&mstp9_clks R8A7790_CLK_I2C2>; 510 clocks = <&mstp9_clks R8A7790_CLK_I2C2>;
@@ -516,7 +516,7 @@
516 i2c3: i2c@e6540000 { 516 i2c3: i2c@e6540000 {
517 #address-cells = <1>; 517 #address-cells = <1>;
518 #size-cells = <0>; 518 #size-cells = <0>;
519 compatible = "renesas,i2c-r8a7790"; 519 compatible = "renesas,i2c-r8a7790", "renesas,rcar-gen2-i2c";
520 reg = <0 0xe6540000 0 0x40>; 520 reg = <0 0xe6540000 0 0x40>;
521 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; 521 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
522 clocks = <&mstp9_clks R8A7790_CLK_I2C3>; 522 clocks = <&mstp9_clks R8A7790_CLK_I2C3>;
@@ -528,7 +528,8 @@
528 iic0: i2c@e6500000 { 528 iic0: i2c@e6500000 {
529 #address-cells = <1>; 529 #address-cells = <1>;
530 #size-cells = <0>; 530 #size-cells = <0>;
531 compatible = "renesas,iic-r8a7790", "renesas,rmobile-iic"; 531 compatible = "renesas,iic-r8a7790", "renesas,rcar-gen2-iic",
532 "renesas,rmobile-iic";
532 reg = <0 0xe6500000 0 0x425>; 533 reg = <0 0xe6500000 0 0x425>;
533 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 534 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
534 clocks = <&mstp3_clks R8A7790_CLK_IIC0>; 535 clocks = <&mstp3_clks R8A7790_CLK_IIC0>;
@@ -542,7 +543,8 @@
542 iic1: i2c@e6510000 { 543 iic1: i2c@e6510000 {
543 #address-cells = <1>; 544 #address-cells = <1>;
544 #size-cells = <0>; 545 #size-cells = <0>;
545 compatible = "renesas,iic-r8a7790", "renesas,rmobile-iic"; 546 compatible = "renesas,iic-r8a7790", "renesas,rcar-gen2-iic",
547 "renesas,rmobile-iic";
546 reg = <0 0xe6510000 0 0x425>; 548 reg = <0 0xe6510000 0 0x425>;
547 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 549 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
548 clocks = <&mstp3_clks R8A7790_CLK_IIC1>; 550 clocks = <&mstp3_clks R8A7790_CLK_IIC1>;
@@ -556,7 +558,8 @@
556 iic2: i2c@e6520000 { 558 iic2: i2c@e6520000 {
557 #address-cells = <1>; 559 #address-cells = <1>;
558 #size-cells = <0>; 560 #size-cells = <0>;
559 compatible = "renesas,iic-r8a7790", "renesas,rmobile-iic"; 561 compatible = "renesas,iic-r8a7790", "renesas,rcar-gen2-iic",
562 "renesas,rmobile-iic";
560 reg = <0 0xe6520000 0 0x425>; 563 reg = <0 0xe6520000 0 0x425>;
561 interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; 564 interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
562 clocks = <&mstp3_clks R8A7790_CLK_IIC2>; 565 clocks = <&mstp3_clks R8A7790_CLK_IIC2>;
@@ -570,7 +573,8 @@
570 iic3: i2c@e60b0000 { 573 iic3: i2c@e60b0000 {
571 #address-cells = <1>; 574 #address-cells = <1>;
572 #size-cells = <0>; 575 #size-cells = <0>;
573 compatible = "renesas,iic-r8a7790", "renesas,rmobile-iic"; 576 compatible = "renesas,iic-r8a7790", "renesas,rcar-gen2-iic",
577 "renesas,rmobile-iic";
574 reg = <0 0xe60b0000 0 0x425>; 578 reg = <0 0xe60b0000 0 0x425>;
575 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 579 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
576 clocks = <&mstp9_clks R8A7790_CLK_IICDVFS>; 580 clocks = <&mstp9_clks R8A7790_CLK_IICDVFS>;
@@ -883,7 +887,8 @@
883 }; 887 };
884 888
885 usbphy: usb-phy@e6590100 { 889 usbphy: usb-phy@e6590100 {
886 compatible = "renesas,usb-phy-r8a7790"; 890 compatible = "renesas,usb-phy-r8a7790",
891 "renesas,rcar-gen2-usb-phy";
887 reg = <0 0xe6590100 0 0x100>; 892 reg = <0 0xe6590100 0 0x100>;
888 #address-cells = <1>; 893 #address-cells = <1>;
889 #size-cells = <0>; 894 #size-cells = <0>;
@@ -1503,7 +1508,8 @@
1503 }; 1508 };
1504 1509
1505 msiof0: spi@e6e20000 { 1510 msiof0: spi@e6e20000 {
1506 compatible = "renesas,msiof-r8a7790"; 1511 compatible = "renesas,msiof-r8a7790",
1512 "renesas,rcar-gen2-msiof";
1507 reg = <0 0xe6e20000 0 0x0064>; 1513 reg = <0 0xe6e20000 0 0x0064>;
1508 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 1514 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
1509 clocks = <&mstp0_clks R8A7790_CLK_MSIOF0>; 1515 clocks = <&mstp0_clks R8A7790_CLK_MSIOF0>;
@@ -1517,7 +1523,8 @@
1517 }; 1523 };
1518 1524
1519 msiof1: spi@e6e10000 { 1525 msiof1: spi@e6e10000 {
1520 compatible = "renesas,msiof-r8a7790"; 1526 compatible = "renesas,msiof-r8a7790",
1527 "renesas,rcar-gen2-msiof";
1521 reg = <0 0xe6e10000 0 0x0064>; 1528 reg = <0 0xe6e10000 0 0x0064>;
1522 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; 1529 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
1523 clocks = <&mstp2_clks R8A7790_CLK_MSIOF1>; 1530 clocks = <&mstp2_clks R8A7790_CLK_MSIOF1>;
@@ -1531,7 +1538,8 @@
1531 }; 1538 };
1532 1539
1533 msiof2: spi@e6e00000 { 1540 msiof2: spi@e6e00000 {
1534 compatible = "renesas,msiof-r8a7790"; 1541 compatible = "renesas,msiof-r8a7790",
1542 "renesas,rcar-gen2-msiof";
1535 reg = <0 0xe6e00000 0 0x0064>; 1543 reg = <0 0xe6e00000 0 0x0064>;
1536 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 1544 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
1537 clocks = <&mstp2_clks R8A7790_CLK_MSIOF2>; 1545 clocks = <&mstp2_clks R8A7790_CLK_MSIOF2>;
@@ -1545,7 +1553,8 @@
1545 }; 1553 };
1546 1554
1547 msiof3: spi@e6c90000 { 1555 msiof3: spi@e6c90000 {
1548 compatible = "renesas,msiof-r8a7790"; 1556 compatible = "renesas,msiof-r8a7790",
1557 "renesas,rcar-gen2-msiof";
1549 reg = <0 0xe6c90000 0 0x0064>; 1558 reg = <0 0xe6c90000 0 0x0064>;
1550 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>; 1559 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
1551 clocks = <&mstp2_clks R8A7790_CLK_MSIOF3>; 1560 clocks = <&mstp2_clks R8A7790_CLK_MSIOF3>;
diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
index 87214668d70f..9f9e48511836 100644
--- a/arch/arm/boot/dts/r8a7791.dtsi
+++ b/arch/arm/boot/dts/r8a7791.dtsi
@@ -114,7 +114,7 @@
114 #address-cells = <0>; 114 #address-cells = <0>;
115 interrupt-controller; 115 interrupt-controller;
116 reg = <0 0xf1001000 0 0x1000>, 116 reg = <0 0xf1001000 0 0x1000>,
117 <0 0xf1002000 0 0x1000>, 117 <0 0xf1002000 0 0x2000>,
118 <0 0xf1004000 0 0x2000>, 118 <0 0xf1004000 0 0x2000>,
119 <0 0xf1006000 0 0x2000>; 119 <0 0xf1006000 0 0x2000>;
120 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 120 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
@@ -444,7 +444,7 @@
444 i2c0: i2c@e6508000 { 444 i2c0: i2c@e6508000 {
445 #address-cells = <1>; 445 #address-cells = <1>;
446 #size-cells = <0>; 446 #size-cells = <0>;
447 compatible = "renesas,i2c-r8a7791"; 447 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
448 reg = <0 0xe6508000 0 0x40>; 448 reg = <0 0xe6508000 0 0x40>;
449 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 449 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
450 clocks = <&mstp9_clks R8A7791_CLK_I2C0>; 450 clocks = <&mstp9_clks R8A7791_CLK_I2C0>;
@@ -456,7 +456,7 @@
456 i2c1: i2c@e6518000 { 456 i2c1: i2c@e6518000 {
457 #address-cells = <1>; 457 #address-cells = <1>;
458 #size-cells = <0>; 458 #size-cells = <0>;
459 compatible = "renesas,i2c-r8a7791"; 459 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
460 reg = <0 0xe6518000 0 0x40>; 460 reg = <0 0xe6518000 0 0x40>;
461 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; 461 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
462 clocks = <&mstp9_clks R8A7791_CLK_I2C1>; 462 clocks = <&mstp9_clks R8A7791_CLK_I2C1>;
@@ -468,7 +468,7 @@
468 i2c2: i2c@e6530000 { 468 i2c2: i2c@e6530000 {
469 #address-cells = <1>; 469 #address-cells = <1>;
470 #size-cells = <0>; 470 #size-cells = <0>;
471 compatible = "renesas,i2c-r8a7791"; 471 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
472 reg = <0 0xe6530000 0 0x40>; 472 reg = <0 0xe6530000 0 0x40>;
473 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; 473 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
474 clocks = <&mstp9_clks R8A7791_CLK_I2C2>; 474 clocks = <&mstp9_clks R8A7791_CLK_I2C2>;
@@ -480,7 +480,7 @@
480 i2c3: i2c@e6540000 { 480 i2c3: i2c@e6540000 {
481 #address-cells = <1>; 481 #address-cells = <1>;
482 #size-cells = <0>; 482 #size-cells = <0>;
483 compatible = "renesas,i2c-r8a7791"; 483 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
484 reg = <0 0xe6540000 0 0x40>; 484 reg = <0 0xe6540000 0 0x40>;
485 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; 485 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
486 clocks = <&mstp9_clks R8A7791_CLK_I2C3>; 486 clocks = <&mstp9_clks R8A7791_CLK_I2C3>;
@@ -492,7 +492,7 @@
492 i2c4: i2c@e6520000 { 492 i2c4: i2c@e6520000 {
493 #address-cells = <1>; 493 #address-cells = <1>;
494 #size-cells = <0>; 494 #size-cells = <0>;
495 compatible = "renesas,i2c-r8a7791"; 495 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
496 reg = <0 0xe6520000 0 0x40>; 496 reg = <0 0xe6520000 0 0x40>;
497 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 497 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
498 clocks = <&mstp9_clks R8A7791_CLK_I2C4>; 498 clocks = <&mstp9_clks R8A7791_CLK_I2C4>;
@@ -505,7 +505,7 @@
505 /* doesn't need pinmux */ 505 /* doesn't need pinmux */
506 #address-cells = <1>; 506 #address-cells = <1>;
507 #size-cells = <0>; 507 #size-cells = <0>;
508 compatible = "renesas,i2c-r8a7791"; 508 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
509 reg = <0 0xe6528000 0 0x40>; 509 reg = <0 0xe6528000 0 0x40>;
510 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 510 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
511 clocks = <&mstp9_clks R8A7791_CLK_I2C5>; 511 clocks = <&mstp9_clks R8A7791_CLK_I2C5>;
@@ -518,7 +518,8 @@
518 /* doesn't need pinmux */ 518 /* doesn't need pinmux */
519 #address-cells = <1>; 519 #address-cells = <1>;
520 #size-cells = <0>; 520 #size-cells = <0>;
521 compatible = "renesas,iic-r8a7791", "renesas,rmobile-iic"; 521 compatible = "renesas,iic-r8a7791", "renesas,rcar-gen2-iic",
522 "renesas,rmobile-iic";
522 reg = <0 0xe60b0000 0 0x425>; 523 reg = <0 0xe60b0000 0 0x425>;
523 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 524 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
524 clocks = <&mstp9_clks R8A7791_CLK_IICDVFS>; 525 clocks = <&mstp9_clks R8A7791_CLK_IICDVFS>;
@@ -532,7 +533,8 @@
532 i2c7: i2c@e6500000 { 533 i2c7: i2c@e6500000 {
533 #address-cells = <1>; 534 #address-cells = <1>;
534 #size-cells = <0>; 535 #size-cells = <0>;
535 compatible = "renesas,iic-r8a7791", "renesas,rmobile-iic"; 536 compatible = "renesas,iic-r8a7791", "renesas,rcar-gen2-iic",
537 "renesas,rmobile-iic";
536 reg = <0 0xe6500000 0 0x425>; 538 reg = <0 0xe6500000 0 0x425>;
537 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 539 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
538 clocks = <&mstp3_clks R8A7791_CLK_IIC0>; 540 clocks = <&mstp3_clks R8A7791_CLK_IIC0>;
@@ -546,7 +548,8 @@
546 i2c8: i2c@e6510000 { 548 i2c8: i2c@e6510000 {
547 #address-cells = <1>; 549 #address-cells = <1>;
548 #size-cells = <0>; 550 #size-cells = <0>;
549 compatible = "renesas,iic-r8a7791", "renesas,rmobile-iic"; 551 compatible = "renesas,iic-r8a7791", "renesas,rcar-gen2-iic",
552 "renesas,rmobile-iic";
550 reg = <0 0xe6510000 0 0x425>; 553 reg = <0 0xe6510000 0 0x425>;
551 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 554 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
552 clocks = <&mstp3_clks R8A7791_CLK_IIC1>; 555 clocks = <&mstp3_clks R8A7791_CLK_IIC1>;
@@ -934,7 +937,8 @@
934 }; 937 };
935 938
936 usbphy: usb-phy@e6590100 { 939 usbphy: usb-phy@e6590100 {
937 compatible = "renesas,usb-phy-r8a7791"; 940 compatible = "renesas,usb-phy-r8a7791",
941 "renesas,rcar-gen2-usb-phy";
938 reg = <0 0xe6590100 0 0x100>; 942 reg = <0 0xe6590100 0 0x100>;
939 #address-cells = <1>; 943 #address-cells = <1>;
940 #size-cells = <0>; 944 #size-cells = <0>;
@@ -1517,7 +1521,8 @@
1517 }; 1521 };
1518 1522
1519 msiof0: spi@e6e20000 { 1523 msiof0: spi@e6e20000 {
1520 compatible = "renesas,msiof-r8a7791"; 1524 compatible = "renesas,msiof-r8a7791",
1525 "renesas,rcar-gen2-msiof";
1521 reg = <0 0xe6e20000 0 0x0064>; 1526 reg = <0 0xe6e20000 0 0x0064>;
1522 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 1527 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
1523 clocks = <&mstp0_clks R8A7791_CLK_MSIOF0>; 1528 clocks = <&mstp0_clks R8A7791_CLK_MSIOF0>;
@@ -1531,7 +1536,8 @@
1531 }; 1536 };
1532 1537
1533 msiof1: spi@e6e10000 { 1538 msiof1: spi@e6e10000 {
1534 compatible = "renesas,msiof-r8a7791"; 1539 compatible = "renesas,msiof-r8a7791",
1540 "renesas,rcar-gen2-msiof";
1535 reg = <0 0xe6e10000 0 0x0064>; 1541 reg = <0 0xe6e10000 0 0x0064>;
1536 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; 1542 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
1537 clocks = <&mstp2_clks R8A7791_CLK_MSIOF1>; 1543 clocks = <&mstp2_clks R8A7791_CLK_MSIOF1>;
@@ -1545,7 +1551,8 @@
1545 }; 1551 };
1546 1552
1547 msiof2: spi@e6e00000 { 1553 msiof2: spi@e6e00000 {
1548 compatible = "renesas,msiof-r8a7791"; 1554 compatible = "renesas,msiof-r8a7791",
1555 "renesas,rcar-gen2-msiof";
1549 reg = <0 0xe6e00000 0 0x0064>; 1556 reg = <0 0xe6e00000 0 0x0064>;
1550 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 1557 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
1551 clocks = <&mstp2_clks R8A7791_CLK_MSIOF2>; 1558 clocks = <&mstp2_clks R8A7791_CLK_MSIOF2>;
diff --git a/arch/arm/boot/dts/r8a7792.dtsi b/arch/arm/boot/dts/r8a7792.dtsi
index 6ced3c1ec377..8ecfda7a004e 100644
--- a/arch/arm/boot/dts/r8a7792.dtsi
+++ b/arch/arm/boot/dts/r8a7792.dtsi
@@ -88,7 +88,7 @@
88 #interrupt-cells = <3>; 88 #interrupt-cells = <3>;
89 interrupt-controller; 89 interrupt-controller;
90 reg = <0 0xf1001000 0 0x1000>, 90 reg = <0 0xf1001000 0 0x1000>,
91 <0 0xf1002000 0 0x1000>, 91 <0 0xf1002000 0 0x2000>,
92 <0 0xf1004000 0 0x2000>, 92 <0 0xf1004000 0 0x2000>,
93 <0 0xf1006000 0 0x2000>; 93 <0 0xf1006000 0 0x2000>;
94 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | 94 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) |
@@ -498,7 +498,8 @@
498 498
499 /* I2C doesn't need pinmux */ 499 /* I2C doesn't need pinmux */
500 i2c0: i2c@e6508000 { 500 i2c0: i2c@e6508000 {
501 compatible = "renesas,i2c-r8a7792"; 501 compatible = "renesas,i2c-r8a7792",
502 "renesas,rcar-gen2-i2c";
502 reg = <0 0xe6508000 0 0x40>; 503 reg = <0 0xe6508000 0 0x40>;
503 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 504 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
504 clocks = <&mstp9_clks R8A7792_CLK_I2C0>; 505 clocks = <&mstp9_clks R8A7792_CLK_I2C0>;
@@ -510,7 +511,8 @@
510 }; 511 };
511 512
512 i2c1: i2c@e6518000 { 513 i2c1: i2c@e6518000 {
513 compatible = "renesas,i2c-r8a7792"; 514 compatible = "renesas,i2c-r8a7792",
515 "renesas,rcar-gen2-i2c";
514 reg = <0 0xe6518000 0 0x40>; 516 reg = <0 0xe6518000 0 0x40>;
515 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; 517 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
516 clocks = <&mstp9_clks R8A7792_CLK_I2C1>; 518 clocks = <&mstp9_clks R8A7792_CLK_I2C1>;
@@ -522,7 +524,8 @@
522 }; 524 };
523 525
524 i2c2: i2c@e6530000 { 526 i2c2: i2c@e6530000 {
525 compatible = "renesas,i2c-r8a7792"; 527 compatible = "renesas,i2c-r8a7792",
528 "renesas,rcar-gen2-i2c";
526 reg = <0 0xe6530000 0 0x40>; 529 reg = <0 0xe6530000 0 0x40>;
527 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; 530 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
528 clocks = <&mstp9_clks R8A7792_CLK_I2C2>; 531 clocks = <&mstp9_clks R8A7792_CLK_I2C2>;
@@ -534,7 +537,8 @@
534 }; 537 };
535 538
536 i2c3: i2c@e6540000 { 539 i2c3: i2c@e6540000 {
537 compatible = "renesas,i2c-r8a7792"; 540 compatible = "renesas,i2c-r8a7792",
541 "renesas,rcar-gen2-i2c";
538 reg = <0 0xe6540000 0 0x40>; 542 reg = <0 0xe6540000 0 0x40>;
539 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; 543 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
540 clocks = <&mstp9_clks R8A7792_CLK_I2C3>; 544 clocks = <&mstp9_clks R8A7792_CLK_I2C3>;
@@ -546,7 +550,8 @@
546 }; 550 };
547 551
548 i2c4: i2c@e6520000 { 552 i2c4: i2c@e6520000 {
549 compatible = "renesas,i2c-r8a7792"; 553 compatible = "renesas,i2c-r8a7792",
554 "renesas,rcar-gen2-i2c";
550 reg = <0 0xe6520000 0 0x40>; 555 reg = <0 0xe6520000 0 0x40>;
551 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 556 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
552 clocks = <&mstp9_clks R8A7792_CLK_I2C4>; 557 clocks = <&mstp9_clks R8A7792_CLK_I2C4>;
@@ -558,7 +563,8 @@
558 }; 563 };
559 564
560 i2c5: i2c@e6528000 { 565 i2c5: i2c@e6528000 {
561 compatible = "renesas,i2c-r8a7792"; 566 compatible = "renesas,i2c-r8a7792",
567 "renesas,rcar-gen2-i2c";
562 reg = <0 0xe6528000 0 0x40>; 568 reg = <0 0xe6528000 0 0x40>;
563 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 569 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
564 clocks = <&mstp9_clks R8A7792_CLK_I2C5>; 570 clocks = <&mstp9_clks R8A7792_CLK_I2C5>;
@@ -585,7 +591,8 @@
585 }; 591 };
586 592
587 msiof0: spi@e6e20000 { 593 msiof0: spi@e6e20000 {
588 compatible = "renesas,msiof-r8a7792"; 594 compatible = "renesas,msiof-r8a7792",
595 "renesas,rcar-gen2-msiof";
589 reg = <0 0xe6e20000 0 0x0064>; 596 reg = <0 0xe6e20000 0 0x0064>;
590 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 597 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
591 clocks = <&mstp0_clks R8A7792_CLK_MSIOF0>; 598 clocks = <&mstp0_clks R8A7792_CLK_MSIOF0>;
@@ -599,7 +606,8 @@
599 }; 606 };
600 607
601 msiof1: spi@e6e10000 { 608 msiof1: spi@e6e10000 {
602 compatible = "renesas,msiof-r8a7792"; 609 compatible = "renesas,msiof-r8a7792",
610 "renesas,rcar-gen2-msiof";
603 reg = <0 0xe6e10000 0 0x0064>; 611 reg = <0 0xe6e10000 0 0x0064>;
604 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; 612 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
605 clocks = <&mstp2_clks R8A7792_CLK_MSIOF1>; 613 clocks = <&mstp2_clks R8A7792_CLK_MSIOF1>;
diff --git a/arch/arm/boot/dts/r8a7793-gose.dts b/arch/arm/boot/dts/r8a7793-gose.dts
index dc311eba4444..92fff07c5e2b 100644
--- a/arch/arm/boot/dts/r8a7793-gose.dts
+++ b/arch/arm/boot/dts/r8a7793-gose.dts
@@ -538,6 +538,27 @@
538 }; 538 };
539}; 539};
540 540
541&i2c6 {
542 status = "okay";
543 clock-frequency = <100000>;
544
545 pmic@58 {
546 compatible = "dlg,da9063";
547 reg = <0x58>;
548 interrupt-parent = <&irqc0>;
549 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
550 interrupt-controller;
551
552 rtc {
553 compatible = "dlg,da9063-rtc";
554 };
555
556 wdt {
557 compatible = "dlg,da9063-watchdog";
558 };
559 };
560};
561
541&rcar_sound { 562&rcar_sound {
542 pinctrl-0 = <&sound_pins &sound_clk_pins>; 563 pinctrl-0 = <&sound_pins &sound_clk_pins>;
543 pinctrl-names = "default"; 564 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi
index 2fb527ca0b15..48ce21c5e8db 100644
--- a/arch/arm/boot/dts/r8a7793.dtsi
+++ b/arch/arm/boot/dts/r8a7793.dtsi
@@ -105,7 +105,7 @@
105 #address-cells = <0>; 105 #address-cells = <0>;
106 interrupt-controller; 106 interrupt-controller;
107 reg = <0 0xf1001000 0 0x1000>, 107 reg = <0 0xf1001000 0 0x1000>,
108 <0 0xf1002000 0 0x1000>, 108 <0 0xf1002000 0 0x2000>,
109 <0 0xf1004000 0 0x2000>, 109 <0 0xf1004000 0 0x2000>,
110 <0 0xf1006000 0 0x2000>; 110 <0 0xf1006000 0 0x2000>;
111 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 111 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
@@ -411,7 +411,7 @@
411 i2c0: i2c@e6508000 { 411 i2c0: i2c@e6508000 {
412 #address-cells = <1>; 412 #address-cells = <1>;
413 #size-cells = <0>; 413 #size-cells = <0>;
414 compatible = "renesas,i2c-r8a7793"; 414 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
415 reg = <0 0xe6508000 0 0x40>; 415 reg = <0 0xe6508000 0 0x40>;
416 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 416 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
417 clocks = <&mstp9_clks R8A7793_CLK_I2C0>; 417 clocks = <&mstp9_clks R8A7793_CLK_I2C0>;
@@ -423,7 +423,7 @@
423 i2c1: i2c@e6518000 { 423 i2c1: i2c@e6518000 {
424 #address-cells = <1>; 424 #address-cells = <1>;
425 #size-cells = <0>; 425 #size-cells = <0>;
426 compatible = "renesas,i2c-r8a7793"; 426 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
427 reg = <0 0xe6518000 0 0x40>; 427 reg = <0 0xe6518000 0 0x40>;
428 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; 428 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
429 clocks = <&mstp9_clks R8A7793_CLK_I2C1>; 429 clocks = <&mstp9_clks R8A7793_CLK_I2C1>;
@@ -435,7 +435,7 @@
435 i2c2: i2c@e6530000 { 435 i2c2: i2c@e6530000 {
436 #address-cells = <1>; 436 #address-cells = <1>;
437 #size-cells = <0>; 437 #size-cells = <0>;
438 compatible = "renesas,i2c-r8a7793"; 438 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
439 reg = <0 0xe6530000 0 0x40>; 439 reg = <0 0xe6530000 0 0x40>;
440 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; 440 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
441 clocks = <&mstp9_clks R8A7793_CLK_I2C2>; 441 clocks = <&mstp9_clks R8A7793_CLK_I2C2>;
@@ -447,7 +447,7 @@
447 i2c3: i2c@e6540000 { 447 i2c3: i2c@e6540000 {
448 #address-cells = <1>; 448 #address-cells = <1>;
449 #size-cells = <0>; 449 #size-cells = <0>;
450 compatible = "renesas,i2c-r8a7793"; 450 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
451 reg = <0 0xe6540000 0 0x40>; 451 reg = <0 0xe6540000 0 0x40>;
452 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; 452 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
453 clocks = <&mstp9_clks R8A7793_CLK_I2C3>; 453 clocks = <&mstp9_clks R8A7793_CLK_I2C3>;
@@ -459,7 +459,7 @@
459 i2c4: i2c@e6520000 { 459 i2c4: i2c@e6520000 {
460 #address-cells = <1>; 460 #address-cells = <1>;
461 #size-cells = <0>; 461 #size-cells = <0>;
462 compatible = "renesas,i2c-r8a7793"; 462 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
463 reg = <0 0xe6520000 0 0x40>; 463 reg = <0 0xe6520000 0 0x40>;
464 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 464 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
465 clocks = <&mstp9_clks R8A7793_CLK_I2C4>; 465 clocks = <&mstp9_clks R8A7793_CLK_I2C4>;
@@ -472,7 +472,7 @@
472 /* doesn't need pinmux */ 472 /* doesn't need pinmux */
473 #address-cells = <1>; 473 #address-cells = <1>;
474 #size-cells = <0>; 474 #size-cells = <0>;
475 compatible = "renesas,i2c-r8a7793"; 475 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
476 reg = <0 0xe6528000 0 0x40>; 476 reg = <0 0xe6528000 0 0x40>;
477 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 477 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
478 clocks = <&mstp9_clks R8A7793_CLK_I2C5>; 478 clocks = <&mstp9_clks R8A7793_CLK_I2C5>;
@@ -485,7 +485,8 @@
485 /* doesn't need pinmux */ 485 /* doesn't need pinmux */
486 #address-cells = <1>; 486 #address-cells = <1>;
487 #size-cells = <0>; 487 #size-cells = <0>;
488 compatible = "renesas,iic-r8a7793", "renesas,rmobile-iic"; 488 compatible = "renesas,iic-r8a7793", "renesas,rcar-gen2-iic",
489 "renesas,rmobile-iic";
489 reg = <0 0xe60b0000 0 0x425>; 490 reg = <0 0xe60b0000 0 0x425>;
490 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 491 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
491 clocks = <&mstp9_clks R8A7793_CLK_IICDVFS>; 492 clocks = <&mstp9_clks R8A7793_CLK_IICDVFS>;
@@ -499,7 +500,8 @@
499 i2c7: i2c@e6500000 { 500 i2c7: i2c@e6500000 {
500 #address-cells = <1>; 501 #address-cells = <1>;
501 #size-cells = <0>; 502 #size-cells = <0>;
502 compatible = "renesas,iic-r8a7793", "renesas,rmobile-iic"; 503 compatible = "renesas,iic-r8a7793", "renesas,rcar-gen2-iic",
504 "renesas,rmobile-iic";
503 reg = <0 0xe6500000 0 0x425>; 505 reg = <0 0xe6500000 0 0x425>;
504 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 506 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
505 clocks = <&mstp3_clks R8A7793_CLK_IIC0>; 507 clocks = <&mstp3_clks R8A7793_CLK_IIC0>;
@@ -513,7 +515,8 @@
513 i2c8: i2c@e6510000 { 515 i2c8: i2c@e6510000 {
514 #address-cells = <1>; 516 #address-cells = <1>;
515 #size-cells = <0>; 517 #size-cells = <0>;
516 compatible = "renesas,iic-r8a7793", "renesas,rmobile-iic"; 518 compatible = "renesas,iic-r8a7793", "renesas,rcar-gen2-iic",
519 "renesas,rmobile-iic";
517 reg = <0 0xe6510000 0 0x425>; 520 reg = <0 0xe6510000 0 0x425>;
518 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 521 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
519 clocks = <&mstp3_clks R8A7793_CLK_IIC1>; 522 clocks = <&mstp3_clks R8A7793_CLK_IIC1>;
diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi
index fb576dba748c..319c1069b7ee 100644
--- a/arch/arm/boot/dts/r8a7794.dtsi
+++ b/arch/arm/boot/dts/r8a7794.dtsi
@@ -71,7 +71,7 @@
71 #address-cells = <0>; 71 #address-cells = <0>;
72 interrupt-controller; 72 interrupt-controller;
73 reg = <0 0xf1001000 0 0x1000>, 73 reg = <0 0xf1001000 0 0x1000>,
74 <0 0xf1002000 0 0x1000>, 74 <0 0xf1002000 0 0x2000>,
75 <0 0xf1004000 0 0x2000>, 75 <0 0xf1004000 0 0x2000>,
76 <0 0xf1006000 0 0x2000>; 76 <0 0xf1006000 0 0x2000>;
77 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 77 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
@@ -611,7 +611,7 @@
611 611
612 /* The memory map in the User's Manual maps the cores to bus numbers */ 612 /* The memory map in the User's Manual maps the cores to bus numbers */
613 i2c0: i2c@e6508000 { 613 i2c0: i2c@e6508000 {
614 compatible = "renesas,i2c-r8a7794"; 614 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
615 reg = <0 0xe6508000 0 0x40>; 615 reg = <0 0xe6508000 0 0x40>;
616 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 616 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
617 clocks = <&mstp9_clks R8A7794_CLK_I2C0>; 617 clocks = <&mstp9_clks R8A7794_CLK_I2C0>;
@@ -623,7 +623,7 @@
623 }; 623 };
624 624
625 i2c1: i2c@e6518000 { 625 i2c1: i2c@e6518000 {
626 compatible = "renesas,i2c-r8a7794"; 626 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
627 reg = <0 0xe6518000 0 0x40>; 627 reg = <0 0xe6518000 0 0x40>;
628 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; 628 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
629 clocks = <&mstp9_clks R8A7794_CLK_I2C1>; 629 clocks = <&mstp9_clks R8A7794_CLK_I2C1>;
@@ -635,7 +635,7 @@
635 }; 635 };
636 636
637 i2c2: i2c@e6530000 { 637 i2c2: i2c@e6530000 {
638 compatible = "renesas,i2c-r8a7794"; 638 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
639 reg = <0 0xe6530000 0 0x40>; 639 reg = <0 0xe6530000 0 0x40>;
640 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; 640 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
641 clocks = <&mstp9_clks R8A7794_CLK_I2C2>; 641 clocks = <&mstp9_clks R8A7794_CLK_I2C2>;
@@ -647,7 +647,7 @@
647 }; 647 };
648 648
649 i2c3: i2c@e6540000 { 649 i2c3: i2c@e6540000 {
650 compatible = "renesas,i2c-r8a7794"; 650 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
651 reg = <0 0xe6540000 0 0x40>; 651 reg = <0 0xe6540000 0 0x40>;
652 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; 652 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
653 clocks = <&mstp9_clks R8A7794_CLK_I2C3>; 653 clocks = <&mstp9_clks R8A7794_CLK_I2C3>;
@@ -659,7 +659,7 @@
659 }; 659 };
660 660
661 i2c4: i2c@e6520000 { 661 i2c4: i2c@e6520000 {
662 compatible = "renesas,i2c-r8a7794"; 662 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
663 reg = <0 0xe6520000 0 0x40>; 663 reg = <0 0xe6520000 0 0x40>;
664 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 664 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
665 clocks = <&mstp9_clks R8A7794_CLK_I2C4>; 665 clocks = <&mstp9_clks R8A7794_CLK_I2C4>;
@@ -671,7 +671,7 @@
671 }; 671 };
672 672
673 i2c5: i2c@e6528000 { 673 i2c5: i2c@e6528000 {
674 compatible = "renesas,i2c-r8a7794"; 674 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
675 reg = <0 0xe6528000 0 0x40>; 675 reg = <0 0xe6528000 0 0x40>;
676 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 676 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
677 clocks = <&mstp9_clks R8A7794_CLK_I2C5>; 677 clocks = <&mstp9_clks R8A7794_CLK_I2C5>;
@@ -683,7 +683,8 @@
683 }; 683 };
684 684
685 i2c6: i2c@e6500000 { 685 i2c6: i2c@e6500000 {
686 compatible = "renesas,iic-r8a7794", "renesas,rmobile-iic"; 686 compatible = "renesas,iic-r8a7794", "renesas,rcar-gen2-iic",
687 "renesas,rmobile-iic";
687 reg = <0 0xe6500000 0 0x425>; 688 reg = <0 0xe6500000 0 0x425>;
688 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 689 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
689 clocks = <&mstp3_clks R8A7794_CLK_IIC0>; 690 clocks = <&mstp3_clks R8A7794_CLK_IIC0>;
@@ -697,7 +698,8 @@
697 }; 698 };
698 699
699 i2c7: i2c@e6510000 { 700 i2c7: i2c@e6510000 {
700 compatible = "renesas,iic-r8a7794", "renesas,rmobile-iic"; 701 compatible = "renesas,iic-r8a7794", "renesas,rcar-gen2-iic",
702 "renesas,rmobile-iic";
701 reg = <0 0xe6510000 0 0x425>; 703 reg = <0 0xe6510000 0 0x425>;
702 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 704 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
703 clocks = <&mstp3_clks R8A7794_CLK_IIC1>; 705 clocks = <&mstp3_clks R8A7794_CLK_IIC1>;
@@ -878,7 +880,8 @@
878 }; 880 };
879 881
880 usbphy: usb-phy@e6590100 { 882 usbphy: usb-phy@e6590100 {
881 compatible = "renesas,usb-phy-r8a7794"; 883 compatible = "renesas,usb-phy-r8a7794",
884 "renesas,rcar-gen2-usb-phy";
882 reg = <0 0xe6590100 0 0x100>; 885 reg = <0 0xe6590100 0 0x100>;
883 #address-cells = <1>; 886 #address-cells = <1>;
884 #size-cells = <0>; 887 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/rk1108.dtsi b/arch/arm/boot/dts/rk1108.dtsi
index d7700235e0f5..d6194bff7afe 100644
--- a/arch/arm/boot/dts/rk1108.dtsi
+++ b/arch/arm/boot/dts/rk1108.dtsi
@@ -215,7 +215,7 @@
215 #address-cells = <0>; 215 #address-cells = <0>;
216 216
217 reg = <0x32011000 0x1000>, 217 reg = <0x32011000 0x1000>,
218 <0x32012000 0x1000>, 218 <0x32012000 0x2000>,
219 <0x32014000 0x2000>, 219 <0x32014000 0x2000>,
220 <0x32016000 0x2000>; 220 <0x32016000 0x2000>;
221 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>; 221 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
diff --git a/arch/arm/boot/dts/rk3036-evb.dts b/arch/arm/boot/dts/rk3036-evb.dts
index 2f5f15524fba..c0953410121b 100644
--- a/arch/arm/boot/dts/rk3036-evb.dts
+++ b/arch/arm/boot/dts/rk3036-evb.dts
@@ -56,7 +56,7 @@
56 pinctrl-names = "default"; 56 pinctrl-names = "default";
57 pinctrl-0 = <&emac_xfer>, <&emac_mdio>; 57 pinctrl-0 = <&emac_xfer>, <&emac_mdio>;
58 phy = <&phy0>; 58 phy = <&phy0>;
59 phy-reset-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>; /* PHY_RST */ 59 phy-reset-gpios = <&gpio2 RK_PC6 GPIO_ACTIVE_LOW>; /* PHY_RST */
60 phy-reset-duration = <10>; /* millisecond */ 60 phy-reset-duration = <10>; /* millisecond */
61 61
62 status = "okay"; 62 status = "okay";
diff --git a/arch/arm/boot/dts/rk3036-kylin.dts b/arch/arm/boot/dts/rk3036-kylin.dts
index 3de958ec29c0..5726135b7f8a 100644
--- a/arch/arm/boot/dts/rk3036-kylin.dts
+++ b/arch/arm/boot/dts/rk3036-kylin.dts
@@ -55,7 +55,7 @@
55 compatible = "gpio-leds"; 55 compatible = "gpio-leds";
56 56
57 work { 57 work {
58 gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>; 58 gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
59 label = "kylin:red:led"; 59 label = "kylin:red:led";
60 pinctrl-names = "default"; 60 pinctrl-names = "default";
61 pinctrl-0 = <&led_ctl>; 61 pinctrl-0 = <&led_ctl>;
@@ -74,9 +74,9 @@
74 * - SDIO_RESET_L_WL_RST 74 * - SDIO_RESET_L_WL_RST
75 * - SDIO_RESET_L_BT_EN 75 * - SDIO_RESET_L_BT_EN
76 */ 76 */
77 reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>, /* WL_REG_ON */ 77 reset-gpios = <&gpio0 RK_PD2 GPIO_ACTIVE_LOW>, /* WL_REG_ON */
78 <&gpio0 27 GPIO_ACTIVE_LOW>, /* WL_RST */ 78 <&gpio0 RK_PD3 GPIO_ACTIVE_LOW>, /* WL_RST */
79 <&gpio2 9 GPIO_ACTIVE_LOW>; /* BT_EN */ 79 <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; /* BT_EN */
80 }; 80 };
81 81
82 sound { 82 sound {
@@ -121,7 +121,7 @@
121 pinctrl-names = "default"; 121 pinctrl-names = "default";
122 pinctrl-0 = <&emac_xfer>, <&emac_mdio>; 122 pinctrl-0 = <&emac_xfer>, <&emac_mdio>;
123 phy = <&phy0>; 123 phy = <&phy0>;
124 phy-reset-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>; /* PHY_RST */ 124 phy-reset-gpios = <&gpio2 RK_PC6 GPIO_ACTIVE_LOW>; /* PHY_RST */
125 phy-reset-duration = <10>; /* millisecond */ 125 phy-reset-duration = <10>; /* millisecond */
126 126
127 status = "okay"; 127 status = "okay";
@@ -148,7 +148,7 @@
148 compatible = "rockchip,rk808"; 148 compatible = "rockchip,rk808";
149 reg = <0x1b>; 149 reg = <0x1b>;
150 interrupt-parent = <&gpio2>; 150 interrupt-parent = <&gpio2>;
151 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 151 interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
152 pinctrl-names = "default"; 152 pinctrl-names = "default";
153 pinctrl-0 = <&pmic_int &global_pwroff>; 153 pinctrl-0 = <&pmic_int &global_pwroff>;
154 rockchip,system-power-controller; 154 rockchip,system-power-controller;
diff --git a/arch/arm/boot/dts/rk3036.dtsi b/arch/arm/boot/dts/rk3036.dtsi
index 4ed49a243e5c..ff9b90bfaefd 100644
--- a/arch/arm/boot/dts/rk3036.dtsi
+++ b/arch/arm/boot/dts/rk3036.dtsi
@@ -189,7 +189,7 @@
189 #address-cells = <0>; 189 #address-cells = <0>;
190 190
191 reg = <0x10139000 0x1000>, 191 reg = <0x10139000 0x1000>,
192 <0x1013a000 0x1000>, 192 <0x1013a000 0x2000>,
193 <0x1013c000 0x2000>, 193 <0x1013c000 0x2000>,
194 <0x1013e000 0x2000>; 194 <0x1013e000 0x2000>;
195 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 195 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
diff --git a/arch/arm/boot/dts/rk3066a-bqcurie2.dts b/arch/arm/boot/dts/rk3066a-bqcurie2.dts
index c0d8b5446ba7..e1f5198723b2 100644
--- a/arch/arm/boot/dts/rk3066a-bqcurie2.dts
+++ b/arch/arm/boot/dts/rk3066a-bqcurie2.dts
@@ -71,7 +71,7 @@
71 regulator-name = "sdmmc-supply"; 71 regulator-name = "sdmmc-supply";
72 regulator-min-microvolt = <3000000>; 72 regulator-min-microvolt = <3000000>;
73 regulator-max-microvolt = <3000000>; 73 regulator-max-microvolt = <3000000>;
74 gpio = <&gpio3 7 GPIO_ACTIVE_LOW>; 74 gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>;
75 startup-delay-us = <100000>; 75 startup-delay-us = <100000>;
76 vin-supply = <&vcc_io>; 76 vin-supply = <&vcc_io>;
77 }; 77 };
@@ -81,7 +81,7 @@
81 autorepeat; 81 autorepeat;
82 82
83 power { 83 power {
84 gpios = <&gpio6 2 GPIO_ACTIVE_LOW>; /* GPIO6_A2 */ 84 gpios = <&gpio6 RK_PA2 GPIO_ACTIVE_LOW>; /* GPIO6_A2 */
85 linux,code = <KEY_POWER>; 85 linux,code = <KEY_POWER>;
86 label = "GPIO Key Power"; 86 label = "GPIO Key Power";
87 linux,input-type = <1>; 87 linux,input-type = <1>;
@@ -89,7 +89,7 @@
89 debounce-interval = <100>; 89 debounce-interval = <100>;
90 }; 90 };
91 volume-down { 91 volume-down {
92 gpios = <&gpio4 21 GPIO_ACTIVE_LOW>; /* GPIO4_C5 */ 92 gpios = <&gpio4 RK_PC5 GPIO_ACTIVE_LOW>; /* GPIO4_C5 */
93 linux,code = <KEY_VOLUMEDOWN>; 93 linux,code = <KEY_VOLUMEDOWN>;
94 label = "GPIO Key Vol-"; 94 label = "GPIO Key Vol-";
95 linux,input-type = <1>; 95 linux,input-type = <1>;
@@ -111,7 +111,7 @@
111 reg = <0x2d>; 111 reg = <0x2d>;
112 112
113 interrupt-parent = <&gpio6>; 113 interrupt-parent = <&gpio6>;
114 interrupts = <6 IRQ_TYPE_LEVEL_LOW>; 114 interrupts = <RK_PA6 IRQ_TYPE_LEVEL_LOW>;
115 115
116 vcc5-supply = <&vcc_io>; 116 vcc5-supply = <&vcc_io>;
117 vcc6-supply = <&vcc_io>; 117 vcc6-supply = <&vcc_io>;
diff --git a/arch/arm/boot/dts/rk3066a-marsboard.dts b/arch/arm/boot/dts/rk3066a-marsboard.dts
index 0a54c4beff8d..c6d92c25df42 100644
--- a/arch/arm/boot/dts/rk3066a-marsboard.dts
+++ b/arch/arm/boot/dts/rk3066a-marsboard.dts
@@ -69,7 +69,7 @@
69 regulator-name = "sdmmc-supply"; 69 regulator-name = "sdmmc-supply";
70 regulator-min-microvolt = <3000000>; 70 regulator-min-microvolt = <3000000>;
71 regulator-max-microvolt = <3000000>; 71 regulator-max-microvolt = <3000000>;
72 gpio = <&gpio3 7 GPIO_ACTIVE_LOW>; 72 gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>;
73 startup-delay-us = <100000>; 73 startup-delay-us = <100000>;
74 vin-supply = <&vcc_io>; 74 vin-supply = <&vcc_io>;
75 }; 75 };
@@ -91,7 +91,7 @@
91 reg = <0x2d>; 91 reg = <0x2d>;
92 92
93 interrupt-parent = <&gpio6>; 93 interrupt-parent = <&gpio6>;
94 interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 94 interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
95 95
96 vcc1-supply = <&vsys>; 96 vcc1-supply = <&vsys>;
97 vcc2-supply = <&vsys>; 97 vcc2-supply = <&vsys>;
@@ -186,7 +186,7 @@
186 phy0: ethernet-phy@0 { 186 phy0: ethernet-phy@0 {
187 reg = <0>; 187 reg = <0>;
188 interrupt-parent = <&gpio1>; 188 interrupt-parent = <&gpio1>;
189 interrupts = <26 IRQ_TYPE_LEVEL_LOW>; 189 interrupts = <RK_PD2 IRQ_TYPE_LEVEL_LOW>;
190 }; 190 };
191}; 191};
192 192
diff --git a/arch/arm/boot/dts/rk3066a-mk808.dts b/arch/arm/boot/dts/rk3066a-mk808.dts
index 658eb7ddeaf5..7ca1cf5241e0 100644
--- a/arch/arm/boot/dts/rk3066a-mk808.dts
+++ b/arch/arm/boot/dts/rk3066a-mk808.dts
@@ -61,7 +61,7 @@
61 61
62 blue { 62 blue {
63 label = "mk808:blue:power"; 63 label = "mk808:blue:power";
64 gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>; 64 gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>;
65 default-state = "off"; 65 default-state = "off";
66 linux,default-trigger = "default-on"; 66 linux,default-trigger = "default-on";
67 }; 67 };
@@ -77,7 +77,7 @@
77 vcc_host: usb-host-regulator { 77 vcc_host: usb-host-regulator {
78 compatible = "regulator-fixed"; 78 compatible = "regulator-fixed";
79 enable-active-high; 79 enable-active-high;
80 gpio = <&gpio0 6 GPIO_ACTIVE_HIGH>; 80 gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
81 pinctrl-0 = <&host_drv>; 81 pinctrl-0 = <&host_drv>;
82 pinctrl-names = "default"; 82 pinctrl-names = "default";
83 regulator-always-on; 83 regulator-always-on;
@@ -91,7 +91,7 @@
91 vcc_otg: usb-otg-regulator { 91 vcc_otg: usb-otg-regulator {
92 compatible = "regulator-fixed"; 92 compatible = "regulator-fixed";
93 enable-active-high; 93 enable-active-high;
94 gpio = <&gpio0 5 GPIO_ACTIVE_HIGH>; 94 gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
95 pinctrl-0 = <&otg_drv>; 95 pinctrl-0 = <&otg_drv>;
96 pinctrl-names = "default"; 96 pinctrl-names = "default";
97 regulator-always-on; 97 regulator-always-on;
@@ -104,7 +104,7 @@
104 104
105 vcc_sd: sdmmc-regulator { 105 vcc_sd: sdmmc-regulator {
106 compatible = "regulator-fixed"; 106 compatible = "regulator-fixed";
107 gpio = <&gpio3 7 GPIO_ACTIVE_LOW>; 107 gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>;
108 pinctrl-0 = <&sdmmc_pwr>; 108 pinctrl-0 = <&sdmmc_pwr>;
109 pinctrl-names = "default"; 109 pinctrl-names = "default";
110 regulator-name = "vcc_sd"; 110 regulator-name = "vcc_sd";
@@ -117,7 +117,7 @@
117 vcc_wifi: sdio-regulator { 117 vcc_wifi: sdio-regulator {
118 compatible = "regulator-fixed"; 118 compatible = "regulator-fixed";
119 enable-active-high; 119 enable-active-high;
120 gpio = <&gpio3 24 GPIO_ACTIVE_HIGH>; 120 gpio = <&gpio3 RK_PD0 GPIO_ACTIVE_HIGH>;
121 pinctrl-0 = <&wifi_pwr>; 121 pinctrl-0 = <&wifi_pwr>;
122 pinctrl-names = "default"; 122 pinctrl-names = "default";
123 regulator-name = "vcc_wifi"; 123 regulator-name = "vcc_wifi";
diff --git a/arch/arm/boot/dts/rk3066a-rayeager.dts b/arch/arm/boot/dts/rk3066a-rayeager.dts
index 82465b644443..8907deaab18e 100644
--- a/arch/arm/boot/dts/rk3066a-rayeager.dts
+++ b/arch/arm/boot/dts/rk3066a-rayeager.dts
@@ -55,7 +55,7 @@
55 55
56 ir: ir-receiver { 56 ir: ir-receiver {
57 compatible = "gpio-ir-receiver"; 57 compatible = "gpio-ir-receiver";
58 gpios = <&gpio6 1 GPIO_ACTIVE_LOW>; 58 gpios = <&gpio6 RK_PA1 GPIO_ACTIVE_LOW>;
59 pinctrl-names = "default"; 59 pinctrl-names = "default";
60 pinctrl-0 = <&ir_int>; 60 pinctrl-0 = <&ir_int>;
61 }; 61 };
@@ -65,7 +65,7 @@
65 65
66 power { 66 power {
67 wakeup-source; 67 wakeup-source;
68 gpios = <&gpio6 2 GPIO_ACTIVE_LOW>; 68 gpios = <&gpio6 RK_PA2 GPIO_ACTIVE_LOW>;
69 label = "GPIO Power"; 69 label = "GPIO Power";
70 linux,code = <KEY_POWER>; 70 linux,code = <KEY_POWER>;
71 pinctrl-names = "default"; 71 pinctrl-names = "default";
@@ -115,7 +115,7 @@
115 vcc_sata: sata-regulator { 115 vcc_sata: sata-regulator {
116 compatible = "regulator-fixed"; 116 compatible = "regulator-fixed";
117 enable-active-high; 117 enable-active-high;
118 gpio = <&gpio4 22 GPIO_ACTIVE_HIGH>; 118 gpio = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
119 pinctrl-names = "default"; 119 pinctrl-names = "default";
120 pinctrl-0 = <&sata_pwr>; 120 pinctrl-0 = <&sata_pwr>;
121 regulator-name = "usb_5v"; 121 regulator-name = "usb_5v";
@@ -127,7 +127,7 @@
127 127
128 vcc_sd: sdmmc-regulator { 128 vcc_sd: sdmmc-regulator {
129 compatible = "regulator-fixed"; 129 compatible = "regulator-fixed";
130 gpio = <&gpio3 7 GPIO_ACTIVE_LOW>; 130 gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>;
131 pinctrl-names = "default"; 131 pinctrl-names = "default";
132 pinctrl-0 = <&sdmmc_pwr>; 132 pinctrl-0 = <&sdmmc_pwr>;
133 regulator-name = "vcc_sd"; 133 regulator-name = "vcc_sd";
@@ -140,7 +140,7 @@
140 vcc_host: usb-host-regulator { 140 vcc_host: usb-host-regulator {
141 compatible = "regulator-fixed"; 141 compatible = "regulator-fixed";
142 enable-active-high; 142 enable-active-high;
143 gpio = <&gpio0 6 GPIO_ACTIVE_HIGH>; 143 gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
144 pinctrl-names = "default"; 144 pinctrl-names = "default";
145 pinctrl-0 = <&host_drv>; 145 pinctrl-0 = <&host_drv>;
146 regulator-name = "host-pwr"; 146 regulator-name = "host-pwr";
@@ -153,7 +153,7 @@
153 vcc_otg: usb-otg-regulator { 153 vcc_otg: usb-otg-regulator {
154 compatible = "regulator-fixed"; 154 compatible = "regulator-fixed";
155 enable-active-high; 155 enable-active-high;
156 gpio = <&gpio0 5 GPIO_ACTIVE_HIGH>; 156 gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
157 pinctrl-names = "default"; 157 pinctrl-names = "default";
158 pinctrl-0 = <&otg_drv>; 158 pinctrl-0 = <&otg_drv>;
159 regulator-name = "vcc_otg"; 159 regulator-name = "vcc_otg";
@@ -201,7 +201,7 @@
201 compatible = "asahi-kasei,ak8975"; 201 compatible = "asahi-kasei,ak8975";
202 reg = <0x0d>; 202 reg = <0x0d>;
203 interrupt-parent = <&gpio4>; 203 interrupt-parent = <&gpio4>;
204 interrupts = <17 IRQ_TYPE_EDGE_RISING>; 204 interrupts = <RK_PC1 IRQ_TYPE_EDGE_RISING>;
205 pinctrl-names = "default"; 205 pinctrl-names = "default";
206 pinctrl-0 = <&comp_int>; 206 pinctrl-0 = <&comp_int>;
207 }; 207 };
@@ -210,7 +210,7 @@
210 compatible = "fsl,mma8452"; 210 compatible = "fsl,mma8452";
211 reg = <0x1d>; 211 reg = <0x1d>;
212 interrupt-parent = <&gpio4>; 212 interrupt-parent = <&gpio4>;
213 interrupts = <16 IRQ_TYPE_EDGE_RISING>; 213 interrupts = <RK_PC0 IRQ_TYPE_EDGE_RISING>;
214 pinctrl-names = "default"; 214 pinctrl-names = "default";
215 pinctrl-0 = <&gsensor_int>; 215 pinctrl-0 = <&gsensor_int>;
216 }; 216 };
@@ -223,7 +223,7 @@
223 tps: tps@2d { 223 tps: tps@2d {
224 reg = <0x2d>; 224 reg = <0x2d>;
225 interrupt-parent = <&gpio6>; 225 interrupt-parent = <&gpio6>;
226 interrupts = <4 IRQ_TYPE_EDGE_RISING>; 226 interrupts = <RK_PA4 IRQ_TYPE_EDGE_RISING>;
227 pinctrl-names = "default"; 227 pinctrl-names = "default";
228 pinctrl-0 = <&pmic_int>, <&pwr_hold>; 228 pinctrl-0 = <&pmic_int>, <&pwr_hold>;
229 229
diff --git a/arch/arm/boot/dts/rk3066a.dtsi b/arch/arm/boot/dts/rk3066a.dtsi
index e498c362b9e7..f50481fd8e5c 100644
--- a/arch/arm/boot/dts/rk3066a.dtsi
+++ b/arch/arm/boot/dts/rk3066a.dtsi
@@ -687,6 +687,7 @@
687}; 687};
688 688
689&uart0 { 689&uart0 {
690 compatible = "rockchip,rk3066-uart", "snps,dw-apb-uart";
690 dmas = <&dmac1_s 0>, <&dmac1_s 1>; 691 dmas = <&dmac1_s 0>, <&dmac1_s 1>;
691 dma-names = "tx", "rx"; 692 dma-names = "tx", "rx";
692 pinctrl-names = "default"; 693 pinctrl-names = "default";
@@ -694,6 +695,7 @@
694}; 695};
695 696
696&uart1 { 697&uart1 {
698 compatible = "rockchip,rk3066-uart", "snps,dw-apb-uart";
697 dmas = <&dmac1_s 2>, <&dmac1_s 3>; 699 dmas = <&dmac1_s 2>, <&dmac1_s 3>;
698 dma-names = "tx", "rx"; 700 dma-names = "tx", "rx";
699 pinctrl-names = "default"; 701 pinctrl-names = "default";
@@ -701,6 +703,7 @@
701}; 703};
702 704
703&uart2 { 705&uart2 {
706 compatible = "rockchip,rk3066-uart", "snps,dw-apb-uart";
704 dmas = <&dmac2 6>, <&dmac2 7>; 707 dmas = <&dmac2 6>, <&dmac2 7>;
705 dma-names = "tx", "rx"; 708 dma-names = "tx", "rx";
706 pinctrl-names = "default"; 709 pinctrl-names = "default";
@@ -708,6 +711,7 @@
708}; 711};
709 712
710&uart3 { 713&uart3 {
714 compatible = "rockchip,rk3066-uart", "snps,dw-apb-uart";
711 dmas = <&dmac2 8>, <&dmac2 9>; 715 dmas = <&dmac2 8>, <&dmac2 9>;
712 dma-names = "tx", "rx"; 716 dma-names = "tx", "rx";
713 pinctrl-names = "default"; 717 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/rk3188-px3-evb.dts b/arch/arm/boot/dts/rk3188-px3-evb.dts
index df727bafd6dc..5b2a0b6885cd 100644
--- a/arch/arm/boot/dts/rk3188-px3-evb.dts
+++ b/arch/arm/boot/dts/rk3188-px3-evb.dts
@@ -62,7 +62,7 @@
62 autorepeat; 62 autorepeat;
63 63
64 power { 64 power {
65 gpios = <&gpio0 4 GPIO_ACTIVE_LOW>; 65 gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
66 linux,code = <KEY_POWER>; 66 linux,code = <KEY_POWER>;
67 label = "GPIO Key Power"; 67 label = "GPIO Key Power";
68 linux,input-type = <1>; 68 linux,input-type = <1>;
@@ -102,7 +102,7 @@
102 compatible = "bosch,bma250"; 102 compatible = "bosch,bma250";
103 reg = <0x18>; 103 reg = <0x18>;
104 interrupt-parent = <&gpio0>; 104 interrupt-parent = <&gpio0>;
105 interrupts = <15 IRQ_TYPE_LEVEL_LOW>; 105 interrupts = <RK_PB7 IRQ_TYPE_LEVEL_LOW>;
106 }; 106 };
107}; 107};
108 108
@@ -114,7 +114,7 @@
114 compatible = "rockchip,rk818"; 114 compatible = "rockchip,rk818";
115 reg = <0x1c>; 115 reg = <0x1c>;
116 interrupt-parent = <&gpio0>; 116 interrupt-parent = <&gpio0>;
117 interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 117 interrupts = <RK_PB3 IRQ_TYPE_LEVEL_LOW>;
118 rockchip,system-power-controller; 118 rockchip,system-power-controller;
119 wakeup-source; 119 wakeup-source;
120 #clock-cells = <1>; 120 #clock-cells = <1>;
@@ -247,8 +247,8 @@
247 compatible = "silead,gsl1680"; 247 compatible = "silead,gsl1680";
248 reg = <0x40>; 248 reg = <0x40>;
249 interrupt-parent = <&gpio1>; 249 interrupt-parent = <&gpio1>;
250 interrupts = <15 IRQ_TYPE_EDGE_FALLING>; 250 interrupts = <RK_PB7 IRQ_TYPE_EDGE_FALLING>;
251 power-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>; 251 power-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
252 touchscreen-size-x = <800>; 252 touchscreen-size-x = <800>;
253 touchscreen-size-y = <1280>; 253 touchscreen-size-y = <1280>;
254 silead,max-fingers = <5>; 254 silead,max-fingers = <5>;
diff --git a/arch/arm/boot/dts/rk3188-radxarock.dts b/arch/arm/boot/dts/rk3188-radxarock.dts
index 5e8a235ed02d..ca0a1c4bc15c 100644
--- a/arch/arm/boot/dts/rk3188-radxarock.dts
+++ b/arch/arm/boot/dts/rk3188-radxarock.dts
@@ -58,7 +58,7 @@
58 autorepeat; 58 autorepeat;
59 59
60 power { 60 power {
61 gpios = <&gpio0 4 GPIO_ACTIVE_LOW>; 61 gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
62 linux,code = <KEY_POWER>; 62 linux,code = <KEY_POWER>;
63 label = "GPIO Key Power"; 63 label = "GPIO Key Power";
64 linux,input-type = <1>; 64 linux,input-type = <1>;
@@ -72,19 +72,19 @@
72 72
73 green { 73 green {
74 label = "rock:green:user1"; 74 label = "rock:green:user1";
75 gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; 75 gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_LOW>;
76 default-state = "off"; 76 default-state = "off";
77 }; 77 };
78 78
79 blue { 79 blue {
80 label = "rock:blue:user2"; 80 label = "rock:blue:user2";
81 gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; 81 gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>;
82 default-state = "off"; 82 default-state = "off";
83 }; 83 };
84 84
85 sleep { 85 sleep {
86 label = "rock:red:power"; 86 label = "rock:red:power";
87 gpios = <&gpio0 15 0>; 87 gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
88 default-state = "off"; 88 default-state = "off";
89 }; 89 };
90 }; 90 };
@@ -106,7 +106,7 @@
106 106
107 ir_recv: gpio-ir-receiver { 107 ir_recv: gpio-ir-receiver {
108 compatible = "gpio-ir-receiver"; 108 compatible = "gpio-ir-receiver";
109 gpios = <&gpio0 10 1>; 109 gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
110 pinctrl-names = "default"; 110 pinctrl-names = "default";
111 pinctrl-0 = <&ir_recv_pin>; 111 pinctrl-0 = <&ir_recv_pin>;
112 }; 112 };
@@ -114,7 +114,7 @@
114 vcc_otg: usb-otg-regulator { 114 vcc_otg: usb-otg-regulator {
115 compatible = "regulator-fixed"; 115 compatible = "regulator-fixed";
116 enable-active-high; 116 enable-active-high;
117 gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>; 117 gpio = <&gpio2 RK_PD7 GPIO_ACTIVE_HIGH>;
118 pinctrl-names = "default"; 118 pinctrl-names = "default";
119 pinctrl-0 = <&otg_vbus_drv>; 119 pinctrl-0 = <&otg_vbus_drv>;
120 regulator-name = "otg-vbus"; 120 regulator-name = "otg-vbus";
@@ -129,7 +129,7 @@
129 regulator-name = "sdmmc-supply"; 129 regulator-name = "sdmmc-supply";
130 regulator-min-microvolt = <3300000>; 130 regulator-min-microvolt = <3300000>;
131 regulator-max-microvolt = <3300000>; 131 regulator-max-microvolt = <3300000>;
132 gpio = <&gpio3 1 GPIO_ACTIVE_LOW>; 132 gpio = <&gpio3 RK_PA1 GPIO_ACTIVE_LOW>;
133 startup-delay-us = <100000>; 133 startup-delay-us = <100000>;
134 vin-supply = <&vcc_io>; 134 vin-supply = <&vcc_io>;
135 }; 135 };
@@ -137,7 +137,7 @@
137 vcc_host: usb-host-regulator { 137 vcc_host: usb-host-regulator {
138 compatible = "regulator-fixed"; 138 compatible = "regulator-fixed";
139 enable-active-high; 139 enable-active-high;
140 gpio = <&gpio0 3 GPIO_ACTIVE_HIGH>; 140 gpio = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>;
141 pinctrl-names = "default"; 141 pinctrl-names = "default";
142 pinctrl-0 = <&host_vbus_drv>; 142 pinctrl-0 = <&host_vbus_drv>;
143 regulator-name = "host-pwr"; 143 regulator-name = "host-pwr";
@@ -168,7 +168,7 @@
168 phy0: ethernet-phy@0 { 168 phy0: ethernet-phy@0 {
169 reg = <0>; 169 reg = <0>;
170 interrupt-parent = <&gpio3>; 170 interrupt-parent = <&gpio3>;
171 interrupts = <26 IRQ_TYPE_LEVEL_LOW>; 171 interrupts = <RK_PD2 IRQ_TYPE_LEVEL_LOW>;
172 }; 172 };
173}; 173};
174 174
@@ -184,7 +184,7 @@
184 compatible = "haoyu,hym8563"; 184 compatible = "haoyu,hym8563";
185 reg = <0x51>; 185 reg = <0x51>;
186 interrupt-parent = <&gpio0>; 186 interrupt-parent = <&gpio0>;
187 interrupts = <13 IRQ_TYPE_EDGE_FALLING>; 187 interrupts = <RK_PB5 IRQ_TYPE_EDGE_FALLING>;
188 pinctrl-names = "default"; 188 pinctrl-names = "default";
189 pinctrl-0 = <&rtc_int>; 189 pinctrl-0 = <&rtc_int>;
190 #clock-cells = <0>; 190 #clock-cells = <0>;
diff --git a/arch/arm/boot/dts/rk3188.dtsi b/arch/arm/boot/dts/rk3188.dtsi
index 869e189331ec..cf91254d0a43 100644
--- a/arch/arm/boot/dts/rk3188.dtsi
+++ b/arch/arm/boot/dts/rk3188.dtsi
@@ -599,21 +599,25 @@
599}; 599};
600 600
601&uart0 { 601&uart0 {
602 compatible = "rockchip,rk3188-uart", "snps,dw-apb-uart";
602 pinctrl-names = "default"; 603 pinctrl-names = "default";
603 pinctrl-0 = <&uart0_xfer>; 604 pinctrl-0 = <&uart0_xfer>;
604}; 605};
605 606
606&uart1 { 607&uart1 {
608 compatible = "rockchip,rk3188-uart", "snps,dw-apb-uart";
607 pinctrl-names = "default"; 609 pinctrl-names = "default";
608 pinctrl-0 = <&uart1_xfer>; 610 pinctrl-0 = <&uart1_xfer>;
609}; 611};
610 612
611&uart2 { 613&uart2 {
614 compatible = "rockchip,rk3188-uart", "snps,dw-apb-uart";
612 pinctrl-names = "default"; 615 pinctrl-names = "default";
613 pinctrl-0 = <&uart2_xfer>; 616 pinctrl-0 = <&uart2_xfer>;
614}; 617};
615 618
616&uart3 { 619&uart3 {
620 compatible = "rockchip,rk3188-uart", "snps,dw-apb-uart";
617 pinctrl-names = "default"; 621 pinctrl-names = "default";
618 pinctrl-0 = <&uart3_xfer>; 622 pinctrl-0 = <&uart3_xfer>;
619}; 623};
diff --git a/arch/arm/boot/dts/rk3229-evb.dts b/arch/arm/boot/dts/rk3229-evb.dts
index dcdd0cee619e..275092a950ef 100644
--- a/arch/arm/boot/dts/rk3229-evb.dts
+++ b/arch/arm/boot/dts/rk3229-evb.dts
@@ -77,7 +77,7 @@
77 phy-mode = "rgmii"; 77 phy-mode = "rgmii";
78 pinctrl-names = "default"; 78 pinctrl-names = "default";
79 pinctrl-0 = <&rgmii_pins>; 79 pinctrl-0 = <&rgmii_pins>;
80 snps,reset-gpio = <&gpio2 24 GPIO_ACTIVE_LOW>; 80 snps,reset-gpio = <&gpio2 RK_PD0 GPIO_ACTIVE_LOW>;
81 snps,reset-active-low; 81 snps,reset-active-low;
82 snps,reset-delays-us = <0 10000 1000000>; 82 snps,reset-delays-us = <0 10000 1000000>;
83 tx_delay = <0x30>; 83 tx_delay = <0x30>;
diff --git a/arch/arm/boot/dts/rk322x.dtsi b/arch/arm/boot/dts/rk322x.dtsi
index 9d3aee5abc15..9dff8221112c 100644
--- a/arch/arm/boot/dts/rk322x.dtsi
+++ b/arch/arm/boot/dts/rk322x.dtsi
@@ -443,7 +443,7 @@
443 #address-cells = <0>; 443 #address-cells = <0>;
444 444
445 reg = <0x32011000 0x1000>, 445 reg = <0x32011000 0x1000>,
446 <0x32012000 0x1000>, 446 <0x32012000 0x2000>,
447 <0x32014000 0x2000>, 447 <0x32014000 0x2000>,
448 <0x32016000 0x2000>; 448 <0x32016000 0x2000>;
449 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 449 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
diff --git a/arch/arm/boot/dts/rk3288-evb-act8846.dts b/arch/arm/boot/dts/rk3288-evb-act8846.dts
index 041dd5d2d18c..b9418d170502 100644
--- a/arch/arm/boot/dts/rk3288-evb-act8846.dts
+++ b/arch/arm/boot/dts/rk3288-evb-act8846.dts
@@ -47,7 +47,7 @@
47 vcc_lcd: vcc-lcd { 47 vcc_lcd: vcc-lcd {
48 compatible = "regulator-fixed"; 48 compatible = "regulator-fixed";
49 enable-active-high; 49 enable-active-high;
50 gpio = <&gpio7 3 GPIO_ACTIVE_HIGH>; 50 gpio = <&gpio7 RK_PA3 GPIO_ACTIVE_HIGH>;
51 pinctrl-names = "default"; 51 pinctrl-names = "default";
52 pinctrl-0 = <&lcd_en>; 52 pinctrl-0 = <&lcd_en>;
53 regulator-name = "vcc_lcd"; 53 regulator-name = "vcc_lcd";
@@ -57,7 +57,7 @@
57 vcc_wl: vcc-wl { 57 vcc_wl: vcc-wl {
58 compatible = "regulator-fixed"; 58 compatible = "regulator-fixed";
59 enable-active-high; 59 enable-active-high;
60 gpio = <&gpio7 9 GPIO_ACTIVE_HIGH>; 60 gpio = <&gpio7 RK_PB1 GPIO_ACTIVE_HIGH>;
61 pinctrl-names = "default"; 61 pinctrl-names = "default";
62 pinctrl-0 = <&wifi_pwr>; 62 pinctrl-0 = <&wifi_pwr>;
63 regulator-name = "vcc_wl"; 63 regulator-name = "vcc_wl";
@@ -96,7 +96,7 @@
96 reg = <0x51>; 96 reg = <0x51>;
97 97
98 interrupt-parent = <&gpio0>; 98 interrupt-parent = <&gpio0>;
99 interrupts = <4 IRQ_TYPE_EDGE_FALLING>; 99 interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
100 100
101 pinctrl-names = "default"; 101 pinctrl-names = "default";
102 pinctrl-0 = <&pmic_int>; 102 pinctrl-0 = <&pmic_int>;
diff --git a/arch/arm/boot/dts/rk3288-evb-rk808.dts b/arch/arm/boot/dts/rk3288-evb-rk808.dts
index 44ebc6e59b3a..56c266df01c1 100644
--- a/arch/arm/boot/dts/rk3288-evb-rk808.dts
+++ b/arch/arm/boot/dts/rk3288-evb-rk808.dts
@@ -52,7 +52,7 @@
52 compatible = "rockchip,rk808"; 52 compatible = "rockchip,rk808";
53 reg = <0x1b>; 53 reg = <0x1b>;
54 interrupt-parent = <&gpio0>; 54 interrupt-parent = <&gpio0>;
55 interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 55 interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
56 pinctrl-names = "default"; 56 pinctrl-names = "default";
57 pinctrl-0 = <&pmic_int &global_pwroff>; 57 pinctrl-0 = <&pmic_int &global_pwroff>;
58 rockchip,system-power-controller; 58 rockchip,system-power-controller;
diff --git a/arch/arm/boot/dts/rk3288-evb.dtsi b/arch/arm/boot/dts/rk3288-evb.dtsi
index bf7ccfad3260..0dec94c3583b 100644
--- a/arch/arm/boot/dts/rk3288-evb.dtsi
+++ b/arch/arm/boot/dts/rk3288-evb.dtsi
@@ -84,7 +84,7 @@
84 240 241 242 243 244 245 246 247 84 240 241 242 243 244 245 246 247
85 248 249 250 251 252 253 254 255>; 85 248 249 250 251 252 253 254 255>;
86 default-brightness-level = <128>; 86 default-brightness-level = <128>;
87 enable-gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>; 87 enable-gpios = <&gpio7 RK_PA2 GPIO_ACTIVE_HIGH>;
88 pinctrl-names = "default"; 88 pinctrl-names = "default";
89 pinctrl-0 = <&bl_en>; 89 pinctrl-0 = <&bl_en>;
90 pwms = <&pwm0 0 1000000 PWM_POLARITY_INVERTED>; 90 pwms = <&pwm0 0 1000000 PWM_POLARITY_INVERTED>;
@@ -100,7 +100,7 @@
100 panel: panel { 100 panel: panel {
101 compatible ="lg,lp079qx1-sp0v", "simple-panel"; 101 compatible ="lg,lp079qx1-sp0v", "simple-panel";
102 backlight = <&backlight>; 102 backlight = <&backlight>;
103 enable-gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>; 103 enable-gpios = <&gpio7 RK_PA4 GPIO_ACTIVE_HIGH>;
104 pinctrl-0 = <&lcd_cs>; 104 pinctrl-0 = <&lcd_cs>;
105 105
106 ports { 106 ports {
@@ -120,7 +120,7 @@
120 pinctrl-0 = <&pwrbtn>; 120 pinctrl-0 = <&pwrbtn>;
121 121
122 power { 122 power {
123 gpios = <&gpio0 5 GPIO_ACTIVE_LOW>; 123 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
124 linux,code = <KEY_POWER>; 124 linux,code = <KEY_POWER>;
125 label = "GPIO Key Power"; 125 label = "GPIO Key Power";
126 linux,input-type = <1>; 126 linux,input-type = <1>;
@@ -133,7 +133,7 @@
133 vcc_host: vcc-host-regulator { 133 vcc_host: vcc-host-regulator {
134 compatible = "regulator-fixed"; 134 compatible = "regulator-fixed";
135 enable-active-high; 135 enable-active-high;
136 gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>; 136 gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
137 pinctrl-names = "default"; 137 pinctrl-names = "default";
138 pinctrl-0 = <&host_vbus_drv>; 138 pinctrl-0 = <&host_vbus_drv>;
139 regulator-name = "vcc_host"; 139 regulator-name = "vcc_host";
@@ -144,7 +144,7 @@
144 vcc_phy: vcc-phy-regulator { 144 vcc_phy: vcc-phy-regulator {
145 compatible = "regulator-fixed"; 145 compatible = "regulator-fixed";
146 enable-active-high; 146 enable-active-high;
147 gpio = <&gpio0 6 GPIO_ACTIVE_HIGH>; 147 gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
148 pinctrl-names = "default"; 148 pinctrl-names = "default";
149 pinctrl-0 = <&eth_phy_pwr>; 149 pinctrl-0 = <&eth_phy_pwr>;
150 regulator-name = "vcc_phy"; 150 regulator-name = "vcc_phy";
@@ -170,7 +170,7 @@
170 */ 170 */
171 vcc_sd: sdmmc-regulator { 171 vcc_sd: sdmmc-regulator {
172 compatible = "regulator-fixed"; 172 compatible = "regulator-fixed";
173 gpio = <&gpio7 11 GPIO_ACTIVE_LOW>; 173 gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
174 pinctrl-names = "default"; 174 pinctrl-names = "default";
175 pinctrl-0 = <&sdmmc_pwr>; 175 pinctrl-0 = <&sdmmc_pwr>;
176 regulator-name = "vcc_sd"; 176 regulator-name = "vcc_sd";
@@ -236,7 +236,7 @@
236 phy-supply = <&vcc_phy>; 236 phy-supply = <&vcc_phy>;
237 phy-mode = "rgmii"; 237 phy-mode = "rgmii";
238 clock_in_out = "input"; 238 clock_in_out = "input";
239 snps,reset-gpio = <&gpio4 7 0>; 239 snps,reset-gpio = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
240 snps,reset-active-low; 240 snps,reset-active-low;
241 snps,reset-delays-us = <0 10000 1000000>; 241 snps,reset-delays-us = <0 10000 1000000>;
242 assigned-clocks = <&cru SCLK_MAC>; 242 assigned-clocks = <&cru SCLK_MAC>;
diff --git a/arch/arm/boot/dts/rk3288-fennec.dts b/arch/arm/boot/dts/rk3288-fennec.dts
index 805c0d26770b..61d1c1028317 100644
--- a/arch/arm/boot/dts/rk3288-fennec.dts
+++ b/arch/arm/boot/dts/rk3288-fennec.dts
@@ -93,7 +93,7 @@
93 phy-mode = "rgmii"; 93 phy-mode = "rgmii";
94 snps,reset-active-low; 94 snps,reset-active-low;
95 snps,reset-delays-us = <0 10000 1000000>; 95 snps,reset-delays-us = <0 10000 1000000>;
96 snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>; 96 snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
97 tx_delay = <0x30>; 97 tx_delay = <0x30>;
98 rx_delay = <0x10>; 98 rx_delay = <0x10>;
99 status = "okay"; 99 status = "okay";
@@ -111,7 +111,7 @@
111 compatible = "rockchip,rk808"; 111 compatible = "rockchip,rk808";
112 reg = <0x1b>; 112 reg = <0x1b>;
113 interrupt-parent = <&gpio0>; 113 interrupt-parent = <&gpio0>;
114 interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 114 interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
115 #clock-cells = <1>; 115 #clock-cells = <1>;
116 clock-output-names = "xin32k", "rk808-clkout2"; 116 clock-output-names = "xin32k", "rk808-clkout2";
117 pinctrl-names = "default"; 117 pinctrl-names = "default";
@@ -345,7 +345,7 @@
345&usbphy { 345&usbphy {
346 pinctrl-names = "default"; 346 pinctrl-names = "default";
347 pinctrl-0 = <&host_drv>; 347 pinctrl-0 = <&host_drv>;
348 vbus_drv-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>; 348 vbus_drv-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
349 status = "okay"; 349 status = "okay";
350}; 350};
351 351
diff --git a/arch/arm/boot/dts/rk3288-firefly-beta.dts b/arch/arm/boot/dts/rk3288-firefly-beta.dts
index 75d77e38e0d6..0195d9721660 100644
--- a/arch/arm/boot/dts/rk3288-firefly-beta.dts
+++ b/arch/arm/boot/dts/rk3288-firefly-beta.dts
@@ -49,7 +49,7 @@
49}; 49};
50 50
51&ir { 51&ir {
52 gpios = <&gpio7 5 GPIO_ACTIVE_LOW>; 52 gpios = <&gpio7 RK_PA5 GPIO_ACTIVE_LOW>;
53}; 53};
54 54
55&pinctrl { 55&pinctrl {
diff --git a/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi b/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi
index d242588bae0d..813496618d08 100644
--- a/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi
+++ b/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi
@@ -96,7 +96,7 @@
96 phy-mode = "rgmii"; 96 phy-mode = "rgmii";
97 snps,reset-active-low; 97 snps,reset-active-low;
98 snps,reset-delays-us = <0 10000 1000000>; 98 snps,reset-delays-us = <0 10000 1000000>;
99 snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>; 99 snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
100 tx_delay = <0x30>; 100 tx_delay = <0x30>;
101 rx_delay = <0x10>; 101 rx_delay = <0x10>;
102 status = "ok"; 102 status = "ok";
diff --git a/arch/arm/boot/dts/rk3288-firefly-reload.dts b/arch/arm/boot/dts/rk3288-firefly-reload.dts
index 751bee81128e..d0b3204a4799 100644
--- a/arch/arm/boot/dts/rk3288-firefly-reload.dts
+++ b/arch/arm/boot/dts/rk3288-firefly-reload.dts
@@ -53,7 +53,7 @@
53 53
54 power { 54 power {
55 wakeup-source; 55 wakeup-source;
56 gpios = <&gpio0 5 GPIO_ACTIVE_LOW>; 56 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
57 label = "GPIO Power"; 57 label = "GPIO Power";
58 linux,code = <KEY_POWER>; 58 linux,code = <KEY_POWER>;
59 pinctrl-names = "default"; 59 pinctrl-names = "default";
@@ -63,14 +63,14 @@
63 63
64 ir-receiver { 64 ir-receiver {
65 compatible = "gpio-ir-receiver"; 65 compatible = "gpio-ir-receiver";
66 gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; 66 gpios = <&gpio7 RK_PA0 GPIO_ACTIVE_LOW>;
67 }; 67 };
68 68
69 leds { 69 leds {
70 compatible = "gpio-leds"; 70 compatible = "gpio-leds";
71 71
72 power { 72 power {
73 gpios = <&gpio8 2 GPIO_ACTIVE_LOW>; 73 gpios = <&gpio8 RK_PA2 GPIO_ACTIVE_LOW>;
74 label = "firefly:blue:power"; 74 label = "firefly:blue:power";
75 pinctrl-names = "default"; 75 pinctrl-names = "default";
76 pinctrl-0 = <&power_led>; 76 pinctrl-0 = <&power_led>;
@@ -78,7 +78,7 @@
78 }; 78 };
79 79
80 work { 80 work {
81 gpios = <&gpio8 1 GPIO_ACTIVE_LOW>; 81 gpios = <&gpio8 RK_PA1 GPIO_ACTIVE_LOW>;
82 label = "firefly:blue:user"; 82 label = "firefly:blue:user";
83 linux,default-trigger = "rc-feedback"; 83 linux,default-trigger = "rc-feedback";
84 pinctrl-names = "default"; 84 pinctrl-names = "default";
@@ -92,7 +92,7 @@
92 clock-names = "ext_clock"; 92 clock-names = "ext_clock";
93 pinctrl-names = "default"; 93 pinctrl-names = "default";
94 pinctrl-0 = <&wifi_enable>; 94 pinctrl-0 = <&wifi_enable>;
95 reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>; 95 reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
96 }; 96 };
97 97
98 sound { 98 sound {
@@ -112,7 +112,7 @@
112 vcc_host_5v: usb-host-regulator { 112 vcc_host_5v: usb-host-regulator {
113 compatible = "regulator-fixed"; 113 compatible = "regulator-fixed";
114 enable-active-high; 114 enable-active-high;
115 gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>; 115 gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
116 pinctrl-names = "default"; 116 pinctrl-names = "default";
117 pinctrl-0 = <&host_vbus_drv>; 117 pinctrl-0 = <&host_vbus_drv>;
118 regulator-name = "vcc_host_5v"; 118 regulator-name = "vcc_host_5v";
@@ -133,7 +133,7 @@
133 133
134 vcc_sd: sdmmc-regulator { 134 vcc_sd: sdmmc-regulator {
135 compatible = "regulator-fixed"; 135 compatible = "regulator-fixed";
136 gpio = <&gpio7 11 GPIO_ACTIVE_LOW>; 136 gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
137 pinctrl-names = "default"; 137 pinctrl-names = "default";
138 pinctrl-0 = <&sdmmc_pwr>; 138 pinctrl-0 = <&sdmmc_pwr>;
139 regulator-name = "vcc_sd"; 139 regulator-name = "vcc_sd";
@@ -146,7 +146,7 @@
146 vcc_otg_5v: usb-otg-regulator { 146 vcc_otg_5v: usb-otg-regulator {
147 compatible = "regulator-fixed"; 147 compatible = "regulator-fixed";
148 enable-active-high; 148 enable-active-high;
149 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>; 149 gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
150 pinctrl-names = "default"; 150 pinctrl-names = "default";
151 pinctrl-0 = <&otg_vbus_drv>; 151 pinctrl-0 = <&otg_vbus_drv>;
152 regulator-name = "vcc_otg_5v"; 152 regulator-name = "vcc_otg_5v";
@@ -159,7 +159,7 @@
159 dovdd_1v8: dovdd-1v8-regulator { 159 dovdd_1v8: dovdd-1v8-regulator {
160 compatible = "regulator-fixed"; 160 compatible = "regulator-fixed";
161 enable-active-high; 161 enable-active-high;
162 gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>; 162 gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
163 pinctrl-names = "default"; 163 pinctrl-names = "default";
164 pinctrl-0 = <&dvp_pwr>; 164 pinctrl-0 = <&dvp_pwr>;
165 regulator-name = "dovdd_1v8"; 165 regulator-name = "dovdd_1v8";
@@ -171,7 +171,7 @@
171 vcc28_dvp: vcc28-dvp-regulator { 171 vcc28_dvp: vcc28-dvp-regulator {
172 compatible = "regulator-fixed"; 172 compatible = "regulator-fixed";
173 enable-active-high; 173 enable-active-high;
174 gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>; 174 gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
175 pinctrl-names = "default"; 175 pinctrl-names = "default";
176 pinctrl-0 = <&dvp_pwr>; 176 pinctrl-0 = <&dvp_pwr>;
177 regulator-name = "vcc28_dvp"; 177 regulator-name = "vcc28_dvp";
@@ -183,7 +183,7 @@
183 af_28: af_28-regulator { 183 af_28: af_28-regulator {
184 compatible = "regulator-fixed"; 184 compatible = "regulator-fixed";
185 enable-active-high; 185 enable-active-high;
186 gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>; 186 gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
187 pinctrl-names = "default"; 187 pinctrl-names = "default";
188 pinctrl-0 = <&dvp_pwr>; 188 pinctrl-0 = <&dvp_pwr>;
189 regulator-name = "af_28"; 189 regulator-name = "af_28";
@@ -195,7 +195,7 @@
195 dvdd_1v2: af_28-regulator { 195 dvdd_1v2: af_28-regulator {
196 compatible = "regulator-fixed"; 196 compatible = "regulator-fixed";
197 enable-active-high; 197 enable-active-high;
198 gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>; 198 gpio = <&gpio7 RK_PB4 GPIO_ACTIVE_HIGH>;
199 pinctrl-names = "default"; 199 pinctrl-names = "default";
200 pinctrl-0 = <&cif_pwr>; 200 pinctrl-0 = <&cif_pwr>;
201 regulator-name = "dvdd_1v2"; 201 regulator-name = "dvdd_1v2";
@@ -221,7 +221,7 @@
221 clock-frequency = <32768>; 221 clock-frequency = <32768>;
222 clock-output-names = "xin32k"; 222 clock-output-names = "xin32k";
223 interrupt-parent = <&gpio7>; 223 interrupt-parent = <&gpio7>;
224 interrupts = <4 IRQ_TYPE_EDGE_FALLING>; 224 interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
225 pinctrl-names = "default"; 225 pinctrl-names = "default";
226 pinctrl-0 = <&rtc_int>; 226 pinctrl-0 = <&rtc_int>;
227 }; 227 };
diff --git a/arch/arm/boot/dts/rk3288-firefly.dts b/arch/arm/boot/dts/rk3288-firefly.dts
index c07fe92dc69f..14271be72f30 100644
--- a/arch/arm/boot/dts/rk3288-firefly.dts
+++ b/arch/arm/boot/dts/rk3288-firefly.dts
@@ -49,7 +49,7 @@
49}; 49};
50 50
51&ir { 51&ir {
52 gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; 52 gpios = <&gpio7 RK_PA0 GPIO_ACTIVE_LOW>;
53}; 53};
54 54
55&pinctrl { 55&pinctrl {
diff --git a/arch/arm/boot/dts/rk3288-firefly.dtsi b/arch/arm/boot/dts/rk3288-firefly.dtsi
index 44935af1fb0e..10793ac18599 100644
--- a/arch/arm/boot/dts/rk3288-firefly.dtsi
+++ b/arch/arm/boot/dts/rk3288-firefly.dtsi
@@ -75,7 +75,7 @@
75 75
76 power { 76 power {
77 wakeup-source; 77 wakeup-source;
78 gpios = <&gpio0 5 GPIO_ACTIVE_LOW>; 78 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
79 label = "GPIO Power"; 79 label = "GPIO Power";
80 linux,code = <KEY_POWER>; 80 linux,code = <KEY_POWER>;
81 pinctrl-names = "default"; 81 pinctrl-names = "default";
@@ -87,7 +87,7 @@
87 compatible = "gpio-leds"; 87 compatible = "gpio-leds";
88 88
89 work { 89 work {
90 gpios = <&gpio8 1 GPIO_ACTIVE_LOW>; 90 gpios = <&gpio8 RK_PA1 GPIO_ACTIVE_LOW>;
91 label = "firefly:blue:user"; 91 label = "firefly:blue:user";
92 linux,default-trigger = "rc-feedback"; 92 linux,default-trigger = "rc-feedback";
93 pinctrl-names = "default"; 93 pinctrl-names = "default";
@@ -95,7 +95,7 @@
95 }; 95 };
96 96
97 power { 97 power {
98 gpios = <&gpio8 2 GPIO_ACTIVE_LOW>; 98 gpios = <&gpio8 RK_PA2 GPIO_ACTIVE_LOW>;
99 label = "firefly:green:power"; 99 label = "firefly:green:power";
100 linux,default-trigger = "default-on"; 100 linux,default-trigger = "default-on";
101 pinctrl-names = "default"; 101 pinctrl-names = "default";
@@ -114,7 +114,7 @@
114 114
115 vcc_sd: sdmmc-regulator { 115 vcc_sd: sdmmc-regulator {
116 compatible = "regulator-fixed"; 116 compatible = "regulator-fixed";
117 gpio = <&gpio7 11 GPIO_ACTIVE_LOW>; 117 gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
118 pinctrl-names = "default"; 118 pinctrl-names = "default";
119 pinctrl-0 = <&sdmmc_pwr>; 119 pinctrl-0 = <&sdmmc_pwr>;
120 regulator-name = "vcc_sd"; 120 regulator-name = "vcc_sd";
@@ -145,7 +145,7 @@
145 vcc_host_5v: usb-host-regulator { 145 vcc_host_5v: usb-host-regulator {
146 compatible = "regulator-fixed"; 146 compatible = "regulator-fixed";
147 enable-active-high; 147 enable-active-high;
148 gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>; 148 gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
149 pinctrl-names = "default"; 149 pinctrl-names = "default";
150 pinctrl-0 = <&host_vbus_drv>; 150 pinctrl-0 = <&host_vbus_drv>;
151 regulator-name = "vcc_host_5v"; 151 regulator-name = "vcc_host_5v";
@@ -158,7 +158,7 @@
158 vcc_otg_5v: usb-otg-regulator { 158 vcc_otg_5v: usb-otg-regulator {
159 compatible = "regulator-fixed"; 159 compatible = "regulator-fixed";
160 enable-active-high; 160 enable-active-high;
161 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>; 161 gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
162 pinctrl-names = "default"; 162 pinctrl-names = "default";
163 pinctrl-0 = <&otg_vbus_drv>; 163 pinctrl-0 = <&otg_vbus_drv>;
164 regulator-name = "vcc_otg_5v"; 164 regulator-name = "vcc_otg_5v";
@@ -175,7 +175,7 @@
175 vcc28_dvp: vcc28-dvp-regulator { 175 vcc28_dvp: vcc28-dvp-regulator {
176 compatible = "regulator-fixed"; 176 compatible = "regulator-fixed";
177 enable-active-high; 177 enable-active-high;
178 gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>; 178 gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
179 pinctrl-names = "default"; 179 pinctrl-names = "default";
180 pinctrl-0 = <&dvp_pwr>; 180 pinctrl-0 = <&dvp_pwr>;
181 regulator-name = "vcc28_dvp"; 181 regulator-name = "vcc28_dvp";
@@ -213,7 +213,7 @@
213 phy-mode = "rgmii"; 213 phy-mode = "rgmii";
214 snps,reset-active-low; 214 snps,reset-active-low;
215 snps,reset-delays-us = <0 10000 1000000>; 215 snps,reset-delays-us = <0 10000 1000000>;
216 snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>; 216 snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
217 tx_delay = <0x30>; 217 tx_delay = <0x30>;
218 rx_delay = <0x10>; 218 rx_delay = <0x10>;
219 status = "ok"; 219 status = "ok";
@@ -260,7 +260,7 @@
260 clock-frequency = <32768>; 260 clock-frequency = <32768>;
261 clock-output-names = "xin32k"; 261 clock-output-names = "xin32k";
262 interrupt-parent = <&gpio7>; 262 interrupt-parent = <&gpio7>;
263 interrupts = <4 IRQ_TYPE_EDGE_FALLING>; 263 interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
264 pinctrl-names = "default"; 264 pinctrl-names = "default";
265 pinctrl-0 = <&rtc_int>; 265 pinctrl-0 = <&rtc_int>;
266 }; 266 };
diff --git a/arch/arm/boot/dts/rk3288-miqi.dts b/arch/arm/boot/dts/rk3288-miqi.dts
index 441d450fd151..21326f3e8564 100644
--- a/arch/arm/boot/dts/rk3288-miqi.dts
+++ b/arch/arm/boot/dts/rk3288-miqi.dts
@@ -68,7 +68,7 @@
68 compatible = "gpio-leds"; 68 compatible = "gpio-leds";
69 69
70 work { 70 work {
71 gpios = <&gpio7 4 GPIO_ACTIVE_LOW>; 71 gpios = <&gpio7 RK_PA4 GPIO_ACTIVE_LOW>;
72 label = "miqi:green:user"; 72 label = "miqi:green:user";
73 linux,default-trigger = "default-on"; 73 linux,default-trigger = "default-on";
74 pinctrl-names = "default"; 74 pinctrl-names = "default";
@@ -87,7 +87,7 @@
87 vcc_host: usb-host-regulator { 87 vcc_host: usb-host-regulator {
88 compatible = "regulator-fixed"; 88 compatible = "regulator-fixed";
89 enable-active-high; 89 enable-active-high;
90 gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>; 90 gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
91 pinctrl-names = "default"; 91 pinctrl-names = "default";
92 pinctrl-0 = <&host_vbus_drv>; 92 pinctrl-0 = <&host_vbus_drv>;
93 regulator-name = "vcc_host"; 93 regulator-name = "vcc_host";
@@ -99,7 +99,7 @@
99 99
100 vcc_sd: sdmmc-regulator { 100 vcc_sd: sdmmc-regulator {
101 compatible = "regulator-fixed"; 101 compatible = "regulator-fixed";
102 gpio = <&gpio7 11 GPIO_ACTIVE_LOW>; 102 gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
103 pinctrl-names = "default"; 103 pinctrl-names = "default";
104 pinctrl-0 = <&sdmmc_pwr>; 104 pinctrl-0 = <&sdmmc_pwr>;
105 regulator-name = "vcc_sd"; 105 regulator-name = "vcc_sd";
@@ -146,7 +146,7 @@
146 phy-mode = "rgmii"; 146 phy-mode = "rgmii";
147 snps,reset-active-low; 147 snps,reset-active-low;
148 snps,reset-delays-us = <0 10000 1000000>; 148 snps,reset-delays-us = <0 10000 1000000>;
149 snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>; 149 snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
150 tx_delay = <0x30>; 150 tx_delay = <0x30>;
151 rx_delay = <0x10>; 151 rx_delay = <0x10>;
152 status = "ok"; 152 status = "ok";
diff --git a/arch/arm/boot/dts/rk3288-popmetal.dts b/arch/arm/boot/dts/rk3288-popmetal.dts
index bc6d10054f6a..aa1f9ecff231 100644
--- a/arch/arm/boot/dts/rk3288-popmetal.dts
+++ b/arch/arm/boot/dts/rk3288-popmetal.dts
@@ -180,7 +180,7 @@
180 phy-supply = <&vcc_lan>; 180 phy-supply = <&vcc_lan>;
181 phy-mode = "rgmii"; 181 phy-mode = "rgmii";
182 clock_in_out = "input"; 182 clock_in_out = "input";
183 snps,reset-gpio = <&gpio4 RK_PB0 0>; 183 snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
184 snps,reset-active-low; 184 snps,reset-active-low;
185 snps,reset-delays-us = <0 10000 1000000>; 185 snps,reset-delays-us = <0 10000 1000000>;
186 assigned-clocks = <&cru SCLK_MAC>; 186 assigned-clocks = <&cru SCLK_MAC>;
@@ -205,7 +205,7 @@
205 compatible = "rockchip,rk808"; 205 compatible = "rockchip,rk808";
206 reg = <0x1b>; 206 reg = <0x1b>;
207 interrupt-parent = <&gpio0>; 207 interrupt-parent = <&gpio0>;
208 interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 208 interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
209 pinctrl-names = "default"; 209 pinctrl-names = "default";
210 pinctrl-0 = <&pmic_int &global_pwroff>; 210 pinctrl-0 = <&pmic_int &global_pwroff>;
211 rockchip,system-power-controller; 211 rockchip,system-power-controller;
@@ -390,7 +390,7 @@
390 compatible = "asahi-kasei,ak8975"; 390 compatible = "asahi-kasei,ak8975";
391 reg = <0x0d>; 391 reg = <0x0d>;
392 interrupt-parent = <&gpio8>; 392 interrupt-parent = <&gpio8>;
393 interrupts = <1 IRQ_TYPE_EDGE_RISING>; 393 interrupts = <RK_PA1 IRQ_TYPE_EDGE_RISING>;
394 pinctrl-names = "default"; 394 pinctrl-names = "default";
395 pinctrl-0 = <&comp_int>; 395 pinctrl-0 = <&comp_int>;
396 vdd-supply = <&vcc_io>; 396 vdd-supply = <&vcc_io>;
@@ -409,7 +409,7 @@
409 compatible = "fsl,mma8452"; 409 compatible = "fsl,mma8452";
410 reg = <0x1d>; 410 reg = <0x1d>;
411 interrupt-parent = <&gpio8>; 411 interrupt-parent = <&gpio8>;
412 interrupts = <0 IRQ_TYPE_EDGE_RISING>; 412 interrupts = <RK_PA0 IRQ_TYPE_EDGE_RISING>;
413 pinctrl-names = "default"; 413 pinctrl-names = "default";
414 pinctrl-0 = <&gsensor_int>; 414 pinctrl-0 = <&gsensor_int>;
415 }; 415 };
diff --git a/arch/arm/boot/dts/rk3288-r89.dts b/arch/arm/boot/dts/rk3288-r89.dts
index 04faa72dbd95..1145b62edde7 100644
--- a/arch/arm/boot/dts/rk3288-r89.dts
+++ b/arch/arm/boot/dts/rk3288-r89.dts
@@ -68,7 +68,7 @@
68 pinctrl-0 = <&pwrbtn>; 68 pinctrl-0 = <&pwrbtn>;
69 69
70 power { 70 power {
71 gpios = <&gpio0 5 GPIO_ACTIVE_LOW>; 71 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
72 linux,code = <KEY_POWER>; 72 linux,code = <KEY_POWER>;
73 label = "GPIO Key Power"; 73 label = "GPIO Key Power";
74 linux,input-type = <1>; 74 linux,input-type = <1>;
@@ -79,7 +79,7 @@
79 79
80 ir: ir-receiver { 80 ir: ir-receiver {
81 compatible = "gpio-ir-receiver"; 81 compatible = "gpio-ir-receiver";
82 gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; 82 gpios = <&gpio7 RK_PA0 GPIO_ACTIVE_LOW>;
83 pinctrl-names = "default"; 83 pinctrl-names = "default";
84 pinctrl-0 = <&ir_int>; 84 pinctrl-0 = <&ir_int>;
85 }; 85 };
@@ -87,7 +87,7 @@
87 vcc_host: vcc-host-regulator { 87 vcc_host: vcc-host-regulator {
88 compatible = "regulator-fixed"; 88 compatible = "regulator-fixed";
89 enable-active-high; 89 enable-active-high;
90 gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>; 90 gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
91 pinctrl-names = "default"; 91 pinctrl-names = "default";
92 pinctrl-0 = <&host_vbus_drv>; 92 pinctrl-0 = <&host_vbus_drv>;
93 regulator-name = "vcc_host"; 93 regulator-name = "vcc_host";
@@ -98,7 +98,7 @@
98 vcc_otg: vcc-otg-regulator { 98 vcc_otg: vcc-otg-regulator {
99 compatible = "regulator-fixed"; 99 compatible = "regulator-fixed";
100 enable-active-high; 100 enable-active-high;
101 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>; 101 gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
102 pinctrl-names = "default"; 102 pinctrl-names = "default";
103 pinctrl-0 = <&otg_vbus_drv>; 103 pinctrl-0 = <&otg_vbus_drv>;
104 regulator-name = "vcc_otg"; 104 regulator-name = "vcc_otg";
@@ -111,7 +111,7 @@
111 regulator-name = "sdmmc-supply"; 111 regulator-name = "sdmmc-supply";
112 regulator-min-microvolt = <3300000>; 112 regulator-min-microvolt = <3300000>;
113 regulator-max-microvolt = <3300000>; 113 regulator-max-microvolt = <3300000>;
114 gpio = <&gpio7 11 GPIO_ACTIVE_LOW>; 114 gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
115 startup-delay-us = <100000>; 115 startup-delay-us = <100000>;
116 vin-supply = <&vcc_io>; 116 vin-supply = <&vcc_io>;
117 }; 117 };
@@ -134,7 +134,7 @@
134 phy-supply = <&vcc_lan>; 134 phy-supply = <&vcc_lan>;
135 phy-mode = "rgmii"; 135 phy-mode = "rgmii";
136 clock_in_out = "input"; 136 clock_in_out = "input";
137 snps,reset-gpio = <&gpio4 7 0>; 137 snps,reset-gpio = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
138 snps,reset-active-low; 138 snps,reset-active-low;
139 snps,reset-delays-us = <0 10000 1000000>; 139 snps,reset-delays-us = <0 10000 1000000>;
140 assigned-clocks = <&cru SCLK_MAC>; 140 assigned-clocks = <&cru SCLK_MAC>;
@@ -187,7 +187,7 @@
187 #clock-cells = <0>; 187 #clock-cells = <0>;
188 clock-output-names = "xin32k"; 188 clock-output-names = "xin32k";
189 interrupt-parent = <&gpio0>; 189 interrupt-parent = <&gpio0>;
190 interrupts = <4 IRQ_TYPE_EDGE_FALLING>; 190 interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
191 pinctrl-names = "default"; 191 pinctrl-names = "default";
192 pinctrl-0 = <&pmic_int>; 192 pinctrl-0 = <&pmic_int>;
193 }; 193 };
diff --git a/arch/arm/boot/dts/rk3288-rock2-som.dtsi b/arch/arm/boot/dts/rk3288-rock2-som.dtsi
index b25ba806d5ee..1c0bbc9b928b 100644
--- a/arch/arm/boot/dts/rk3288-rock2-som.dtsi
+++ b/arch/arm/boot/dts/rk3288-rock2-som.dtsi
@@ -51,7 +51,7 @@
51 compatible = "mmc-pwrseq-emmc"; 51 compatible = "mmc-pwrseq-emmc";
52 pinctrl-0 = <&emmc_reset>; 52 pinctrl-0 = <&emmc_reset>;
53 pinctrl-names = "default"; 53 pinctrl-names = "default";
54 reset-gpios = <&gpio3 9 GPIO_ACTIVE_LOW>; 54 reset-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>;
55 }; 55 };
56 56
57 ext_gmac: external-gmac-clock { 57 ext_gmac: external-gmac-clock {
@@ -106,7 +106,7 @@
106 phy-supply = <&vccio_pmu>; 106 phy-supply = <&vccio_pmu>;
107 pinctrl-names = "default"; 107 pinctrl-names = "default";
108 pinctrl-0 = <&rgmii_pins &phy_rst>; 108 pinctrl-0 = <&rgmii_pins &phy_rst>;
109 snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>; 109 snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
110 snps,reset-active-low; 110 snps,reset-active-low;
111 snps,reset-delays-us = <0 10000 30000>; 111 snps,reset-delays-us = <0 10000 30000>;
112 rx_delay = <0x10>; 112 rx_delay = <0x10>;
diff --git a/arch/arm/boot/dts/rk3288-rock2-square.dts b/arch/arm/boot/dts/rk3288-rock2-square.dts
index dd3ad2e93a6d..96a2e745bb93 100644
--- a/arch/arm/boot/dts/rk3288-rock2-square.dts
+++ b/arch/arm/boot/dts/rk3288-rock2-square.dts
@@ -53,13 +53,13 @@
53 compatible = "gpio-leds"; 53 compatible = "gpio-leds";
54 54
55 heartbeat { 55 heartbeat {
56 gpios = <&gpio7 15 GPIO_ACTIVE_LOW>; 56 gpios = <&gpio7 RK_PB7 GPIO_ACTIVE_LOW>;
57 label = "rock2:green:state1"; 57 label = "rock2:green:state1";
58 linux,default-trigger = "heartbeat"; 58 linux,default-trigger = "heartbeat";
59 }; 59 };
60 60
61 mmc { 61 mmc {
62 gpios = <&gpio0 11 GPIO_ACTIVE_LOW>; 62 gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_LOW>;
63 label = "rock2:blue:state2"; 63 label = "rock2:blue:state2";
64 linux,default-trigger = "mmc0"; 64 linux,default-trigger = "mmc0";
65 }; 65 };
@@ -67,7 +67,7 @@
67 67
68 ir: ir-receiver { 68 ir: ir-receiver {
69 compatible = "gpio-ir-receiver"; 69 compatible = "gpio-ir-receiver";
70 gpios = <&gpio8 1 GPIO_ACTIVE_LOW>; 70 gpios = <&gpio8 RK_PA1 GPIO_ACTIVE_LOW>;
71 pinctrl-names = "default"; 71 pinctrl-names = "default";
72 pinctrl-0 = <&ir_int>; 72 pinctrl-0 = <&ir_int>;
73 }; 73 };
@@ -92,13 +92,13 @@
92 clock-names = "ext_clock"; 92 clock-names = "ext_clock";
93 pinctrl-names = "default"; 93 pinctrl-names = "default";
94 pinctrl-0 = <&wifi_enable>; 94 pinctrl-0 = <&wifi_enable>;
95 reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>; 95 reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
96 }; 96 };
97 97
98 vcc_usb_host: vcc-host-regulator { 98 vcc_usb_host: vcc-host-regulator {
99 compatible = "regulator-fixed"; 99 compatible = "regulator-fixed";
100 enable-active-high; 100 enable-active-high;
101 gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>; 101 gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
102 pinctrl-names = "default"; 102 pinctrl-names = "default";
103 pinctrl-0 = <&host_vbus_drv>; 103 pinctrl-0 = <&host_vbus_drv>;
104 /* Always on as the rockchip usb phy doesn't have a vbus-supply 104 /* Always on as the rockchip usb phy doesn't have a vbus-supply
@@ -110,7 +110,7 @@
110 110
111 vcc_sd: sdmmc-regulator { 111 vcc_sd: sdmmc-regulator {
112 compatible = "regulator-fixed"; 112 compatible = "regulator-fixed";
113 gpio = <&gpio7 11 GPIO_ACTIVE_LOW>; 113 gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
114 pinctrl-names = "default"; 114 pinctrl-names = "default";
115 pinctrl-0 = <&sdmmc_pwr>; 115 pinctrl-0 = <&sdmmc_pwr>;
116 regulator-name = "vcc_sd"; 116 regulator-name = "vcc_sd";
@@ -166,7 +166,7 @@
166 clock-frequency = <32768>; 166 clock-frequency = <32768>;
167 clock-output-names = "xin32k"; 167 clock-output-names = "xin32k";
168 interrupt-parent = <&gpio0>; 168 interrupt-parent = <&gpio0>;
169 interrupts = <4 IRQ_TYPE_EDGE_FALLING>; 169 interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
170 pinctrl-names = "default"; 170 pinctrl-names = "default";
171 pinctrl-0 = <&pmic_int>; 171 pinctrl-0 = <&pmic_int>;
172 172
diff --git a/arch/arm/boot/dts/rk3288-veyron-analog-audio.dtsi b/arch/arm/boot/dts/rk3288-veyron-analog-audio.dtsi
index 6d105914a4f3..280aceae25d5 100644
--- a/arch/arm/boot/dts/rk3288-veyron-analog-audio.dtsi
+++ b/arch/arm/boot/dts/rk3288-veyron-analog-audio.dtsi
@@ -17,8 +17,8 @@
17 rockchip,model = "VEYRON-I2S"; 17 rockchip,model = "VEYRON-I2S";
18 rockchip,i2s-controller = <&i2s>; 18 rockchip,i2s-controller = <&i2s>;
19 rockchip,audio-codec = <&max98090>; 19 rockchip,audio-codec = <&max98090>;
20 rockchip,hp-det-gpios = <&gpio6 5 GPIO_ACTIVE_HIGH>; 20 rockchip,hp-det-gpios = <&gpio6 RK_PA5 GPIO_ACTIVE_HIGH>;
21 rockchip,mic-det-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>; 21 rockchip,mic-det-gpios = <&gpio6 RK_PB3 GPIO_ACTIVE_LOW>;
22 rockchip,headset-codec = <&headsetcodec>; 22 rockchip,headset-codec = <&headsetcodec>;
23 }; 23 };
24}; 24};
@@ -28,7 +28,7 @@
28 compatible = "maxim,max98090"; 28 compatible = "maxim,max98090";
29 reg = <0x10>; 29 reg = <0x10>;
30 interrupt-parent = <&gpio6>; 30 interrupt-parent = <&gpio6>;
31 interrupts = <7 IRQ_TYPE_EDGE_FALLING>; 31 interrupts = <RK_PA7 IRQ_TYPE_EDGE_FALLING>;
32 clock-names = "mclk"; 32 clock-names = "mclk";
33 clocks = <&cru SCLK_I2S0_OUT>; 33 clocks = <&cru SCLK_I2S0_OUT>;
34 pinctrl-names = "default"; 34 pinctrl-names = "default";
@@ -41,7 +41,7 @@
41 compatible = "ti,ts3a227e"; 41 compatible = "ti,ts3a227e";
42 reg = <0x3b>; 42 reg = <0x3b>;
43 interrupt-parent = <&gpio0>; 43 interrupt-parent = <&gpio0>;
44 interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 44 interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
45 pinctrl-names = "default"; 45 pinctrl-names = "default";
46 pinctrl-0 = <&ts3a227e_int_l>; 46 pinctrl-0 = <&ts3a227e_int_l>;
47 ti,micbias = <7>; /* MICBIAS = 2.8V */ 47 ti,micbias = <7>; /* MICBIAS = 2.8V */
diff --git a/arch/arm/boot/dts/rk3288-veyron-brain.dts b/arch/arm/boot/dts/rk3288-veyron-brain.dts
index cf5311d2617c..ed4255294ad4 100644
--- a/arch/arm/boot/dts/rk3288-veyron-brain.dts
+++ b/arch/arm/boot/dts/rk3288-veyron-brain.dts
@@ -67,7 +67,7 @@
67 vcc5_host2: vcc5-host2-regulator { 67 vcc5_host2: vcc5-host2-regulator {
68 compatible = "regulator-fixed"; 68 compatible = "regulator-fixed";
69 enable-active-high; 69 enable-active-high;
70 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>; 70 gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
71 pinctrl-names = "default"; 71 pinctrl-names = "default";
72 pinctrl-0 = <&usb2_pwr_en>; 72 pinctrl-0 = <&usb2_pwr_en>;
73 regulator-name = "vcc5_host2"; 73 regulator-name = "vcc5_host2";
@@ -103,8 +103,8 @@
103&rk808 { 103&rk808 {
104 pinctrl-names = "default"; 104 pinctrl-names = "default";
105 pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>; 105 pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>;
106 dvs-gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>, 106 dvs-gpios = <&gpio7 RK_PB3 GPIO_ACTIVE_HIGH>,
107 <&gpio7 15 GPIO_ACTIVE_HIGH>; 107 <&gpio7 RK_PB7 GPIO_ACTIVE_HIGH>;
108 108
109 /delete-property/ vcc6-supply; 109 /delete-property/ vcc6-supply;
110 110
@@ -133,7 +133,7 @@
133 133
134&vcc50_hdmi { 134&vcc50_hdmi {
135 enable-active-high; 135 enable-active-high;
136 gpio = <&gpio7 2 GPIO_ACTIVE_HIGH>; 136 gpio = <&gpio7 RK_PA2 GPIO_ACTIVE_HIGH>;
137 pinctrl-names = "default"; 137 pinctrl-names = "default";
138 pinctrl-0 = <&vcc50_hdmi_en>; 138 pinctrl-0 = <&vcc50_hdmi_en>;
139}; 139};
diff --git a/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi b/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi
index ce1f87980bcb..d752a315f884 100644
--- a/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi
+++ b/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi
@@ -91,7 +91,7 @@
91 240 241 242 243 244 245 246 247 91 240 241 242 243 244 245 246 247
92 248 249 250 251 252 253 254 255>; 92 248 249 250 251 252 253 254 255>;
93 default-brightness-level = <128>; 93 default-brightness-level = <128>;
94 enable-gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>; 94 enable-gpios = <&gpio7 RK_PA2 GPIO_ACTIVE_HIGH>;
95 backlight-boot-off; 95 backlight-boot-off;
96 pinctrl-names = "default"; 96 pinctrl-names = "default";
97 pinctrl-0 = <&bl_en>; 97 pinctrl-0 = <&bl_en>;
@@ -102,7 +102,7 @@
102 gpio-charger { 102 gpio-charger {
103 compatible = "gpio-charger"; 103 compatible = "gpio-charger";
104 charger-type = "mains"; 104 charger-type = "mains";
105 gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>; 105 gpios = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
106 pinctrl-names = "default"; 106 pinctrl-names = "default";
107 pinctrl-0 = <&ac_present_ap>; 107 pinctrl-0 = <&ac_present_ap>;
108 }; 108 };
@@ -142,7 +142,7 @@
142 vcc5_host1: vcc5-host1-regulator { 142 vcc5_host1: vcc5-host1-regulator {
143 compatible = "regulator-fixed"; 143 compatible = "regulator-fixed";
144 enable-active-high; 144 enable-active-high;
145 gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>; 145 gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
146 pinctrl-names = "default"; 146 pinctrl-names = "default";
147 pinctrl-0 = <&host1_pwr_en>; 147 pinctrl-0 = <&host1_pwr_en>;
148 regulator-name = "vcc5_host1"; 148 regulator-name = "vcc5_host1";
@@ -154,7 +154,7 @@
154 vcc5v_otg: vcc5v-otg-regulator { 154 vcc5v_otg: vcc5v-otg-regulator {
155 compatible = "regulator-fixed"; 155 compatible = "regulator-fixed";
156 enable-active-high; 156 enable-active-high;
157 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>; 157 gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
158 pinctrl-names = "default"; 158 pinctrl-names = "default";
159 pinctrl-0 = <&usbotg_pwren_h>; 159 pinctrl-0 = <&usbotg_pwren_h>;
160 regulator-name = "vcc5_host2"; 160 regulator-name = "vcc5_host2";
@@ -190,7 +190,7 @@
190 pinctrl-0 = <&pwr_key_l &ap_lid_int_l>; 190 pinctrl-0 = <&pwr_key_l &ap_lid_int_l>;
191 lid { 191 lid {
192 label = "Lid"; 192 label = "Lid";
193 gpios = <&gpio0 6 GPIO_ACTIVE_LOW>; 193 gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
194 wakeup-source; 194 wakeup-source;
195 linux,code = <0>; /* SW_LID */ 195 linux,code = <0>; /* SW_LID */
196 linux,input-type = <5>; /* EV_SW */ 196 linux,input-type = <5>; /* EV_SW */
@@ -228,7 +228,7 @@
228 reg = <0>; 228 reg = <0>;
229 google,cros-ec-spi-pre-delay = <30>; 229 google,cros-ec-spi-pre-delay = <30>;
230 interrupt-parent = <&gpio7>; 230 interrupt-parent = <&gpio7>;
231 interrupts = <7 IRQ_TYPE_LEVEL_LOW>; 231 interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>;
232 pinctrl-names = "default"; 232 pinctrl-names = "default";
233 pinctrl-0 = <&ec_int>; 233 pinctrl-0 = <&ec_int>;
234 spi-max-frequency = <3000000>; 234 spi-max-frequency = <3000000>;
@@ -247,7 +247,7 @@
247 compatible = "elan,ekth3000"; 247 compatible = "elan,ekth3000";
248 reg = <0x15>; 248 reg = <0x15>;
249 interrupt-parent = <&gpio7>; 249 interrupt-parent = <&gpio7>;
250 interrupts = <3 IRQ_TYPE_EDGE_FALLING>; 250 interrupts = <RK_PA3 IRQ_TYPE_EDGE_FALLING>;
251 pinctrl-names = "default"; 251 pinctrl-names = "default";
252 pinctrl-0 = <&trackpad_int>; 252 pinctrl-0 = <&trackpad_int>;
253 vcc-supply = <&vcc33_io>; 253 vcc-supply = <&vcc33_io>;
diff --git a/arch/arm/boot/dts/rk3288-veyron-jaq.dts b/arch/arm/boot/dts/rk3288-veyron-jaq.dts
index 3748abf562b1..d33f5763c39c 100644
--- a/arch/arm/boot/dts/rk3288-veyron-jaq.dts
+++ b/arch/arm/boot/dts/rk3288-veyron-jaq.dts
@@ -57,7 +57,7 @@
57 panel_regulator: panel-regulator { 57 panel_regulator: panel-regulator {
58 compatible = "regulator-fixed"; 58 compatible = "regulator-fixed";
59 enable-active-high; 59 enable-active-high;
60 gpio = <&gpio7 14 GPIO_ACTIVE_HIGH>; 60 gpio = <&gpio7 RK_PB6 GPIO_ACTIVE_HIGH>;
61 pinctrl-names = "default"; 61 pinctrl-names = "default";
62 pinctrl-0 = <&lcd_enable_h>; 62 pinctrl-0 = <&lcd_enable_h>;
63 regulator-name = "panel_regulator"; 63 regulator-name = "panel_regulator";
@@ -68,7 +68,7 @@
68 vcc18_lcd: vcc18-lcd { 68 vcc18_lcd: vcc18-lcd {
69 compatible = "regulator-fixed"; 69 compatible = "regulator-fixed";
70 enable-active-high; 70 enable-active-high;
71 gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>; 71 gpio = <&gpio2 RK_PB5 GPIO_ACTIVE_HIGH>;
72 pinctrl-names = "default"; 72 pinctrl-names = "default";
73 pinctrl-0 = <&avdd_1v8_disp_en>; 73 pinctrl-0 = <&avdd_1v8_disp_en>;
74 regulator-name = "vcc18_lcd"; 74 regulator-name = "vcc18_lcd";
@@ -80,7 +80,7 @@
80 backlight_regulator: backlight-regulator { 80 backlight_regulator: backlight-regulator {
81 compatible = "regulator-fixed"; 81 compatible = "regulator-fixed";
82 enable-active-high; 82 enable-active-high;
83 gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>; 83 gpio = <&gpio2 RK_PB4 GPIO_ACTIVE_HIGH>;
84 pinctrl-names = "default"; 84 pinctrl-names = "default";
85 pinctrl-0 = <&bl_pwr_en>; 85 pinctrl-0 = <&bl_pwr_en>;
86 regulator-name = "backlight_regulator"; 86 regulator-name = "backlight_regulator";
@@ -134,8 +134,8 @@
134&rk808 { 134&rk808 {
135 pinctrl-names = "default"; 135 pinctrl-names = "default";
136 pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>; 136 pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>;
137 dvs-gpios = <&gpio7 12 GPIO_ACTIVE_HIGH>, 137 dvs-gpios = <&gpio7 RK_PB4 GPIO_ACTIVE_HIGH>,
138 <&gpio7 15 GPIO_ACTIVE_HIGH>; 138 <&gpio7 RK_PB7 GPIO_ACTIVE_HIGH>;
139 139
140 regulators { 140 regulators {
141 mic_vcc: LDO_REG2 { 141 mic_vcc: LDO_REG2 {
@@ -160,14 +160,14 @@
160 160
161&vcc_5v { 161&vcc_5v {
162 enable-active-high; 162 enable-active-high;
163 gpio = <&gpio7 21 GPIO_ACTIVE_HIGH>; 163 gpio = <&gpio7 RK_PC5 GPIO_ACTIVE_HIGH>;
164 pinctrl-names = "default"; 164 pinctrl-names = "default";
165 pinctrl-0 = <&drv_5v>; 165 pinctrl-0 = <&drv_5v>;
166}; 166};
167 167
168&vcc50_hdmi { 168&vcc50_hdmi {
169 enable-active-high; 169 enable-active-high;
170 gpio = <&gpio5 19 GPIO_ACTIVE_HIGH>; 170 gpio = <&gpio5 RK_PC3 GPIO_ACTIVE_HIGH>;
171 pinctrl-names = "default"; 171 pinctrl-names = "default";
172 pinctrl-0 = <&vcc50_hdmi_en>; 172 pinctrl-0 = <&vcc50_hdmi_en>;
173}; 173};
diff --git a/arch/arm/boot/dts/rk3288-veyron-jerry.dts b/arch/arm/boot/dts/rk3288-veyron-jerry.dts
index f6b2eaaebb9a..cdea751f2a8c 100644
--- a/arch/arm/boot/dts/rk3288-veyron-jerry.dts
+++ b/arch/arm/boot/dts/rk3288-veyron-jerry.dts
@@ -56,7 +56,7 @@
56 panel_regulator: panel-regulator { 56 panel_regulator: panel-regulator {
57 compatible = "regulator-fixed"; 57 compatible = "regulator-fixed";
58 enable-active-high; 58 enable-active-high;
59 gpio = <&gpio7 14 GPIO_ACTIVE_HIGH>; 59 gpio = <&gpio7 RK_PB6 GPIO_ACTIVE_HIGH>;
60 pinctrl-names = "default"; 60 pinctrl-names = "default";
61 pinctrl-0 = <&lcd_enable_h>; 61 pinctrl-0 = <&lcd_enable_h>;
62 regulator-name = "panel_regulator"; 62 regulator-name = "panel_regulator";
@@ -67,7 +67,7 @@
67 vcc18_lcd: vcc18-lcd { 67 vcc18_lcd: vcc18-lcd {
68 compatible = "regulator-fixed"; 68 compatible = "regulator-fixed";
69 enable-active-high; 69 enable-active-high;
70 gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>; 70 gpio = <&gpio2 RK_PB5 GPIO_ACTIVE_HIGH>;
71 pinctrl-names = "default"; 71 pinctrl-names = "default";
72 pinctrl-0 = <&avdd_1v8_disp_en>; 72 pinctrl-0 = <&avdd_1v8_disp_en>;
73 regulator-name = "vcc18_lcd"; 73 regulator-name = "vcc18_lcd";
@@ -79,7 +79,7 @@
79 backlight_regulator: backlight-regulator { 79 backlight_regulator: backlight-regulator {
80 compatible = "regulator-fixed"; 80 compatible = "regulator-fixed";
81 enable-active-high; 81 enable-active-high;
82 gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>; 82 gpio = <&gpio2 RK_PB4 GPIO_ACTIVE_HIGH>;
83 pinctrl-names = "default"; 83 pinctrl-names = "default";
84 pinctrl-0 = <&bl_pwr_en>; 84 pinctrl-0 = <&bl_pwr_en>;
85 regulator-name = "backlight_regulator"; 85 regulator-name = "backlight_regulator";
@@ -123,14 +123,14 @@
123 123
124&vcc_5v { 124&vcc_5v {
125 enable-active-high; 125 enable-active-high;
126 gpio = <&gpio7 21 GPIO_ACTIVE_HIGH>; 126 gpio = <&gpio7 RK_PC5 GPIO_ACTIVE_HIGH>;
127 pinctrl-names = "default"; 127 pinctrl-names = "default";
128 pinctrl-0 = <&drv_5v>; 128 pinctrl-0 = <&drv_5v>;
129}; 129};
130 130
131&vcc50_hdmi { 131&vcc50_hdmi {
132 enable-active-high; 132 enable-active-high;
133 gpio = <&gpio5 19 GPIO_ACTIVE_HIGH>; 133 gpio = <&gpio5 RK_PC3 GPIO_ACTIVE_HIGH>;
134 pinctrl-names = "default"; 134 pinctrl-names = "default";
135 pinctrl-0 = <&vcc50_hdmi_en>; 135 pinctrl-0 = <&vcc50_hdmi_en>;
136}; 136};
@@ -197,7 +197,7 @@
197 trackpad@2c { 197 trackpad@2c {
198 compatible = "hid-over-i2c"; 198 compatible = "hid-over-i2c";
199 interrupt-parent = <&gpio7>; 199 interrupt-parent = <&gpio7>;
200 interrupts = <3 IRQ_TYPE_EDGE_FALLING>; 200 interrupts = <RK_PA3 IRQ_TYPE_EDGE_FALLING>;
201 reg = <0x2c>; 201 reg = <0x2c>;
202 hid-descr-addr = <0x0020>; 202 hid-descr-addr = <0x0020>;
203 vcc-supply = <&vcc33_io>; 203 vcc-supply = <&vcc33_io>;
diff --git a/arch/arm/boot/dts/rk3288-veyron-mickey.dts b/arch/arm/boot/dts/rk3288-veyron-mickey.dts
index f36f6f459225..f0994f0e5774 100644
--- a/arch/arm/boot/dts/rk3288-veyron-mickey.dts
+++ b/arch/arm/boot/dts/rk3288-veyron-mickey.dts
@@ -182,8 +182,8 @@
182&rk808 { 182&rk808 {
183 pinctrl-names = "default"; 183 pinctrl-names = "default";
184 pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>; 184 pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>;
185 dvs-gpios = <&gpio7 12 GPIO_ACTIVE_HIGH>, 185 dvs-gpios = <&gpio7 RK_PB4 GPIO_ACTIVE_HIGH>,
186 <&gpio7 15 GPIO_ACTIVE_HIGH>; 186 <&gpio7 RK_PB7 GPIO_ACTIVE_HIGH>;
187 187
188 /delete-property/ vcc6-supply; 188 /delete-property/ vcc6-supply;
189 /delete-property/ vcc12-supply; 189 /delete-property/ vcc12-supply;
@@ -244,7 +244,7 @@
244 244
245&vcc50_hdmi { 245&vcc50_hdmi {
246 enable-active-high; 246 enable-active-high;
247 gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>; 247 gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_HIGH>;
248 pinctrl-names = "default"; 248 pinctrl-names = "default";
249 pinctrl-0 = <&power_hdmi_on>; 249 pinctrl-0 = <&power_hdmi_on>;
250}; 250};
diff --git a/arch/arm/boot/dts/rk3288-veyron-minnie.dts b/arch/arm/boot/dts/rk3288-veyron-minnie.dts
index f72d616d1bf8..544de6027aaa 100644
--- a/arch/arm/boot/dts/rk3288-veyron-minnie.dts
+++ b/arch/arm/boot/dts/rk3288-veyron-minnie.dts
@@ -55,7 +55,7 @@
55 backlight_regulator: backlight-regulator { 55 backlight_regulator: backlight-regulator {
56 compatible = "regulator-fixed"; 56 compatible = "regulator-fixed";
57 enable-active-high; 57 enable-active-high;
58 gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>; 58 gpio = <&gpio2 RK_PB4 GPIO_ACTIVE_HIGH>;
59 pinctrl-names = "default"; 59 pinctrl-names = "default";
60 pinctrl-0 = <&bl_pwr_en>; 60 pinctrl-0 = <&bl_pwr_en>;
61 regulator-name = "backlight_regulator"; 61 regulator-name = "backlight_regulator";
@@ -66,7 +66,7 @@
66 panel_regulator: panel-regulator { 66 panel_regulator: panel-regulator {
67 compatible = "regulator-fixed"; 67 compatible = "regulator-fixed";
68 enable-active-high; 68 enable-active-high;
69 gpio = <&gpio7 14 GPIO_ACTIVE_HIGH>; 69 gpio = <&gpio7 RK_PB6 GPIO_ACTIVE_HIGH>;
70 pinctrl-names = "default"; 70 pinctrl-names = "default";
71 pinctrl-0 = <&lcd_enable_h>; 71 pinctrl-0 = <&lcd_enable_h>;
72 regulator-name = "panel_regulator"; 72 regulator-name = "panel_regulator";
@@ -77,7 +77,7 @@
77 vcc18_lcd: vcc18-lcd { 77 vcc18_lcd: vcc18-lcd {
78 compatible = "regulator-fixed"; 78 compatible = "regulator-fixed";
79 enable-active-high; 79 enable-active-high;
80 gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>; 80 gpio = <&gpio2 RK_PB5 GPIO_ACTIVE_HIGH>;
81 pinctrl-names = "default"; 81 pinctrl-names = "default";
82 pinctrl-0 = <&avdd_1v8_disp_en>; 82 pinctrl-0 = <&avdd_1v8_disp_en>;
83 regulator-name = "vcc18_lcd"; 83 regulator-name = "vcc18_lcd";
@@ -134,14 +134,14 @@
134 134
135 volum_down { 135 volum_down {
136 label = "Volum_down"; 136 label = "Volum_down";
137 gpios = <&gpio5 11 GPIO_ACTIVE_LOW>; 137 gpios = <&gpio5 RK_PB3 GPIO_ACTIVE_LOW>;
138 linux,code = <KEY_VOLUMEDOWN>; 138 linux,code = <KEY_VOLUMEDOWN>;
139 debounce-interval = <100>; 139 debounce-interval = <100>;
140 }; 140 };
141 141
142 volum_up { 142 volum_up {
143 label = "Volum_up"; 143 label = "Volum_up";
144 gpios = <&gpio5 10 GPIO_ACTIVE_LOW>; 144 gpios = <&gpio5 RK_PB2 GPIO_ACTIVE_LOW>;
145 linux,code = <KEY_VOLUMEUP>; 145 linux,code = <KEY_VOLUMEUP>;
146 debounce-interval = <100>; 146 debounce-interval = <100>;
147 }; 147 };
@@ -165,10 +165,10 @@
165 compatible = "elan,ekth3500"; 165 compatible = "elan,ekth3500";
166 reg = <0x10>; 166 reg = <0x10>;
167 interrupt-parent = <&gpio2>; 167 interrupt-parent = <&gpio2>;
168 interrupts = <14 IRQ_TYPE_EDGE_FALLING>; 168 interrupts = <RK_PB6 IRQ_TYPE_EDGE_FALLING>;
169 pinctrl-names = "default"; 169 pinctrl-names = "default";
170 pinctrl-0 = <&touch_int &touch_rst>; 170 pinctrl-0 = <&touch_int &touch_rst>;
171 reset-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>; 171 reset-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_LOW>;
172 vcc33-supply = <&vcc33_touch>; 172 vcc33-supply = <&vcc33_touch>;
173 vccio-supply = <&vcc33_touch>; 173 vccio-supply = <&vcc33_touch>;
174 }; 174 };
@@ -211,14 +211,14 @@
211 211
212&vcc_5v { 212&vcc_5v {
213 enable-active-high; 213 enable-active-high;
214 gpio = <&gpio7 21 GPIO_ACTIVE_HIGH>; 214 gpio = <&gpio7 RK_PC5 GPIO_ACTIVE_HIGH>;
215 pinctrl-names = "default"; 215 pinctrl-names = "default";
216 pinctrl-0 = <&drv_5v>; 216 pinctrl-0 = <&drv_5v>;
217}; 217};
218 218
219&vcc50_hdmi { 219&vcc50_hdmi {
220 enable-active-high; 220 enable-active-high;
221 gpio = <&gpio5 19 GPIO_ACTIVE_HIGH>; 221 gpio = <&gpio5 RK_PC3 GPIO_ACTIVE_HIGH>;
222 pinctrl-names = "default"; 222 pinctrl-names = "default";
223 pinctrl-0 = <&vcc50_hdmi_en>; 223 pinctrl-0 = <&vcc50_hdmi_en>;
224}; 224};
diff --git a/arch/arm/boot/dts/rk3288-veyron-pinky.dts b/arch/arm/boot/dts/rk3288-veyron-pinky.dts
index d44351ec2333..995cff42fa43 100644
--- a/arch/arm/boot/dts/rk3288-veyron-pinky.dts
+++ b/arch/arm/boot/dts/rk3288-veyron-pinky.dts
@@ -76,7 +76,7 @@
76 pinctrl-0 = <&pwr_key_h &ap_lid_int_l>; 76 pinctrl-0 = <&pwr_key_h &ap_lid_int_l>;
77 77
78 power { 78 power {
79 gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>; 79 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
80 }; 80 };
81}; 81};
82 82
@@ -126,7 +126,7 @@
126 pinctrl-names = "default"; 126 pinctrl-names = "default";
127 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd_disabled &sdmmc_cd_gpio 127 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd_disabled &sdmmc_cd_gpio
128 &sdmmc_wp_gpio &sdmmc_bus4>; 128 &sdmmc_wp_gpio &sdmmc_bus4>;
129 wp-gpios = <&gpio7 10 GPIO_ACTIVE_HIGH>; 129 wp-gpios = <&gpio7 RK_PB2 GPIO_ACTIVE_HIGH>;
130}; 130};
131 131
132&tsadc { 132&tsadc {
diff --git a/arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi b/arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi
index fec076eb7aef..aef07101e9ab 100644
--- a/arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi
+++ b/arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi
@@ -115,7 +115,7 @@
115 cap-mmc-highspeed; 115 cap-mmc-highspeed;
116 cap-sd-highspeed; 116 cap-sd-highspeed;
117 card-detect-delay = <200>; 117 card-detect-delay = <200>;
118 cd-gpios = <&gpio7 5 GPIO_ACTIVE_LOW>; 118 cd-gpios = <&gpio7 RK_PA5 GPIO_ACTIVE_LOW>;
119 rockchip,default-sample-phase = <90>; 119 rockchip,default-sample-phase = <90>;
120 num-slots = <1>; 120 num-slots = <1>;
121 sd-uhs-sdr12; 121 sd-uhs-sdr12;
diff --git a/arch/arm/boot/dts/rk3288-veyron-speedy.dts b/arch/arm/boot/dts/rk3288-veyron-speedy.dts
index a0d033f6fe52..cc0b78cefe34 100644
--- a/arch/arm/boot/dts/rk3288-veyron-speedy.dts
+++ b/arch/arm/boot/dts/rk3288-veyron-speedy.dts
@@ -57,7 +57,7 @@
57 panel_regulator: panel-regulator { 57 panel_regulator: panel-regulator {
58 compatible = "regulator-fixed"; 58 compatible = "regulator-fixed";
59 enable-active-high; 59 enable-active-high;
60 gpio = <&gpio7 14 GPIO_ACTIVE_HIGH>; 60 gpio = <&gpio7 RK_PB6 GPIO_ACTIVE_HIGH>;
61 pinctrl-names = "default"; 61 pinctrl-names = "default";
62 pinctrl-0 = <&lcd_enable_h>; 62 pinctrl-0 = <&lcd_enable_h>;
63 regulator-name = "panel_regulator"; 63 regulator-name = "panel_regulator";
@@ -68,7 +68,7 @@
68 vcc18_lcd: vcc18-lcd { 68 vcc18_lcd: vcc18-lcd {
69 compatible = "regulator-fixed"; 69 compatible = "regulator-fixed";
70 enable-active-high; 70 enable-active-high;
71 gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>; 71 gpio = <&gpio2 RK_PB5 GPIO_ACTIVE_HIGH>;
72 pinctrl-names = "default"; 72 pinctrl-names = "default";
73 pinctrl-0 = <&avdd_1v8_disp_en>; 73 pinctrl-0 = <&avdd_1v8_disp_en>;
74 regulator-name = "vcc18_lcd"; 74 regulator-name = "vcc18_lcd";
@@ -80,7 +80,7 @@
80 backlight_regulator: backlight-regulator { 80 backlight_regulator: backlight-regulator {
81 compatible = "regulator-fixed"; 81 compatible = "regulator-fixed";
82 enable-active-high; 82 enable-active-high;
83 gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>; 83 gpio = <&gpio2 RK_PB4 GPIO_ACTIVE_HIGH>;
84 pinctrl-names = "default"; 84 pinctrl-names = "default";
85 pinctrl-0 = <&bl_pwr_en>; 85 pinctrl-0 = <&bl_pwr_en>;
86 regulator-name = "backlight_regulator"; 86 regulator-name = "backlight_regulator";
@@ -126,14 +126,14 @@
126 126
127&vcc_5v { 127&vcc_5v {
128 enable-active-high; 128 enable-active-high;
129 gpio = <&gpio7 21 GPIO_ACTIVE_HIGH>; 129 gpio = <&gpio7 RK_PC5 GPIO_ACTIVE_HIGH>;
130 pinctrl-names = "default"; 130 pinctrl-names = "default";
131 pinctrl-0 = <&drv_5v>; 131 pinctrl-0 = <&drv_5v>;
132}; 132};
133 133
134&vcc50_hdmi { 134&vcc50_hdmi {
135 enable-active-high; 135 enable-active-high;
136 gpio = <&gpio5 19 GPIO_ACTIVE_HIGH>; 136 gpio = <&gpio5 RK_PC3 GPIO_ACTIVE_HIGH>;
137 pinctrl-names = "default"; 137 pinctrl-names = "default";
138 pinctrl-0 = <&vcc50_hdmi_en>; 138 pinctrl-0 = <&vcc50_hdmi_en>;
139}; 139};
diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi b/arch/arm/boot/dts/rk3288-veyron.dtsi
index 2251d28e9d2a..5d1eb0a25827 100644
--- a/arch/arm/boot/dts/rk3288-veyron.dtsi
+++ b/arch/arm/boot/dts/rk3288-veyron.dtsi
@@ -61,7 +61,7 @@
61 pinctrl-0 = <&pwr_key_l>; 61 pinctrl-0 = <&pwr_key_l>;
62 power { 62 power {
63 label = "Power"; 63 label = "Power";
64 gpios = <&gpio0 5 GPIO_ACTIVE_LOW>; 64 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
65 linux,code = <KEY_POWER>; 65 linux,code = <KEY_POWER>;
66 debounce-interval = <100>; 66 debounce-interval = <100>;
67 wakeup-source; 67 wakeup-source;
@@ -70,7 +70,7 @@
70 70
71 gpio-restart { 71 gpio-restart {
72 compatible = "gpio-restart"; 72 compatible = "gpio-restart";
73 gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>; 73 gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
74 pinctrl-names = "default"; 74 pinctrl-names = "default";
75 pinctrl-0 = <&ap_warm_reset_h>; 75 pinctrl-0 = <&ap_warm_reset_h>;
76 priority = <200>; 76 priority = <200>;
@@ -80,7 +80,7 @@
80 compatible = "mmc-pwrseq-emmc"; 80 compatible = "mmc-pwrseq-emmc";
81 pinctrl-0 = <&emmc_reset>; 81 pinctrl-0 = <&emmc_reset>;
82 pinctrl-names = "default"; 82 pinctrl-names = "default";
83 reset-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>; 83 reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>;
84 }; 84 };
85 85
86 sdio_pwrseq: sdio-pwrseq { 86 sdio_pwrseq: sdio-pwrseq {
@@ -96,7 +96,7 @@
96 * - SDIO_RESET_L_WL_REG_ON 96 * - SDIO_RESET_L_WL_REG_ON
97 * - PDN (power down when low) 97 * - PDN (power down when low)
98 */ 98 */
99 reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>; 99 reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
100 }; 100 };
101 101
102 vcc_5v: vcc-5v { 102 vcc_5v: vcc-5v {
@@ -178,7 +178,7 @@
178 reg = <0x1b>; 178 reg = <0x1b>;
179 clock-output-names = "xin32k", "wifibt_32kin"; 179 clock-output-names = "xin32k", "wifibt_32kin";
180 interrupt-parent = <&gpio0>; 180 interrupt-parent = <&gpio0>;
181 interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 181 interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
182 pinctrl-names = "default"; 182 pinctrl-names = "default";
183 pinctrl-0 = <&pmic_int_l>; 183 pinctrl-0 = <&pmic_int_l>;
184 rockchip,system-power-controller; 184 rockchip,system-power-controller;
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index 4fad13368a7b..df8a0dbe9d91 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -762,6 +762,15 @@
762 <&cru SCLK_ISP_JPE>, 762 <&cru SCLK_ISP_JPE>,
763 <&cru SCLK_ISP>, 763 <&cru SCLK_ISP>,
764 <&cru SCLK_RGA>; 764 <&cru SCLK_RGA>;
765 pm_qos = <&qos_vio0_iep>,
766 <&qos_vio1_vop>,
767 <&qos_vio1_isp_w0>,
768 <&qos_vio1_isp_w1>,
769 <&qos_vio0_vop>,
770 <&qos_vio0_vip>,
771 <&qos_vio2_rga_r>,
772 <&qos_vio2_rga_w>,
773 <&qos_vio1_isp_r>;
765 }; 774 };
766 775
767 /* 776 /*
@@ -773,6 +782,8 @@
773 clocks = <&cru ACLK_HEVC>, 782 clocks = <&cru ACLK_HEVC>,
774 <&cru SCLK_HEVC_CABAC>, 783 <&cru SCLK_HEVC_CABAC>,
775 <&cru SCLK_HEVC_CORE>; 784 <&cru SCLK_HEVC_CORE>;
785 pm_qos = <&qos_hevc_r>,
786 <&qos_hevc_w>;
776 }; 787 };
777 788
778 /* 789 /*
@@ -784,6 +795,7 @@
784 reg = <RK3288_PD_VIDEO>; 795 reg = <RK3288_PD_VIDEO>;
785 clocks = <&cru ACLK_VCODEC>, 796 clocks = <&cru ACLK_VCODEC>,
786 <&cru HCLK_VCODEC>; 797 <&cru HCLK_VCODEC>;
798 pm_qos = <&qos_video>;
787 }; 799 };
788 800
789 /* 801 /*
@@ -793,6 +805,8 @@
793 pd_gpu@RK3288_PD_GPU { 805 pd_gpu@RK3288_PD_GPU {
794 reg = <RK3288_PD_GPU>; 806 reg = <RK3288_PD_GPU>;
795 clocks = <&cru ACLK_GPU>; 807 clocks = <&cru ACLK_GPU>;
808 pm_qos = <&qos_gpu_r>,
809 <&qos_gpu_w>;
796 }; 810 };
797 }; 811 };
798 812
@@ -1103,6 +1117,76 @@
1103 }; 1117 };
1104 }; 1118 };
1105 1119
1120 qos_gpu_r: qos@ffaa0000 {
1121 compatible = "syscon";
1122 reg = <0xffaa0000 0x20>;
1123 };
1124
1125 qos_gpu_w: qos@ffaa0080 {
1126 compatible = "syscon";
1127 reg = <0xffaa0080 0x20>;
1128 };
1129
1130 qos_vio1_vop: qos@ffad0000 {
1131 compatible = "syscon";
1132 reg = <0xffad0000 0x20>;
1133 };
1134
1135 qos_vio1_isp_w0: qos@ffad0100 {
1136 compatible = "syscon";
1137 reg = <0xffad0100 0x20>;
1138 };
1139
1140 qos_vio1_isp_w1: qos@ffad0180 {
1141 compatible = "syscon";
1142 reg = <0xffad0180 0x20>;
1143 };
1144
1145 qos_vio0_vop: qos@ffad0400 {
1146 compatible = "syscon";
1147 reg = <0xffad0400 0x20>;
1148 };
1149
1150 qos_vio0_vip: qos@ffad0480 {
1151 compatible = "syscon";
1152 reg = <0xffad0480 0x20>;
1153 };
1154
1155 qos_vio0_iep: qos@ffad0500 {
1156 compatible = "syscon";
1157 reg = <0xffad0500 0x20>;
1158 };
1159
1160 qos_vio2_rga_r: qos@ffad0800 {
1161 compatible = "syscon";
1162 reg = <0xffad0800 0x20>;
1163 };
1164
1165 qos_vio2_rga_w: qos@ffad0880 {
1166 compatible = "syscon";
1167 reg = <0xffad0880 0x20>;
1168 };
1169
1170 qos_vio1_isp_r: qos@ffad0900 {
1171 compatible = "syscon";
1172 reg = <0xffad0900 0x20>;
1173 };
1174
1175 qos_video: qos@ffae0000 {
1176 compatible = "syscon";
1177 reg = <0xffae0000 0x20>;
1178 };
1179
1180 qos_hevc_r: qos@ffaf0000 {
1181 compatible = "syscon";
1182 reg = <0xffaf0000 0x20>;
1183 };
1184
1185 qos_hevc_w: qos@ffaf0080 {
1186 compatible = "syscon";
1187 reg = <0xffaf0080 0x20>;
1188 };
1189
1106 gic: interrupt-controller@ffc01000 { 1190 gic: interrupt-controller@ffc01000 {
1107 compatible = "arm,gic-400"; 1191 compatible = "arm,gic-400";
1108 interrupt-controller; 1192 interrupt-controller;
@@ -1110,7 +1194,7 @@
1110 #address-cells = <0>; 1194 #address-cells = <0>;
1111 1195
1112 reg = <0xffc01000 0x1000>, 1196 reg = <0xffc01000 0x1000>,
1113 <0xffc02000 0x1000>, 1197 <0xffc02000 0x2000>,
1114 <0xffc04000 0x2000>, 1198 <0xffc04000 0x2000>,
1115 <0xffc06000 0x2000>; 1199 <0xffc06000 0x2000>;
1116 interrupts = <GIC_PPI 9 0xf04>; 1200 interrupts = <GIC_PPI 9 0xf04>;
diff --git a/arch/arm/boot/dts/sama5d2.dtsi b/arch/arm/boot/dts/sama5d2.dtsi
index ceb9783ff7e1..22332be72140 100644
--- a/arch/arm/boot/dts/sama5d2.dtsi
+++ b/arch/arm/boot/dts/sama5d2.dtsi
@@ -395,6 +395,16 @@
395 clock-names = "dma_clk"; 395 clock-names = "dma_clk";
396 }; 396 };
397 397
398 /* Place dma1 here despite its address */
399 dma1: dma-controller@f0004000 {
400 compatible = "atmel,sama5d4-dma";
401 reg = <0xf0004000 0x1000>;
402 interrupts = <7 IRQ_TYPE_LEVEL_HIGH 0>;
403 #dma-cells = <1>;
404 clocks = <&dma1_clk>;
405 clock-names = "dma_clk";
406 };
407
398 pmc: pmc@f0014000 { 408 pmc: pmc@f0014000 {
399 compatible = "atmel,sama5d2-pmc", "syscon"; 409 compatible = "atmel,sama5d2-pmc", "syscon";
400 reg = <0xf0014000 0x160>; 410 reg = <0xf0014000 0x160>;
@@ -931,6 +941,22 @@
931 status = "disabled"; 941 status = "disabled";
932 }; 942 };
933 943
944 ssc0: ssc@f8004000 {
945 compatible = "atmel,at91sam9g45-ssc";
946 reg = <0xf8004000 0x4000>;
947 interrupts = <43 IRQ_TYPE_LEVEL_HIGH 4>;
948 dmas = <&dma0
949 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
950 AT91_XDMAC_DT_PERID(21))>,
951 <&dma0
952 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
953 AT91_XDMAC_DT_PERID(22))>;
954 dma-names = "tx", "rx";
955 clocks = <&ssc0_clk>;
956 clock-names = "pclk";
957 status = "disabled";
958 };
959
934 macb0: ethernet@f8008000 { 960 macb0: ethernet@f8008000 {
935 compatible = "atmel,sama5d2-gem"; 961 compatible = "atmel,sama5d2-gem";
936 reg = <0xf8008000 0x1000>; 962 reg = <0xf8008000 0x1000>;
@@ -1141,10 +1167,10 @@
1141 compatible = "atmel,at91sam9260-usart"; 1167 compatible = "atmel,at91sam9260-usart";
1142 reg = <0xfc008000 0x100>; 1168 reg = <0xfc008000 0x100>;
1143 interrupts = <27 IRQ_TYPE_LEVEL_HIGH 7>; 1169 interrupts = <27 IRQ_TYPE_LEVEL_HIGH 7>;
1144 dmas = <&dma0 1170 dmas = <&dma1
1145 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | 1171 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
1146 AT91_XDMAC_DT_PERID(41))>, 1172 AT91_XDMAC_DT_PERID(41))>,
1147 <&dma0 1173 <&dma1
1148 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | 1174 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
1149 AT91_XDMAC_DT_PERID(42))>; 1175 AT91_XDMAC_DT_PERID(42))>;
1150 dma-names = "tx", "rx"; 1176 dma-names = "tx", "rx";
diff --git a/arch/arm/boot/dts/sama5d36ek_cmp.dts b/arch/arm/boot/dts/sama5d36ek_cmp.dts
new file mode 100644
index 000000000000..b632143844e5
--- /dev/null
+++ b/arch/arm/boot/dts/sama5d36ek_cmp.dts
@@ -0,0 +1,87 @@
1/*
2 * sama5d36ek_cmp.dts - Device Tree file for SAMA5D36-EK CMP board
3 *
4 * Copyright (C) 2016 Atmel,
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44/dts-v1/;
45#include "sama5d36.dtsi"
46#include "sama5d3xmb_cmp.dtsi"
47
48/ {
49 model = "Atmel SAMA5D36EK-CMP";
50 compatible = "atmel,sama5d36ek-cmp", "atmel,sama5d3xmb-cmp", "atmel,sama5d3xcm-cmp", "atmel,sama5d36", "atmel,sama5d3", "atmel,sama5";
51
52 ahb {
53 apb {
54 spi0: spi@f0004000 {
55 status = "okay";
56 };
57
58 ssc0: ssc@f0008000 {
59 status = "okay";
60 };
61
62 can0: can@f000c000 {
63 status = "okay";
64 };
65
66 i2c0: i2c@f0014000 {
67 status = "okay";
68 };
69
70 i2c1: i2c@f0018000 {
71 status = "okay";
72 };
73
74 macb0: ethernet@f0028000 {
75 status = "okay";
76 };
77
78 macb1: ethernet@f802c000 {
79 status = "okay";
80 };
81 };
82 };
83
84 sound {
85 status = "okay";
86 };
87};
diff --git a/arch/arm/boot/dts/sama5d3_uart.dtsi b/arch/arm/boot/dts/sama5d3_uart.dtsi
index 2511d748867b..186377d41c91 100644
--- a/arch/arm/boot/dts/sama5d3_uart.dtsi
+++ b/arch/arm/boot/dts/sama5d3_uart.dtsi
@@ -55,7 +55,7 @@
55 55
56 uart0: serial@f0024000 { 56 uart0: serial@f0024000 {
57 compatible = "atmel,at91sam9260-usart"; 57 compatible = "atmel,at91sam9260-usart";
58 reg = <0xf0024000 0x200>; 58 reg = <0xf0024000 0x100>;
59 interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>; 59 interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
60 pinctrl-names = "default"; 60 pinctrl-names = "default";
61 pinctrl-0 = <&pinctrl_uart0>; 61 pinctrl-0 = <&pinctrl_uart0>;
@@ -66,7 +66,7 @@
66 66
67 uart1: serial@f8028000 { 67 uart1: serial@f8028000 {
68 compatible = "atmel,at91sam9260-usart"; 68 compatible = "atmel,at91sam9260-usart";
69 reg = <0xf8028000 0x200>; 69 reg = <0xf8028000 0x100>;
70 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 5>; 70 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 5>;
71 pinctrl-names = "default"; 71 pinctrl-names = "default";
72 pinctrl-0 = <&pinctrl_uart1>; 72 pinctrl-0 = <&pinctrl_uart1>;
diff --git a/arch/arm/boot/dts/sama5d3xcm_cmp.dtsi b/arch/arm/boot/dts/sama5d3xcm_cmp.dtsi
new file mode 100644
index 000000000000..dc7572bc7ff0
--- /dev/null
+++ b/arch/arm/boot/dts/sama5d3xcm_cmp.dtsi
@@ -0,0 +1,201 @@
1/*
2 * sama5d3xcm_cmp.dtsi - Device Tree Include file for SAMA5D36 CMP CPU Module
3 *
4 * Copyright (C) 2016 Atmel,
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/ {
46 compatible = "atmel,sama5d3xcm-cmp", "atmel,sama5d3", "atmel,sama5";
47
48 chosen {
49 stdout-path = "serial0:115200n8";
50 };
51
52 memory {
53 reg = <0x20000000 0x20000000>;
54 };
55
56 clocks {
57 slow_xtal {
58 clock-frequency = <32768>;
59 };
60
61 main_xtal {
62 clock-frequency = <12000000>;
63 };
64 };
65
66 ahb {
67 apb {
68 spi0: spi@f0004000 {
69 cs-gpios = <&pioD 13 0>, <0>, <0>, <0>;
70 };
71
72 macb0: ethernet@f0028000 {
73 phy-mode = "rgmii";
74 #address-cells = <1>;
75 #size-cells = <0>;
76
77 ethernet-phy@1 {
78 reg = <0x1>;
79 interrupt-parent = <&pioB>;
80 interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
81 txen-skew-ps = <800>;
82 txc-skew-ps = <3000>;
83 rxdv-skew-ps = <400>;
84 rxc-skew-ps = <3000>;
85 rxd0-skew-ps = <400>;
86 rxd1-skew-ps = <400>;
87 rxd2-skew-ps = <400>;
88 rxd3-skew-ps = <400>;
89 };
90
91 ethernet-phy@7 {
92 reg = <0x7>;
93 interrupt-parent = <&pioB>;
94 interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
95 txen-skew-ps = <800>;
96 txc-skew-ps = <3000>;
97 rxdv-skew-ps = <400>;
98 rxc-skew-ps = <3000>;
99 rxd0-skew-ps = <400>;
100 rxd1-skew-ps = <400>;
101 rxd2-skew-ps = <400>;
102 rxd3-skew-ps = <400>;
103 };
104 };
105
106 i2c1: i2c@f0018000 {
107 pmic: act8865@5b {
108 compatible = "active-semi,act8865";
109 reg = <0x5b>;
110 status = "disabled";
111
112 regulators {
113 vcc_1v8_reg: DCDC_REG1 {
114 regulator-name = "VCC_1V8";
115 regulator-min-microvolt = <1800000>;
116 regulator-max-microvolt = <1800000>;
117 regulator-always-on;
118 };
119
120 vcc_1v2_reg: DCDC_REG2 {
121 regulator-name = "VCC_1V2";
122 regulator-min-microvolt = <1100000>;
123 regulator-max-microvolt = <1300000>;
124 regulator-always-on;
125 };
126
127 vcc_3v3_reg: DCDC_REG3 {
128 regulator-name = "VCC_3V3";
129 regulator-min-microvolt = <3300000>;
130 regulator-max-microvolt = <3300000>;
131 regulator-always-on;
132 };
133
134 vddana_reg: LDO_REG1 {
135 regulator-name = "VDDANA";
136 regulator-min-microvolt = <3300000>;
137 regulator-max-microvolt = <3300000>;
138 regulator-always-on;
139 };
140
141 vddfuse_reg: LDO_REG2 {
142 regulator-name = "FUSE_2V5";
143 regulator-min-microvolt = <2500000>;
144 regulator-max-microvolt = <2500000>;
145 };
146 };
147 };
148 };
149 };
150
151 nand0: nand@60000000 {
152 nand-bus-width = <8>;
153 nand-ecc-mode = "hw";
154 atmel,has-pmecc;
155 atmel,pmecc-cap = <4>;
156 atmel,pmecc-sector-size = <512>;
157 nand-on-flash-bbt;
158 status = "okay";
159
160 at91bootstrap@0 {
161 label = "at91bootstrap";
162 reg = <0x0 0x40000>;
163 };
164
165 bootloader@40000 {
166 label = "bootloader";
167 reg = <0x40000 0x80000>;
168 };
169
170 bootloaderenv@c0000 {
171 label = "bootloader env";
172 reg = <0xc0000 0xc0000>;
173 };
174
175 dtb@180000 {
176 label = "device tree";
177 reg = <0x180000 0x80000>;
178 };
179
180 kernel@200000 {
181 label = "kernel";
182 reg = <0x200000 0x600000>;
183 };
184
185 rootfs@800000 {
186 label = "rootfs";
187 reg = <0x800000 0x0f800000>;
188 };
189 };
190 };
191
192 leds {
193 compatible = "gpio-leds";
194
195 d2 {
196 label = "d2";
197 gpios = <&pioE 25 GPIO_ACTIVE_LOW>;
198 linux,default-trigger = "heartbeat";
199 };
200 };
201};
diff --git a/arch/arm/boot/dts/sama5d3xmb_cmp.dtsi b/arch/arm/boot/dts/sama5d3xmb_cmp.dtsi
new file mode 100644
index 000000000000..252e0d35f846
--- /dev/null
+++ b/arch/arm/boot/dts/sama5d3xmb_cmp.dtsi
@@ -0,0 +1,301 @@
1/*
2 * sama5d3xmb_cmp.dts - Device Tree file for SAMA5D3x CMP mother board
3 *
4 * Copyright (C) 2016 Atmel,
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44#include "sama5d3xcm_cmp.dtsi"
45
46/ {
47 compatible = "atmel,sama5d3xmb-cmp", "atmel,sama5d3xcm-cmp", "atmel,sama5d3", "atmel,sama5";
48
49 ahb {
50 apb {
51 mmc0: mmc@f0000000 {
52 pinctrl-names = "default";
53 pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_cd>;
54 status = "okay";
55 slot@0 {
56 reg = <0>;
57 bus-width = <4>;
58 cd-gpios = <&pioD 17 GPIO_ACTIVE_HIGH>;
59 };
60 };
61
62 spi0: spi@f0004000 {
63 dmas = <0>, <0>; /* Do not use DMA for spi0 */
64
65 m25p80@0 {
66 compatible = "atmel,at25df321a";
67 spi-max-frequency = <50000000>;
68 reg = <0>;
69 };
70 };
71
72 ssc0: ssc@f0008000 {
73 atmel,clk-from-rk-pin;
74 };
75
76 /*
77 * i2c0 conflicts with ISI:
78 * disable it to allow the use of ISI
79 * can not enable audio when i2c0 disabled
80 */
81 i2c0: i2c@f0014000 {
82 wm8904: wm8904@1a {
83 compatible = "wlf,wm8904";
84 reg = <0x1a>;
85 clocks = <&pck0>;
86 clock-names = "mclk";
87 };
88 };
89
90 i2c1: i2c@f0018000 {
91 ov2640: camera@0x30 {
92 compatible = "ovti,ov2640";
93 reg = <0x30>;
94 pinctrl-names = "default";
95 pinctrl-0 = <&pinctrl_pck1_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
96 resetb-gpios = <&pioE 24 GPIO_ACTIVE_LOW>;
97 pwdn-gpios = <&pioE 29 GPIO_ACTIVE_HIGH>;
98 /* use pck1 for the master clock of ov2640 */
99 clocks = <&pck1>;
100 clock-names = "xvclk";
101 assigned-clocks = <&pck1>;
102 assigned-clock-rates = <25000000>;
103
104 port {
105 ov2640_0: endpoint {
106 remote-endpoint = <&isi_0>;
107 bus-width = <8>;
108 };
109 };
110 };
111 };
112
113 usart1: serial@f0020000 {
114 dmas = <0>, <0>; /* Do not use DMA for usart1 */
115 pinctrl-names = "default";
116 pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
117 status = "okay";
118 };
119
120 isi: isi@f0034000 {
121 port {
122 isi_0: endpoint {
123 remote-endpoint = <&ov2640_0>;
124 bus-width = <8>;
125 vsync-active = <1>;
126 hsync-active = <1>;
127 };
128 };
129 };
130
131 mmc1: mmc@f8000000 {
132 pinctrl-names = "default";
133 pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
134 status = "okay";
135 slot@0 {
136 reg = <0>;
137 bus-width = <4>;
138 cd-gpios = <&pioD 18 GPIO_ACTIVE_HIGH>;
139 };
140 };
141
142 adc0: adc@f8018000 {
143 pinctrl-names = "default", "sleep";
144 pinctrl-0 = <
145 &pinctrl_adc0_adtrg
146 &pinctrl_adc0_ad0
147 &pinctrl_adc0_ad1
148 &pinctrl_adc0_ad2
149 &pinctrl_adc0_ad3
150 &pinctrl_adc0_ad4
151 >;
152 pinctrl-1 = <
153 &pinctrl_adc0_adtrg_sleep
154 &pinctrl_adc0_ad0_sleep
155 &pinctrl_adc0_ad1_sleep
156 &pinctrl_adc0_ad2_sleep
157 &pinctrl_adc0_ad3_sleep
158 &pinctrl_adc0_ad4_sleep
159 >;
160 status = "okay";
161 };
162
163 macb1: ethernet@f802c000 {
164 phy-mode = "rmii";
165
166 #address-cells = <1>;
167 #size-cells = <0>;
168 phy0: ethernet-phy@1 {
169 /*interrupt-parent = <&pioE>;*/
170 /*interrupts = <30 IRQ_TYPE_EDGE_FALLING>;*/
171 reg = <1>;
172 };
173 };
174
175 pinctrl@fffff200 {
176 adc0 {
177 pinctrl_adc0_adtrg_sleep: adc0_adtrg_1 {
178 atmel,pins =
179 <AT91_PIOD 19 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
180 };
181 pinctrl_adc0_ad0_sleep: adc0_ad0_1 {
182 atmel,pins =
183 <AT91_PIOD 20 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
184 };
185 pinctrl_adc0_ad1_sleep: adc0_ad1_1 {
186 atmel,pins =
187 <AT91_PIOD 21 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
188 };
189 pinctrl_adc0_ad2_sleep: adc0_ad2_1 {
190 atmel,pins =
191 <AT91_PIOD 22 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
192 };
193 pinctrl_adc0_ad3_sleep: adc0_ad3_1 {
194 atmel,pins =
195 <AT91_PIOD 23 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
196 };
197 pinctrl_adc0_ad4_sleep: adc0_ad4_1 {
198 atmel,pins =
199 <AT91_PIOD 24 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
200 };
201 };
202
203 board {
204 pinctrl_gpio_keys: gpio_keys {
205 atmel,pins =
206 <AT91_PIOE 27 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
207 };
208
209 pinctrl_mmc0_cd: mmc0_cd {
210 atmel,pins =
211 <AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
212 };
213
214 pinctrl_mmc1_cd: mmc1_cd {
215 atmel,pins =
216 <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
217 };
218
219 pinctrl_pck0_as_audio_mck: pck0_as_audio_mck {
220 atmel,pins =
221 <AT91_PIOD 30 AT91_PERIPH_B AT91_PINCTRL_NONE>;
222 };
223
224 pinctrl_pck1_as_isi_mck: pck1_as_isi_mck-0 {
225 atmel,pins =
226 <AT91_PIOD 31 AT91_PERIPH_B AT91_PINCTRL_NONE>;
227 };
228
229 pinctrl_sensor_reset: sensor_reset-0 {
230 atmel,pins =
231 <AT91_PIOE 24 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
232 };
233
234 pinctrl_sensor_power: sensor_power-0 {
235 atmel,pins =
236 <AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
237 };
238
239 pinctrl_usba_vbus: usba_vbus {
240 atmel,pins =
241 <AT91_PIOD 29 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
242 };
243 };
244 };
245
246 dbgu: serial@ffffee00 {
247 dmas = <0>, <0>; /* Do not use DMA for dbgu */
248 status = "okay";
249 };
250
251 watchdog@fffffe40 {
252 status = "okay";
253 };
254 };
255
256 usb0: gadget@00500000 {
257 atmel,vbus-gpio = <&pioD 29 GPIO_ACTIVE_HIGH>;
258 pinctrl-names = "default";
259 pinctrl-0 = <&pinctrl_usba_vbus>;
260 status = "okay";
261 };
262 };
263
264 sound {
265 compatible = "atmel,asoc-wm8904";
266 pinctrl-names = "default";
267 pinctrl-0 = <&pinctrl_pck0_as_audio_mck>;
268
269 atmel,model = "wm8904 @ SAMA5D3EK";
270 atmel,audio-routing =
271 "Headphone Jack", "HPOUTL",
272 "Headphone Jack", "HPOUTR",
273 "IN2L", "Line In Jack",
274 "IN2R", "Line In Jack",
275 "Mic", "MICBIAS",
276 "IN1L", "Mic";
277
278 atmel,ssc-controller = <&ssc0>;
279 atmel,audio-codec = <&wm8904>;
280
281 status = "disabled";
282 };
283
284 /* Conflict with LCD pins */
285 gpio_keys {
286 compatible = "gpio-keys";
287 status = "okay";
288
289 #address-cells = <1>;
290 #size-cells = <0>;
291 pinctrl-names = "default";
292 pinctrl-0 = <&pinctrl_gpio_keys>;
293
294 pb_user1 {
295 label = "pb_user1";
296 gpios = <&pioE 27 GPIO_ACTIVE_HIGH>;
297 linux,code = <0x100>;
298 wakeup-source;
299 };
300 };
301};
diff --git a/arch/arm/boot/dts/sama5d4.dtsi b/arch/arm/boot/dts/sama5d4.dtsi
index 4f60c1b7b137..d3889c9d25a9 100644
--- a/arch/arm/boot/dts/sama5d4.dtsi
+++ b/arch/arm/boot/dts/sama5d4.dtsi
@@ -854,10 +854,10 @@
854 compatible = "atmel,at91sam9260-usart"; 854 compatible = "atmel,at91sam9260-usart";
855 reg = <0xf8004000 0x100>; 855 reg = <0xf8004000 0x100>;
856 interrupts = <27 IRQ_TYPE_LEVEL_HIGH 5>; 856 interrupts = <27 IRQ_TYPE_LEVEL_HIGH 5>;
857 dmas = <&dma1 857 dmas = <&dma0
858 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) 858 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
859 | AT91_XDMAC_DT_PERID(22))>, 859 | AT91_XDMAC_DT_PERID(22))>,
860 <&dma1 860 <&dma0
861 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) 861 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
862 | AT91_XDMAC_DT_PERID(23))>; 862 | AT91_XDMAC_DT_PERID(23))>;
863 dma-names = "tx", "rx"; 863 dma-names = "tx", "rx";
@@ -938,10 +938,10 @@
938 compatible = "atmel,sama5d4-i2c"; 938 compatible = "atmel,sama5d4-i2c";
939 reg = <0xf8018000 0x4000>; 939 reg = <0xf8018000 0x4000>;
940 interrupts = <33 IRQ_TYPE_LEVEL_HIGH 6>; 940 interrupts = <33 IRQ_TYPE_LEVEL_HIGH 6>;
941 dmas = <&dma1 941 dmas = <&dma0
942 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) 942 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
943 | AT91_XDMAC_DT_PERID(4))>, 943 | AT91_XDMAC_DT_PERID(4))>,
944 <&dma1 944 <&dma0
945 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) 945 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
946 | AT91_XDMAC_DT_PERID(5))>; 946 | AT91_XDMAC_DT_PERID(5))>;
947 dma-names = "tx", "rx"; 947 dma-names = "tx", "rx";
@@ -1055,10 +1055,10 @@
1055 compatible = "atmel,at91sam9260-usart"; 1055 compatible = "atmel,at91sam9260-usart";
1056 reg = <0xfc004000 0x100>; 1056 reg = <0xfc004000 0x100>;
1057 interrupts = <28 IRQ_TYPE_LEVEL_HIGH 5>; 1057 interrupts = <28 IRQ_TYPE_LEVEL_HIGH 5>;
1058 dmas = <&dma1 1058 dmas = <&dma0
1059 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) 1059 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
1060 | AT91_XDMAC_DT_PERID(24))>, 1060 | AT91_XDMAC_DT_PERID(24))>,
1061 <&dma1 1061 <&dma0
1062 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) 1062 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
1063 | AT91_XDMAC_DT_PERID(25))>; 1063 | AT91_XDMAC_DT_PERID(25))>;
1064 dma-names = "tx", "rx"; 1064 dma-names = "tx", "rx";
@@ -1167,10 +1167,10 @@
1167 compatible = "atmel,at91rm9200-spi"; 1167 compatible = "atmel,at91rm9200-spi";
1168 reg = <0xfc01c000 0x100>; 1168 reg = <0xfc01c000 0x100>;
1169 interrupts = <39 IRQ_TYPE_LEVEL_HIGH 3>; 1169 interrupts = <39 IRQ_TYPE_LEVEL_HIGH 3>;
1170 dmas = <&dma1 1170 dmas = <&dma0
1171 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) 1171 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
1172 | AT91_XDMAC_DT_PERID(14))>, 1172 | AT91_XDMAC_DT_PERID(14))>,
1173 <&dma1 1173 <&dma0
1174 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) 1174 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
1175 | AT91_XDMAC_DT_PERID(15))>; 1175 | AT91_XDMAC_DT_PERID(15))>;
1176 dma-names = "tx", "rx"; 1176 dma-names = "tx", "rx";
diff --git a/arch/arm/boot/dts/sh73a0.dtsi b/arch/arm/boot/dts/sh73a0.dtsi
index e1267590b575..6b01ab354e88 100644
--- a/arch/arm/boot/dts/sh73a0.dtsi
+++ b/arch/arm/boot/dts/sh73a0.dtsi
@@ -263,7 +263,7 @@
263 }; 263 };
264 264
265 mmcif: mmc@e6bd0000 { 265 mmcif: mmc@e6bd0000 {
266 compatible = "renesas,sh-mmcif"; 266 compatible = "renesas,mmcif-sh73a0", "renesas,sh-mmcif";
267 reg = <0xe6bd0000 0x100>; 267 reg = <0xe6bd0000 0x100>;
268 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH 268 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH
269 GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>; 269 GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfpga.dtsi
index da689659131f..2c43c4d85dee 100644
--- a/arch/arm/boot/dts/socfpga.dtsi
+++ b/arch/arm/boot/dts/socfpga.dtsi
@@ -93,6 +93,14 @@
93 }; 93 };
94 }; 94 };
95 95
96 base_fpga_region {
97 compatible = "fpga-region";
98 fpga-mgr = <&fpgamgr0>;
99
100 #address-cells = <0x1>;
101 #size-cells = <0x1>;
102 };
103
96 can0: can@ffc00000 { 104 can0: can@ffc00000 {
97 compatible = "bosch,d_can"; 105 compatible = "bosch,d_can";
98 reg = <0xffc00000 0x1000>; 106 reg = <0xffc00000 0x1000>;
@@ -513,10 +521,24 @@
513 }; 521 };
514 }; 522 };
515 523
524 fpga_bridge0: fpga_bridge@ff400000 {
525 compatible = "altr,socfpga-lwhps2fpga-bridge";
526 reg = <0xff400000 0x100000>;
527 resets = <&rst LWHPS2FPGA_RESET>;
528 clocks = <&l4_main_clk>;
529 };
530
531 fpga_bridge1: fpga_bridge@ff500000 {
532 compatible = "altr,socfpga-hps2fpga-bridge";
533 reg = <0xff500000 0x10000>;
534 resets = <&rst HPS2FPGA_RESET>;
535 clocks = <&l4_main_clk>;
536 };
537
516 fpgamgr0: fpgamgr@ff706000 { 538 fpgamgr0: fpgamgr@ff706000 {
517 compatible = "altr,socfpga-fpga-mgr"; 539 compatible = "altr,socfpga-fpga-mgr";
518 reg = <0xff706000 0x1000 540 reg = <0xff706000 0x1000
519 0xffb90000 0x1000>; 541 0xffb90000 0x4>;
520 interrupts = <0 175 4>; 542 interrupts = <0 175 4>;
521 }; 543 };
522 544
@@ -694,6 +716,11 @@
694 arm,prefetch-offset = <7>; 716 arm,prefetch-offset = <7>;
695 }; 717 };
696 718
719 l3regs@0xff800000 {
720 compatible = "altr,l3regs", "syscon";
721 reg = <0xff800000 0x1000>;
722 };
723
697 mmc: dwmmc0@ff704000 { 724 mmc: dwmmc0@ff704000 {
698 compatible = "altr,socfpga-dw-mshc"; 725 compatible = "altr,socfpga-dw-mshc";
699 reg = <0xff704000 0x1000>; 726 reg = <0xff704000 0x1000>;
@@ -751,7 +778,7 @@
751 }; 778 };
752 779
753 sdr: sdr@ffc25000 { 780 sdr: sdr@ffc25000 {
754 compatible = "syscon"; 781 compatible = "altr,sdr-ctl", "syscon";
755 reg = <0xffc25000 0x1000>; 782 reg = <0xffc25000 0x1000>;
756 }; 783 };
757 784
diff --git a/arch/arm/boot/dts/socfpga_arria10.dtsi b/arch/arm/boot/dts/socfpga_arria10.dtsi
index 551c636a4f01..6b0b7463f36f 100644
--- a/arch/arm/boot/dts/socfpga_arria10.dtsi
+++ b/arch/arm/boot/dts/socfpga_arria10.dtsi
@@ -83,6 +83,14 @@
83 }; 83 };
84 }; 84 };
85 85
86 base_fpga_region {
87 #address-cells = <0x1>;
88 #size-cells = <0x1>;
89
90 compatible = "fpga-region";
91 fpga-mgr = <&fpga_mgr>;
92 };
93
86 clkmgr@ffd04000 { 94 clkmgr@ffd04000 {
87 compatible = "altr,clk-mgr"; 95 compatible = "altr,clk-mgr";
88 reg = <0xffd04000 0x1000>; 96 reg = <0xffd04000 0x1000>;
@@ -400,6 +408,12 @@
400 }; 408 };
401 }; 409 };
402 410
411 socfpga_axi_setup: stmmac-axi-config {
412 snps,wr_osr_lmt = <0xf>;
413 snps,rd_osr_lmt = <0xf>;
414 snps,blen = <0 0 0 0 16 0 0>;
415 };
416
403 gmac0: ethernet@ff800000 { 417 gmac0: ethernet@ff800000 {
404 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac"; 418 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
405 altr,sysmgr-syscon = <&sysmgr 0x44 0>; 419 altr,sysmgr-syscon = <&sysmgr 0x44 0>;
@@ -416,6 +430,7 @@
416 clock-names = "stmmaceth"; 430 clock-names = "stmmaceth";
417 resets = <&rst EMAC0_RESET>; 431 resets = <&rst EMAC0_RESET>;
418 reset-names = "stmmaceth"; 432 reset-names = "stmmaceth";
433 snps,axi-config = <&socfpga_axi_setup>;
419 status = "disabled"; 434 status = "disabled";
420 }; 435 };
421 436
@@ -435,6 +450,7 @@
435 clock-names = "stmmaceth"; 450 clock-names = "stmmaceth";
436 resets = <&rst EMAC1_RESET>; 451 resets = <&rst EMAC1_RESET>;
437 reset-names = "stmmaceth"; 452 reset-names = "stmmaceth";
453 snps,axi-config = <&socfpga_axi_setup>;
438 status = "disabled"; 454 status = "disabled";
439 }; 455 };
440 456
@@ -452,6 +468,7 @@
452 rx-fifo-depth = <16384>; 468 rx-fifo-depth = <16384>;
453 clocks = <&l4_mp_clk>; 469 clocks = <&l4_mp_clk>;
454 clock-names = "stmmaceth"; 470 clock-names = "stmmaceth";
471 snps,axi-config = <&socfpga_axi_setup>;
455 status = "disabled"; 472 status = "disabled";
456 }; 473 };
457 474
@@ -512,6 +529,15 @@
512 }; 529 };
513 }; 530 };
514 531
532 fpga_mgr: fpga-mgr@ffd03000 {
533 compatible = "altr,socfpga-a10-fpga-mgr";
534 reg = <0xffd03000 0x100
535 0xffcfe400 0x20>;
536 clocks = <&l4_mp_clk>;
537 resets = <&rst FPGAMGR_RESET>;
538 reset-names = "fpgamgr";
539 };
540
515 i2c0: i2c@ffc02200 { 541 i2c0: i2c@ffc02200 {
516 #address-cells = <1>; 542 #address-cells = <1>;
517 #size-cells = <0>; 543 #size-cells = <0>;
@@ -578,7 +604,7 @@
578 }; 604 };
579 605
580 sdr: sdr@ffc25000 { 606 sdr: sdr@ffc25000 {
581 compatible = "syscon"; 607 compatible = "altr,sdr-ctl", "syscon";
582 reg = <0xffcfb100 0x80>; 608 reg = <0xffcfb100 0x80>;
583 }; 609 };
584 610
@@ -605,6 +631,19 @@
605 status = "disabled"; 631 status = "disabled";
606 }; 632 };
607 633
634 nand: nand@ffb90000 {
635 #address-cells = <1>;
636 #size-cells = <1>;
637 compatible = "denali,denali-nand-dt", "altr,socfpga-denali-nand";
638 reg = <0xffb90000 0x72000>,
639 <0xffb80000 0x10000>;
640 reg-names = "nand_data", "denali_reg";
641 interrupts = <0 99 4>;
642 dma-mask = <0xffffffff>;
643 clocks = <&nand_clk>;
644 status = "disabled";
645 };
646
608 ocram: sram@ffe00000 { 647 ocram: sram@ffe00000 {
609 compatible = "mmio-sram"; 648 compatible = "mmio-sram";
610 reg = <0xffe00000 0x40000>; 649 reg = <0xffe00000 0x40000>;
diff --git a/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi b/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi
index eb00ae37f316..c57e6cea0d83 100644
--- a/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi
+++ b/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi
@@ -145,6 +145,11 @@
145 compatible = "dallas,ds1339"; 145 compatible = "dallas,ds1339";
146 reg = <0x68>; 146 reg = <0x68>;
147 }; 147 };
148
149 ltc@5c {
150 compatible = "ltc2977";
151 reg = <0x5c>;
152 };
148}; 153};
149 154
150&uart1 { 155&uart1 {
@@ -154,3 +159,7 @@
154&usb0 { 159&usb0 {
155 status = "okay"; 160 status = "okay";
156}; 161};
162
163&watchdog1 {
164 status = "okay";
165};
diff --git a/arch/arm/boot/dts/socfpga_arria10_socdk_nand.dts b/arch/arm/boot/dts/socfpga_arria10_socdk_nand.dts
new file mode 100644
index 000000000000..d14f9ccb6e10
--- /dev/null
+++ b/arch/arm/boot/dts/socfpga_arria10_socdk_nand.dts
@@ -0,0 +1,31 @@
1/*
2 * Copyright (C) 2015 Altera Corporation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License along with
14 * this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/dts-v1/;
18#include "socfpga_arria10_socdk.dtsi"
19
20&nand {
21 status = "okay";
22
23 partition@nand-boot {
24 label = "Boot and fpga data";
25 reg = <0x0 0x1C00000>;
26 };
27 partition@nand-rootfs {
28 label = "Root Filesystem - JFFS2";
29 reg = <0x1C00000 0x6400000>;
30 };
31};
diff --git a/arch/arm/boot/dts/socfpga_arria5.dtsi b/arch/arm/boot/dts/socfpga_arria5.dtsi
index 1907cc600452..8c037297296c 100644
--- a/arch/arm/boot/dts/socfpga_arria5.dtsi
+++ b/arch/arm/boot/dts/socfpga_arria5.dtsi
@@ -42,3 +42,7 @@
42 }; 42 };
43 }; 43 };
44}; 44};
45
46&watchdog0 {
47 status = "okay";
48};
diff --git a/arch/arm/boot/dts/socfpga_arria5_socdk.dts b/arch/arm/boot/dts/socfpga_arria5_socdk.dts
index f739ead074a2..8672edf9ba4e 100644
--- a/arch/arm/boot/dts/socfpga_arria5_socdk.dts
+++ b/arch/arm/boot/dts/socfpga_arria5_socdk.dts
@@ -39,6 +39,29 @@
39 ethernet0 = &gmac1; 39 ethernet0 = &gmac1;
40 }; 40 };
41 41
42 leds {
43 compatible = "gpio-leds";
44 hps0 {
45 label = "hps_led0";
46 gpios = <&porta 0 1>;
47 };
48
49 hps1 {
50 label = "hps_led1";
51 gpios = <&portb 11 1>;
52 };
53
54 hps2 {
55 label = "hps_led2";
56 gpios = <&porta 17 1>;
57 };
58
59 hps3 {
60 label = "hps_led3";
61 gpios = <&porta 18 1>;
62 };
63 };
64
42 regulator_3_3v: 3-3-v-regulator { 65 regulator_3_3v: 3-3-v-regulator {
43 compatible = "regulator-fixed"; 66 compatible = "regulator-fixed";
44 regulator-name = "3.3V"; 67 regulator-name = "3.3V";
@@ -61,8 +84,28 @@
61 rxc-skew-ps = <2000>; 84 rxc-skew-ps = <2000>;
62}; 85};
63 86
87&gpio0 {
88 status = "okay";
89};
90
91&gpio1 {
92 status = "okay";
93};
94
95&gpio2 {
96 status = "okay";
97};
98
64&i2c0 { 99&i2c0 {
65 status = "okay"; 100 status = "okay";
101 clock-frequency = <100000>;
102
103 /*
104 * adjust the falling times to decrease the i2c frequency to 50Khz
105 * because the LCD module does not work at the standard 100Khz
106 */
107 i2c-sda-falling-time-ns = <5000>;
108 i2c-scl-falling-time-ns = <5000>;
66 109
67 eeprom@51 { 110 eeprom@51 {
68 compatible = "atmel,24c32"; 111 compatible = "atmel,24c32";
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
index 6306d008f01b..7ea32c81e720 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
@@ -39,6 +39,29 @@
39 ethernet0 = &gmac1; 39 ethernet0 = &gmac1;
40 }; 40 };
41 41
42 leds {
43 compatible = "gpio-leds";
44 hps0 {
45 label = "hps_led0";
46 gpios = <&portb 15 1>;
47 };
48
49 hps1 {
50 label = "hps_led1";
51 gpios = <&portb 14 1>;
52 };
53
54 hps2 {
55 label = "hps_led2";
56 gpios = <&portb 13 1>;
57 };
58
59 hps3 {
60 label = "hps_led3";
61 gpios = <&portb 12 1>;
62 };
63 };
64
42 regulator_3_3v: 3-3-v-regulator { 65 regulator_3_3v: 3-3-v-regulator {
43 compatible = "regulator-fixed"; 66 compatible = "regulator-fixed";
44 regulator-name = "3.3V"; 67 regulator-name = "3.3V";
@@ -47,6 +70,10 @@
47 }; 70 };
48}; 71};
49 72
73&can0 {
74 status = "okay";
75};
76
50&gmac1 { 77&gmac1 {
51 status = "okay"; 78 status = "okay";
52 phy-mode = "rgmii"; 79 phy-mode = "rgmii";
@@ -61,12 +88,28 @@
61 rxc-skew-ps = <2000>; 88 rxc-skew-ps = <2000>;
62}; 89};
63 90
91&gpio0 {
92 status = "okay";
93};
94
64&gpio1 { 95&gpio1 {
65 status = "okay"; 96 status = "okay";
66}; 97};
67 98
99&gpio2 {
100 status = "okay";
101};
102
68&i2c0 { 103&i2c0 {
69 status = "okay"; 104 status = "okay";
105 clock-frequency = <100000>;
106
107 /*
108 * adjust the falling times to decrease the i2c frequency to 50Khz
109 * because the LCD module does not work at the standard 100Khz
110 */
111 i2c-sda-falling-time-ns = <5000>;
112 i2c-scl-falling-time-ns = <5000>;
70 113
71 eeprom@51 { 114 eeprom@51 {
72 compatible = "atmel,24c32"; 115 compatible = "atmel,24c32";
@@ -120,6 +163,16 @@
120 }; 163 };
121}; 164};
122 165
166&spi0 {
167 status = "okay";
168
169 spidev@0 {
170 compatible = "rohm,dh2228fv";
171 reg = <0>;
172 spi-max-frequency = <1000000>;
173 };
174};
175
123&usb1 { 176&usb1 {
124 status = "okay"; 177 status = "okay";
125}; 178};
diff --git a/arch/arm/boot/dts/ste-dbx5x0.dtsi b/arch/arm/boot/dts/ste-dbx5x0.dtsi
index d309314f3a36..82d8c4771293 100644
--- a/arch/arm/boot/dts/ste-dbx5x0.dtsi
+++ b/arch/arm/boot/dts/ste-dbx5x0.dtsi
@@ -669,6 +669,8 @@
669 vddulpivio18-supply = <&ab8500_ldo_intcore_reg>; 669 vddulpivio18-supply = <&ab8500_ldo_intcore_reg>;
670 v-ape-supply = <&db8500_vape_reg>; 670 v-ape-supply = <&db8500_vape_reg>;
671 musb_1v8-supply = <&db8500_vsmps2_reg>; 671 musb_1v8-supply = <&db8500_vsmps2_reg>;
672 clocks = <&prcmu_clk PRCMU_SYSCLK>;
673 clock-names = "sysclk";
672 }; 674 };
673 675
674 ab8500-ponkey { 676 ab8500-ponkey {
diff --git a/arch/arm/boot/dts/ste-href.dtsi b/arch/arm/boot/dts/ste-href.dtsi
index 48dc38482633..f37f9e10713c 100644
--- a/arch/arm/boot/dts/ste-href.dtsi
+++ b/arch/arm/boot/dts/ste-href.dtsi
@@ -19,12 +19,6 @@
19 }; 19 };
20 20
21 soc { 21 soc {
22 usb_per5@a03e0000 {
23 pinctrl-names = "default", "sleep";
24 pinctrl-0 = <&musb_default_mode>;
25 pinctrl-1 = <&musb_sleep_mode>;
26 };
27
28 uart@80120000 { 22 uart@80120000 {
29 pinctrl-names = "default", "sleep"; 23 pinctrl-names = "default", "sleep";
30 pinctrl-0 = <&uart0_default_mode>; 24 pinctrl-0 = <&uart0_default_mode>;
@@ -111,6 +105,7 @@
111 pinctrl-1 = <&i2c3_sleep_mode>; 105 pinctrl-1 = <&i2c3_sleep_mode>;
112 }; 106 };
113 107
108 /* ST6G3244ME level translator for 1.8/2.9 V */
114 vmmci: regulator-gpio { 109 vmmci: regulator-gpio {
115 compatible = "regulator-gpio"; 110 compatible = "regulator-gpio";
116 111
@@ -120,7 +115,6 @@
120 regulator-type = "voltage"; 115 regulator-type = "voltage";
121 116
122 startup-delay-us = <100>; 117 startup-delay-us = <100>;
123 enable-active-high;
124 118
125 states = <1800000 0x1 119 states = <1800000 0x1
126 2900000 0x0>; 120 2900000 0x0>;
@@ -197,6 +191,8 @@
197 191
198 stericsson,cpu-dai = <&msp1 &msp3>; 192 stericsson,cpu-dai = <&msp1 &msp3>;
199 stericsson,audio-codec = <&codec>; 193 stericsson,audio-codec = <&codec>;
194 clocks = <&prcmu_clk PRCMU_SYSCLK>;
195 clock-names = "sysclk";
200 }; 196 };
201 197
202 msp0: msp@80123000 { 198 msp0: msp@80123000 {
@@ -225,6 +221,12 @@
225 ab8500-gpio { 221 ab8500-gpio {
226 }; 222 };
227 223
224 ab8500_usb {
225 pinctrl-names = "default", "sleep";
226 pinctrl-0 = <&musb_default_mode>;
227 pinctrl-1 = <&musb_sleep_mode>;
228 };
229
228 ab8500-regulators { 230 ab8500-regulators {
229 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 { 231 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
230 regulator-name = "V-DISPLAY"; 232 regulator-name = "V-DISPLAY";
diff --git a/arch/arm/boot/dts/ste-hrefprev60.dtsi b/arch/arm/boot/dts/ste-hrefprev60.dtsi
index ece222d51717..5882a2606ac3 100644
--- a/arch/arm/boot/dts/ste-hrefprev60.dtsi
+++ b/arch/arm/boot/dts/ste-hrefprev60.dtsi
@@ -74,6 +74,7 @@
74 vmmci: regulator-gpio { 74 vmmci: regulator-gpio {
75 gpios = <&tc3589x_gpio 18 GPIO_ACTIVE_HIGH>; 75 gpios = <&tc3589x_gpio 18 GPIO_ACTIVE_HIGH>;
76 enable-gpio = <&tc3589x_gpio 17 GPIO_ACTIVE_HIGH>; 76 enable-gpio = <&tc3589x_gpio 17 GPIO_ACTIVE_HIGH>;
77 enable-active-high;
77 }; 78 };
78 79
79 pinctrl { 80 pinctrl {
diff --git a/arch/arm/boot/dts/ste-hrefv60plus.dtsi b/arch/arm/boot/dts/ste-hrefv60plus.dtsi
index 7187676836be..bf259bbd1d0a 100644
--- a/arch/arm/boot/dts/ste-hrefv60plus.dtsi
+++ b/arch/arm/boot/dts/ste-hrefv60plus.dtsi
@@ -146,6 +146,7 @@
146 vmmci: regulator-gpio { 146 vmmci: regulator-gpio {
147 gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>; 147 gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
148 enable-gpio = <&gpio5 9 GPIO_ACTIVE_HIGH>; 148 enable-gpio = <&gpio5 9 GPIO_ACTIVE_HIGH>;
149 enable-active-high;
149 }; 150 };
150 151
151 pinctrl { 152 pinctrl {
diff --git a/arch/arm/boot/dts/ste-snowball.dts b/arch/arm/boot/dts/ste-snowball.dts
index 386eee6de232..dd5514def604 100644
--- a/arch/arm/boot/dts/ste-snowball.dts
+++ b/arch/arm/boot/dts/ste-snowball.dts
@@ -159,17 +159,13 @@
159 "", "", "", "", "", "", "", ""; 159 "", "", "", "", "", "", "", "";
160 }; 160 };
161 161
162 usb_per5@a03e0000 {
163 pinctrl-names = "default", "sleep";
164 pinctrl-0 = <&musb_default_mode>;
165 pinctrl-1 = <&musb_sleep_mode>;
166 };
167
168 sound { 162 sound {
169 compatible = "stericsson,snd-soc-mop500"; 163 compatible = "stericsson,snd-soc-mop500";
170 164
171 stericsson,cpu-dai = <&msp1 &msp3>; 165 stericsson,cpu-dai = <&msp1 &msp3>;
172 stericsson,audio-codec = <&codec>; 166 stericsson,audio-codec = <&codec>;
167 clocks = <&prcmu_clk PRCMU_SYSCLK>;
168 clock-names = "sysclk";
173 }; 169 };
174 170
175 msp0: msp@80123000 { 171 msp0: msp@80123000 {
@@ -216,11 +212,15 @@
216 }; 212 };
217 }; 213 };
218 214
215 /* ST6G3244ME level translator for 1.8/2.9 V */
219 vmmci: regulator-gpio { 216 vmmci: regulator-gpio {
220 compatible = "regulator-gpio"; 217 compatible = "regulator-gpio";
221 218
219 /* GPIO228 SD_SEL */
222 gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>; 220 gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
221 /* GPIO217 MMC_EN */
223 enable-gpio = <&gpio6 25 GPIO_ACTIVE_HIGH>; 222 enable-gpio = <&gpio6 25 GPIO_ACTIVE_HIGH>;
223 enable-active-high;
224 224
225 regulator-min-microvolt = <1800000>; 225 regulator-min-microvolt = <1800000>;
226 regulator-max-microvolt = <2900000>; 226 regulator-max-microvolt = <2900000>;
@@ -228,7 +228,6 @@
228 regulator-type = "voltage"; 228 regulator-type = "voltage";
229 229
230 startup-delay-us = <100>; 230 startup-delay-us = <100>;
231 enable-active-high;
232 231
233 states = <1800000 0x1 232 states = <1800000 0x1
234 2900000 0x0>; 233 2900000 0x0>;
@@ -448,6 +447,12 @@
448 "PM_GPIO42"; /* AB8500 GPIO42 */ 447 "PM_GPIO42"; /* AB8500 GPIO42 */
449 }; 448 };
450 449
450 ab8500_usb {
451 pinctrl-names = "default", "sleep";
452 pinctrl-0 = <&musb_default_mode>;
453 pinctrl-1 = <&musb_sleep_mode>;
454 };
455
451 ext_regulators: ab8500-ext-regulators { 456 ext_regulators: ab8500-ext-regulators {
452 ab8500_ext1_reg: ab8500_ext1 { 457 ab8500_ext1_reg: ab8500_ext1 {
453 regulator-name = "ab8500-ext-supply1"; 458 regulator-name = "ab8500-ext-supply1";
@@ -546,6 +551,7 @@
546 sdi0_default_mode: sdi0_default { 551 sdi0_default_mode: sdi0_default {
547 snowball_mux { 552 snowball_mux {
548 function = "mc0"; 553 function = "mc0";
554 /* Add the DAT31 pin even if it is not really used */
549 groups = "mc0dat31dir_a_1"; 555 groups = "mc0dat31dir_a_1";
550 }; 556 };
551 snowball_cfg1 { 557 snowball_cfg1 {
diff --git a/arch/arm/boot/dts/stih407-family.dtsi b/arch/arm/boot/dts/stih407-family.dtsi
index 0fe03cb88628..d753ac36788f 100644
--- a/arch/arm/boot/dts/stih407-family.dtsi
+++ b/arch/arm/boot/dts/stih407-family.dtsi
@@ -20,30 +20,15 @@
20 #size-cells = <1>; 20 #size-cells = <1>;
21 ranges; 21 ranges;
22 22
23 gp0_reserved: rproc@40000000 { 23 gp0_reserved: rproc@45000000 {
24 compatible = "shared-dma-pool"; 24 compatible = "shared-dma-pool";
25 reg = <0x40000000 0x01000000>; 25 reg = <0x45000000 0x00400000>;
26 no-map; 26 no-map;
27 status = "disabled";
28 }; 27 };
29 28
30 gp1_reserved: rproc@41000000 { 29 delta_reserved: rproc@44000000 {
31 compatible = "shared-dma-pool"; 30 compatible = "shared-dma-pool";
32 reg = <0x41000000 0x01000000>; 31 reg = <0x44000000 0x01000000>;
33 no-map;
34 status = "disabled";
35 };
36
37 audio_reserved: rproc@42000000 {
38 compatible = "shared-dma-pool";
39 reg = <0x42000000 0x01000000>;
40 no-map;
41 status = "disabled";
42 };
43
44 dmu_reserved: rproc@43000000 {
45 compatible = "shared-dma-pool";
46 reg = <0x43000000 0x01000000>;
47 no-map; 32 no-map;
48 }; 33 };
49 }; 34 };
@@ -703,6 +688,7 @@
703 compatible = "st,sti-pwm"; 688 compatible = "st,sti-pwm";
704 #pwm-cells = <2>; 689 #pwm-cells = <2>;
705 reg = <0x9510000 0x68>; 690 reg = <0x9510000 0x68>;
691 interrupts = <GIC_SPI 131 IRQ_TYPE_NONE>;
706 pinctrl-names = "default"; 692 pinctrl-names = "default";
707 pinctrl-0 = <&pinctrl_pwm1_chan0_default 693 pinctrl-0 = <&pinctrl_pwm1_chan0_default
708 &pinctrl_pwm1_chan1_default 694 &pinctrl_pwm1_chan1_default
@@ -823,37 +809,22 @@
823 clocks = <&clk_s_c0_flexgen CLK_ST231_GP_0>; 809 clocks = <&clk_s_c0_flexgen CLK_ST231_GP_0>;
824 clock-frequency = <600000000>; 810 clock-frequency = <600000000>;
825 st,syscfg = <&syscfg_core 0x22c>; 811 st,syscfg = <&syscfg_core 0x22c>;
812 #mbox-cells = <1>;
813 mbox-names = "vq0_rx", "vq0_tx", "vq1_rx", "vq1_tx";
814 mboxes = <&mailbox0 0 2>, <&mailbox2 0 1>, <&mailbox0 0 3>, <&mailbox2 0 0>;
826 }; 815 };
827 816
828 817 st231_delta: remote-processor {
829 st231_gp1: remote-processor {
830 compatible = "st,st231-rproc"; 818 compatible = "st,st231-rproc";
831 memory-region = <&gp1_reserved>; 819 memory-region = <&delta_reserved>;
832 resets = <&softreset STIH407_ST231_GP1_SOFTRESET>;
833 reset-names = "sw_reset";
834 clocks = <&clk_s_c0_flexgen CLK_ST231_GP_1>;
835 clock-frequency = <600000000>;
836 st,syscfg = <&syscfg_core 0x220>;
837 };
838
839 st231_audio: remote-processor {
840 compatible = "st,st231-rproc";
841 memory-region = <&audio_reserved>;
842 resets = <&softreset STIH407_ST231_AUD_SOFTRESET>;
843 reset-names = "sw_reset";
844 clocks = <&clk_s_c0_flexgen CLK_ST231_AUD_0>;
845 clock-frequency = <600000000>;
846 st,syscfg = <&syscfg_core 0x228>;
847 };
848
849 st231_dmu: remote-processor {
850 compatible = "st,st231-rproc";
851 memory-region = <&dmu_reserved>;
852 resets = <&softreset STIH407_ST231_DMU_SOFTRESET>; 820 resets = <&softreset STIH407_ST231_DMU_SOFTRESET>;
853 reset-names = "sw_reset"; 821 reset-names = "sw_reset";
854 clocks = <&clk_s_c0_flexgen CLK_ST231_DMU>; 822 clocks = <&clk_s_c0_flexgen CLK_ST231_DMU>;
855 clock-frequency = <600000000>; 823 clock-frequency = <600000000>;
856 st,syscfg = <&syscfg_core 0x224>; 824 st,syscfg = <&syscfg_core 0x224>;
825 #mbox-cells = <1>;
826 mbox-names = "vq0_rx", "vq0_tx", "vq1_rx", "vq1_tx";
827 mboxes = <&mailbox0 0 0>, <&mailbox3 0 1>, <&mailbox0 0 1>, <&mailbox3 0 0>;
857 }; 828 };
858 829
859 /* fdma audio */ 830 /* fdma audio */
@@ -889,6 +860,8 @@
889 interrupts = <GIC_SPI 7 IRQ_TYPE_NONE>; 860 interrupts = <GIC_SPI 7 IRQ_TYPE_NONE>;
890 dma-channels = <16>; 861 dma-channels = <16>;
891 #dma-cells = <3>; 862 #dma-cells = <3>;
863
864 status = "disabled";
892 }; 865 };
893 866
894 /* fdma free running */ 867 /* fdma free running */
@@ -906,6 +879,8 @@
906 <&clk_s_c0_flexgen CLK_EXT2F_A9>, 879 <&clk_s_c0_flexgen CLK_EXT2F_A9>,
907 <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>, 880 <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>,
908 <&clk_s_c0_flexgen CLK_EXT2F_A9>; 881 <&clk_s_c0_flexgen CLK_EXT2F_A9>;
882
883 status = "disabled";
909 }; 884 };
910 885
911 sti_sasg_codec: sti-sasg-codec { 886 sti_sasg_codec: sti-sasg-codec {
diff --git a/arch/arm/boot/dts/stih410-b2120.dts b/arch/arm/boot/dts/stih410-b2120.dts
index 118ac284fc4b..83313b51915d 100644
--- a/arch/arm/boot/dts/stih410-b2120.dts
+++ b/arch/arm/boot/dts/stih410-b2120.dts
@@ -60,5 +60,11 @@
60 ehci1: usb@9a83e00 { 60 ehci1: usb@9a83e00 {
61 status = "okay"; 61 status = "okay";
62 }; 62 };
63
64 sti-display-subsystem {
65 sti-hda@8d02000 {
66 status = "okay";
67 };
68 };
63 }; 69 };
64}; 70};
diff --git a/arch/arm/boot/dts/stih410.dtsi b/arch/arm/boot/dts/stih410.dtsi
index 281a12424cf6..3c9672c5b09f 100644
--- a/arch/arm/boot/dts/stih410.dtsi
+++ b/arch/arm/boot/dts/stih410.dtsi
@@ -131,7 +131,7 @@
131 <&clk_s_d2_quadfs 0>; 131 <&clk_s_d2_quadfs 0>;
132 132
133 assigned-clock-rates = <297000000>, 133 assigned-clock-rates = <297000000>,
134 <108000000>, 134 <297000000>,
135 <0>, 135 <0>,
136 <400000000>, 136 <400000000>,
137 <400000000>; 137 <400000000>;
@@ -221,6 +221,7 @@
221 221
222 sti-hda@8d02000 { 222 sti-hda@8d02000 {
223 compatible = "st,stih407-hda"; 223 compatible = "st,stih407-hda";
224 status = "disabled";
224 reg = <0x8d02000 0x400>, <0x92b0120 0x4>; 225 reg = <0x8d02000 0x400>, <0x92b0120 0x4>;
225 reg-names = "hda-reg", "video-dacs-ctrl"; 226 reg-names = "hda-reg", "video-dacs-ctrl";
226 clock-names = "pix", 227 clock-names = "pix",
@@ -232,6 +233,17 @@
232 <&clk_s_d2_quadfs 0>, 233 <&clk_s_d2_quadfs 0>,
233 <&clk_s_d2_quadfs 1>; 234 <&clk_s_d2_quadfs 1>;
234 }; 235 };
236
237 sti-hqvdp@9c000000 {
238 compatible = "st,stih407-hqvdp";
239 reg = <0x9C00000 0x100000>;
240 clock-names = "hqvdp", "pix_main";
241 clocks = <&clk_s_c0_flexgen CLK_MAIN_DISP>,
242 <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>;
243 reset-names = "hqvdp";
244 resets = <&softreset STIH407_HDQVDP_SOFTRESET>;
245 st,vtg = <&vtg_main>;
246 };
235 }; 247 };
236 248
237 bdisp0:bdisp@9f10000 { 249 bdisp0:bdisp@9f10000 {
@@ -259,5 +271,15 @@
259 clocks = <&clk_sysin>; 271 clocks = <&clk_sysin>;
260 interrupts = <GIC_SPI 205 IRQ_TYPE_EDGE_RISING>; 272 interrupts = <GIC_SPI 205 IRQ_TYPE_EDGE_RISING>;
261 }; 273 };
274
275 delta0 {
276 compatible = "st,st-delta";
277 clock-names = "delta",
278 "delta-st231",
279 "delta-flash-promip";
280 clocks = <&clk_s_c0_flexgen CLK_VID_DMU>,
281 <&clk_s_c0_flexgen CLK_ST231_DMU>,
282 <&clk_s_c0_flexgen CLK_FLASH_PROMIP>;
283 };
262 }; 284 };
263}; 285};
diff --git a/arch/arm/boot/dts/stm32429i-eval.dts b/arch/arm/boot/dts/stm32429i-eval.dts
index 5436e880e28f..3c99466989b1 100644
--- a/arch/arm/boot/dts/stm32429i-eval.dts
+++ b/arch/arm/boot/dts/stm32429i-eval.dts
@@ -70,6 +70,20 @@
70 dma-ranges = <0xc0000000 0x0 0x10000000>; 70 dma-ranges = <0xc0000000 0x0 0x10000000>;
71 }; 71 };
72 72
73 regulators {
74 compatible = "simple-bus";
75 #address-cells = <1>;
76 #size-cells = <0>;
77
78 reg_vref: regulator@0 {
79 compatible = "regulator-fixed";
80 reg = <0>;
81 regulator-name = "vref";
82 regulator-min-microvolt = <3300000>;
83 regulator-max-microvolt = <3300000>;
84 };
85 };
86
73 leds { 87 leds {
74 compatible = "gpio-leds"; 88 compatible = "gpio-leds";
75 green { 89 green {
@@ -107,15 +121,32 @@
107 usbotg_hs_phy: usbphy { 121 usbotg_hs_phy: usbphy {
108 #phy-cells = <0>; 122 #phy-cells = <0>;
109 compatible = "usb-nop-xceiv"; 123 compatible = "usb-nop-xceiv";
110 clocks = <&rcc 0 30>; 124 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(OTGHSULPI)>;
111 clock-names = "main_clk"; 125 clock-names = "main_clk";
112 }; 126 };
113}; 127};
114 128
129&adc {
130 pinctrl-names = "default";
131 pinctrl-0 = <&adc3_in8_pin>;
132 vref-supply = <&reg_vref>;
133 status = "okay";
134 adc3: adc@200 {
135 st,adc-channels = <8>;
136 status = "okay";
137 };
138};
139
115&clk_hse { 140&clk_hse {
116 clock-frequency = <25000000>; 141 clock-frequency = <25000000>;
117}; 142};
118 143
144&i2c1 {
145 pinctrl-0 = <&i2c1_pins>;
146 pinctrl-names = "default";
147 status = "okay";
148};
149
119&mac { 150&mac {
120 status = "okay"; 151 status = "okay";
121 pinctrl-0 = <&ethernet_mii>; 152 pinctrl-0 = <&ethernet_mii>;
@@ -132,6 +163,10 @@
132 }; 163 };
133}; 164};
134 165
166&rtc {
167 status = "okay";
168};
169
135&usart1 { 170&usart1 {
136 pinctrl-0 = <&usart1_pins_a>; 171 pinctrl-0 = <&usart1_pins_a>;
137 pinctrl-names = "default"; 172 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/stm32f429-disco.dts b/arch/arm/boot/dts/stm32f429-disco.dts
index 7d0415e80668..9222b9f37bc0 100644
--- a/arch/arm/boot/dts/stm32f429-disco.dts
+++ b/arch/arm/boot/dts/stm32f429-disco.dts
@@ -94,6 +94,12 @@
94 clock-frequency = <8000000>; 94 clock-frequency = <8000000>;
95}; 95};
96 96
97&rtc {
98 assigned-clocks = <&rcc 1 CLK_RTC>;
99 assigned-clock-parents = <&rcc 1 CLK_LSI>;
100 status = "okay";
101};
102
97&usart1 { 103&usart1 {
98 pinctrl-0 = <&usart1_pins_a>; 104 pinctrl-0 = <&usart1_pins_a>;
99 pinctrl-names = "default"; 105 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/stm32f429.dtsi b/arch/arm/boot/dts/stm32f429.dtsi
index e4dae0eda3cd..ee0da970e8ad 100644
--- a/arch/arm/boot/dts/stm32f429.dtsi
+++ b/arch/arm/boot/dts/stm32f429.dtsi
@@ -48,6 +48,8 @@
48#include "skeleton.dtsi" 48#include "skeleton.dtsi"
49#include "armv7-m.dtsi" 49#include "armv7-m.dtsi"
50#include <dt-bindings/pinctrl/stm32f429-pinfunc.h> 50#include <dt-bindings/pinctrl/stm32f429-pinfunc.h>
51#include <dt-bindings/clock/stm32fx-clock.h>
52#include <dt-bindings/mfd/stm32f4-rcc.h>
51 53
52/ { 54/ {
53 clocks { 55 clocks {
@@ -68,6 +70,12 @@
68 compatible = "fixed-clock"; 70 compatible = "fixed-clock";
69 clock-frequency = <32000>; 71 clock-frequency = <32000>;
70 }; 72 };
73
74 clk_i2s_ckin: i2s-ckin {
75 #clock-cells = <0>;
76 compatible = "fixed-clock";
77 clock-frequency = <0>;
78 };
71 }; 79 };
72 80
73 soc { 81 soc {
@@ -75,46 +83,227 @@
75 compatible = "st,stm32-timer"; 83 compatible = "st,stm32-timer";
76 reg = <0x40000000 0x400>; 84 reg = <0x40000000 0x400>;
77 interrupts = <28>; 85 interrupts = <28>;
78 clocks = <&rcc 0 128>; 86 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM2)>;
87 status = "disabled";
88 };
89
90 timers2: timers@40000000 {
91 #address-cells = <1>;
92 #size-cells = <0>;
93 compatible = "st,stm32-timers";
94 reg = <0x40000000 0x400>;
95 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM2)>;
96 clock-names = "int";
79 status = "disabled"; 97 status = "disabled";
98
99 pwm {
100 compatible = "st,stm32-pwm";
101 status = "disabled";
102 };
103
104 timer@1 {
105 compatible = "st,stm32-timer-trigger";
106 reg = <1>;
107 status = "disabled";
108 };
80 }; 109 };
81 110
82 timer3: timer@40000400 { 111 timer3: timer@40000400 {
83 compatible = "st,stm32-timer"; 112 compatible = "st,stm32-timer";
84 reg = <0x40000400 0x400>; 113 reg = <0x40000400 0x400>;
85 interrupts = <29>; 114 interrupts = <29>;
86 clocks = <&rcc 0 129>; 115 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM3)>;
116 status = "disabled";
117 };
118
119 timers3: timers@40000400 {
120 #address-cells = <1>;
121 #size-cells = <0>;
122 compatible = "st,stm32-timers";
123 reg = <0x40000400 0x400>;
124 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM3)>;
125 clock-names = "int";
87 status = "disabled"; 126 status = "disabled";
127
128 pwm {
129 compatible = "st,stm32-pwm";
130 status = "disabled";
131 };
132
133 timer@2 {
134 compatible = "st,stm32-timer-trigger";
135 reg = <2>;
136 status = "disabled";
137 };
88 }; 138 };
89 139
90 timer4: timer@40000800 { 140 timer4: timer@40000800 {
91 compatible = "st,stm32-timer"; 141 compatible = "st,stm32-timer";
92 reg = <0x40000800 0x400>; 142 reg = <0x40000800 0x400>;
93 interrupts = <30>; 143 interrupts = <30>;
94 clocks = <&rcc 0 130>; 144 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM4)>;
145 status = "disabled";
146 };
147
148 timers4: timers@40000800 {
149 #address-cells = <1>;
150 #size-cells = <0>;
151 compatible = "st,stm32-timers";
152 reg = <0x40000800 0x400>;
153 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM4)>;
154 clock-names = "int";
95 status = "disabled"; 155 status = "disabled";
156
157 pwm {
158 compatible = "st,stm32-pwm";
159 status = "disabled";
160 };
161
162 timer@3 {
163 compatible = "st,stm32-timer-trigger";
164 reg = <3>;
165 status = "disabled";
166 };
96 }; 167 };
97 168
98 timer5: timer@40000c00 { 169 timer5: timer@40000c00 {
99 compatible = "st,stm32-timer"; 170 compatible = "st,stm32-timer";
100 reg = <0x40000c00 0x400>; 171 reg = <0x40000c00 0x400>;
101 interrupts = <50>; 172 interrupts = <50>;
102 clocks = <&rcc 0 131>; 173 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM5)>;
174 };
175
176 timers5: timers@40000c00 {
177 #address-cells = <1>;
178 #size-cells = <0>;
179 compatible = "st,stm32-timers";
180 reg = <0x40000C00 0x400>;
181 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM5)>;
182 clock-names = "int";
183 status = "disabled";
184
185 pwm {
186 compatible = "st,stm32-pwm";
187 status = "disabled";
188 };
189
190 timer@4 {
191 compatible = "st,stm32-timer-trigger";
192 reg = <4>;
193 status = "disabled";
194 };
103 }; 195 };
104 196
105 timer6: timer@40001000 { 197 timer6: timer@40001000 {
106 compatible = "st,stm32-timer"; 198 compatible = "st,stm32-timer";
107 reg = <0x40001000 0x400>; 199 reg = <0x40001000 0x400>;
108 interrupts = <54>; 200 interrupts = <54>;
109 clocks = <&rcc 0 132>; 201 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM6)>;
110 status = "disabled"; 202 status = "disabled";
111 }; 203 };
112 204
205 timers6: timers@40001000 {
206 #address-cells = <1>;
207 #size-cells = <0>;
208 compatible = "st,stm32-timers";
209 reg = <0x40001000 0x400>;
210 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM6)>;
211 clock-names = "int";
212 status = "disabled";
213
214 timer@5 {
215 compatible = "st,stm32-timer-trigger";
216 reg = <5>;
217 status = "disabled";
218 };
219 };
220
113 timer7: timer@40001400 { 221 timer7: timer@40001400 {
114 compatible = "st,stm32-timer"; 222 compatible = "st,stm32-timer";
115 reg = <0x40001400 0x400>; 223 reg = <0x40001400 0x400>;
116 interrupts = <55>; 224 interrupts = <55>;
117 clocks = <&rcc 0 133>; 225 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM7)>;
226 status = "disabled";
227 };
228
229 timers7: timers@40001400 {
230 #address-cells = <1>;
231 #size-cells = <0>;
232 compatible = "st,stm32-timers";
233 reg = <0x40001400 0x400>;
234 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM7)>;
235 clock-names = "int";
236 status = "disabled";
237
238 timer@6 {
239 compatible = "st,stm32-timer-trigger";
240 reg = <6>;
241 status = "disabled";
242 };
243 };
244
245 timers12: timers@40001800 {
246 #address-cells = <1>;
247 #size-cells = <0>;
248 compatible = "st,stm32-timers";
249 reg = <0x40001800 0x400>;
250 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM12)>;
251 clock-names = "int";
252 status = "disabled";
253
254 pwm {
255 compatible = "st,stm32-pwm";
256 status = "disabled";
257 };
258
259 timer@11 {
260 compatible = "st,stm32-timer-trigger";
261 reg = <11>;
262 status = "disabled";
263 };
264 };
265
266 timers13: timers@40001c00 {
267 #address-cells = <1>;
268 #size-cells = <0>;
269 compatible = "st,stm32-timers";
270 reg = <0x40001C00 0x400>;
271 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM13)>;
272 clock-names = "int";
273 status = "disabled";
274
275 pwm {
276 compatible = "st,stm32-pwm";
277 status = "disabled";
278 };
279 };
280
281 timers14: timers@40002000 {
282 #address-cells = <1>;
283 #size-cells = <0>;
284 compatible = "st,stm32-timers";
285 reg = <0x40002000 0x400>;
286 clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM14)>;
287 clock-names = "int";
288 status = "disabled";
289
290 pwm {
291 compatible = "st,stm32-pwm";
292 status = "disabled";
293 };
294 };
295
296 rtc: rtc@40002800 {
297 compatible = "st,stm32-rtc";
298 reg = <0x40002800 0x400>;
299 clocks = <&rcc 1 CLK_RTC>;
300 clock-names = "ck_rtc";
301 assigned-clocks = <&rcc 1 CLK_RTC>;
302 assigned-clock-parents = <&rcc 1 CLK_LSE>;
303 interrupt-parent = <&exti>;
304 interrupts = <17 1>;
305 interrupt-names = "alarm";
306 st,syscfg = <&pwrcfg>;
118 status = "disabled"; 307 status = "disabled";
119 }; 308 };
120 309
@@ -122,7 +311,7 @@
122 compatible = "st,stm32-usart", "st,stm32-uart"; 311 compatible = "st,stm32-usart", "st,stm32-uart";
123 reg = <0x40004400 0x400>; 312 reg = <0x40004400 0x400>;
124 interrupts = <38>; 313 interrupts = <38>;
125 clocks = <&rcc 0 145>; 314 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART2)>;
126 status = "disabled"; 315 status = "disabled";
127 }; 316 };
128 317
@@ -130,7 +319,7 @@
130 compatible = "st,stm32-usart", "st,stm32-uart"; 319 compatible = "st,stm32-usart", "st,stm32-uart";
131 reg = <0x40004800 0x400>; 320 reg = <0x40004800 0x400>;
132 interrupts = <39>; 321 interrupts = <39>;
133 clocks = <&rcc 0 146>; 322 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART3)>;
134 status = "disabled"; 323 status = "disabled";
135 dmas = <&dma1 1 4 0x400 0x0>, 324 dmas = <&dma1 1 4 0x400 0x0>,
136 <&dma1 3 4 0x400 0x0>; 325 <&dma1 3 4 0x400 0x0>;
@@ -141,7 +330,7 @@
141 compatible = "st,stm32-uart"; 330 compatible = "st,stm32-uart";
142 reg = <0x40004c00 0x400>; 331 reg = <0x40004c00 0x400>;
143 interrupts = <52>; 332 interrupts = <52>;
144 clocks = <&rcc 0 147>; 333 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART4)>;
145 status = "disabled"; 334 status = "disabled";
146 }; 335 };
147 336
@@ -149,7 +338,19 @@
149 compatible = "st,stm32-uart"; 338 compatible = "st,stm32-uart";
150 reg = <0x40005000 0x400>; 339 reg = <0x40005000 0x400>;
151 interrupts = <53>; 340 interrupts = <53>;
152 clocks = <&rcc 0 148>; 341 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART5)>;
342 status = "disabled";
343 };
344
345 i2c1: i2c@40005400 {
346 compatible = "st,stm32f4-i2c";
347 reg = <0x40005400 0x400>;
348 interrupts = <31>,
349 <32>;
350 resets = <&rcc STM32F4_APB1_RESET(I2C1)>;
351 clocks = <&rcc 0 STM32F4_APB1_CLOCK(I2C1)>;
352 #address-cells = <1>;
353 #size-cells = <0>;
153 status = "disabled"; 354 status = "disabled";
154 }; 355 };
155 356
@@ -157,7 +358,7 @@
157 compatible = "st,stm32-usart", "st,stm32-uart"; 358 compatible = "st,stm32-usart", "st,stm32-uart";
158 reg = <0x40007800 0x400>; 359 reg = <0x40007800 0x400>;
159 interrupts = <82>; 360 interrupts = <82>;
160 clocks = <&rcc 0 158>; 361 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART7)>;
161 status = "disabled"; 362 status = "disabled";
162 }; 363 };
163 364
@@ -165,15 +366,57 @@
165 compatible = "st,stm32-usart", "st,stm32-uart"; 366 compatible = "st,stm32-usart", "st,stm32-uart";
166 reg = <0x40007c00 0x400>; 367 reg = <0x40007c00 0x400>;
167 interrupts = <83>; 368 interrupts = <83>;
168 clocks = <&rcc 0 159>; 369 clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART8)>;
370 status = "disabled";
371 };
372
373 timers1: timers@40010000 {
374 #address-cells = <1>;
375 #size-cells = <0>;
376 compatible = "st,stm32-timers";
377 reg = <0x40010000 0x400>;
378 clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM1)>;
379 clock-names = "int";
380 status = "disabled";
381
382 pwm {
383 compatible = "st,stm32-pwm";
384 status = "disabled";
385 };
386
387 timer@0 {
388 compatible = "st,stm32-timer-trigger";
389 reg = <0>;
390 status = "disabled";
391 };
392 };
393
394 timers8: timers@40010400 {
395 #address-cells = <1>;
396 #size-cells = <0>;
397 compatible = "st,stm32-timers";
398 reg = <0x40010400 0x400>;
399 clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM8)>;
400 clock-names = "int";
169 status = "disabled"; 401 status = "disabled";
402
403 pwm {
404 compatible = "st,stm32-pwm";
405 status = "disabled";
406 };
407
408 timer@7 {
409 compatible = "st,stm32-timer-trigger";
410 reg = <7>;
411 status = "disabled";
412 };
170 }; 413 };
171 414
172 usart1: serial@40011000 { 415 usart1: serial@40011000 {
173 compatible = "st,stm32-usart", "st,stm32-uart"; 416 compatible = "st,stm32-usart", "st,stm32-uart";
174 reg = <0x40011000 0x400>; 417 reg = <0x40011000 0x400>;
175 interrupts = <37>; 418 interrupts = <37>;
176 clocks = <&rcc 0 164>; 419 clocks = <&rcc 0 STM32F4_APB2_CLOCK(USART1)>;
177 status = "disabled"; 420 status = "disabled";
178 dmas = <&dma2 2 4 0x400 0x0>, 421 dmas = <&dma2 2 4 0x400 0x0>,
179 <&dma2 7 4 0x400 0x0>; 422 <&dma2 7 4 0x400 0x0>;
@@ -184,10 +427,53 @@
184 compatible = "st,stm32-usart", "st,stm32-uart"; 427 compatible = "st,stm32-usart", "st,stm32-uart";
185 reg = <0x40011400 0x400>; 428 reg = <0x40011400 0x400>;
186 interrupts = <71>; 429 interrupts = <71>;
187 clocks = <&rcc 0 165>; 430 clocks = <&rcc 0 STM32F4_APB2_CLOCK(USART6)>;
188 status = "disabled"; 431 status = "disabled";
189 }; 432 };
190 433
434 adc: adc@40012000 {
435 compatible = "st,stm32f4-adc-core";
436 reg = <0x40012000 0x400>;
437 interrupts = <18>;
438 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC1)>;
439 clock-names = "adc";
440 interrupt-controller;
441 #interrupt-cells = <1>;
442 #address-cells = <1>;
443 #size-cells = <0>;
444 status = "disabled";
445
446 adc1: adc@0 {
447 compatible = "st,stm32f4-adc";
448 #io-channel-cells = <1>;
449 reg = <0x0>;
450 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC1)>;
451 interrupt-parent = <&adc>;
452 interrupts = <0>;
453 status = "disabled";
454 };
455
456 adc2: adc@100 {
457 compatible = "st,stm32f4-adc";
458 #io-channel-cells = <1>;
459 reg = <0x100>;
460 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC2)>;
461 interrupt-parent = <&adc>;
462 interrupts = <1>;
463 status = "disabled";
464 };
465
466 adc3: adc@200 {
467 compatible = "st,stm32f4-adc";
468 #io-channel-cells = <1>;
469 reg = <0x200>;
470 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC3)>;
471 interrupt-parent = <&adc>;
472 interrupts = <2>;
473 status = "disabled";
474 };
475 };
476
191 syscfg: system-config@40013800 { 477 syscfg: system-config@40013800 {
192 compatible = "syscon"; 478 compatible = "syscon";
193 reg = <0x40013800 0x400>; 479 reg = <0x40013800 0x400>;
@@ -201,6 +487,57 @@
201 interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>; 487 interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
202 }; 488 };
203 489
490 timers9: timers@40014000 {
491 #address-cells = <1>;
492 #size-cells = <0>;
493 compatible = "st,stm32-timers";
494 reg = <0x40014000 0x400>;
495 clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM9)>;
496 clock-names = "int";
497 status = "disabled";
498
499 pwm {
500 compatible = "st,stm32-pwm";
501 status = "disabled";
502 };
503
504 timer@8 {
505 compatible = "st,stm32-timer-trigger";
506 reg = <8>;
507 status = "disabled";
508 };
509 };
510
511 timers10: timers@40014400 {
512 #address-cells = <1>;
513 #size-cells = <0>;
514 compatible = "st,stm32-timers";
515 reg = <0x40014400 0x400>;
516 clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM10)>;
517 clock-names = "int";
518 status = "disabled";
519
520 pwm {
521 compatible = "st,stm32-pwm";
522 status = "disabled";
523 };
524 };
525
526 timers11: timers@40014800 {
527 #address-cells = <1>;
528 #size-cells = <0>;
529 compatible = "st,stm32-timers";
530 reg = <0x40014800 0x400>;
531 clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM11)>;
532 clock-names = "int";
533 status = "disabled";
534
535 pwm {
536 compatible = "st,stm32-pwm";
537 status = "disabled";
538 };
539 };
540
204 pwrcfg: power-config@40007000 { 541 pwrcfg: power-config@40007000 {
205 compatible = "syscon"; 542 compatible = "syscon";
206 reg = <0x40007000 0x400>; 543 reg = <0x40007000 0x400>;
@@ -219,7 +556,7 @@
219 gpio-controller; 556 gpio-controller;
220 #gpio-cells = <2>; 557 #gpio-cells = <2>;
221 reg = <0x0 0x400>; 558 reg = <0x0 0x400>;
222 clocks = <&rcc 0 0>; 559 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOA)>;
223 st,bank-name = "GPIOA"; 560 st,bank-name = "GPIOA";
224 }; 561 };
225 562
@@ -227,7 +564,7 @@
227 gpio-controller; 564 gpio-controller;
228 #gpio-cells = <2>; 565 #gpio-cells = <2>;
229 reg = <0x400 0x400>; 566 reg = <0x400 0x400>;
230 clocks = <&rcc 0 1>; 567 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOB)>;
231 st,bank-name = "GPIOB"; 568 st,bank-name = "GPIOB";
232 }; 569 };
233 570
@@ -235,7 +572,7 @@
235 gpio-controller; 572 gpio-controller;
236 #gpio-cells = <2>; 573 #gpio-cells = <2>;
237 reg = <0x800 0x400>; 574 reg = <0x800 0x400>;
238 clocks = <&rcc 0 2>; 575 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOC)>;
239 st,bank-name = "GPIOC"; 576 st,bank-name = "GPIOC";
240 }; 577 };
241 578
@@ -243,7 +580,7 @@
243 gpio-controller; 580 gpio-controller;
244 #gpio-cells = <2>; 581 #gpio-cells = <2>;
245 reg = <0xc00 0x400>; 582 reg = <0xc00 0x400>;
246 clocks = <&rcc 0 3>; 583 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOD)>;
247 st,bank-name = "GPIOD"; 584 st,bank-name = "GPIOD";
248 }; 585 };
249 586
@@ -251,7 +588,7 @@
251 gpio-controller; 588 gpio-controller;
252 #gpio-cells = <2>; 589 #gpio-cells = <2>;
253 reg = <0x1000 0x400>; 590 reg = <0x1000 0x400>;
254 clocks = <&rcc 0 4>; 591 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOE)>;
255 st,bank-name = "GPIOE"; 592 st,bank-name = "GPIOE";
256 }; 593 };
257 594
@@ -259,7 +596,7 @@
259 gpio-controller; 596 gpio-controller;
260 #gpio-cells = <2>; 597 #gpio-cells = <2>;
261 reg = <0x1400 0x400>; 598 reg = <0x1400 0x400>;
262 clocks = <&rcc 0 5>; 599 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOF)>;
263 st,bank-name = "GPIOF"; 600 st,bank-name = "GPIOF";
264 }; 601 };
265 602
@@ -267,7 +604,7 @@
267 gpio-controller; 604 gpio-controller;
268 #gpio-cells = <2>; 605 #gpio-cells = <2>;
269 reg = <0x1800 0x400>; 606 reg = <0x1800 0x400>;
270 clocks = <&rcc 0 6>; 607 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOG)>;
271 st,bank-name = "GPIOG"; 608 st,bank-name = "GPIOG";
272 }; 609 };
273 610
@@ -275,7 +612,7 @@
275 gpio-controller; 612 gpio-controller;
276 #gpio-cells = <2>; 613 #gpio-cells = <2>;
277 reg = <0x1c00 0x400>; 614 reg = <0x1c00 0x400>;
278 clocks = <&rcc 0 7>; 615 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOH)>;
279 st,bank-name = "GPIOH"; 616 st,bank-name = "GPIOH";
280 }; 617 };
281 618
@@ -283,7 +620,7 @@
283 gpio-controller; 620 gpio-controller;
284 #gpio-cells = <2>; 621 #gpio-cells = <2>;
285 reg = <0x2000 0x400>; 622 reg = <0x2000 0x400>;
286 clocks = <&rcc 0 8>; 623 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOI)>;
287 st,bank-name = "GPIOI"; 624 st,bank-name = "GPIOI";
288 }; 625 };
289 626
@@ -291,7 +628,7 @@
291 gpio-controller; 628 gpio-controller;
292 #gpio-cells = <2>; 629 #gpio-cells = <2>;
293 reg = <0x2400 0x400>; 630 reg = <0x2400 0x400>;
294 clocks = <&rcc 0 9>; 631 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOJ)>;
295 st,bank-name = "GPIOJ"; 632 st,bank-name = "GPIOJ";
296 }; 633 };
297 634
@@ -299,7 +636,7 @@
299 gpio-controller; 636 gpio-controller;
300 #gpio-cells = <2>; 637 #gpio-cells = <2>;
301 reg = <0x2800 0x400>; 638 reg = <0x2800 0x400>;
302 clocks = <&rcc 0 10>; 639 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOK)>;
303 st,bank-name = "GPIOK"; 640 st,bank-name = "GPIOK";
304 }; 641 };
305 642
@@ -316,6 +653,19 @@
316 }; 653 };
317 }; 654 };
318 655
656 usart3_pins_a: usart3@0 {
657 pins1 {
658 pinmux = <STM32F429_PB10_FUNC_USART3_TX>;
659 bias-disable;
660 drive-push-pull;
661 slew-rate = <0>;
662 };
663 pins2 {
664 pinmux = <STM32F429_PB11_FUNC_USART3_RX>;
665 bias-disable;
666 };
667 };
668
319 usbotg_hs_pins_a: usbotg_hs@0 { 669 usbotg_hs_pins_a: usbotg_hs@0 {
320 pins { 670 pins {
321 pinmux = <STM32F429_PH4_FUNC_OTG_HS_ULPI_NXT>, 671 pinmux = <STM32F429_PH4_FUNC_OTG_HS_ULPI_NXT>,
@@ -355,6 +705,37 @@
355 slew-rate = <2>; 705 slew-rate = <2>;
356 }; 706 };
357 }; 707 };
708
709 adc3_in8_pin: adc@200 {
710 pins {
711 pinmux = <STM32F429_PF10_FUNC_ANALOG>;
712 };
713 };
714
715 pwm1_pins: pwm@1 {
716 pins {
717 pinmux = <STM32F429_PA8_FUNC_TIM1_CH1>,
718 <STM32F429_PB13_FUNC_TIM1_CH1N>,
719 <STM32F429_PB12_FUNC_TIM1_BKIN>;
720 };
721 };
722
723 pwm3_pins: pwm@3 {
724 pins {
725 pinmux = <STM32F429_PB4_FUNC_TIM3_CH1>,
726 <STM32F429_PB5_FUNC_TIM3_CH2>;
727 };
728 };
729
730 i2c1_pins: i2c1@0 {
731 pins {
732 pinmux = <STM32F429_PB9_FUNC_I2C1_SDA>,
733 <STM32F429_PB6_FUNC_I2C1_SCL>;
734 bias-disable;
735 drive-open-drain;
736 slew-rate = <3>;
737 };
738 };
358 }; 739 };
359 740
360 rcc: rcc@40023810 { 741 rcc: rcc@40023810 {
@@ -362,8 +743,10 @@
362 #clock-cells = <2>; 743 #clock-cells = <2>;
363 compatible = "st,stm32f42xx-rcc", "st,stm32-rcc"; 744 compatible = "st,stm32f42xx-rcc", "st,stm32-rcc";
364 reg = <0x40023800 0x400>; 745 reg = <0x40023800 0x400>;
365 clocks = <&clk_hse>; 746 clocks = <&clk_hse>, <&clk_i2s_ckin>;
366 st,syscfg = <&pwrcfg>; 747 st,syscfg = <&pwrcfg>;
748 assigned-clocks = <&rcc 1 CLK_HSE_RTC>;
749 assigned-clock-rates = <1000000>;
367 }; 750 };
368 751
369 dma1: dma-controller@40026000 { 752 dma1: dma-controller@40026000 {
@@ -377,7 +760,7 @@
377 <16>, 760 <16>,
378 <17>, 761 <17>,
379 <47>; 762 <47>;
380 clocks = <&rcc 0 21>; 763 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(DMA1)>;
381 #dma-cells = <4>; 764 #dma-cells = <4>;
382 }; 765 };
383 766
@@ -392,7 +775,7 @@
392 <68>, 775 <68>,
393 <69>, 776 <69>,
394 <70>; 777 <70>;
395 clocks = <&rcc 0 22>; 778 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(DMA2)>;
396 #dma-cells = <4>; 779 #dma-cells = <4>;
397 st,mem2mem; 780 st,mem2mem;
398 }; 781 };
@@ -404,7 +787,9 @@
404 interrupts = <61>; 787 interrupts = <61>;
405 interrupt-names = "macirq"; 788 interrupt-names = "macirq";
406 clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx"; 789 clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
407 clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>; 790 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(ETHMAC)>,
791 <&rcc 0 STM32F4_AHB1_CLOCK(ETHMACTX)>,
792 <&rcc 0 STM32F4_AHB1_CLOCK(ETHMACRX)>;
408 st,syscon = <&syscfg 0x4>; 793 st,syscon = <&syscfg 0x4>;
409 snps,pbl = <8>; 794 snps,pbl = <8>;
410 snps,mixed-burst; 795 snps,mixed-burst;
@@ -415,7 +800,7 @@
415 compatible = "snps,dwc2"; 800 compatible = "snps,dwc2";
416 reg = <0x40040000 0x40000>; 801 reg = <0x40040000 0x40000>;
417 interrupts = <77>; 802 interrupts = <77>;
418 clocks = <&rcc 0 29>; 803 clocks = <&rcc 0 STM32F4_AHB1_CLOCK(OTGHS)>;
419 clock-names = "otg"; 804 clock-names = "otg";
420 status = "disabled"; 805 status = "disabled";
421 }; 806 };
@@ -424,12 +809,13 @@
424 compatible = "st,stm32-rng"; 809 compatible = "st,stm32-rng";
425 reg = <0x50060800 0x400>; 810 reg = <0x50060800 0x400>;
426 interrupts = <80>; 811 interrupts = <80>;
427 clocks = <&rcc 0 38>; 812 clocks = <&rcc 0 STM32F4_AHB2_CLOCK(RNG)>;
813
428 }; 814 };
429 }; 815 };
430}; 816};
431 817
432&systick { 818&systick {
433 clocks = <&rcc 1 0>; 819 clocks = <&rcc 1 SYSTICK>;
434 status = "okay"; 820 status = "okay";
435}; 821};
diff --git a/arch/arm/boot/dts/stm32f469-disco.dts b/arch/arm/boot/dts/stm32f469-disco.dts
index 8877c00ce8e8..0dd56ef574fa 100644
--- a/arch/arm/boot/dts/stm32f469-disco.dts
+++ b/arch/arm/boot/dts/stm32f469-disco.dts
@@ -58,7 +58,7 @@
58 }; 58 };
59 59
60 memory { 60 memory {
61 reg = <0x00000000 0x800000>; 61 reg = <0x00000000 0x1000000>;
62 }; 62 };
63 63
64 aliases { 64 aliases {
@@ -78,6 +78,40 @@
78 clock-frequency = <8000000>; 78 clock-frequency = <8000000>;
79}; 79};
80 80
81&rtc {
82 status = "okay";
83};
84
85&timers1 {
86 status = "okay";
87
88 pwm {
89 pinctrl-0 = <&pwm1_pins>;
90 pinctrl-names = "default";
91 status = "okay";
92 };
93
94 timer@0 {
95 status = "okay";
96 };
97};
98
99&timers3 {
100 status = "okay";
101
102 pwm {
103 pinctrl-0 = <&pwm3_pins>;
104 pinctrl-names = "default";
105 status = "okay";
106 };
107
108 timer@2 {
109 status = "okay";
110 };
111};
112
81&usart3 { 113&usart3 {
114 pinctrl-0 = <&usart3_pins_a>;
115 pinctrl-names = "default";
82 status = "okay"; 116 status = "okay";
83}; 117};
diff --git a/arch/arm/boot/dts/sun4i-a10-a1000.dts b/arch/arm/boot/dts/sun4i-a10-a1000.dts
index 39e368ec3428..f3fc27412a67 100644
--- a/arch/arm/boot/dts/sun4i-a10-a1000.dts
+++ b/arch/arm/boot/dts/sun4i-a10-a1000.dts
@@ -117,6 +117,10 @@
117 status = "okay"; 117 status = "okay";
118}; 118};
119 119
120&cpu0 {
121 cpu-supply = <&reg_dcdc2>;
122};
123
120&ehci0 { 124&ehci0 {
121 status = "okay"; 125 status = "okay";
122}; 126};
@@ -186,20 +190,43 @@
186 190
187&pio { 191&pio {
188 emac_power_pin_a1000: emac_power_pin@0 { 192 emac_power_pin_a1000: emac_power_pin@0 {
189 allwinner,pins = "PH15"; 193 pins = "PH15";
190 allwinner,function = "gpio_out"; 194 function = "gpio_out";
191 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
192 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
193 }; 195 };
194 196
195 led_pins_a1000: led_pins@0 { 197 led_pins_a1000: led_pins@0 {
196 allwinner,pins = "PH10", "PH20"; 198 pins = "PH10", "PH20";
197 allwinner,function = "gpio_out"; 199 function = "gpio_out";
198 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
199 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
200 }; 200 };
201}; 201};
202 202
203#include "axp209.dtsi"
204
205&reg_dcdc2 {
206 regulator-always-on;
207 regulator-min-microvolt = <1000000>;
208 regulator-max-microvolt = <1400000>;
209 regulator-name = "vdd-cpu";
210};
211
212&reg_dcdc3 {
213 regulator-always-on;
214 regulator-min-microvolt = <1000000>;
215 regulator-max-microvolt = <1250000>;
216 regulator-name = "vdd-int-dll";
217};
218
219&reg_ldo1 {
220 regulator-name = "vdd-rtc";
221};
222
223&reg_ldo2 {
224 regulator-always-on;
225 regulator-min-microvolt = <3000000>;
226 regulator-max-microvolt = <3000000>;
227 regulator-name = "avcc";
228};
229
203&reg_usb1_vbus { 230&reg_usb1_vbus {
204 status = "okay"; 231 status = "okay";
205}; 232};
diff --git a/arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts b/arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts
index 5f98582232d6..942d739a4384 100644
--- a/arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts
+++ b/arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts
@@ -127,7 +127,7 @@
127 127
128&pio { 128&pio {
129 usb2_vbus_pin_a: usb2_vbus_pin@0 { 129 usb2_vbus_pin_a: usb2_vbus_pin@0 {
130 allwinner,pins = "PH12"; 130 pins = "PH12";
131 }; 131 };
132}; 132};
133 133
diff --git a/arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts b/arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts
index 023b03efa5ff..17f8c5ec011c 100644
--- a/arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts
+++ b/arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts
@@ -142,17 +142,15 @@
142 142
143&pio { 143&pio {
144 usb0_id_detect_pin: usb0_id_detect_pin@0 { 144 usb0_id_detect_pin: usb0_id_detect_pin@0 {
145 allwinner,pins = "PH4"; 145 pins = "PH4";
146 allwinner,function = "gpio_in"; 146 function = "gpio_in";
147 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 147 bias-pull-up;
148 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
149 }; 148 };
150 149
151 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 150 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
152 allwinner,pins = "PH5"; 151 pins = "PH5";
153 allwinner,function = "gpio_in"; 152 function = "gpio_in";
154 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 153 bias-pull-down;
155 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
156 }; 154 };
157}; 155};
158 156
diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
index 710e2ef516a8..04e040e6233d 100644
--- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
+++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
@@ -165,17 +165,15 @@
165 165
166&pio { 166&pio {
167 led_pins_cubieboard: led_pins@0 { 167 led_pins_cubieboard: led_pins@0 {
168 allwinner,pins = "PH20", "PH21"; 168 pins = "PH20", "PH21";
169 allwinner,function = "gpio_out"; 169 function = "gpio_out";
170 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 170 drive-strength = <20>;
171 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
172 }; 171 };
173 172
174 usb0_id_detect_pin: usb0_id_detect_pin@0 { 173 usb0_id_detect_pin: usb0_id_detect_pin@0 {
175 allwinner,pins = "PH4"; 174 pins = "PH4";
176 allwinner,function = "gpio_in"; 175 function = "gpio_in";
177 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 176 bias-pull-up;
178 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
179 }; 177 };
180}; 178};
181 179
diff --git a/arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts b/arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts
index 893497e397da..8317fbfeec4a 100644
--- a/arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts
+++ b/arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts
@@ -178,45 +178,35 @@
178 178
179&pio { 179&pio {
180 bl_en_pin_dsrv9703c: bl_en_pin@0 { 180 bl_en_pin_dsrv9703c: bl_en_pin@0 {
181 allwinner,pins = "PH7"; 181 pins = "PH7";
182 allwinner,function = "gpio_out"; 182 function = "gpio_out";
183 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
184 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
185 }; 183 };
186 184
187 codec_pa_pin: codec_pa_pin@0 { 185 codec_pa_pin: codec_pa_pin@0 {
188 allwinner,pins = "PH15"; 186 pins = "PH15";
189 allwinner,function = "gpio_out"; 187 function = "gpio_out";
190 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
191 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
192 }; 188 };
193 189
194 motor_pins: motor_pins@0 { 190 motor_pins: motor_pins@0 {
195 allwinner,pins = "PB3"; 191 pins = "PB3";
196 allwinner,function = "gpio_out"; 192 function = "gpio_out";
197 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
198 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
199 }; 193 };
200 194
201 touchscreen_pins: touchscreen_pins@0 { 195 touchscreen_pins: touchscreen_pins@0 {
202 allwinner,pins = "PB13"; 196 pins = "PB13";
203 allwinner,function = "gpio_out"; 197 function = "gpio_out";
204 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
205 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
206 }; 198 };
207 199
208 usb0_id_detect_pin: usb0_id_detect_pin@0 { 200 usb0_id_detect_pin: usb0_id_detect_pin@0 {
209 allwinner,pins = "PH4"; 201 pins = "PH4";
210 allwinner,function = "gpio_in"; 202 function = "gpio_in";
211 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 203 bias-pull-up;
212 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
213 }; 204 };
214 205
215 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 206 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
216 allwinner,pins = "PH5"; 207 pins = "PH5";
217 allwinner,function = "gpio_in"; 208 function = "gpio_in";
218 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 209 bias-pull-down;
219 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
220 }; 210 };
221}; 211};
222 212
diff --git a/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts b/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
index ac64781a0a9c..9616cdecce93 100644
--- a/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
+++ b/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
@@ -156,10 +156,8 @@
156 156
157&pio { 157&pio {
158 codec_pa_pin: codec_pa_pin@0 { 158 codec_pa_pin: codec_pa_pin@0 {
159 allwinner,pins = "PH15"; 159 pins = "PH15";
160 allwinner,function = "gpio_out"; 160 function = "gpio_out";
161 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
162 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
163 }; 161 };
164}; 162};
165 163
diff --git a/arch/arm/boot/dts/sun4i-a10-hackberry.dts b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
index 6de83a6187d0..a48b46474417 100644
--- a/arch/arm/boot/dts/sun4i-a10-hackberry.dts
+++ b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
@@ -129,17 +129,13 @@
129 pinctrl-0 = <&hackberry_hogs>; 129 pinctrl-0 = <&hackberry_hogs>;
130 130
131 hackberry_hogs: hogs@0 { 131 hackberry_hogs: hogs@0 {
132 allwinner,pins = "PH19"; 132 pins = "PH19";
133 allwinner,function = "gpio_out"; 133 function = "gpio_out";
134 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
135 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
136 }; 134 };
137 135
138 usb2_vbus_pin_hackberry: usb2_vbus_pin@0 { 136 usb2_vbus_pin_hackberry: usb2_vbus_pin@0 {
139 allwinner,pins = "PH12"; 137 pins = "PH12";
140 allwinner,function = "gpio_out"; 138 function = "gpio_out";
141 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
142 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
143 }; 139 };
144}; 140};
145 141
diff --git a/arch/arm/boot/dts/sun4i-a10-hyundai-a7hd.dts b/arch/arm/boot/dts/sun4i-a10-hyundai-a7hd.dts
index 9103864fef90..85dcf81ab64e 100644
--- a/arch/arm/boot/dts/sun4i-a10-hyundai-a7hd.dts
+++ b/arch/arm/boot/dts/sun4i-a10-hyundai-a7hd.dts
@@ -93,17 +93,15 @@
93 93
94&pio { 94&pio {
95 usb0_id_detect_pin: usb0_id_detect_pin@0 { 95 usb0_id_detect_pin: usb0_id_detect_pin@0 {
96 allwinner,pins = "PH4"; 96 pins = "PH4";
97 allwinner,function = "gpio_in"; 97 function = "gpio_in";
98 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 98 bias-pull-up;
99 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
100 }; 99 };
101 100
102 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 101 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
103 allwinner,pins = "PH5"; 102 pins = "PH5";
104 allwinner,function = "gpio_in"; 103 function = "gpio_in";
105 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 104 bias-pull-down;
106 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
107 }; 105 };
108}; 106};
109 107
@@ -123,7 +121,7 @@
123}; 121};
124 122
125&usb2_vbus_pin_a { 123&usb2_vbus_pin_a {
126 allwinner,pins = "PH6"; 124 pins = "PH6";
127}; 125};
128 126
129&usb_otg { 127&usb_otg {
diff --git a/arch/arm/boot/dts/sun4i-a10-inet1.dts b/arch/arm/boot/dts/sun4i-a10-inet1.dts
index e09053bf5e1f..f3092703a1a6 100644
--- a/arch/arm/boot/dts/sun4i-a10-inet1.dts
+++ b/arch/arm/boot/dts/sun4i-a10-inet1.dts
@@ -180,31 +180,25 @@
180 180
181&pio { 181&pio {
182 bl_en_pin_inet: bl_en_pin@0 { 182 bl_en_pin_inet: bl_en_pin@0 {
183 allwinner,pins = "PH7"; 183 pins = "PH7";
184 allwinner,function = "gpio_out"; 184 function = "gpio_out";
185 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
186 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
187 }; 185 };
188 186
189 touchscreen_wake_pin: touchscreen_wake_pin@0 { 187 touchscreen_wake_pin: touchscreen_wake_pin@0 {
190 allwinner,pins = "PB13"; 188 pins = "PB13";
191 allwinner,function = "gpio_out"; 189 function = "gpio_out";
192 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
193 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
194 }; 190 };
195 191
196 usb0_id_detect_pin: usb0_id_detect_pin@0 { 192 usb0_id_detect_pin: usb0_id_detect_pin@0 {
197 allwinner,pins = "PH4"; 193 pins = "PH4";
198 allwinner,function = "gpio_in"; 194 function = "gpio_in";
199 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 195 bias-pull-up;
200 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
201 }; 196 };
202 197
203 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 198 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
204 allwinner,pins = "PH5"; 199 pins = "PH5";
205 allwinner,function = "gpio_in"; 200 function = "gpio_in";
206 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 201 bias-pull-down;
207 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
208 }; 202 };
209}; 203};
210 204
diff --git a/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts b/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts
index 04b0d2d1ae6c..a1a2bbb3f9d3 100644
--- a/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts
+++ b/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts
@@ -161,17 +161,15 @@
161 161
162&pio { 162&pio {
163 usb0_id_detect_pin: usb0_id_detect_pin@0 { 163 usb0_id_detect_pin: usb0_id_detect_pin@0 {
164 allwinner,pins = "PH4"; 164 pins = "PH4";
165 allwinner,function = "gpio_in"; 165 function = "gpio_in";
166 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 166 bias-pull-up;
167 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
168 }; 167 };
169 168
170 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 169 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
171 allwinner,pins = "PH5"; 170 pins = "PH5";
172 allwinner,function = "gpio_in"; 171 function = "gpio_in";
173 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 172 bias-pull-down;
174 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
175 }; 173 };
176}; 174};
177 175
diff --git a/arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts b/arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts
index bba4f9cf9bf5..4ef2a60a8cd4 100644
--- a/arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts
+++ b/arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts
@@ -320,28 +320,25 @@
320 320
321&pio { 321&pio {
322 key_pins_inet9f: key_pins@0 { 322 key_pins_inet9f: key_pins@0 {
323 allwinner,pins = "PA0", "PA1", "PA3", "PA4", 323 pins = "PA0", "PA1", "PA3", "PA4",
324 "PA5", "PA6", "PA8", "PA9", 324 "PA5", "PA6", "PA8", "PA9",
325 "PA11", "PA12", "PA13", 325 "PA11", "PA12", "PA13",
326 "PA14", "PA15", "PA16", "PA17", 326 "PA14", "PA15", "PA16", "PA17",
327 "PH22", "PH23", "PH24", "PH25", "PH26"; 327 "PH22", "PH23", "PH24", "PH25", "PH26";
328 allwinner,function = "gpio_in"; 328 function = "gpio_in";
329 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 329 bias-pull-up;
330 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
331 }; 330 };
332 331
333 usb0_id_detect_pin: usb0_id_detect_pin@0 { 332 usb0_id_detect_pin: usb0_id_detect_pin@0 {
334 allwinner,pins = "PH4"; 333 pins = "PH4";
335 allwinner,function = "gpio_in"; 334 function = "gpio_in";
336 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 335 bias-pull-up;
337 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
338 }; 336 };
339 337
340 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 338 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
341 allwinner,pins = "PH5"; 339 pins = "PH5";
342 allwinner,function = "gpio_in"; 340 function = "gpio_in";
343 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 341 bias-pull-down;
344 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
345 }; 342 };
346}; 343};
347 344
diff --git a/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts b/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts
index e28f080b1fd5..fc4d4d49e2e2 100644
--- a/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts
+++ b/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts
@@ -163,17 +163,13 @@
163 163
164&pio { 164&pio {
165 emac_power_pin_q5: emac_power_pin@0 { 165 emac_power_pin_q5: emac_power_pin@0 {
166 allwinner,pins = "PH19"; 166 pins = "PH19";
167 allwinner,function = "gpio_out"; 167 function = "gpio_out";
168 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
169 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
170 }; 168 };
171 169
172 led_pins_q5: led_pins@0 { 170 led_pins_q5: led_pins@0 {
173 allwinner,pins = "PH20"; 171 pins = "PH20";
174 allwinner,function = "gpio_out"; 172 function = "gpio_out";
175 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
176 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
177 }; 173 };
178}; 174};
179 175
diff --git a/arch/arm/boot/dts/sun4i-a10-marsboard.dts b/arch/arm/boot/dts/sun4i-a10-marsboard.dts
index 8e50723dbe02..a2885039d5f1 100644
--- a/arch/arm/boot/dts/sun4i-a10-marsboard.dts
+++ b/arch/arm/boot/dts/sun4i-a10-marsboard.dts
@@ -164,17 +164,14 @@
164 164
165&pio { 165&pio {
166 led_pins_marsboard: led_pins@0 { 166 led_pins_marsboard: led_pins@0 {
167 allwinner,pins = "PB5", "PB6", "PB7", "PB8"; 167 pins = "PB5", "PB6", "PB7", "PB8";
168 allwinner,function = "gpio_out"; 168 function = "gpio_out";
169 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
170 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
171 }; 169 };
172 170
173 usb0_id_detect_pin: usb0_id_detect_pin@0 { 171 usb0_id_detect_pin: usb0_id_detect_pin@0 {
174 allwinner,pins = "PH4"; 172 pins = "PH4";
175 allwinner,function = "gpio_in"; 173 function = "gpio_in";
176 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 174 bias-pull-up;
177 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
178 }; 175 };
179}; 176};
180 177
diff --git a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
index a7dd86d30fa2..af42ebb3a97b 100644
--- a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
+++ b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
@@ -93,7 +93,7 @@
93 93
94&ir0_rx_pins_a { 94&ir0_rx_pins_a {
95 /* The ir receiver is not always populated */ 95 /* The ir receiver is not always populated */
96 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 96 bias-pull-up;
97}; 97};
98 98
99&mmc0 { 99&mmc0 {
diff --git a/arch/arm/boot/dts/sun4i-a10-mk802.dts b/arch/arm/boot/dts/sun4i-a10-mk802.dts
index ee46ea854832..9c1afd4277d7 100644
--- a/arch/arm/boot/dts/sun4i-a10-mk802.dts
+++ b/arch/arm/boot/dts/sun4i-a10-mk802.dts
@@ -91,24 +91,18 @@
91 91
92&pio { 92&pio {
93 usb0_id_detect_pin: usb0_id_detect_pin@0 { 93 usb0_id_detect_pin: usb0_id_detect_pin@0 {
94 allwinner,pins = "PH4"; 94 pins = "PH4";
95 allwinner,function = "gpio_in"; 95 function = "gpio_in";
96 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
97 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
98 }; 96 };
99 97
100 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 98 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
101 allwinner,pins = "PH5"; 99 pins = "PH5";
102 allwinner,function = "gpio_in"; 100 function = "gpio_in";
103 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
104 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
105 }; 101 };
106 102
107 usb2_vbus_pin_mk802: usb2_vbus_pin@0 { 103 usb2_vbus_pin_mk802: usb2_vbus_pin@0 {
108 allwinner,pins = "PH12"; 104 pins = "PH12";
109 allwinner,function = "gpio_out"; 105 function = "gpio_out";
110 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
111 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
112 }; 106 };
113}; 107};
114 108
diff --git a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
index b350448c7217..214a5accfe93 100644
--- a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
+++ b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
@@ -168,31 +168,26 @@
168 168
169&pio { 169&pio {
170 ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 { 170 ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 {
171 allwinner,pins = "PC3"; 171 pins = "PC3";
172 allwinner,function = "gpio_out"; 172 function = "gpio_out";
173 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
174 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
175 }; 173 };
176 174
177 led_pins_olinuxinolime: led_pins@0 { 175 led_pins_olinuxinolime: led_pins@0 {
178 allwinner,pins = "PH2"; 176 pins = "PH2";
179 allwinner,function = "gpio_out"; 177 function = "gpio_out";
180 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 178 drive-strength = <20>;
181 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
182 }; 179 };
183 180
184 usb0_id_detect_pin: usb0_id_detect_pin@0 { 181 usb0_id_detect_pin: usb0_id_detect_pin@0 {
185 allwinner,pins = "PH4"; 182 pins = "PH4";
186 allwinner,function = "gpio_in"; 183 function = "gpio_in";
187 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 184 bias-pull-up;
188 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
189 }; 185 };
190 186
191 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 187 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
192 allwinner,pins = "PH5"; 188 pins = "PH5";
193 allwinner,function = "gpio_in"; 189 function = "gpio_in";
194 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 190 bias-pull-down;
195 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
196 }; 191 };
197}; 192};
198 193
diff --git a/arch/arm/boot/dts/sun4i-a10-pcduino.dts b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
index 39034aa8e1ae..b0365d63ba70 100644
--- a/arch/arm/boot/dts/sun4i-a10-pcduino.dts
+++ b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
@@ -170,24 +170,19 @@
170 170
171&pio { 171&pio {
172 led_pins_pcduino: led_pins@0 { 172 led_pins_pcduino: led_pins@0 {
173 allwinner,pins = "PH15", "PH16"; 173 pins = "PH15", "PH16";
174 allwinner,function = "gpio_out"; 174 function = "gpio_out";
175 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
176 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
177 }; 175 };
178 176
179 key_pins_pcduino: key_pins@0 { 177 key_pins_pcduino: key_pins@0 {
180 allwinner,pins = "PH17", "PH18", "PH19"; 178 pins = "PH17", "PH18", "PH19";
181 allwinner,function = "gpio_in"; 179 function = "gpio_in";
182 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
183 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
184 }; 180 };
185 181
186 usb0_id_detect_pin: usb0_id_detect_pin@0 { 182 usb0_id_detect_pin: usb0_id_detect_pin@0 {
187 allwinner,pins = "PH4"; 183 pins = "PH4";
188 allwinner,function = "gpio_in"; 184 function = "gpio_in";
189 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 185 bias-pull-up;
190 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
191 }; 186 };
192}; 187};
193 188
diff --git a/arch/arm/boot/dts/sun4i-a10-pcduino2.dts b/arch/arm/boot/dts/sun4i-a10-pcduino2.dts
index de483a1bf36a..811d00ee2ade 100644
--- a/arch/arm/boot/dts/sun4i-a10-pcduino2.dts
+++ b/arch/arm/boot/dts/sun4i-a10-pcduino2.dts
@@ -57,10 +57,8 @@
57 57
58&pio { 58&pio {
59 usb2_vbus_pin_pcduino2: usb2_vbus_pin@0 { 59 usb2_vbus_pin_pcduino2: usb2_vbus_pin@0 {
60 allwinner,pins = "PD2"; 60 pins = "PD2";
61 allwinner,function = "gpio_out"; 61 function = "gpio_out";
62 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
63 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
64 }; 62 };
65}; 63};
66 64
diff --git a/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts b/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts
index 918f97294b33..bfa6bbdaab27 100644
--- a/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts
+++ b/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts
@@ -164,38 +164,30 @@
164 164
165&pio { 165&pio {
166 bl_en_pin_protab: bl_en_pin@0 { 166 bl_en_pin_protab: bl_en_pin@0 {
167 allwinner,pins = "PH7"; 167 pins = "PH7";
168 allwinner,function = "gpio_out"; 168 function = "gpio_out";
169 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
170 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
171 }; 169 };
172 170
173 codec_pa_pin: codec_pa_pin@0 { 171 codec_pa_pin: codec_pa_pin@0 {
174 allwinner,pins = "PH15"; 172 pins = "PH15";
175 allwinner,function = "gpio_out"; 173 function = "gpio_out";
176 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
177 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
178 }; 174 };
179 175
180 touchscreen_pins: touchscreen_pins@0 { 176 touchscreen_pins: touchscreen_pins@0 {
181 allwinner,pins = "PA5", "PB13"; 177 pins = "PA5", "PB13";
182 allwinner,function = "gpio_out"; 178 function = "gpio_out";
183 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
184 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
185 }; 179 };
186 180
187 usb0_id_detect_pin: usb0_id_detect_pin@0 { 181 usb0_id_detect_pin: usb0_id_detect_pin@0 {
188 allwinner,pins = "PH4"; 182 pins = "PH4";
189 allwinner,function = "gpio_in"; 183 function = "gpio_in";
190 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 184 bias-pull-up;
191 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
192 }; 185 };
193 186
194 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 187 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
195 allwinner,pins = "PH5"; 188 pins = "PH5";
196 allwinner,function = "gpio_in"; 189 function = "gpio_in";
197 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 190 bias-pull-down;
198 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
199 }; 191 };
200}; 192};
201 193
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
index b14a4281058d..ba20b48c0702 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -975,190 +975,142 @@
975 #gpio-cells = <3>; 975 #gpio-cells = <3>;
976 976
977 emac_pins_a: emac0@0 { 977 emac_pins_a: emac0@0 {
978 allwinner,pins = "PA0", "PA1", "PA2", 978 pins = "PA0", "PA1", "PA2",
979 "PA3", "PA4", "PA5", "PA6", 979 "PA3", "PA4", "PA5", "PA6",
980 "PA7", "PA8", "PA9", "PA10", 980 "PA7", "PA8", "PA9", "PA10",
981 "PA11", "PA12", "PA13", "PA14", 981 "PA11", "PA12", "PA13", "PA14",
982 "PA15", "PA16"; 982 "PA15", "PA16";
983 allwinner,function = "emac"; 983 function = "emac";
984 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
985 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
986 }; 984 };
987 985
988 i2c0_pins_a: i2c0@0 { 986 i2c0_pins_a: i2c0@0 {
989 allwinner,pins = "PB0", "PB1"; 987 pins = "PB0", "PB1";
990 allwinner,function = "i2c0"; 988 function = "i2c0";
991 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
992 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
993 }; 989 };
994 990
995 i2c1_pins_a: i2c1@0 { 991 i2c1_pins_a: i2c1@0 {
996 allwinner,pins = "PB18", "PB19"; 992 pins = "PB18", "PB19";
997 allwinner,function = "i2c1"; 993 function = "i2c1";
998 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
999 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1000 }; 994 };
1001 995
1002 i2c2_pins_a: i2c2@0 { 996 i2c2_pins_a: i2c2@0 {
1003 allwinner,pins = "PB20", "PB21"; 997 pins = "PB20", "PB21";
1004 allwinner,function = "i2c2"; 998 function = "i2c2";
1005 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1006 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1007 }; 999 };
1008 1000
1009 ir0_rx_pins_a: ir0@0 { 1001 ir0_rx_pins_a: ir0@0 {
1010 allwinner,pins = "PB4"; 1002 pins = "PB4";
1011 allwinner,function = "ir0"; 1003 function = "ir0";
1012 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1013 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1014 }; 1004 };
1015 1005
1016 ir0_tx_pins_a: ir0@1 { 1006 ir0_tx_pins_a: ir0@1 {
1017 allwinner,pins = "PB3"; 1007 pins = "PB3";
1018 allwinner,function = "ir0"; 1008 function = "ir0";
1019 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1020 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1021 }; 1009 };
1022 1010
1023 ir1_rx_pins_a: ir1@0 { 1011 ir1_rx_pins_a: ir1@0 {
1024 allwinner,pins = "PB23"; 1012 pins = "PB23";
1025 allwinner,function = "ir1"; 1013 function = "ir1";
1026 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1027 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1028 }; 1014 };
1029 1015
1030 ir1_tx_pins_a: ir1@1 { 1016 ir1_tx_pins_a: ir1@1 {
1031 allwinner,pins = "PB22"; 1017 pins = "PB22";
1032 allwinner,function = "ir1"; 1018 function = "ir1";
1033 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1034 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1035 }; 1019 };
1036 1020
1037 mmc0_pins_a: mmc0@0 { 1021 mmc0_pins_a: mmc0@0 {
1038 allwinner,pins = "PF0", "PF1", "PF2", 1022 pins = "PF0", "PF1", "PF2",
1039 "PF3", "PF4", "PF5"; 1023 "PF3", "PF4", "PF5";
1040 allwinner,function = "mmc0"; 1024 function = "mmc0";
1041 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 1025 drive-strength = <30>;
1042 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1026 bias-pull-up;
1043 }; 1027 };
1044 1028
1045 mmc0_cd_pin_reference_design: mmc0_cd_pin@0 { 1029 mmc0_cd_pin_reference_design: mmc0_cd_pin@0 {
1046 allwinner,pins = "PH1"; 1030 pins = "PH1";
1047 allwinner,function = "gpio_in"; 1031 function = "gpio_in";
1048 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1032 bias-pull-up;
1049 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
1050 }; 1033 };
1051 1034
1052 ps20_pins_a: ps20@0 { 1035 ps20_pins_a: ps20@0 {
1053 allwinner,pins = "PI20", "PI21"; 1036 pins = "PI20", "PI21";
1054 allwinner,function = "ps2"; 1037 function = "ps2";
1055 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1056 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1057 }; 1038 };
1058 1039
1059 ps21_pins_a: ps21@0 { 1040 ps21_pins_a: ps21@0 {
1060 allwinner,pins = "PH12", "PH13"; 1041 pins = "PH12", "PH13";
1061 allwinner,function = "ps2"; 1042 function = "ps2";
1062 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1063 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1064 }; 1043 };
1065 1044
1066 pwm0_pins_a: pwm0@0 { 1045 pwm0_pins_a: pwm0@0 {
1067 allwinner,pins = "PB2"; 1046 pins = "PB2";
1068 allwinner,function = "pwm"; 1047 function = "pwm";
1069 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1070 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1071 }; 1048 };
1072 1049
1073 pwm1_pins_a: pwm1@0 { 1050 pwm1_pins_a: pwm1@0 {
1074 allwinner,pins = "PI3"; 1051 pins = "PI3";
1075 allwinner,function = "pwm"; 1052 function = "pwm";
1076 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1077 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1078 }; 1053 };
1079 1054
1080 spdif_tx_pins_a: spdif@0 { 1055 spdif_tx_pins_a: spdif@0 {
1081 allwinner,pins = "PB13"; 1056 pins = "PB13";
1082 allwinner,function = "spdif"; 1057 function = "spdif";
1083 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1058 bias-pull-up;
1084 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
1085 }; 1059 };
1086 1060
1087 spi0_pins_a: spi0@0 { 1061 spi0_pins_a: spi0@0 {
1088 allwinner,pins = "PI11", "PI12", "PI13"; 1062 pins = "PI11", "PI12", "PI13";
1089 allwinner,function = "spi0"; 1063 function = "spi0";
1090 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1091 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1092 }; 1064 };
1093 1065
1094 spi0_cs0_pins_a: spi0_cs0@0 { 1066 spi0_cs0_pins_a: spi0_cs0@0 {
1095 allwinner,pins = "PI10"; 1067 pins = "PI10";
1096 allwinner,function = "spi0"; 1068 function = "spi0";
1097 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1098 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1099 }; 1069 };
1100 1070
1101 spi1_pins_a: spi1@0 { 1071 spi1_pins_a: spi1@0 {
1102 allwinner,pins = "PI17", "PI18", "PI19"; 1072 pins = "PI17", "PI18", "PI19";
1103 allwinner,function = "spi1"; 1073 function = "spi1";
1104 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1105 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1106 }; 1074 };
1107 1075
1108 spi1_cs0_pins_a: spi1_cs0@0 { 1076 spi1_cs0_pins_a: spi1_cs0@0 {
1109 allwinner,pins = "PI16"; 1077 pins = "PI16";
1110 allwinner,function = "spi1"; 1078 function = "spi1";
1111 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1112 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1113 }; 1079 };
1114 1080
1115 spi2_pins_a: spi2@0 { 1081 spi2_pins_a: spi2@0 {
1116 allwinner,pins = "PC20", "PC21", "PC22"; 1082 pins = "PC20", "PC21", "PC22";
1117 allwinner,function = "spi2"; 1083 function = "spi2";
1118 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1119 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1120 }; 1084 };
1121 1085
1122 spi2_pins_b: spi2@1 { 1086 spi2_pins_b: spi2@1 {
1123 allwinner,pins = "PB15", "PB16", "PB17"; 1087 pins = "PB15", "PB16", "PB17";
1124 allwinner,function = "spi2"; 1088 function = "spi2";
1125 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1126 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1127 }; 1089 };
1128 1090
1129 spi2_cs0_pins_a: spi2_cs0@0 { 1091 spi2_cs0_pins_a: spi2_cs0@0 {
1130 allwinner,pins = "PC19"; 1092 pins = "PC19";
1131 allwinner,function = "spi2"; 1093 function = "spi2";
1132 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1133 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1134 }; 1094 };
1135 1095
1136 spi2_cs0_pins_b: spi2_cs0@1 { 1096 spi2_cs0_pins_b: spi2_cs0@1 {
1137 allwinner,pins = "PB14"; 1097 pins = "PB14";
1138 allwinner,function = "spi2"; 1098 function = "spi2";
1139 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1140 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1141 }; 1099 };
1142 1100
1143 uart0_pins_a: uart0@0 { 1101 uart0_pins_a: uart0@0 {
1144 allwinner,pins = "PB22", "PB23"; 1102 pins = "PB22", "PB23";
1145 allwinner,function = "uart0"; 1103 function = "uart0";
1146 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1147 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1148 }; 1104 };
1149 1105
1150 uart0_pins_b: uart0@1 { 1106 uart0_pins_b: uart0@1 {
1151 allwinner,pins = "PF2", "PF4"; 1107 pins = "PF2", "PF4";
1152 allwinner,function = "uart0"; 1108 function = "uart0";
1153 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1154 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1155 }; 1109 };
1156 1110
1157 uart1_pins_a: uart1@0 { 1111 uart1_pins_a: uart1@0 {
1158 allwinner,pins = "PA10", "PA11"; 1112 pins = "PA10", "PA11";
1159 allwinner,function = "uart1"; 1113 function = "uart1";
1160 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1161 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1162 }; 1114 };
1163 }; 1115 };
1164 1116
diff --git a/arch/arm/boot/dts/sun5i-a10s-auxtek-t003.dts b/arch/arm/boot/dts/sun5i-a10s-auxtek-t003.dts
index d4ad02182353..a539b72ce093 100644
--- a/arch/arm/boot/dts/sun5i-a10s-auxtek-t003.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-auxtek-t003.dts
@@ -109,17 +109,15 @@
109 109
110&pio { 110&pio {
111 mmc0_cd_pin_t003: mmc0_cd_pin@0 { 111 mmc0_cd_pin_t003: mmc0_cd_pin@0 {
112 allwinner,pins = "PG1"; 112 pins = "PG1";
113 allwinner,function = "gpio_in"; 113 function = "gpio_in";
114 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 114 bias-pull-up;
115 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
116 }; 115 };
117 116
118 led_pins_t003: led_pins@0 { 117 led_pins_t003: led_pins@0 {
119 allwinner,pins = "PB2"; 118 pins = "PB2";
120 allwinner,function = "gpio_out"; 119 function = "gpio_out";
121 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 120 drive-strength = <20>;
122 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
123 }; 121 };
124}; 122};
125 123
@@ -140,11 +138,11 @@
140}; 138};
141 139
142&usb0_vbus_pin_a { 140&usb0_vbus_pin_a {
143 allwinner,pins = "PG13"; 141 pins = "PG13";
144}; 142};
145 143
146&usb1_vbus_pin_a { 144&usb1_vbus_pin_a {
147 allwinner,pins = "PB10"; 145 pins = "PB10";
148}; 146};
149 147
150&usb_otg { 148&usb_otg {
diff --git a/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts b/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts
index 2150e15e115a..e1b5e8a446fe 100644
--- a/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts
@@ -130,31 +130,26 @@
130 130
131&pio { 131&pio {
132 usb0_id_detect_pin: usb0_id_detect_pin@0 { 132 usb0_id_detect_pin: usb0_id_detect_pin@0 {
133 allwinner,pins = "PG12"; 133 pins = "PG12";
134 allwinner,function = "gpio_in"; 134 function = "gpio_in";
135 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 135 bias-pull-up;
136 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
137 }; 136 };
138 137
139 mmc0_cd_pin_t004: mmc0_cd_pin@0 { 138 mmc0_cd_pin_t004: mmc0_cd_pin@0 {
140 allwinner,pins = "PG1"; 139 pins = "PG1";
141 allwinner,function = "gpio_in"; 140 function = "gpio_in";
142 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 141 bias-pull-up;
143 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
144 }; 142 };
145 143
146 mmc1_vcc_en_pin_t004: mmc1_vcc_en_pin@0 { 144 mmc1_vcc_en_pin_t004: mmc1_vcc_en_pin@0 {
147 allwinner,pins = "PB18"; 145 pins = "PB18";
148 allwinner,function = "gpio_out"; 146 function = "gpio_out";
149 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
150 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
151 }; 147 };
152 148
153 led_pins_t004: led_pins@0 { 149 led_pins_t004: led_pins@0 {
154 allwinner,pins = "PB2"; 150 pins = "PB2";
155 allwinner,function = "gpio_out"; 151 function = "gpio_out";
156 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 152 drive-strength = <20>;
157 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
158 }; 153 };
159}; 154};
160 155
@@ -175,7 +170,7 @@
175}; 170};
176 171
177&usb1_vbus_pin_a { 172&usb1_vbus_pin_a {
178 allwinner,pins = "PG13"; 173 pins = "PG13";
179}; 174};
180 175
181&usbphy { 176&usbphy {
diff --git a/arch/arm/boot/dts/sun5i-a10s-mk802.dts b/arch/arm/boot/dts/sun5i-a10s-mk802.dts
index c84ac005342e..020aa9d6c31d 100644
--- a/arch/arm/boot/dts/sun5i-a10s-mk802.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-mk802.dts
@@ -116,24 +116,19 @@
116 116
117&pio { 117&pio {
118 led_pins_mk802: led_pins@0 { 118 led_pins_mk802: led_pins@0 {
119 allwinner,pins = "PB2"; 119 pins = "PB2";
120 allwinner,function = "gpio_out"; 120 function = "gpio_out";
121 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
122 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
123 }; 121 };
124 122
125 mmc0_cd_pin_mk802: mmc0_cd_pin@0 { 123 mmc0_cd_pin_mk802: mmc0_cd_pin@0 {
126 allwinner,pins = "PG1"; 124 pins = "PG1";
127 allwinner,function = "gpio_in"; 125 function = "gpio_in";
128 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 126 bias-pull-up;
129 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
130 }; 127 };
131 128
132 usb1_vbus_pin_mk802: usb1_vbus_pin@0 { 129 usb1_vbus_pin_mk802: usb1_vbus_pin@0 {
133 allwinner,pins = "PB10"; 130 pins = "PB10";
134 allwinner,function = "gpio_out"; 131 function = "gpio_out";
135 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
136 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
137 }; 132 };
138}; 133};
139 134
diff --git a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
index 0684d7930d65..d8245c6314a7 100644
--- a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
@@ -202,38 +202,32 @@
202 202
203&pio { 203&pio {
204 mmc0_cd_pin_olinuxino_micro: mmc0_cd_pin@0 { 204 mmc0_cd_pin_olinuxino_micro: mmc0_cd_pin@0 {
205 allwinner,pins = "PG1"; 205 pins = "PG1";
206 allwinner,function = "gpio_in"; 206 function = "gpio_in";
207 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 207 bias-pull-up;
208 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
209 }; 208 };
210 209
211 mmc1_cd_pin_olinuxino_micro: mmc1_cd_pin@0 { 210 mmc1_cd_pin_olinuxino_micro: mmc1_cd_pin@0 {
212 allwinner,pins = "PG13"; 211 pins = "PG13";
213 allwinner,function = "gpio_in"; 212 function = "gpio_in";
214 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 213 bias-pull-up;
215 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
216 }; 214 };
217 215
218 led_pins_olinuxino: led_pins@0 { 216 led_pins_olinuxino: led_pins@0 {
219 allwinner,pins = "PE3"; 217 pins = "PE3";
220 allwinner,function = "gpio_out"; 218 function = "gpio_out";
221 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 219 drive-strength = <20>;
222 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
223 }; 220 };
224 221
225 usb1_vbus_pin_olinuxino_m: usb1_vbus_pin@0 { 222 usb1_vbus_pin_olinuxino_m: usb1_vbus_pin@0 {
226 allwinner,pins = "PB10"; 223 pins = "PB10";
227 allwinner,function = "gpio_out"; 224 function = "gpio_out";
228 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
229 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
230 }; 225 };
231 226
232 usb0_id_detect_pin: usb0_id_detect_pin@0 { 227 usb0_id_detect_pin: usb0_id_detect_pin@0 {
233 allwinner,pins = "PG12"; 228 pins = "PG12";
234 allwinner,function = "gpio_in"; 229 function = "gpio_in";
235 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 230 bias-pull-up;
236 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
237 }; 231 };
238}; 232};
239 233
@@ -279,7 +273,7 @@
279}; 273};
280 274
281&usb0_vbus_pin_a { 275&usb0_vbus_pin_a {
282 allwinner,pins = "PG11"; 276 pins = "PG11";
283}; 277};
284 278
285&usbphy { 279&usbphy {
diff --git a/arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts b/arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts
index 3b057983c74a..51371f9b1cf0 100644
--- a/arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts
@@ -101,24 +101,20 @@
101 101
102&pio { 102&pio {
103 mmc0_cd_pin_r7: mmc0_cd_pin@0 { 103 mmc0_cd_pin_r7: mmc0_cd_pin@0 {
104 allwinner,pins = "PG1"; 104 pins = "PG1";
105 allwinner,function = "gpio_in"; 105 function = "gpio_in";
106 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 106 bias-pull-up;
107 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
108 }; 107 };
109 108
110 led_pins_r7: led_pins@0 { 109 led_pins_r7: led_pins@0 {
111 allwinner,pins = "PB2"; 110 pins = "PB2";
112 allwinner,function = "gpio_out"; 111 function = "gpio_out";
113 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 112 drive-strength = <20>;
114 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
115 }; 113 };
116 114
117 usb1_vbus_pin_r7: usb1_vbus_pin@0 { 115 usb1_vbus_pin_r7: usb1_vbus_pin@0 {
118 allwinner,pins = "PG13"; 116 pins = "PG13";
119 allwinner,function = "gpio_out"; 117 function = "gpio_out";
120 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
121 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
122 }; 118 };
123}; 119};
124 120
diff --git a/arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts b/arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts
index b5de75f4c710..2b8adda0deda 100644
--- a/arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts
@@ -146,24 +146,19 @@
146 146
147&pio { 147&pio {
148 led_pins_wobo_i5: led_pins@0 { 148 led_pins_wobo_i5: led_pins@0 {
149 allwinner,pins = "PB2"; 149 pins = "PB2";
150 allwinner,function = "gpio_out"; 150 function = "gpio_out";
151 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
152 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
153 }; 151 };
154 152
155 mmc0_cd_pin_wobo_i5: mmc0_cd_pin@0 { 153 mmc0_cd_pin_wobo_i5: mmc0_cd_pin@0 {
156 allwinner,pins = "PB3"; 154 pins = "PB3";
157 allwinner,function = "gpio_in"; 155 function = "gpio_in";
158 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 156 bias-pull-up;
159 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
160 }; 157 };
161 158
162 emac_power_pin_wobo: emac_power_pin@0 { 159 emac_power_pin_wobo: emac_power_pin@0 {
163 allwinner,pins = "PA02"; 160 pins = "PA02";
164 allwinner,function = "gpio_out"; 161 function = "gpio_out";
165 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
166 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
167 }; 162 };
168}; 163};
169 164
@@ -223,7 +218,7 @@
223}; 218};
224 219
225&usb1_vbus_pin_a { 220&usb1_vbus_pin_a {
226 allwinner,pins = "PG12"; 221 pins = "PG12";
227}; 222};
228 223
229&usbphy { 224&usbphy {
diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
index 7aa8c7aa0153..62b3ffe62df2 100644
--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
+++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
@@ -200,61 +200,48 @@
200 compatible = "allwinner,sun5i-a10s-pinctrl"; 200 compatible = "allwinner,sun5i-a10s-pinctrl";
201 201
202 uart0_pins_a: uart0@0 { 202 uart0_pins_a: uart0@0 {
203 allwinner,pins = "PB19", "PB20"; 203 pins = "PB19", "PB20";
204 allwinner,function = "uart0"; 204 function = "uart0";
205 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
206 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
207 }; 205 };
208 206
209 uart2_pins_a: uart2@0 { 207 uart2_pins_a: uart2@0 {
210 allwinner,pins = "PC18", "PC19"; 208 pins = "PC18", "PC19";
211 allwinner,function = "uart2"; 209 function = "uart2";
212 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
213 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
214 }; 210 };
215 211
216 emac_pins_a: emac0@0 { 212 emac_pins_a: emac0@0 {
217 allwinner,pins = "PA0", "PA1", "PA2", 213 pins = "PA0", "PA1", "PA2",
218 "PA3", "PA4", "PA5", "PA6", 214 "PA3", "PA4", "PA5", "PA6",
219 "PA7", "PA8", "PA9", "PA10", 215 "PA7", "PA8", "PA9", "PA10",
220 "PA11", "PA12", "PA13", "PA14", 216 "PA11", "PA12", "PA13", "PA14",
221 "PA15", "PA16"; 217 "PA15", "PA16";
222 allwinner,function = "emac"; 218 function = "emac";
223 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
224 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
225 }; 219 };
226 220
227 emac_pins_b: emac0@1 { 221 emac_pins_b: emac0@1 {
228 allwinner,pins = "PD6", "PD7", "PD10", 222 pins = "PD6", "PD7", "PD10",
229 "PD11", "PD12", "PD13", "PD14", 223 "PD11", "PD12", "PD13", "PD14",
230 "PD15", "PD18", "PD19", "PD20", 224 "PD15", "PD18", "PD19", "PD20",
231 "PD21", "PD22", "PD23", "PD24", 225 "PD21", "PD22", "PD23", "PD24",
232 "PD25", "PD26", "PD27"; 226 "PD25", "PD26", "PD27";
233 allwinner,function = "emac"; 227 function = "emac";
234 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
235 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
236 }; 228 };
237 229
238 mmc1_pins_a: mmc1@0 { 230 mmc1_pins_a: mmc1@0 {
239 allwinner,pins = "PG3", "PG4", "PG5", 231 pins = "PG3", "PG4", "PG5",
240 "PG6", "PG7", "PG8"; 232 "PG6", "PG7", "PG8";
241 allwinner,function = "mmc1"; 233 function = "mmc1";
242 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 234 drive-strength = <30>;
243 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
244 }; 235 };
245 236
246 spi2_pins_b: spi2@1 { 237 spi2_pins_b: spi2@1 {
247 allwinner,pins = "PB12", "PB13", "PB14"; 238 pins = "PB12", "PB13", "PB14";
248 allwinner,function = "spi2"; 239 function = "spi2";
249 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
250 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
251 }; 240 };
252 241
253 spi2_cs0_pins_b: spi2_cs0@1 { 242 spi2_cs0_pins_b: spi2_cs0@1 {
254 allwinner,pins = "PB11"; 243 pins = "PB11";
255 allwinner,function = "spi2"; 244 function = "spi2";
256 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
257 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
258 }; 245 };
259}; 246};
260 247
diff --git a/arch/arm/boot/dts/sun5i-a13-empire-electronix-d709.dts b/arch/arm/boot/dts/sun5i-a13-empire-electronix-d709.dts
index 6efbba6d40a9..42435454acef 100644
--- a/arch/arm/boot/dts/sun5i-a13-empire-electronix-d709.dts
+++ b/arch/arm/boot/dts/sun5i-a13-empire-electronix-d709.dts
@@ -137,24 +137,21 @@
137 137
138&pio { 138&pio {
139 mmc0_cd_pin_d709: mmc0_cd_pin@0 { 139 mmc0_cd_pin_d709: mmc0_cd_pin@0 {
140 allwinner,pins = "PG0"; 140 pins = "PG0";
141 allwinner,function = "gpio_in"; 141 function = "gpio_in";
142 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 142 bias-pull-up;
143 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
144 }; 143 };
145 144
146 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 145 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
147 allwinner,pins = "PG1"; 146 pins = "PG1";
148 allwinner,function = "gpio_in"; 147 function = "gpio_in";
149 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 148 bias-pull-down;
150 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
151 }; 149 };
152 150
153 usb0_id_detect_pin: usb0_id_detect_pin@0 { 151 usb0_id_detect_pin: usb0_id_detect_pin@0 {
154 allwinner,pins = "PG2"; 152 pins = "PG2";
155 allwinner,function = "gpio_in"; 153 function = "gpio_in";
156 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 154 bias-pull-up;
157 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
158 }; 155 };
159}; 156};
160 157
@@ -212,7 +209,7 @@
212}; 209};
213 210
214&usb0_vbus_pin_a { 211&usb0_vbus_pin_a {
215 allwinner,pins = "PG12"; 212 pins = "PG12";
216}; 213};
217 214
218&usbphy { 215&usbphy {
diff --git a/arch/arm/boot/dts/sun5i-a13-hsg-h702.dts b/arch/arm/boot/dts/sun5i-a13-hsg-h702.dts
index 3724b988064e..5879a75cf97a 100644
--- a/arch/arm/boot/dts/sun5i-a13-hsg-h702.dts
+++ b/arch/arm/boot/dts/sun5i-a13-hsg-h702.dts
@@ -136,24 +136,20 @@
136 136
137&pio { 137&pio {
138 mmc0_cd_pin_h702: mmc0_cd_pin@0 { 138 mmc0_cd_pin_h702: mmc0_cd_pin@0 {
139 allwinner,pins = "PG0"; 139 pins = "PG0";
140 allwinner,function = "gpio_in"; 140 function = "gpio_in";
141 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 141 bias-pull-up;
142 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
143 }; 142 };
144 143
145 usb0_id_detect_pin: usb0_id_detect_pin@0 { 144 usb0_id_detect_pin: usb0_id_detect_pin@0 {
146 allwinner,pins = "PG2"; 145 pins = "PG2";
147 allwinner,function = "gpio_in"; 146 function = "gpio_in";
148 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 147 bias-pull-up;
149 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
150 }; 148 };
151 149
152 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 150 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
153 allwinner,pins = "PG1"; 151 pins = "PG1";
154 allwinner,function = "gpio_in"; 152 function = "gpio_in";
155 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
156 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
157 }; 153 };
158}; 154};
159 155
@@ -208,7 +204,7 @@
208}; 204};
209 205
210&usb0_vbus_pin_a { 206&usb0_vbus_pin_a {
211 allwinner,pins = "PG12"; 207 pins = "PG12";
212}; 208};
213 209
214&usbphy { 210&usbphy {
diff --git a/arch/arm/boot/dts/sun5i-a13-licheepi-one.dts b/arch/arm/boot/dts/sun5i-a13-licheepi-one.dts
new file mode 100644
index 000000000000..566cda91a66b
--- /dev/null
+++ b/arch/arm/boot/dts/sun5i-a13-licheepi-one.dts
@@ -0,0 +1,224 @@
1/*
2 * Copyright 2016 Icenowy Zheng <icenowy@aosc.xyz>
3 *
4 * Based on sun5i-a13-olinuxino.dts, which is
5 * Copyright 2012 Maxime Ripard <maxime.ripard@free-electrons.com>
6 * Copyright 2013 Hans de Goede <hdegoede@redhat.com>
7 *
8 * This file is dual-licensed: you can use it either under the terms
9 * of the GPL or the X11 license, at your option. Note that this dual
10 * licensing only applies to this file, and not this project as a
11 * whole.
12 *
13 * a) This file is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License as
15 * published by the Free Software Foundation; either version 2 of the
16 * License, or (at your option) any later version.
17 *
18 * This file is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
22 *
23 * Or, alternatively,
24 *
25 * b) Permission is hereby granted, free of charge, to any person
26 * obtaining a copy of this software and associated documentation
27 * files (the "Software"), to deal in the Software without
28 * restriction, including without limitation the rights to use,
29 * copy, modify, merge, publish, distribute, sublicense, and/or
30 * sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following
32 * conditions:
33 *
34 * The above copyright notice and this permission notice shall be
35 * included in all copies or substantial portions of the Software.
36 *
37 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 * OTHER DEALINGS IN THE SOFTWARE.
45 */
46
47/dts-v1/;
48#include "sun5i-a13.dtsi"
49#include "sunxi-common-regulators.dtsi"
50
51#include <dt-bindings/gpio/gpio.h>
52#include <dt-bindings/input/input.h>
53#include <dt-bindings/pinctrl/sun4i-a10.h>
54
55/ {
56 model = "Lichee Pi One";
57 compatible = "licheepi,licheepi-one", "allwinner,sun5i-a13";
58
59 aliases {
60 serial0 = &uart1;
61 };
62
63 chosen {
64 stdout-path = "serial0:115200n8";
65 };
66
67 leds {
68 compatible = "gpio-leds";
69
70 red {
71 label ="licheepi:red:usr";
72 gpios = <&pio 2 5 GPIO_ACTIVE_LOW>;
73 };
74
75 green {
76 label ="licheepi:green:usr";
77 gpios = <&pio 2 19 GPIO_ACTIVE_LOW>;
78 default-state = "on";
79 };
80
81 blue {
82 label ="licheepi:blue:usr";
83 gpios = <&pio 2 4 GPIO_ACTIVE_LOW>;
84 };
85
86 };
87};
88
89&cpu0 {
90 cpu-supply = <&reg_dcdc2>;
91};
92
93&ehci0 {
94 status = "okay";
95};
96
97&i2c0 {
98 pinctrl-names = "default";
99 pinctrl-0 = <&i2c0_pins_a>;
100 status = "okay";
101
102 axp209: pmic@34 {
103 compatible = "x-powers,axp209";
104 reg = <0x34>;
105 interrupts = <0>;
106
107 interrupt-controller;
108 #interrupt-cells = <1>;
109 };
110};
111
112&i2c1 {
113 pinctrl-names = "default";
114 pinctrl-0 = <&i2c1_pins_a>;
115 status = "disabled";
116};
117
118&i2c2 {
119 pinctrl-names = "default";
120 pinctrl-0 = <&i2c2_pins_a>;
121 status = "disabled";
122};
123
124&lradc {
125 vref-supply = <&reg_ldo2>;
126 status = "okay";
127
128 button@984 {
129 label = "Home";
130 linux,code = <KEY_HOMEPAGE>;
131 channel = <0>;
132 voltage = <984126>;
133 };
134};
135
136&mmc0 {
137 pinctrl-names = "default";
138 pinctrl-0 = <&mmc0_pins_a>;
139 vmmc-supply = <&reg_vcc3v3>;
140 bus-width = <4>;
141 broken-cd;
142 status = "okay";
143};
144
145&mmc2 {
146 pinctrl-names = "default";
147 pinctrl-0 = <&mmc2_4bit_pins_a>;
148 vmmc-supply = <&reg_vcc3v3>;
149 bus-width = <4>;
150 broken-cd;
151 status = "okay";
152};
153
154&ohci0 {
155 status = "okay";
156};
157
158&otg_sram {
159 status = "okay";
160};
161
162#include "axp209.dtsi"
163
164&reg_dcdc2 {
165 regulator-always-on;
166 regulator-min-microvolt = <1000000>;
167 regulator-max-microvolt = <1500000>;
168 regulator-name = "vdd-cpu";
169};
170
171&reg_dcdc3 {
172 regulator-always-on;
173 regulator-min-microvolt = <1000000>;
174 regulator-max-microvolt = <1400000>;
175 regulator-name = "vdd-int-dll";
176};
177
178&reg_ldo1 {
179 regulator-name = "vdd-rtc";
180};
181
182&reg_ldo2 {
183 regulator-always-on;
184 regulator-min-microvolt = <3000000>;
185 regulator-max-microvolt = <3000000>;
186 regulator-name = "avcc";
187};
188
189&reg_ldo3 {
190 regulator-min-microvolt = <1800000>;
191 regulator-max-microvolt = <1800000>;
192 regulator-name = "csi-1.8v";
193};
194
195&reg_ldo4 {
196 regulator-min-microvolt = <2800000>;
197 regulator-max-microvolt = <2800000>;
198 regulator-name = "csi-2.8v";
199};
200
201&reg_usb0_vbus {
202 gpio = <&pio 2 12 GPIO_ACTIVE_HIGH>; /* PC12 */
203 status = "okay";
204};
205
206&uart1 {
207 pinctrl-names = "default";
208 pinctrl-0 = <&uart1_pins_b>;
209 status = "okay";
210};
211
212&usb_otg {
213 dr_mode = "otg";
214 status = "okay";
215};
216
217&usbphy {
218 pinctrl-names = "default";
219 usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
220 usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
221 usb0_vbus-supply = <&reg_usb0_vbus>;
222 usb1_vbus-supply = <&reg_vcc5v0>;
223 status = "okay";
224};
diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
index 081329e2b80b..60e393e28783 100644
--- a/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
@@ -115,45 +115,37 @@
115 115
116&pio { 116&pio {
117 mmc0_cd_pin_olinuxinom: mmc0_cd_pin@0 { 117 mmc0_cd_pin_olinuxinom: mmc0_cd_pin@0 {
118 allwinner,pins = "PG0"; 118 pins = "PG0";
119 allwinner,function = "gpio_in"; 119 function = "gpio_in";
120 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 120 bias-pull-up;
121 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
122 }; 121 };
123 122
124 led_pins_olinuxinom: led_pins@0 { 123 led_pins_olinuxinom: led_pins@0 {
125 allwinner,pins = "PG9"; 124 pins = "PG9";
126 allwinner,function = "gpio_out"; 125 function = "gpio_out";
127 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 126 drive-strength = <20>;
128 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
129 }; 127 };
130 128
131 usb0_id_detect_pin: usb0_id_detect_pin@0 { 129 usb0_id_detect_pin: usb0_id_detect_pin@0 {
132 allwinner,pins = "PG2"; 130 pins = "PG2";
133 allwinner,function = "gpio_in"; 131 function = "gpio_in";
134 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 132 bias-pull-up;
135 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
136 }; 133 };
137 134
138 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 135 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
139 allwinner,pins = "PG1"; 136 pins = "PG1";
140 allwinner,function = "gpio_in"; 137 function = "gpio_in";
141 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 138 bias-pull-down;
142 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
143 }; 139 };
144 140
145 usb0_vbus_pin_olinuxinom: usb0_vbus_pin@0 { 141 usb0_vbus_pin_olinuxinom: usb0_vbus_pin@0 {
146 allwinner,pins = "PG12"; 142 pins = "PG12";
147 allwinner,function = "gpio_out"; 143 function = "gpio_out";
148 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
149 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
150 }; 144 };
151 145
152 usb1_vbus_pin_olinuxinom: usb1_vbus_pin@0 { 146 usb1_vbus_pin_olinuxinom: usb1_vbus_pin@0 {
153 allwinner,pins = "PG11"; 147 pins = "PG11";
154 allwinner,function = "gpio_out"; 148 function = "gpio_out";
155 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
156 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
157 }; 149 };
158}; 150};
159 151
diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
index bb7210e0e4a9..940d47e88056 100644
--- a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
+++ b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
@@ -206,38 +206,32 @@
206 206
207&pio { 207&pio {
208 mmc0_cd_pin_olinuxino: mmc0_cd_pin@0 { 208 mmc0_cd_pin_olinuxino: mmc0_cd_pin@0 {
209 allwinner,pins = "PG0"; 209 pins = "PG0";
210 allwinner,function = "gpio_in"; 210 function = "gpio_in";
211 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 211 bias-pull-up;
212 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
213 }; 212 };
214 213
215 led_pins_olinuxino: led_pins@0 { 214 led_pins_olinuxino: led_pins@0 {
216 allwinner,pins = "PG9"; 215 pins = "PG9";
217 allwinner,function = "gpio_out"; 216 function = "gpio_out";
218 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 217 drive-strength = <20>;
219 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
220 }; 218 };
221 219
222 usb0_id_detect_pin: usb0_id_detect_pin@0 { 220 usb0_id_detect_pin: usb0_id_detect_pin@0 {
223 allwinner,pins = "PG2"; 221 pins = "PG2";
224 allwinner,function = "gpio_in"; 222 function = "gpio_in";
225 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 223 bias-pull-up;
226 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
227 }; 224 };
228 225
229 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 226 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
230 allwinner,pins = "PG1"; 227 pins = "PG1";
231 allwinner,function = "gpio_in"; 228 function = "gpio_in";
232 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 229 bias-pull-down;
233 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
234 }; 230 };
235 231
236 usb1_vbus_pin_olinuxino: usb1_vbus_pin@0 { 232 usb1_vbus_pin_olinuxino: usb1_vbus_pin@0 {
237 allwinner,pins = "PG11"; 233 pins = "PG11";
238 allwinner,function = "gpio_out"; 234 function = "gpio_out";
239 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
240 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
241 }; 235 };
242}; 236};
243 237
@@ -277,7 +271,7 @@
277}; 271};
278 272
279&usb0_vbus_pin_a { 273&usb0_vbus_pin_a {
280 allwinner,pins = "PG12"; 274 pins = "PG12";
281}; 275};
282 276
283&usbphy { 277&usbphy {
diff --git a/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts b/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
index 3d7ff10a48e9..bfdd38d6bfcc 100644
--- a/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
+++ b/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
@@ -80,7 +80,7 @@
80}; 80};
81 81
82&codec_pa_pin { 82&codec_pa_pin {
83 allwinner,pins = "PG3"; 83 pins = "PG3";
84}; 84};
85 85
86&mmc2 { 86&mmc2 {
@@ -100,10 +100,9 @@
100 100
101&pio { 101&pio {
102 i2c_lcd_pins: i2c_lcd_pin@0 { 102 i2c_lcd_pins: i2c_lcd_pin@0 {
103 allwinner,pins = "PG10", "PG12"; 103 pins = "PG10", "PG12";
104 allwinner,function = "gpio_out"; 104 function = "gpio_out";
105 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 105 bias-pull-up;
106 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
107 }; 106 };
108}; 107};
109 108
@@ -131,5 +130,5 @@
131}; 130};
132 131
133&usb0_vbus_pin_a { 132&usb0_vbus_pin_a {
134 allwinner,pins = "PB4"; 133 pins = "PB4";
135}; 134};
diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
index a17ba0243db3..4131ab44558b 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
@@ -350,26 +350,20 @@
350 compatible = "allwinner,sun5i-a13-pinctrl"; 350 compatible = "allwinner,sun5i-a13-pinctrl";
351 351
352 lcd_rgb666_pins: lcd_rgb666@0 { 352 lcd_rgb666_pins: lcd_rgb666@0 {
353 allwinner,pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", 353 pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
354 "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", 354 "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
355 "PD18", "PD19", "PD20", "PD21", "PD22", "PD23", 355 "PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
356 "PD24", "PD25", "PD26", "PD27"; 356 "PD24", "PD25", "PD26", "PD27";
357 allwinner,function = "lcd0"; 357 function = "lcd0";
358 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
359 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
360 }; 358 };
361 359
362 uart1_pins_a: uart1@0 { 360 uart1_pins_a: uart1@0 {
363 allwinner,pins = "PE10", "PE11"; 361 pins = "PE10", "PE11";
364 allwinner,function = "uart1"; 362 function = "uart1";
365 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
366 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
367 }; 363 };
368 364
369 uart1_pins_b: uart1@1 { 365 uart1_pins_b: uart1@1 {
370 allwinner,pins = "PG3", "PG4"; 366 pins = "PG3", "PG4";
371 allwinner,function = "uart1"; 367 function = "uart1";
372 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
373 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
374 }; 368 };
375}; 369};
diff --git a/arch/arm/boot/dts/sun5i-gr8-chip-pro.dts b/arch/arm/boot/dts/sun5i-gr8-chip-pro.dts
index 92a2dc6250a5..0cf0813d363a 100644
--- a/arch/arm/boot/dts/sun5i-gr8-chip-pro.dts
+++ b/arch/arm/boot/dts/sun5i-gr8-chip-pro.dts
@@ -159,17 +159,13 @@
159 159
160&pio { 160&pio {
161 usb0_id_pin_chip_pro: usb0-id-pin@0 { 161 usb0_id_pin_chip_pro: usb0-id-pin@0 {
162 allwinner,pins = "PG2"; 162 pins = "PG2";
163 allwinner,function = "gpio_in"; 163 function = "gpio_in";
164 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
165 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
166 }; 164 };
167 165
168 wifi_reg_on_pin_chip_pro: wifi-reg-on-pin@0 { 166 wifi_reg_on_pin_chip_pro: wifi-reg-on-pin@0 {
169 allwinner,pins = "PB10"; 167 pins = "PB10";
170 allwinner,function = "gpio_out"; 168 function = "gpio_out";
171 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
172 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
173 }; 169 };
174}; 170};
175 171
diff --git a/arch/arm/boot/dts/sun5i-gr8-evb.dts b/arch/arm/boot/dts/sun5i-gr8-evb.dts
index 030605aa8065..1a845af4d4db 100644
--- a/arch/arm/boot/dts/sun5i-gr8-evb.dts
+++ b/arch/arm/boot/dts/sun5i-gr8-evb.dts
@@ -259,31 +259,23 @@
259 259
260&pio { 260&pio {
261 mmc0_cd_pin_gr8_evb: mmc0-cd-pin@0 { 261 mmc0_cd_pin_gr8_evb: mmc0-cd-pin@0 {
262 allwinner,pins = "PG0"; 262 pins = "PG0";
263 allwinner,function = "gpio_in"; 263 function = "gpio_in";
264 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
265 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
266 }; 264 };
267 265
268 usb0_id_pin_gr8_evb: usb0-id-pin@0 { 266 usb0_id_pin_gr8_evb: usb0-id-pin@0 {
269 allwinner,pins = "PG2"; 267 pins = "PG2";
270 allwinner,function = "gpio_in"; 268 function = "gpio_in";
271 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
272 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
273 }; 269 };
274 270
275 usb0_vbus_det_pin_gr8_evb: usb0-vbus-det-pin@0 { 271 usb0_vbus_det_pin_gr8_evb: usb0-vbus-det-pin@0 {
276 allwinner,pins = "PG1"; 272 pins = "PG1";
277 allwinner,function = "gpio_in"; 273 function = "gpio_in";
278 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
279 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
280 }; 274 };
281 275
282 usb1_vbus_pin_gr8_evb: usb1-vbus-pin@0 { 276 usb1_vbus_pin_gr8_evb: usb1-vbus-pin@0 {
283 allwinner,pins = "PG13"; 277 pins = "PG13";
284 allwinner,function = "gpio_out"; 278 function = "gpio_out";
285 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
286 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
287 }; 279 };
288}; 280};
289 281
diff --git a/arch/arm/boot/dts/sun5i-gr8.dtsi b/arch/arm/boot/dts/sun5i-gr8.dtsi
index ea86d4d58db6..f83ae3fc6329 100644
--- a/arch/arm/boot/dts/sun5i-gr8.dtsi
+++ b/arch/arm/boot/dts/sun5i-gr8.dtsi
@@ -764,150 +764,112 @@
764 #gpio-cells = <3>; 764 #gpio-cells = <3>;
765 765
766 i2c0_pins_a: i2c0@0 { 766 i2c0_pins_a: i2c0@0 {
767 allwinner,pins = "PB0", "PB1"; 767 pins = "PB0", "PB1";
768 allwinner,function = "i2c0"; 768 function = "i2c0";
769 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
770 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
771 }; 769 };
772 770
773 i2c1_pins_a: i2c1@0 { 771 i2c1_pins_a: i2c1@0 {
774 allwinner,pins = "PB15", "PB16"; 772 pins = "PB15", "PB16";
775 allwinner,function = "i2c1"; 773 function = "i2c1";
776 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
777 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
778 }; 774 };
779 775
780 i2c2_pins_a: i2c2@0 { 776 i2c2_pins_a: i2c2@0 {
781 allwinner,pins = "PB17", "PB18"; 777 pins = "PB17", "PB18";
782 allwinner,function = "i2c2"; 778 function = "i2c2";
783 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
784 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
785 }; 779 };
786 780
787 i2s0_data_pins_a: i2s0-data@0 { 781 i2s0_data_pins_a: i2s0-data@0 {
788 allwinner,pins = "PB6", "PB7", "PB8", "PB9"; 782 pins = "PB6", "PB7", "PB8", "PB9";
789 allwinner,function = "i2s0"; 783 function = "i2s0";
790 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
791 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
792 }; 784 };
793 785
794 i2s0_mclk_pins_a: i2s0-mclk@0 { 786 i2s0_mclk_pins_a: i2s0-mclk@0 {
795 allwinner,pins = "PB5"; 787 pins = "PB5";
796 allwinner,function = "i2s0"; 788 function = "i2s0";
797 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
798 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
799 }; 789 };
800 790
801 ir0_rx_pins_a: ir0@0 { 791 ir0_rx_pins_a: ir0@0 {
802 allwinner,pins = "PB4"; 792 pins = "PB4";
803 allwinner,function = "ir0"; 793 function = "ir0";
804 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
805 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
806 }; 794 };
807 795
808 lcd_rgb666_pins: lcd-rgb666@0 { 796 lcd_rgb666_pins: lcd-rgb666@0 {
809 allwinner,pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", 797 pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
810 "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", 798 "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
811 "PD18", "PD19", "PD20", "PD21", "PD22", "PD23", 799 "PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
812 "PD24", "PD25", "PD26", "PD27"; 800 "PD24", "PD25", "PD26", "PD27";
813 allwinner,function = "lcd0"; 801 function = "lcd0";
814 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
815 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
816 }; 802 };
817 803
818 mmc0_pins_a: mmc0@0 { 804 mmc0_pins_a: mmc0@0 {
819 allwinner,pins = "PF0", "PF1", "PF2", "PF3", 805 pins = "PF0", "PF1", "PF2", "PF3",
820 "PF4", "PF5"; 806 "PF4", "PF5";
821 allwinner,function = "mmc0"; 807 function = "mmc0";
822 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 808 drive-strength = <30>;
823 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
824 }; 809 };
825 810
826 nand_pins_a: nand-base0@0 { 811 nand_pins_a: nand-base0@0 {
827 allwinner,pins = "PC0", "PC1", "PC2", 812 pins = "PC0", "PC1", "PC2",
828 "PC5", "PC8", "PC9", "PC10", 813 "PC5", "PC8", "PC9", "PC10",
829 "PC11", "PC12", "PC13", "PC14", 814 "PC11", "PC12", "PC13", "PC14",
830 "PC15"; 815 "PC15";
831 allwinner,function = "nand0"; 816 function = "nand0";
832 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
833 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
834 }; 817 };
835 818
836 nand_cs0_pins_a: nand-cs@0 { 819 nand_cs0_pins_a: nand-cs@0 {
837 allwinner,pins = "PC4"; 820 pins = "PC4";
838 allwinner,function = "nand0"; 821 function = "nand0";
839 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
840 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
841 }; 822 };
842 823
843 nand_rb0_pins_a: nand-rb@0 { 824 nand_rb0_pins_a: nand-rb@0 {
844 allwinner,pins = "PC6"; 825 pins = "PC6";
845 allwinner,function = "nand0"; 826 function = "nand0";
846 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
847 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
848 }; 827 };
849 828
850 pwm0_pins_a: pwm0@0 { 829 pwm0_pins_a: pwm0@0 {
851 allwinner,pins = "PB2"; 830 pins = "PB2";
852 allwinner,function = "pwm0"; 831 function = "pwm0";
853 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
854 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
855 }; 832 };
856 833
857 pwm1_pins: pwm1 { 834 pwm1_pins: pwm1 {
858 allwinner,pins = "PG13"; 835 pins = "PG13";
859 allwinner,function = "pwm1"; 836 function = "pwm1";
860 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
861 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
862 }; 837 };
863 838
864 spdif_tx_pins_a: spdif@0 { 839 spdif_tx_pins_a: spdif@0 {
865 allwinner,pins = "PB10"; 840 pins = "PB10";
866 allwinner,function = "spdif"; 841 function = "spdif";
867 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 842 bias-pull-up;
868 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
869 }; 843 };
870 844
871 uart1_pins_a: uart1@1 { 845 uart1_pins_a: uart1@1 {
872 allwinner,pins = "PG3", "PG4"; 846 pins = "PG3", "PG4";
873 allwinner,function = "uart1"; 847 function = "uart1";
874 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
875 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
876 }; 848 };
877 849
878 uart1_cts_rts_pins_a: uart1-cts-rts@0 { 850 uart1_cts_rts_pins_a: uart1-cts-rts@0 {
879 allwinner,pins = "PG5", "PG6"; 851 pins = "PG5", "PG6";
880 allwinner,function = "uart1"; 852 function = "uart1";
881 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
882 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
883 }; 853 };
884 854
885 uart2_pins_a: uart2@1 { 855 uart2_pins_a: uart2@1 {
886 allwinner,pins = "PD2", "PD3"; 856 pins = "PD2", "PD3";
887 allwinner,function = "uart2"; 857 function = "uart2";
888 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
889 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
890 }; 858 };
891 859
892 uart2_cts_rts_pins_a: uart2-cts-rts@0 { 860 uart2_cts_rts_pins_a: uart2-cts-rts@0 {
893 allwinner,pins = "PD4", "PD5"; 861 pins = "PD4", "PD5";
894 allwinner,function = "uart2"; 862 function = "uart2";
895 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
896 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
897 }; 863 };
898 864
899 uart3_pins_a: uart3@1 { 865 uart3_pins_a: uart3@1 {
900 allwinner,pins = "PG9", "PG10"; 866 pins = "PG9", "PG10";
901 allwinner,function = "uart3"; 867 function = "uart3";
902 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
903 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
904 }; 868 };
905 869
906 uart3_cts_rts_pins_a: uart3-cts-rts@0 { 870 uart3_cts_rts_pins_a: uart3-cts-rts@0 {
907 allwinner,pins = "PG11", "PG12"; 871 pins = "PG11", "PG12";
908 allwinner,function = "uart3"; 872 function = "uart3";
909 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
910 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
911 }; 873 };
912 }; 874 };
913 875
diff --git a/arch/arm/boot/dts/sun5i-r8-chip.dts b/arch/arm/boot/dts/sun5i-r8-chip.dts
index c6da5ad37152..e86fa46fdd45 100644
--- a/arch/arm/boot/dts/sun5i-r8-chip.dts
+++ b/arch/arm/boot/dts/sun5i-r8-chip.dts
@@ -154,7 +154,7 @@
154}; 154};
155 155
156&mmc0_pins_a { 156&mmc0_pins_a {
157 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 157 bias-pull-up;
158}; 158};
159 159
160&mmc0 { 160&mmc0 {
@@ -177,31 +177,24 @@
177 177
178&pio { 178&pio {
179 chip_vbus_pin: chip_vbus_pin@0 { 179 chip_vbus_pin: chip_vbus_pin@0 {
180 allwinner,pins = "PB10"; 180 pins = "PB10";
181 allwinner,function = "gpio_out"; 181 function = "gpio_out";
182 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
183 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
184 }; 182 };
185 183
186 chip_wifi_reg_on_pin: chip_wifi_reg_on_pin@0 { 184 chip_wifi_reg_on_pin: chip_wifi_reg_on_pin@0 {
187 allwinner,pins = "PC19"; 185 pins = "PC19";
188 allwinner,function = "gpio_out"; 186 function = "gpio_out";
189 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
190 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
191 }; 187 };
192 188
193 chip_id_det_pin: chip_id_det_pin@0 { 189 chip_id_det_pin: chip_id_det_pin@0 {
194 allwinner,pins = "PG2"; 190 pins = "PG2";
195 allwinner,function = "gpio_in"; 191 function = "gpio_in";
196 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
197 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
198 }; 192 };
199 193
200 chip_w1_pin: chip_w1_pin@0 { 194 chip_w1_pin: chip_w1_pin@0 {
201 allwinner,pins = "PD2"; 195 pins = "PD2";
202 allwinner,function = "gpio_in"; 196 function = "gpio_in";
203 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 197 bias-pull-up;
204 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
205 }; 198 };
206}; 199};
207 200
diff --git a/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi b/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi
index 82f87cdcd164..8a4d2277826f 100644
--- a/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi
+++ b/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi
@@ -130,17 +130,14 @@
130 130
131&pio { 131&pio {
132 codec_pa_pin: codec_pa_pin@0 { 132 codec_pa_pin: codec_pa_pin@0 {
133 allwinner,pins = "PG10"; 133 pins = "PG10";
134 allwinner,function = "gpio_out"; 134 function = "gpio_out";
135 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
136 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
137 }; 135 };
138 136
139 mmc0_cd_pin: mmc0_cd_pin@0 { 137 mmc0_cd_pin: mmc0_cd_pin@0 {
140 allwinner,pins = "PG0"; 138 pins = "PG0";
141 allwinner,function = "gpio_in"; 139 function = "gpio_in";
142 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 140 bias-pull-up;
143 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
144 }; 141 };
145 142
146 ts_power_pin: ts_power_pin { 143 ts_power_pin: ts_power_pin {
@@ -151,24 +148,20 @@
151 }; 148 };
152 149
153 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 150 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
154 allwinner,pins = "PG1"; 151 pins = "PG1";
155 allwinner,function = "gpio_in"; 152 function = "gpio_in";
156 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 153 bias-pull-down;
157 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
158 }; 154 };
159 155
160 usb0_id_detect_pin: usb0_id_detect_pin@0 { 156 usb0_id_detect_pin: usb0_id_detect_pin@0 {
161 allwinner,pins = "PG2"; 157 pins = "PG2";
162 allwinner,function = "gpio_in"; 158 function = "gpio_in";
163 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 159 bias-pull-up;
164 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
165 }; 160 };
166 161
167 usb0_vbus_pin_a: usb0_vbus_pin@0 { 162 usb0_vbus_pin_a: usb0_vbus_pin@0 {
168 allwinner,pins = "PG12"; 163 pins = "PG12";
169 allwinner,function = "gpio_out"; 164 function = "gpio_out";
170 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
171 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
172 }; 165 };
173}; 166};
174 167
diff --git a/arch/arm/boot/dts/sun5i.dtsi b/arch/arm/boot/dts/sun5i.dtsi
index b0fca4ef4dae..c058d37d5433 100644
--- a/arch/arm/boot/dts/sun5i.dtsi
+++ b/arch/arm/boot/dts/sun5i.dtsi
@@ -555,86 +555,76 @@
555 #gpio-cells = <3>; 555 #gpio-cells = <3>;
556 556
557 i2c0_pins_a: i2c0@0 { 557 i2c0_pins_a: i2c0@0 {
558 allwinner,pins = "PB0", "PB1"; 558 pins = "PB0", "PB1";
559 allwinner,function = "i2c0"; 559 function = "i2c0";
560 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
561 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
562 }; 560 };
563 561
564 i2c1_pins_a: i2c1@0 { 562 i2c1_pins_a: i2c1@0 {
565 allwinner,pins = "PB15", "PB16"; 563 pins = "PB15", "PB16";
566 allwinner,function = "i2c1"; 564 function = "i2c1";
567 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
568 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
569 }; 565 };
570 566
571 i2c2_pins_a: i2c2@0 { 567 i2c2_pins_a: i2c2@0 {
572 allwinner,pins = "PB17", "PB18"; 568 pins = "PB17", "PB18";
573 allwinner,function = "i2c2"; 569 function = "i2c2";
574 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
575 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
576 }; 570 };
577 571
578 lcd_rgb565_pins: lcd_rgb565@0 { 572 lcd_rgb565_pins: lcd_rgb565@0 {
579 allwinner,pins = "PD3", "PD4", "PD5", "PD6", "PD7", 573 pins = "PD3", "PD4", "PD5", "PD6", "PD7",
580 "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", 574 "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
581 "PD19", "PD20", "PD21", "PD22", "PD23", 575 "PD19", "PD20", "PD21", "PD22", "PD23",
582 "PD24", "PD25", "PD26", "PD27"; 576 "PD24", "PD25", "PD26", "PD27";
583 allwinner,function = "lcd0"; 577 function = "lcd0";
584 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
585 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
586 }; 578 };
587 579
588 mmc0_pins_a: mmc0@0 { 580 mmc0_pins_a: mmc0@0 {
589 allwinner,pins = "PF0", "PF1", "PF2", "PF3", 581 pins = "PF0", "PF1", "PF2", "PF3",
590 "PF4", "PF5"; 582 "PF4", "PF5";
591 allwinner,function = "mmc0"; 583 function = "mmc0";
592 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 584 drive-strength = <30>;
593 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 585 bias-pull-up;
594 }; 586 };
595 587
596 mmc2_pins_a: mmc2@0 { 588 mmc2_pins_a: mmc2@0 {
597 allwinner,pins = "PC6", "PC7", "PC8", "PC9", 589 pins = "PC6", "PC7", "PC8", "PC9",
598 "PC10", "PC11", "PC12", "PC13", 590 "PC10", "PC11", "PC12", "PC13",
599 "PC14", "PC15"; 591 "PC14", "PC15";
600 allwinner,function = "mmc2"; 592 function = "mmc2";
601 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 593 drive-strength = <30>;
602 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 594 bias-pull-up;
595 };
596
597 mmc2_4bit_pins_a: mmc2-4bit@0 {
598 pins = "PC6", "PC7", "PC8", "PC9",
599 "PC10", "PC11";
600 function = "mmc2";
601 drive-strength = <30>;
602 bias-pull-up;
603 }; 603 };
604 604
605 spi2_pins_a: spi2@0 { 605 spi2_pins_a: spi2@0 {
606 allwinner,pins = "PE1", "PE2", "PE3"; 606 pins = "PE1", "PE2", "PE3";
607 allwinner,function = "spi2"; 607 function = "spi2";
608 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
609 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
610 }; 608 };
611 609
612 spi2_cs0_pins_a: spi2-cs0@0 { 610 spi2_cs0_pins_a: spi2-cs0@0 {
613 allwinner,pins = "PE0"; 611 pins = "PE0";
614 allwinner,function = "spi2"; 612 function = "spi2";
615 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
616 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
617 }; 613 };
618 614
619 uart3_pins_a: uart3@0 { 615 uart3_pins_a: uart3@0 {
620 allwinner,pins = "PG9", "PG10"; 616 pins = "PG9", "PG10";
621 allwinner,function = "uart3"; 617 function = "uart3";
622 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
623 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
624 }; 618 };
625 619
626 uart3_pins_cts_rts_a: uart3-cts-rts@0 { 620 uart3_pins_cts_rts_a: uart3-cts-rts@0 {
627 allwinner,pins = "PG11", "PG12"; 621 pins = "PG11", "PG12";
628 allwinner,function = "uart3"; 622 function = "uart3";
629 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
630 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
631 }; 623 };
632 624
633 pwm0_pins: pwm0 { 625 pwm0_pins: pwm0 {
634 allwinner,pins = "PB2"; 626 pins = "PB2";
635 allwinner,function = "pwm"; 627 function = "pwm";
636 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
637 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
638 }; 628 };
639 }; 629 };
640 630
diff --git a/arch/arm/boot/dts/sun6i-a31-app4-evb1.dts b/arch/arm/boot/dts/sun6i-a31-app4-evb1.dts
index 2f8cfab771e2..effbdc766938 100644
--- a/arch/arm/boot/dts/sun6i-a31-app4-evb1.dts
+++ b/arch/arm/boot/dts/sun6i-a31-app4-evb1.dts
@@ -68,10 +68,8 @@
68 68
69&pio { 69&pio {
70 usb1_vbus_pin_a: usb1_vbus_pin@0 { 70 usb1_vbus_pin_a: usb1_vbus_pin@0 {
71 allwinner,pins = "PH27"; 71 pins = "PH27";
72 allwinner,function = "gpio_out"; 72 function = "gpio_out";
73 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
74 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
75 }; 73 };
76}; 74};
77 75
diff --git a/arch/arm/boot/dts/sun6i-a31-colombus.dts b/arch/arm/boot/dts/sun6i-a31-colombus.dts
index f9cf36888d93..f5ececd45bc0 100644
--- a/arch/arm/boot/dts/sun6i-a31-colombus.dts
+++ b/arch/arm/boot/dts/sun6i-a31-colombus.dts
@@ -124,29 +124,25 @@
124}; 124};
125 125
126&mmc0_pins_a { 126&mmc0_pins_a {
127 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 127 bias-pull-up;
128}; 128};
129 129
130&pio { 130&pio {
131 mmc0_cd_pin_colombus: mmc0_cd_pin@0 { 131 mmc0_cd_pin_colombus: mmc0_cd_pin@0 {
132 allwinner,pins = "PA8"; 132 pins = "PA8";
133 allwinner,function = "gpio_in"; 133 function = "gpio_in";
134 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 134 bias-pull-up;
135 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
136 }; 135 };
137 136
138 usb2_vbus_pin_colombus: usb2_vbus_pin@0 { 137 usb2_vbus_pin_colombus: usb2_vbus_pin@0 {
139 allwinner,pins = "PH24"; 138 pins = "PH24";
140 allwinner,function = "gpio_out"; 139 function = "gpio_out";
141 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
142 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
143 }; 140 };
144 141
145 i2c_lcd_pins: i2c_lcd_pin@0 { 142 i2c_lcd_pins: i2c_lcd_pin@0 {
146 allwinner,pins = "PA23", "PA24"; 143 pins = "PA23", "PA24";
147 allwinner,function = "gpio_out"; 144 function = "gpio_out";
148 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 145 bias-pull-up;
149 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
150 }; 146 };
151}; 147};
152 148
diff --git a/arch/arm/boot/dts/sun6i-a31-hummingbird.dts b/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
index 7cae328398b1..f094eeb6c499 100644
--- a/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
+++ b/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
@@ -205,7 +205,7 @@
205 205
206&mmc0_pins_a { 206&mmc0_pins_a {
207 /* external pull-ups missing for some pins */ 207 /* external pull-ups missing for some pins */
208 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 208 bias-pull-up;
209}; 209};
210 210
211&mmc1 { 211&mmc1 {
@@ -224,24 +224,19 @@
224 224
225&pio { 225&pio {
226 gmac_phy_reset_pin_hummingbird: gmac_phy_reset_pin@0 { 226 gmac_phy_reset_pin_hummingbird: gmac_phy_reset_pin@0 {
227 allwinner,pins = "PA21"; 227 pins = "PA21";
228 allwinner,function = "gpio_out"; 228 function = "gpio_out";
229 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
230 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
231 }; 229 };
232 230
233 mmc0_cd_pin_hummingbird: mmc0_cd_pin@0 { 231 mmc0_cd_pin_hummingbird: mmc0_cd_pin@0 {
234 allwinner,pins = "PA8"; 232 pins = "PA8";
235 allwinner,function = "gpio_in"; 233 function = "gpio_in";
236 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 234 bias-pull-up;
237 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
238 }; 235 };
239 236
240 wifi_reset_pin_hummingbird: wifi_reset_pin@0 { 237 wifi_reset_pin_hummingbird: wifi_reset_pin@0 {
241 allwinner,pins = "PG10"; 238 pins = "PG10";
242 allwinner,function = "gpio_out"; 239 function = "gpio_out";
243 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
244 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
245 }; 240 };
246}; 241};
247 242
@@ -253,6 +248,7 @@
253 reg = <0x68>; 248 reg = <0x68>;
254 interrupt-parent = <&nmi_intc>; 249 interrupt-parent = <&nmi_intc>;
255 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 250 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
251 x-powers,drive-vbus-en;
256 }; 252 };
257}; 253};
258 254
@@ -311,6 +307,11 @@
311 regulator-name = "vcc-dram"; 307 regulator-name = "vcc-dram";
312}; 308};
313 309
310&reg_drivevbus {
311 regulator-name = "usb0-vbus";
312 status = "okay";
313};
314
314&reg_usb1_vbus { 315&reg_usb1_vbus {
315 gpio = <&pio 7 24 GPIO_ACTIVE_HIGH>; /* PH24 */ 316 gpio = <&pio 7 24 GPIO_ACTIVE_HIGH>; /* PH24 */
316 status = "okay"; 317 status = "okay";
@@ -335,12 +336,25 @@
335 status = "okay"; 336 status = "okay";
336}; 337};
337 338
339&usb_otg {
340 dr_mode = "otg";
341 status = "okay";
342};
343
344&usb_power_supply {
345 status = "okay";
346};
347
338&usb1_vbus_pin_a { 348&usb1_vbus_pin_a {
339 /* different pin from sunxi-common-regulators */ 349 /* different pin from sunxi-common-regulators */
340 allwinner,pins = "PH24"; 350 pins = "PH24";
341}; 351};
342 352
343&usbphy { 353&usbphy {
354 usb0_id_det-gpio = <&pio 0 15 GPIO_ACTIVE_HIGH>; /* PA15 */
355 usb0_vbus_det-gpio = <&pio 0 16 GPIO_ACTIVE_HIGH>; /* PA16 */
356 usb0_vbus_power-supply = <&usb_power_supply>;
357 usb0_vbus-supply = <&reg_drivevbus>;
344 usb1_vbus-supply = <&reg_usb1_vbus>; 358 usb1_vbus-supply = <&reg_usb1_vbus>;
345 status = "okay"; 359 status = "okay";
346}; 360};
diff --git a/arch/arm/boot/dts/sun6i-a31-i7.dts b/arch/arm/boot/dts/sun6i-a31-i7.dts
index e9185dad67ee..2bc57d2dcd80 100644
--- a/arch/arm/boot/dts/sun6i-a31-i7.dts
+++ b/arch/arm/boot/dts/sun6i-a31-i7.dts
@@ -69,6 +69,29 @@
69 gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>; 69 gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>;
70 }; 70 };
71 }; 71 };
72
73 sound {
74 compatible = "simple-audio-card";
75 simple-audio-card,name = "On-board SPDIF";
76 simple-audio-card,cpu {
77 sound-dai = <&spdif>;
78 };
79
80 simple-audio-card,codec {
81 sound-dai = <&spdif_out>;
82 };
83 };
84
85 spdif_out: spdif-out {
86 #sound-dai-cells = <0>;
87 compatible = "linux,spdif-dit";
88 };
89};
90
91&codec {
92 allwinner,audio-routing =
93 "Headphone", "HP";
94 status = "okay";
72}; 95};
73 96
74&ehci0 { 97&ehci0 {
@@ -109,24 +132,19 @@
109 132
110&pio { 133&pio {
111 led_pins_i7: led_pins@0 { 134 led_pins_i7: led_pins@0 {
112 allwinner,pins = "PH13"; 135 pins = "PH13";
113 allwinner,function = "gpio_out"; 136 function = "gpio_out";
114 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
115 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
116 }; 137 };
117 138
118 mmc0_cd_pin_i7: mmc0_cd_pin@0 { 139 mmc0_cd_pin_i7: mmc0_cd_pin@0 {
119 allwinner,pins = "PH22"; 140 pins = "PH22";
120 allwinner,function = "gpio_in"; 141 function = "gpio_in";
121 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 142 bias-pull-up;
122 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
123 }; 143 };
124 144
125 usb1_vbus_pin_i7: usb1_vbus_pin@0 { 145 usb1_vbus_pin_i7: usb1_vbus_pin@0 {
126 allwinner,pins = "PC27"; 146 pins = "PC27";
127 allwinner,function = "gpio_out"; 147 function = "gpio_out";
128 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
129 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
130 }; 148 };
131}; 149};
132 150
@@ -137,6 +155,13 @@
137 status = "okay"; 155 status = "okay";
138}; 156};
139 157
158&spdif {
159 pinctrl-names = "default";
160 pinctrl-0 = <&spdif_pins_a>;
161 spdif-out = "okay";
162 status = "okay";
163};
164
140&uart0 { 165&uart0 {
141 pinctrl-names = "default"; 166 pinctrl-names = "default";
142 pinctrl-0 = <&uart0_pins_a>; 167 pinctrl-0 = <&uart0_pins_a>;
diff --git a/arch/arm/boot/dts/sun6i-a31-m9.dts b/arch/arm/boot/dts/sun6i-a31-m9.dts
index 29016a13a2c1..8af5b667a46d 100644
--- a/arch/arm/boot/dts/sun6i-a31-m9.dts
+++ b/arch/arm/boot/dts/sun6i-a31-m9.dts
@@ -128,24 +128,19 @@
128 128
129&pio { 129&pio {
130 led_pins_m9: led_pins@0 { 130 led_pins_m9: led_pins@0 {
131 allwinner,pins = "PH13"; 131 pins = "PH13";
132 allwinner,function = "gpio_out"; 132 function = "gpio_out";
133 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
134 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
135 }; 133 };
136 134
137 mmc0_cd_pin_m9: mmc0_cd_pin@0 { 135 mmc0_cd_pin_m9: mmc0_cd_pin@0 {
138 allwinner,pins = "PH22"; 136 pins = "PH22";
139 allwinner,function = "gpio_in"; 137 function = "gpio_in";
140 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 138 bias-pull-up;
141 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
142 }; 139 };
143 140
144 usb1_vbus_pin_m9: usb1_vbus_pin@0 { 141 usb1_vbus_pin_m9: usb1_vbus_pin@0 {
145 allwinner,pins = "PC27"; 142 pins = "PC27";
146 allwinner,function = "gpio_out"; 143 function = "gpio_out";
147 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
148 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
149 }; 144 };
150}; 145};
151 146
diff --git a/arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts b/arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts
index 5faeae429e2a..bf0f5831126f 100644
--- a/arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts
+++ b/arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts
@@ -128,24 +128,19 @@
128 128
129&pio { 129&pio {
130 led_pins_m9: led_pins@0 { 130 led_pins_m9: led_pins@0 {
131 allwinner,pins = "PH13"; 131 pins = "PH13";
132 allwinner,function = "gpio_out"; 132 function = "gpio_out";
133 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
134 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
135 }; 133 };
136 134
137 mmc0_cd_pin_m9: mmc0_cd_pin@0 { 135 mmc0_cd_pin_m9: mmc0_cd_pin@0 {
138 allwinner,pins = "PH22"; 136 pins = "PH22";
139 allwinner,function = "gpio_in"; 137 function = "gpio_in";
140 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 138 bias-pull-up;
141 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
142 }; 139 };
143 140
144 usb1_vbus_pin_m9: usb1_vbus_pin@0 { 141 usb1_vbus_pin_m9: usb1_vbus_pin@0 {
145 allwinner,pins = "PC27"; 142 pins = "PC27";
146 allwinner,function = "gpio_out"; 143 function = "gpio_out";
147 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
148 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
149 }; 144 };
150}; 145};
151 146
diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
index e78faaf9243c..a4b96184cac1 100644
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -480,130 +480,121 @@
480 #gpio-cells = <3>; 480 #gpio-cells = <3>;
481 481
482 gmac_pins_gmii_a: gmac_gmii@0 { 482 gmac_pins_gmii_a: gmac_gmii@0 {
483 allwinner,pins = "PA0", "PA1", "PA2", "PA3", 483 pins = "PA0", "PA1", "PA2", "PA3",
484 "PA4", "PA5", "PA6", "PA7", 484 "PA4", "PA5", "PA6", "PA7",
485 "PA8", "PA9", "PA10", "PA11", 485 "PA8", "PA9", "PA10", "PA11",
486 "PA12", "PA13", "PA14", "PA15", 486 "PA12", "PA13", "PA14", "PA15",
487 "PA16", "PA17", "PA18", "PA19", 487 "PA16", "PA17", "PA18", "PA19",
488 "PA20", "PA21", "PA22", "PA23", 488 "PA20", "PA21", "PA22", "PA23",
489 "PA24", "PA25", "PA26", "PA27"; 489 "PA24", "PA25", "PA26", "PA27";
490 allwinner,function = "gmac"; 490 function = "gmac";
491 /* 491 /*
492 * data lines in GMII mode run at 125MHz and 492 * data lines in GMII mode run at 125MHz and
493 * might need a higher signal drive strength 493 * might need a higher signal drive strength
494 */ 494 */
495 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 495 drive-strength = <30>;
496 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
497 }; 496 };
498 497
499 gmac_pins_mii_a: gmac_mii@0 { 498 gmac_pins_mii_a: gmac_mii@0 {
500 allwinner,pins = "PA0", "PA1", "PA2", "PA3", 499 pins = "PA0", "PA1", "PA2", "PA3",
501 "PA8", "PA9", "PA11", 500 "PA8", "PA9", "PA11",
502 "PA12", "PA13", "PA14", "PA19", 501 "PA12", "PA13", "PA14", "PA19",
503 "PA20", "PA21", "PA22", "PA23", 502 "PA20", "PA21", "PA22", "PA23",
504 "PA24", "PA26", "PA27"; 503 "PA24", "PA26", "PA27";
505 allwinner,function = "gmac"; 504 function = "gmac";
506 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
507 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
508 }; 505 };
509 506
510 gmac_pins_rgmii_a: gmac_rgmii@0 { 507 gmac_pins_rgmii_a: gmac_rgmii@0 {
511 allwinner,pins = "PA0", "PA1", "PA2", "PA3", 508 pins = "PA0", "PA1", "PA2", "PA3",
512 "PA9", "PA10", "PA11", 509 "PA9", "PA10", "PA11",
513 "PA12", "PA13", "PA14", "PA19", 510 "PA12", "PA13", "PA14", "PA19",
514 "PA20", "PA25", "PA26", "PA27"; 511 "PA20", "PA25", "PA26", "PA27";
515 allwinner,function = "gmac"; 512 function = "gmac";
516 /* 513 /*
517 * data lines in RGMII mode use DDR mode 514 * data lines in RGMII mode use DDR mode
518 * and need a higher signal drive strength 515 * and need a higher signal drive strength
519 */ 516 */
520 allwinner,drive = <SUN4I_PINCTRL_40_MA>; 517 drive-strength = <40>;
521 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
522 }; 518 };
523 519
524 i2c0_pins_a: i2c0@0 { 520 i2c0_pins_a: i2c0@0 {
525 allwinner,pins = "PH14", "PH15"; 521 pins = "PH14", "PH15";
526 allwinner,function = "i2c0"; 522 function = "i2c0";
527 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
528 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
529 }; 523 };
530 524
531 i2c1_pins_a: i2c1@0 { 525 i2c1_pins_a: i2c1@0 {
532 allwinner,pins = "PH16", "PH17"; 526 pins = "PH16", "PH17";
533 allwinner,function = "i2c1"; 527 function = "i2c1";
534 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
535 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
536 }; 528 };
537 529
538 i2c2_pins_a: i2c2@0 { 530 i2c2_pins_a: i2c2@0 {
539 allwinner,pins = "PH18", "PH19"; 531 pins = "PH18", "PH19";
540 allwinner,function = "i2c2"; 532 function = "i2c2";
541 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
542 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
543 }; 533 };
544 534
545 lcd0_rgb888_pins: lcd0_rgb888 { 535 lcd0_rgb888_pins: lcd0_rgb888 {
546 allwinner,pins = "PD0", "PD1", "PD2", "PD3", 536 pins = "PD0", "PD1", "PD2", "PD3",
547 "PD4", "PD5", "PD6", "PD7", 537 "PD4", "PD5", "PD6", "PD7",
548 "PD8", "PD9", "PD10", "PD11", 538 "PD8", "PD9", "PD10", "PD11",
549 "PD12", "PD13", "PD14", "PD15", 539 "PD12", "PD13", "PD14", "PD15",
550 "PD16", "PD17", "PD18", "PD19", 540 "PD16", "PD17", "PD18", "PD19",
551 "PD20", "PD21", "PD22", "PD23", 541 "PD20", "PD21", "PD22", "PD23",
552 "PD24", "PD25", "PD26", "PD27"; 542 "PD24", "PD25", "PD26", "PD27";
553 allwinner,function = "lcd0"; 543 function = "lcd0";
554 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
555 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
556 }; 544 };
557 545
558 mmc0_pins_a: mmc0@0 { 546 mmc0_pins_a: mmc0@0 {
559 allwinner,pins = "PF0", "PF1", "PF2", 547 pins = "PF0", "PF1", "PF2",
560 "PF3", "PF4", "PF5"; 548 "PF3", "PF4", "PF5";
561 allwinner,function = "mmc0"; 549 function = "mmc0";
562 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 550 drive-strength = <30>;
563 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 551 bias-pull-up;
564 }; 552 };
565 553
566 mmc1_pins_a: mmc1@0 { 554 mmc1_pins_a: mmc1@0 {
567 allwinner,pins = "PG0", "PG1", "PG2", "PG3", 555 pins = "PG0", "PG1", "PG2", "PG3",
568 "PG4", "PG5"; 556 "PG4", "PG5";
569 allwinner,function = "mmc1"; 557 function = "mmc1";
570 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 558 drive-strength = <30>;
571 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 559 bias-pull-up;
572 }; 560 };
573 561
574 mmc2_pins_a: mmc2@0 { 562 mmc2_pins_a: mmc2@0 {
575 allwinner,pins = "PC6", "PC7", "PC8", "PC9", 563 pins = "PC6", "PC7", "PC8", "PC9",
576 "PC10", "PC11"; 564 "PC10", "PC11";
577 allwinner,function = "mmc2"; 565 function = "mmc2";
578 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 566 drive-strength = <30>;
579 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 567 bias-pull-up;
580 }; 568 };
581 569
582 mmc2_8bit_emmc_pins: mmc2@1 { 570 mmc2_8bit_emmc_pins: mmc2@1 {
583 allwinner,pins = "PC6", "PC7", "PC8", "PC9", 571 pins = "PC6", "PC7", "PC8", "PC9",
584 "PC10", "PC11", "PC12", 572 "PC10", "PC11", "PC12",
585 "PC13", "PC14", "PC15", 573 "PC13", "PC14", "PC15",
586 "PC24"; 574 "PC24";
587 allwinner,function = "mmc2"; 575 function = "mmc2";
588 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 576 drive-strength = <30>;
589 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 577 bias-pull-up;
590 }; 578 };
591 579
592 mmc3_8bit_emmc_pins: mmc3@1 { 580 mmc3_8bit_emmc_pins: mmc3@1 {
593 allwinner,pins = "PC6", "PC7", "PC8", "PC9", 581 pins = "PC6", "PC7", "PC8", "PC9",
594 "PC10", "PC11", "PC12", 582 "PC10", "PC11", "PC12",
595 "PC13", "PC14", "PC15", 583 "PC13", "PC14", "PC15",
596 "PC24"; 584 "PC24";
597 allwinner,function = "mmc3"; 585 function = "mmc3";
598 allwinner,drive = <SUN4I_PINCTRL_40_MA>; 586 drive-strength = <40>;
599 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 587 bias-pull-up;
588 };
589
590 spdif_pins_a: spdif@0 {
591 pins = "PH28";
592 function = "spdif";
600 }; 593 };
601 594
602 uart0_pins_a: uart0@0 { 595 uart0_pins_a: uart0@0 {
603 allwinner,pins = "PH20", "PH21"; 596 pins = "PH20", "PH21";
604 allwinner,function = "uart0"; 597 function = "uart0";
605 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
606 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
607 }; 598 };
608 }; 599 };
609 600
@@ -623,6 +614,19 @@
623 reg = <0x01c20ca0 0x20>; 614 reg = <0x01c20ca0 0x20>;
624 }; 615 };
625 616
617 spdif: spdif@01c21000 {
618 #sound-dai-cells = <0>;
619 compatible = "allwinner,sun6i-a31-spdif";
620 reg = <0x01c21000 0x400>;
621 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
622 clocks = <&ccu CLK_APB1_SPDIF>, <&ccu CLK_SPDIF>;
623 resets = <&ccu RST_APB1_SPDIF>;
624 clock-names = "apb", "spdif";
625 dmas = <&dma 2>, <&dma 2>;
626 dma-names = "rx", "tx";
627 status = "disabled";
628 };
629
626 lradc: lradc@01c22800 { 630 lradc: lradc@01c22800 {
627 compatible = "allwinner,sun4i-a10-lradc-keys"; 631 compatible = "allwinner,sun4i-a10-lradc-keys";
628 reg = <0x01c22800 0x100>; 632 reg = <0x01c22800 0x100>;
@@ -862,7 +866,7 @@
862 gic: interrupt-controller@01c81000 { 866 gic: interrupt-controller@01c81000 {
863 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; 867 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
864 reg = <0x01c81000 0x1000>, 868 reg = <0x01c81000 0x1000>,
865 <0x01c82000 0x1000>, 869 <0x01c82000 0x2000>,
866 <0x01c84000 0x2000>, 870 <0x01c84000 0x2000>,
867 <0x01c86000 0x2000>; 871 <0x01c86000 0x2000>;
868 interrupt-controller; 872 interrupt-controller;
@@ -1076,17 +1080,13 @@
1076 #gpio-cells = <3>; 1080 #gpio-cells = <3>;
1077 1081
1078 ir_pins_a: ir@0 { 1082 ir_pins_a: ir@0 {
1079 allwinner,pins = "PL4"; 1083 pins = "PL4";
1080 allwinner,function = "s_ir"; 1084 function = "s_ir";
1081 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1082 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1083 }; 1085 };
1084 1086
1085 p2wi_pins: p2wi { 1087 p2wi_pins: p2wi {
1086 allwinner,pins = "PL0", "PL1"; 1088 pins = "PL0", "PL1";
1087 allwinner,function = "s_p2wi"; 1089 function = "s_p2wi";
1088 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1089 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1090 }; 1090 };
1091 }; 1091 };
1092 1092
diff --git a/arch/arm/boot/dts/sun6i-a31s-primo81.dts b/arch/arm/boot/dts/sun6i-a31s-primo81.dts
index 73c133f5e79c..2238eda318f6 100644
--- a/arch/arm/boot/dts/sun6i-a31s-primo81.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-primo81.dts
@@ -134,24 +134,20 @@
134 134
135&pio { 135&pio {
136 gt911_int_primo81: gt911_int_pin@0 { 136 gt911_int_primo81: gt911_int_pin@0 {
137 allwinner,pins = "PA3"; 137 pins = "PA3";
138 allwinner,function = "gpio_in"; 138 function = "gpio_in";
139 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
140 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
141 }; 139 };
142 140
143 mma8452_int_primo81: mma8452_int_pin@0 { 141 mma8452_int_primo81: mma8452_int_pin@0 {
144 allwinner,pins = "PA9"; 142 pins = "PA9";
145 allwinner,function = "gpio_in"; 143 function = "gpio_in";
146 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 144 bias-pull-up;
147 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
148 }; 145 };
149 146
150 mmc0_cd_pin_primo81: mmc0_cd_pin@0 { 147 mmc0_cd_pin_primo81: mmc0_cd_pin@0 {
151 allwinner,pins = "PA8"; 148 pins = "PA8";
152 allwinner,function = "gpio_in"; 149 function = "gpio_in";
153 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 150 bias-pull-up;
154 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
155 }; 151 };
156}; 152};
157 153
diff --git a/arch/arm/boot/dts/sun6i-a31s-sina31s.dts b/arch/arm/boot/dts/sun6i-a31s-sina31s.dts
index c35ec112f5a0..7ff68bdd7109 100644
--- a/arch/arm/boot/dts/sun6i-a31s-sina31s.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-sina31s.dts
@@ -136,17 +136,14 @@
136 136
137&pio { 137&pio {
138 led_pin_sina31s: led_pin@0 { 138 led_pin_sina31s: led_pin@0 {
139 allwinner,pins = "PH13"; 139 pins = "PH13";
140 allwinner,function = "gpio_out"; 140 function = "gpio_out";
141 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
142 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
143 }; 141 };
144 142
145 mmc0_cd_pin_sina31s: mmc0_cd_pin@0 { 143 mmc0_cd_pin_sina31s: mmc0_cd_pin@0 {
146 allwinner,pins = "PA4"; 144 pins = "PA4";
147 allwinner,function = "gpio_in"; 145 function = "gpio_in";
148 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 146 bias-pull-up;
149 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
150 }; 147 };
151}; 148};
152 149
@@ -156,6 +153,11 @@
156 regulator-name = "vcc-gmac-phy"; 153 regulator-name = "vcc-gmac-phy";
157}; 154};
158 155
156&usb_otg {
157 dr_mode = "peripheral";
158 status = "okay";
159};
160
159&usbphy { 161&usbphy {
160 status = "okay"; 162 status = "okay";
161}; 163};
diff --git a/arch/arm/boot/dts/sun6i-a31s-sinovoip-bpi-m2.dts b/arch/arm/boot/dts/sun6i-a31s-sinovoip-bpi-m2.dts
index db7fa13f5425..3bd862bf82a9 100644
--- a/arch/arm/boot/dts/sun6i-a31s-sinovoip-bpi-m2.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-sinovoip-bpi-m2.dts
@@ -122,7 +122,7 @@
122}; 122};
123 123
124&mmc0_pins_a { 124&mmc0_pins_a {
125 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 125 bias-pull-up;
126}; 126};
127 127
128&mmc2 { 128&mmc2 {
@@ -144,7 +144,7 @@
144}; 144};
145 145
146&mmc2_pins_a { 146&mmc2_pins_a {
147 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 147 bias-pull-up;
148}; 148};
149 149
150&ohci0 { 150&ohci0 {
@@ -153,33 +153,26 @@
153 153
154&pio { 154&pio {
155 gmac_phy_reset_pin_bpi_m2: gmac_phy_reset_pin@0 { 155 gmac_phy_reset_pin_bpi_m2: gmac_phy_reset_pin@0 {
156 allwinner,pins = "PA21"; 156 pins = "PA21";
157 allwinner,function = "gpio_out"; 157 function = "gpio_out";
158 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
159 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
160 }; 158 };
161 159
162 led_pins_bpi_m2: led_pins@0 { 160 led_pins_bpi_m2: led_pins@0 {
163 allwinner,pins = "PG5", "PG10", "PG11"; 161 pins = "PG5", "PG10", "PG11";
164 allwinner,function = "gpio_out"; 162 function = "gpio_out";
165 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
166 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
167 }; 163 };
168 164
169 mmc0_cd_pin_bpi_m2: mmc0_cd_pin@0 { 165 mmc0_cd_pin_bpi_m2: mmc0_cd_pin@0 {
170 allwinner,pins = "PA4"; 166 pins = "PA4";
171 allwinner,function = "gpio_in"; 167 function = "gpio_in";
172 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 168 bias-pull-up;
173 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
174 }; 169 };
175}; 170};
176 171
177&r_pio { 172&r_pio {
178 mmc2_pwrseq_pin_bpi_m2: mmc2_pwrseq_pin@0 { 173 mmc2_pwrseq_pin_bpi_m2: mmc2_pwrseq_pin@0 {
179 allwinner,pins = "PL8"; 174 pins = "PL8";
180 allwinner,function = "gpio_out"; 175 function = "gpio_out";
181 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
182 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
183 }; 176 };
184}; 177};
185 178
diff --git a/arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts b/arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts
index d6ad6196a768..154ebf5082ed 100644
--- a/arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts
@@ -92,10 +92,9 @@
92 92
93&pio { 93&pio {
94 mmc0_cd_pin_bs1078v2: mmc0_cd_pin@0 { 94 mmc0_cd_pin_bs1078v2: mmc0_cd_pin@0 {
95 allwinner,pins = "PA8"; 95 pins = "PA8";
96 allwinner,function = "gpio_in"; 96 function = "gpio_in";
97 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 97 bias-pull-up;
98 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
99 }; 98 };
100}; 99};
101 100
@@ -110,7 +109,7 @@
110}; 109};
111 110
112&mmc0_pins_a { 111&mmc0_pins_a {
113 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 112 bias-pull-up;
114}; 113};
115 114
116&p2wi { 115&p2wi {
diff --git a/arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi b/arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi
index 0c434304e040..edaba5f904fd 100644
--- a/arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi
+++ b/arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi
@@ -77,17 +77,15 @@
77 77
78&pio { 78&pio {
79 mmc0_cd_pin_e708_q1: mmc0_cd_pin@0 { 79 mmc0_cd_pin_e708_q1: mmc0_cd_pin@0 {
80 allwinner,pins = "PA8"; 80 pins = "PA8";
81 allwinner,function = "gpio_in"; 81 function = "gpio_in";
82 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 82 bias-pull-up;
83 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
84 }; 83 };
85 84
86 usb0_id_detect_pin: usb0_id_detect_pin@0 { 85 usb0_id_detect_pin: usb0_id_detect_pin@0 {
87 allwinner,pins = "PA15"; 86 pins = "PA15";
88 allwinner,function = "gpio_in"; 87 function = "gpio_in";
89 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 88 bias-pull-up;
90 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
91 }; 89 };
92}; 90};
93 91
diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts b/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
index 532f1a160560..08e776ae095a 100644
--- a/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
+++ b/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
@@ -183,7 +183,7 @@
183 183
184&mmc3_pins_a { 184&mmc3_pins_a {
185 /* AP6210 requires pull-up */ 185 /* AP6210 requires pull-up */
186 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 186 bias-pull-up;
187}; 187};
188 188
189&ohci0 { 189&ohci0 {
@@ -200,31 +200,24 @@
200 200
201&pio { 201&pio {
202 gmac_power_pin_bpi_m1p: gmac_power_pin@0 { 202 gmac_power_pin_bpi_m1p: gmac_power_pin@0 {
203 allwinner,pins = "PH23"; 203 pins = "PH23";
204 allwinner,function = "gpio_out"; 204 function = "gpio_out";
205 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
206 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
207 }; 205 };
208 206
209 led_pins_bpi_m1p: led_pins@0 { 207 led_pins_bpi_m1p: led_pins@0 {
210 allwinner,pins = "PH24", "PH25"; 208 pins = "PH24", "PH25";
211 allwinner,function = "gpio_out"; 209 function = "gpio_out";
212 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
213 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
214 }; 210 };
215 211
216 mmc0_cd_pin_bpi_m1p: mmc0_cd_pin@0 { 212 mmc0_cd_pin_bpi_m1p: mmc0_cd_pin@0 {
217 allwinner,pins = "PH10"; 213 pins = "PH10";
218 allwinner,function = "gpio_in"; 214 function = "gpio_in";
219 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 215 bias-pull-up;
220 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
221 }; 216 };
222 217
223 mmc3_pwrseq_pin_bpi_m1p: mmc3_pwrseq_pin@0 { 218 mmc3_pwrseq_pin_bpi_m1p: mmc3_pwrseq_pin@0 {
224 allwinner,pins = "PH22"; 219 pins = "PH22";
225 allwinner,function = "gpio_out"; 220 function = "gpio_out";
226 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
227 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
228 }; 221 };
229}; 222};
230 223
diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi.dts b/arch/arm/boot/dts/sun7i-a20-bananapi.dts
index 67c8a7644b99..91f2e5f9efcb 100644
--- a/arch/arm/boot/dts/sun7i-a20-bananapi.dts
+++ b/arch/arm/boot/dts/sun7i-a20-bananapi.dts
@@ -179,31 +179,25 @@
179 179
180&pio { 180&pio {
181 usb0_id_detect_pin: usb0_id_detect_pin@0 { 181 usb0_id_detect_pin: usb0_id_detect_pin@0 {
182 allwinner,pins = "PH4"; 182 pins = "PH4";
183 allwinner,function = "gpio_in"; 183 function = "gpio_in";
184 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 184 bias-pull-up;
185 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
186 }; 185 };
187 186
188 mmc0_cd_pin_bananapi: mmc0_cd_pin@0 { 187 mmc0_cd_pin_bananapi: mmc0_cd_pin@0 {
189 allwinner,pins = "PH10"; 188 pins = "PH10";
190 allwinner,function = "gpio_in"; 189 function = "gpio_in";
191 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 190 bias-pull-up;
192 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
193 }; 191 };
194 192
195 gmac_power_pin_bananapi: gmac_power_pin@0 { 193 gmac_power_pin_bananapi: gmac_power_pin@0 {
196 allwinner,pins = "PH23"; 194 pins = "PH23";
197 allwinner,function = "gpio_out"; 195 function = "gpio_out";
198 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
199 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
200 }; 196 };
201 197
202 led_pins_bananapi: led_pins@0 { 198 led_pins_bananapi: led_pins@0 {
203 allwinner,pins = "PH24"; 199 pins = "PH24";
204 allwinner,function = "gpio_out"; 200 function = "gpio_out";
205 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
206 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
207 }; 201 };
208}; 202};
209 203
diff --git a/arch/arm/boot/dts/sun7i-a20-bananapro.dts b/arch/arm/boot/dts/sun7i-a20-bananapro.dts
index 18fcc87f4621..83516bc81225 100644
--- a/arch/arm/boot/dts/sun7i-a20-bananapro.dts
+++ b/arch/arm/boot/dts/sun7i-a20-bananapro.dts
@@ -76,6 +76,13 @@
76 }; 76 };
77 }; 77 };
78 78
79 wifi_pwrseq: wifi-pwrseq {
80 compatible = "mmc-pwrseq-simple";
81 pinctrl-names = "default";
82 pinctrl-0 = <&vmmc3_pin_bananapro>;
83 reset-gpios = <&pio 7 22 GPIO_ACTIVE_LOW>;
84 };
85
79 reg_gmac_3v3: gmac-3v3 { 86 reg_gmac_3v3: gmac-3v3 {
80 compatible = "regulator-fixed"; 87 compatible = "regulator-fixed";
81 pinctrl-names = "default"; 88 pinctrl-names = "default";
@@ -87,23 +94,16 @@
87 enable-active-high; 94 enable-active-high;
88 gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>; 95 gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>;
89 }; 96 };
90
91 reg_vmmc3: vmmc3 {
92 compatible = "regulator-fixed";
93 pinctrl-names = "default";
94 pinctrl-0 = <&vmmc3_pin_bananapro>;
95 regulator-name = "vmmc3";
96 regulator-min-microvolt = <3300000>;
97 regulator-max-microvolt = <3300000>;
98 enable-active-high;
99 gpio = <&pio 7 22 GPIO_ACTIVE_HIGH>;
100 };
101}; 97};
102 98
103&ahci { 99&ahci {
104 status = "okay"; 100 status = "okay";
105}; 101};
106 102
103&codec {
104 status = "okay";
105};
106
107&ehci0 { 107&ehci0 {
108 status = "okay"; 108 status = "okay";
109}; 109};
@@ -166,10 +166,19 @@
166&mmc3 { 166&mmc3 {
167 pinctrl-names = "default"; 167 pinctrl-names = "default";
168 pinctrl-0 = <&mmc3_pins_a>; 168 pinctrl-0 = <&mmc3_pins_a>;
169 vmmc-supply = <&reg_vmmc3>; 169 vmmc-supply = <&reg_vcc3v3>;
170 mmc-pwrseq = <&wifi_pwrseq>;
170 bus-width = <4>; 171 bus-width = <4>;
171 non-removable; 172 non-removable;
172 status = "okay"; 173 status = "okay";
174
175 brcmf: bcrmf@1 {
176 reg = <1>;
177 compatible = "brcm,bcm4329-fmac";
178 interrupt-parent = <&pio>;
179 interrupts = <7 15 IRQ_TYPE_LEVEL_LOW>;
180 interrupt-names = "host-wake";
181 };
173}; 182};
174 183
175&ohci0 { 184&ohci0 {
@@ -182,45 +191,34 @@
182 191
183&pio { 192&pio {
184 gmac_power_pin_bananapro: gmac_power_pin@0 { 193 gmac_power_pin_bananapro: gmac_power_pin@0 {
185 allwinner,pins = "PH23"; 194 pins = "PH23";
186 allwinner,function = "gpio_out"; 195 function = "gpio_out";
187 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
188 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
189 }; 196 };
190 197
191 led_pins_bananapro: led_pins@0 { 198 led_pins_bananapro: led_pins@0 {
192 allwinner,pins = "PH24", "PG2"; 199 pins = "PH24", "PG2";
193 allwinner,function = "gpio_out"; 200 function = "gpio_out";
194 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
195 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
196 }; 201 };
197 202
198 mmc0_cd_pin_bananapro: mmc0_cd_pin@0 { 203 mmc0_cd_pin_bananapro: mmc0_cd_pin@0 {
199 allwinner,pins = "PH10"; 204 pins = "PH10";
200 allwinner,function = "gpio_in"; 205 function = "gpio_in";
201 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 206 bias-pull-up;
202 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
203 }; 207 };
204 208
205 usb1_vbus_pin_bananapro: usb1_vbus_pin@0 { 209 usb1_vbus_pin_bananapro: usb1_vbus_pin@0 {
206 allwinner,pins = "PH0"; 210 pins = "PH0";
207 allwinner,function = "gpio_out"; 211 function = "gpio_out";
208 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
209 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
210 }; 212 };
211 213
212 usb2_vbus_pin_bananapro: usb2_vbus_pin@0 { 214 usb2_vbus_pin_bananapro: usb2_vbus_pin@0 {
213 allwinner,pins = "PH1"; 215 pins = "PH1";
214 allwinner,function = "gpio_out"; 216 function = "gpio_out";
215 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
216 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
217 }; 217 };
218 218
219 vmmc3_pin_bananapro: vmmc3_pin@0 { 219 vmmc3_pin_bananapro: vmmc3_pin@0 {
220 allwinner,pins = "PH22"; 220 pins = "PH22";
221 allwinner,function = "gpio_out"; 221 function = "gpio_out";
222 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
223 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
224 }; 222 };
225}; 223};
226 224
diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
index 1fa832d7b469..4dc1e10f88c4 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
@@ -160,17 +160,14 @@
160 160
161&pio { 161&pio {
162 led_pins_cubieboard2: led_pins@0 { 162 led_pins_cubieboard2: led_pins@0 {
163 allwinner,pins = "PH20", "PH21"; 163 pins = "PH20", "PH21";
164 allwinner,function = "gpio_out"; 164 function = "gpio_out";
165 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
166 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
167 }; 165 };
168 166
169 usb0_id_detect_pin: usb0_id_detect_pin@0 { 167 usb0_id_detect_pin: usb0_id_detect_pin@0 {
170 allwinner,pins = "PH4"; 168 pins = "PH4";
171 allwinner,function = "gpio_in"; 169 function = "gpio_in";
172 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 170 bias-pull-up;
173 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
174 }; 171 };
175}; 172};
176 173
diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
index 83f39b0362cb..f019aa3fe96d 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
@@ -207,7 +207,7 @@
207 207
208&mmc3_pins_a { 208&mmc3_pins_a {
209 /* AP6210 requires pull-up */ 209 /* AP6210 requires pull-up */
210 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 210 bias-pull-up;
211}; 211};
212 212
213&ohci0 { 213&ohci0 {
@@ -224,45 +224,33 @@
224 224
225&pio { 225&pio {
226 ahci_pwr_pin_cubietruck: ahci_pwr_pin@1 { 226 ahci_pwr_pin_cubietruck: ahci_pwr_pin@1 {
227 allwinner,pins = "PH12"; 227 pins = "PH12";
228 allwinner,function = "gpio_out"; 228 function = "gpio_out";
229 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
230 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
231 }; 229 };
232 230
233 led_pins_cubietruck: led_pins@0 { 231 led_pins_cubietruck: led_pins@0 {
234 allwinner,pins = "PH7", "PH11", "PH20", "PH21"; 232 pins = "PH7", "PH11", "PH20", "PH21";
235 allwinner,function = "gpio_out"; 233 function = "gpio_out";
236 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
237 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
238 }; 234 };
239 235
240 mmc3_pwrseq_pin_cubietruck: mmc3_pwrseq_pin@0 { 236 mmc3_pwrseq_pin_cubietruck: mmc3_pwrseq_pin@0 {
241 allwinner,pins = "PH9"; 237 pins = "PH9";
242 allwinner,function = "gpio_out"; 238 function = "gpio_out";
243 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
244 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
245 }; 239 };
246 240
247 usb0_vbus_pin_a: usb0_vbus_pin@0 { 241 usb0_vbus_pin_a: usb0_vbus_pin@0 {
248 allwinner,pins = "PH17"; 242 pins = "PH17";
249 allwinner,function = "gpio_out"; 243 function = "gpio_out";
250 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
251 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
252 }; 244 };
253 245
254 usb0_id_detect_pin: usb0_id_detect_pin@0 { 246 usb0_id_detect_pin: usb0_id_detect_pin@0 {
255 allwinner,pins = "PH19"; 247 pins = "PH19";
256 allwinner,function = "gpio_in"; 248 function = "gpio_in";
257 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
258 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
259 }; 249 };
260 250
261 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 251 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
262 allwinner,pins = "PH22"; 252 pins = "PH22";
263 allwinner,function = "gpio_in"; 253 function = "gpio_in";
264 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
265 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
266 }; 254 };
267}; 255};
268 256
diff --git a/arch/arm/boot/dts/sun7i-a20-hummingbird.dts b/arch/arm/boot/dts/sun7i-a20-hummingbird.dts
index 37f4a5497452..e921ba42f170 100644
--- a/arch/arm/boot/dts/sun7i-a20-hummingbird.dts
+++ b/arch/arm/boot/dts/sun7i-a20-hummingbird.dts
@@ -188,31 +188,23 @@
188 188
189&pio { 189&pio {
190 ahci_pwr_pin_a20_hummingbird: ahci_pwr_pin@0 { 190 ahci_pwr_pin_a20_hummingbird: ahci_pwr_pin@0 {
191 allwinner,pins = "PH15"; 191 pins = "PH15";
192 allwinner,function = "gpio_out"; 192 function = "gpio_out";
193 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
194 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
195 }; 193 };
196 194
197 usb1_vbus_pin_a20_hummingbird: usb1_vbus_pin@0 { 195 usb1_vbus_pin_a20_hummingbird: usb1_vbus_pin@0 {
198 allwinner,pins = "PH2"; 196 pins = "PH2";
199 allwinner,function = "gpio_out"; 197 function = "gpio_out";
200 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
201 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
202 }; 198 };
203 199
204 mmc3_vdd_pin_a20_hummingbird: mmc3_vdd_pin@0 { 200 mmc3_vdd_pin_a20_hummingbird: mmc3_vdd_pin@0 {
205 allwinner,pins = "PH9"; 201 pins = "PH9";
206 allwinner,function = "gpio_out"; 202 function = "gpio_out";
207 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
208 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
209 }; 203 };
210 204
211 gmac_vdd_pin_a20_hummingbird: gmac_vdd_pin@0 { 205 gmac_vdd_pin_a20_hummingbird: gmac_vdd_pin@0 {
212 allwinner,pins = "PH16"; 206 pins = "PH16";
213 allwinner,function = "gpio_out"; 207 function = "gpio_out";
214 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
215 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
216 }; 208 };
217}; 209};
218 210
diff --git a/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts b/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts
index 1e6bd360dac0..385fd8232ae0 100644
--- a/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts
+++ b/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts
@@ -185,7 +185,7 @@
185 185
186&mmc3_pins_a { 186&mmc3_pins_a {
187 /* AP6210 / AP6330 requires pull-up */ 187 /* AP6210 / AP6330 requires pull-up */
188 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 188 bias-pull-up;
189}; 189};
190 190
191&ohci0 { 191&ohci0 {
@@ -198,31 +198,23 @@
198 198
199&pio { 199&pio {
200 vmmc3_pin_i12_tvbox: vmmc3_pin@0 { 200 vmmc3_pin_i12_tvbox: vmmc3_pin@0 {
201 allwinner,pins = "PH2"; 201 pins = "PH2";
202 allwinner,function = "gpio_out"; 202 function = "gpio_out";
203 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
204 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
205 }; 203 };
206 204
207 vmmc3_io_pin_i12_tvbox: vmmc3_io_pin@0 { 205 vmmc3_io_pin_i12_tvbox: vmmc3_io_pin@0 {
208 allwinner,pins = "PH12"; 206 pins = "PH12";
209 allwinner,function = "gpio_out"; 207 function = "gpio_out";
210 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
211 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
212 }; 208 };
213 209
214 gmac_power_pin_i12_tvbox: gmac_power_pin@0 { 210 gmac_power_pin_i12_tvbox: gmac_power_pin@0 {
215 allwinner,pins = "PH21"; 211 pins = "PH21";
216 allwinner,function = "gpio_out"; 212 function = "gpio_out";
217 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
218 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
219 }; 213 };
220 214
221 led_pins_i12_tvbox: led_pins@0 { 215 led_pins_i12_tvbox: led_pins@0 {
222 allwinner,pins = "PH9", "PH20"; 216 pins = "PH9", "PH20";
223 allwinner,function = "gpio_out"; 217 function = "gpio_out";
224 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
225 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
226 }; 218 };
227}; 219};
228 220
diff --git a/arch/arm/boot/dts/sun7i-a20-itead-ibox.dts b/arch/arm/boot/dts/sun7i-a20-itead-ibox.dts
index 10d48cbf81ff..d52222c82cb8 100644
--- a/arch/arm/boot/dts/sun7i-a20-itead-ibox.dts
+++ b/arch/arm/boot/dts/sun7i-a20-itead-ibox.dts
@@ -131,10 +131,9 @@
131 131
132&pio { 132&pio {
133 led_pins_itead_core: led_pins@0 { 133 led_pins_itead_core: led_pins@0 {
134 allwinner,pins = "PH20","PH21"; 134 pins = "PH20","PH21";
135 allwinner,function = "gpio_out"; 135 function = "gpio_out";
136 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 136 drive-strength = <20>;
137 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
138 }; 137 };
139}; 138};
140 139
diff --git a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
index 73c05dab0a69..72ec0d5ae052 100644
--- a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
+++ b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
@@ -87,7 +87,7 @@
87}; 87};
88 88
89&ahci_pwr_pin_a { 89&ahci_pwr_pin_a {
90 allwinner,pins = "PB3"; 90 pins = "PB3";
91}; 91};
92 92
93&ahci { 93&ahci {
@@ -222,31 +222,25 @@
222 222
223&pio { 223&pio {
224 usb0_id_detect_pin: usb0_id_detect_pin@0 { 224 usb0_id_detect_pin: usb0_id_detect_pin@0 {
225 allwinner,pins = "PH4"; 225 pins = "PH4";
226 allwinner,function = "gpio_in"; 226 function = "gpio_in";
227 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 227 bias-pull-up;
228 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
229 }; 228 };
230 229
231 mmc0_cd_pin_lamobo_r1: mmc0_cd_pin@0 { 230 mmc0_cd_pin_lamobo_r1: mmc0_cd_pin@0 {
232 allwinner,pins = "PH10"; 231 pins = "PH10";
233 allwinner,function = "gpio_in"; 232 function = "gpio_in";
234 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 233 bias-pull-up;
235 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
236 }; 234 };
237 235
238 gmac_power_pin_lamobo_r1: gmac_power_pin@0 { 236 gmac_power_pin_lamobo_r1: gmac_power_pin@0 {
239 allwinner,pins = "PH23"; 237 pins = "PH23";
240 allwinner,function = "gpio_out"; 238 function = "gpio_out";
241 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
242 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
243 }; 239 };
244 240
245 led_pins_lamobo_r1: led_pins@0 { 241 led_pins_lamobo_r1: led_pins@0 {
246 allwinner,pins = "PH24"; 242 pins = "PH24";
247 allwinner,function = "gpio_out"; 243 function = "gpio_out";
248 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
249 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
250 }; 244 };
251}; 245};
252 246
@@ -327,7 +321,7 @@
327}; 321};
328 322
329&usb2_vbus_pin_a { 323&usb2_vbus_pin_a {
330 allwinner,pins = "PH12"; 324 pins = "PH12";
331}; 325};
332 326
333&usbphy { 327&usbphy {
diff --git a/arch/arm/boot/dts/sun7i-a20-m3.dts b/arch/arm/boot/dts/sun7i-a20-m3.dts
index 8d9ea48dd98c..0e074bd0e8c9 100644
--- a/arch/arm/boot/dts/sun7i-a20-m3.dts
+++ b/arch/arm/boot/dts/sun7i-a20-m3.dts
@@ -145,10 +145,8 @@
145 145
146&pio { 146&pio {
147 led_pins_m3: led_pins@0 { 147 led_pins_m3: led_pins@0 {
148 allwinner,pins = "PH20"; 148 pins = "PH20";
149 allwinner,function = "gpio_out"; 149 function = "gpio_out";
150 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
151 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
152 }; 150 };
153}; 151};
154 152
diff --git a/arch/arm/boot/dts/sun7i-a20-mk808c.dts b/arch/arm/boot/dts/sun7i-a20-mk808c.dts
index 90ff4a267025..97d7a8b65a03 100644
--- a/arch/arm/boot/dts/sun7i-a20-mk808c.dts
+++ b/arch/arm/boot/dts/sun7i-a20-mk808c.dts
@@ -132,17 +132,13 @@
132 132
133&pio { 133&pio {
134 usb0_id_detect_pin: usb0_id_detect_pin@0 { 134 usb0_id_detect_pin: usb0_id_detect_pin@0 {
135 allwinner,pins = "PH4"; 135 pins = "PH4";
136 allwinner,function = "gpio_in"; 136 function = "gpio_in";
137 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
138 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
139 }; 137 };
140 138
141 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 139 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
142 allwinner,pins = "PH5"; 140 pins = "PH5";
143 allwinner,function = "gpio_in"; 141 function = "gpio_in";
144 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
145 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
146 }; 142 };
147}; 143};
148 144
diff --git a/arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts b/arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts
index 134e0c1b129d..a1450c10b08e 100644
--- a/arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts
@@ -120,6 +120,18 @@
120 }; 120 };
121}; 121};
122 122
123&i2c1 {
124 pinctrl-names = "default";
125 pinctrl-0 = <&i2c1_pins_a>;
126 status = "okay";
127};
128
129&i2c2 {
130 pinctrl-names = "default";
131 pinctrl-0 = <&i2c2_pins_a>;
132 status = "okay";
133};
134
123&lradc { 135&lradc {
124 vref-supply = <&reg_vcc3v0>; 136 vref-supply = <&reg_vcc3v0>;
125 status = "okay"; 137 status = "okay";
@@ -208,38 +220,30 @@
208 220
209&pio { 221&pio {
210 ahci_pwr_pin_olimex_som_evb: ahci_pwr_pin@1 { 222 ahci_pwr_pin_olimex_som_evb: ahci_pwr_pin@1 {
211 allwinner,pins = "PC3"; 223 pins = "PC3";
212 allwinner,function = "gpio_out"; 224 function = "gpio_out";
213 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
214 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
215 }; 225 };
216 226
217 led_pins_olimex_som_evb: led_pins@0 { 227 led_pins_olimex_som_evb: led_pins@0 {
218 allwinner,pins = "PH2"; 228 pins = "PH2";
219 allwinner,function = "gpio_out"; 229 function = "gpio_out";
220 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 230 drive-strength = <20>;
221 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
222 }; 231 };
223 232
224 mmc3_cd_pin_olimex_som_evb: mmc3_cd_pin@0 { 233 mmc3_cd_pin_olimex_som_evb: mmc3_cd_pin@0 {
225 allwinner,pins = "PH0"; 234 pins = "PH0";
226 allwinner,function = "gpio_in"; 235 function = "gpio_in";
227 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 236 bias-pull-up;
228 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
229 }; 237 };
230 238
231 usb0_id_detect_pin: usb0_id_detect_pin@0 { 239 usb0_id_detect_pin: usb0_id_detect_pin@0 {
232 allwinner,pins = "PH4"; 240 pins = "PH4";
233 allwinner,function = "gpio_in"; 241 function = "gpio_in";
234 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
235 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
236 }; 242 };
237 243
238 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 244 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
239 allwinner,pins = "PH5"; 245 pins = "PH5";
240 allwinner,function = "gpio_in"; 246 function = "gpio_in";
241 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
242 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
243 }; 247 };
244}; 248};
245 249
@@ -288,12 +292,38 @@
288 status = "okay"; 292 status = "okay";
289}; 293};
290 294
295&spi1 {
296 pinctrl-names = "default";
297 pinctrl-0 = <&spi1_pins_a>,
298 <&spi1_cs0_pins_a>;
299 status = "okay";
300};
301
302&spi2 {
303 pinctrl-names = "default";
304 pinctrl-0 = <&spi2_pins_a>,
305 <&spi2_cs0_pins_a>;
306 status = "okay";
307};
308
291&uart0 { 309&uart0 {
292 pinctrl-names = "default"; 310 pinctrl-names = "default";
293 pinctrl-0 = <&uart0_pins_a>; 311 pinctrl-0 = <&uart0_pins_a>;
294 status = "okay"; 312 status = "okay";
295}; 313};
296 314
315&uart6 {
316 pinctrl-names = "default";
317 pinctrl-0 = <&uart6_pins_a>;
318 status = "okay";
319};
320
321&uart7 {
322 pinctrl-names = "default";
323 pinctrl-0 = <&uart7_pins_a>;
324 status = "okay";
325};
326
297&usb_otg { 327&usb_otg {
298 dr_mode = "otg"; 328 dr_mode = "otg";
299 status = "okay"; 329 status = "okay";
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
index 35ad7006c53c..1297432c2802 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
@@ -153,31 +153,26 @@
153 153
154&pio { 154&pio {
155 ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 { 155 ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 {
156 allwinner,pins = "PC3"; 156 pins = "PC3";
157 allwinner,function = "gpio_out"; 157 function = "gpio_out";
158 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
159 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
160 }; 158 };
161 159
162 led_pins_olinuxinolime: led_pins@0 { 160 led_pins_olinuxinolime: led_pins@0 {
163 allwinner,pins = "PH2"; 161 pins = "PH2";
164 allwinner,function = "gpio_out"; 162 function = "gpio_out";
165 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 163 drive-strength = <20>;
166 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
167 }; 164 };
168 165
169 usb0_id_detect_pin: usb0_id_detect_pin@0 { 166 usb0_id_detect_pin: usb0_id_detect_pin@0 {
170 allwinner,pins = "PH4"; 167 pins = "PH4";
171 allwinner,function = "gpio_in"; 168 function = "gpio_in";
172 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 169 bias-pull-up;
173 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
174 }; 170 };
175 171
176 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 172 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
177 allwinner,pins = "PH5"; 173 pins = "PH5";
178 allwinner,function = "gpio_in"; 174 function = "gpio_in";
179 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 175 bias-pull-down;
180 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
181 }; 176 };
182}; 177};
183 178
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2-emmc.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2-emmc.dts
index 10d307408f23..81f376f2a44d 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2-emmc.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2-emmc.dts
@@ -57,10 +57,8 @@
57 57
58&pio { 58&pio {
59 mmc2_pins_nrst: mmc2-rst-pin { 59 mmc2_pins_nrst: mmc2-rst-pin {
60 allwinner,pins = "PC16"; 60 pins = "PC16";
61 allwinner,function = "gpio_out"; 61 function = "gpio_out";
62 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
63 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
64 }; 62 };
65}; 63};
66 64
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
index d5c796c8d16f..71cca5360728 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
@@ -112,57 +112,9 @@
112 status = "okay"; 112 status = "okay";
113 113
114 axp209: pmic@34 { 114 axp209: pmic@34 {
115 compatible = "x-powers,axp209";
116 reg = <0x34>; 115 reg = <0x34>;
117 interrupt-parent = <&nmi_intc>; 116 interrupt-parent = <&nmi_intc>;
118 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 117 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
119
120 interrupt-controller;
121 #interrupt-cells = <1>;
122
123 acin-supply = <&reg_axp_ipsout>;
124 vin2-supply = <&reg_axp_ipsout>;
125 vin3-supply = <&reg_axp_ipsout>;
126 ldo24in-supply = <&reg_axp_ipsout>;
127 ldo3in-supply = <&reg_axp_ipsout>;
128
129 regulators {
130 vdd_rtc: ldo1 {
131 regulator-min-microvolt = <1300000>;
132 regulator-max-microvolt = <1300000>;
133 regulator-always-on;
134 };
135
136 avcc: ldo2 {
137 regulator-min-microvolt = <1800000>;
138 regulator-max-microvolt = <3300000>;
139 regulator-always-on;
140 };
141
142 vcc_csi0: ldo3 {
143 regulator-min-microvolt = <700000>;
144 regulator-max-microvolt = <3500000>;
145 regulator-always-on;
146 };
147
148 vcc_csi1: ldo4 {
149 regulator-min-microvolt = <1250000>;
150 regulator-max-microvolt = <3300000>;
151 regulator-always-on;
152 };
153
154 vdd_cpu: dcdc2 {
155 regulator-min-microvolt = <700000>;
156 regulator-max-microvolt = <2275000>;
157 regulator-always-on;
158 };
159
160 vdd_int: dcdc3 {
161 regulator-min-microvolt = <700000>;
162 regulator-max-microvolt = <3500000>;
163 regulator-always-on;
164 };
165 };
166 }; 118 };
167}; 119};
168 120
@@ -202,38 +154,31 @@
202 154
203&pio { 155&pio {
204 ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 { 156 ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 {
205 allwinner,pins = "PC3"; 157 pins = "PC3";
206 allwinner,function = "gpio_out"; 158 function = "gpio_out";
207 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
208 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
209 }; 159 };
210 160
211 led_pins_olinuxinolime: led_pins@0 { 161 led_pins_olinuxinolime: led_pins@0 {
212 allwinner,pins = "PH2"; 162 pins = "PH2";
213 allwinner,function = "gpio_out"; 163 function = "gpio_out";
214 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 164 drive-strength = <20>;
215 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
216 }; 165 };
217 166
218 usb0_id_detect_pin: usb0_id_detect_pin@0 { 167 usb0_id_detect_pin: usb0_id_detect_pin@0 {
219 allwinner,pins = "PH4"; 168 pins = "PH4";
220 allwinner,function = "gpio_in"; 169 function = "gpio_in";
221 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 170 bias-pull-up;
222 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
223 }; 171 };
224 172
225 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 173 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
226 allwinner,pins = "PH5"; 174 pins = "PH5";
227 allwinner,function = "gpio_in"; 175 function = "gpio_in";
228 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 176 bias-pull-down;
229 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
230 }; 177 };
231 178
232 usb0_vbus_pin_lime2: usb0_vbus_pin@0 { 179 usb0_vbus_pin_lime2: usb0_vbus_pin@0 {
233 allwinner,pins = "PC17"; 180 pins = "PC17";
234 allwinner,function = "gpio_out"; 181 function = "gpio_out";
235 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
236 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
237 }; 182 };
238}; 183};
239 184
@@ -243,6 +188,48 @@
243 status = "okay"; 188 status = "okay";
244}; 189};
245 190
191#include "axp209.dtsi"
192
193&reg_dcdc2 {
194 regulator-always-on;
195 regulator-min-microvolt = <1000000>;
196 regulator-max-microvolt = <1400000>;
197 regulator-name = "vdd-cpu";
198};
199
200&reg_dcdc3 {
201 regulator-always-on;
202 regulator-min-microvolt = <1000000>;
203 regulator-max-microvolt = <1400000>;
204 regulator-name = "vdd-int-dll";
205};
206
207&reg_ldo1 {
208 regulator-always-on;
209 regulator-min-microvolt = <1300000>;
210 regulator-max-microvolt = <1300000>;
211 regulator-name = "vdd-rtc";
212};
213
214&reg_ldo2 {
215 regulator-always-on;
216 regulator-min-microvolt = <3000000>;
217 regulator-max-microvolt = <3000000>;
218 regulator-name = "avcc";
219};
220
221&reg_ldo3 {
222 regulator-min-microvolt = <2800000>;
223 regulator-max-microvolt = <2800000>;
224 regulator-name = "vddio-csi0";
225};
226
227&reg_ldo4 {
228 regulator-min-microvolt = <2800000>;
229 regulator-max-microvolt = <2800000>;
230 regulator-name = "vddio-csi1";
231};
232
246&reg_usb0_vbus { 233&reg_usb0_vbus {
247 pinctrl-0 = <&usb0_vbus_pin_lime2>; 234 pinctrl-0 = <&usb0_vbus_pin_lime2>;
248 gpio = <&pio 2 17 GPIO_ACTIVE_HIGH>; 235 gpio = <&pio 2 17 GPIO_ACTIVE_HIGH>;
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
index 7e3006f6a775..223fbd9f7c62 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
@@ -227,31 +227,27 @@
227 227
228&pio { 228&pio {
229 mmc3_cd_pin_olinuxinom: mmc3_cd_pin@0 { 229 mmc3_cd_pin_olinuxinom: mmc3_cd_pin@0 {
230 allwinner,pins = "PH11"; 230 pins = "PH11";
231 allwinner,function = "gpio_in"; 231 function = "gpio_in";
232 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 232 bias-pull-up;
233 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
234 }; 233 };
235 234
236 led_pins_olinuxino: led_pins@0 { 235 led_pins_olinuxino: led_pins@0 {
237 allwinner,pins = "PH2"; 236 pins = "PH2";
238 allwinner,function = "gpio_out"; 237 function = "gpio_out";
239 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 238 drive-strength = <20>;
240 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
241 }; 239 };
242 240
243 usb0_id_detect_pin: usb0_id_detect_pin@0 { 241 usb0_id_detect_pin: usb0_id_detect_pin@0 {
244 allwinner,pins = "PH4"; 242 pins = "PH4";
245 allwinner,function = "gpio_in"; 243 function = "gpio_in";
246 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 244 bias-pull-up;
247 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
248 }; 245 };
249 246
250 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 247 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
251 allwinner,pins = "PH5"; 248 pins = "PH5";
252 allwinner,function = "gpio_in"; 249 function = "gpio_in";
253 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 250 bias-pull-down;
254 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
255 }; 251 };
256}; 252};
257 253
diff --git a/arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts b/arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts
index 2be04c438b1e..a74265749227 100644
--- a/arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts
+++ b/arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts
@@ -166,52 +166,41 @@
166 166
167&pio { 167&pio {
168 usb0_id_detect_pin: usb0_id_detect_pin@0 { 168 usb0_id_detect_pin: usb0_id_detect_pin@0 {
169 allwinner,pins = "PH4"; 169 pins = "PH4";
170 allwinner,function = "gpio_in"; 170 function = "gpio_in";
171 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 171 bias-pull-up;
172 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
173 }; 172 };
174 173
175 mmc0_cd_pin_orangepi: mmc0_cd_pin@0 { 174 mmc0_cd_pin_orangepi: mmc0_cd_pin@0 {
176 allwinner,pins = "PH10"; 175 pins = "PH10";
177 allwinner,function = "gpio_in"; 176 function = "gpio_in";
178 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 177 bias-pull-up;
179 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
180 }; 178 };
181 179
182 mmc3_cd_pin_orangepi: mmc3_cd_pin@0 { 180 mmc3_cd_pin_orangepi: mmc3_cd_pin@0 {
183 allwinner,pins = "PH11"; 181 pins = "PH11";
184 allwinner,function = "gpio_in"; 182 function = "gpio_in";
185 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 183 bias-pull-up;
186 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
187 }; 184 };
188 185
189 usb2_vbus_pin_bananapro: usb2_vbus_pin@0 { 186 usb2_vbus_pin_bananapro: usb2_vbus_pin@0 {
190 allwinner,pins = "PH22"; 187 pins = "PH22";
191 allwinner,function = "gpio_out"; 188 function = "gpio_out";
192 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
193 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
194 }; 189 };
195 190
196 gmac_power_pin_orangepi: gmac_power_pin@0 { 191 gmac_power_pin_orangepi: gmac_power_pin@0 {
197 allwinner,pins = "PH23"; 192 pins = "PH23";
198 allwinner,function = "gpio_out"; 193 function = "gpio_out";
199 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
200 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
201 }; 194 };
202 195
203 led_pins_orangepi: led_pins@0 { 196 led_pins_orangepi: led_pins@0 {
204 allwinner,pins = "PH24", "PH25"; 197 pins = "PH24", "PH25";
205 allwinner,function = "gpio_out"; 198 function = "gpio_out";
206 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
207 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
208 }; 199 };
209 200
210 usb1_vbus_pin_bananapro: usb1_vbus_pin@0 { 201 usb1_vbus_pin_bananapro: usb1_vbus_pin@0 {
211 allwinner,pins = "PH26"; 202 pins = "PH26";
212 allwinner,function = "gpio_out"; 203 function = "gpio_out";
213 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
214 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
215 }; 204 };
216}; 205};
217 206
diff --git a/arch/arm/boot/dts/sun7i-a20-orangepi.dts b/arch/arm/boot/dts/sun7i-a20-orangepi.dts
index 71125bf64575..3de980c8f8ff 100644
--- a/arch/arm/boot/dts/sun7i-a20-orangepi.dts
+++ b/arch/arm/boot/dts/sun7i-a20-orangepi.dts
@@ -147,45 +147,35 @@
147 147
148&pio { 148&pio {
149 usb0_id_detect_pin: usb0_id_detect_pin@0 { 149 usb0_id_detect_pin: usb0_id_detect_pin@0 {
150 allwinner,pins = "PH4"; 150 pins = "PH4";
151 allwinner,function = "gpio_in"; 151 function = "gpio_in";
152 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 152 bias-pull-up;
153 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
154 }; 153 };
155 154
156 mmc0_cd_pin_orangepi: mmc0_cd_pin@0 { 155 mmc0_cd_pin_orangepi: mmc0_cd_pin@0 {
157 allwinner,pins = "PH10"; 156 pins = "PH10";
158 allwinner,function = "gpio_in"; 157 function = "gpio_in";
159 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 158 bias-pull-up;
160 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
161 }; 159 };
162 160
163 usb2_vbus_pin_bananapro: usb2_vbus_pin@0 { 161 usb2_vbus_pin_bananapro: usb2_vbus_pin@0 {
164 allwinner,pins = "PH22"; 162 pins = "PH22";
165 allwinner,function = "gpio_out"; 163 function = "gpio_out";
166 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
167 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
168 }; 164 };
169 165
170 gmac_power_pin_orangepi: gmac_power_pin@0 { 166 gmac_power_pin_orangepi: gmac_power_pin@0 {
171 allwinner,pins = "PH23"; 167 pins = "PH23";
172 allwinner,function = "gpio_out"; 168 function = "gpio_out";
173 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
174 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
175 }; 169 };
176 170
177 led_pins_orangepi: led_pins@0 { 171 led_pins_orangepi: led_pins@0 {
178 allwinner,pins = "PH24"; 172 pins = "PH24";
179 allwinner,function = "gpio_out"; 173 function = "gpio_out";
180 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
181 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
182 }; 174 };
183 175
184 usb1_vbus_pin_bananapro: usb1_vbus_pin@0 { 176 usb1_vbus_pin_bananapro: usb1_vbus_pin@0 {
185 allwinner,pins = "PH26"; 177 pins = "PH26";
186 allwinner,function = "gpio_out"; 178 function = "gpio_out";
187 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
188 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
189 }; 179 };
190}; 180};
191 181
diff --git a/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
index ddac7328b852..f47a5c46bc20 100644
--- a/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
+++ b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
@@ -152,31 +152,24 @@
152 152
153&pio { 153&pio {
154 ahci_pwr_pin_pcduino3_nano: ahci_pwr_pin@0 { 154 ahci_pwr_pin_pcduino3_nano: ahci_pwr_pin@0 {
155 allwinner,pins = "PH2"; 155 pins = "PH2";
156 allwinner,function = "gpio_out"; 156 function = "gpio_out";
157 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
158 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
159 }; 157 };
160 158
161 led_pins_pcduino3_nano: led_pins@0 { 159 led_pins_pcduino3_nano: led_pins@0 {
162 allwinner,pins = "PH16", "PH15"; 160 pins = "PH16", "PH15";
163 allwinner,function = "gpio_out"; 161 function = "gpio_out";
164 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
165 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
166 }; 162 };
167 163
168 usb0_id_detect_pin: usb0_id_detect_pin@0 { 164 usb0_id_detect_pin: usb0_id_detect_pin@0 {
169 allwinner,pins = "PH4"; 165 pins = "PH4";
170 allwinner,function = "gpio_in"; 166 function = "gpio_in";
171 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 167 bias-pull-up;
172 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
173 }; 168 };
174 169
175 usb1_vbus_pin_pcduino3_nano: usb1_vbus_pin@0 { 170 usb1_vbus_pin_pcduino3_nano: usb1_vbus_pin@0 {
176 allwinner,pins = "PD2"; 171 pins = "PD2";
177 allwinner,function = "gpio_out"; 172 function = "gpio_out";
178 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
179 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
180 }; 173 };
181}; 174};
182 175
diff --git a/arch/arm/boot/dts/sun7i-a20-pcduino3.dts b/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
index 1a8b39be1d61..4599f98a3aee 100644
--- a/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
+++ b/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
@@ -108,7 +108,7 @@
108}; 108};
109 109
110&ahci_pwr_pin_a { 110&ahci_pwr_pin_a {
111 allwinner,pins = "PH2"; 111 pins = "PH2";
112}; 112};
113 113
114&codec { 114&codec {
@@ -183,24 +183,19 @@
183 183
184&pio { 184&pio {
185 led_pins_pcduino3: led_pins@0 { 185 led_pins_pcduino3: led_pins@0 {
186 allwinner,pins = "PH15", "PH16"; 186 pins = "PH15", "PH16";
187 allwinner,function = "gpio_out"; 187 function = "gpio_out";
188 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
189 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
190 }; 188 };
191 189
192 key_pins_pcduino3: key_pins@0 { 190 key_pins_pcduino3: key_pins@0 {
193 allwinner,pins = "PH17", "PH18", "PH19"; 191 pins = "PH17", "PH18", "PH19";
194 allwinner,function = "gpio_in"; 192 function = "gpio_in";
195 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
196 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
197 }; 193 };
198 194
199 usb0_id_detect_pin: usb0_id_detect_pin@0 { 195 usb0_id_detect_pin: usb0_id_detect_pin@0 {
200 allwinner,pins = "PH4"; 196 pins = "PH4";
201 allwinner,function = "gpio_in"; 197 function = "gpio_in";
202 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 198 bias-pull-up;
203 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
204 }; 199 };
205}; 200};
206 201
diff --git a/arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts b/arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts
index 2f6b21adddd9..e19f17177755 100644
--- a/arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts
+++ b/arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts
@@ -173,31 +173,24 @@
173 173
174&pio { 174&pio {
175 bl_enable_pin: bl_enable_pin@0 { 175 bl_enable_pin: bl_enable_pin@0 {
176 allwinner,pins = "PH7"; 176 pins = "PH7";
177 allwinner,function = "gpio_out"; 177 function = "gpio_out";
178 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
179 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
180 }; 178 };
181 179
182 codec_pa_pin: codec_pa_pin@0 { 180 codec_pa_pin: codec_pa_pin@0 {
183 allwinner,pins = "PH15"; 181 pins = "PH15";
184 allwinner,function = "gpio_out"; 182 function = "gpio_out";
185 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
186 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
187 }; 183 };
188 184
189 ts_reset_pin: ts_reset_pin@0 { 185 ts_reset_pin: ts_reset_pin@0 {
190 allwinner,pins = "PB13"; 186 pins = "PB13";
191 allwinner,function = "gpio_out"; 187 function = "gpio_out";
192 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
193 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
194 }; 188 };
195 189
196 usb0_id_detect_pin: usb0_id_detect_pin@0 { 190 usb0_id_detect_pin: usb0_id_detect_pin@0 {
197 allwinner,pins = "PH4"; 191 pins = "PH4";
198 allwinner,function = "gpio_in"; 192 function = "gpio_in";
199 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 193 bias-pull-up;
200 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
201 }; 194 };
202}; 195};
203 196
diff --git a/arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts b/arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts
index dc31d476ef81..c3078d4f1093 100644
--- a/arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts
+++ b/arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts
@@ -160,17 +160,14 @@
160 160
161&pio { 161&pio {
162 vmmc3_pin_ap6xxx_wl_regon: vmmc3_pin@0 { 162 vmmc3_pin_ap6xxx_wl_regon: vmmc3_pin@0 {
163 allwinner,pins = "PH9"; 163 pins = "PH9";
164 allwinner,function = "gpio_out"; 164 function = "gpio_out";
165 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
166 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
167 }; 165 };
168 166
169 usb0_id_detect_pin: usb0_id_detect_pin@0 { 167 usb0_id_detect_pin: usb0_id_detect_pin@0 {
170 allwinner,pins = "PH4"; 168 pins = "PH4";
171 allwinner,function = "gpio_in"; 169 function = "gpio_in";
172 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 170 bias-pull-up;
173 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
174 }; 171 };
175}; 172};
176 173
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
index f7db067b0de0..2db97fc820dd 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -871,6 +871,7 @@
871 status = "disabled"; 871 status = "disabled";
872 #address-cells = <1>; 872 #address-cells = <1>;
873 #size-cells = <0>; 873 #size-cells = <0>;
874 num-cs = <4>;
874 }; 875 };
875 876
876 spi1: spi@01c06000 { 877 spi1: spi@01c06000 {
@@ -885,6 +886,7 @@
885 status = "disabled"; 886 status = "disabled";
886 #address-cells = <1>; 887 #address-cells = <1>;
887 #size-cells = <0>; 888 #size-cells = <0>;
889 num-cs = <1>;
888 }; 890 };
889 891
890 emac: ethernet@01c0b000 { 892 emac: ethernet@01c0b000 {
@@ -1037,6 +1039,7 @@
1037 status = "disabled"; 1039 status = "disabled";
1038 #address-cells = <1>; 1040 #address-cells = <1>;
1039 #size-cells = <0>; 1041 #size-cells = <0>;
1042 num-cs = <1>;
1040 }; 1043 };
1041 1044
1042 ahci: sata@01c18000 { 1045 ahci: sata@01c18000 {
@@ -1079,6 +1082,7 @@
1079 status = "disabled"; 1082 status = "disabled";
1080 #address-cells = <1>; 1083 #address-cells = <1>;
1081 #size-cells = <0>; 1084 #size-cells = <0>;
1085 num-cs = <1>;
1082 }; 1086 };
1083 1087
1084 pio: pinctrl@01c20800 { 1088 pio: pinctrl@01c20800 {
@@ -1093,302 +1097,231 @@
1093 #gpio-cells = <3>; 1097 #gpio-cells = <3>;
1094 1098
1095 clk_out_a_pins_a: clk_out_a@0 { 1099 clk_out_a_pins_a: clk_out_a@0 {
1096 allwinner,pins = "PI12"; 1100 pins = "PI12";
1097 allwinner,function = "clk_out_a"; 1101 function = "clk_out_a";
1098 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1099 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1100 }; 1102 };
1101 1103
1102 clk_out_b_pins_a: clk_out_b@0 { 1104 clk_out_b_pins_a: clk_out_b@0 {
1103 allwinner,pins = "PI13"; 1105 pins = "PI13";
1104 allwinner,function = "clk_out_b"; 1106 function = "clk_out_b";
1105 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1106 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1107 }; 1107 };
1108 1108
1109 emac_pins_a: emac0@0 { 1109 emac_pins_a: emac0@0 {
1110 allwinner,pins = "PA0", "PA1", "PA2", 1110 pins = "PA0", "PA1", "PA2",
1111 "PA3", "PA4", "PA5", "PA6", 1111 "PA3", "PA4", "PA5", "PA6",
1112 "PA7", "PA8", "PA9", "PA10", 1112 "PA7", "PA8", "PA9", "PA10",
1113 "PA11", "PA12", "PA13", "PA14", 1113 "PA11", "PA12", "PA13", "PA14",
1114 "PA15", "PA16"; 1114 "PA15", "PA16";
1115 allwinner,function = "emac"; 1115 function = "emac";
1116 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1117 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1118 }; 1116 };
1119 1117
1120 gmac_pins_mii_a: gmac_mii@0 { 1118 gmac_pins_mii_a: gmac_mii@0 {
1121 allwinner,pins = "PA0", "PA1", "PA2", 1119 pins = "PA0", "PA1", "PA2",
1122 "PA3", "PA4", "PA5", "PA6", 1120 "PA3", "PA4", "PA5", "PA6",
1123 "PA7", "PA8", "PA9", "PA10", 1121 "PA7", "PA8", "PA9", "PA10",
1124 "PA11", "PA12", "PA13", "PA14", 1122 "PA11", "PA12", "PA13", "PA14",
1125 "PA15", "PA16"; 1123 "PA15", "PA16";
1126 allwinner,function = "gmac"; 1124 function = "gmac";
1127 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1128 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1129 }; 1125 };
1130 1126
1131 gmac_pins_rgmii_a: gmac_rgmii@0 { 1127 gmac_pins_rgmii_a: gmac_rgmii@0 {
1132 allwinner,pins = "PA0", "PA1", "PA2", 1128 pins = "PA0", "PA1", "PA2",
1133 "PA3", "PA4", "PA5", "PA6", 1129 "PA3", "PA4", "PA5", "PA6",
1134 "PA7", "PA8", "PA10", 1130 "PA7", "PA8", "PA10",
1135 "PA11", "PA12", "PA13", 1131 "PA11", "PA12", "PA13",
1136 "PA15", "PA16"; 1132 "PA15", "PA16";
1137 allwinner,function = "gmac"; 1133 function = "gmac";
1138 /* 1134 /*
1139 * data lines in RGMII mode use DDR mode 1135 * data lines in RGMII mode use DDR mode
1140 * and need a higher signal drive strength 1136 * and need a higher signal drive strength
1141 */ 1137 */
1142 allwinner,drive = <SUN4I_PINCTRL_40_MA>; 1138 drive-strength = <40>;
1143 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1144 }; 1139 };
1145 1140
1146 i2c0_pins_a: i2c0@0 { 1141 i2c0_pins_a: i2c0@0 {
1147 allwinner,pins = "PB0", "PB1"; 1142 pins = "PB0", "PB1";
1148 allwinner,function = "i2c0"; 1143 function = "i2c0";
1149 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1150 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1151 }; 1144 };
1152 1145
1153 i2c1_pins_a: i2c1@0 { 1146 i2c1_pins_a: i2c1@0 {
1154 allwinner,pins = "PB18", "PB19"; 1147 pins = "PB18", "PB19";
1155 allwinner,function = "i2c1"; 1148 function = "i2c1";
1156 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1157 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1158 }; 1149 };
1159 1150
1160 i2c2_pins_a: i2c2@0 { 1151 i2c2_pins_a: i2c2@0 {
1161 allwinner,pins = "PB20", "PB21"; 1152 pins = "PB20", "PB21";
1162 allwinner,function = "i2c2"; 1153 function = "i2c2";
1163 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1164 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1165 }; 1154 };
1166 1155
1167 i2c3_pins_a: i2c3@0 { 1156 i2c3_pins_a: i2c3@0 {
1168 allwinner,pins = "PI0", "PI1"; 1157 pins = "PI0", "PI1";
1169 allwinner,function = "i2c3"; 1158 function = "i2c3";
1170 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1171 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1172 }; 1159 };
1173 1160
1174 ir0_rx_pins_a: ir0@0 { 1161 ir0_rx_pins_a: ir0@0 {
1175 allwinner,pins = "PB4"; 1162 pins = "PB4";
1176 allwinner,function = "ir0"; 1163 function = "ir0";
1177 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1178 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1179 }; 1164 };
1180 1165
1181 ir0_tx_pins_a: ir0@1 { 1166 ir0_tx_pins_a: ir0@1 {
1182 allwinner,pins = "PB3"; 1167 pins = "PB3";
1183 allwinner,function = "ir0"; 1168 function = "ir0";
1184 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1185 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1186 }; 1169 };
1187 1170
1188 ir1_rx_pins_a: ir1@0 { 1171 ir1_rx_pins_a: ir1@0 {
1189 allwinner,pins = "PB23"; 1172 pins = "PB23";
1190 allwinner,function = "ir1"; 1173 function = "ir1";
1191 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1192 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1193 }; 1174 };
1194 1175
1195 ir1_tx_pins_a: ir1@1 { 1176 ir1_tx_pins_a: ir1@1 {
1196 allwinner,pins = "PB22"; 1177 pins = "PB22";
1197 allwinner,function = "ir1"; 1178 function = "ir1";
1198 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1199 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1200 }; 1179 };
1201 1180
1202 mmc0_pins_a: mmc0@0 { 1181 mmc0_pins_a: mmc0@0 {
1203 allwinner,pins = "PF0", "PF1", "PF2", 1182 pins = "PF0", "PF1", "PF2",
1204 "PF3", "PF4", "PF5"; 1183 "PF3", "PF4", "PF5";
1205 allwinner,function = "mmc0"; 1184 function = "mmc0";
1206 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 1185 drive-strength = <30>;
1207 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1186 bias-pull-up;
1208 }; 1187 };
1209 1188
1210 mmc0_cd_pin_reference_design: mmc0_cd_pin@0 { 1189 mmc0_cd_pin_reference_design: mmc0_cd_pin@0 {
1211 allwinner,pins = "PH1"; 1190 pins = "PH1";
1212 allwinner,function = "gpio_in"; 1191 function = "gpio_in";
1213 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1192 bias-pull-up;
1214 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
1215 }; 1193 };
1216 1194
1217 mmc2_pins_a: mmc2@0 { 1195 mmc2_pins_a: mmc2@0 {
1218 allwinner,pins = "PC6", "PC7", "PC8", 1196 pins = "PC6", "PC7", "PC8",
1219 "PC9", "PC10", "PC11"; 1197 "PC9", "PC10", "PC11";
1220 allwinner,function = "mmc2"; 1198 function = "mmc2";
1221 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 1199 drive-strength = <30>;
1222 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 1200 bias-pull-up;
1223 }; 1201 };
1224 1202
1225 mmc3_pins_a: mmc3@0 { 1203 mmc3_pins_a: mmc3@0 {
1226 allwinner,pins = "PI4", "PI5", "PI6", 1204 pins = "PI4", "PI5", "PI6",
1227 "PI7", "PI8", "PI9"; 1205 "PI7", "PI8", "PI9";
1228 allwinner,function = "mmc3"; 1206 function = "mmc3";
1229 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 1207 drive-strength = <30>;
1230 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1208 bias-pull-up;
1231 }; 1209 };
1232 1210
1233 ps20_pins_a: ps20@0 { 1211 ps20_pins_a: ps20@0 {
1234 allwinner,pins = "PI20", "PI21"; 1212 pins = "PI20", "PI21";
1235 allwinner,function = "ps2"; 1213 function = "ps2";
1236 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1237 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1238 }; 1214 };
1239 1215
1240 ps21_pins_a: ps21@0 { 1216 ps21_pins_a: ps21@0 {
1241 allwinner,pins = "PH12", "PH13"; 1217 pins = "PH12", "PH13";
1242 allwinner,function = "ps2"; 1218 function = "ps2";
1243 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1244 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1245 }; 1219 };
1246 1220
1247 pwm0_pins_a: pwm0@0 { 1221 pwm0_pins_a: pwm0@0 {
1248 allwinner,pins = "PB2"; 1222 pins = "PB2";
1249 allwinner,function = "pwm"; 1223 function = "pwm";
1250 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1251 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1252 }; 1224 };
1253 1225
1254 pwm1_pins_a: pwm1@0 { 1226 pwm1_pins_a: pwm1@0 {
1255 allwinner,pins = "PI3"; 1227 pins = "PI3";
1256 allwinner,function = "pwm"; 1228 function = "pwm";
1257 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1258 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1259 }; 1229 };
1260 1230
1261 spdif_tx_pins_a: spdif@0 { 1231 spdif_tx_pins_a: spdif@0 {
1262 allwinner,pins = "PB13"; 1232 pins = "PB13";
1263 allwinner,function = "spdif"; 1233 function = "spdif";
1264 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1234 bias-pull-up;
1265 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
1266 }; 1235 };
1267 1236
1268 spi0_pins_a: spi0@0 { 1237 spi0_pins_a: spi0@0 {
1269 allwinner,pins = "PI11", "PI12", "PI13"; 1238 pins = "PI11", "PI12", "PI13";
1270 allwinner,function = "spi0"; 1239 function = "spi0";
1271 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1272 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1273 }; 1240 };
1274 1241
1275 spi0_cs0_pins_a: spi0_cs0@0 { 1242 spi0_cs0_pins_a: spi0_cs0@0 {
1276 allwinner,pins = "PI10"; 1243 pins = "PI10";
1277 allwinner,function = "spi0"; 1244 function = "spi0";
1278 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1279 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1280 }; 1245 };
1281 1246
1282 spi0_cs1_pins_a: spi0_cs1@0 { 1247 spi0_cs1_pins_a: spi0_cs1@0 {
1283 allwinner,pins = "PI14"; 1248 pins = "PI14";
1284 allwinner,function = "spi0"; 1249 function = "spi0";
1285 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1286 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1287 }; 1250 };
1288 1251
1289 spi1_pins_a: spi1@0 { 1252 spi1_pins_a: spi1@0 {
1290 allwinner,pins = "PI17", "PI18", "PI19"; 1253 pins = "PI17", "PI18", "PI19";
1291 allwinner,function = "spi1"; 1254 function = "spi1";
1292 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1293 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1294 }; 1255 };
1295 1256
1296 spi1_cs0_pins_a: spi1_cs0@0 { 1257 spi1_cs0_pins_a: spi1_cs0@0 {
1297 allwinner,pins = "PI16"; 1258 pins = "PI16";
1298 allwinner,function = "spi1"; 1259 function = "spi1";
1299 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1300 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1301 }; 1260 };
1302 1261
1303 spi2_pins_a: spi2@0 { 1262 spi2_pins_a: spi2@0 {
1304 allwinner,pins = "PC20", "PC21", "PC22"; 1263 pins = "PC20", "PC21", "PC22";
1305 allwinner,function = "spi2"; 1264 function = "spi2";
1306 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1307 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1308 }; 1265 };
1309 1266
1310 spi2_pins_b: spi2@1 { 1267 spi2_pins_b: spi2@1 {
1311 allwinner,pins = "PB15", "PB16", "PB17"; 1268 pins = "PB15", "PB16", "PB17";
1312 allwinner,function = "spi2"; 1269 function = "spi2";
1313 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1314 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1315 }; 1270 };
1316 1271
1317 spi2_cs0_pins_a: spi2_cs0@0 { 1272 spi2_cs0_pins_a: spi2_cs0@0 {
1318 allwinner,pins = "PC19"; 1273 pins = "PC19";
1319 allwinner,function = "spi2"; 1274 function = "spi2";
1320 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1321 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1322 }; 1275 };
1323 1276
1324 spi2_cs0_pins_b: spi2_cs0@1 { 1277 spi2_cs0_pins_b: spi2_cs0@1 {
1325 allwinner,pins = "PB14"; 1278 pins = "PB14";
1326 allwinner,function = "spi2"; 1279 function = "spi2";
1327 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1328 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1329 }; 1280 };
1330 1281
1331 uart0_pins_a: uart0@0 { 1282 uart0_pins_a: uart0@0 {
1332 allwinner,pins = "PB22", "PB23"; 1283 pins = "PB22", "PB23";
1333 allwinner,function = "uart0"; 1284 function = "uart0";
1334 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1335 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1336 }; 1285 };
1337 1286
1338 uart2_pins_a: uart2@0 { 1287 uart2_pins_a: uart2@0 {
1339 allwinner,pins = "PI16", "PI17", "PI18", "PI19"; 1288 pins = "PI16", "PI17", "PI18", "PI19";
1340 allwinner,function = "uart2"; 1289 function = "uart2";
1341 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1342 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1343 }; 1290 };
1344 1291
1345 uart3_pins_a: uart3@0 { 1292 uart3_pins_a: uart3@0 {
1346 allwinner,pins = "PG6", "PG7", "PG8", "PG9"; 1293 pins = "PG6", "PG7", "PG8", "PG9";
1347 allwinner,function = "uart3"; 1294 function = "uart3";
1348 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1349 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1350 }; 1295 };
1351 1296
1352 uart3_pins_b: uart3@1 { 1297 uart3_pins_b: uart3@1 {
1353 allwinner,pins = "PH0", "PH1"; 1298 pins = "PH0", "PH1";
1354 allwinner,function = "uart3"; 1299 function = "uart3";
1355 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1356 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1357 }; 1300 };
1358 1301
1359 uart4_pins_a: uart4@0 { 1302 uart4_pins_a: uart4@0 {
1360 allwinner,pins = "PG10", "PG11"; 1303 pins = "PG10", "PG11";
1361 allwinner,function = "uart4"; 1304 function = "uart4";
1362 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1363 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1364 }; 1305 };
1365 1306
1366 uart4_pins_b: uart4@1 { 1307 uart4_pins_b: uart4@1 {
1367 allwinner,pins = "PH4", "PH5"; 1308 pins = "PH4", "PH5";
1368 allwinner,function = "uart4"; 1309 function = "uart4";
1369 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1370 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1371 }; 1310 };
1372 1311
1373 uart5_pins_a: uart5@0 { 1312 uart5_pins_a: uart5@0 {
1374 allwinner,pins = "PI10", "PI11"; 1313 pins = "PI10", "PI11";
1375 allwinner,function = "uart5"; 1314 function = "uart5";
1376 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1377 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1378 }; 1315 };
1379 1316
1380 uart6_pins_a: uart6@0 { 1317 uart6_pins_a: uart6@0 {
1381 allwinner,pins = "PI12", "PI13"; 1318 pins = "PI12", "PI13";
1382 allwinner,function = "uart6"; 1319 function = "uart6";
1383 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1384 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1385 }; 1320 };
1386 1321
1387 uart7_pins_a: uart7@0 { 1322 uart7_pins_a: uart7@0 {
1388 allwinner,pins = "PI20", "PI21"; 1323 pins = "PI20", "PI21";
1389 allwinner,function = "uart7"; 1324 function = "uart7";
1390 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1391 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1392 }; 1325 };
1393 }; 1326 };
1394 1327
@@ -1686,9 +1619,9 @@
1686 }; 1619 };
1687 1620
1688 gic: interrupt-controller@01c81000 { 1621 gic: interrupt-controller@01c81000 {
1689 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; 1622 compatible = "arm,gic-400", "arm,cortex-a7-gic", "arm,cortex-a15-gic";
1690 reg = <0x01c81000 0x1000>, 1623 reg = <0x01c81000 0x1000>,
1691 <0x01c82000 0x1000>, 1624 <0x01c82000 0x2000>,
1692 <0x01c84000 0x2000>, 1625 <0x01c84000 0x2000>,
1693 <0x01c86000 0x2000>; 1626 <0x01c86000 0x2000>;
1694 interrupt-controller; 1627 interrupt-controller;
diff --git a/arch/arm/boot/dts/sun8i-a23-a33.dtsi b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
index e4991a78ad73..a952cc0703cc 100644
--- a/arch/arm/boot/dts/sun8i-a23-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
@@ -84,7 +84,7 @@
84 #address-cells = <1>; 84 #address-cells = <1>;
85 #size-cells = <0>; 85 #size-cells = <0>;
86 86
87 cpu@0 { 87 cpu0: cpu@0 {
88 compatible = "arm,cortex-a7"; 88 compatible = "arm,cortex-a7";
89 device_type = "cpu"; 89 device_type = "cpu";
90 reg = <0>; 90 reg = <0>;
@@ -106,14 +106,16 @@
106 #clock-cells = <0>; 106 #clock-cells = <0>;
107 compatible = "fixed-clock"; 107 compatible = "fixed-clock";
108 clock-frequency = <24000000>; 108 clock-frequency = <24000000>;
109 clock-accuracy = <50000>;
109 clock-output-names = "osc24M"; 110 clock-output-names = "osc24M";
110 }; 111 };
111 112
112 osc32k: osc32k_clk { 113 ext_osc32k: ext_osc32k_clk {
113 #clock-cells = <0>; 114 #clock-cells = <0>;
114 compatible = "fixed-clock"; 115 compatible = "fixed-clock";
115 clock-frequency = <32768>; 116 clock-frequency = <32768>;
116 clock-output-names = "osc32k"; 117 clock-accuracy = <50000>;
118 clock-output-names = "ext-osc32k";
117 }; 119 };
118 }; 120 };
119 121
@@ -256,7 +258,7 @@
256 258
257 ccu: clock@01c20000 { 259 ccu: clock@01c20000 {
258 reg = <0x01c20000 0x400>; 260 reg = <0x01c20000 0x400>;
259 clocks = <&osc24M>, <&osc32k>; 261 clocks = <&osc24M>, <&rtc 0>;
260 clock-names = "hosc", "losc"; 262 clock-names = "hosc", "losc";
261 #clock-cells = <1>; 263 #clock-cells = <1>;
262 #reset-cells = <1>; 264 #reset-cells = <1>;
@@ -266,7 +268,7 @@
266 /* compatible gets set in SoC specific dtsi file */ 268 /* compatible gets set in SoC specific dtsi file */
267 reg = <0x01c20800 0x400>; 269 reg = <0x01c20800 0x400>;
268 /* interrupts get set in SoC specific dtsi file */ 270 /* interrupts get set in SoC specific dtsi file */
269 clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>; 271 clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&rtc 0>;
270 clock-names = "apb", "hosc", "losc"; 272 clock-names = "apb", "hosc", "losc";
271 gpio-controller; 273 gpio-controller;
272 interrupt-controller; 274 interrupt-controller;
@@ -274,88 +276,72 @@
274 #gpio-cells = <3>; 276 #gpio-cells = <3>;
275 277
276 uart0_pins_a: uart0@0 { 278 uart0_pins_a: uart0@0 {
277 allwinner,pins = "PF2", "PF4"; 279 pins = "PF2", "PF4";
278 allwinner,function = "uart0"; 280 function = "uart0";
279 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
280 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
281 }; 281 };
282 282
283 uart1_pins_a: uart1@0 { 283 uart1_pins_a: uart1@0 {
284 allwinner,pins = "PG6", "PG7"; 284 pins = "PG6", "PG7";
285 allwinner,function = "uart1"; 285 function = "uart1";
286 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
287 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
288 }; 286 };
289 287
290 uart1_pins_cts_rts_a: uart1-cts-rts@0 { 288 uart1_pins_cts_rts_a: uart1-cts-rts@0 {
291 allwinner,pins = "PG8", "PG9"; 289 pins = "PG8", "PG9";
292 allwinner,function = "uart1"; 290 function = "uart1";
293 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
294 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
295 }; 291 };
296 292
297 mmc0_pins_a: mmc0@0 { 293 mmc0_pins_a: mmc0@0 {
298 allwinner,pins = "PF0", "PF1", "PF2", 294 pins = "PF0", "PF1", "PF2",
299 "PF3", "PF4", "PF5"; 295 "PF3", "PF4", "PF5";
300 allwinner,function = "mmc0"; 296 function = "mmc0";
301 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 297 drive-strength = <30>;
302 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 298 bias-pull-up;
303 }; 299 };
304 300
305 mmc1_pins_a: mmc1@0 { 301 mmc1_pins_a: mmc1@0 {
306 allwinner,pins = "PG0", "PG1", "PG2", 302 pins = "PG0", "PG1", "PG2",
307 "PG3", "PG4", "PG5"; 303 "PG3", "PG4", "PG5";
308 allwinner,function = "mmc1"; 304 function = "mmc1";
309 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 305 drive-strength = <30>;
310 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 306 bias-pull-up;
311 }; 307 };
312 308
313 mmc2_8bit_pins: mmc2_8bit { 309 mmc2_8bit_pins: mmc2_8bit {
314 allwinner,pins = "PC5", "PC6", "PC8", 310 pins = "PC5", "PC6", "PC8",
315 "PC9", "PC10", "PC11", 311 "PC9", "PC10", "PC11",
316 "PC12", "PC13", "PC14", 312 "PC12", "PC13", "PC14",
317 "PC15", "PC16"; 313 "PC15", "PC16";
318 allwinner,function = "mmc2"; 314 function = "mmc2";
319 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 315 drive-strength = <30>;
320 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 316 bias-pull-up;
321 }; 317 };
322 318
323 pwm0_pins: pwm0 { 319 pwm0_pins: pwm0 {
324 allwinner,pins = "PH0"; 320 pins = "PH0";
325 allwinner,function = "pwm0"; 321 function = "pwm0";
326 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
327 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
328 }; 322 };
329 323
330 i2c0_pins_a: i2c0@0 { 324 i2c0_pins_a: i2c0@0 {
331 allwinner,pins = "PH2", "PH3"; 325 pins = "PH2", "PH3";
332 allwinner,function = "i2c0"; 326 function = "i2c0";
333 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
334 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
335 }; 327 };
336 328
337 i2c1_pins_a: i2c1@0 { 329 i2c1_pins_a: i2c1@0 {
338 allwinner,pins = "PH4", "PH5"; 330 pins = "PH4", "PH5";
339 allwinner,function = "i2c1"; 331 function = "i2c1";
340 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
341 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
342 }; 332 };
343 333
344 i2c2_pins_a: i2c2@0 { 334 i2c2_pins_a: i2c2@0 {
345 allwinner,pins = "PE12", "PE13"; 335 pins = "PE12", "PE13";
346 allwinner,function = "i2c2"; 336 function = "i2c2";
347 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
348 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
349 }; 337 };
350 338
351 lcd_rgb666_pins: lcd-rgb666@0 { 339 lcd_rgb666_pins: lcd-rgb666@0 {
352 allwinner,pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", 340 pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
353 "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", 341 "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
354 "PD18", "PD19", "PD20", "PD21", "PD22", "PD23", 342 "PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
355 "PD24", "PD25", "PD26", "PD27"; 343 "PD24", "PD25", "PD26", "PD27";
356 allwinner,function = "lcd0"; 344 function = "lcd0";
357 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
358 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
359 }; 345 };
360 }; 346 };
361 347
@@ -486,10 +472,36 @@
486 #size-cells = <0>; 472 #size-cells = <0>;
487 }; 473 };
488 474
475 mali: gpu@1c40000 {
476 compatible = "allwinner,sun8i-a23-mali",
477 "allwinner,sun7i-a20-mali", "arm,mali-400";
478 reg = <0x01c40000 0x10000>;
479 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
480 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
481 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
482 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
483 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
484 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
485 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
486 interrupt-names = "gp",
487 "gpmmu",
488 "pp0",
489 "ppmmu0",
490 "pp1",
491 "ppmmu1",
492 "pmu";
493 clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
494 clock-names = "bus", "core";
495 resets = <&ccu RST_BUS_GPU>;
496
497 assigned-clocks = <&ccu CLK_GPU>;
498 assigned-clock-rates = <408000000>;
499 };
500
489 gic: interrupt-controller@01c81000 { 501 gic: interrupt-controller@01c81000 {
490 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; 502 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
491 reg = <0x01c81000 0x1000>, 503 reg = <0x01c81000 0x1000>,
492 <0x01c82000 0x1000>, 504 <0x01c82000 0x2000>,
493 <0x01c84000 0x2000>, 505 <0x01c84000 0x2000>,
494 <0x01c86000 0x2000>; 506 <0x01c86000 0x2000>;
495 interrupt-controller; 507 interrupt-controller;
@@ -502,6 +514,9 @@
502 reg = <0x01f00000 0x54>; 514 reg = <0x01f00000 0x54>;
503 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 515 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
504 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 516 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
517 clock-output-names = "osc32k";
518 clocks = <&ext_osc32k>;
519 #clock-cells = <1>;
505 }; 520 };
506 521
507 nmi_intc: interrupt-controller@01f00c0c { 522 nmi_intc: interrupt-controller@01f00c0c {
@@ -554,6 +569,10 @@
554 compatible = "allwinner,sun6i-a31-clock-reset"; 569 compatible = "allwinner,sun6i-a31-clock-reset";
555 #reset-cells = <1>; 570 #reset-cells = <1>;
556 }; 571 };
572
573 codec_analog: codec-analog {
574 compatible = "allwinner,sun8i-a23-codec-analog";
575 };
557 }; 576 };
558 577
559 cpucfg@01f01c00 { 578 cpucfg@01f01c00 {
@@ -576,7 +595,7 @@
576 compatible = "allwinner,sun8i-a23-r-pinctrl"; 595 compatible = "allwinner,sun8i-a23-r-pinctrl";
577 reg = <0x01f02c00 0x400>; 596 reg = <0x01f02c00 0x400>;
578 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 597 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
579 clocks = <&apb0_gates 0>, <&osc24M>, <&osc32k>; 598 clocks = <&apb0_gates 0>, <&osc24M>, <&rtc 0>;
580 clock-names = "apb", "hosc", "losc"; 599 clock-names = "apb", "hosc", "losc";
581 resets = <&apb0_rst 0>; 600 resets = <&apb0_rst 0>;
582 gpio-controller; 601 gpio-controller;
@@ -587,17 +606,15 @@
587 #gpio-cells = <3>; 606 #gpio-cells = <3>;
588 607
589 r_rsb_pins: r_rsb { 608 r_rsb_pins: r_rsb {
590 allwinner,pins = "PL0", "PL1"; 609 pins = "PL0", "PL1";
591 allwinner,function = "s_rsb"; 610 function = "s_rsb";
592 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 611 drive-strength = <20>;
593 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 612 bias-pull-up;
594 }; 613 };
595 614
596 r_uart_pins_a: r_uart@0 { 615 r_uart_pins_a: r_uart@0 {
597 allwinner,pins = "PL2", "PL3"; 616 pins = "PL2", "PL3";
598 allwinner,function = "s_uart"; 617 function = "s_uart";
599 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
600 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
601 }; 618 };
602 }; 619 };
603 620
diff --git a/arch/arm/boot/dts/sun8i-a23-evb.dts b/arch/arm/boot/dts/sun8i-a23-evb.dts
index 610786e635fa..c21f5b1b255e 100644
--- a/arch/arm/boot/dts/sun8i-a23-evb.dts
+++ b/arch/arm/boot/dts/sun8i-a23-evb.dts
@@ -115,10 +115,9 @@
115 115
116&pio { 116&pio {
117 mmc0_cd_pin_evb: mmc0_cd_pin@0 { 117 mmc0_cd_pin_evb: mmc0_cd_pin@0 {
118 allwinner,pins = "PB4"; 118 pins = "PB4";
119 allwinner,function = "gpio_in"; 119 function = "gpio_in";
120 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 120 bias-pull-up;
121 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
122 }; 121 };
123}; 122};
124 123
diff --git a/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts
index 21bb291b9568..649e31339662 100644
--- a/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts
+++ b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts
@@ -86,15 +86,13 @@
86}; 86};
87 87
88&mmc1_pins_a { 88&mmc1_pins_a {
89 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 89 bias-pull-up;
90}; 90};
91 91
92&r_pio { 92&r_pio {
93 wifi_pwrseq_pin_mid2407: wifi_pwrseq_pin@0 { 93 wifi_pwrseq_pin_mid2407: wifi_pwrseq_pin@0 {
94 allwinner,pins = "PL6"; 94 pins = "PL6";
95 allwinner,function = "gpio_out"; 95 function = "gpio_out";
96 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
97 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
98 }; 96 };
99}; 97};
100 98
diff --git a/arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts
index 9955f85f9147..6b3bcae089f2 100644
--- a/arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts
+++ b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts
@@ -79,15 +79,13 @@
79}; 79};
80 80
81&mmc1_pins_a { 81&mmc1_pins_a {
82 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 82 bias-pull-up;
83}; 83};
84 84
85&r_pio { 85&r_pio {
86 wifi_pwrseq_pin_mid2809: wifi_pwrseq_pin@0 { 86 wifi_pwrseq_pin_mid2809: wifi_pwrseq_pin@0 {
87 allwinner,pins = "PL6"; 87 pins = "PL6";
88 allwinner,function = "gpio_out"; 88 function = "gpio_out";
89 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
90 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
91 }; 89 };
92}; 90};
93 91
diff --git a/arch/arm/boot/dts/sun8i-a23-q8-tablet.dts b/arch/arm/boot/dts/sun8i-a23-q8-tablet.dts
index 956320a6cc78..3ab5c0c09d93 100644
--- a/arch/arm/boot/dts/sun8i-a23-q8-tablet.dts
+++ b/arch/arm/boot/dts/sun8i-a23-q8-tablet.dts
@@ -48,3 +48,26 @@
48 model = "Q8 A23 Tablet"; 48 model = "Q8 A23 Tablet";
49 compatible = "allwinner,q8-a23", "allwinner,sun8i-a23"; 49 compatible = "allwinner,q8-a23", "allwinner,sun8i-a23";
50}; 50};
51
52&codec {
53 pinctrl-0 = <&codec_pa_pin>;
54 allwinner,pa-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
55 allwinner,audio-routing =
56 "Headphone", "HP",
57 "Headphone", "HPCOM",
58 "Speaker", "HP",
59 "MIC1", "Mic",
60 "MIC2", "Headset Mic",
61 "Mic", "MBIAS",
62 "Headset Mic", "HBIAS";
63 status = "okay";
64};
65
66&pio {
67 codec_pa_pin: codec_pa_pin@0 {
68 allwinner,pins = "PH9";
69 allwinner,function = "gpio_out";
70 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
71 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
72 };
73};
diff --git a/arch/arm/boot/dts/sun8i-a23.dtsi b/arch/arm/boot/dts/sun8i-a23.dtsi
index 54d045dab825..4d1f929780a8 100644
--- a/arch/arm/boot/dts/sun8i-a23.dtsi
+++ b/arch/arm/boot/dts/sun8i-a23.dtsi
@@ -48,6 +48,22 @@
48 memory { 48 memory {
49 reg = <0x40000000 0x40000000>; 49 reg = <0x40000000 0x40000000>;
50 }; 50 };
51
52 soc@01c00000 {
53 codec: codec@01c22c00 {
54 #sound-dai-cells = <0>;
55 compatible = "allwinner,sun8i-a23-codec";
56 reg = <0x01c22c00 0x400>;
57 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
58 clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
59 clock-names = "apb", "codec";
60 resets = <&ccu RST_BUS_CODEC>;
61 dmas = <&dma 15>, <&dma 15>;
62 dma-names = "rx", "tx";
63 allwinner,codec-analog-controls = <&codec_analog>;
64 status = "disabled";
65 };
66 };
51}; 67};
52 68
53&ccu { 69&ccu {
diff --git a/arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts b/arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts
index fb4665576dff..3e05959104f1 100644
--- a/arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts
+++ b/arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts
@@ -71,7 +71,7 @@
71}; 71};
72 72
73&mmc1_pins_a { 73&mmc1_pins_a {
74 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 74 bias-pull-up;
75}; 75};
76 76
77&mmc1 { 77&mmc1 {
@@ -89,10 +89,9 @@
89 89
90&r_pio { 90&r_pio {
91 led_pin_d978: led_pin_d978@0 { 91 led_pin_d978: led_pin_d978@0 {
92 allwinner,pins = "PL5"; 92 pins = "PL5";
93 allwinner,function = "gpio_out"; 93 function = "gpio_out";
94 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 94 drive-strength = <20>;
95 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
96 }; 95 };
97}; 96};
98 97
diff --git a/arch/arm/boot/dts/sun8i-a33-olinuxino.dts b/arch/arm/boot/dts/sun8i-a33-olinuxino.dts
index 9ea637e82b2d..be9a6b8d7a1e 100644
--- a/arch/arm/boot/dts/sun8i-a33-olinuxino.dts
+++ b/arch/arm/boot/dts/sun8i-a33-olinuxino.dts
@@ -92,24 +92,18 @@
92 92
93&pio { 93&pio {
94 led_pin_olinuxino: led_pins@0 { 94 led_pin_olinuxino: led_pins@0 {
95 allwinner,pins = "PB7"; 95 pins = "PB7";
96 allwinner,function = "gpio_out"; 96 function = "gpio_out";
97 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
98 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
99 }; 97 };
100 98
101 mmc0_cd_pin_olinuxino: mmc0_cd_pin@0 { 99 mmc0_cd_pin_olinuxino: mmc0_cd_pin@0 {
102 allwinner,pins = "PB4"; 100 pins = "PB4";
103 allwinner,function = "gpio_in"; 101 function = "gpio_in";
104 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
105 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
106 }; 102 };
107 103
108 usb0_id_detect_pin: usb0_id_detect_pin@0 { 104 usb0_id_detect_pin: usb0_id_detect_pin@0 {
109 allwinner,pins = "PB3"; 105 pins = "PB3";
110 allwinner,function = "gpio_in"; 106 function = "gpio_in";
111 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
112 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
113 }; 107 };
114}; 108};
115 109
@@ -126,7 +120,7 @@
126 }; 120 };
127}; 121};
128 122
129#include "axp22x.dtsi" 123#include "axp223.dtsi"
130 124
131&reg_aldo1 { 125&reg_aldo1 {
132 regulator-always-on; 126 regulator-always-on;
diff --git a/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts b/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts
index 71bb9418c5f9..03b89bdd55ba 100644
--- a/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts
+++ b/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts
@@ -61,6 +61,35 @@
61 chosen { 61 chosen {
62 stdout-path = "serial0:115200n8"; 62 stdout-path = "serial0:115200n8";
63 }; 63 };
64
65 panel {
66 compatible = "netron-dy,e231732";
67 #address-cells = <1>;
68 #size-cells = <0>;
69
70 port@0 {
71 reg = <0>;
72 #address-cells = <1>;
73 #size-cells = <0>;
74
75 panel_input: endpoint@0 {
76 reg = <0>;
77 remote-endpoint = <&tcon0_out_panel>;
78 };
79 };
80 };
81};
82
83&codec {
84 status = "okay";
85};
86
87&de {
88 status = "okay";
89};
90
91&dai {
92 status = "okay";
64}; 93};
65 94
66&ehci0 { 95&ehci0 {
@@ -115,9 +144,9 @@
115 144
116&mmc2_8bit_pins { 145&mmc2_8bit_pins {
117 /* Increase drive strength for DDR modes */ 146 /* Increase drive strength for DDR modes */
118 allwinner,drive = <SUN4I_PINCTRL_40_MA>; 147 drive-strength = <40>;
119 /* eMMC is missing pull-ups */ 148 /* eMMC is missing pull-ups */
120 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 149 bias-pull-up;
121}; 150};
122 151
123&ohci0 { 152&ohci0 {
@@ -126,10 +155,9 @@
126 155
127&pio { 156&pio {
128 mmc0_cd_pin_sina33: mmc0_cd_pin@0 { 157 mmc0_cd_pin_sina33: mmc0_cd_pin@0 {
129 allwinner,pins = "PB4"; 158 pins = "PB4";
130 allwinner,function = "gpio_in"; 159 function = "gpio_in";
131 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 160 bias-pull-up;
132 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
133 }; 161 };
134}; 162};
135 163
@@ -145,7 +173,7 @@
145 }; 173 };
146}; 174};
147 175
148#include "axp22x.dtsi" 176#include "axp223.dtsi"
149 177
150&reg_aldo1 { 178&reg_aldo1 {
151 regulator-always-on; 179 regulator-always-on;
@@ -207,6 +235,23 @@
207 regulator-name = "vcc-rtc"; 235 regulator-name = "vcc-rtc";
208}; 236};
209 237
238&sound {
239 status = "okay";
240};
241
242&tcon0 {
243 pinctrl-names = "default";
244 pinctrl-0 = <&lcd_rgb666_pins>;
245 status = "okay";
246};
247
248&tcon0_out {
249 tcon0_out_panel: endpoint@0 {
250 reg = <0>;
251 remote-endpoint = <&panel_input>;
252 };
253};
254
210&uart0 { 255&uart0 {
211 pinctrl-names = "default"; 256 pinctrl-names = "default";
212 pinctrl-0 = <&uart0_pins_b>; 257 pinctrl-0 = <&uart0_pins_b>;
diff --git a/arch/arm/boot/dts/sun8i-a33.dtsi b/arch/arm/boot/dts/sun8i-a33.dtsi
index fd1e1cddd4a8..18c174fef84f 100644
--- a/arch/arm/boot/dts/sun8i-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a33.dtsi
@@ -45,7 +45,42 @@
45#include "sun8i-a23-a33.dtsi" 45#include "sun8i-a23-a33.dtsi"
46 46
47/ { 47/ {
48 cpu0_opp_table: opp_table0 {
49 compatible = "operating-points-v2";
50 opp-shared;
51
52 opp@648000000 {
53 opp-hz = /bits/ 64 <648000000>;
54 opp-microvolt = <1040000>;
55 clock-latency-ns = <244144>; /* 8 32k periods */
56 };
57
58 opp@816000000 {
59 opp-hz = /bits/ 64 <816000000>;
60 opp-microvolt = <1100000>;
61 clock-latency-ns = <244144>; /* 8 32k periods */
62 };
63
64 opp@1008000000 {
65 opp-hz = /bits/ 64 <1008000000>;
66 opp-microvolt = <1200000>;
67 clock-latency-ns = <244144>; /* 8 32k periods */
68 };
69
70 opp@1200000000 {
71 opp-hz = /bits/ 64 <1200000000>;
72 opp-microvolt = <1320000>;
73 clock-latency-ns = <244144>; /* 8 32k periods */
74 };
75 };
76
48 cpus { 77 cpus {
78 cpu@0 {
79 clocks = <&ccu CLK_CPUX>;
80 clock-names = "cpu";
81 operating-points-v2 = <&cpu0_opp_table>;
82 };
83
49 cpu@2 { 84 cpu@2 {
50 compatible = "arm,cortex-a7"; 85 compatible = "arm,cortex-a7";
51 device_type = "cpu"; 86 device_type = "cpu";
@@ -69,6 +104,28 @@
69 reg = <0x40000000 0x80000000>; 104 reg = <0x40000000 0x80000000>;
70 }; 105 };
71 106
107 sound: sound {
108 compatible = "simple-audio-card";
109 simple-audio-card,name = "sun8i-a33-audio";
110 simple-audio-card,format = "i2s";
111 simple-audio-card,frame-master = <&link_codec>;
112 simple-audio-card,bitclock-master = <&link_codec>;
113 simple-audio-card,mclk-fs = <512>;
114 simple-audio-card,aux-devs = <&codec_analog>;
115 simple-audio-card,routing =
116 "Left DAC", "Digital Left DAC",
117 "Right DAC", "Digital Right DAC";
118 status = "disabled";
119
120 simple-audio-card,cpu {
121 sound-dai = <&dai>;
122 };
123
124 link_codec: simple-audio-card,codec {
125 sound-dai = <&codec>;
126 };
127 };
128
72 soc@01c00000 { 129 soc@01c00000 {
73 tcon0: lcd-controller@01c0c000 { 130 tcon0: lcd-controller@01c0c000 {
74 compatible = "allwinner,sun8i-a33-tcon"; 131 compatible = "allwinner,sun8i-a33-tcon";
@@ -116,6 +173,29 @@
116 reset-names = "ahb"; 173 reset-names = "ahb";
117 }; 174 };
118 175
176 dai: dai@01c22c00 {
177 #sound-dai-cells = <0>;
178 compatible = "allwinner,sun6i-a31-i2s";
179 reg = <0x01c22c00 0x200>;
180 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
181 clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
182 clock-names = "apb", "mod";
183 resets = <&ccu RST_BUS_CODEC>;
184 dmas = <&dma 15>, <&dma 15>;
185 dma-names = "rx", "tx";
186 status = "disabled";
187 };
188
189 codec: codec@01c22e00 {
190 #sound-dai-cells = <0>;
191 compatible = "allwinner,sun8i-a33-codec";
192 reg = <0x01c22e00 0x400>;
193 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
194 clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
195 clock-names = "bus", "mod";
196 status = "disabled";
197 };
198
119 fe0: display-frontend@01e00000 { 199 fe0: display-frontend@01e00000 {
120 compatible = "allwinner,sun8i-a33-display-frontend"; 200 compatible = "allwinner,sun8i-a33-display-frontend";
121 reg = <0x01e00000 0x20000>; 201 reg = <0x01e00000 0x20000>;
@@ -238,10 +318,8 @@
238 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 318 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
239 319
240 uart0_pins_b: uart0@1 { 320 uart0_pins_b: uart0@1 {
241 allwinner,pins = "PB0", "PB1"; 321 pins = "PB0", "PB1";
242 allwinner,function = "uart0"; 322 function = "uart0";
243 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
244 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
245 }; 323 };
246 324
247}; 325};
diff --git a/arch/arm/boot/dts/sun8i-a83t.dtsi b/arch/arm/boot/dts/sun8i-a83t.dtsi
index d3473f81b12f..a789a7caf217 100644
--- a/arch/arm/boot/dts/sun8i-a83t.dtsi
+++ b/arch/arm/boot/dts/sun8i-a83t.dtsi
@@ -167,25 +167,21 @@
167 #gpio-cells = <3>; 167 #gpio-cells = <3>;
168 168
169 mmc0_pins_a: mmc0@0 { 169 mmc0_pins_a: mmc0@0 {
170 allwinner,pins = "PF0", "PF1", "PF2", 170 pins = "PF0", "PF1", "PF2",
171 "PF3", "PF4", "PF5"; 171 "PF3", "PF4", "PF5";
172 allwinner,function = "mmc0"; 172 function = "mmc0";
173 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 173 drive-strength = <30>;
174 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 174 bias-pull-up;
175 }; 175 };
176 176
177 uart0_pins_a: uart0@0 { 177 uart0_pins_a: uart0@0 {
178 allwinner,pins = "PF2", "PF4"; 178 pins = "PF2", "PF4";
179 allwinner,function = "uart0"; 179 function = "uart0";
180 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
181 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
182 }; 180 };
183 181
184 uart0_pins_b: uart0@1 { 182 uart0_pins_b: uart0@1 {
185 allwinner,pins = "PB9", "PB10"; 183 pins = "PB9", "PB10";
186 allwinner,function = "uart0"; 184 function = "uart0";
187 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
188 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
189 }; 185 };
190 }; 186 };
191 187
@@ -217,7 +213,7 @@
217 gic: interrupt-controller@01c81000 { 213 gic: interrupt-controller@01c81000 {
218 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; 214 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
219 reg = <0x01c81000 0x1000>, 215 reg = <0x01c81000 0x1000>,
220 <0x01c82000 0x1000>, 216 <0x01c82000 0x2000>,
221 <0x01c84000 0x2000>, 217 <0x01c84000 0x2000>,
222 <0x01c86000 0x2000>; 218 <0x01c86000 0x2000>;
223 interrupt-controller; 219 interrupt-controller;
diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
new file mode 100644
index 000000000000..b7ca916d871d
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
@@ -0,0 +1,160 @@
1/*
2 * Copyright (C) 2016 Icenowy Zheng <icenowy@aosc.xyz>
3 *
4 * Based on sun8i-h3-orangepi-one.dts, which is:
5 * Copyright (C) 2016 Hans de Goede <hdegoede@redhat.com>
6 *
7 * This file is dual-licensed: you can use it either under the terms
8 * of the GPL or the X11 license, at your option. Note that this dual
9 * licensing only applies to this file, and not this project as a
10 * whole.
11 *
12 * a) This file is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License as
14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version.
16 *
17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * Or, alternatively,
23 *
24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following
31 * conditions:
32 *
33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software.
35 *
36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE.
44 */
45
46/dts-v1/;
47#include "sun8i-h3.dtsi"
48#include "sunxi-common-regulators.dtsi"
49
50#include <dt-bindings/gpio/gpio.h>
51#include <dt-bindings/input/input.h>
52#include <dt-bindings/pinctrl/sun4i-a10.h>
53
54/ {
55 model = "Xunlong Orange Pi Zero";
56 compatible = "xunlong,orangepi-zero", "allwinner,sun8i-h2-plus";
57
58 aliases {
59 serial0 = &uart0;
60 /* ethernet0 is the H3 emac, defined in sun8i-h3.dtsi */
61 ethernet1 = &xr819;
62 };
63
64 chosen {
65 stdout-path = "serial0:115200n8";
66 };
67
68 leds {
69 compatible = "gpio-leds";
70
71 pwr_led {
72 label = "orangepi:green:pwr";
73 gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>;
74 default-state = "on";
75 };
76
77 status_led {
78 label = "orangepi:red:status";
79 gpios = <&pio 0 17 GPIO_ACTIVE_HIGH>;
80 };
81 };
82
83 reg_vcc_wifi: reg_vcc_wifi {
84 compatible = "regulator-fixed";
85 regulator-min-microvolt = <3300000>;
86 regulator-max-microvolt = <3300000>;
87 regulator-name = "vcc-wifi";
88 enable-active-high;
89 gpio = <&pio 0 20 GPIO_ACTIVE_HIGH>;
90 };
91
92 wifi_pwrseq: wifi_pwrseq {
93 compatible = "mmc-pwrseq-simple";
94 reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>;
95 post-power-on-delay-ms = <200>;
96 };
97};
98
99&ehci1 {
100 status = "okay";
101};
102
103&mmc0 {
104 pinctrl-names = "default";
105 pinctrl-0 = <&mmc0_pins_a>;
106 vmmc-supply = <&reg_vcc3v3>;
107 bus-width = <4>;
108 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
109 cd-inverted;
110 status = "okay";
111};
112
113&mmc1 {
114 pinctrl-names = "default";
115 pinctrl-0 = <&mmc1_pins_a>;
116 vmmc-supply = <&reg_vcc_wifi>;
117 mmc-pwrseq = <&wifi_pwrseq>;
118 bus-width = <4>;
119 non-removable;
120 status = "okay";
121
122 /*
123 * Explicitly define the sdio device, so that we can add an ethernet
124 * alias for it (which e.g. makes u-boot set a mac-address).
125 */
126 xr819: sdio_wifi@1 {
127 reg = <1>;
128 };
129};
130
131&mmc1_pins_a {
132 bias-pull-up;
133};
134
135&ohci1 {
136 status = "okay";
137};
138
139&uart0 {
140 pinctrl-names = "default";
141 pinctrl-0 = <&uart0_pins_a>;
142 status = "okay";
143};
144
145&uart1 {
146 pinctrl-names = "default";
147 pinctrl-0 = <&uart1_pins>;
148 status = "disabled";
149};
150
151&uart2 {
152 pinctrl-names = "default";
153 pinctrl-0 = <&uart2_pins>;
154 status = "disabled";
155};
156
157&usbphy {
158 /* USB VBUS is always on */
159 status = "okay";
160};
diff --git a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
index 06fddaae8edd..c0c49dd4d3b2 100644
--- a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
+++ b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
@@ -156,24 +156,18 @@
156 156
157&r_pio { 157&r_pio {
158 pwr_led_bpi_m2p: led_pins@0 { 158 pwr_led_bpi_m2p: led_pins@0 {
159 allwinner,pins = "PL10"; 159 pins = "PL10";
160 allwinner,function = "gpio_out"; 160 function = "gpio_out";
161 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
162 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
163 }; 161 };
164 162
165 sw_r_bpi_m2p: key_pins@0 { 163 sw_r_bpi_m2p: key_pins@0 {
166 allwinner,pins = "PL3"; 164 pins = "PL3";
167 allwinner,function = "gpio_in"; 165 function = "gpio_in";
168 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
169 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
170 }; 166 };
171 167
172 wifi_en_bpi_m2p: wifi_en_pin { 168 wifi_en_bpi_m2p: wifi_en_pin {
173 allwinner,pins = "PL7"; 169 pins = "PL7";
174 allwinner,function = "gpio_out"; 170 function = "gpio_out";
175 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
176 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
177 }; 171 };
178}; 172};
179 173
diff --git a/arch/arm/boot/dts/sun8i-h3-beelink-x2.dts b/arch/arm/boot/dts/sun8i-h3-beelink-x2.dts
new file mode 100644
index 000000000000..25b225b7dfd6
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-h3-beelink-x2.dts
@@ -0,0 +1,160 @@
1/*
2 * Copyright (C) 2017 Marcus Cooper <codekipper@gmail.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44#include "sun8i-h3.dtsi"
45#include "sunxi-common-regulators.dtsi"
46
47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/input/input.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50
51/ {
52 model = "Beelink X2";
53 compatible = "roofull,beelink-x2", "allwinner,sun8i-h3";
54
55 aliases {
56 serial0 = &uart0;
57 /* ethernet0 is the H3 emac, defined in sun8i-h3.dtsi */
58 ethernet1 = &sdiowifi;
59 };
60
61 chosen {
62 stdout-path = "serial0:115200n8";
63 };
64
65 leds {
66 compatible = "gpio-leds";
67
68 blue {
69 label = "beelink-x2:blue:pwr";
70 gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */
71 default-state = "on";
72 };
73
74 red {
75 label = "beelink-x2:red:standby";
76 gpios = <&pio 0 15 GPIO_ACTIVE_HIGH>; /* PA15 */
77 };
78 };
79
80 wifi_pwrseq: wifi_pwrseq {
81 compatible = "mmc-pwrseq-simple";
82 reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
83 };
84
85 sound_spdif {
86 compatible = "simple-audio-card";
87 simple-audio-card,name = "On-board SPDIF";
88
89 simple-audio-card,cpu {
90 sound-dai = <&spdif>;
91 };
92
93 simple-audio-card,codec {
94 sound-dai = <&spdif_out>;
95 };
96 };
97
98 spdif_out: spdif-out {
99 #sound-dai-cells = <0>;
100 compatible = "linux,spdif-dit";
101 };
102};
103
104&ehci1 {
105 status = "okay";
106};
107
108&ir {
109 pinctrl-names = "default";
110 pinctrl-0 = <&ir_pins_a>;
111 status = "okay";
112};
113
114&mmc0 {
115 pinctrl-names = "default";
116 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
117 vmmc-supply = <&reg_vcc3v3>;
118 bus-width = <4>;
119 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
120 cd-inverted;
121 status = "okay";
122};
123
124&mmc1 {
125 pinctrl-names = "default";
126 pinctrl-0 = <&mmc1_pins_a>;
127 vmmc-supply = <&reg_vcc3v3>;
128 bus-width = <4>;
129 non-removable;
130 status = "okay";
131
132 /*
133 * Explicitly define the sdio device, so that we can add an ethernet
134 * alias for it (which e.g. makes u-boot set a mac-address).
135 */
136 sdiowifi: sdio_wifi@1 {
137 reg = <1>;
138 };
139};
140
141&ohci1 {
142 status = "okay";
143};
144
145&spdif {
146 pinctrl-names = "default";
147 pinctrl-0 = <&spdif_tx_pins_a>;
148 status = "okay";
149};
150
151&uart0 {
152 pinctrl-names = "default";
153 pinctrl-0 = <&uart0_pins_a>;
154 status = "okay";
155};
156
157&usbphy {
158 /* USB VBUS is on as long as VCC-IO is on */
159 status = "okay";
160};
diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi b/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
index 8038aa29a5a7..2216e68d1838 100644
--- a/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
@@ -110,26 +110,20 @@
110 110
111&pio { 111&pio {
112 leds_npi: led_pins@0 { 112 leds_npi: led_pins@0 {
113 allwinner,pins = "PA10"; 113 pins = "PA10";
114 allwinner,function = "gpio_out"; 114 function = "gpio_out";
115 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
116 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
117 }; 115 };
118}; 116};
119 117
120&r_pio { 118&r_pio {
121 leds_r_npi: led_pins@0 { 119 leds_r_npi: led_pins@0 {
122 allwinner,pins = "PL10"; 120 pins = "PL10";
123 allwinner,function = "gpio_out"; 121 function = "gpio_out";
124 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
125 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
126 }; 122 };
127 123
128 sw_r_npi: key_pins@0 { 124 sw_r_npi: key_pins@0 {
129 allwinner,pins = "PL3"; 125 pins = "PL3";
130 allwinner,function = "gpio_in"; 126 function = "gpio_in";
131 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
132 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
133 }; 127 };
134}; 128};
135 129
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
index e5bcaba3e87f..047e9e1c6093 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
@@ -145,33 +145,25 @@
145 145
146&pio { 146&pio {
147 leds_opc: led_pins@0 { 147 leds_opc: led_pins@0 {
148 allwinner,pins = "PA15"; 148 pins = "PA15";
149 allwinner,function = "gpio_out"; 149 function = "gpio_out";
150 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
151 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
152 }; 150 };
153}; 151};
154 152
155&r_pio { 153&r_pio {
156 leds_r_opc: led_pins@0 { 154 leds_r_opc: led_pins@0 {
157 allwinner,pins = "PL10"; 155 pins = "PL10";
158 allwinner,function = "gpio_out"; 156 function = "gpio_out";
159 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
160 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
161 }; 157 };
162 158
163 sw_r_opc: key_pins@0 { 159 sw_r_opc: key_pins@0 {
164 allwinner,pins = "PL3", "PL4"; 160 pins = "PL3", "PL4";
165 allwinner,function = "gpio_in"; 161 function = "gpio_in";
166 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
167 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
168 }; 162 };
169 163
170 wifi_pwrseq_pin_orangepi: wifi_pwrseq_pin@0 { 164 wifi_pwrseq_pin_orangepi: wifi_pwrseq_pin@0 {
171 allwinner,pins = "PL7"; 165 pins = "PL7";
172 allwinner,function = "gpio_out"; 166 function = "gpio_out";
173 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
174 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
175 }; 167 };
176}; 168};
177 169
@@ -205,7 +197,7 @@
205}; 197};
206 198
207&usb1_vbus_pin_a { 199&usb1_vbus_pin_a {
208 allwinner,pins = "PG13"; 200 pins = "PG13";
209}; 201};
210 202
211&usbphy { 203&usbphy {
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts
index 1550fee1ec68..22b99b407019 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts
@@ -143,26 +143,20 @@
143 143
144&pio { 144&pio {
145 leds_opc: led_pins@0 { 145 leds_opc: led_pins@0 {
146 allwinner,pins = "PA15"; 146 pins = "PA15";
147 allwinner,function = "gpio_out"; 147 function = "gpio_out";
148 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
149 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
150 }; 148 };
151}; 149};
152 150
153&r_pio { 151&r_pio {
154 leds_r_opc: led_pins@0 { 152 leds_r_opc: led_pins@0 {
155 allwinner,pins = "PL10"; 153 pins = "PL10";
156 allwinner,function = "gpio_out"; 154 function = "gpio_out";
157 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
158 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
159 }; 155 };
160 156
161 sw_r_opc: key_pins@0 { 157 sw_r_opc: key_pins@0 {
162 allwinner,pins = "PL3"; 158 pins = "PL3";
163 allwinner,function = "gpio_in"; 159 function = "gpio_in";
164 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
165 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
166 }; 160 };
167}; 161};
168 162
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts
index 5c9b5bfa5c21..34da853ee037 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts
@@ -110,26 +110,20 @@
110 110
111&pio { 111&pio {
112 leds_opc: led_pins@0 { 112 leds_opc: led_pins@0 {
113 allwinner,pins = "PA15"; 113 pins = "PA15";
114 allwinner,function = "gpio_out"; 114 function = "gpio_out";
115 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
116 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
117 }; 115 };
118}; 116};
119 117
120&r_pio { 118&r_pio {
121 leds_r_opc: led_pins@0 { 119 leds_r_opc: led_pins@0 {
122 allwinner,pins = "PL10"; 120 pins = "PL10";
123 allwinner,function = "gpio_out"; 121 function = "gpio_out";
124 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
125 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
126 }; 122 };
127 123
128 sw_r_opc: key_pins@0 { 124 sw_r_opc: key_pins@0 {
129 allwinner,pins = "PL3"; 125 pins = "PL3";
130 allwinner,function = "gpio_in"; 126 function = "gpio_in";
131 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
132 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
133 }; 127 };
134}; 128};
135 129
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
index 851fd2c2cc8c..8b93f5c781a7 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
@@ -82,7 +82,7 @@
82 82
83&mmc2_8bit_pins { 83&mmc2_8bit_pins {
84 /* Increase drive strength for DDR modes */ 84 /* Increase drive strength for DDR modes */
85 allwinner,drive = <SUN4I_PINCTRL_40_MA>; 85 drive-strength = <40>;
86 /* eMMC is missing pull-ups */ 86 /* eMMC is missing pull-ups */
87 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 87 bias-pull-up;
88}; 88};
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts
index 3ec971285aa3..d43978d3294e 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts
@@ -90,6 +90,14 @@
90 }; 90 };
91}; 91};
92 92
93&codec {
94 allwinner,audio-routing =
95 "Line Out", "LINEOUT",
96 "MIC1", "Mic",
97 "Mic", "MBIAS";
98 status = "okay";
99};
100
93&ehci1 { 101&ehci1 {
94 status = "okay"; 102 status = "okay";
95}; 103};
@@ -132,26 +140,20 @@
132 140
133&pio { 141&pio {
134 leds_opc: led_pins@0 { 142 leds_opc: led_pins@0 {
135 allwinner,pins = "PA15"; 143 pins = "PA15";
136 allwinner,function = "gpio_out"; 144 function = "gpio_out";
137 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
138 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
139 }; 145 };
140}; 146};
141 147
142&r_pio { 148&r_pio {
143 leds_r_opc: led_pins@0 { 149 leds_r_opc: led_pins@0 {
144 allwinner,pins = "PL10"; 150 pins = "PL10";
145 allwinner,function = "gpio_out"; 151 function = "gpio_out";
146 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
147 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
148 }; 152 };
149 153
150 sw_r_opc: key_pins@0 { 154 sw_r_opc: key_pins@0 {
151 allwinner,pins = "PL3"; 155 pins = "PL3";
152 allwinner,function = "gpio_in"; 156 function = "gpio_in";
153 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
154 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
155 }; 157 };
156}; 158};
157 159
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
index bb585918cf54..8c40ab7bfa72 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
@@ -76,17 +76,15 @@
76 76
77&mmc2_8bit_pins { 77&mmc2_8bit_pins {
78 /* Increase drive strength for DDR modes */ 78 /* Increase drive strength for DDR modes */
79 allwinner,drive = <SUN4I_PINCTRL_40_MA>; 79 drive-strength = <40>;
80 /* eMMC is missing pull-ups */ 80 /* eMMC is missing pull-ups */
81 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 81 bias-pull-up;
82}; 82};
83 83
84&pio { 84&pio {
85 usb3_vbus_pin_a: usb3_vbus_pin@0 { 85 usb3_vbus_pin_a: usb3_vbus_pin@0 {
86 allwinner,pins = "PG11"; 86 pins = "PG11";
87 allwinner,function = "gpio_out"; 87 function = "gpio_out";
88 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
89 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
90 }; 88 };
91}; 89};
92 90
diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
index 6c14a6f72820..27780b97c863 100644
--- a/arch/arm/boot/dts/sun8i-h3.dtsi
+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
@@ -329,106 +329,90 @@
329 #interrupt-cells = <3>; 329 #interrupt-cells = <3>;
330 330
331 i2c0_pins: i2c0 { 331 i2c0_pins: i2c0 {
332 allwinner,pins = "PA11", "PA12"; 332 pins = "PA11", "PA12";
333 allwinner,function = "i2c0"; 333 function = "i2c0";
334 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
335 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
336 }; 334 };
337 335
338 i2c1_pins: i2c1 { 336 i2c1_pins: i2c1 {
339 allwinner,pins = "PA18", "PA19"; 337 pins = "PA18", "PA19";
340 allwinner,function = "i2c1"; 338 function = "i2c1";
341 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
342 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
343 }; 339 };
344 340
345 i2c2_pins: i2c2 { 341 i2c2_pins: i2c2 {
346 allwinner,pins = "PE12", "PE13"; 342 pins = "PE12", "PE13";
347 allwinner,function = "i2c2"; 343 function = "i2c2";
348 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
349 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
350 }; 344 };
351 345
352 mmc0_pins_a: mmc0@0 { 346 mmc0_pins_a: mmc0@0 {
353 allwinner,pins = "PF0", "PF1", "PF2", "PF3", 347 pins = "PF0", "PF1", "PF2", "PF3",
354 "PF4", "PF5"; 348 "PF4", "PF5";
355 allwinner,function = "mmc0"; 349 function = "mmc0";
356 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 350 drive-strength = <30>;
357 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 351 bias-pull-up;
358 }; 352 };
359 353
360 mmc0_cd_pin: mmc0_cd_pin@0 { 354 mmc0_cd_pin: mmc0_cd_pin@0 {
361 allwinner,pins = "PF6"; 355 pins = "PF6";
362 allwinner,function = "gpio_in"; 356 function = "gpio_in";
363 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 357 bias-pull-up;
364 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
365 }; 358 };
366 359
367 mmc1_pins_a: mmc1@0 { 360 mmc1_pins_a: mmc1@0 {
368 allwinner,pins = "PG0", "PG1", "PG2", "PG3", 361 pins = "PG0", "PG1", "PG2", "PG3",
369 "PG4", "PG5"; 362 "PG4", "PG5";
370 allwinner,function = "mmc1"; 363 function = "mmc1";
371 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 364 drive-strength = <30>;
372 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 365 bias-pull-up;
373 }; 366 };
374 367
375 mmc2_8bit_pins: mmc2_8bit { 368 mmc2_8bit_pins: mmc2_8bit {
376 allwinner,pins = "PC5", "PC6", "PC8", 369 pins = "PC5", "PC6", "PC8",
377 "PC9", "PC10", "PC11", 370 "PC9", "PC10", "PC11",
378 "PC12", "PC13", "PC14", 371 "PC12", "PC13", "PC14",
379 "PC15", "PC16"; 372 "PC15", "PC16";
380 allwinner,function = "mmc2"; 373 function = "mmc2";
381 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 374 drive-strength = <30>;
382 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 375 bias-pull-up;
376 };
377
378 spdif_tx_pins_a: spdif@0 {
379 pins = "PA17";
380 function = "spdif";
383 }; 381 };
384 382
385 spi0_pins: spi0 { 383 spi0_pins: spi0 {
386 allwinner,pins = "PC0", "PC1", "PC2", "PC3"; 384 pins = "PC0", "PC1", "PC2", "PC3";
387 allwinner,function = "spi0"; 385 function = "spi0";
388 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
389 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
390 }; 386 };
391 387
392 spi1_pins: spi1 { 388 spi1_pins: spi1 {
393 allwinner,pins = "PA15", "PA16", "PA14", "PA13"; 389 pins = "PA15", "PA16", "PA14", "PA13";
394 allwinner,function = "spi1"; 390 function = "spi1";
395 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
396 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
397 }; 391 };
398 392
399 uart0_pins_a: uart0@0 { 393 uart0_pins_a: uart0@0 {
400 allwinner,pins = "PA4", "PA5"; 394 pins = "PA4", "PA5";
401 allwinner,function = "uart0"; 395 function = "uart0";
402 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
403 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
404 }; 396 };
405 397
406 uart1_pins: uart1 { 398 uart1_pins: uart1 {
407 allwinner,pins = "PG6", "PG7"; 399 pins = "PG6", "PG7";
408 allwinner,function = "uart1"; 400 function = "uart1";
409 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
410 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
411 }; 401 };
412 402
413 uart1_rts_cts_pins: uart1_rts_cts { 403 uart1_rts_cts_pins: uart1_rts_cts {
414 allwinner,pins = "PG8", "PG9"; 404 pins = "PG8", "PG9";
415 allwinner,function = "uart1"; 405 function = "uart1";
416 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
417 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
418 }; 406 };
419 407
420 uart2_pins: uart2 { 408 uart2_pins: uart2 {
421 allwinner,pins = "PA0", "PA1"; 409 pins = "PA0", "PA1";
422 allwinner,function = "uart2"; 410 function = "uart2";
423 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
424 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
425 }; 411 };
426 412
427 uart3_pins: uart3 { 413 uart3_pins: uart3 {
428 allwinner,pins = "PA13", "PA14"; 414 pins = "PA13", "PA14";
429 allwinner,function = "uart3"; 415 function = "uart3";
430 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
431 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
432 }; 416 };
433 }; 417 };
434 418
@@ -478,6 +462,19 @@
478 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 462 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
479 }; 463 };
480 464
465 spdif: spdif@01c21000 {
466 #sound-dai-cells = <0>;
467 compatible = "allwinner,sun8i-h3-spdif";
468 reg = <0x01c21000 0x400>;
469 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
470 clocks = <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>;
471 resets = <&ccu RST_BUS_SPDIF>;
472 clock-names = "apb", "spdif";
473 dmas = <&dma 2>;
474 dma-names = "tx";
475 status = "disabled";
476 };
477
481 pwm: pwm@01c21400 { 478 pwm: pwm@01c21400 {
482 compatible = "allwinner,sun8i-h3-pwm"; 479 compatible = "allwinner,sun8i-h3-pwm";
483 reg = <0x01c21400 0x8>; 480 reg = <0x01c21400 0x8>;
@@ -486,6 +483,20 @@
486 status = "disabled"; 483 status = "disabled";
487 }; 484 };
488 485
486 codec: codec@01c22c00 {
487 #sound-dai-cells = <0>;
488 compatible = "allwinner,sun8i-h3-codec";
489 reg = <0x01c22c00 0x400>;
490 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
491 clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
492 clock-names = "apb", "codec";
493 resets = <&ccu RST_BUS_CODEC>;
494 dmas = <&dma 15>, <&dma 15>;
495 dma-names = "rx", "tx";
496 allwinner,codec-analog-controls = <&codec_analog>;
497 status = "disabled";
498 };
499
489 uart0: serial@01c28000 { 500 uart0: serial@01c28000 {
490 compatible = "snps,dw-apb-uart"; 501 compatible = "snps,dw-apb-uart";
491 reg = <0x01c28000 0x400>; 502 reg = <0x01c28000 0x400>;
@@ -580,7 +591,7 @@
580 gic: interrupt-controller@01c81000 { 591 gic: interrupt-controller@01c81000 {
581 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; 592 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
582 reg = <0x01c81000 0x1000>, 593 reg = <0x01c81000 0x1000>,
583 <0x01c82000 0x1000>, 594 <0x01c82000 0x2000>,
584 <0x01c84000 0x2000>, 595 <0x01c84000 0x2000>,
585 <0x01c86000 0x2000>; 596 <0x01c86000 0x2000>;
586 interrupt-controller; 597 interrupt-controller;
@@ -601,6 +612,11 @@
601 #reset-cells = <1>; 612 #reset-cells = <1>;
602 }; 613 };
603 614
615 codec_analog: codec-analog@01f015c0 {
616 compatible = "allwinner,sun8i-h3-codec-analog";
617 reg = <0x01f015c0 0x4>;
618 };
619
604 ir: ir@01f02000 { 620 ir: ir@01f02000 {
605 compatible = "allwinner,sun5i-a13-ir"; 621 compatible = "allwinner,sun5i-a13-ir";
606 clocks = <&apb0_gates 1>, <&ir_clk>; 622 clocks = <&apb0_gates 1>, <&ir_clk>;
@@ -624,10 +640,8 @@
624 #interrupt-cells = <3>; 640 #interrupt-cells = <3>;
625 641
626 ir_pins_a: ir@0 { 642 ir_pins_a: ir@0 {
627 allwinner,pins = "PL11"; 643 pins = "PL11";
628 allwinner,function = "s_cir_rx"; 644 function = "s_cir_rx";
629 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
630 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
631 }; 645 };
632 }; 646 };
633 }; 647 };
diff --git a/arch/arm/boot/dts/sun8i-q8-common.dtsi b/arch/arm/boot/dts/sun8i-q8-common.dtsi
index 29f837a47771..c676940a96da 100644
--- a/arch/arm/boot/dts/sun8i-q8-common.dtsi
+++ b/arch/arm/boot/dts/sun8i-q8-common.dtsi
@@ -83,15 +83,14 @@
83}; 83};
84 84
85&mmc1_pins_a { 85&mmc1_pins_a {
86 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 86 bias-pull-up;
87}; 87};
88 88
89&r_pio { 89&r_pio {
90 wifi_pwrseq_pin_q8: wifi_pwrseq_pin@0 { 90 wifi_pwrseq_pin_q8: wifi_pwrseq_pin@0 {
91 allwinner,pins = "PL6", "PL7", "PL11"; 91 pins = "PL6", "PL7", "PL11";
92 allwinner,function = "gpio_in"; 92 function = "gpio_in";
93 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 93 bias-pull-up;
94 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
95 }; 94 };
96}; 95};
97 96
diff --git a/arch/arm/boot/dts/sun8i-r16-parrot.dts b/arch/arm/boot/dts/sun8i-r16-parrot.dts
index 47553e522982..472c03b7aeab 100644
--- a/arch/arm/boot/dts/sun8i-r16-parrot.dts
+++ b/arch/arm/boot/dts/sun8i-r16-parrot.dts
@@ -84,6 +84,14 @@
84 84
85}; 85};
86 86
87&codec {
88 status = "okay";
89};
90
91&dai {
92 status = "okay";
93};
94
87&ehci0 { 95&ehci0 {
88 status = "okay"; 96 status = "okay";
89}; 97};
@@ -149,8 +157,8 @@
149}; 157};
150 158
151&mmc2_8bit_pins { 159&mmc2_8bit_pins {
152 allwinner,drive = <SUN4I_PINCTRL_40_MA>; 160 drive-strength = <40>;
153 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 161 bias-pull-up;
154}; 162};
155 163
156&ohci0 { 164&ohci0 {
@@ -159,40 +167,32 @@
159 167
160&pio { 168&pio {
161 mmc0_cd_pin_parrot: mmc0_cd_pin@0 { 169 mmc0_cd_pin_parrot: mmc0_cd_pin@0 {
162 allwinner,pins = "PD14"; 170 pins = "PD14";
163 allwinner,function = "gpio_in"; 171 function = "gpio_in";
164 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 172 bias-pull-up;
165 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
166 }; 173 };
167 174
168 led_pins_parrot: led_pins@0 { 175 led_pins_parrot: led_pins@0 {
169 allwinner,pins = "PE16", "PE17"; 176 pins = "PE16", "PE17";
170 allwinner,function = "gpio_out"; 177 function = "gpio_out";
171 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
172 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
173 }; 178 };
174 179
175 usb0_id_det: usb0_id_detect_pin@0 { 180 usb0_id_det: usb0_id_detect_pin@0 {
176 allwinner,pins = "PD10"; 181 pins = "PD10";
177 allwinner,function = "gpio_in"; 182 function = "gpio_in";
178 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 183 bias-pull-up;
179 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
180 }; 184 };
181 185
182 usb1_vbus_pin_parrot: usb1_vbus_pin@0 { 186 usb1_vbus_pin_parrot: usb1_vbus_pin@0 {
183 allwinner,pins = "PD12"; 187 pins = "PD12";
184 allwinner,function = "gpio_out"; 188 function = "gpio_out";
185 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
186 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
187 }; 189 };
188}; 190};
189 191
190&r_pio { 192&r_pio {
191 wifi_reset_pin_parrot: wifi_reset_pin@0 { 193 wifi_reset_pin_parrot: wifi_reset_pin@0 {
192 allwinner,pins = "PL6"; 194 pins = "PL6";
193 allwinner,function = "gpio_out"; 195 function = "gpio_out";
194 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
195 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
196 }; 196 };
197}; 197};
198 198
@@ -209,7 +209,7 @@
209 }; 209 };
210}; 210};
211 211
212#include "axp22x.dtsi" 212#include "axp223.dtsi"
213 213
214&reg_aldo1 { 214&reg_aldo1 {
215 regulator-always-on; 215 regulator-always-on;
@@ -325,6 +325,10 @@
325 status = "okay"; 325 status = "okay";
326}; 326};
327 327
328&sound {
329 status = "okay";
330};
331
328&uart0 { 332&uart0 {
329 pinctrl-names = "default"; 333 pinctrl-names = "default";
330 pinctrl-0 = <&uart0_pins_b>; 334 pinctrl-0 = <&uart0_pins_b>;
diff --git a/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi b/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
index 69bc0cd26ca7..7097c18ff487 100644
--- a/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
+++ b/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
@@ -94,31 +94,25 @@
94 94
95&pio { 95&pio {
96 bl_en_pin: bl_en_pin@0 { 96 bl_en_pin: bl_en_pin@0 {
97 allwinner,pins = "PH6"; 97 pins = "PH6";
98 allwinner,function = "gpio_in"; 98 function = "gpio_in";
99 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
100 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
101 }; 99 };
102 100
103 mmc0_cd_pin: mmc0_cd_pin@0 { 101 mmc0_cd_pin: mmc0_cd_pin@0 {
104 allwinner,pins = "PB4"; 102 pins = "PB4";
105 allwinner,function = "gpio_in"; 103 function = "gpio_in";
106 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 104 bias-pull-up;
107 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
108 }; 105 };
109 106
110 ts_power_pin: ts_power_pin@0 { 107 ts_power_pin: ts_power_pin@0 {
111 allwinner,pins = "PH1"; 108 pins = "PH1";
112 allwinner,function = "gpio_out"; 109 function = "gpio_out";
113 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
114 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
115 }; 110 };
116 111
117 usb0_id_detect_pin: usb0_id_detect_pin@0 { 112 usb0_id_detect_pin: usb0_id_detect_pin@0 {
118 allwinner,pins = "PH8"; 113 pins = "PH8";
119 allwinner,function = "gpio_in"; 114 function = "gpio_in";
120 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 115 bias-pull-up;
121 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
122 }; 116 };
123}; 117};
124 118
@@ -136,7 +130,7 @@
136 }; 130 };
137}; 131};
138 132
139#include "axp22x.dtsi" 133#include "axp223.dtsi"
140 134
141&reg_aldo1 { 135&reg_aldo1 {
142 regulator-always-on; 136 regulator-always-on;
@@ -220,6 +214,10 @@
220 regulator-name = "vcc-rtc"; 214 regulator-name = "vcc-rtc";
221}; 215};
222 216
217&cpu0 {
218 cpu-supply = <&reg_dcdc2>;
219};
220
223&r_uart { 221&r_uart {
224 pinctrl-names = "default"; 222 pinctrl-names = "default";
225 pinctrl-0 = <&r_uart_pins_a>; 223 pinctrl-0 = <&r_uart_pins_a>;
diff --git a/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts b/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
new file mode 100644
index 000000000000..387fc2aa546d
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
@@ -0,0 +1,103 @@
1/*
2 * Copyright (C) 2016 Icenowy Zheng <icenowy@aosc.xyz>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44#include "sun8i-v3s.dtsi"
45#include "sunxi-common-regulators.dtsi"
46
47/ {
48 model = "Lichee Pi Zero";
49 compatible = "licheepi,licheepi-zero", "allwinner,sun8i-v3s";
50
51 aliases {
52 serial0 = &uart0;
53 };
54
55 chosen {
56 stdout-path = "serial0:115200n8";
57 };
58
59 leds {
60 compatible = "gpio-leds";
61
62 blue_led {
63 label = "licheepi:blue:usr";
64 gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
65 };
66
67 green_led {
68 label = "licheepi:green:usr";
69 gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
70 default-state = "on";
71 };
72
73 red_led {
74 label = "licheepi:red:usr";
75 gpios = <&pio 6 2 GPIO_ACTIVE_LOW>; /* PG2 */
76 };
77 };
78};
79
80&mmc0 {
81 pinctrl-0 = <&mmc0_pins_a>;
82 pinctrl-names = "default";
83 broken-cd;
84 bus-width = <4>;
85 vmmc-supply = <&reg_vcc3v3>;
86 status = "okay";
87};
88
89&uart0 {
90 pinctrl-0 = <&uart0_pins_a>;
91 pinctrl-names = "default";
92 status = "okay";
93};
94
95&usb_otg {
96 dr_mode = "otg";
97 status = "okay";
98};
99
100&usbphy {
101 usb0_id_det-gpio = <&pio 5 6 GPIO_ACTIVE_HIGH>;
102 status = "okay";
103};
diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi b/arch/arm/boot/dts/sun8i-v3s.dtsi
new file mode 100644
index 000000000000..71075969e5e6
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-v3s.dtsi
@@ -0,0 +1,309 @@
1/*
2 * Copyright (C) 2016 Icenowy Zheng <icenowy@aosc.xyz>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43#include <dt-bindings/interrupt-controller/arm-gic.h>
44
45/ {
46 #address-cells = <1>;
47 #size-cells = <1>;
48 interrupt-parent = <&gic>;
49
50 cpus {
51 #address-cells = <1>;
52 #size-cells = <0>;
53
54 cpu@0 {
55 compatible = "arm,cortex-a7";
56 device_type = "cpu";
57 reg = <0>;
58 clocks = <&ccu 14>;
59 };
60 };
61
62 timer {
63 compatible = "arm,armv7-timer";
64 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
65 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
66 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
67 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
68 };
69
70 clocks {
71 #address-cells = <1>;
72 #size-cells = <1>;
73 ranges;
74
75 osc24M: osc24M_clk {
76 #clock-cells = <0>;
77 compatible = "fixed-clock";
78 clock-frequency = <24000000>;
79 clock-output-names = "osc24M";
80 };
81
82 osc32k: osc32k_clk {
83 #clock-cells = <0>;
84 compatible = "fixed-clock";
85 clock-frequency = <32768>;
86 clock-output-names = "osc32k";
87 };
88 };
89
90 soc {
91 compatible = "simple-bus";
92 #address-cells = <1>;
93 #size-cells = <1>;
94 ranges;
95
96 mmc0: mmc@01c0f000 {
97 compatible = "allwinner,sun7i-a20-mmc";
98 reg = <0x01c0f000 0x1000>;
99 clocks = <&ccu 22>,
100 <&ccu 45>,
101 <&ccu 47>,
102 <&ccu 46>;
103 clock-names = "ahb",
104 "mmc",
105 "output",
106 "sample";
107 resets = <&ccu 7>;
108 reset-names = "ahb";
109 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
110 status = "disabled";
111 #address-cells = <1>;
112 #size-cells = <0>;
113 };
114
115 mmc1: mmc@01c10000 {
116 compatible = "allwinner,sun7i-a20-mmc";
117 reg = <0x01c10000 0x1000>;
118 clocks = <&ccu 23>,
119 <&ccu 48>,
120 <&ccu 50>,
121 <&ccu 49>;
122 clock-names = "ahb",
123 "mmc",
124 "output",
125 "sample";
126 resets = <&ccu 8>;
127 reset-names = "ahb";
128 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
129 status = "disabled";
130 #address-cells = <1>;
131 #size-cells = <0>;
132 };
133
134 mmc2: mmc@01c11000 {
135 compatible = "allwinner,sun7i-a20-mmc";
136 reg = <0x01c11000 0x1000>;
137 clocks = <&ccu 24>,
138 <&ccu 51>,
139 <&ccu 53>,
140 <&ccu 52>;
141 clock-names = "ahb",
142 "mmc",
143 "output",
144 "sample";
145 resets = <&ccu 9>;
146 reset-names = "ahb";
147 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
148 status = "disabled";
149 #address-cells = <1>;
150 #size-cells = <0>;
151 };
152
153 usb_otg: usb@01c19000 {
154 compatible = "allwinner,sun8i-h3-musb";
155 reg = <0x01c19000 0x0400>;
156 clocks = <&ccu 29>;
157 resets = <&ccu 17>;
158 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
159 interrupt-names = "mc";
160 phys = <&usbphy 0>;
161 phy-names = "usb";
162 extcon = <&usbphy 0>;
163 status = "disabled";
164 };
165
166 usbphy: phy@01c19400 {
167 compatible = "allwinner,sun8i-v3s-usb-phy";
168 reg = <0x01c19400 0x2c>,
169 <0x01c1a800 0x4>;
170 reg-names = "phy_ctrl",
171 "pmu0";
172 clocks = <&ccu 56>;
173 clock-names = "usb0_phy";
174 resets = <&ccu 0>;
175 reset-names = "usb0_reset";
176 status = "disabled";
177 #phy-cells = <1>;
178 };
179
180 ccu: clock@01c20000 {
181 compatible = "allwinner,sun8i-v3s-ccu";
182 reg = <0x01c20000 0x400>;
183 clocks = <&osc24M>, <&osc32k>;
184 clock-names = "hosc", "losc";
185 #clock-cells = <1>;
186 #reset-cells = <1>;
187 };
188
189 rtc: rtc@01c20400 {
190 compatible = "allwinner,sun6i-a31-rtc";
191 reg = <0x01c20400 0x54>;
192 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
193 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
194 };
195
196 pio: pinctrl@01c20800 {
197 compatible = "allwinner,sun8i-v3s-pinctrl";
198 reg = <0x01c20800 0x400>;
199 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
200 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
201 clocks = <&ccu 37>, <&osc24M>, <&osc32k>;
202 clock-names = "apb", "hosc", "losc";
203 gpio-controller;
204 #gpio-cells = <3>;
205 interrupt-controller;
206 #interrupt-cells = <3>;
207
208 i2c0_pins: i2c0 {
209 pins = "PB6", "PB7";
210 function = "i2c0";
211 };
212
213 uart0_pins_a: uart0@0 {
214 pins = "PB8", "PB9";
215 function = "uart0";
216 };
217
218 mmc0_pins_a: mmc0@0 {
219 pins = "PF0", "PF1", "PF2", "PF3",
220 "PF4", "PF5";
221 function = "mmc0";
222 drive-strength = <30>;
223 bias-pull-up;
224 };
225 };
226
227 timer@01c20c00 {
228 compatible = "allwinner,sun4i-a10-timer";
229 reg = <0x01c20c00 0xa0>;
230 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
231 <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
232 clocks = <&osc24M>;
233 };
234
235 wdt0: watchdog@01c20ca0 {
236 compatible = "allwinner,sun6i-a31-wdt";
237 reg = <0x01c20ca0 0x20>;
238 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
239 };
240
241 uart0: serial@01c28000 {
242 compatible = "snps,dw-apb-uart";
243 reg = <0x01c28000 0x400>;
244 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
245 reg-shift = <2>;
246 reg-io-width = <4>;
247 clocks = <&ccu 40>;
248 resets = <&ccu 49>;
249 status = "disabled";
250 };
251
252 uart1: serial@01c28400 {
253 compatible = "snps,dw-apb-uart";
254 reg = <0x01c28400 0x400>;
255 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
256 reg-shift = <2>;
257 reg-io-width = <4>;
258 clocks = <&ccu 41>;
259 resets = <&ccu 50>;
260 status = "disabled";
261 };
262
263 uart2: serial@01c28800 {
264 compatible = "snps,dw-apb-uart";
265 reg = <0x01c28800 0x400>;
266 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
267 reg-shift = <2>;
268 reg-io-width = <4>;
269 clocks = <&ccu 42>;
270 resets = <&ccu 51>;
271 status = "disabled";
272 };
273
274 i2c0: i2c@01c2ac00 {
275 compatible = "allwinner,sun6i-a31-i2c";
276 reg = <0x01c2ac00 0x400>;
277 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
278 clocks = <&ccu 38>;
279 resets = <&ccu 46>;
280 pinctrl-names = "default";
281 pinctrl-0 = <&i2c0_pins>;
282 status = "disabled";
283 #address-cells = <1>;
284 #size-cells = <0>;
285 };
286
287 i2c1: i2c@01c2b000 {
288 compatible = "allwinner,sun6i-a31-i2c";
289 reg = <0x01c2b000 0x400>;
290 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
291 clocks = <&ccu 39>;
292 resets = <&ccu 47>;
293 status = "disabled";
294 #address-cells = <1>;
295 #size-cells = <0>;
296 };
297
298 gic: interrupt-controller@01c81000 {
299 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
300 reg = <0x01c81000 0x1000>,
301 <0x01c82000 0x1000>,
302 <0x01c84000 0x2000>,
303 <0x01c86000 0x2000>;
304 interrupt-controller;
305 #interrupt-cells = <3>;
306 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
307 };
308 };
309};
diff --git a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
index 67b02fe7f11c..9112a200fd5e 100644
--- a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
+++ b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
@@ -108,7 +108,7 @@
108}; 108};
109 109
110&mmc1_pins { 110&mmc1_pins {
111 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 111 bias-pull-up;
112}; 112};
113 113
114&mmc2 { 114&mmc2 {
@@ -123,7 +123,7 @@
123 123
124&mmc2_8bit_pins { 124&mmc2_8bit_pins {
125 /* Increase drive strength for DDR modes */ 125 /* Increase drive strength for DDR modes */
126 allwinner,drive = <SUN4I_PINCTRL_40_MA>; 126 drive-strength = <40>;
127}; 127};
128 128
129&osc32k { 129&osc32k {
@@ -133,17 +133,14 @@
133 133
134&pio { 134&pio {
135 led_pins_cubieboard4: led-pins@0 { 135 led_pins_cubieboard4: led-pins@0 {
136 allwinner,pins = "PH6", "PH17"; 136 pins = "PH6", "PH17";
137 allwinner,function = "gpio_out"; 137 function = "gpio_out";
138 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
139 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
140 }; 138 };
141 139
142 mmc0_cd_pin_cubieboard4: mmc0_cd_pin@0 { 140 mmc0_cd_pin_cubieboard4: mmc0_cd_pin@0 {
143 allwinner,pins = "PH18"; 141 pins = "PH18";
144 allwinner,function = "gpio_in"; 142 function = "gpio_in";
145 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 143 bias-pull-up;
146 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
147 }; 144 };
148}; 145};
149 146
@@ -153,10 +150,8 @@
153 150
154&r_pio { 151&r_pio {
155 wifi_en_pin_cubieboard4: wifi_en_pin@0 { 152 wifi_en_pin_cubieboard4: wifi_en_pin@0 {
156 allwinner,pins = "PL2"; 153 pins = "PL2";
157 allwinner,function = "gpio_out"; 154 function = "gpio_out";
158 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
159 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
160 }; 155 };
161}; 156};
162 157
diff --git a/arch/arm/boot/dts/sun9i-a80-optimus.dts b/arch/arm/boot/dts/sun9i-a80-optimus.dts
index 7e036b2be762..0fc3a87f5576 100644
--- a/arch/arm/boot/dts/sun9i-a80-optimus.dts
+++ b/arch/arm/boot/dts/sun9i-a80-optimus.dts
@@ -150,7 +150,7 @@
150}; 150};
151 151
152&mmc1_pins { 152&mmc1_pins {
153 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 153 bias-pull-up;
154}; 154};
155 155
156&mmc2 { 156&mmc2 {
@@ -165,7 +165,7 @@
165 165
166&mmc2_8bit_pins { 166&mmc2_8bit_pins {
167 /* Increase drive strength for DDR modes */ 167 /* Increase drive strength for DDR modes */
168 allwinner,drive = <SUN4I_PINCTRL_40_MA>; 168 drive-strength = <40>;
169}; 169};
170 170
171&ohci0 { 171&ohci0 {
@@ -183,31 +183,24 @@
183 183
184&pio { 184&pio {
185 led_pins_optimus: led-pins@0 { 185 led_pins_optimus: led-pins@0 {
186 allwinner,pins = "PH0", "PH1"; 186 pins = "PH0", "PH1";
187 allwinner,function = "gpio_out"; 187 function = "gpio_out";
188 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
189 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
190 }; 188 };
191 189
192 mmc0_cd_pin_optimus: mmc0_cd_pin@0 { 190 mmc0_cd_pin_optimus: mmc0_cd_pin@0 {
193 allwinner,pins = "PH18"; 191 pins = "PH18";
194 allwinner,function = "gpio_in"; 192 function = "gpio_in";
195 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 193 bias-pull-up;
196 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
197 }; 194 };
198 195
199 usb1_vbus_pin_optimus: usb1_vbus_pin@1 { 196 usb1_vbus_pin_optimus: usb1_vbus_pin@1 {
200 allwinner,pins = "PH4"; 197 pins = "PH4";
201 allwinner,function = "gpio_out"; 198 function = "gpio_out";
202 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
203 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
204 }; 199 };
205 200
206 usb3_vbus_pin_optimus: usb3_vbus_pin@1 { 201 usb3_vbus_pin_optimus: usb3_vbus_pin@1 {
207 allwinner,pins = "PH5"; 202 pins = "PH5";
208 allwinner,function = "gpio_out"; 203 function = "gpio_out";
209 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
210 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
211 }; 204 };
212}; 205};
213 206
@@ -217,17 +210,13 @@
217 210
218&r_pio { 211&r_pio {
219 led_r_pins_optimus: led-pins@1 { 212 led_r_pins_optimus: led-pins@1 {
220 allwinner,pins = "PM15"; 213 pins = "PM15";
221 allwinner,function = "gpio_out"; 214 function = "gpio_out";
222 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
223 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
224 }; 215 };
225 216
226 wifi_en_pin_optimus: wifi_en_pin@0 { 217 wifi_en_pin_optimus: wifi_en_pin@0 {
227 allwinner,pins = "PL2"; 218 pins = "PL2";
228 allwinner,function = "gpio_out"; 219 function = "gpio_out";
229 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
230 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
231 }; 220 };
232}; 221};
233 222
diff --git a/arch/arm/boot/dts/sun9i-a80.dtsi b/arch/arm/boot/dts/sun9i-a80.dtsi
index 979ad1aacfb1..03f2ab47ece0 100644
--- a/arch/arm/boot/dts/sun9i-a80.dtsi
+++ b/arch/arm/boot/dts/sun9i-a80.dtsi
@@ -613,7 +613,7 @@
613 gic: interrupt-controller@01c41000 { 613 gic: interrupt-controller@01c41000 {
614 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; 614 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
615 reg = <0x01c41000 0x1000>, 615 reg = <0x01c41000 0x1000>,
616 <0x01c42000 0x1000>, 616 <0x01c42000 0x2000>,
617 <0x01c44000 0x2000>, 617 <0x01c44000 0x2000>,
618 <0x01c46000 0x2000>; 618 <0x01c46000 0x2000>;
619 interrupt-controller; 619 interrupt-controller;
@@ -687,50 +687,44 @@
687 #gpio-cells = <3>; 687 #gpio-cells = <3>;
688 688
689 i2c3_pins_a: i2c3@0 { 689 i2c3_pins_a: i2c3@0 {
690 allwinner,pins = "PG10", "PG11"; 690 pins = "PG10", "PG11";
691 allwinner,function = "i2c3"; 691 function = "i2c3";
692 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
693 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
694 }; 692 };
695 693
696 mmc0_pins: mmc0 { 694 mmc0_pins: mmc0 {
697 allwinner,pins = "PF0", "PF1" ,"PF2", "PF3", 695 pins = "PF0", "PF1" ,"PF2", "PF3",
698 "PF4", "PF5"; 696 "PF4", "PF5";
699 allwinner,function = "mmc0"; 697 function = "mmc0";
700 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 698 drive-strength = <30>;
701 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 699 bias-pull-up;
702 }; 700 };
703 701
704 mmc1_pins: mmc1 { 702 mmc1_pins: mmc1 {
705 allwinner,pins = "PG0", "PG1" ,"PG2", "PG3", 703 pins = "PG0", "PG1" ,"PG2", "PG3",
706 "PG4", "PG5"; 704 "PG4", "PG5";
707 allwinner,function = "mmc1"; 705 function = "mmc1";
708 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 706 drive-strength = <30>;
709 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 707 bias-pull-up;
710 }; 708 };
711 709
712 mmc2_8bit_pins: mmc2_8bit { 710 mmc2_8bit_pins: mmc2_8bit {
713 allwinner,pins = "PC6", "PC7", "PC8", "PC9", 711 pins = "PC6", "PC7", "PC8", "PC9",
714 "PC10", "PC11", "PC12", 712 "PC10", "PC11", "PC12",
715 "PC13", "PC14", "PC15", 713 "PC13", "PC14", "PC15",
716 "PC16"; 714 "PC16";
717 allwinner,function = "mmc2"; 715 function = "mmc2";
718 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 716 drive-strength = <30>;
719 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 717 bias-pull-up;
720 }; 718 };
721 719
722 uart0_pins_a: uart0@0 { 720 uart0_pins_a: uart0@0 {
723 allwinner,pins = "PH12", "PH13"; 721 pins = "PH12", "PH13";
724 allwinner,function = "uart0"; 722 function = "uart0";
725 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
726 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
727 }; 723 };
728 724
729 uart4_pins_a: uart4@0 { 725 uart4_pins_a: uart4@0 {
730 allwinner,pins = "PG12", "PG13", "PG14", "PG15"; 726 pins = "PG12", "PG13", "PG14", "PG15";
731 allwinner,function = "uart4"; 727 function = "uart4";
732 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
733 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
734 }; 728 };
735 }; 729 };
736 730
@@ -912,17 +906,15 @@
912 #gpio-cells = <3>; 906 #gpio-cells = <3>;
913 907
914 r_ir_pins: r_ir { 908 r_ir_pins: r_ir {
915 allwinner,pins = "PL6"; 909 pins = "PL6";
916 allwinner,function = "s_cir_rx"; 910 function = "s_cir_rx";
917 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
918 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
919 }; 911 };
920 912
921 r_rsb_pins: r_rsb { 913 r_rsb_pins: r_rsb {
922 allwinner,pins = "PN0", "PN1"; 914 pins = "PN0", "PN1";
923 allwinner,function = "s_rsb"; 915 function = "s_rsb";
924 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 916 drive-strength = <20>;
925 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 917 bias-pull-up;
926 }; 918 };
927 }; 919 };
928 920
diff --git a/arch/arm/boot/dts/sunxi-common-regulators.dtsi b/arch/arm/boot/dts/sunxi-common-regulators.dtsi
index f1953b0c5059..17c09fed9e84 100644
--- a/arch/arm/boot/dts/sunxi-common-regulators.dtsi
+++ b/arch/arm/boot/dts/sunxi-common-regulators.dtsi
@@ -47,31 +47,23 @@
47 47
48&pio { 48&pio {
49 ahci_pwr_pin_a: ahci_pwr_pin@0 { 49 ahci_pwr_pin_a: ahci_pwr_pin@0 {
50 allwinner,pins = "PB8"; 50 pins = "PB8";
51 allwinner,function = "gpio_out"; 51 function = "gpio_out";
52 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
53 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
54 }; 52 };
55 53
56 usb0_vbus_pin_a: usb0_vbus_pin@0 { 54 usb0_vbus_pin_a: usb0_vbus_pin@0 {
57 allwinner,pins = "PB9"; 55 pins = "PB9";
58 allwinner,function = "gpio_out"; 56 function = "gpio_out";
59 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
60 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
61 }; 57 };
62 58
63 usb1_vbus_pin_a: usb1_vbus_pin@0 { 59 usb1_vbus_pin_a: usb1_vbus_pin@0 {
64 allwinner,pins = "PH6"; 60 pins = "PH6";
65 allwinner,function = "gpio_out"; 61 function = "gpio_out";
66 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
67 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
68 }; 62 };
69 63
70 usb2_vbus_pin_a: usb2_vbus_pin@0 { 64 usb2_vbus_pin_a: usb2_vbus_pin@0 {
71 allwinner,pins = "PH3"; 65 pins = "PH3";
72 allwinner,function = "gpio_out"; 66 function = "gpio_out";
73 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
74 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
75 }; 67 };
76}; 68};
77 69
diff --git a/arch/arm/boot/dts/tango4-common.dtsi b/arch/arm/boot/dts/tango4-common.dtsi
index dd7eb5f624d9..0c8cad4d6ee6 100644
--- a/arch/arm/boot/dts/tango4-common.dtsi
+++ b/arch/arm/boot/dts/tango4-common.dtsi
@@ -97,6 +97,52 @@
97 clocks = <&xtal>; 97 clocks = <&xtal>;
98 }; 98 };
99 99
100 mmc0: mmc@21000 {
101 compatible = "arasan,sdhci-8.9a";
102 reg = <0x21000 0x200>;
103 clock-names = "clk_xin", "clk_ahb";
104 clocks = <&clkgen SDIO_CLK>, <&clkgen SYS_CLK>;
105 interrupts = <60 IRQ_TYPE_LEVEL_HIGH>;
106 };
107
108 mmc1: mmc@21200 {
109 compatible = "arasan,sdhci-8.9a";
110 reg = <0x21200 0x200>;
111 clock-names = "clk_xin", "clk_ahb";
112 clocks = <&clkgen SDIO_CLK>, <&clkgen SYS_CLK>;
113 interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
114 };
115
116 usb0: usb@21400 {
117 compatible = "chipidea,usb2";
118 reg = <0x21400 0x200>;
119 interrupts = <40 IRQ_TYPE_LEVEL_HIGH>;
120 phys = <&usb0_phy>;
121 phy-names = "usb-phy";
122 };
123
124 usb0_phy: phy@21700 {
125 compatible = "sigma,smp8642-usb-phy";
126 reg = <0x21700 0x100>;
127 #phy-cells = <0>;
128 clocks = <&clkgen USB_CLK>;
129 };
130
131 usb1: usb@25400 {
132 compatible = "chipidea,usb2";
133 reg = <0x25400 0x200>;
134 interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
135 phys = <&usb1_phy>;
136 phy-names = "usb-phy";
137 };
138
139 usb1_phy: phy@25700 {
140 compatible = "sigma,smp8642-usb-phy";
141 reg = <0x25700 0x100>;
142 #phy-cells = <0>;
143 clocks = <&clkgen USB_CLK>;
144 };
145
100 eth0: ethernet@26000 { 146 eth0: ethernet@26000 {
101 compatible = "sigma,smp8734-ethernet"; 147 compatible = "sigma,smp8734-ethernet";
102 reg = <0x26000 0x800>; 148 reg = <0x26000 0x800>;
diff --git a/arch/arm/boot/dts/tango4-vantage-1172.dts b/arch/arm/boot/dts/tango4-vantage-1172.dts
index 4cab64cb581e..86d8df98802f 100644
--- a/arch/arm/boot/dts/tango4-vantage-1172.dts
+++ b/arch/arm/boot/dts/tango4-vantage-1172.dts
@@ -8,6 +8,7 @@
8 8
9 aliases { 9 aliases {
10 serial = &uart; 10 serial = &uart;
11 eth0 = &eth0;
11 }; 12 };
12 13
13 memory@80000000 { 14 memory@80000000 {
@@ -34,3 +35,7 @@
34 reg = <4>; 35 reg = <4>;
35 }; 36 };
36}; 37};
38
39&mmc1 {
40 non-removable; /* eMMC */
41};
diff --git a/arch/arm/boot/dts/tegra124-apalis-eval.dts b/arch/arm/boot/dts/tegra124-apalis-eval.dts
index 653044a44f0d..5b860ad5cbee 100644
--- a/arch/arm/boot/dts/tegra124-apalis-eval.dts
+++ b/arch/arm/boot/dts/tegra124-apalis-eval.dts
@@ -187,14 +187,8 @@
187 /* Apalis SD1 */ 187 /* Apalis SD1 */
188 sdhci@700b0400 { 188 sdhci@700b0400 {
189 status = "okay"; 189 status = "okay";
190 /* 190 /* SD1_CD# */
191 * Don't use SD1_CD# aka SDMMC3_CLK_LB_OUT for now as it 191 cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
192 * features some magic properties even though the external
193 * loopback is disabled and the internal loopback used as per
194 * SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits being
195 * set to 0xfffd according to the TRM!
196 * cd-gpios = <&gpio TEGRA_GPIO(EE, 4) GPIO_ACTIVE_LOW>;
197 */
198 bus-width = <4>; 192 bus-width = <4>;
199 vqmmc-supply = <&vddio_sdmmc3>; 193 vqmmc-supply = <&vddio_sdmmc3>;
200 }; 194 };
diff --git a/arch/arm/boot/dts/tegra124-apalis.dtsi b/arch/arm/boot/dts/tegra124-apalis.dtsi
index 0819721dda59..f9e623bdd5c3 100644
--- a/arch/arm/boot/dts/tegra124-apalis.dtsi
+++ b/arch/arm/boot/dts/tegra124-apalis.dtsi
@@ -44,7 +44,7 @@
44 44
45/* 45/*
46 * Toradex Apalis TK1 Module Device Tree 46 * Toradex Apalis TK1 Module Device Tree
47 * Compatible for Revisions 2GB: V1.0A 47 * Compatible for Revisions 2GB: V1.0A, V1.0B, V1.1A
48 */ 48 */
49/ { 49/ {
50 model = "Toradex Apalis TK1"; 50 model = "Toradex Apalis TK1";
@@ -257,7 +257,7 @@
257 }; 257 };
258 dp_hpd_pff0 { 258 dp_hpd_pff0 {
259 nvidia,pins = "dp_hpd_pff0"; 259 nvidia,pins = "dp_hpd_pff0";
260 nvidia,function = "rsvd2"; 260 nvidia,function = "dp";
261 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 261 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
262 nvidia,tristate = <TEGRA_PIN_DISABLE>; 262 nvidia,tristate = <TEGRA_PIN_DISABLE>;
263 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 263 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
@@ -416,18 +416,10 @@
416 nvidia,tristate = <TEGRA_PIN_DISABLE>; 416 nvidia,tristate = <TEGRA_PIN_DISABLE>;
417 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 417 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
418 }; 418 };
419 /*
420 * Don't use MMC1_D6 aka SDMMC3_CLK_LB_IN for now as it
421 * features some magic properties even though the
422 * external loopback is disabled and the internal
423 * loopback used as per SDMMC_VENDOR_MISC_CNTRL_0
424 * register's SDMMC_SPARE1 bits being set to 0xfffd
425 * according to the TRM!
426 */
427 sdmmc3_clk_lb_in_pee5 { /* D6 GPIO */ 419 sdmmc3_clk_lb_in_pee5 { /* D6 GPIO */
428 nvidia,pins = "sdmmc3_clk_lb_in_pee5"; 420 nvidia,pins = "sdmmc3_clk_lb_in_pee5";
429 nvidia,function = "sdmmc3"; 421 nvidia,function = "rsvd2";
430 nvidia,pull = <TEGRA_PIN_PULL_UP>; 422 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
431 nvidia,tristate = <TEGRA_PIN_DISABLE>; 423 nvidia,tristate = <TEGRA_PIN_DISABLE>;
432 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 424 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
433 }; 425 };
@@ -522,20 +514,12 @@
522 nvidia,tristate = <TEGRA_PIN_DISABLE>; 514 nvidia,tristate = <TEGRA_PIN_DISABLE>;
523 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 515 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
524 }; 516 };
525 /* 517 sdmmc3_cd_n_pv2 { /* CD# GPIO */
526 * Don't use SD1_CD# aka SDMMC3_CLK_LB_OUT for now as it 518 nvidia,pins = "sdmmc3_cd_n_pv2";
527 * features some magic properties even though the 519 nvidia,function = "rsvd3";
528 * external loopback is disabled and the internal 520 nvidia,pull = <TEGRA_PIN_PULL_UP>;
529 * loopback used as per SDMMC_VENDOR_MISC_CNTRL_0
530 * register's SDMMC_SPARE1 bits being set to 0xfffd
531 * according to the TRM!
532 */
533 sdmmc3_clk_lb_out_pee4 { /* CD# GPIO */
534 nvidia,pins = "sdmmc3_clk_lb_out_pee4";
535 nvidia,function = "rsvd2";
536 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
537 nvidia,tristate = <TEGRA_PIN_ENABLE>; 521 nvidia,tristate = <TEGRA_PIN_ENABLE>;
538 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 522 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
539 }; 523 };
540 524
541 /* Apalis SPDIF */ 525 /* Apalis SPDIF */
@@ -1153,11 +1137,11 @@
1153 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1137 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1154 }; 1138 };
1155 1139
1156 /* GPIO_PI6 aka TEMP_ALERT_L */ 1140 /* GPIO_PI6 aka TMP451 ALERT#/THERM2# */
1157 pi6 { 1141 pi6 {
1158 nvidia,pins = "pi6"; 1142 nvidia,pins = "pi6";
1159 nvidia,function = "rsvd1"; 1143 nvidia,function = "rsvd1";
1160 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1144 nvidia,pull = <TEGRA_PIN_PULL_UP>;
1161 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1145 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1162 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1146 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
1163 }; 1147 };
@@ -1514,13 +1498,6 @@
1514 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1498 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1515 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1499 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1516 }; 1500 };
1517 sdmmc3_cd_n_pv2 { /* NC */
1518 nvidia,pins = "sdmmc3_cd_n_pv2";
1519 nvidia,function = "rsvd3";
1520 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1521 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1522 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1523 };
1524 gpio_x1_aud_px1 { /* NC */ 1501 gpio_x1_aud_px1 { /* NC */
1525 nvidia,pins = "gpio_x1_aud_px1"; 1502 nvidia,pins = "gpio_x1_aud_px1";
1526 nvidia,function = "rsvd2"; 1503 nvidia,function = "rsvd2";
@@ -1570,6 +1547,22 @@
1570 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1547 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1571 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1548 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1572 }; 1549 };
1550 /*
1551 * Leave SDMMC3_CLK_LB_OUT muxed as SDMMC3 with output
1552 * driver enabled aka not tristated and input driver
1553 * enabled as well as it features some magic properties
1554 * even though the external loopback is disabled and the
1555 * internal loopback used as per
1556 * SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1
1557 * bits being set to 0xfffd according to the TRM!
1558 */
1559 sdmmc3_clk_lb_out_pee4 { /* NC */
1560 nvidia,pins = "sdmmc3_clk_lb_out_pee4";
1561 nvidia,function = "sdmmc3";
1562 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
1563 nvidia,tristate = <TEGRA_PIN_DISABLE>;
1564 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
1565 };
1573 }; 1566 };
1574 }; 1567 };
1575 1568
diff --git a/arch/arm/boot/dts/tegra124-nyan-big.dts b/arch/arm/boot/dts/tegra124-nyan-big.dts
index 67d7cfb32541..12eb7809d9ab 100644
--- a/arch/arm/boot/dts/tegra124-nyan-big.dts
+++ b/arch/arm/boot/dts/tegra124-nyan-big.dts
@@ -6,7 +6,11 @@
6 6
7/ { 7/ {
8 model = "Acer Chromebook 13 CB5-311"; 8 model = "Acer Chromebook 13 CB5-311";
9 compatible = "google,nyan-big", "nvidia,tegra124"; 9 compatible = "google,nyan-big-rev7", "google,nyan-big-rev6",
10 "google,nyan-big-rev5", "google,nyan-big-rev4",
11 "google,nyan-big-rev3", "google,nyan-big-rev2",
12 "google,nyan-big-rev1", "google,nyan-big-rev0",
13 "google,nyan-big", "google,nyan", "nvidia,tegra124";
10 14
11 panel: panel { 15 panel: panel {
12 compatible = "auo,b133xtn01"; 16 compatible = "auo,b133xtn01";
@@ -1098,19 +1102,19 @@
1098 }; 1102 };
1099 cam_i2c_scl_pbb1 { 1103 cam_i2c_scl_pbb1 {
1100 nvidia,pins = "cam_i2c_scl_pbb1"; 1104 nvidia,pins = "cam_i2c_scl_pbb1";
1101 nvidia,function = "rsvd3"; 1105 nvidia,function = "i2c3";
1102 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1106 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
1103 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1107 nvidia,tristate = <TEGRA_PIN_DISABLE>;
1104 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1108 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
1105 nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1109 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
1106 }; 1110 };
1107 cam_i2c_sda_pbb2 { 1111 cam_i2c_sda_pbb2 {
1108 nvidia,pins = "cam_i2c_sda_pbb2"; 1112 nvidia,pins = "cam_i2c_sda_pbb2";
1109 nvidia,function = "rsvd3"; 1113 nvidia,function = "i2c3";
1110 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1114 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
1111 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1115 nvidia,tristate = <TEGRA_PIN_DISABLE>;
1112 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1116 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
1113 nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1117 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
1114 }; 1118 };
1115 pbb3 { 1119 pbb3 {
1116 nvidia,pins = "pbb3"; 1120 nvidia,pins = "pbb3";
diff --git a/arch/arm/boot/dts/tegra124-nyan-blaze.dts b/arch/arm/boot/dts/tegra124-nyan-blaze.dts
index c9582361c26e..1078a73d5092 100644
--- a/arch/arm/boot/dts/tegra124-nyan-blaze.dts
+++ b/arch/arm/boot/dts/tegra124-nyan-blaze.dts
@@ -6,7 +6,13 @@
6 6
7/ { 7/ {
8 model = "HP Chromebook 14"; 8 model = "HP Chromebook 14";
9 compatible = "google,nyan-blaze", "google,nyan", "nvidia,tegra124"; 9 compatible = "google,nyan-blaze-rev10", "google,nyan-blaze-rev9",
10 "google,nyan-blaze-rev8", "google,nyan-blaze-rev7",
11 "google,nyan-blaze-rev6", "google,nyan-blaze-rev5",
12 "google,nyan-blaze-rev4", "google,nyan-blaze-rev3",
13 "google,nyan-blaze-rev2", "google,nyan-blaze-rev1",
14 "google,nyan-blaze-rev0", "google,nyan-blaze",
15 "google,nyan", "nvidia,tegra124";
10 16
11 panel: panel { 17 panel: panel {
12 compatible = "samsung,ltn140at29-301"; 18 compatible = "samsung,ltn140at29-301";
@@ -1094,19 +1100,19 @@
1094 }; 1100 };
1095 cam_i2c_scl_pbb1 { 1101 cam_i2c_scl_pbb1 {
1096 nvidia,pins = "cam_i2c_scl_pbb1"; 1102 nvidia,pins = "cam_i2c_scl_pbb1";
1097 nvidia,function = "rsvd3"; 1103 nvidia,function = "i2c3";
1098 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1104 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
1099 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1105 nvidia,tristate = <TEGRA_PIN_DISABLE>;
1100 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1106 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
1101 nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1107 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
1102 }; 1108 };
1103 cam_i2c_sda_pbb2 { 1109 cam_i2c_sda_pbb2 {
1104 nvidia,pins = "cam_i2c_sda_pbb2"; 1110 nvidia,pins = "cam_i2c_sda_pbb2";
1105 nvidia,function = "rsvd3"; 1111 nvidia,function = "i2c3";
1106 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1112 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
1107 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1113 nvidia,tristate = <TEGRA_PIN_DISABLE>;
1108 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1114 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
1109 nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1115 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
1110 }; 1116 };
1111 pbb3 { 1117 pbb3 {
1112 nvidia,pins = "pbb3"; 1118 nvidia,pins = "pbb3";
diff --git a/arch/arm/boot/dts/tegra124-nyan.dtsi b/arch/arm/boot/dts/tegra124-nyan.dtsi
index eabfa655a3cd..5cf987b5401e 100644
--- a/arch/arm/boot/dts/tegra124-nyan.dtsi
+++ b/arch/arm/boot/dts/tegra124-nyan.dtsi
@@ -65,7 +65,7 @@
65 compatible = "maxim,max98090"; 65 compatible = "maxim,max98090";
66 reg = <0x10>; 66 reg = <0x10>;
67 interrupt-parent = <&gpio>; 67 interrupt-parent = <&gpio>;
68 interrupts = <TEGRA_GPIO(H, 4) GPIO_ACTIVE_HIGH>; 68 interrupts = <TEGRA_GPIO(H, 4) IRQ_TYPE_EDGE_FALLING>;
69 }; 69 };
70 70
71 temperature-sensor@4c { 71 temperature-sensor@4c {
@@ -331,10 +331,11 @@
331 reg = <0x9>; 331 reg = <0x9>;
332 interrupt-parent = <&gpio>; 332 interrupt-parent = <&gpio>;
333 interrupts = <TEGRA_GPIO(J, 0) 333 interrupts = <TEGRA_GPIO(J, 0)
334 GPIO_ACTIVE_HIGH>; 334 IRQ_TYPE_EDGE_BOTH>;
335 ti,ac-detect-gpios = <&gpio 335 ti,ac-detect-gpios = <&gpio
336 TEGRA_GPIO(J, 0) 336 TEGRA_GPIO(J, 0)
337 GPIO_ACTIVE_HIGH>; 337 GPIO_ACTIVE_HIGH>;
338 ti,external-control;
338 }; 339 };
339 340
340 battery: sbs-battery@b { 341 battery: sbs-battery@b {
diff --git a/arch/arm/boot/dts/tegra20-paz00.dts b/arch/arm/boot/dts/tegra20-paz00.dts
index 4e361a8c167e..b4bfa5586c23 100644
--- a/arch/arm/boot/dts/tegra20-paz00.dts
+++ b/arch/arm/boot/dts/tegra20-paz00.dts
@@ -569,6 +569,7 @@
569 regulator-name = "+3VS,vdd_pnl"; 569 regulator-name = "+3VS,vdd_pnl";
570 regulator-min-microvolt = <3300000>; 570 regulator-min-microvolt = <3300000>;
571 regulator-max-microvolt = <3300000>; 571 regulator-max-microvolt = <3300000>;
572 regulator-boot-on;
572 gpio = <&gpio TEGRA_GPIO(A, 4) GPIO_ACTIVE_HIGH>; 573 gpio = <&gpio TEGRA_GPIO(A, 4) GPIO_ACTIVE_HIGH>;
573 enable-active-high; 574 enable-active-high;
574 }; 575 };
diff --git a/arch/arm/boot/dts/tegra20-trimslice.dts b/arch/arm/boot/dts/tegra20-trimslice.dts
index 381747f114a9..87b07fbadbbe 100644
--- a/arch/arm/boot/dts/tegra20-trimslice.dts
+++ b/arch/arm/boot/dts/tegra20-trimslice.dts
@@ -366,6 +366,7 @@
366 366
367 sdhci@c8000000 { 367 sdhci@c8000000 {
368 status = "okay"; 368 status = "okay";
369 broken-cd;
369 bus-width = <4>; 370 bus-width = <4>;
370 }; 371 };
371 372
diff --git a/arch/arm/boot/dts/uniphier-pinctrl.dtsi b/arch/arm/boot/dts/uniphier-pinctrl.dtsi
index 10a711041b4a..8ee79da9af7c 100644
--- a/arch/arm/boot/dts/uniphier-pinctrl.dtsi
+++ b/arch/arm/boot/dts/uniphier-pinctrl.dtsi
@@ -1,7 +1,8 @@
1/* 1/*
2 * Device Tree Source for UniPhier SoCs default pinctrl settings 2 * Device Tree Source for UniPhier SoCs default pinctrl settings
3 * 3 *
4 * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com> 4 * Copyright (C) 2015-2017 Socionext Inc.
5 * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
5 * 6 *
6 * This file is dual-licensed: you can use it either under the terms 7 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual 8 * of the GPL or the X11 license, at your option. Note that this dual
@@ -43,6 +44,11 @@
43 */ 44 */
44 45
45&pinctrl { 46&pinctrl {
47 pinctrl_emmc: emmc_grp {
48 groups = "emmc";
49 function = "emmc";
50 };
51
46 pinctrl_i2c0: i2c0_grp { 52 pinctrl_i2c0: i2c0_grp {
47 groups = "i2c0"; 53 groups = "i2c0";
48 function = "i2c0"; 54 function = "i2c0";
@@ -78,6 +84,16 @@
78 function = "nand"; 84 function = "nand";
79 }; 85 };
80 86
87 pinctrl_sd: sd_grp {
88 groups = "sd";
89 function = "sd";
90 };
91
92 pinctrl_sd1: sd1_grp {
93 groups = "sd1";
94 function = "sd1";
95 };
96
81 pinctrl_system_bus: system_bus_grp { 97 pinctrl_system_bus: system_bus_grp {
82 groups = "system_bus", "system_bus_cs1"; 98 groups = "system_bus", "system_bus_cs1";
83 function = "system_bus"; 99 function = "system_bus";
diff --git a/arch/arm/boot/dts/vf-colibri-eval-v3.dtsi b/arch/arm/boot/dts/vf-colibri-eval-v3.dtsi
index 1e0b823f7e8f..091b738041a0 100644
--- a/arch/arm/boot/dts/vf-colibri-eval-v3.dtsi
+++ b/arch/arm/boot/dts/vf-colibri-eval-v3.dtsi
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/vf-colibri.dtsi b/arch/arm/boot/dts/vf-colibri.dtsi
index 21bfef957b68..b6a1eeeb2bb4 100644
--- a/arch/arm/boot/dts/vf-colibri.dtsi
+++ b/arch/arm/boot/dts/vf-colibri.dtsi
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/vf500-colibri-eval-v3.dts b/arch/arm/boot/dts/vf500-colibri-eval-v3.dts
index b3aeab58f718..076998968fb5 100644
--- a/arch/arm/boot/dts/vf500-colibri-eval-v3.dts
+++ b/arch/arm/boot/dts/vf500-colibri-eval-v3.dts
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/vf500-colibri.dtsi b/arch/arm/boot/dts/vf500-colibri.dtsi
index 1a8a0efa19a6..515c4d2f28b0 100644
--- a/arch/arm/boot/dts/vf500-colibri.dtsi
+++ b/arch/arm/boot/dts/vf500-colibri.dtsi
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/vf500.dtsi b/arch/arm/boot/dts/vf500.dtsi
index d7fdb2a7d97b..3d9896171bfc 100644
--- a/arch/arm/boot/dts/vf500.dtsi
+++ b/arch/arm/boot/dts/vf500.dtsi
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/vf610-colibri-eval-v3.dts b/arch/arm/boot/dts/vf610-colibri-eval-v3.dts
index dbca4f86fdbb..ef9b4d6209f6 100644
--- a/arch/arm/boot/dts/vf610-colibri-eval-v3.dts
+++ b/arch/arm/boot/dts/vf610-colibri-eval-v3.dts
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/vf610-colibri.dtsi b/arch/arm/boot/dts/vf610-colibri.dtsi
index 9ec9e337f5a8..395812c52933 100644
--- a/arch/arm/boot/dts/vf610-colibri.dtsi
+++ b/arch/arm/boot/dts/vf610-colibri.dtsi
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/vf610-twr.dts b/arch/arm/boot/dts/vf610-twr.dts
index cdc100732514..53e3b8b250c6 100644
--- a/arch/arm/boot/dts/vf610-twr.dts
+++ b/arch/arm/boot/dts/vf610-twr.dts
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts b/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts
index 958b4c42d320..7940408838df 100644
--- a/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts
+++ b/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts
@@ -13,17 +13,17 @@
13 * modify it under the terms of the GNU General Public License 13 * modify it under the terms of the GNU General Public License
14 * version 2 as published by the Free Software Foundation. 14 * version 2 as published by the Free Software Foundation.
15 * 15 *
16 * This file is distributed in the hope that it will be useful 16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details. 19 * GNU General Public License for more details.
20 * 20 *
21 * Or, alternatively 21 * Or, alternatively,
22 * 22 *
23 * b) Permission is hereby granted, free of charge, to any person 23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation 24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without 25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use 26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or 27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the 28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following 29 * Software is furnished to do so, subject to the following
@@ -32,43 +32,23 @@
32 * The above copyright notice and this permission notice shall be 32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software. 33 * included in all copies or substantial portions of the Software.
34 * 34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
43 */ 43 */
44 44
45/dts-v1/; 45/dts-v1/;
46#include "vf610.dtsi" 46#include "vf610-zii-dev.dtsi"
47 47
48/ { 48/ {
49 model = "ZII VF610 Development Board, Rev B"; 49 model = "ZII VF610 Development Board, Rev B";
50 compatible = "zii,vf610dev-b", "zii,vf610dev", "fsl,vf610"; 50 compatible = "zii,vf610dev-b", "zii,vf610dev", "fsl,vf610";
51 51
52 chosen {
53 stdout-path = "serial0:115200n8";
54 };
55
56 memory {
57 reg = <0x80000000 0x20000000>;
58 };
59
60 gpio-leds {
61 compatible = "gpio-leds";
62 pinctrl-0 = <&pinctrl_leds_debug>;
63 pinctrl-names = "default";
64
65 debug {
66 label = "zii:green:debug1";
67 gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
68 linux,default-trigger = "heartbeat";
69 };
70 };
71
72 mdio-mux { 52 mdio-mux {
73 compatible = "mdio-mux-gpio"; 53 compatible = "mdio-mux-gpio";
74 pinctrl-0 = <&pinctrl_mdio_mux>; 54 pinctrl-0 = <&pinctrl_mdio_mux>;
@@ -86,7 +66,7 @@
86 #address-cells = <1>; 66 #address-cells = <1>;
87 #size-cells = <0>; 67 #size-cells = <0>;
88 68
89 switch0: switch0@0 { 69 switch0: switch@0 {
90 compatible = "marvell,mv88e6085"; 70 compatible = "marvell,mv88e6085";
91 pinctrl-0 = <&pinctrl_gpio_switch0>; 71 pinctrl-0 = <&pinctrl_gpio_switch0>;
92 pinctrl-names = "default"; 72 pinctrl-names = "default";
@@ -102,6 +82,7 @@
102 ports { 82 ports {
103 #address-cells = <1>; 83 #address-cells = <1>;
104 #size-cells = <0>; 84 #size-cells = <0>;
85
105 port@0 { 86 port@0 {
106 reg = <0>; 87 reg = <0>;
107 label = "lan0"; 88 label = "lan0";
@@ -136,6 +117,7 @@
136 reg = <6>; 117 reg = <6>;
137 label = "cpu"; 118 label = "cpu";
138 ethernet = <&fec1>; 119 ethernet = <&fec1>;
120
139 fixed-link { 121 fixed-link {
140 speed = <100>; 122 speed = <100>;
141 full-duplex; 123 full-duplex;
@@ -169,7 +151,7 @@
169 #address-cells = <1>; 151 #address-cells = <1>;
170 #size-cells = <0>; 152 #size-cells = <0>;
171 153
172 switch1: switch1@0 { 154 switch1: switch@0 {
173 compatible = "marvell,mv88e6085"; 155 compatible = "marvell,mv88e6085";
174 pinctrl-0 = <&pinctrl_gpio_switch1>; 156 pinctrl-0 = <&pinctrl_gpio_switch1>;
175 pinctrl-names = "default"; 157 pinctrl-names = "default";
@@ -185,6 +167,7 @@
185 ports { 167 ports {
186 #address-cells = <1>; 168 #address-cells = <1>;
187 #size-cells = <0>; 169 #size-cells = <0>;
170
188 port@0 { 171 port@0 {
189 reg = <0>; 172 reg = <0>;
190 label = "lan3"; 173 label = "lan3";
@@ -208,6 +191,7 @@
208 label = "dsa"; 191 label = "dsa";
209 link = <&switch2port9>; 192 link = <&switch2port9>;
210 phy-mode = "rgmii-txid"; 193 phy-mode = "rgmii-txid";
194
211 fixed-link { 195 fixed-link {
212 speed = <1000>; 196 speed = <1000>;
213 full-duplex; 197 full-duplex;
@@ -228,16 +212,19 @@
228 mdio { 212 mdio {
229 #address-cells = <1>; 213 #address-cells = <1>;
230 #size-cells = <0>; 214 #size-cells = <0>;
215
231 switch1phy0: switch1phy0@0 { 216 switch1phy0: switch1phy0@0 {
232 reg = <0>; 217 reg = <0>;
233 interrupt-parent = <&switch1>; 218 interrupt-parent = <&switch1>;
234 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>; 219 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
235 }; 220 };
221
236 switch1phy1: switch1phy0@1 { 222 switch1phy1: switch1phy0@1 {
237 reg = <1>; 223 reg = <1>;
238 interrupt-parent = <&switch1>; 224 interrupt-parent = <&switch1>;
239 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>; 225 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
240 }; 226 };
227
241 switch1phy2: switch1phy0@2 { 228 switch1phy2: switch1phy0@2 {
242 reg = <2>; 229 reg = <2>;
243 interrupt-parent = <&switch1>; 230 interrupt-parent = <&switch1>;
@@ -262,6 +249,7 @@
262 ports { 249 ports {
263 #address-cells = <1>; 250 #address-cells = <1>;
264 #size-cells = <0>; 251 #size-cells = <0>;
252
265 port@0 { 253 port@0 {
266 reg = <0>; 254 reg = <0>;
267 label = "lan6"; 255 label = "lan6";
@@ -280,6 +268,7 @@
280 port@3 { 268 port@3 {
281 reg = <3>; 269 reg = <3>;
282 label = "optical3"; 270 label = "optical3";
271
283 fixed-link { 272 fixed-link {
284 speed = <1000>; 273 speed = <1000>;
285 full-duplex; 274 full-duplex;
@@ -291,6 +280,7 @@
291 port@4 { 280 port@4 {
292 reg = <4>; 281 reg = <4>;
293 label = "optical4"; 282 label = "optical4";
283
294 fixed-link { 284 fixed-link {
295 speed = <1000>; 285 speed = <1000>;
296 full-duplex; 286 full-duplex;
@@ -305,6 +295,7 @@
305 phy-mode = "rgmii-txid"; 295 phy-mode = "rgmii-txid";
306 link = <&switch1port5 296 link = <&switch1port5
307 &switch0port5>; 297 &switch0port5>;
298
308 fixed-link { 299 fixed-link {
309 speed = <1000>; 300 speed = <1000>;
310 full-duplex; 301 full-duplex;
@@ -321,25 +312,6 @@
321 }; 312 };
322 }; 313 };
323 314
324 reg_vcc_3v3_mcu: regulator-vcc-3v3-mcu {
325 compatible = "regulator-fixed";
326 regulator-name = "vcc_3v3_mcu";
327 regulator-min-microvolt = <3300000>;
328 regulator-max-microvolt = <3300000>;
329 };
330
331 usb0_vbus: regulator-usb0-vbus {
332 compatible = "regulator-fixed";
333 pinctrl-0 = <&pinctrl_usb_vbus>;
334 regulator-name = "usb_vbus";
335 regulator-min-microvolt = <5000000>;
336 regulator-max-microvolt = <5000000>;
337 enable-active-high;
338 regulator-always-on;
339 regulator-boot-on;
340 gpio = <&gpio0 6 0>;
341 };
342
343 spi0 { 315 spi0 {
344 compatible = "spi-gpio"; 316 compatible = "spi-gpio";
345 pinctrl-0 = <&pinctrl_gpio_spi0>; 317 pinctrl-0 = <&pinctrl_gpio_spi0>;
@@ -376,49 +348,6 @@
376 }; 348 };
377}; 349};
378 350
379&adc0 {
380 pinctrl-names = "default";
381 pinctrl-0 = <&pinctrl_adc0_ad5>;
382 vref-supply = <&reg_vcc_3v3_mcu>;
383 status = "okay";
384};
385
386&edma0 {
387 status = "okay";
388};
389
390&esdhc1 {
391 pinctrl-names = "default";
392 pinctrl-0 = <&pinctrl_esdhc1>;
393 bus-width = <4>;
394 status = "okay";
395};
396
397&fec0 {
398 phy-mode = "rmii";
399 pinctrl-names = "default";
400 pinctrl-0 = <&pinctrl_fec0>;
401 status = "okay";
402};
403
404&fec1 {
405 phy-mode = "rmii";
406 pinctrl-names = "default";
407 pinctrl-0 = <&pinctrl_fec1>;
408 status = "okay";
409
410 fixed-link {
411 speed = <100>;
412 full-duplex;
413 };
414
415 mdio1: mdio {
416 #address-cells = <1>;
417 #size-cells = <0>;
418 status = "okay";
419 };
420};
421
422&i2c0 { 351&i2c0 {
423 clock-frequency = <100000>; 352 clock-frequency = <100000>;
424 pinctrl-names = "default"; 353 pinctrl-names = "default";
@@ -443,33 +372,6 @@
443 interrupt-parent = <&gpio2>; 372 interrupt-parent = <&gpio2>;
444 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 373 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
445 }; 374 };
446
447 lm75@48 {
448 compatible = "national,lm75";
449 reg = <0x48>;
450 };
451
452 at24c04@50 {
453 compatible = "atmel,24c04";
454 reg = <0x50>;
455 };
456
457 at24c04@52 {
458 compatible = "atmel,24c04";
459 reg = <0x52>;
460 };
461
462 ds1682@6b {
463 compatible = "dallas,ds1682";
464 reg = <0x6b>;
465 };
466};
467
468&i2c1 {
469 clock-frequency = <100000>;
470 pinctrl-names = "default";
471 pinctrl-0 = <&pinctrl_i2c1>;
472 status = "okay";
473}; 375};
474 376
475&i2c2 { 377&i2c2 {
@@ -539,120 +441,8 @@
539 }; 441 };
540}; 442};
541 443
542&uart0 {
543 pinctrl-names = "default";
544 pinctrl-0 = <&pinctrl_uart0>;
545 status = "okay";
546};
547
548&uart1 {
549 pinctrl-names = "default";
550 pinctrl-0 = <&pinctrl_uart1>;
551 status = "okay";
552};
553
554&uart2 {
555 pinctrl-names = "default";
556 pinctrl-0 = <&pinctrl_uart2>;
557 status = "okay";
558};
559
560&usbdev0 {
561 disable-over-current;
562 vbus-supply = <&usb0_vbus>;
563 dr_mode = "host";
564 status = "okay";
565};
566
567&usbh1 {
568 disable-over-current;
569 status = "okay";
570};
571
572&usbmisc0 {
573 status = "okay";
574};
575
576&usbmisc1 {
577 status = "okay";
578};
579
580&usbphy0 {
581 status = "okay";
582};
583
584&usbphy1 {
585 status = "okay";
586};
587 444
588&iomuxc { 445&iomuxc {
589 pinctrl_adc0_ad5: adc0ad5grp {
590 fsl,pins = <
591 VF610_PAD_PTC30__ADC0_SE5 0x00a1
592 >;
593 };
594
595 pinctrl_dspi0: dspi0grp {
596 fsl,pins = <
597 VF610_PAD_PTB18__DSPI0_CS1 0x1182
598 VF610_PAD_PTB19__DSPI0_CS0 0x1182
599 VF610_PAD_PTB20__DSPI0_SIN 0x1181
600 VF610_PAD_PTB21__DSPI0_SOUT 0x1182
601 VF610_PAD_PTB22__DSPI0_SCK 0x1182
602 >;
603 };
604
605 pinctrl_dspi2: dspi2grp {
606 fsl,pins = <
607 VF610_PAD_PTD31__DSPI2_CS1 0x1182
608 VF610_PAD_PTD30__DSPI2_CS0 0x1182
609 VF610_PAD_PTD29__DSPI2_SIN 0x1181
610 VF610_PAD_PTD28__DSPI2_SOUT 0x1182
611 VF610_PAD_PTD27__DSPI2_SCK 0x1182
612 >;
613 };
614
615 pinctrl_esdhc1: esdhc1grp {
616 fsl,pins = <
617 VF610_PAD_PTA24__ESDHC1_CLK 0x31ef
618 VF610_PAD_PTA25__ESDHC1_CMD 0x31ef
619 VF610_PAD_PTA26__ESDHC1_DAT0 0x31ef
620 VF610_PAD_PTA27__ESDHC1_DAT1 0x31ef
621 VF610_PAD_PTA28__ESDHC1_DATA2 0x31ef
622 VF610_PAD_PTA29__ESDHC1_DAT3 0x31ef
623 VF610_PAD_PTA7__GPIO_134 0x219d
624 >;
625 };
626
627 pinctrl_fec0: fec0grp {
628 fsl,pins = <
629 VF610_PAD_PTC0__ENET_RMII0_MDC 0x30d2
630 VF610_PAD_PTC1__ENET_RMII0_MDIO 0x30d3
631 VF610_PAD_PTC2__ENET_RMII0_CRS 0x30d1
632 VF610_PAD_PTC3__ENET_RMII0_RXD1 0x30d1
633 VF610_PAD_PTC4__ENET_RMII0_RXD0 0x30d1
634 VF610_PAD_PTC5__ENET_RMII0_RXER 0x30d1
635 VF610_PAD_PTC6__ENET_RMII0_TXD1 0x30d2
636 VF610_PAD_PTC7__ENET_RMII0_TXD0 0x30d2
637 VF610_PAD_PTC8__ENET_RMII0_TXEN 0x30d2
638 >;
639 };
640
641 pinctrl_fec1: fec1grp {
642 fsl,pins = <
643 VF610_PAD_PTA6__RMII_CLKIN 0x30d1
644 VF610_PAD_PTC9__ENET_RMII1_MDC 0x30d2
645 VF610_PAD_PTC10__ENET_RMII1_MDIO 0x30d3
646 VF610_PAD_PTC11__ENET_RMII1_CRS 0x30d1
647 VF610_PAD_PTC12__ENET_RMII1_RXD1 0x30d1
648 VF610_PAD_PTC13__ENET_RMII1_RXD0 0x30d1
649 VF610_PAD_PTC14__ENET_RMII1_RXER 0x30d1
650 VF610_PAD_PTC15__ENET_RMII1_TXD1 0x30d2
651 VF610_PAD_PTC16__ENET_RMII1_TXD0 0x30d2
652 VF610_PAD_PTC17__ENET_RMII1_TXEN 0x30d2
653 >;
654 };
655
656 pinctrl_gpio_e6185_eeprom_sel: pinctrl-gpio-e6185-eeprom-spi0 { 446 pinctrl_gpio_e6185_eeprom_sel: pinctrl-gpio-e6185-eeprom-spi0 {
657 fsl,pins = < 447 fsl,pins = <
658 VF610_PAD_PTE27__GPIO_132 0x33e2 448 VF610_PAD_PTE27__GPIO_132 0x33e2
@@ -681,39 +471,6 @@
681 >; 471 >;
682 }; 472 };
683 473
684 pinctrl_i2c_mux_reset: pinctrl-i2c-mux-reset {
685 fsl,pins = <
686 VF610_PAD_PTE14__GPIO_119 0x31c2
687 >;
688 };
689
690 pinctrl_i2c0: i2c0grp {
691 fsl,pins = <
692 VF610_PAD_PTB14__I2C0_SCL 0x37ff
693 VF610_PAD_PTB15__I2C0_SDA 0x37ff
694 >;
695 };
696
697 pinctrl_i2c1: i2c1grp {
698 fsl,pins = <
699 VF610_PAD_PTB16__I2C1_SCL 0x37ff
700 VF610_PAD_PTB17__I2C1_SDA 0x37ff
701 >;
702 };
703
704 pinctrl_i2c2: i2c2grp {
705 fsl,pins = <
706 VF610_PAD_PTA22__I2C2_SCL 0x37ff
707 VF610_PAD_PTA23__I2C2_SDA 0x37ff
708 >;
709 };
710
711 pinctrl_leds_debug: pinctrl-leds-debug {
712 fsl,pins = <
713 VF610_PAD_PTD20__GPIO_74 0x31c2
714 >;
715 };
716
717 pinctrl_mdio_mux: pinctrl-mdio-mux { 474 pinctrl_mdio_mux: pinctrl-mdio-mux {
718 fsl,pins = < 475 fsl,pins = <
719 VF610_PAD_PTA18__GPIO_8 0x31c2 476 VF610_PAD_PTA18__GPIO_8 0x31c2
@@ -728,57 +485,4 @@
728 VF610_PAD_PTB28__GPIO_98 0x219d 485 VF610_PAD_PTB28__GPIO_98 0x219d
729 >; 486 >;
730 }; 487 };
731
732 pinctrl_pwm0: pwm0grp {
733 fsl,pins = <
734 VF610_PAD_PTB0__FTM0_CH0 0x1582
735 VF610_PAD_PTB1__FTM0_CH1 0x1582
736 VF610_PAD_PTB2__FTM0_CH2 0x1582
737 VF610_PAD_PTB3__FTM0_CH3 0x1582
738 >;
739 };
740
741 pinctrl_qspi0: qspi0grp {
742 fsl,pins = <
743 VF610_PAD_PTD7__QSPI0_B_QSCK 0x31c3
744 VF610_PAD_PTD8__QSPI0_B_CS0 0x31ff
745 VF610_PAD_PTD9__QSPI0_B_DATA3 0x31c3
746 VF610_PAD_PTD10__QSPI0_B_DATA2 0x31c3
747 VF610_PAD_PTD11__QSPI0_B_DATA1 0x31c3
748 VF610_PAD_PTD12__QSPI0_B_DATA0 0x31c3
749 >;
750 };
751
752 pinctrl_uart0: uart0grp {
753 fsl,pins = <
754 VF610_PAD_PTB10__UART0_TX 0x21a2
755 VF610_PAD_PTB11__UART0_RX 0x21a1
756 >;
757 };
758
759 pinctrl_uart1: uart1grp {
760 fsl,pins = <
761 VF610_PAD_PTB23__UART1_TX 0x21a2
762 VF610_PAD_PTB24__UART1_RX 0x21a1
763 >;
764 };
765
766 pinctrl_uart2: uart2grp {
767 fsl,pins = <
768 VF610_PAD_PTD0__UART2_TX 0x21a2
769 VF610_PAD_PTD1__UART2_RX 0x21a1
770 >;
771 };
772
773 pinctrl_usb_vbus: pinctrl-usb-vbus {
774 fsl,pins = <
775 VF610_PAD_PTA16__GPIO_6 0x31c2
776 >;
777 };
778
779 pinctrl_usb0_host: usb0-host-grp {
780 fsl,pins = <
781 VF610_PAD_PTD6__GPIO_85 0x0062
782 >;
783 };
784}; 488};
diff --git a/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts b/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
new file mode 100644
index 000000000000..6a45bd24ffe6
--- /dev/null
+++ b/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
@@ -0,0 +1,416 @@
1/*
2 * Copyright (C) 2015, 2016 Zodiac Inflight Innovations
3 *
4 * Based on an original 'vf610-twr.dts' which is Copyright 2015,
5 * Freescale Semiconductor, Inc.
6 *
7 * This file is dual-licensed: you can use it either under the terms
8 * of the GPL or the X11 license, at your option. Note that this dual
9 * licensing only applies to this file, and not this project as a
10 * whole.
11 *
12 * a) This file is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * version 2 as published by the Free Software Foundation.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/dts-v1/;
46#include "vf610-zii-dev.dtsi"
47
48/ {
49 model = "ZII VF610 Development Board, Rev C";
50 compatible = "zii,vf610dev-c", "zii,vf610dev", "fsl,vf610";
51
52 mdio-mux {
53 compatible = "mdio-mux-gpio";
54 pinctrl-0 = <&pinctrl_mdio_mux>;
55 pinctrl-names = "default";
56 gpios = <&gpio0 8 GPIO_ACTIVE_HIGH
57 &gpio0 9 GPIO_ACTIVE_HIGH
58 &gpio0 25 GPIO_ACTIVE_HIGH>;
59 mdio-parent-bus = <&mdio1>;
60 #address-cells = <1>;
61 #size-cells = <0>;
62
63 mdio_mux_1: mdio@1 {
64 reg = <1>;
65 #address-cells = <1>;
66 #size-cells = <0>;
67
68 switch0: switch@0 {
69 compatible = "marvell,mv88e6190";
70 #address-cells = <1>;
71 #size-cells = <0>;
72 reg = <0>;
73 dsa,member = <0 0>;
74 eeprom-length = <512>;
75
76 ports {
77 #address-cells = <1>;
78 #size-cells = <0>;
79
80 port@0 {
81 reg = <0>;
82 label = "cpu";
83 ethernet = <&fec1>;
84
85 fixed-link {
86 speed = <100>;
87 full-duplex;
88 };
89 };
90
91 port@1 {
92 reg = <1>;
93 label = "lan1";
94 };
95
96 port@2 {
97 reg = <2>;
98 label = "lan2";
99 };
100
101 port@3 {
102 reg = <3>;
103 label = "lan3";
104 };
105
106 port@4 {
107 reg = <4>;
108 label = "lan4";
109 };
110
111 switch0port10: port@10 {
112 reg = <10>;
113 label = "dsa";
114 phy-mode = "xgmii";
115 link = <&switch1port10>;
116 };
117 };
118 };
119 };
120
121 mdio_mux_2: mdio@2 {
122 reg = <2>;
123 #address-cells = <1>;
124 #size-cells = <0>;
125
126 switch1: switch@0 {
127 compatible = "marvell,mv88e6190";
128 #address-cells = <1>;
129 #size-cells = <0>;
130 reg = <0>;
131 dsa,member = <0 1>;
132 eeprom-length = <512>;
133
134 ports {
135 #address-cells = <1>;
136 #size-cells = <0>;
137
138 port@1 {
139 reg = <1>;
140 label = "lan5";
141 };
142
143 port@2 {
144 reg = <2>;
145 label = "lan6";
146 };
147
148 port@3 {
149 reg = <3>;
150 label = "lan7";
151 };
152
153 port@4 {
154 reg = <4>;
155 label = "lan8";
156 };
157
158
159 switch1port10: port@10 {
160 reg = <10>;
161 label = "dsa";
162 phy-mode = "xgmii";
163 link = <&switch0port10>;
164 };
165 };
166 };
167 };
168
169 mdio_mux_4: mdio@4 {
170 reg = <4>;
171 #address-cells = <1>;
172 #size-cells = <0>;
173 };
174 };
175};
176
177&dspi0 {
178 bus-num = <0>;
179 pinctrl-names = "default";
180 pinctrl-0 = <&pinctrl_dspi0>;
181 status = "okay";
182 spi-num-chipselects = <2>;
183
184 m25p128@0 {
185 compatible = "m25p128", "jedec,spi-nor";
186 #address-cells = <1>;
187 #size-cells = <1>;
188 reg = <0>;
189 spi-max-frequency = <1000000>;
190 };
191
192 atzb-rf-233@1 {
193 compatible = "atmel,at86rf233";
194
195 pinctrl-names = "default";
196 pinctrl-0 = <&pinctr_atzb_rf_233>;
197
198 spi-max-frequency = <7500000>;
199 reg = <1>;
200 interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
201 interrupt-parent = <&gpio3>;
202 xtal-trim = /bits/ 8 <0x06>;
203
204 sleep-gpio = <&gpio0 24 GPIO_ACTIVE_HIGH>;
205 reset-gpio = <&gpio6 10 GPIO_ACTIVE_HIGH>;
206
207 fsl,spi-cs-sck-delay = <180>;
208 fsl,spi-sck-cs-delay = <250>;
209 };
210};
211
212&i2c0 {
213 /*
214 * U712
215 *
216 * Exposed signals:
217 * P1 - WE2_CMD
218 * P2 - WE2_CLK
219 */
220 gpio5: pca9557@18 {
221 compatible = "nxp,pca9557";
222 reg = <0x18>;
223 gpio-controller;
224 #gpio-cells = <2>;
225 };
226
227 /*
228 * U121
229 *
230 * Exposed signals:
231 * I/O0 - ENET_SWR_EN
232 * I/O1 - ESW1_RESETn
233 * I/O2 - ARINC_RESET
234 * I/O3 - DD1_IO_RESET
235 * I/O4 - ESW2_RESETn
236 * I/O5 - ESW3_RESETn
237 * I/O6 - ESW4_RESETn
238 * I/O8 - TP909
239 * I/O9 - FEM_SEL
240 * I/O10 - WIFI_RESETn
241 * I/O11 - PHY_RSTn
242 * I/O12 - OPT1_SD
243 * I/O13 - OPT2_SD
244 * I/O14 - OPT1_TX_DIS
245 * I/O15 - OPT2_TX_DIS
246 */
247 gpio6: sx1503@20 {
248 compatible = "semtech,sx1503q";
249
250 pinctrl-names = "default";
251 pinctrl-0 = <&pinctrl_sx1503_20>;
252 #gpio-cells = <2>;
253 #interrupt-cells = <2>;
254 reg = <0x20>;
255 interrupt-parent = <&gpio0>;
256 interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
257 gpio-controller;
258 interrupt-controller;
259
260 enet_swr_en {
261 gpio-hog;
262 gpios = <0 GPIO_ACTIVE_HIGH>;
263 output-high;
264 line-name = "enet-swr-en";
265 };
266 };
267
268 /*
269 * U715
270 *
271 * Exposed signals:
272 * IO0 - WE1_CLK
273 * IO1 - WE1_CMD
274 */
275 gpio7: pca9554@22 {
276 compatible = "nxp,pca9554";
277 reg = <0x22>;
278 gpio-controller;
279 #gpio-cells = <2>;
280
281 };
282};
283
284&i2c1 {
285 at24mac602@00 {
286 compatible = "atmel,24c02";
287 reg = <0x50>;
288 read-only;
289 };
290};
291
292&i2c2 {
293 tca9548@70 {
294 compatible = "nxp,pca9548";
295 pinctrl-0 = <&pinctrl_i2c_mux_reset>;
296 pinctrl-names = "default";
297 #address-cells = <1>;
298 #size-cells = <0>;
299 reg = <0x70>;
300 reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
301
302 i2c@0 {
303 #address-cells = <1>;
304 #size-cells = <0>;
305 reg = <0>;
306 };
307
308 i2c@1 {
309 #address-cells = <1>;
310 #size-cells = <0>;
311 reg = <1>;
312
313 sfp2: at24c04@50 {
314 compatible = "atmel,24c02";
315 reg = <0x50>;
316 };
317 };
318
319 i2c@2 {
320 #address-cells = <1>;
321 #size-cells = <0>;
322 reg = <2>;
323
324 sfp3: at24c04@50 {
325 compatible = "atmel,24c02";
326 reg = <0x50>;
327 };
328 };
329
330 i2c@3 {
331 #address-cells = <1>;
332 #size-cells = <0>;
333 reg = <3>;
334 };
335 };
336};
337
338&uart3 {
339 pinctrl-names = "default";
340 pinctrl-0 = <&pinctrl_uart3>;
341 status = "okay";
342};
343
344&gpio0 {
345 eth0_intrp {
346 gpio-hog;
347 gpios = <23 GPIO_ACTIVE_HIGH>;
348 input;
349 line-name = "sx1503-irq";
350 };
351};
352
353&gpio3 {
354 eth0_intrp {
355 gpio-hog;
356 gpios = <2 GPIO_ACTIVE_HIGH>;
357 input;
358 line-name = "eth0-intrp";
359 };
360};
361
362&fec0 {
363 mdio {
364 #address-cells = <1>;
365 #size-cells = <0>;
366 status = "okay";
367
368 ethernet-phy@0 {
369 compatible = "ethernet-phy-ieee802.3-c22";
370
371 pinctrl-names = "default";
372 pinctrl-0 = <&pinctrl_fec0_phy_int>;
373
374 interrupt-parent = <&gpio3>;
375 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
376 reg = <0>;
377 };
378 };
379};
380
381&iomuxc {
382 pinctr_atzb_rf_233: pinctrl-atzb-rf-233 {
383 fsl,pins = <
384 VF610_PAD_PTB2__GPIO_24 0x31c2
385 VF610_PAD_PTE27__GPIO_132 0x33e2
386 >;
387 };
388
389
390 pinctrl_sx1503_20: pinctrl-sx1503-20 {
391 fsl,pins = <
392 VF610_PAD_PTB1__GPIO_23 0x219d
393 >;
394 };
395
396 pinctrl_uart3: uart3grp {
397 fsl,pins = <
398 VF610_PAD_PTA20__UART3_TX 0x21a2
399 VF610_PAD_PTA21__UART3_RX 0x21a1
400 >;
401 };
402
403 pinctrl_mdio_mux: pinctrl-mdio-mux {
404 fsl,pins = <
405 VF610_PAD_PTA18__GPIO_8 0x31c2
406 VF610_PAD_PTA19__GPIO_9 0x31c2
407 VF610_PAD_PTB3__GPIO_25 0x31c2
408 >;
409 };
410
411 pinctrl_fec0_phy_int: pinctrl-fec0-phy-int {
412 fsl,pins = <
413 VF610_PAD_PTB28__GPIO_98 0x219d
414 >;
415 };
416};
diff --git a/arch/arm/boot/dts/vf610-zii-dev.dtsi b/arch/arm/boot/dts/vf610-zii-dev.dtsi
new file mode 100644
index 000000000000..ca9e1bc35e45
--- /dev/null
+++ b/arch/arm/boot/dts/vf610-zii-dev.dtsi
@@ -0,0 +1,383 @@
1/*
2 * Copyright (C) 2015, 2016 Zodiac Inflight Innovations
3 *
4 * Based on an original 'vf610-twr.dts' which is Copyright 2015,
5 * Freescale Semiconductor, Inc.
6 *
7 * This file is dual-licensed: you can use it either under the terms
8 * of the GPL or the X11 license, at your option. Note that this dual
9 * licensing only applies to this file, and not this project as a
10 * whole.
11 *
12 * a) This file is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * version 2 as published by the Free Software Foundation.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45#include "vf610.dtsi"
46
47/ {
48 chosen {
49 stdout-path = "serial0:115200n8";
50 };
51
52 memory {
53 reg = <0x80000000 0x20000000>;
54 };
55
56 gpio-leds {
57 compatible = "gpio-leds";
58 pinctrl-0 = <&pinctrl_leds_debug>;
59 pinctrl-names = "default";
60
61 debug {
62 label = "zii:green:debug1";
63 gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
64 linux,default-trigger = "heartbeat";
65 };
66 };
67
68 reg_vcc_3v3_mcu: regulator-vcc-3v3-mcu {
69 compatible = "regulator-fixed";
70 regulator-name = "vcc_3v3_mcu";
71 regulator-min-microvolt = <3300000>;
72 regulator-max-microvolt = <3300000>;
73 };
74
75 usb0_vbus: regulator-usb0-vbus {
76 compatible = "regulator-fixed";
77 pinctrl-0 = <&pinctrl_usb_vbus>;
78 regulator-name = "usb_vbus";
79 regulator-min-microvolt = <5000000>;
80 regulator-max-microvolt = <5000000>;
81 enable-active-high;
82 regulator-always-on;
83 regulator-boot-on;
84 gpio = <&gpio0 6 0>;
85 };
86};
87
88&adc0 {
89 pinctrl-names = "default";
90 pinctrl-0 = <&pinctrl_adc0_ad5>;
91 vref-supply = <&reg_vcc_3v3_mcu>;
92 status = "okay";
93};
94
95&edma0 {
96 status = "okay";
97};
98
99&esdhc1 {
100 pinctrl-names = "default";
101 pinctrl-0 = <&pinctrl_esdhc1>;
102 bus-width = <4>;
103 status = "okay";
104};
105
106&fec0 {
107 phy-mode = "rmii";
108 pinctrl-names = "default";
109 pinctrl-0 = <&pinctrl_fec0>;
110 status = "okay";
111};
112
113&fec1 {
114 phy-mode = "rmii";
115 pinctrl-names = "default";
116 pinctrl-0 = <&pinctrl_fec1>;
117 status = "okay";
118
119 fixed-link {
120 speed = <100>;
121 full-duplex;
122 };
123
124 mdio1: mdio {
125 #address-cells = <1>;
126 #size-cells = <0>;
127 status = "okay";
128 };
129};
130
131&i2c0 {
132 clock-frequency = <100000>;
133 pinctrl-names = "default", "gpio";
134 pinctrl-0 = <&pinctrl_i2c0>;
135 pinctrl-1 = <&pinctrl_i2c0_gpio>;
136 scl-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
137 sda-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
138 status = "okay";
139
140 lm75@48 {
141 compatible = "national,lm75";
142 reg = <0x48>;
143 };
144
145 at24c04@50 {
146 compatible = "atmel,24c04";
147 reg = <0x50>;
148 };
149
150 at24c04@52 {
151 compatible = "atmel,24c04";
152 reg = <0x52>;
153 };
154
155 ds1682@6b {
156 compatible = "dallas,ds1682";
157 reg = <0x6b>;
158 };
159};
160
161&i2c1 {
162 clock-frequency = <100000>;
163 pinctrl-names = "default";
164 pinctrl-0 = <&pinctrl_i2c1>;
165 status = "okay";
166};
167
168&i2c2 {
169 clock-frequency = <100000>;
170 pinctrl-names = "default";
171 pinctrl-0 = <&pinctrl_i2c2>;
172 status = "okay";
173};
174
175&uart0 {
176 pinctrl-names = "default";
177 pinctrl-0 = <&pinctrl_uart0>;
178 status = "okay";
179};
180
181&uart1 {
182 pinctrl-names = "default";
183 pinctrl-0 = <&pinctrl_uart1>;
184 status = "okay";
185};
186
187&uart2 {
188 pinctrl-names = "default";
189 pinctrl-0 = <&pinctrl_uart2>;
190 status = "okay";
191};
192
193&usbdev0 {
194 disable-over-current;
195 vbus-supply = <&usb0_vbus>;
196 dr_mode = "host";
197 status = "okay";
198};
199
200&usbh1 {
201 disable-over-current;
202 status = "okay";
203};
204
205&usbmisc0 {
206 status = "okay";
207};
208
209&usbmisc1 {
210 status = "okay";
211};
212
213&usbphy0 {
214 status = "okay";
215};
216
217&usbphy1 {
218 status = "okay";
219};
220
221&iomuxc {
222 pinctrl_adc0_ad5: adc0ad5grp {
223 fsl,pins = <
224 VF610_PAD_PTC30__ADC0_SE5 0x00a1
225 >;
226 };
227
228 pinctrl_dspi0: dspi0grp {
229 fsl,pins = <
230 VF610_PAD_PTB18__DSPI0_CS1 0x1182
231 VF610_PAD_PTB19__DSPI0_CS0 0x1182
232 VF610_PAD_PTB20__DSPI0_SIN 0x1181
233 VF610_PAD_PTB21__DSPI0_SOUT 0x1182
234 VF610_PAD_PTB22__DSPI0_SCK 0x1182
235 >;
236 };
237
238 pinctrl_dspi2: dspi2grp {
239 fsl,pins = <
240 VF610_PAD_PTD31__DSPI2_CS1 0x1182
241 VF610_PAD_PTD30__DSPI2_CS0 0x1182
242 VF610_PAD_PTD29__DSPI2_SIN 0x1181
243 VF610_PAD_PTD28__DSPI2_SOUT 0x1182
244 VF610_PAD_PTD27__DSPI2_SCK 0x1182
245 >;
246 };
247
248 pinctrl_esdhc1: esdhc1grp {
249 fsl,pins = <
250 VF610_PAD_PTA24__ESDHC1_CLK 0x31ef
251 VF610_PAD_PTA25__ESDHC1_CMD 0x31ef
252 VF610_PAD_PTA26__ESDHC1_DAT0 0x31ef
253 VF610_PAD_PTA27__ESDHC1_DAT1 0x31ef
254 VF610_PAD_PTA28__ESDHC1_DATA2 0x31ef
255 VF610_PAD_PTA29__ESDHC1_DAT3 0x31ef
256 VF610_PAD_PTA7__GPIO_134 0x219d
257 >;
258 };
259
260 pinctrl_fec0: fec0grp {
261 fsl,pins = <
262 VF610_PAD_PTC0__ENET_RMII0_MDC 0x30d2
263 VF610_PAD_PTC1__ENET_RMII0_MDIO 0x30d3
264 VF610_PAD_PTC2__ENET_RMII0_CRS 0x30d1
265 VF610_PAD_PTC3__ENET_RMII0_RXD1 0x30d1
266 VF610_PAD_PTC4__ENET_RMII0_RXD0 0x30d1
267 VF610_PAD_PTC5__ENET_RMII0_RXER 0x30d1
268 VF610_PAD_PTC6__ENET_RMII0_TXD1 0x30d2
269 VF610_PAD_PTC7__ENET_RMII0_TXD0 0x30d2
270 VF610_PAD_PTC8__ENET_RMII0_TXEN 0x30d2
271 >;
272 };
273
274 pinctrl_fec1: fec1grp {
275 fsl,pins = <
276 VF610_PAD_PTA6__RMII_CLKIN 0x30d1
277 VF610_PAD_PTC9__ENET_RMII1_MDC 0x30d2
278 VF610_PAD_PTC10__ENET_RMII1_MDIO 0x30d3
279 VF610_PAD_PTC11__ENET_RMII1_CRS 0x30d1
280 VF610_PAD_PTC12__ENET_RMII1_RXD1 0x30d1
281 VF610_PAD_PTC13__ENET_RMII1_RXD0 0x30d1
282 VF610_PAD_PTC14__ENET_RMII1_RXER 0x30d1
283 VF610_PAD_PTC15__ENET_RMII1_TXD1 0x30d2
284 VF610_PAD_PTC16__ENET_RMII1_TXD0 0x30d2
285 VF610_PAD_PTC17__ENET_RMII1_TXEN 0x30d2
286 >;
287 };
288
289 pinctrl_gpio_spi0: pinctrl-gpio-spi0 {
290 fsl,pins = <
291 VF610_PAD_PTB22__GPIO_44 0x33e2
292 VF610_PAD_PTB21__GPIO_43 0x33e2
293 VF610_PAD_PTB20__GPIO_42 0x33e1
294 VF610_PAD_PTB19__GPIO_41 0x33e2
295 VF610_PAD_PTB18__GPIO_40 0x33e2
296 >;
297 };
298
299 pinctrl_i2c_mux_reset: pinctrl-i2c-mux-reset {
300 fsl,pins = <
301 VF610_PAD_PTE14__GPIO_119 0x31c2
302 >;
303 };
304
305 pinctrl_i2c0: i2c0grp {
306 fsl,pins = <
307 VF610_PAD_PTB14__I2C0_SCL 0x37ff
308 VF610_PAD_PTB15__I2C0_SDA 0x37ff
309 >;
310 };
311
312 pinctrl_i2c0_gpio: i2c0grp-gpio {
313 fsl,pins = <
314 VF610_PAD_PTB14__GPIO_36 0x31c2
315 VF610_PAD_PTB15__GPIO_37 0x31c2
316 >;
317 };
318
319
320 pinctrl_i2c1: i2c1grp {
321 fsl,pins = <
322 VF610_PAD_PTB16__I2C1_SCL 0x37ff
323 VF610_PAD_PTB17__I2C1_SDA 0x37ff
324 >;
325 };
326
327 pinctrl_i2c2: i2c2grp {
328 fsl,pins = <
329 VF610_PAD_PTA22__I2C2_SCL 0x37ff
330 VF610_PAD_PTA23__I2C2_SDA 0x37ff
331 >;
332 };
333
334 pinctrl_leds_debug: pinctrl-leds-debug {
335 fsl,pins = <
336 VF610_PAD_PTD20__GPIO_74 0x31c2
337 >;
338 };
339
340 pinctrl_qspi0: qspi0grp {
341 fsl,pins = <
342 VF610_PAD_PTD7__QSPI0_B_QSCK 0x31c3
343 VF610_PAD_PTD8__QSPI0_B_CS0 0x31ff
344 VF610_PAD_PTD9__QSPI0_B_DATA3 0x31c3
345 VF610_PAD_PTD10__QSPI0_B_DATA2 0x31c3
346 VF610_PAD_PTD11__QSPI0_B_DATA1 0x31c3
347 VF610_PAD_PTD12__QSPI0_B_DATA0 0x31c3
348 >;
349 };
350
351 pinctrl_uart0: uart0grp {
352 fsl,pins = <
353 VF610_PAD_PTB10__UART0_TX 0x21a2
354 VF610_PAD_PTB11__UART0_RX 0x21a1
355 >;
356 };
357
358 pinctrl_uart1: uart1grp {
359 fsl,pins = <
360 VF610_PAD_PTB23__UART1_TX 0x21a2
361 VF610_PAD_PTB24__UART1_RX 0x21a1
362 >;
363 };
364
365 pinctrl_uart2: uart2grp {
366 fsl,pins = <
367 VF610_PAD_PTD0__UART2_TX 0x21a2
368 VF610_PAD_PTD1__UART2_RX 0x21a1
369 >;
370 };
371
372 pinctrl_usb_vbus: pinctrl-usb-vbus {
373 fsl,pins = <
374 VF610_PAD_PTA16__GPIO_6 0x31c2
375 >;
376 };
377
378 pinctrl_usb0_host: usb0-host-grp {
379 fsl,pins = <
380 VF610_PAD_PTD6__GPIO_85 0x0062
381 >;
382 };
383};
diff --git a/arch/arm/boot/dts/vf610.dtsi b/arch/arm/boot/dts/vf610.dtsi
index 0cfc060f94d7..80fef182c672 100644
--- a/arch/arm/boot/dts/vf610.dtsi
+++ b/arch/arm/boot/dts/vf610.dtsi
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/vf610m4-colibri.dts b/arch/arm/boot/dts/vf610m4-colibri.dts
index 2931a80caccb..7198e8cceb0d 100644
--- a/arch/arm/boot/dts/vf610m4-colibri.dts
+++ b/arch/arm/boot/dts/vf610m4-colibri.dts
@@ -13,17 +13,17 @@
13 * published by the Free Software Foundation; either version 2 of the 13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version. 14 * License, or (at your option) any later version.
15 * 15 *
16 * This file is distributed in the hope that it will be useful 16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details. 19 * GNU General Public License for more details.
20 * 20 *
21 * Or, alternatively 21 * Or, alternatively,
22 * 22 *
23 * b) Permission is hereby granted, free of charge, to any person 23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation 24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without 25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use 26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or 27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the 28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following 29 * Software is furnished to do so, subject to the following
@@ -32,11 +32,11 @@
32 * The above copyright notice and this permission notice shall be 32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software. 33 * included in all copies or substantial portions of the Software.
34 * 34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/vf610m4-cosmic.dts b/arch/arm/boot/dts/vf610m4-cosmic.dts
index 8944a2d2054c..f7474c11aabd 100644
--- a/arch/arm/boot/dts/vf610m4-cosmic.dts
+++ b/arch/arm/boot/dts/vf610m4-cosmic.dts
@@ -15,17 +15,17 @@
15 * published by the Free Software Foundation; either version 2 of the 15 * published by the Free Software Foundation; either version 2 of the
16 * License, or (at your option) any later version. 16 * License, or (at your option) any later version.
17 * 17 *
18 * This file is distributed in the hope that it will be useful 18 * This file is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details. 21 * GNU General Public License for more details.
22 * 22 *
23 * Or, alternatively 23 * Or, alternatively,
24 * 24 *
25 * b) Permission is hereby granted, free of charge, to any person 25 * b) Permission is hereby granted, free of charge, to any person
26 * obtaining a copy of this software and associated documentation 26 * obtaining a copy of this software and associated documentation
27 * files (the "Software"), to deal in the Software without 27 * files (the "Software"), to deal in the Software without
28 * restriction, including without limitation the rights to use 28 * restriction, including without limitation the rights to use,
29 * copy, modify, merge, publish, distribute, sublicense, and/or 29 * copy, modify, merge, publish, distribute, sublicense, and/or
30 * sell copies of the Software, and to permit persons to whom the 30 * sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following 31 * Software is furnished to do so, subject to the following
@@ -34,11 +34,11 @@
34 * The above copyright notice and this permission notice shall be 34 * The above copyright notice and this permission notice shall be
35 * included in all copies or substantial portions of the Software. 35 * included in all copies or substantial portions of the Software.
36 * 36 *
37 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 37 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 * OTHER DEALINGS IN THE SOFTWARE. 44 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/vf610m4.dtsi b/arch/arm/boot/dts/vf610m4.dtsi
index 9f2c731839f2..1474bd34d0f1 100644
--- a/arch/arm/boot/dts/vf610m4.dtsi
+++ b/arch/arm/boot/dts/vf610m4.dtsi
@@ -13,17 +13,17 @@
13 * published by the Free Software Foundation; either version 2 of the 13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version. 14 * License, or (at your option) any later version.
15 * 15 *
16 * This file is distributed in the hope that it will be useful 16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details. 19 * GNU General Public License for more details.
20 * 20 *
21 * Or, alternatively 21 * Or, alternatively,
22 * 22 *
23 * b) Permission is hereby granted, free of charge, to any person 23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation 24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without 25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use 26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or 27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the 28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following 29 * Software is furnished to do so, subject to the following
@@ -32,11 +32,11 @@
32 * The above copyright notice and this permission notice shall be 32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software. 33 * included in all copies or substantial portions of the Software.
34 * 34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/arch/arm/boot/dts/vfxxx.dtsi b/arch/arm/boot/dts/vfxxx.dtsi
index e9d28474c26a..5d654b5b4ce6 100644
--- a/arch/arm/boot/dts/vfxxx.dtsi
+++ b/arch/arm/boot/dts/vfxxx.dtsi
@@ -10,17 +10,17 @@
10 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation. 11 * version 2 as published by the Free Software Foundation.
12 * 12 *
13 * This file is distributed in the hope that it will be useful 13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * Or, alternatively 18 * Or, alternatively,
19 * 19 *
20 * b) Permission is hereby granted, free of charge, to any person 20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation 21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without 22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use 23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the 25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following 26 * Software is furnished to do so, subject to the following
@@ -29,11 +29,11 @@
29 * The above copyright notice and this permission notice shall be 29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software. 30 * included in all copies or substantial portions of the Software.
31 * 31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE. 39 * OTHER DEALINGS IN THE SOFTWARE.
diff --git a/drivers/clk/samsung/clk-exynos4.c b/drivers/clk/samsung/clk-exynos4.c
index faab9b31baf5..e40b77583c47 100644
--- a/drivers/clk/samsung/clk-exynos4.c
+++ b/drivers/clk/samsung/clk-exynos4.c
@@ -1298,6 +1298,8 @@ static const struct samsung_pll_rate_table exynos4210_vpll_rates[] __initconst =
1298}; 1298};
1299 1299
1300static const struct samsung_pll_rate_table exynos4x12_apll_rates[] __initconst = { 1300static const struct samsung_pll_rate_table exynos4x12_apll_rates[] __initconst = {
1301 PLL_35XX_RATE(1704000000, 213, 3, 0),
1302 PLL_35XX_RATE(1600000000, 200, 3, 0),
1301 PLL_35XX_RATE(1500000000, 250, 4, 0), 1303 PLL_35XX_RATE(1500000000, 250, 4, 0),
1302 PLL_35XX_RATE(1400000000, 175, 3, 0), 1304 PLL_35XX_RATE(1400000000, 175, 3, 0),
1303 PLL_35XX_RATE(1300000000, 325, 6, 0), 1305 PLL_35XX_RATE(1300000000, 325, 6, 0),
@@ -1421,6 +1423,8 @@ static const struct exynos_cpuclk_cfg_data e4212_armclk_d[] __initconst = {
1421 (((cores) << 8) | ((hpm) << 4) | ((copy) << 0)) 1423 (((cores) << 8) | ((hpm) << 4) | ((copy) << 0))
1422 1424
1423static const struct exynos_cpuclk_cfg_data e4412_armclk_d[] __initconst = { 1425static const struct exynos_cpuclk_cfg_data e4412_armclk_d[] __initconst = {
1426 { 1704000, E4210_CPU_DIV0(2, 1, 6, 0, 7, 3), E4412_CPU_DIV1(7, 0, 7), },
1427 { 1600000, E4210_CPU_DIV0(2, 1, 6, 0, 7, 3), E4412_CPU_DIV1(7, 0, 6), },
1424 { 1500000, E4210_CPU_DIV0(2, 1, 6, 0, 7, 3), E4412_CPU_DIV1(7, 0, 6), }, 1428 { 1500000, E4210_CPU_DIV0(2, 1, 6, 0, 7, 3), E4412_CPU_DIV1(7, 0, 6), },
1425 { 1400000, E4210_CPU_DIV0(2, 1, 6, 0, 7, 3), E4412_CPU_DIV1(6, 0, 6), }, 1429 { 1400000, E4210_CPU_DIV0(2, 1, 6, 0, 7, 3), E4412_CPU_DIV1(6, 0, 6), },
1426 { 1300000, E4210_CPU_DIV0(2, 1, 5, 0, 7, 3), E4412_CPU_DIV1(6, 0, 5), }, 1430 { 1300000, E4210_CPU_DIV0(2, 1, 5, 0, 7, 3), E4412_CPU_DIV1(6, 0, 5), },
diff --git a/include/dt-bindings/clock/r7s72100-clock.h b/include/dt-bindings/clock/r7s72100-clock.h
index 29e01ed10e74..ce09915c298f 100644
--- a/include/dt-bindings/clock/r7s72100-clock.h
+++ b/include/dt-bindings/clock/r7s72100-clock.h
@@ -25,6 +25,10 @@
25#define R7S72100_CLK_SCIF6 1 25#define R7S72100_CLK_SCIF6 1
26#define R7S72100_CLK_SCIF7 0 26#define R7S72100_CLK_SCIF7 0
27 27
28/* MSTP5 */
29#define R7S72100_CLK_OSTM0 1
30#define R7S72100_CLK_OSTM1 0
31
28/* MSTP7 */ 32/* MSTP7 */
29#define R7S72100_CLK_ETHER 4 33#define R7S72100_CLK_ETHER 4
30 34
diff --git a/include/dt-bindings/clock/stm32fx-clock.h b/include/dt-bindings/clock/stm32fx-clock.h
new file mode 100644
index 000000000000..08bcab61b714
--- /dev/null
+++ b/include/dt-bindings/clock/stm32fx-clock.h
@@ -0,0 +1,39 @@
1/*
2 * stm32fx-clock.h
3 *
4 * Copyright (C) 2016 STMicroelectronics
5 * Author: Gabriel Fernandez for STMicroelectronics.
6 * License terms: GNU General Public License (GPL), version 2
7 */
8
9/*
10 * List of clocks wich are not derived from system clock (SYSCLOCK)
11 *
12 * The index of these clocks is the secondary index of DT bindings
13 * (see Documentatoin/devicetree/bindings/clock/st,stm32-rcc.txt)
14 *
15 * e.g:
16 <assigned-clocks = <&rcc 1 CLK_LSE>;
17*/
18
19#ifndef _DT_BINDINGS_CLK_STMFX_H
20#define _DT_BINDINGS_CLK_STMFX_H
21
22#define SYSTICK 0
23#define FCLK 1
24#define CLK_LSI 2
25#define CLK_LSE 3
26#define CLK_HSE_RTC 4
27#define CLK_RTC 5
28#define PLL_VCO_I2S 6
29#define PLL_VCO_SAI 7
30#define CLK_LCD 8
31#define CLK_I2S 9
32#define CLK_SAI1 10
33#define CLK_SAI2 11
34#define CLK_I2SQ_PDIV 12
35#define CLK_SAIQ_PDIV 13
36
37#define END_PRIMARY_CLK 14
38
39#endif
diff --git a/include/dt-bindings/mfd/stm32f4-rcc.h b/include/dt-bindings/mfd/stm32f4-rcc.h
index e98942dc0d44..082a81c94298 100644
--- a/include/dt-bindings/mfd/stm32f4-rcc.h
+++ b/include/dt-bindings/mfd/stm32f4-rcc.h
@@ -18,14 +18,20 @@
18#define STM32F4_RCC_AHB1_GPIOJ 9 18#define STM32F4_RCC_AHB1_GPIOJ 9
19#define STM32F4_RCC_AHB1_GPIOK 10 19#define STM32F4_RCC_AHB1_GPIOK 10
20#define STM32F4_RCC_AHB1_CRC 12 20#define STM32F4_RCC_AHB1_CRC 12
21#define STM32F4_RCC_AHB1_BKPSRAM 18
22#define STM32F4_RCC_AHB1_CCMDATARAM 20
21#define STM32F4_RCC_AHB1_DMA1 21 23#define STM32F4_RCC_AHB1_DMA1 21
22#define STM32F4_RCC_AHB1_DMA2 22 24#define STM32F4_RCC_AHB1_DMA2 22
23#define STM32F4_RCC_AHB1_DMA2D 23 25#define STM32F4_RCC_AHB1_DMA2D 23
24#define STM32F4_RCC_AHB1_ETHMAC 25 26#define STM32F4_RCC_AHB1_ETHMAC 25
25#define STM32F4_RCC_AHB1_OTGHS 29 27#define STM32F4_RCC_AHB1_ETHMACTX 26
28#define STM32F4_RCC_AHB1_ETHMACRX 27
29#define STM32F4_RCC_AHB1_ETHMACPTP 28
30#define STM32F4_RCC_AHB1_OTGHS 29
31#define STM32F4_RCC_AHB1_OTGHSULPI 30
26 32
27#define STM32F4_AHB1_RESET(bit) (STM32F4_RCC_AHB1_##bit + (0x10 * 8)) 33#define STM32F4_AHB1_RESET(bit) (STM32F4_RCC_AHB1_##bit + (0x10 * 8))
28#define STM32F4_AHB1_CLOCK(bit) (STM32F4_RCC_AHB1_##bit + (0x30 * 8)) 34#define STM32F4_AHB1_CLOCK(bit) (STM32F4_RCC_AHB1_##bit)
29 35
30 36
31/* AHB2 */ 37/* AHB2 */
@@ -36,13 +42,14 @@
36#define STM32F4_RCC_AHB2_OTGFS 7 42#define STM32F4_RCC_AHB2_OTGFS 7
37 43
38#define STM32F4_AHB2_RESET(bit) (STM32F4_RCC_AHB2_##bit + (0x14 * 8)) 44#define STM32F4_AHB2_RESET(bit) (STM32F4_RCC_AHB2_##bit + (0x14 * 8))
39#define STM32F4_AHB2_CLOCK(bit) (STM32F4_RCC_AHB2_##bit + (0x34 * 8)) 45#define STM32F4_AHB2_CLOCK(bit) (STM32F4_RCC_AHB2_##bit + 0x20)
40 46
41/* AHB3 */ 47/* AHB3 */
42#define STM32F4_RCC_AHB3_FMC 0 48#define STM32F4_RCC_AHB3_FMC 0
49#define STM32F4_RCC_AHB3_QSPI 1
43 50
44#define STM32F4_AHB3_RESET(bit) (STM32F4_RCC_AHB3_##bit + (0x18 * 8)) 51#define STM32F4_AHB3_RESET(bit) (STM32F4_RCC_AHB3_##bit + (0x18 * 8))
45#define STM32F4_AHB3_CLOCK(bit) (STM32F4_RCC_AHB3_##bit + (0x38 * 8)) 52#define STM32F4_AHB3_CLOCK(bit) (STM32F4_RCC_AHB3_##bit + 0x40)
46 53
47/* APB1 */ 54/* APB1 */
48#define STM32F4_RCC_APB1_TIM2 0 55#define STM32F4_RCC_APB1_TIM2 0
@@ -72,14 +79,16 @@
72#define STM32F4_RCC_APB1_UART8 31 79#define STM32F4_RCC_APB1_UART8 31
73 80
74#define STM32F4_APB1_RESET(bit) (STM32F4_RCC_APB1_##bit + (0x20 * 8)) 81#define STM32F4_APB1_RESET(bit) (STM32F4_RCC_APB1_##bit + (0x20 * 8))
75#define STM32F4_APB1_CLOCK(bit) (STM32F4_RCC_APB1_##bit + (0x40 * 8)) 82#define STM32F4_APB1_CLOCK(bit) (STM32F4_RCC_APB1_##bit + 0x80)
76 83
77/* APB2 */ 84/* APB2 */
78#define STM32F4_RCC_APB2_TIM1 0 85#define STM32F4_RCC_APB2_TIM1 0
79#define STM32F4_RCC_APB2_TIM8 1 86#define STM32F4_RCC_APB2_TIM8 1
80#define STM32F4_RCC_APB2_USART1 4 87#define STM32F4_RCC_APB2_USART1 4
81#define STM32F4_RCC_APB2_USART6 5 88#define STM32F4_RCC_APB2_USART6 5
82#define STM32F4_RCC_APB2_ADC 8 89#define STM32F4_RCC_APB2_ADC1 8
90#define STM32F4_RCC_APB2_ADC2 9
91#define STM32F4_RCC_APB2_ADC3 10
83#define STM32F4_RCC_APB2_SDIO 11 92#define STM32F4_RCC_APB2_SDIO 11
84#define STM32F4_RCC_APB2_SPI1 12 93#define STM32F4_RCC_APB2_SPI1 12
85#define STM32F4_RCC_APB2_SPI4 13 94#define STM32F4_RCC_APB2_SPI4 13
@@ -91,8 +100,9 @@
91#define STM32F4_RCC_APB2_SPI6 21 100#define STM32F4_RCC_APB2_SPI6 21
92#define STM32F4_RCC_APB2_SAI1 22 101#define STM32F4_RCC_APB2_SAI1 22
93#define STM32F4_RCC_APB2_LTDC 26 102#define STM32F4_RCC_APB2_LTDC 26
103#define STM32F4_RCC_APB2_DSI 27
94 104
95#define STM32F4_APB2_RESET(bit) (STM32F4_RCC_APB2_##bit + (0x24 * 8)) 105#define STM32F4_APB2_RESET(bit) (STM32F4_RCC_APB2_##bit + (0x24 * 8))
96#define STM32F4_APB2_CLOCK(bit) (STM32F4_RCC_APB2_##bit + (0x44 * 8)) 106#define STM32F4_APB2_CLOCK(bit) (STM32F4_RCC_APB2_##bit + 0xA0)
97 107
98#endif /* _DT_BINDINGS_MFD_STM32F4_RCC_H */ 108#endif /* _DT_BINDINGS_MFD_STM32F4_RCC_H */