aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-11-16 18:48:26 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2017-11-16 18:48:26 -0500
commit527d1470744d338c912f94bc1f4dba08ffdff349 (patch)
tree36efab7e8fecaac465986b315c014166c03a079e
parent8c609698569578913ad40bb160b97c3f6cfa15ec (diff)
parentba5b5034bd29ad94a16d73ed64fbeab0fa863f4d (diff)
Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM device-tree updates from Arnd Bergmann: "We add device tree files for a couple of additional SoCs in various areas: Allwinner R40/V40 for entertainment, Broadcom Hurricane 2 for networking, Amlogic A113D for audio, and Renesas R-Car V3M for automotive. As usual, lots of new boards get added based on those and other SoCs: - Actions S500 based CubieBoard6 single-board computer - Amlogic Meson-AXG A113D based development board - Amlogic S912 based Khadas VIM2 single-board computer - Amlogic S912 based Tronsmart Vega S96 set-top-box - Allwinner H5 based NanoPi NEO Plus2 single-board computer - Allwinner R40 based Banana Pi M2 Ultra and Berry single-board computers - Allwinner A83T based TBS A711 Tablet - Broadcom Hurricane 2 based Ubiquiti UniFi Switch 8 - Broadcom bcm47xx based Luxul XAP-1440/XAP-810/ABR-4500/XBR-4500 wireless access points and routers - NXP i.MX51 based Zodiac Inflight Innovations RDU1 board - NXP i.MX53 based GE Healthcare PPD biometric monitor - NXP i.MX6 based Pistachio single-board computer - NXP i.MX6 based Vining-2000 automotive diagnostic interface - NXP i.MX6 based Ka-Ro TX6 Computer-on-Module in additional variants - Qualcomm MSM8974 (Snapdragon 800) based Fairphone 2 phone - Qualcomm MSM8974pro (Snapdragon 801) based Sony Xperia Z2 Tablet - Realtek RTD1295 based set-top-boxes MeLE V9 and PROBOX2 AVA - Renesas R-Car V3M (R8A77970) SoC and "Eagle" reference board - Renesas H3ULCB and M3ULCB "Kingfisher" extension infotainment boards - Renasas r8a7745 based iWave G22D-SODIMM SoM - Rockchip rk3288 based Amarula Vyasa single-board computer - Samsung Exynos5800 based Odroid HC1 single-board computer For existing SoC support, there was a lot of ongoing work, as usual most of that concentrated on the Renesas, Rockchip, OMAP, i.MX, Amlogic and Allwinner platforms, but others were also active. Rob Herring and many others worked on reducing the number of issues that the latest version of 'dtc' now warns about. Unfortunately there is still a lot left to do. A rework of the ARM foundation model introduced several new files for common variations of the model" * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (599 commits) arm64: dts: uniphier: route on-board device IRQ to GPIO controller for PXs3 dt-bindings: bus: Add documentation for the Technologic Systems NBUS arm64: dts: actions: s900-bubblegum-96: Add fake uart5 clock ARM: dts: owl-s500: Add CubieBoard6 dt-bindings: arm: actions: Add CubieBoard6 ARM: dts: owl-s500-guitar-bb-rev-b: Add fake uart3 clock ARM: dts: owl-s500: Set power domains for CPU2 and CPU3 arm: dts: mt7623: remove unused compatible string for pio node arm: dts: mt7623: update usb related nodes arm: dts: mt7623: update crypto node ARM: dts: sun8i: a711: Enable USB OTG ARM: dts: sun8i: a711: Add regulator support ARM: dts: sun8i: a83t: bananapi-m3: Enable AP6212 WiFi on mmc1 ARM: dts: sun8i: a83t: cubietruck-plus: Enable AP6330 WiFi on mmc1 ARM: dts: sun8i: a83t: Move mmc1 pinctrl setting to dtsi file ARM: dts: sun8i: a83t: allwinner-h8homlet-v2: Add AXP818 regulator nodes ARM: dts: sun8i: a83t: bananapi-m3: Add AXP813 regulator nodes ARM: dts: sun8i: a83t: cubietruck-plus: Add AXP818 regulator nodes ARM: dts: sunxi: Add dtsi for AXP81x PMIC arm64: dts: allwinner: H5: Restore EMAC changes ...
-rw-r--r--Documentation/devicetree/bindings/arm/actions.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/amlogic.txt8
-rw-r--r--Documentation/devicetree/bindings/arm/amlogic/analog-top.txt20
-rw-r--r--Documentation/devicetree/bindings/arm/amlogic/assist.txt17
-rw-r--r--Documentation/devicetree/bindings/arm/amlogic/bootrom.txt17
-rw-r--r--Documentation/devicetree/bindings/arm/bcm/brcm,hr2.txt14
-rw-r--r--Documentation/devicetree/bindings/arm/realtek.txt2
-rw-r--r--Documentation/devicetree/bindings/arm/rockchip.txt4
-rw-r--r--Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/shmobile.txt16
-rw-r--r--Documentation/devicetree/bindings/bus/ts-nbus.txt50
-rw-r--r--Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt14
-rw-r--r--Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt2
-rw-r--r--Documentation/devicetree/bindings/dma/sun6i-dma.txt2
-rw-r--r--Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt16
-rw-r--r--Documentation/devicetree/bindings/misc/ge-achc.txt26
-rw-r--r--Documentation/devicetree/bindings/mtd/jedec,spi-nor.txt2
-rw-r--r--Documentation/devicetree/bindings/net/dwmac-sun8i.txt207
-rw-r--r--Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt22
-rw-r--r--Documentation/devicetree/bindings/power/renesas,apmu.txt1
-rw-r--r--Documentation/devicetree/bindings/serial/mvebu-uart.txt2
-rw-r--r--Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt1
-rw-r--r--Documentation/devicetree/bindings/thermal/hisilicon-thermal.txt9
-rw-r--r--Documentation/devicetree/bindings/thermal/nvidia,tegra186-bpmp-thermal.txt32
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt6
-rw-r--r--MAINTAINERS2
-rw-r--r--arch/arm/boot/dts/Makefile41
-rw-r--r--arch/arm/boot/dts/am43x-epos-evm.dts239
-rw-r--r--arch/arm/boot/dts/armada-370-synology-ds213j.dts12
-rw-r--r--arch/arm/boot/dts/armada-385-synology-ds116.dts12
-rw-r--r--arch/arm/boot/dts/armada-xp-synology-ds414.dts12
-rw-r--r--arch/arm/boot/dts/artpec6.dtsi3
-rw-r--r--arch/arm/boot/dts/aspeed-ast2500-evb.dts19
-rw-r--r--arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts56
-rw-r--r--arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts58
-rw-r--r--arch/arm/boot/dts/aspeed-g4.dtsi1818
-rw-r--r--arch/arm/boot/dts/aspeed-g5.dtsi1808
-rw-r--r--arch/arm/boot/dts/at91-ariag25.dts4
-rw-r--r--arch/arm/boot/dts/at91-ariettag25.dts4
-rw-r--r--arch/arm/boot/dts/at91-cosino_mega2560.dts4
-rw-r--r--arch/arm/boot/dts/at91-kizbox2.dts4
-rw-r--r--arch/arm/boot/dts/at91-kizboxmini.dts4
-rw-r--r--arch/arm/boot/dts/at91-sama5d27_som1_ek.dts52
-rw-r--r--arch/arm/boot/dts/at91-sama5d2_xplained.dts47
-rw-r--r--arch/arm/boot/dts/at91-sama5d3_xplained.dts6
-rw-r--r--arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts6
-rw-r--r--arch/arm/boot/dts/at91-sama5d4_xplained.dts6
-rw-r--r--arch/arm/boot/dts/at91-sama5d4ek.dts6
-rw-r--r--arch/arm/boot/dts/at91-vinco.dts6
-rw-r--r--arch/arm/boot/dts/at91rm9200.dtsi4
-rw-r--r--arch/arm/boot/dts/at91rm9200ek.dts2
-rw-r--r--arch/arm/boot/dts/at91sam9260.dtsi2
-rw-r--r--arch/arm/boot/dts/at91sam9261.dtsi4
-rw-r--r--arch/arm/boot/dts/at91sam9261ek.dts2
-rw-r--r--arch/arm/boot/dts/at91sam9263.dtsi6
-rw-r--r--arch/arm/boot/dts/at91sam9263ek.dts2
-rw-r--r--arch/arm/boot/dts/at91sam9g20.dtsi4
-rw-r--r--arch/arm/boot/dts/at91sam9g45.dtsi6
-rw-r--r--arch/arm/boot/dts/at91sam9m10g45ek.dts4
-rw-r--r--arch/arm/boot/dts/at91sam9n12.dtsi4
-rw-r--r--arch/arm/boot/dts/at91sam9n12ek.dts2
-rw-r--r--arch/arm/boot/dts/at91sam9rl.dtsi4
-rw-r--r--arch/arm/boot/dts/at91sam9rlek.dts2
-rw-r--r--arch/arm/boot/dts/at91sam9x25ek.dts10
-rw-r--r--arch/arm/boot/dts/at91sam9x5.dtsi6
-rw-r--r--arch/arm/boot/dts/at91sam9x5ek.dtsi6
-rw-r--r--arch/arm/boot/dts/at91sam9xe.dtsi4
-rw-r--r--arch/arm/boot/dts/axp209.dtsi2
-rw-r--r--arch/arm/boot/dts/axp81x.dtsi139
-rw-r--r--arch/arm/boot/dts/bcm-cygnus.dtsi28
-rw-r--r--arch/arm/boot/dts/bcm-hr2.dtsi368
-rw-r--r--arch/arm/boot/dts/bcm-nsp.dtsi8
-rw-r--r--arch/arm/boot/dts/bcm2837-rpi-3-b.dts5
-rw-r--r--arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts3
-rw-r--r--arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts63
-rw-r--r--arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts63
-rw-r--r--arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts50
-rw-r--r--arch/arm/boot/dts/bcm47189-luxul-xap-810.dts87
-rw-r--r--arch/arm/boot/dts/bcm5301x.dtsi6
-rw-r--r--arch/arm/boot/dts/bcm53340-ubnt-unifi-switch8.dts85
-rw-r--r--arch/arm/boot/dts/bcm53573.dtsi2
-rw-r--r--arch/arm/boot/dts/berlin2.dtsi6
-rw-r--r--arch/arm/boot/dts/berlin2cd.dtsi6
-rw-r--r--arch/arm/boot/dts/berlin2q.dtsi6
-rw-r--r--arch/arm/boot/dts/da850-lcdk.dts18
-rw-r--r--arch/arm/boot/dts/da850.dtsi12
-rw-r--r--arch/arm/boot/dts/dove.dtsi14
-rw-r--r--arch/arm/boot/dts/dra7-evm-common.dtsi4
-rw-r--r--arch/arm/boot/dts/dra7-evm.dts4
-rw-r--r--arch/arm/boot/dts/dra7.dtsi2
-rw-r--r--arch/arm/boot/dts/ep7211-edb7211.dts2
-rw-r--r--arch/arm/boot/dts/exynos3250-artik5.dtsi2
-rw-r--r--arch/arm/boot/dts/exynos3250-monk.dts2
-rw-r--r--arch/arm/boot/dts/exynos3250-rinato.dts24
-rw-r--r--arch/arm/boot/dts/exynos3250.dtsi2
-rw-r--r--arch/arm/boot/dts/exynos4.dtsi4
-rw-r--r--arch/arm/boot/dts/exynos4210-pinctrl.dtsi2
-rw-r--r--arch/arm/boot/dts/exynos4210-universal_c210.dts2
-rw-r--r--arch/arm/boot/dts/exynos4210.dtsi4
-rw-r--r--arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi2
-rw-r--r--arch/arm/boot/dts/exynos4412-odroid-common.dtsi8
-rw-r--r--arch/arm/boot/dts/exynos4412-odroidx.dts2
-rw-r--r--arch/arm/boot/dts/exynos4412-origen.dts2
-rw-r--r--arch/arm/boot/dts/exynos4412-pinctrl.dtsi2
-rw-r--r--arch/arm/boot/dts/exynos4412-trats2.dts117
-rw-r--r--arch/arm/boot/dts/exynos4412.dtsi2
-rw-r--r--arch/arm/boot/dts/exynos5250-arndale.dts22
-rw-r--r--arch/arm/boot/dts/exynos5250-smdk5250.dts20
-rw-r--r--arch/arm/boot/dts/exynos5250-snow-common.dtsi20
-rw-r--r--arch/arm/boot/dts/exynos5250-spring.dts18
-rw-r--r--arch/arm/boot/dts/exynos5250.dtsi24
-rw-r--r--arch/arm/boot/dts/exynos5410-odroidxu.dts6
-rw-r--r--arch/arm/boot/dts/exynos5410-smdk5410.dts2
-rw-r--r--arch/arm/boot/dts/exynos5410.dtsi4
-rw-r--r--arch/arm/boot/dts/exynos5420-arndale-octa.dts6
-rw-r--r--arch/arm/boot/dts/exynos5420-cpus.dtsi8
-rw-r--r--arch/arm/boot/dts/exynos5420-peach-pit.dts4
-rw-r--r--arch/arm/boot/dts/exynos5420-smdk5420.dts9
-rw-r--r--arch/arm/boot/dts/exynos5420.dtsi11
-rw-r--r--arch/arm/boot/dts/exynos5422-cpus.dtsi8
-rw-r--r--arch/arm/boot/dts/exynos5422-odroid-core.dtsi443
-rw-r--r--arch/arm/boot/dts/exynos5422-odroidhc1.dts213
-rw-r--r--arch/arm/boot/dts/exynos5422-odroidxu3-audio.dtsi13
-rw-r--r--arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi711
-rw-r--r--arch/arm/boot/dts/exynos5440-ssdk5440.dts2
-rw-r--r--arch/arm/boot/dts/exynos5440.dtsi2
-rw-r--r--arch/arm/boot/dts/exynos54xx.dtsi4
-rw-r--r--arch/arm/boot/dts/ge863-pro3.dtsi2
-rw-r--r--arch/arm/boot/dts/gemini.dtsi21
-rw-r--r--arch/arm/boot/dts/hip01.dtsi4
-rw-r--r--arch/arm/boot/dts/hip04-d01.dts2
-rw-r--r--arch/arm/boot/dts/hisi-x5hd2.dtsi30
-rw-r--r--arch/arm/boot/dts/imx1.dtsi44
-rw-r--r--arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts2
-rw-r--r--arch/arm/boot/dts/imx25-pdk.dts10
-rw-r--r--arch/arm/boot/dts/imx28-apx4devkit.dts2
-rw-r--r--arch/arm/boot/dts/imx28-eukrea-mbmx28lc.dtsi2
-rw-r--r--arch/arm/boot/dts/imx28-evk.dts2
-rw-r--r--arch/arm/boot/dts/imx28-m28evk.dts2
-rw-r--r--arch/arm/boot/dts/imx28-tx28.dts177
-rw-r--r--arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dts2
-rw-r--r--arch/arm/boot/dts/imx50.dtsi3
-rw-r--r--arch/arm/boot/dts/imx51-apf51dev.dts10
-rw-r--r--arch/arm/boot/dts/imx51-babbage.dts14
-rw-r--r--arch/arm/boot/dts/imx51-ts4800.dts8
-rw-r--r--arch/arm/boot/dts/imx51-zii-rdu1.dts834
-rw-r--r--arch/arm/boot/dts/imx51.dtsi4
-rw-r--r--arch/arm/boot/dts/imx53-m53evk.dts6
-rw-r--r--arch/arm/boot/dts/imx53-mba53.dts2
-rw-r--r--arch/arm/boot/dts/imx53-ppd.dts1042
-rw-r--r--arch/arm/boot/dts/imx53-qsb-common.dtsi6
-rw-r--r--arch/arm/boot/dts/imx53-smd.dts4
-rw-r--r--arch/arm/boot/dts/imx53-tx53-x03x.dts86
-rw-r--r--arch/arm/boot/dts/imx53-tx53-x13x.dts116
-rw-r--r--arch/arm/boot/dts/imx53-tx53.dtsi166
-rw-r--r--arch/arm/boot/dts/imx53-voipac-bsb.dts2
-rw-r--r--arch/arm/boot/dts/imx53.dtsi6
-rw-r--r--arch/arm/boot/dts/imx6dl-aristainetos2_4.dts2
-rw-r--r--arch/arm/boot/dts/imx6dl-aristainetos_4.dts2
-rw-r--r--arch/arm/boot/dts/imx6dl-aristainetos_7.dts2
-rw-r--r--arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts2
-rw-r--r--arch/arm/boot/dts/imx6dl-icore.dts9
-rw-r--r--arch/arm/boot/dts/imx6dl-riotboard.dts4
-rw-r--r--arch/arm/boot/dts/imx6dl-tx6dl-comtft.dts74
-rw-r--r--arch/arm/boot/dts/imx6dl-tx6s-8034-mb7.dts48
-rw-r--r--arch/arm/boot/dts/imx6dl-tx6s-8034.dts171
-rw-r--r--arch/arm/boot/dts/imx6dl-tx6s-8035-mb7.dts48
-rw-r--r--arch/arm/boot/dts/imx6dl-tx6s-8035.dts171
-rw-r--r--arch/arm/boot/dts/imx6dl-tx6u-801x.dts161
-rw-r--r--arch/arm/boot/dts/imx6dl-tx6u-8033-mb7.dts48
-rw-r--r--arch/arm/boot/dts/imx6dl-tx6u-8033.dts170
-rw-r--r--arch/arm/boot/dts/imx6dl-tx6u-80xx-mb7.dts48
-rw-r--r--arch/arm/boot/dts/imx6dl-tx6u-811x.dts132
-rw-r--r--arch/arm/boot/dts/imx6dl-tx6u-81xx-mb7.dts215
-rw-r--r--arch/arm/boot/dts/imx6dl-wandboard-revd1.dts22
-rw-r--r--arch/arm/boot/dts/imx6dl.dtsi16
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-eval.dts2
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts2
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-ixora.dts2
-rw-r--r--arch/arm/boot/dts/imx6q-bx50v3.dtsi2
-rw-r--r--arch/arm/boot/dts/imx6q-cm-fx6.dts5
-rw-r--r--arch/arm/boot/dts/imx6q-display5-tianma-tm070-1280x768.dts51
-rw-r--r--arch/arm/boot/dts/imx6q-display5.dtsi596
-rw-r--r--arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts2
-rw-r--r--arch/arm/boot/dts/imx6q-gw5400-a.dts221
-rw-r--r--arch/arm/boot/dts/imx6q-h100.dts4
-rw-r--r--arch/arm/boot/dts/imx6q-icore-rqs.dts24
-rw-r--r--arch/arm/boot/dts/imx6q-mccmon6.dts2
-rw-r--r--arch/arm/boot/dts/imx6q-novena.dts6
-rw-r--r--arch/arm/boot/dts/imx6q-pistachio.dts693
-rw-r--r--arch/arm/boot/dts/imx6q-tbs2910.dts2
-rw-r--r--arch/arm/boot/dts/imx6q-tx6q-1010-comtft.dts74
-rw-r--r--arch/arm/boot/dts/imx6q-tx6q-1010.dts163
-rw-r--r--arch/arm/boot/dts/imx6q-tx6q-1020-comtft.dts74
-rw-r--r--arch/arm/boot/dts/imx6q-tx6q-1020.dts162
-rw-r--r--arch/arm/boot/dts/imx6q-tx6q-1036-mb7.dts48
-rw-r--r--arch/arm/boot/dts/imx6q-tx6q-1036.dts170
-rw-r--r--arch/arm/boot/dts/imx6q-tx6q-10x0-mb7.dts48
-rw-r--r--arch/arm/boot/dts/imx6q-tx6q-1110.dts134
-rw-r--r--arch/arm/boot/dts/imx6q-tx6q-11x0-mb7.dts222
-rw-r--r--arch/arm/boot/dts/imx6q-utilite-pro.dts8
-rw-r--r--arch/arm/boot/dts/imx6q-wandboard-revd1.dts26
-rw-r--r--arch/arm/boot/dts/imx6q.dtsi16
-rw-r--r--arch/arm/boot/dts/imx6qdl-apalis.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl-apf6dev.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl-colibri.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw51xx.dtsi300
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw52xx.dtsi374
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw53xx.dtsi360
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw54xx.dtsi390
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw551x.dtsi182
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw552x.dtsi174
-rw-r--r--arch/arm/boot/dts/imx6qdl-hummingboard.dtsi2
-rw-r--r--arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi94
-rw-r--r--arch/arm/boot/dts/imx6qdl-icore.dtsi97
-rw-r--r--arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi6
-rw-r--r--arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi6
-rw-r--r--arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi6
-rw-r--r--arch/arm/boot/dts/imx6qdl-rex.dtsi2
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabreauto.dtsi2
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabrelite.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabresd.dtsi14
-rw-r--r--arch/arm/boot/dts/imx6qdl-tx6-lcd.dtsi252
-rw-r--r--arch/arm/boot/dts/imx6qdl-tx6-lvds.dtsi286
-rw-r--r--arch/arm/boot/dts/imx6qdl-tx6-mb7.dtsi99
-rw-r--r--arch/arm/boot/dts/imx6qdl-tx6.dtsi106
-rw-r--r--arch/arm/boot/dts/imx6qdl-wandboard-revd1.dtsi196
-rw-r--r--arch/arm/boot/dts/imx6qdl-wandboard.dtsi2
-rw-r--r--arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi5
-rw-r--r--arch/arm/boot/dts/imx6qdl.dtsi178
-rw-r--r--arch/arm/boot/dts/imx6qp-tx6qp-8037-mb7.dts48
-rw-r--r--arch/arm/boot/dts/imx6qp-tx6qp-8037.dts86
-rw-r--r--arch/arm/boot/dts/imx6qp-tx6qp-8137-mb7.dts57
-rw-r--r--arch/arm/boot/dts/imx6qp-tx6qp-8137.dts90
-rw-r--r--arch/arm/boot/dts/imx6qp-wandboard-revd1.dts26
-rw-r--r--arch/arm/boot/dts/imx6qp.dtsi6
-rw-r--r--arch/arm/boot/dts/imx6sl-evk.dts2
-rw-r--r--arch/arm/boot/dts/imx6sl.dtsi134
-rw-r--r--arch/arm/boot/dts/imx6sx-nitrogen6sx.dts2
-rw-r--r--arch/arm/boot/dts/imx6sx-sdb-reva.dts2
-rw-r--r--arch/arm/boot/dts/imx6sx-sdb.dts2
-rw-r--r--arch/arm/boot/dts/imx6sx-softing-vining-2000.dts572
-rw-r--r--arch/arm/boot/dts/imx6sx-udoo-neo.dtsi2
-rw-r--r--arch/arm/boot/dts/imx6sx.dtsi199
-rw-r--r--arch/arm/boot/dts/imx6ul-14x14-evk.dts2
-rw-r--r--arch/arm/boot/dts/imx6ul-pico-hobbit.dts6
-rw-r--r--arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts2
-rw-r--r--arch/arm/boot/dts/imx6ul-tx6ul.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6ul.dtsi161
-rw-r--r--arch/arm/boot/dts/imx7-colibri.dtsi2
-rw-r--r--arch/arm/boot/dts/imx7d-nitrogen7.dts2
-rw-r--r--arch/arm/boot/dts/imx7d-pico.dts43
-rw-r--r--arch/arm/boot/dts/imx7d-sdb.dts2
-rw-r--r--arch/arm/boot/dts/imx7s-warp.dts4
-rw-r--r--arch/arm/boot/dts/integrator.dtsi10
-rw-r--r--arch/arm/boot/dts/integratorap.dts25
-rw-r--r--arch/arm/boot/dts/iwg20d-q7-common.dtsi152
-rw-r--r--arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi43
-rw-r--r--arch/arm/boot/dts/keystone-k2e.dtsi6
-rw-r--r--arch/arm/boot/dts/keystone-k2g-evm.dts93
-rw-r--r--arch/arm/boot/dts/keystone-k2g.dtsi242
-rw-r--r--arch/arm/boot/dts/keystone-k2hk.dtsi8
-rw-r--r--arch/arm/boot/dts/keystone-k2l.dtsi12
-rw-r--r--arch/arm/boot/dts/keystone.dtsi12
-rw-r--r--arch/arm/boot/dts/kirkwood-synology.dtsi12
-rw-r--r--arch/arm/boot/dts/kirkwood-ts219.dtsi12
-rw-r--r--arch/arm/boot/dts/kirkwood.dtsi4
-rw-r--r--arch/arm/boot/dts/lpc3250-ea3250.dts8
-rw-r--r--arch/arm/boot/dts/lpc3250-phy3250.dts10
-rw-r--r--arch/arm/boot/dts/lpc32xx.dtsi2
-rw-r--r--arch/arm/boot/dts/meson.dtsi47
-rw-r--r--arch/arm/boot/dts/meson6.dtsi3
-rw-r--r--arch/arm/boot/dts/meson8.dtsi40
-rw-r--r--arch/arm/boot/dts/meson8b-odroidc1.dts23
-rw-r--r--arch/arm/boot/dts/meson8b.dtsi59
-rw-r--r--arch/arm/boot/dts/mpa1600.dts2
-rw-r--r--arch/arm/boot/dts/mt2701-evb.dts23
-rw-r--r--arch/arm/boot/dts/mt2701.dtsi13
-rw-r--r--arch/arm/boot/dts/mt6589.dtsi2
-rw-r--r--arch/arm/boot/dts/mt7623.dtsi30
-rw-r--r--arch/arm/boot/dts/nspire.dtsi2
-rw-r--r--arch/arm/boot/dts/omap2420-n8x0-common.dtsi4
-rw-r--r--arch/arm/boot/dts/omap3-evm-37xx.dts209
-rw-r--r--arch/arm/boot/dts/omap3-evm-processor-common.dtsi216
-rw-r--r--arch/arm/boot/dts/omap3-evm.dts76
-rw-r--r--arch/arm/boot/dts/omap3-lilly-a83x.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-n900.dts2
-rw-r--r--arch/arm/boot/dts/omap3-panel-sharp-ls037v7dw01.dtsi1
-rw-r--r--arch/arm/boot/dts/omap4-panda-common.dtsi4
-rw-r--r--arch/arm/boot/dts/omap4.dtsi2
-rw-r--r--arch/arm/boot/dts/omap5-board-common.dtsi4
-rw-r--r--arch/arm/boot/dts/omap5.dtsi2
-rw-r--r--arch/arm/boot/dts/owl-s500-cubieboard6.dts44
-rw-r--r--arch/arm/boot/dts/owl-s500-guitar-bb-rev-b.dts7
-rw-r--r--arch/arm/boot/dts/owl-s500.dtsi3
-rw-r--r--arch/arm/boot/dts/ox810se.dtsi4
-rw-r--r--arch/arm/boot/dts/ox820.dtsi2
-rw-r--r--arch/arm/boot/dts/picoxcell-pc3x2.dtsi2
-rw-r--r--arch/arm/boot/dts/picoxcell-pc3x3.dtsi2
-rw-r--r--arch/arm/boot/dts/pm9g45.dts4
-rw-r--r--arch/arm/boot/dts/qcom-apq8060-dragonboard.dts12
-rw-r--r--arch/arm/boot/dts/qcom-apq8064.dtsi5
-rw-r--r--arch/arm/boot/dts/qcom-msm8660.dtsi89
-rw-r--r--arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dts321
-rw-r--r--arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dts641
-rw-r--r--arch/arm/boot/dts/qcom-msm8974.dtsi30
-rw-r--r--arch/arm/boot/dts/qcom-msm8974pro.dtsi18
-rw-r--r--arch/arm/boot/dts/r7s72100-gr-peach.dts73
-rw-r--r--arch/arm/boot/dts/r7s72100.dtsi1
-rw-r--r--arch/arm/boot/dts/r8a73a4.dtsi1
-rw-r--r--arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts19
-rw-r--r--arch/arm/boot/dts/r8a7743-iwg20d-q7.dts42
-rw-r--r--arch/arm/boot/dts/r8a7743-iwg20m.dtsi43
-rw-r--r--arch/arm/boot/dts/r8a7743.dtsi339
-rw-r--r--arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts109
-rw-r--r--arch/arm/boot/dts/r8a7745-iwg22m.dtsi111
-rw-r--r--arch/arm/boot/dts/r8a7745.dtsi429
-rw-r--r--arch/arm/boot/dts/r8a7778.dtsi11
-rw-r--r--arch/arm/boot/dts/r8a7779.dtsi18
-rw-r--r--arch/arm/boot/dts/r8a7790-lager.dts7
-rw-r--r--arch/arm/boot/dts/r8a7790.dtsi783
-rw-r--r--arch/arm/boot/dts/r8a7791-koelsch.dts4
-rw-r--r--arch/arm/boot/dts/r8a7791-porter.dts4
-rw-r--r--arch/arm/boot/dts/r8a7791.dtsi777
-rw-r--r--arch/arm/boot/dts/r8a7792-blanche.dts3
-rw-r--r--arch/arm/boot/dts/r8a7792-wheat.dts3
-rw-r--r--arch/arm/boot/dts/r8a7792.dtsi409
-rw-r--r--arch/arm/boot/dts/r8a7793-gose.dts4
-rw-r--r--arch/arm/boot/dts/r8a7793.dtsi643
-rw-r--r--arch/arm/boot/dts/r8a7794-alt.dts7
-rw-r--r--arch/arm/boot/dts/r8a7794-silk.dts3
-rw-r--r--arch/arm/boot/dts/r8a7794.dtsi715
-rw-r--r--arch/arm/boot/dts/rk3036-kylin.dts5
-rw-r--r--arch/arm/boot/dts/rk3036.dtsi19
-rw-r--r--arch/arm/boot/dts/rk3066a-rayeager.dts2
-rw-r--r--arch/arm/boot/dts/rk3066a.dtsi24
-rw-r--r--arch/arm/boot/dts/rk3188-radxarock.dts4
-rw-r--r--arch/arm/boot/dts/rk3188.dtsi24
-rw-r--r--arch/arm/boot/dts/rk322x.dtsi21
-rw-r--r--arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi2
-rw-r--r--arch/arm/boot/dts/rk3288-firefly-reload.dts11
-rw-r--r--arch/arm/boot/dts/rk3288-popmetal.dts2
-rw-r--r--arch/arm/boot/dts/rk3288-vyasa.dts498
-rw-r--r--arch/arm/boot/dts/rk3288.dtsi75
-rw-r--r--arch/arm/boot/dts/rk3xxx.dtsi11
-rw-r--r--arch/arm/boot/dts/rv1108-evb.dts4
-rw-r--r--arch/arm/boot/dts/rv1108.dtsi67
-rw-r--r--arch/arm/boot/dts/sama5d2.dtsi12
-rw-r--r--arch/arm/boot/dts/sama5d3.dtsi8
-rw-r--r--arch/arm/boot/dts/sama5d3xmb.dtsi6
-rw-r--r--arch/arm/boot/dts/sama5d3xmb_cmp.dtsi2
-rw-r--r--arch/arm/boot/dts/sama5d4.dtsi10
-rw-r--r--arch/arm/boot/dts/sh73a0.dtsi2
-rw-r--r--arch/arm/boot/dts/ste-href-stuib.dtsi2
-rw-r--r--arch/arm/boot/dts/ste-href-tvk1281618.dtsi2
-rw-r--r--arch/arm/boot/dts/stih407-clock.dtsi6
-rw-r--r--arch/arm/boot/dts/stih407-family.dtsi18
-rw-r--r--arch/arm/boot/dts/stih407-pinctrl.dtsi52
-rw-r--r--arch/arm/boot/dts/stih410-b2120.dts2
-rw-r--r--arch/arm/boot/dts/stih410-b2260.dts4
-rw-r--r--arch/arm/boot/dts/stih410-clock.dtsi6
-rw-r--r--arch/arm/boot/dts/stih410.dtsi2
-rw-r--r--arch/arm/boot/dts/stih418-b2199.dts4
-rw-r--r--arch/arm/boot/dts/stih418-clock.dtsi6
-rw-r--r--arch/arm/boot/dts/stih418.dtsi2
-rw-r--r--arch/arm/boot/dts/stihxxx-b2120.dtsi6
-rw-r--r--arch/arm/boot/dts/stm32746g-eval.dts24
-rw-r--r--arch/arm/boot/dts/stm32f4-pinctrl.dtsi176
-rw-r--r--arch/arm/boot/dts/stm32f746-disco.dts30
-rw-r--r--arch/arm/boot/dts/stm32f746.dtsi363
-rw-r--r--arch/arm/boot/dts/stm32h743-pinctrl.dtsi32
-rw-r--r--arch/arm/boot/dts/stm32h743.dtsi177
-rw-r--r--arch/arm/boot/dts/stm32h743i-eval.dts2
-rw-r--r--arch/arm/boot/dts/sun4i-a10-a1000.dts28
-rw-r--r--arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts16
-rw-r--r--arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts20
-rw-r--r--arch/arm/boot/dts/sun4i-a10-cubieboard.dts45
-rw-r--r--arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts50
-rw-r--r--arch/arm/boot/dts/sun4i-a10-gemei-g9.dts23
-rw-r--r--arch/arm/boot/dts/sun4i-a10-hackberry.dts24
-rw-r--r--arch/arm/boot/dts/sun4i-a10-hyundai-a7hd.dts10
-rw-r--r--arch/arm/boot/dts/sun4i-a10-inet1.dts36
-rw-r--r--arch/arm/boot/dts/sun4i-a10-inet97fv2.dts24
-rw-r--r--arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts68
-rw-r--r--arch/arm/boot/dts/sun4i-a10-itead-iteaduino-plus.dts21
-rw-r--r--arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts26
-rw-r--r--arch/arm/boot/dts/sun4i-a10-marsboard.dts25
-rw-r--r--arch/arm/boot/dts/sun4i-a10-mini-xplus.dts10
-rw-r--r--arch/arm/boot/dts/sun4i-a10-mk802.dts24
-rw-r--r--arch/arm/boot/dts/sun4i-a10-mk802ii.dts6
-rw-r--r--arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts47
-rw-r--r--arch/arm/boot/dts/sun4i-a10-pcduino.dts32
-rw-r--r--arch/arm/boot/dts/sun4i-a10-pcduino2.dts9
-rw-r--r--arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts43
-rw-r--r--arch/arm/boot/dts/sun4i-a10.dtsi1166
-rw-r--r--arch/arm/boot/dts/sun5i-a10s.dtsi6
-rw-r--r--arch/arm/boot/dts/sun5i-a13.dtsi4
-rw-r--r--arch/arm/boot/dts/sun5i-gr8.dtsi8
-rw-r--r--arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi8
-rw-r--r--arch/arm/boot/dts/sun5i.dtsi86
-rw-r--r--arch/arm/boot/dts/sun6i-a31-hummingbird.dts21
-rw-r--r--arch/arm/boot/dts/sun6i-a31.dtsi209
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-primo81.dts25
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-sina31s.dts25
-rw-r--r--arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts25
-rw-r--r--arch/arm/boot/dts/sun7i-a20-cubieboard2.dts25
-rw-r--r--arch/arm/boot/dts/sun7i-a20-cubietruck.dts25
-rw-r--r--arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts33
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts25
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts25
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olinuxino-micro-emmc.dts70
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts44
-rw-r--r--arch/arm/boot/dts/sun7i-a20.dtsi1147
-rw-r--r--arch/arm/boot/dts/sun8i-a23-a33.dtsi62
-rw-r--r--arch/arm/boot/dts/sun8i-a23.dtsi4
-rw-r--r--arch/arm/boot/dts/sun8i-a33.dtsi18
-rw-r--r--arch/arm/boot/dts/sun8i-a83t-allwinner-h8homlet-v2.dts147
-rw-r--r--arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts169
-rw-r--r--arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts187
-rw-r--r--arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts349
-rw-r--r--arch/arm/boot/dts/sun8i-a83t.dtsi41
-rw-r--r--arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts9
-rw-r--r--arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts39
-rw-r--r--arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts71
-rw-r--r--arch/arm/boot/dts/sun8i-h3-nanopi-m1.dts6
-rw-r--r--arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts7
-rw-r--r--arch/arm/boot/dts/sun8i-h3-nanopi.dtsi8
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-2.dts16
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts6
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-one.dts14
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts5
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts14
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts24
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts16
-rw-r--r--arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts209
-rw-r--r--arch/arm/boot/dts/sun8i-r40.dtsi473
-rw-r--r--arch/arm/boot/dts/sun8i-v3s.dtsi32
-rw-r--r--arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts173
-rw-r--r--arch/arm/boot/dts/sun9i-a80-cubieboard4.dts30
-rw-r--r--arch/arm/boot/dts/sun9i-a80-optimus.dts50
-rw-r--r--arch/arm/boot/dts/sun9i-a80.dtsi117
-rw-r--r--arch/arm/boot/dts/sunxi-h3-h5.dtsi164
-rw-r--r--arch/arm/boot/dts/sunxi-itead-core-common.dtsi4
-rw-r--r--arch/arm/boot/dts/tango4-common.dtsi2
-rw-r--r--arch/arm/boot/dts/tegra124-jetson-tk1.dts4
-rw-r--r--arch/arm/boot/dts/tegra124.dtsi12
-rw-r--r--arch/arm/boot/dts/uniphier-ld4-ref.dts10
-rw-r--r--arch/arm/boot/dts/uniphier-ld4.dtsi25
-rw-r--r--arch/arm/boot/dts/uniphier-ld6b-ref.dts10
-rw-r--r--arch/arm/boot/dts/uniphier-pinctrl.dtsi46
-rw-r--r--arch/arm/boot/dts/uniphier-pro4-ref.dts10
-rw-r--r--arch/arm/boot/dts/uniphier-pro4.dtsi27
-rw-r--r--arch/arm/boot/dts/uniphier-pro5.dtsi29
-rw-r--r--arch/arm/boot/dts/uniphier-pxs2.dtsi80
-rw-r--r--arch/arm/boot/dts/uniphier-sld8-ref.dts10
-rw-r--r--arch/arm/boot/dts/uniphier-sld8.dtsi29
-rw-r--r--arch/arm/boot/dts/uniphier-support-card.dtsi3
-rw-r--r--arch/arm/boot/dts/usb_a9263.dts2
-rw-r--r--arch/arm/boot/dts/usb_a9g20_common.dtsi4
-rw-r--r--arch/arm/boot/dts/vf610-twr.dts2
-rw-r--r--arch/arm/boot/dts/vf610-zii-dev-rev-c.dts2
-rw-r--r--arch/arm/boot/dts/zx296702.dtsi4
-rw-r--r--arch/arm/boot/dts/zynq-zc702.dts2
-rw-r--r--arch/arm/boot/dts/zynq-zc706.dts2
-rw-r--r--arch/arm/mach-davinci/da8xx-dt.c1
-rw-r--r--arch/arm64/Kconfig.platforms7
-rw-r--r--arch/arm64/boot/dts/actions/s900-bubblegum-96.dts7
-rw-r--r--arch/arm64/boot/dts/allwinner/Makefile1
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts16
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts15
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts17
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts16
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi97
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts193
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts17
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts17
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts17
-rw-r--r--arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi38
-rw-r--r--arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts62
-rw-r--r--arch/arm64/boot/dts/amlogic/Makefile3
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-axg-s400.dts22
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-axg.dtsi204
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gx.dtsi22
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts14
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts31
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts15
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi18
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts8
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts27
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxl.dtsi26
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts400
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxm-vega-s96.dts38
-rw-r--r--arch/arm64/boot/dts/apm/apm-shadowcat.dtsi6
-rw-r--r--arch/arm64/boot/dts/apm/apm-storm.dtsi4
-rw-r--r--arch/arm64/boot/dts/arm/Makefile4
-rw-r--r--arch/arm64/boot/dts/arm/foundation-v8-gicv2.dtsi19
-rw-r--r--arch/arm64/boot/dts/arm/foundation-v8-gicv3-psci.dts9
-rw-r--r--arch/arm64/boot/dts/arm/foundation-v8-gicv3.dts25
-rw-r--r--arch/arm64/boot/dts/arm/foundation-v8-gicv3.dtsi28
-rw-r--r--arch/arm64/boot/dts/arm/foundation-v8-psci.dts9
-rw-r--r--arch/arm64/boot/dts/arm/foundation-v8-psci.dtsi28
-rw-r--r--arch/arm64/boot/dts/arm/foundation-v8-spin-table.dtsi25
-rw-r--r--arch/arm64/boot/dts/arm/foundation-v8.dts16
-rw-r--r--arch/arm64/boot/dts/arm/foundation-v8.dtsi30
-rw-r--r--arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts2
-rw-r--r--arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi24
-rw-r--r--arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts2
-rw-r--r--arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts2
-rw-r--r--arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi4
-rw-r--r--arch/arm64/boot/dts/broadcom/stingray/stingray-clock.dtsi12
-rw-r--r--arch/arm64/boot/dts/broadcom/stingray/stingray-fs4.dtsi4
-rw-r--r--arch/arm64/boot/dts/broadcom/stingray/stingray-pinctrl.dtsi4
-rw-r--r--arch/arm64/boot/dts/broadcom/stingray/stingray-sata.dtsi32
-rw-r--r--arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi66
-rw-r--r--arch/arm64/boot/dts/cavium/thunder-88xx.dts2
-rw-r--r--arch/arm64/boot/dts/cavium/thunder-88xx.dtsi32
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts33
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi20
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi11
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi11
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi88
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi4
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi7
-rw-r--r--arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts319
-rw-r--r--arch/arm64/boot/dts/hisilicon/hi3660.dtsi7
-rw-r--r--arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts20
-rw-r--r--arch/arm64/boot/dts/hisilicon/hi6220-coresight.dtsi381
-rw-r--r--arch/arm64/boot/dts/hisilicon/hi6220.dtsi2
-rw-r--r--arch/arm64/boot/dts/hisilicon/hip05-d02.dts2
-rw-r--r--arch/arm64/boot/dts/hisilicon/hip06-d03.dts2
-rw-r--r--arch/arm64/boot/dts/marvell/armada-3720-db.dts20
-rw-r--r--arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts12
-rw-r--r--arch/arm64/boot/dts/marvell/armada-37xx.dtsi22
-rw-r--r--arch/arm64/boot/dts/marvell/armada-7040-db.dts57
-rw-r--r--arch/arm64/boot/dts/marvell/armada-70x0.dtsi14
-rw-r--r--arch/arm64/boot/dts/marvell/armada-8040-db.dts59
-rw-r--r--arch/arm64/boot/dts/marvell/armada-8040-mcbin.dts13
-rw-r--r--arch/arm64/boot/dts/marvell/armada-8080-db.dts2
-rw-r--r--arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi4
-rw-r--r--arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi4
-rw-r--r--arch/arm64/boot/dts/marvell/armada-ap806.dtsi11
-rw-r--r--arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi4
-rw-r--r--arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi59
-rw-r--r--arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi58
-rw-r--r--arch/arm64/boot/dts/marvell/berlin4ct.dtsi6
-rw-r--r--arch/arm64/boot/dts/mediatek/mt2712e.dtsi25
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts24
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra186.dtsi214
-rw-r--r--arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi177
-rw-r--r--arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi32
-rw-r--r--arch/arm64/boot/dts/qcom/msm8916.dtsi13
-rw-r--r--arch/arm64/boot/dts/qcom/msm8996-pins.dtsi195
-rw-r--r--arch/arm64/boot/dts/qcom/msm8996.dtsi191
-rw-r--r--arch/arm64/boot/dts/realtek/Makefile2
-rw-r--r--arch/arm64/boot/dts/realtek/rtd1295-mele-v9.dts31
-rw-r--r--arch/arm64/boot/dts/realtek/rtd1295-probox2-ava.dts31
-rw-r--r--arch/arm64/boot/dts/realtek/rtd1295-zidoo-x9s.dts6
-rw-r--r--arch/arm64/boot/dts/realtek/rtd1295.dtsi62
-rw-r--r--arch/arm64/boot/dts/realtek/rtd129x.dtsi72
-rw-r--r--arch/arm64/boot/dts/renesas/Makefile4
-rw-r--r--arch/arm64/boot/dts/renesas/r8a7795-es1-h3ulcb-kf.dts19
-rw-r--r--arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi2
-rw-r--r--arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf.dts19
-rw-r--r--arch/arm64/boot/dts/renesas/r8a7795.dtsi31
-rw-r--r--arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts19
-rw-r--r--arch/arm64/boot/dts/renesas/r8a7796.dtsi53
-rw-r--r--arch/arm64/boot/dts/renesas/r8a77970-eagle.dts57
-rw-r--r--arch/arm64/boot/dts/renesas/r8a77970.dtsi382
-rw-r--r--arch/arm64/boot/dts/renesas/r8a77995-draak.dts78
-rw-r--r--arch/arm64/boot/dts/renesas/r8a77995.dtsi267
-rw-r--r--arch/arm64/boot/dts/renesas/salvator-common.dtsi16
-rw-r--r--arch/arm64/boot/dts/renesas/ulcb-kf.dtsi169
-rw-r--r--arch/arm64/boot/dts/renesas/ulcb.dtsi9
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3328-evb.dts72
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3368.dtsi16
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3399-firefly.dts27
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts4
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi3
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3399.dtsi19
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-ld11-ref.dts11
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi65
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts11
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi105
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts7
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi58
-rw-r--r--include/dt-bindings/clock/r7s72100-clock.h2
-rw-r--r--include/dt-bindings/clock/rk3188-cru-common.h9
-rw-r--r--include/dt-bindings/clock/rk3368-cru.h1
-rw-r--r--include/dt-bindings/clock/tegra210-car.h1
-rw-r--r--include/dt-bindings/pinctrl/am43xx.h12
-rw-r--r--include/dt-bindings/pinctrl/stm32-pinfunc.h30
-rw-r--r--include/dt-bindings/pinctrl/stm32f429-pinfunc.h1240
-rw-r--r--include/dt-bindings/pinctrl/stm32f746-pinfunc.h1325
-rw-r--r--include/dt-bindings/pinctrl/stm32h7-pinfunc.h1613
-rw-r--r--include/dt-bindings/power/r8a77970-sysc.h32
-rw-r--r--include/dt-bindings/thermal/tegra186-bpmp-thermal.h14
608 files changed, 28063 insertions, 15882 deletions
diff --git a/Documentation/devicetree/bindings/arm/actions.txt b/Documentation/devicetree/bindings/arm/actions.txt
index 3bc7ea575564..ced764a8549e 100644
--- a/Documentation/devicetree/bindings/arm/actions.txt
+++ b/Documentation/devicetree/bindings/arm/actions.txt
@@ -21,6 +21,7 @@ Boards:
21 21
22Root node property compatible must contain, depending on board: 22Root node property compatible must contain, depending on board:
23 23
24 - Cubietech CubieBoard6: "cubietech,cubieboard6"
24 - LeMaker Guitar Base Board rev. B: "lemaker,guitar-bb-rev-b", "lemaker,guitar" 25 - LeMaker Guitar Base Board rev. B: "lemaker,guitar-bb-rev-b", "lemaker,guitar"
25 26
26 27
diff --git a/Documentation/devicetree/bindings/arm/amlogic.txt b/Documentation/devicetree/bindings/arm/amlogic.txt
index 4e4bc0bae597..f747f47922c5 100644
--- a/Documentation/devicetree/bindings/arm/amlogic.txt
+++ b/Documentation/devicetree/bindings/arm/amlogic.txt
@@ -41,6 +41,10 @@ Boards with the Amlogic Meson GXM S912 SoC shall have the following properties:
41 Required root node property: 41 Required root node property:
42 compatible: "amlogic,s912", "amlogic,meson-gxm"; 42 compatible: "amlogic,s912", "amlogic,meson-gxm";
43 43
44Boards with the Amlogic Meson AXG A113D SoC shall have the following properties:
45 Required root node property:
46 compatible: "amlogic,a113d", "amlogic,meson-axg";
47
44Board compatible values (alphabetically, grouped by SoC): 48Board compatible values (alphabetically, grouped by SoC):
45 49
46 - "geniatech,atv1200" (Meson6) 50 - "geniatech,atv1200" (Meson6)
@@ -71,8 +75,12 @@ Board compatible values (alphabetically, grouped by SoC):
71 75
72 - "amlogic,q200" (Meson gxm s912) 76 - "amlogic,q200" (Meson gxm s912)
73 - "amlogic,q201" (Meson gxm s912) 77 - "amlogic,q201" (Meson gxm s912)
78 - "khadas,vim2" (Meson gxm s912)
74 - "kingnovel,r-box-pro" (Meson gxm S912) 79 - "kingnovel,r-box-pro" (Meson gxm S912)
75 - "nexbox,a1" (Meson gxm s912) 80 - "nexbox,a1" (Meson gxm s912)
81 - "tronsmart,vega-s96" (Meson gxm s912)
82
83 - "amlogic,s400" (Meson axg a113d)
76 84
77Amlogic Meson Firmware registers Interface 85Amlogic Meson Firmware registers Interface
78------------------------------------------ 86------------------------------------------
diff --git a/Documentation/devicetree/bindings/arm/amlogic/analog-top.txt b/Documentation/devicetree/bindings/arm/amlogic/analog-top.txt
new file mode 100644
index 000000000000..101dc21014ec
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/amlogic/analog-top.txt
@@ -0,0 +1,20 @@
1Amlogic Meson8 and Meson8b "analog top" registers:
2--------------------------------------------------
3
4The analog top registers contain information about the so-called
5"metal revision" (which encodes the "minor version") of the SoC.
6
7Required properties:
8- reg: the register range of the analog top registers
9- compatible: depending on the SoC this should be one of:
10 - "amlogic,meson8-analog-top"
11 - "amlogic,meson8b-analog-top"
12 along with "syscon"
13
14
15Example:
16
17 analog_top: analog-top@81a8 {
18 compatible = "amlogic,meson8-analog-top", "syscon";
19 reg = <0x81a8 0x14>;
20 };
diff --git a/Documentation/devicetree/bindings/arm/amlogic/assist.txt b/Documentation/devicetree/bindings/arm/amlogic/assist.txt
new file mode 100644
index 000000000000..7656812b67b9
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/amlogic/assist.txt
@@ -0,0 +1,17 @@
1Amlogic Meson6/Meson8/Meson8b assist registers:
2-----------------------------------------------
3
4The assist registers contain basic information about the SoC,
5for example the encoded SoC part number.
6
7Required properties:
8- reg: the register range of the assist registers
9- compatible: should be "amlogic,meson-mx-assist" along with "syscon"
10
11
12Example:
13
14 assist: assist@7c00 {
15 compatible = "amlogic,meson-mx-assist", "syscon";
16 reg = <0x7c00 0x200>;
17 };
diff --git a/Documentation/devicetree/bindings/arm/amlogic/bootrom.txt b/Documentation/devicetree/bindings/arm/amlogic/bootrom.txt
new file mode 100644
index 000000000000..407e27f230ab
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/amlogic/bootrom.txt
@@ -0,0 +1,17 @@
1Amlogic Meson6/Meson8/Meson8b bootrom:
2--------------------------------------
3
4The bootrom register area can be used to access SoC specific
5information, such as the "misc version".
6
7Required properties:
8- reg: the register range of the bootrom registers
9- compatible: should be "amlogic,meson-mx-bootrom" along with "syscon"
10
11
12Example:
13
14 bootrom: bootrom@d9040000 {
15 compatible = "amlogic,meson-mx-bootrom", "syscon";
16 reg = <0xd9040000 0x10000>;
17 };
diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,hr2.txt b/Documentation/devicetree/bindings/arm/bcm/brcm,hr2.txt
new file mode 100644
index 000000000000..a124c7fc4dcd
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/bcm/brcm,hr2.txt
@@ -0,0 +1,14 @@
1Broadcom Hurricane 2 device tree bindings
2---------------------------------------
3
4Broadcom Hurricane 2 family of SoCs are used for switching control. These SoCs
5are based on Broadcom's iProc SoC architecture and feature a single core Cortex
6A9 ARM CPUs, DDR2/DDR3 memory, PCIe GEN-2, USB 2.0 and USB 3.0, serial and NAND
7flash and a PCIe attached integrated switching engine.
8
9Boards with Hurricane SoCs shall have the following properties:
10
11Required root node property:
12
13BCM53342
14compatible = "brcm,bcm53342", "brcm,hr2";
diff --git a/Documentation/devicetree/bindings/arm/realtek.txt b/Documentation/devicetree/bindings/arm/realtek.txt
index 13d755787b4f..95839e19ae92 100644
--- a/Documentation/devicetree/bindings/arm/realtek.txt
+++ b/Documentation/devicetree/bindings/arm/realtek.txt
@@ -12,6 +12,8 @@ Required root node properties:
12 12
13Root node property compatible must contain, depending on board: 13Root node property compatible must contain, depending on board:
14 14
15 - MeLE V9: "mele,v9"
16 - ProBox2 AVA: "probox2,ava"
15 - Zidoo X9S: "zidoo,x9s" 17 - Zidoo X9S: "zidoo,x9s"
16 18
17 19
diff --git a/Documentation/devicetree/bindings/arm/rockchip.txt b/Documentation/devicetree/bindings/arm/rockchip.txt
index b003148e2945..326d24bca1a9 100644
--- a/Documentation/devicetree/bindings/arm/rockchip.txt
+++ b/Documentation/devicetree/bindings/arm/rockchip.txt
@@ -1,5 +1,9 @@
1Rockchip platforms device tree bindings 1Rockchip platforms device tree bindings
2--------------------------------------- 2---------------------------------------
3- Amarula Vyasa RK3288 board
4 Required root node properties:
5 - compatible = "amarula,vyasa-rk3288", "rockchip,rk3288";
6
3- Asus Tinker board 7- Asus Tinker board
4 Required root node properties: 8 Required root node properties:
5 - compatible = "asus,rk3288-tinker", "rockchip,rk3288"; 9 - compatible = "asus,rk3288-tinker", "rockchip,rk3288";
diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt
index fa674818e7e8..e13459618581 100644
--- a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt
+++ b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt
@@ -57,6 +57,7 @@ Required root node properties:
57 - "hardkernel,odroid-xu3-lite" - for Exynos5422-based Hardkernel 57 - "hardkernel,odroid-xu3-lite" - for Exynos5422-based Hardkernel
58 Odroid XU3 Lite board. 58 Odroid XU3 Lite board.
59 - "hardkernel,odroid-xu4" - for Exynos5422-based Hardkernel Odroid XU4. 59 - "hardkernel,odroid-xu4" - for Exynos5422-based Hardkernel Odroid XU4.
60 - "hardkernel,odroid-hc1" - for Exynos5422-based Hardkernel Odroid HC1.
60 61
61 * Insignal 62 * Insignal
62 - "insignal,arndale" - for Exynos5250-based Insignal Arndale board. 63 - "insignal,arndale" - for Exynos5250-based Insignal Arndale board.
diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt
index ae75cb3b1331..020d758fc0c5 100644
--- a/Documentation/devicetree/bindings/arm/shmobile.txt
+++ b/Documentation/devicetree/bindings/arm/shmobile.txt
@@ -39,6 +39,8 @@ SoCs:
39 compatible = "renesas,r8a7795" 39 compatible = "renesas,r8a7795"
40 - R-Car M3-W (R8A77960) 40 - R-Car M3-W (R8A77960)
41 compatible = "renesas,r8a7796" 41 compatible = "renesas,r8a7796"
42 - R-Car V3M (R8A77970)
43 compatible = "renesas,r8a77970"
42 - R-Car D3 (R8A77995) 44 - R-Car D3 (R8A77995)
43 compatible = "renesas,r8a77995" 45 compatible = "renesas,r8a77995"
44 46
@@ -57,6 +59,8 @@ Boards:
57 compatible = "renesas,bockw", "renesas,r8a7778" 59 compatible = "renesas,bockw", "renesas,r8a7778"
58 - Draak (RTP0RC77995SEB0010S) 60 - Draak (RTP0RC77995SEB0010S)
59 compatible = "renesas,draak", "renesas,r8a77995" 61 compatible = "renesas,draak", "renesas,r8a77995"
62 - Eagle (RTP0RC77970SEB0010S)
63 compatible = "renesas,eagle", "renesas,r8a77970"
60 - Genmai (RTK772100BC00000BR) 64 - Genmai (RTK772100BC00000BR)
61 compatible = "renesas,genmai", "renesas,r7s72100" 65 compatible = "renesas,genmai", "renesas,r7s72100"
62 - GR-Peach (X28A-M01-E/F) 66 - GR-Peach (X28A-M01-E/F)
@@ -65,7 +69,7 @@ Boards:
65 compatible = "renesas,gose", "renesas,r8a7793" 69 compatible = "renesas,gose", "renesas,r8a7793"
66 - H3ULCB (R-Car Starter Kit Premier, RTP0RC7795SKBX0010SA00 (H3 ES1.1)) 70 - H3ULCB (R-Car Starter Kit Premier, RTP0RC7795SKBX0010SA00 (H3 ES1.1))
67 H3ULCB (R-Car Starter Kit Premier, RTP0RC77951SKBX010SA00 (H3 ES2.0)) 71 H3ULCB (R-Car Starter Kit Premier, RTP0RC77951SKBX010SA00 (H3 ES2.0))
68 compatible = "renesas,h3ulcb", "renesas,r8a7795"; 72 compatible = "renesas,h3ulcb", "renesas,r8a7795"
69 - Henninger 73 - Henninger
70 compatible = "renesas,henninger", "renesas,r8a7791" 74 compatible = "renesas,henninger", "renesas,r8a7791"
71 - iWave Systems RZ/G1E SODIMM SOM Development Platform (iW-RainboW-G22D) 75 - iWave Systems RZ/G1E SODIMM SOM Development Platform (iW-RainboW-G22D)
@@ -76,6 +80,8 @@ Boards:
76 compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743" 80 compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743"
77 - iWave Systems RZ/G1M Qseven System On Module (iW-RainboW-G20M-Qseven) 81 - iWave Systems RZ/G1M Qseven System On Module (iW-RainboW-G20M-Qseven)
78 compatible = "iwave,g20m", "renesas,r8a7743" 82 compatible = "iwave,g20m", "renesas,r8a7743"
83 - Kingfisher (SBEV-RCAR-KF-M03)
84 compatible = "shimafuji,kingfisher"
79 - Koelsch (RTP0RC7791SEB00010S) 85 - Koelsch (RTP0RC7791SEB00010S)
80 compatible = "renesas,koelsch", "renesas,r8a7791" 86 compatible = "renesas,koelsch", "renesas,r8a7791"
81 - Kyoto Microcomputer Co. KZM-A9-Dual 87 - Kyoto Microcomputer Co. KZM-A9-Dual
@@ -85,7 +91,7 @@ Boards:
85 - Lager (RTP0RC7790SEB00010S) 91 - Lager (RTP0RC7790SEB00010S)
86 compatible = "renesas,lager", "renesas,r8a7790" 92 compatible = "renesas,lager", "renesas,r8a7790"
87 - M3ULCB (R-Car Starter Kit Pro, RTP0RC7796SKBX0010SA09 (M3 ES1.0)) 93 - M3ULCB (R-Car Starter Kit Pro, RTP0RC7796SKBX0010SA09 (M3 ES1.0))
88 compatible = "renesas,m3ulcb", "renesas,r8a7796"; 94 compatible = "renesas,m3ulcb", "renesas,r8a7796"
89 - Marzen (R0P7779A00010S) 95 - Marzen (R0P7779A00010S)
90 compatible = "renesas,marzen", "renesas,r8a7779" 96 compatible = "renesas,marzen", "renesas,r8a7779"
91 - Porter (M2-LCDP) 97 - Porter (M2-LCDP)
@@ -93,11 +99,11 @@ Boards:
93 - RSKRZA1 (YR0K77210C000BE) 99 - RSKRZA1 (YR0K77210C000BE)
94 compatible = "renesas,rskrza1", "renesas,r7s72100" 100 compatible = "renesas,rskrza1", "renesas,r7s72100"
95 - Salvator-X (RTP0RC7795SIPB0010S) 101 - Salvator-X (RTP0RC7795SIPB0010S)
96 compatible = "renesas,salvator-x", "renesas,r8a7795"; 102 compatible = "renesas,salvator-x", "renesas,r8a7795"
97 - Salvator-X (RTP0RC7796SIPB0011S) 103 - Salvator-X (RTP0RC7796SIPB0011S)
98 compatible = "renesas,salvator-x", "renesas,r8a7796"; 104 compatible = "renesas,salvator-x", "renesas,r8a7796"
99 - Salvator-XS (Salvator-X 2nd version, RTP0RC7795SIPB0012S) 105 - Salvator-XS (Salvator-X 2nd version, RTP0RC7795SIPB0012S)
100 compatible = "renesas,salvator-xs", "renesas,r8a7795"; 106 compatible = "renesas,salvator-xs", "renesas,r8a7795"
101 - SILK (RTP0RC7794LCB00011S) 107 - SILK (RTP0RC7794LCB00011S)
102 compatible = "renesas,silk", "renesas,r8a7794" 108 compatible = "renesas,silk", "renesas,r8a7794"
103 - SK-RZG1E (YR8A77450S000BE) 109 - SK-RZG1E (YR8A77450S000BE)
diff --git a/Documentation/devicetree/bindings/bus/ts-nbus.txt b/Documentation/devicetree/bindings/bus/ts-nbus.txt
new file mode 100644
index 000000000000..2a10d065b9fa
--- /dev/null
+++ b/Documentation/devicetree/bindings/bus/ts-nbus.txt
@@ -0,0 +1,50 @@
1Technologic Systems NBUS
2
3The NBUS is a bus used to interface with peripherals in the Technologic
4Systems FPGA on the TS-4600 SoM.
5
6Required properties :
7 - compatible : "technologic,ts-nbus"
8 - #address-cells : must be 1
9 - #size-cells : must be 0
10 - pwms : The PWM bound to the FPGA
11 - ts,data-gpios : The 8 GPIO pins connected to the data lines on the FPGA
12 - ts,csn-gpios : The GPIO pin connected to the csn line on the FPGA
13 - ts,txrx-gpios : The GPIO pin connected to the txrx line on the FPGA
14 - ts,strobe-gpios : The GPIO pin connected to the stobe line on the FPGA
15 - ts,ale-gpios : The GPIO pin connected to the ale line on the FPGA
16 - ts,rdy-gpios : The GPIO pin connected to the rdy line on the FPGA
17
18Child nodes:
19
20The NBUS node can contain zero or more child nodes representing peripherals
21on the bus.
22
23Example:
24
25 nbus {
26 compatible = "technologic,ts-nbus";
27 pinctrl-0 = <&nbus_pins>;
28 #address-cells = <1>;
29 #size-cells = <0>;
30 pwms = <&pwm 2 83>;
31 ts,data-gpios = <&gpio0 0 GPIO_ACTIVE_HIGH
32 &gpio0 1 GPIO_ACTIVE_HIGH
33 &gpio0 2 GPIO_ACTIVE_HIGH
34 &gpio0 3 GPIO_ACTIVE_HIGH
35 &gpio0 4 GPIO_ACTIVE_HIGH
36 &gpio0 5 GPIO_ACTIVE_HIGH
37 &gpio0 6 GPIO_ACTIVE_HIGH
38 &gpio0 7 GPIO_ACTIVE_HIGH>;
39 ts,csn-gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
40 ts,txrx-gpios = <&gpio0 24 GPIO_ACTIVE_HIGH>;
41 ts,strobe-gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>;
42 ts,ale-gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
43 ts,rdy-gpios = <&gpio0 21 GPIO_ACTIVE_HIGH>;
44
45 watchdog@2a {
46 compatible = "...";
47
48 /* ... */
49 };
50 };
diff --git a/Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt b/Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt
index f2c5f0e4a363..f8e4a93466cb 100644
--- a/Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt
+++ b/Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt
@@ -137,6 +137,20 @@ These clock IDs are defined in:
137 ch1_audio audiopll 2 BCM_CYGNUS_AUDIOPLL_CH1 137 ch1_audio audiopll 2 BCM_CYGNUS_AUDIOPLL_CH1
138 ch2_audio audiopll 3 BCM_CYGNUS_AUDIOPLL_CH2 138 ch2_audio audiopll 3 BCM_CYGNUS_AUDIOPLL_CH2
139 139
140Hurricane 2
141------
142PLL and leaf clock compatible strings for Hurricane 2 are:
143 "brcm,hr2-armpll"
144
145The following table defines the set of PLL/clock for Hurricane 2:
146
147 Clock Source Index ID
148 --- ----- ----- ---------
149 crystal N/A N/A N/A
150
151 armpll crystal N/A N/A
152
153
140Northstar and Northstar Plus 154Northstar and Northstar Plus
141------ 155------
142PLL and leaf clock compatible strings for Northstar and Northstar Plus are: 156PLL and leaf clock compatible strings for Northstar and Northstar Plus are:
diff --git a/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt b/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt
index b1a8929c2536..3a72a103a18a 100644
--- a/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt
+++ b/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt
@@ -37,7 +37,7 @@ Optional properties:
37 37
38Example: 38Example:
39 39
40 hdmi0: hdmi0@fead0000 { 40 hdmi0: hdmi@fead0000 {
41 compatible = "renesas,r8a7795-dw-hdmi"; 41 compatible = "renesas,r8a7795-dw-hdmi";
42 reg = <0 0xfead0000 0 0x10000>; 42 reg = <0 0xfead0000 0 0x10000>;
43 interrupts = <0 389 IRQ_TYPE_LEVEL_HIGH>; 43 interrupts = <0 389 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/Documentation/devicetree/bindings/dma/sun6i-dma.txt b/Documentation/devicetree/bindings/dma/sun6i-dma.txt
index d4c34774d626..7fccc20d8331 100644
--- a/Documentation/devicetree/bindings/dma/sun6i-dma.txt
+++ b/Documentation/devicetree/bindings/dma/sun6i-dma.txt
@@ -18,7 +18,7 @@ Required properties:
18- #dma-cells : Should be 1, a single cell holding a line request number 18- #dma-cells : Should be 1, a single cell holding a line request number
19 19
20Example: 20Example:
21 dma: dma-controller@01c02000 { 21 dma: dma-controller@1c02000 {
22 compatible = "allwinner,sun6i-a31-dma"; 22 compatible = "allwinner,sun6i-a31-dma";
23 reg = <0x01c02000 0x1000>; 23 reg = <0x01c02000 0x1000>;
24 interrupts = <0 50 4>; 24 interrupts = <0 50 4>;
diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt b/Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt
index b4ebd56d03f3..c6814d7cc2b2 100644
--- a/Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt
+++ b/Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt
@@ -13,6 +13,10 @@ Required properties:
13 + allwinner,sun50i-h5-mali 13 + allwinner,sun50i-h5-mali
14 + amlogic,meson-gxbb-mali 14 + amlogic,meson-gxbb-mali
15 + amlogic,meson-gxl-mali 15 + amlogic,meson-gxl-mali
16 + rockchip,rk3036-mali
17 + rockchip,rk3066-mali
18 + rockchip,rk3188-mali
19 + rockchip,rk3228-mali
16 + stericsson,db8500-mali 20 + stericsson,db8500-mali
17 21
18 - reg: Physical base address and length of the GPU registers 22 - reg: Physical base address and length of the GPU registers
@@ -40,10 +44,18 @@ Optional properties:
40 Memory region to allocate from, as defined in 44 Memory region to allocate from, as defined in
41 Documentation/devicetree/bindi/reserved-memory/reserved-memory.txt 45 Documentation/devicetree/bindi/reserved-memory/reserved-memory.txt
42 46
47 - mali-supply:
48 Phandle to regulator for the Mali device, as defined in
49 Documentation/devicetree/bindings/regulator/regulator.txt for details.
50
43 - operating-points-v2: 51 - operating-points-v2:
44 Operating Points for the GPU, as defined in 52 Operating Points for the GPU, as defined in
45 Documentation/devicetree/bindings/opp/opp.txt 53 Documentation/devicetree/bindings/opp/opp.txt
46 54
55 - power-domains:
56 A power domain consumer specifier as defined in
57 Documentation/devicetree/bindings/power/power_domain.txt
58
47Vendor-specific bindings 59Vendor-specific bindings
48------------------------ 60------------------------
49 61
@@ -63,6 +75,10 @@ to specify one more vendor-specific compatible, among:
63 Required properties: 75 Required properties:
64 * resets: phandle to the reset line for the GPU 76 * resets: phandle to the reset line for the GPU
65 77
78 - Rockchip variants:
79 Required properties:
80 * resets: phandle to the reset line for the GPU
81
66 - stericsson,db8500-mali 82 - stericsson,db8500-mali
67 Required properties: 83 Required properties:
68 * interrupt-names and interrupts: 84 * interrupt-names and interrupts:
diff --git a/Documentation/devicetree/bindings/misc/ge-achc.txt b/Documentation/devicetree/bindings/misc/ge-achc.txt
new file mode 100644
index 000000000000..77df94d7a32f
--- /dev/null
+++ b/Documentation/devicetree/bindings/misc/ge-achc.txt
@@ -0,0 +1,26 @@
1* GE Healthcare USB Management Controller
2
3A device which handles data aquisition from compatible USB based peripherals.
4SPI is used for device management.
5
6Note: This device does not expose the peripherals as USB devices.
7
8Required properties:
9
10- compatible : Should be "ge,achc"
11
12Required SPI properties:
13
14- reg : Should be address of the device chip select within
15 the controller.
16
17- spi-max-frequency : Maximum SPI clocking speed of device in Hz, should be
18 1MHz for the GE ACHC.
19
20Example:
21
22spidev0: spi@0 {
23 compatible = "ge,achc";
24 reg = <0>;
25 spi-max-frequency = <1000000>;
26};
diff --git a/Documentation/devicetree/bindings/mtd/jedec,spi-nor.txt b/Documentation/devicetree/bindings/mtd/jedec,spi-nor.txt
index 9ce35af8507c..4cab5d85cf6f 100644
--- a/Documentation/devicetree/bindings/mtd/jedec,spi-nor.txt
+++ b/Documentation/devicetree/bindings/mtd/jedec,spi-nor.txt
@@ -13,6 +13,7 @@ Required properties:
13 at25df321a 13 at25df321a
14 at25df641 14 at25df641
15 at26df081a 15 at26df081a
16 en25s64
16 mr25h256 17 mr25h256
17 mr25h10 18 mr25h10
18 mr25h40 19 mr25h40
@@ -31,6 +32,7 @@ Required properties:
31 s25fl008k 32 s25fl008k
32 s25fl064k 33 s25fl064k
33 sst25vf040b 34 sst25vf040b
35 sst25wf040b
34 m25p40 36 m25p40
35 m25p80 37 m25p80
36 m25p16 38 m25p16
diff --git a/Documentation/devicetree/bindings/net/dwmac-sun8i.txt b/Documentation/devicetree/bindings/net/dwmac-sun8i.txt
new file mode 100644
index 000000000000..3d6d5fa0c4d5
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/dwmac-sun8i.txt
@@ -0,0 +1,207 @@
1* Allwinner sun8i GMAC ethernet controller
2
3This device is a platform glue layer for stmmac.
4Please see stmmac.txt for the other unchanged properties.
5
6Required properties:
7- compatible: must be one of the following string:
8 "allwinner,sun8i-a83t-emac"
9 "allwinner,sun8i-h3-emac"
10 "allwinner,sun8i-v3s-emac"
11 "allwinner,sun50i-a64-emac"
12- reg: address and length of the register for the device.
13- interrupts: interrupt for the device
14- interrupt-names: must be "macirq"
15- clocks: A phandle to the reference clock for this device
16- clock-names: must be "stmmaceth"
17- resets: A phandle to the reset control for this device
18- reset-names: must be "stmmaceth"
19- phy-mode: See ethernet.txt
20- phy-handle: See ethernet.txt
21- #address-cells: shall be 1
22- #size-cells: shall be 0
23- syscon: A phandle to the syscon of the SoC with one of the following
24 compatible string:
25 - allwinner,sun8i-h3-system-controller
26 - allwinner,sun8i-v3s-system-controller
27 - allwinner,sun50i-a64-system-controller
28 - allwinner,sun8i-a83t-system-controller
29
30Optional properties:
31- allwinner,tx-delay-ps: TX clock delay chain value in ps. Range value is 0-700. Default is 0)
32- allwinner,rx-delay-ps: RX clock delay chain value in ps. Range value is 0-3100. Default is 0)
33Both delay properties need to be a multiple of 100. They control the delay for
34external PHY.
35
36Optional properties for the following compatibles:
37 - "allwinner,sun8i-h3-emac",
38 - "allwinner,sun8i-v3s-emac":
39- allwinner,leds-active-low: EPHY LEDs are active low
40
41Required child node of emac:
42- mdio bus node: should be named mdio with compatible "snps,dwmac-mdio"
43
44Required properties of the mdio node:
45- #address-cells: shall be 1
46- #size-cells: shall be 0
47
48The device node referenced by "phy" or "phy-handle" must be a child node
49of the mdio node. See phy.txt for the generic PHY bindings.
50
51The following compatibles require that the emac node have a mdio-mux child
52node called "mdio-mux":
53 - "allwinner,sun8i-h3-emac"
54 - "allwinner,sun8i-v3s-emac":
55Required properties for the mdio-mux node:
56 - compatible = "allwinner,sun8i-h3-mdio-mux"
57 - mdio-parent-bus: a phandle to EMAC mdio
58 - one child mdio for the integrated mdio with the compatible
59 "allwinner,sun8i-h3-mdio-internal"
60 - one child mdio for the external mdio if present (V3s have none)
61Required properties for the mdio-mux children node:
62 - reg: 1 for internal MDIO bus, 2 for external MDIO bus
63
64The following compatibles require a PHY node representing the integrated
65PHY, under the integrated MDIO bus node if an mdio-mux node is used:
66 - "allwinner,sun8i-h3-emac",
67 - "allwinner,sun8i-v3s-emac":
68
69Additional information regarding generic multiplexer properties can be found
70at Documentation/devicetree/bindings/net/mdio-mux.txt
71
72Required properties of the integrated phy node:
73- clocks: a phandle to the reference clock for the EPHY
74- resets: a phandle to the reset control for the EPHY
75- Must be a child of the integrated mdio
76
77Example with integrated PHY:
78emac: ethernet@1c0b000 {
79 compatible = "allwinner,sun8i-h3-emac";
80 syscon = <&syscon>;
81 reg = <0x01c0b000 0x104>;
82 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
83 interrupt-names = "macirq";
84 resets = <&ccu RST_BUS_EMAC>;
85 reset-names = "stmmaceth";
86 clocks = <&ccu CLK_BUS_EMAC>;
87 clock-names = "stmmaceth";
88 #address-cells = <1>;
89 #size-cells = <0>;
90
91 phy-handle = <&int_mii_phy>;
92 phy-mode = "mii";
93 allwinner,leds-active-low;
94
95 mdio: mdio {
96 #address-cells = <1>;
97 #size-cells = <0>;
98 compatible = "snps,dwmac-mdio";
99 };
100
101 mdio-mux {
102 compatible = "mdio-mux", "allwinner,sun8i-h3-mdio-mux";
103 #address-cells = <1>;
104 #size-cells = <0>;
105
106 mdio-parent-bus = <&mdio>;
107
108 int_mdio: mdio@1 {
109 compatible = "allwinner,sun8i-h3-mdio-internal";
110 reg = <1>;
111 #address-cells = <1>;
112 #size-cells = <0>;
113 int_mii_phy: ethernet-phy@1 {
114 reg = <1>;
115 clocks = <&ccu CLK_BUS_EPHY>;
116 resets = <&ccu RST_BUS_EPHY>;
117 phy-is-integrated;
118 };
119 };
120 ext_mdio: mdio@2 {
121 reg = <2>;
122 #address-cells = <1>;
123 #size-cells = <0>;
124 };
125 };
126};
127
128Example with external PHY:
129emac: ethernet@1c0b000 {
130 compatible = "allwinner,sun8i-h3-emac";
131 syscon = <&syscon>;
132 reg = <0x01c0b000 0x104>;
133 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
134 interrupt-names = "macirq";
135 resets = <&ccu RST_BUS_EMAC>;
136 reset-names = "stmmaceth";
137 clocks = <&ccu CLK_BUS_EMAC>;
138 clock-names = "stmmaceth";
139 #address-cells = <1>;
140 #size-cells = <0>;
141
142 phy-handle = <&ext_rgmii_phy>;
143 phy-mode = "rgmii";
144 allwinner,leds-active-low;
145
146 mdio: mdio {
147 #address-cells = <1>;
148 #size-cells = <0>;
149 compatible = "snps,dwmac-mdio";
150 };
151
152 mdio-mux {
153 compatible = "allwinner,sun8i-h3-mdio-mux";
154 #address-cells = <1>;
155 #size-cells = <0>;
156
157 mdio-parent-bus = <&mdio>;
158
159 int_mdio: mdio@1 {
160 compatible = "allwinner,sun8i-h3-mdio-internal";
161 reg = <1>;
162 #address-cells = <1>;
163 #size-cells = <0>;
164 int_mii_phy: ethernet-phy@1 {
165 reg = <1>;
166 clocks = <&ccu CLK_BUS_EPHY>;
167 resets = <&ccu RST_BUS_EPHY>;
168 };
169 };
170 ext_mdio: mdio@2 {
171 reg = <2>;
172 #address-cells = <1>;
173 #size-cells = <0>;
174 ext_rgmii_phy: ethernet-phy@1 {
175 reg = <1>;
176 };
177 }:
178 };
179};
180
181Example with SoC without integrated PHY
182
183emac: ethernet@1c0b000 {
184 compatible = "allwinner,sun8i-a83t-emac";
185 syscon = <&syscon>;
186 reg = <0x01c0b000 0x104>;
187 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
188 interrupt-names = "macirq";
189 resets = <&ccu RST_BUS_EMAC>;
190 reset-names = "stmmaceth";
191 clocks = <&ccu CLK_BUS_EMAC>;
192 clock-names = "stmmaceth";
193 #address-cells = <1>;
194 #size-cells = <0>;
195
196 phy-handle = <&ext_rgmii_phy>;
197 phy-mode = "rgmii";
198
199 mdio: mdio {
200 compatible = "snps,dwmac-mdio";
201 #address-cells = <1>;
202 #size-cells = <0>;
203 ext_rgmii_phy: ethernet-phy@1 {
204 reg = <1>;
205 };
206 };
207};
diff --git a/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt
index 33e3d3c47552..58c2a4c229db 100644
--- a/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt
+++ b/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt
@@ -143,6 +143,24 @@ Required properties:
143 * 16 : Alternate Function 15 143 * 16 : Alternate Function 15
144 * 17 : Analog 144 * 17 : Analog
145 145
146 To simplify the usage, macro is available to generate "pinmux" field.
147 This macro is available here:
148 - include/dt-bindings/pinctrl/stm32-pinfunc.h
149
150 Some examples of using macro:
151 /* GPIO A9 set as alernate function 2 */
152 ... {
153 pinmux = <STM32_PINMUX('A', 9, AF2)>;
154 };
155 /* GPIO A9 set as GPIO */
156 ... {
157 pinmux = <STM32_PINMUX('A', 9, GPIO)>;
158 };
159 /* GPIO A9 set as analog */
160 ... {
161 pinmux = <STM32_PINMUX('A', 9, ANALOG)>;
162 };
163
146Optional properties: 164Optional properties:
147- GENERIC_PINCONFIG: is the generic pinconfig options to use. 165- GENERIC_PINCONFIG: is the generic pinconfig options to use.
148 Available options are: 166 Available options are:
@@ -165,13 +183,13 @@ pin-controller {
165... 183...
166 usart1_pins_a: usart1@0 { 184 usart1_pins_a: usart1@0 {
167 pins1 { 185 pins1 {
168 pinmux = <STM32F429_PA9_FUNC_USART1_TX>; 186 pinmux = <STM32_PINMUX('A', 9, AF7)>;
169 bias-disable; 187 bias-disable;
170 drive-push-pull; 188 drive-push-pull;
171 slew-rate = <0>; 189 slew-rate = <0>;
172 }; 190 };
173 pins2 { 191 pins2 {
174 pinmux = <STM32F429_PA10_FUNC_USART1_RX>; 192 pinmux = <STM32_PINMUX('A', 10, AF7)>;
175 bias-disable; 193 bias-disable;
176 }; 194 };
177 }; 195 };
diff --git a/Documentation/devicetree/bindings/power/renesas,apmu.txt b/Documentation/devicetree/bindings/power/renesas,apmu.txt
index af21502e939c..f747f95eee58 100644
--- a/Documentation/devicetree/bindings/power/renesas,apmu.txt
+++ b/Documentation/devicetree/bindings/power/renesas,apmu.txt
@@ -8,6 +8,7 @@ Required properties:
8- compatible: Should be "renesas,<soctype>-apmu", "renesas,apmu" as fallback. 8- compatible: Should be "renesas,<soctype>-apmu", "renesas,apmu" as fallback.
9 Examples with soctypes are: 9 Examples with soctypes are:
10 - "renesas,r8a7743-apmu" (RZ/G1M) 10 - "renesas,r8a7743-apmu" (RZ/G1M)
11 - "renesas,r8a7745-apmu" (RZ/G1E)
11 - "renesas,r8a7790-apmu" (R-Car H2) 12 - "renesas,r8a7790-apmu" (R-Car H2)
12 - "renesas,r8a7791-apmu" (R-Car M2-W) 13 - "renesas,r8a7791-apmu" (R-Car M2-W)
13 - "renesas,r8a7792-apmu" (R-Car V2H) 14 - "renesas,r8a7792-apmu" (R-Car V2H)
diff --git a/Documentation/devicetree/bindings/serial/mvebu-uart.txt b/Documentation/devicetree/bindings/serial/mvebu-uart.txt
index 6087defd9f93..d37fabe17bd1 100644
--- a/Documentation/devicetree/bindings/serial/mvebu-uart.txt
+++ b/Documentation/devicetree/bindings/serial/mvebu-uart.txt
@@ -8,6 +8,6 @@ Required properties:
8Example: 8Example:
9 serial@12000 { 9 serial@12000 {
10 compatible = "marvell,armada-3700-uart"; 10 compatible = "marvell,armada-3700-uart";
11 reg = <0x12000 0x400>; 11 reg = <0x12000 0x200>;
12 interrupts = <43>; 12 interrupts = <43>;
13 }; 13 };
diff --git a/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt b/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt
index 13b1fcc8469e..dcc7eaada511 100644
--- a/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt
+++ b/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt
@@ -5,6 +5,7 @@ Required properties:
5 "fsl,ls2085a-dspi" 5 "fsl,ls2085a-dspi"
6 or 6 or
7 "fsl,ls2080a-dspi" followed by "fsl,ls2085a-dspi" 7 "fsl,ls2080a-dspi" followed by "fsl,ls2085a-dspi"
8 "fsl,ls1012a-dspi" followed by "fsl,ls1021a-v1.0-dspi"
8- reg : Offset and length of the register set for the device 9- reg : Offset and length of the register set for the device
9- interrupts : Should contain SPI controller interrupt 10- interrupts : Should contain SPI controller interrupt
10- clocks: from common clock binding: handle to dspi clock. 11- clocks: from common clock binding: handle to dspi clock.
diff --git a/Documentation/devicetree/bindings/thermal/hisilicon-thermal.txt b/Documentation/devicetree/bindings/thermal/hisilicon-thermal.txt
index d48fc5280d5a..cef716a236f1 100644
--- a/Documentation/devicetree/bindings/thermal/hisilicon-thermal.txt
+++ b/Documentation/devicetree/bindings/thermal/hisilicon-thermal.txt
@@ -13,6 +13,7 @@
13 13
14Example : 14Example :
15 15
16for Hi6220:
16 tsensor: tsensor@0,f7030700 { 17 tsensor: tsensor@0,f7030700 {
17 compatible = "hisilicon,tsensor"; 18 compatible = "hisilicon,tsensor";
18 reg = <0x0 0xf7030700 0x0 0x1000>; 19 reg = <0x0 0xf7030700 0x0 0x1000>;
@@ -21,3 +22,11 @@ Example :
21 clock-names = "thermal_clk"; 22 clock-names = "thermal_clk";
22 #thermal-sensor-cells = <1>; 23 #thermal-sensor-cells = <1>;
23 } 24 }
25
26for Hi3660:
27 tsensor: tsensor@fff30000 {
28 compatible = "hisilicon,hi3660-tsensor";
29 reg = <0x0 0xfff30000 0x0 0x1000>;
30 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
31 #thermal-sensor-cells = <1>;
32 };
diff --git a/Documentation/devicetree/bindings/thermal/nvidia,tegra186-bpmp-thermal.txt b/Documentation/devicetree/bindings/thermal/nvidia,tegra186-bpmp-thermal.txt
new file mode 100644
index 000000000000..276387dd6815
--- /dev/null
+++ b/Documentation/devicetree/bindings/thermal/nvidia,tegra186-bpmp-thermal.txt
@@ -0,0 +1,32 @@
1NVIDIA Tegra186 BPMP thermal sensor
2
3In Tegra186, the BPMP (Boot and Power Management Processor) implements an
4interface that is used to read system temperatures, including CPU cluster
5and GPU temperatures. This binding describes the thermal sensor that is
6exposed by BPMP.
7
8The BPMP thermal node must be located directly inside the main BPMP node. See
9../firmware/nvidia,tegra186-bpmp.txt for details of the BPMP binding.
10
11This node represents a thermal sensor. See thermal.txt for details of the
12core thermal binding.
13
14Required properties:
15- compatible:
16 Array of strings.
17 One of:
18 - "nvidia,tegra186-bpmp-thermal".
19- #thermal-sensor-cells: Cell for sensor index.
20 Single-cell integer.
21 Must be <1>.
22
23Example:
24
25bpmp {
26 ...
27
28 bpmp_thermal: thermal {
29 compatible = "nvidia,tegra186-bpmp-thermal";
30 #thermal-sensor-cells = <1>;
31 };
32};
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 1db9dbef3e56..0994bdd82cd3 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -18,6 +18,7 @@ al Annapurna Labs
18allwinner Allwinner Technology Co., Ltd. 18allwinner Allwinner Technology Co., Ltd.
19alphascale AlphaScale Integrated Circuits Systems, Inc. 19alphascale AlphaScale Integrated Circuits Systems, Inc.
20altr Altera Corp. 20altr Altera Corp.
21amarula Amarula Solutions
21amazon Amazon.com, Inc. 22amazon Amazon.com, Inc.
22amcc Applied Micro Circuits Corporation (APM, formally AMCC) 23amcc Applied Micro Circuits Corporation (APM, formally AMCC)
23amd Advanced Micro Devices (AMD), Inc. 24amd Advanced Micro Devices (AMD), Inc.
@@ -114,6 +115,7 @@ everspin Everspin Technologies, Inc.
114exar Exar Corporation 115exar Exar Corporation
115excito Excito 116excito Excito
116ezchip EZchip Semiconductor 117ezchip EZchip Semiconductor
118fairphone Fairphone B.V.
117faraday Faraday Technology Corporation 119faraday Faraday Technology Corporation
118fcs Fairchild Semiconductor 120fcs Fairchild Semiconductor
119firefly Firefly 121firefly Firefly
@@ -199,6 +201,7 @@ mcube mCube
199meas Measurement Specialties 201meas Measurement Specialties
200mediatek MediaTek Inc. 202mediatek MediaTek Inc.
201megachips MegaChips 203megachips MegaChips
204mele Shenzhen MeLE Digital Technology Ltd.
202melexis Melexis N.V. 205melexis Melexis N.V.
203melfas MELFAS Inc. 206melfas MELFAS Inc.
204mellanox Mellanox Technologies 207mellanox Mellanox Technologies
@@ -270,6 +273,7 @@ plathome Plat'Home Co., Ltd.
270plda PLDA 273plda PLDA
271poslab Poslab Technology Co., Ltd. 274poslab Poslab Technology Co., Ltd.
272powervr PowerVR (deprecated, use img) 275powervr PowerVR (deprecated, use img)
276probox2 PROBOX2 (by W2COMP Co., Ltd.)
273pulsedlight PulsedLight, Inc 277pulsedlight PulsedLight, Inc
274qca Qualcomm Atheros, Inc. 278qca Qualcomm Atheros, Inc.
275qcom Qualcomm Technologies, Inc 279qcom Qualcomm Technologies, Inc
@@ -338,6 +342,7 @@ swir Sierra Wireless
338syna Synaptics Inc. 342syna Synaptics Inc.
339synology Synology, Inc. 343synology Synology, Inc.
340tbs TBS Technologies 344tbs TBS Technologies
345tbs-biometrics Touchless Biometric Systems AG
341tcg Trusted Computing Group 346tcg Trusted Computing Group
342tcl Toby Churchill Ltd. 347tcl Toby Churchill Ltd.
343technexion TechNexion 348technexion TechNexion
@@ -361,6 +366,7 @@ truly Truly Semiconductors Limited
361tsd Theobroma Systems Design und Consulting GmbH 366tsd Theobroma Systems Design und Consulting GmbH
362tyan Tyan Computer Corporation 367tyan Tyan Computer Corporation
363ucrobotics uCRobotics 368ucrobotics uCRobotics
369ubnt Ubiquiti Networks
364udoo Udoo 370udoo Udoo
365uniwest United Western Technologies Corp (UniWest) 371uniwest United Western Technologies Corp (UniWest)
366upisemi uPI Semiconductor Corp. 372upisemi uPI Semiconductor Corp.
diff --git a/MAINTAINERS b/MAINTAINERS
index b549f4dd6160..485f793029c9 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1761,6 +1761,7 @@ Q: http://patchwork.kernel.org/project/linux-renesas-soc/list/
1761T: git git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git next 1761T: git git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git next
1762S: Supported 1762S: Supported
1763F: arch/arm64/boot/dts/renesas/ 1763F: arch/arm64/boot/dts/renesas/
1764F: Documentation/devicetree/bindings/arm/shmobile.txt
1764F: drivers/soc/renesas/ 1765F: drivers/soc/renesas/
1765F: include/linux/soc/renesas/ 1766F: include/linux/soc/renesas/
1766 1767
@@ -1880,6 +1881,7 @@ F: arch/arm/boot/dts/sh*
1880F: arch/arm/configs/shmobile_defconfig 1881F: arch/arm/configs/shmobile_defconfig
1881F: arch/arm/include/debug/renesas-scif.S 1882F: arch/arm/include/debug/renesas-scif.S
1882F: arch/arm/mach-shmobile/ 1883F: arch/arm/mach-shmobile/
1884F: Documentation/devicetree/bindings/arm/shmobile.txt
1883F: drivers/soc/renesas/ 1885F: drivers/soc/renesas/
1884F: include/linux/soc/renesas/ 1886F: include/linux/soc/renesas/
1885 1887
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 25dcf4e534e6..d0381e9caf21 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -101,6 +101,8 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
101 bcm4709-tplink-archer-c9-v1.dtb \ 101 bcm4709-tplink-archer-c9-v1.dtb \
102 bcm47094-dlink-dir-885l.dtb \ 102 bcm47094-dlink-dir-885l.dtb \
103 bcm47094-linksys-panamera.dtb \ 103 bcm47094-linksys-panamera.dtb \
104 bcm47094-luxul-abr-4500.dtb \
105 bcm47094-luxul-xbr-4500.dtb \
104 bcm47094-luxul-xwr-3100.dtb \ 106 bcm47094-luxul-xwr-3100.dtb \
105 bcm47094-netgear-r8500.dtb \ 107 bcm47094-netgear-r8500.dtb \
106 bcm94708.dtb \ 108 bcm94708.dtb \
@@ -109,6 +111,8 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
109 bcm953012hr.dtb \ 111 bcm953012hr.dtb \
110 bcm953012k.dtb 112 bcm953012k.dtb
111dtb-$(CONFIG_ARCH_BCM_53573) += \ 113dtb-$(CONFIG_ARCH_BCM_53573) += \
114 bcm47189-luxul-xap-1440.dtb \
115 bcm47189-luxul-xap-810.dtb \
112 bcm47189-tenda-ac9.dtb \ 116 bcm47189-tenda-ac9.dtb \
113 bcm947189acdbmr.dtb 117 bcm947189acdbmr.dtb
114dtb-$(CONFIG_ARCH_BCM_63XX) += \ 118dtb-$(CONFIG_ARCH_BCM_63XX) += \
@@ -118,6 +122,8 @@ dtb-$(CONFIG_ARCH_BCM_CYGNUS) += \
118 bcm911360k.dtb \ 122 bcm911360k.dtb \
119 bcm958300k.dtb \ 123 bcm958300k.dtb \
120 bcm958305k.dtb 124 bcm958305k.dtb
125dtb-$(CONFIG_ARCH_BCM_HR2) += \
126 bcm53340-ubnt-unifi-switch8.dtb
121dtb-$(CONFIG_ARCH_BCM_MOBILE) += \ 127dtb-$(CONFIG_ARCH_BCM_MOBILE) += \
122 bcm28155-ap.dtb \ 128 bcm28155-ap.dtb \
123 bcm21664-garnet.dtb \ 129 bcm21664-garnet.dtb \
@@ -177,6 +183,7 @@ dtb-$(CONFIG_ARCH_EXYNOS5) += \
177 exynos5420-arndale-octa.dtb \ 183 exynos5420-arndale-octa.dtb \
178 exynos5420-peach-pit.dtb \ 184 exynos5420-peach-pit.dtb \
179 exynos5420-smdk5420.dtb \ 185 exynos5420-smdk5420.dtb \
186 exynos5422-odroidhc1.dtb \
180 exynos5422-odroidxu3.dtb \ 187 exynos5422-odroidxu3.dtb \
181 exynos5422-odroidxu3-lite.dtb \ 188 exynos5422-odroidxu3-lite.dtb \
182 exynos5422-odroidxu4.dtb \ 189 exynos5422-odroidxu4.dtb \
@@ -342,12 +349,14 @@ dtb-$(CONFIG_SOC_IMX51) += \
342 imx51-babbage.dtb \ 349 imx51-babbage.dtb \
343 imx51-digi-connectcore-jsk.dtb \ 350 imx51-digi-connectcore-jsk.dtb \
344 imx51-eukrea-mbimxsd51-baseboard.dtb \ 351 imx51-eukrea-mbimxsd51-baseboard.dtb \
345 imx51-ts4800.dtb 352 imx51-ts4800.dtb \
353 imx51-zii-rdu1.dtb
346dtb-$(CONFIG_SOC_IMX53) += \ 354dtb-$(CONFIG_SOC_IMX53) += \
347 imx53-ard.dtb \ 355 imx53-ard.dtb \
348 imx53-cx9020.dtb \ 356 imx53-cx9020.dtb \
349 imx53-m53evk.dtb \ 357 imx53-m53evk.dtb \
350 imx53-mba53.dtb \ 358 imx53-mba53.dtb \
359 imx53-ppd.dtb \
351 imx53-qsb.dtb \ 360 imx53-qsb.dtb \
352 imx53-qsrb.dtb \ 361 imx53-qsrb.dtb \
353 imx53-smd.dtb \ 362 imx53-smd.dtb \
@@ -389,14 +398,19 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
389 imx6dl-ts4900.dtb \ 398 imx6dl-ts4900.dtb \
390 imx6dl-tx6dl-comtft.dtb \ 399 imx6dl-tx6dl-comtft.dtb \
391 imx6dl-tx6s-8034.dtb \ 400 imx6dl-tx6s-8034.dtb \
401 imx6dl-tx6s-8034-mb7.dtb \
392 imx6dl-tx6s-8035.dtb \ 402 imx6dl-tx6s-8035.dtb \
403 imx6dl-tx6s-8035-mb7.dtb \
393 imx6dl-tx6u-801x.dtb \ 404 imx6dl-tx6u-801x.dtb \
405 imx6dl-tx6u-80xx-mb7.dtb \
394 imx6dl-tx6u-8033.dtb \ 406 imx6dl-tx6u-8033.dtb \
407 imx6dl-tx6u-8033-mb7.dtb \
395 imx6dl-tx6u-811x.dtb \ 408 imx6dl-tx6u-811x.dtb \
396 imx6dl-tx6u-81xx-mb7.dtb \ 409 imx6dl-tx6u-81xx-mb7.dtb \
397 imx6dl-udoo.dtb \ 410 imx6dl-udoo.dtb \
398 imx6dl-wandboard.dtb \ 411 imx6dl-wandboard.dtb \
399 imx6dl-wandboard-revb1.dtb \ 412 imx6dl-wandboard-revb1.dtb \
413 imx6dl-wandboard-revd1.dtb \
400 imx6q-apalis-eval.dtb \ 414 imx6q-apalis-eval.dtb \
401 imx6q-apalis-ixora.dtb \ 415 imx6q-apalis-ixora.dtb \
402 imx6q-apalis-ixora-v1.1.dtb \ 416 imx6q-apalis-ixora-v1.1.dtb \
@@ -408,6 +422,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
408 imx6q-cm-fx6.dtb \ 422 imx6q-cm-fx6.dtb \
409 imx6q-cubox-i.dtb \ 423 imx6q-cubox-i.dtb \
410 imx6q-dfi-fs700-m60.dtb \ 424 imx6q-dfi-fs700-m60.dtb \
425 imx6q-display5-tianma-tm070-1280x768.dtb \
411 imx6q-dmo-edmqmx6.dtb \ 426 imx6q-dmo-edmqmx6.dtb \
412 imx6q-evi.dtb \ 427 imx6q-evi.dtb \
413 imx6q-gk802.dtb \ 428 imx6q-gk802.dtb \
@@ -435,6 +450,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
435 imx6q-nitrogen6_som2.dtb \ 450 imx6q-nitrogen6_som2.dtb \
436 imx6q-novena.dtb \ 451 imx6q-novena.dtb \
437 imx6q-phytec-pbab01.dtb \ 452 imx6q-phytec-pbab01.dtb \
453 imx6q-pistachio.dtb \
438 imx6q-rex-pro.dtb \ 454 imx6q-rex-pro.dtb \
439 imx6q-sabreauto.dtb \ 455 imx6q-sabreauto.dtb \
440 imx6q-sabrelite.dtb \ 456 imx6q-sabrelite.dtb \
@@ -448,17 +464,25 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
448 imx6q-tx6q-1020.dtb \ 464 imx6q-tx6q-1020.dtb \
449 imx6q-tx6q-1020-comtft.dtb \ 465 imx6q-tx6q-1020-comtft.dtb \
450 imx6q-tx6q-1036.dtb \ 466 imx6q-tx6q-1036.dtb \
467 imx6q-tx6q-1036-mb7.dtb \
468 imx6q-tx6q-10x0-mb7.dtb \
451 imx6q-tx6q-1110.dtb \ 469 imx6q-tx6q-1110.dtb \
452 imx6q-tx6q-11x0-mb7.dtb \ 470 imx6q-tx6q-11x0-mb7.dtb \
453 imx6q-udoo.dtb \ 471 imx6q-udoo.dtb \
454 imx6q-utilite-pro.dtb \ 472 imx6q-utilite-pro.dtb \
455 imx6q-wandboard.dtb \ 473 imx6q-wandboard.dtb \
456 imx6q-wandboard-revb1.dtb \ 474 imx6q-wandboard-revb1.dtb \
475 imx6q-wandboard-revd1.dtb \
457 imx6q-zii-rdu2.dtb \ 476 imx6q-zii-rdu2.dtb \
458 imx6qp-nitrogen6_max.dtb \ 477 imx6qp-nitrogen6_max.dtb \
459 imx6qp-nitrogen6_som2.dtb \ 478 imx6qp-nitrogen6_som2.dtb \
460 imx6qp-sabreauto.dtb \ 479 imx6qp-sabreauto.dtb \
461 imx6qp-sabresd.dtb \ 480 imx6qp-sabresd.dtb \
481 imx6qp-tx6qp-8037.dtb \
482 imx6qp-tx6qp-8037-mb7.dtb \
483 imx6qp-tx6qp-8137.dtb \
484 imx6qp-tx6qp-8137-mb7.dtb \
485 imx6qp-wandboard-revd1.dtb \
462 imx6qp-zii-rdu2.dtb 486 imx6qp-zii-rdu2.dtb
463dtb-$(CONFIG_SOC_IMX6SL) += \ 487dtb-$(CONFIG_SOC_IMX6SL) += \
464 imx6sl-evk.dtb \ 488 imx6sl-evk.dtb \
@@ -469,6 +493,7 @@ dtb-$(CONFIG_SOC_IMX6SX) += \
469 imx6sx-sdb-reva.dtb \ 493 imx6sx-sdb-reva.dtb \
470 imx6sx-sdb-sai.dtb \ 494 imx6sx-sdb-sai.dtb \
471 imx6sx-sdb.dtb \ 495 imx6sx-sdb.dtb \
496 imx6sx-softing-vining-2000.dtb \
472 imx6sx-udoo-neo-basic.dtb \ 497 imx6sx-udoo-neo-basic.dtb \
473 imx6sx-udoo-neo-extended.dtb \ 498 imx6sx-udoo-neo-extended.dtb \
474 imx6sx-udoo-neo-full.dtb 499 imx6sx-udoo-neo-full.dtb
@@ -681,6 +706,7 @@ dtb-$(CONFIG_ARCH_ORION5X) += \
681 orion5x-netgear-wnr854t.dtb \ 706 orion5x-netgear-wnr854t.dtb \
682 orion5x-rd88f5182-nas.dtb 707 orion5x-rd88f5182-nas.dtb
683dtb-$(CONFIG_ARCH_ACTIONS) += \ 708dtb-$(CONFIG_ARCH_ACTIONS) += \
709 owl-s500-cubieboard6.dtb \
684 owl-s500-guitar-bb-rev-b.dtb 710 owl-s500-guitar-bb-rev-b.dtb
685dtb-$(CONFIG_ARCH_PRIMA2) += \ 711dtb-$(CONFIG_ARCH_PRIMA2) += \
686 prima2-evb.dtb 712 prima2-evb.dtb
@@ -701,7 +727,9 @@ dtb-$(CONFIG_ARCH_QCOM) += \
701 qcom-ipq8064-ap148.dtb \ 727 qcom-ipq8064-ap148.dtb \
702 qcom-msm8660-surf.dtb \ 728 qcom-msm8660-surf.dtb \
703 qcom-msm8960-cdp.dtb \ 729 qcom-msm8960-cdp.dtb \
730 qcom-msm8974-fairphone-fp2.dtb \
704 qcom-msm8974-lge-nexus5-hammerhead.dtb \ 731 qcom-msm8974-lge-nexus5-hammerhead.dtb \
732 qcom-msm8974-sony-xperia-castor.dtb \
705 qcom-msm8974-sony-xperia-honami.dtb \ 733 qcom-msm8974-sony-xperia-honami.dtb \
706 qcom-mdm9615-wp8548-mangoh-green.dtb 734 qcom-mdm9615-wp8548-mangoh-green.dtb
707dtb-$(CONFIG_ARCH_REALVIEW) += \ 735dtb-$(CONFIG_ARCH_REALVIEW) += \
@@ -725,7 +753,9 @@ dtb-$(CONFIG_ARCH_RENESAS) += \
725 r8a73a4-ape6evm.dtb \ 753 r8a73a4-ape6evm.dtb \
726 r8a7740-armadillo800eva.dtb \ 754 r8a7740-armadillo800eva.dtb \
727 r8a7743-iwg20d-q7.dtb \ 755 r8a7743-iwg20d-q7.dtb \
756 r8a7743-iwg20d-q7-dbcm-ca.dtb \
728 r8a7743-sk-rzg1m.dtb \ 757 r8a7743-sk-rzg1m.dtb \
758 r8a7745-iwg22d-sodimm.dtb \
729 r8a7745-sk-rzg1e.dtb \ 759 r8a7745-sk-rzg1e.dtb \
730 r8a7778-bockw.dtb \ 760 r8a7778-bockw.dtb \
731 r8a7779-marzen.dtb \ 761 r8a7779-marzen.dtb \
@@ -768,7 +798,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \
768 rk3288-veyron-mickey.dtb \ 798 rk3288-veyron-mickey.dtb \
769 rk3288-veyron-minnie.dtb \ 799 rk3288-veyron-minnie.dtb \
770 rk3288-veyron-pinky.dtb \ 800 rk3288-veyron-pinky.dtb \
771 rk3288-veyron-speedy.dtb 801 rk3288-veyron-speedy.dtb \
802 rk3288-vyasa.dtb
772dtb-$(CONFIG_ARCH_S3C24XX) += \ 803dtb-$(CONFIG_ARCH_S3C24XX) += \
773 s3c2416-smdk2416.dtb 804 s3c2416-smdk2416.dtb
774dtb-$(CONFIG_ARCH_S3C64XX) += \ 805dtb-$(CONFIG_ARCH_S3C64XX) += \
@@ -891,6 +922,7 @@ dtb-$(CONFIG_MACH_SUN7I) += \
891 sun7i-a20-olinuxino-lime2.dtb \ 922 sun7i-a20-olinuxino-lime2.dtb \
892 sun7i-a20-olinuxino-lime2-emmc.dtb \ 923 sun7i-a20-olinuxino-lime2-emmc.dtb \
893 sun7i-a20-olinuxino-micro.dtb \ 924 sun7i-a20-olinuxino-micro.dtb \
925 sun7i-a20-olinuxino-micro-emmc.dtb \
894 sun7i-a20-orangepi.dtb \ 926 sun7i-a20-orangepi.dtb \
895 sun7i-a20-orangepi-mini.dtb \ 927 sun7i-a20-orangepi-mini.dtb \
896 sun7i-a20-pcduino3.dtb \ 928 sun7i-a20-pcduino3.dtb \
@@ -916,6 +948,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
916 sun8i-a83t-allwinner-h8homlet-v2.dtb \ 948 sun8i-a83t-allwinner-h8homlet-v2.dtb \
917 sun8i-a83t-bananapi-m3.dtb \ 949 sun8i-a83t-bananapi-m3.dtb \
918 sun8i-a83t-cubietruck-plus.dtb \ 950 sun8i-a83t-cubietruck-plus.dtb \
951 sun8i-a83t-tbs-a711.dtb \
919 sun8i-h2-plus-orangepi-zero.dtb \ 952 sun8i-h2-plus-orangepi-zero.dtb \
920 sun8i-h3-bananapi-m2-plus.dtb \ 953 sun8i-h3-bananapi-m2-plus.dtb \
921 sun8i-h3-beelink-x2.dtb \ 954 sun8i-h3-beelink-x2.dtb \
@@ -932,8 +965,10 @@ dtb-$(CONFIG_MACH_SUN8I) += \
932 sun8i-h3-orangepi-plus2e.dtb \ 965 sun8i-h3-orangepi-plus2e.dtb \
933 sun8i-r16-bananapi-m2m.dtb \ 966 sun8i-r16-bananapi-m2m.dtb \
934 sun8i-r16-parrot.dtb \ 967 sun8i-r16-parrot.dtb \
968 sun8i-r40-bananapi-m2-ultra.dtb \
935 sun8i-v3s-licheepi-zero.dtb \ 969 sun8i-v3s-licheepi-zero.dtb \
936 sun8i-v3s-licheepi-zero-dock.dtb 970 sun8i-v3s-licheepi-zero-dock.dtb \
971 sun8i-v40-bananapi-m2-berry.dtb
937dtb-$(CONFIG_MACH_SUN9I) += \ 972dtb-$(CONFIG_MACH_SUN9I) += \
938 sun9i-a80-optimus.dtb \ 973 sun9i-a80-optimus.dtb \
939 sun9i-a80-cubieboard4.dtb 974 sun9i-a80-cubieboard4.dtb
diff --git a/arch/arm/boot/dts/am43x-epos-evm.dts b/arch/arm/boot/dts/am43x-epos-evm.dts
index 081fa68b6f98..a04d79ec212a 100644
--- a/arch/arm/boot/dts/am43x-epos-evm.dts
+++ b/arch/arm/boot/dts/am43x-epos-evm.dts
@@ -75,6 +75,9 @@
75 compatible = "gpio-matrix-keypad"; 75 compatible = "gpio-matrix-keypad";
76 debounce-delay-ms = <5>; 76 debounce-delay-ms = <5>;
77 col-scan-delay-us = <2>; 77 col-scan-delay-us = <2>;
78 pinctrl-names = "default", "sleep";
79 pinctrl-0 = <&matrix_keypad_default>;
80 pinctrl-1 = <&matrix_keypad_sleep>;
78 81
79 row-gpios = <&gpio0 12 GPIO_ACTIVE_HIGH /* Bank0, pin12 */ 82 row-gpios = <&gpio0 12 GPIO_ACTIVE_HIGH /* Bank0, pin12 */
80 &gpio0 13 GPIO_ACTIVE_HIGH /* Bank0, pin13 */ 83 &gpio0 13 GPIO_ACTIVE_HIGH /* Bank0, pin13 */
@@ -145,6 +148,43 @@
145}; 148};
146 149
147&am43xx_pinmux { 150&am43xx_pinmux {
151 pinctrl-names = "default";
152 pinctrl-0 = <&unused_pins>;
153
154 unused_pins: unused_pins {
155 pinctrl-single,pins = <
156 AM4372_IOPAD(0x848, DS0_PIN_OUTPUT_PULLUP | PIN_OUTPUT_PULLUP | MUX_MODE7)
157 AM4372_IOPAD(0x850, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
158 AM4372_IOPAD(0x858, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
159 AM4372_IOPAD(0x860, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
160 AM4372_IOPAD(0x864, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
161 AM4372_IOPAD(0x868, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
162 AM4372_IOPAD(0x86c, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
163 AM4372_IOPAD(0x878, DS0_PIN_OUTPUT_PULLUP | PIN_OUTPUT_PULLUP | MUX_MODE7)
164 AM4372_IOPAD(0x908, DS0_PIN_INPUT_PULLDOWN | PIN_INPUT_PULLDOWN | MUX_MODE7)
165 AM4372_IOPAD(0x91c, DS0_PIN_OUTPUT_PULLDOWN | PIN_OUTPUT_PULLDOWN | MUX_MODE7)
166 AM4372_IOPAD(0x920, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
167 AM4372_IOPAD(0x9e0, DS0_PIN_INPUT_PULLDOWN | PIN_INPUT_PULLDOWN | MUX_MODE7)
168 AM4372_IOPAD(0xA0c, DS0_PIN_OUTPUT_PULLDOWN | PIN_OUTPUT_PULLDOWN | MUX_MODE7)
169 AM4372_IOPAD(0xA38, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
170 AM4372_IOPAD(0xA3c, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
171 AM4372_IOPAD(0xA40, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
172 AM4372_IOPAD(0xA44, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
173 AM4372_IOPAD(0xA48, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
174 AM4372_IOPAD(0xA4c, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
175 AM4372_IOPAD(0xA50, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
176 AM4372_IOPAD(0xA54, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
177 AM4372_IOPAD(0xA58, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
178 AM4372_IOPAD(0xA5c, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
179 AM4372_IOPAD(0xA60, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
180 AM4372_IOPAD(0xA64, DS0_PIN_OUTPUT_PULLUP | PIN_OUTPUT_PULLUP | MUX_MODE7)
181 AM4372_IOPAD(0xA68, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
182 AM4372_IOPAD(0xA6C, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
183 AM4372_IOPAD(0xA74, DS0_PIN_INPUT_PULLDOWN | PIN_INPUT_PULLDOWN | MUX_MODE7)
184 AM4372_IOPAD(0xA78, DS0_PIN_INPUT | PIN_INPUT_PULLDOWN | MUX_MODE7)
185 >;
186 };
187
148 cpsw_default: cpsw_default { 188 cpsw_default: cpsw_default {
149 pinctrl-single,pins = < 189 pinctrl-single,pins = <
150 /* Slave 1 */ 190 /* Slave 1 */
@@ -198,7 +238,7 @@
198 >; 238 >;
199 }; 239 };
200 240
201 nand_flash_x8: nand_flash_x8 { 241 nand_flash_x8_default: nand_flash_x8_default {
202 pinctrl-single,pins = < 242 pinctrl-single,pins = <
203 AM4372_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a0.SELQSPIorNAND/GPIO */ 243 AM4372_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a0.SELQSPIorNAND/GPIO */
204 AM4372_IOPAD(0x800, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */ 244 AM4372_IOPAD(0x800, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */
@@ -219,12 +259,39 @@
219 >; 259 >;
220 }; 260 };
221 261
222 ecap0_pins: backlight_pins { 262 nand_flash_x8_sleep: nand_flash_x8_sleep {
263 pinctrl-single,pins = <
264 AM4372_IOPAD(0x840, DS0_PIN_OUTPUT_PULLDOWN | MUX_MODE7)
265 AM4372_IOPAD(0x800, DS0_PIN_OUTPUT_PULLDOWN | MUX_MODE7)
266 AM4372_IOPAD(0x804, DS0_PIN_OUTPUT_PULLDOWN | MUX_MODE7)
267 AM4372_IOPAD(0x808, DS0_PIN_OUTPUT_PULLDOWN | MUX_MODE7)
268 AM4372_IOPAD(0x80c, DS0_PIN_OUTPUT_PULLDOWN | MUX_MODE7)
269 AM4372_IOPAD(0x810, DS0_PIN_OUTPUT_PULLDOWN | MUX_MODE7)
270 AM4372_IOPAD(0x814, DS0_PIN_OUTPUT_PULLDOWN | MUX_MODE7)
271 AM4372_IOPAD(0x818, DS0_PIN_OUTPUT_PULLDOWN | MUX_MODE7)
272 AM4372_IOPAD(0x81c, DS0_PIN_OUTPUT_PULLDOWN | MUX_MODE7)
273 AM4372_IOPAD(0x870, DS0_PIN_OUTPUT_PULLUP | MUX_MODE7)
274 AM4372_IOPAD(0x874, DS0_PIN_OUTPUT_PULLUP | MUX_MODE7)
275 AM4372_IOPAD(0x87c, DS0_PIN_OUTPUT_PULLUP | MUX_MODE7)
276 AM4372_IOPAD(0x890, DS0_PIN_OUTPUT_PULLUP | MUX_MODE7)
277 AM4372_IOPAD(0x894, DS0_PIN_OUTPUT_PULLUP | MUX_MODE7)
278 AM4372_IOPAD(0x898, DS0_PIN_OUTPUT_PULLUP | MUX_MODE7)
279 AM4372_IOPAD(0x89c, DS0_PIN_OUTPUT_PULLUP | MUX_MODE7)
280 >;
281 };
282
283 ecap0_pins_default: backlight_pins_default {
223 pinctrl-single,pins = < 284 pinctrl-single,pins = <
224 AM4372_IOPAD(0x964, MUX_MODE0) /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */ 285 AM4372_IOPAD(0x964, MUX_MODE0) /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */
225 >; 286 >;
226 }; 287 };
227 288
289 ecap0_pins_sleep: backlight_pins_sleep {
290 pinctrl-single,pins = <
291 AM4372_IOPAD(0x964, DS0_PIN_OUTPUT_PULLUP | MUX_MODE7)
292 >;
293 };
294
228 i2c2_pins: pinmux_i2c2_pins { 295 i2c2_pins: pinmux_i2c2_pins {
229 pinctrl-single,pins = < 296 pinctrl-single,pins = <
230 AM4372_IOPAD(0x9c0, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE8) /* i2c2_sda.i2c2_sda */ 297 AM4372_IOPAD(0x9c0, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE8) /* i2c2_sda.i2c2_sda */
@@ -232,7 +299,7 @@
232 >; 299 >;
233 }; 300 };
234 301
235 spi0_pins: pinmux_spi0_pins { 302 spi0_pins_default: pinmux_spi0_pins_default {
236 pinctrl-single,pins = < 303 pinctrl-single,pins = <
237 AM4372_IOPAD(0x950, PIN_INPUT | MUX_MODE0) /* spi0_clk.spi0_clk */ 304 AM4372_IOPAD(0x950, PIN_INPUT | MUX_MODE0) /* spi0_clk.spi0_clk */
238 AM4372_IOPAD(0x954, PIN_OUTPUT | MUX_MODE0) /* spi0_d0.spi0_d0 */ 305 AM4372_IOPAD(0x954, PIN_OUTPUT | MUX_MODE0) /* spi0_d0.spi0_d0 */
@@ -241,7 +308,16 @@
241 >; 308 >;
242 }; 309 };
243 310
244 spi1_pins: pinmux_spi1_pins { 311 spi0_pins_sleep: pinmux_spi0_pins_sleep {
312 pinctrl-single,pins = <
313 AM4372_IOPAD(0x950, DS0_PIN_OUTPUT_PULLUP | PIN_OUTPUT_PULLUP | MUX_MODE7)
314 AM4372_IOPAD(0x954, DS0_PIN_OUTPUT_PULLUP | PIN_OUTPUT_PULLUP | MUX_MODE7)
315 AM4372_IOPAD(0x958, DS0_PIN_OUTPUT_PULLUP | PIN_OUTPUT_PULLUP | MUX_MODE7)
316 AM4372_IOPAD(0x95c, DS0_PIN_OUTPUT_PULLUP | PIN_OUTPUT_PULLUP | MUX_MODE7)
317 >;
318 };
319
320 spi1_pins_default: pinmux_spi1_pins_default {
245 pinctrl-single,pins = < 321 pinctrl-single,pins = <
246 AM4372_IOPAD(0x990, PIN_INPUT | MUX_MODE3) /* mcasp0_aclkx.spi1_clk */ 322 AM4372_IOPAD(0x990, PIN_INPUT | MUX_MODE3) /* mcasp0_aclkx.spi1_clk */
247 AM4372_IOPAD(0x994, PIN_OUTPUT | MUX_MODE3) /* mcasp0_fsx.spi1_d0 */ 323 AM4372_IOPAD(0x994, PIN_OUTPUT | MUX_MODE3) /* mcasp0_fsx.spi1_d0 */
@@ -250,13 +326,54 @@
250 >; 326 >;
251 }; 327 };
252 328
253 mmc1_pins: pinmux_mmc1_pins { 329 spi1_pins_sleep: pinmux_spi1_pins_sleep {
330 pinctrl-single,pins = <
331 AM4372_IOPAD(0x990, DS0_PIN_OUTPUT_PULLDOWN | PIN_OUTPUT_PULLDOWN | MUX_MODE7)
332 AM4372_IOPAD(0x994, DS0_PIN_OUTPUT_PULLDOWN | PIN_OUTPUT_PULLDOWN | MUX_MODE7)
333 AM4372_IOPAD(0x998, DS0_PIN_OUTPUT_PULLDOWN | PIN_OUTPUT_PULLDOWN | MUX_MODE7)
334 AM4372_IOPAD(0x99c, DS0_PIN_OUTPUT_PULLDOWN | PIN_OUTPUT_PULLDOWN | MUX_MODE7)
335 >;
336 };
337
338 mmc1_pins_default: pinmux_mmc1_pins_default {
254 pinctrl-single,pins = < 339 pinctrl-single,pins = <
255 AM4372_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */ 340 AM4372_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */
256 >; 341 >;
257 }; 342 };
258 343
259 qspi1_default: qspi1_default { 344 mmc1_pins_sleep: pinmux_mmc1_pins_sleep {
345 pinctrl-single,pins = <
346 AM4372_IOPAD(0x960, DS0_PIN_OUTPUT_PULLUP | PIN_INPUT | MUX_MODE7)
347 >;
348 };
349
350 matrix_keypad_default: matrix_keypad_default {
351 pinctrl-single,pins = <
352 AM4372_IOPAD(0x92c, PIN_OUTPUT | MUX_MODE7) /* mii1_tx_clk.gpio3_9 */
353 AM4372_IOPAD(0x930, PIN_OUTPUT | MUX_MODE7) /* mii1_rx_clk.gpio3_10 */
354 AM4372_IOPAD(0x934, PIN_OUTPUT | MUX_MODE7) /* mii1_rxd3.gpio2_18 */
355 AM4372_IOPAD(0x938, PIN_OUTPUT | MUX_MODE7) /* mii1_rxd2.gpio2_19 */
356 AM4372_IOPAD(0x978, PIN_INPUT_PULLDOWN | MUX_MODE7) /* uart1_ctsn.gpio0_12 */
357 AM4372_IOPAD(0x97C, PIN_INPUT_PULLDOWN | MUX_MODE7) /* uart1_rtsn.gpio0_13 */
358 AM4372_IOPAD(0x980, PIN_INPUT_PULLDOWN | MUX_MODE7) /* uart1_rxd.gpio0_14 */
359 AM4372_IOPAD(0x984, PIN_INPUT_PULLDOWN | MUX_MODE7) /* uart1_txd.gpio0_15 */
360 >;
361 };
362
363 matrix_keypad_sleep: matrix_keypad_sleep {
364 pinctrl-single,pins = <
365 AM4372_IOPAD(0x92c, PIN_INPUT_PULLUP | MUX_MODE7)
366 AM4372_IOPAD(0x930, PIN_INPUT_PULLUP | MUX_MODE7)
367 AM4372_IOPAD(0x934, PIN_INPUT_PULLUP | MUX_MODE7)
368 AM4372_IOPAD(0x938, PIN_INPUT_PULLUP | MUX_MODE7)
369 AM4372_IOPAD(0x978, PIN_INPUT_PULLDOWN | MUX_MODE7)
370 AM4372_IOPAD(0x97C, PIN_INPUT_PULLDOWN | MUX_MODE7)
371 AM4372_IOPAD(0x980, PIN_INPUT_PULLDOWN | MUX_MODE7)
372 AM4372_IOPAD(0x984, PIN_INPUT_PULLDOWN | MUX_MODE7)
373 >;
374 };
375
376 qspi1_pins_default: qspi1_pins_default {
260 pinctrl-single,pins = < 377 pinctrl-single,pins = <
261 AM4372_IOPAD(0x87c, PIN_INPUT_PULLUP | MUX_MODE3) 378 AM4372_IOPAD(0x87c, PIN_INPUT_PULLUP | MUX_MODE3)
262 AM4372_IOPAD(0x888, PIN_INPUT_PULLUP | MUX_MODE2) 379 AM4372_IOPAD(0x888, PIN_INPUT_PULLUP | MUX_MODE2)
@@ -267,12 +384,29 @@
267 >; 384 >;
268 }; 385 };
269 386
270 pixcir_ts_pins: pixcir_ts_pins { 387 qspi1_pins_sleep: qspi1_pins_sleep {
388 pinctrl-single,pins = <
389 AM4372_IOPAD(0x87c, DS0_PIN_OUTPUT_PULLUP | MUX_MODE7)
390 AM4372_IOPAD(0x888, DS0_PIN_OUTPUT_PULLUP | MUX_MODE7)
391 AM4372_IOPAD(0x890, DS0_PIN_OUTPUT_PULLUP | MUX_MODE7)
392 AM4372_IOPAD(0x894, DS0_PIN_OUTPUT_PULLUP | MUX_MODE7)
393 AM4372_IOPAD(0x898, DS0_PIN_OUTPUT_PULLUP | MUX_MODE7)
394 AM4372_IOPAD(0x89c, DS0_PIN_OUTPUT_PULLUP | MUX_MODE7)
395 >;
396 };
397
398 pixcir_ts_pins_default: pixcir_ts_pins_default {
271 pinctrl-single,pins = < 399 pinctrl-single,pins = <
272 AM4372_IOPAD(0x844, PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a1.gpio1_17 */ 400 AM4372_IOPAD(0x844, PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a1.gpio1_17 */
273 >; 401 >;
274 }; 402 };
275 403
404 pixcir_ts_pins_sleep: pixcir_ts_pins_sleep {
405 pinctrl-single,pins = <
406 AM4372_IOPAD(0x844, DS0_PIN_OUTPUT_PULLUP | PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a1.gpio1_17 */
407 >;
408 };
409
276 hdq_pins: pinmux_hdq_pins { 410 hdq_pins: pinmux_hdq_pins {
277 pinctrl-single,pins = < 411 pinctrl-single,pins = <
278 AM4372_IOPAD(0xa34, PIN_INPUT_PULLUP | MUX_MODE1) /* cam1_wen.hdq_gpio */ 412 AM4372_IOPAD(0xa34, PIN_INPUT_PULLUP | MUX_MODE1) /* cam1_wen.hdq_gpio */
@@ -355,6 +489,48 @@
355 >; 489 >;
356 }; 490 };
357 491
492 uart0_pins_default: uart0_pins_default {
493 pinctrl-single,pins = <
494 AM4372_IOPAD(0x968, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE0) /* uart0_ctsn.uart0_ctsn */
495 AM4372_IOPAD(0x96C, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE0) /* uart0_rtsn.uart0_rtsn */
496 AM4372_IOPAD(0x970, PIN_INPUT_PULLUP | SLEWCTRL_FAST | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* uart0_rxd.uart0_rxd */
497 AM4372_IOPAD(0x974, PIN_INPUT | SLEWCTRL_FAST | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* uart0_txd.uart0_txd */
498 >;
499 };
500
501 uart0_pins_sleep: uart0_pins_sleep {
502 pinctrl-single,pins = <
503 AM4372_IOPAD(0x968, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
504 AM4372_IOPAD(0x96C, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
505 AM4372_IOPAD(0x970, PIN_INPUT_PULLUP | SLEWCTRL_FAST | DS0_PULL_UP_DOWN_EN | MUX_MODE0)
506 AM4372_IOPAD(0x974, PIN_INPUT | SLEWCTRL_FAST | DS0_PULL_UP_DOWN_EN | MUX_MODE0)
507 >;
508 };
509
510 usb2_phy1_default: usb2_phy1_default {
511 pinctrl-single,pins = <
512 AM4372_IOPAD(0xac0, PIN_INPUT_PULLDOWN | MUX_MODE0)
513 >;
514 };
515
516 usb2_phy1_sleep: usb2_phy1_sleep {
517 pinctrl-single,pins = <
518 AM4372_IOPAD(0xac0, DS0_PULL_UP_DOWN_EN | PIN_INPUT_PULLDOWN | MUX_MODE7)
519 >;
520 };
521
522 usb2_phy2_default: usb2_phy2_default {
523 pinctrl-single,pins = <
524 AM4372_IOPAD(0xac4, PIN_INPUT_PULLDOWN | MUX_MODE0)
525 >;
526 };
527
528 usb2_phy2_sleep: usb2_phy2_sleep {
529 pinctrl-single,pins = <
530 AM4372_IOPAD(0xac4, DS0_PULL_UP_DOWN_EN | PIN_INPUT_PULLDOWN | MUX_MODE7)
531 >;
532 };
533
358 mcasp1_pins: mcasp1_pins { 534 mcasp1_pins: mcasp1_pins {
359 pinctrl-single,pins = < 535 pinctrl-single,pins = <
360 AM4372_IOPAD(0x9a0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* MCASP0_ACLKR/MCASP1_ACLKX */ 536 AM4372_IOPAD(0x9a0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* MCASP0_ACLKR/MCASP1_ACLKX */
@@ -378,8 +554,9 @@
378 status = "okay"; 554 status = "okay";
379 vmmc-supply = <&vmmcsd_fixed>; 555 vmmc-supply = <&vmmcsd_fixed>;
380 bus-width = <4>; 556 bus-width = <4>;
381 pinctrl-names = "default"; 557 pinctrl-names = "default", "sleep";
382 pinctrl-0 = <&mmc1_pins>; 558 pinctrl-0 = <&mmc1_pins_default>;
559 pinctrl-1 = <&mmc1_pins_sleep>;
383 cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>; 560 cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
384}; 561};
385 562
@@ -478,8 +655,10 @@
478 655
479 pixcir_ts@5c { 656 pixcir_ts@5c {
480 compatible = "pixcir,pixcir_tangoc"; 657 compatible = "pixcir,pixcir_tangoc";
481 pinctrl-names = "default"; 658 pinctrl-names = "default", "sleep";
482 pinctrl-0 = <&pixcir_ts_pins>; 659 pinctrl-0 = <&pixcir_ts_pins_default>;
660 pinctrl-1 = <&pixcir_ts_pins_sleep>;
661
483 reg = <0x5c>; 662 reg = <0x5c>;
484 interrupt-parent = <&gpio1>; 663 interrupt-parent = <&gpio1>;
485 interrupts = <17 IRQ_TYPE_EDGE_FALLING>; 664 interrupts = <17 IRQ_TYPE_EDGE_FALLING>;
@@ -550,8 +729,9 @@
550 729
551&gpmc { 730&gpmc {
552 status = "okay"; /* Disable QSPI when enabling GPMC (NAND) */ 731 status = "okay"; /* Disable QSPI when enabling GPMC (NAND) */
553 pinctrl-names = "default"; 732 pinctrl-names = "default", "sleep";
554 pinctrl-0 = <&nand_flash_x8>; 733 pinctrl-0 = <&nand_flash_x8_default>;
734 pinctrl-1 = <&nand_flash_x8_sleep>;
555 ranges = <0 0 0x08000000 0x01000000>; /* CS0 space. Min partition = 16MB */ 735 ranges = <0 0 0x08000000 0x01000000>; /* CS0 space. Min partition = 16MB */
556 nand@0,0 { 736 nand@0,0 {
557 compatible = "ti,omap2-nand"; 737 compatible = "ti,omap2-nand";
@@ -647,24 +827,30 @@
647 827
648&ecap0 { 828&ecap0 {
649 status = "okay"; 829 status = "okay";
650 pinctrl-names = "default"; 830 pinctrl-names = "default", "sleep";
651 pinctrl-0 = <&ecap0_pins>; 831 pinctrl-0 = <&ecap0_pins_default>;
832 pinctrl-1 = <&ecap0_pins_sleep>;
652}; 833};
653 834
654&spi0 { 835&spi0 {
655 pinctrl-names = "default";
656 pinctrl-0 = <&spi0_pins>;
657 status = "okay"; 836 status = "okay";
837 pinctrl-names = "default", "sleep";
838 pinctrl-0 = <&spi0_pins_default>;
839 pinctrl-1 = <&spi0_pins_sleep>;
658}; 840};
659 841
660&spi1 { 842&spi1 {
661 pinctrl-names = "default";
662 pinctrl-0 = <&spi1_pins>;
663 status = "okay"; 843 status = "okay";
844 pinctrl-names = "default", "sleep";
845 pinctrl-0 = <&spi1_pins_default>;
846 pinctrl-1 = <&spi1_pins_sleep>;
664}; 847};
665 848
666&usb2_phy1 { 849&usb2_phy1 {
667 status = "okay"; 850 status = "okay";
851 pinctrl-names = "default", "sleep";
852 pinctrl-0 = <&usb2_phy1_default>;
853 pinctrl-1 = <&usb2_phy1_sleep>;
668}; 854};
669 855
670&usb1 { 856&usb1 {
@@ -674,6 +860,9 @@
674 860
675&usb2_phy2 { 861&usb2_phy2 {
676 status = "okay"; 862 status = "okay";
863 pinctrl-names = "default", "sleep";
864 pinctrl-0 = <&usb2_phy2_default>;
865 pinctrl-1 = <&usb2_phy2_sleep>;
677}; 866};
678 867
679&usb2 { 868&usb2 {
@@ -683,8 +872,9 @@
683 872
684&qspi { 873&qspi {
685 status = "disabled"; /* Disable GPMC (NAND) when enabling QSPI */ 874 status = "disabled"; /* Disable GPMC (NAND) when enabling QSPI */
686 pinctrl-names = "default"; 875 pinctrl-names = "default", "sleep";
687 pinctrl-0 = <&qspi1_default>; 876 pinctrl-0 = <&qspi1_pins_default>;
877 pinctrl-1 = <&qspi1_pins_sleep>;
688 878
689 spi-max-frequency = <48000000>; 879 spi-max-frequency = <48000000>;
690 m25p80@0 { 880 m25p80@0 {
@@ -770,6 +960,13 @@
770 }; 960 };
771}; 961};
772 962
963&uart0 {
964 status = "okay";
965 pinctrl-names = "default", "sleep";
966 pinctrl-0 = <&uart0_pins_default>;
967 pinctrl-1 = <&uart0_pins_sleep>;
968};
969
773&mcasp1 { 970&mcasp1 {
774 #sound-dai-cells = <0>; 971 #sound-dai-cells = <0>;
775 pinctrl-names = "default", "sleep"; 972 pinctrl-names = "default", "sleep";
diff --git a/arch/arm/boot/dts/armada-370-synology-ds213j.dts b/arch/arm/boot/dts/armada-370-synology-ds213j.dts
index 4978011df5bd..95040810c094 100644
--- a/arch/arm/boot/dts/armada-370-synology-ds213j.dts
+++ b/arch/arm/boot/dts/armada-370-synology-ds213j.dts
@@ -316,32 +316,32 @@
316 * change the default environment, unless you know 316 * change the default environment, unless you know
317 * what you are doing. 317 * what you are doing.
318 */ 318 */
319 partition@00000000 { /* u-boot */ 319 partition@0 { /* u-boot */
320 label = "RedBoot"; 320 label = "RedBoot";
321 reg = <0x00000000 0x000c0000>; /* 768KB */ 321 reg = <0x00000000 0x000c0000>; /* 768KB */
322 }; 322 };
323 323
324 partition@000c0000 { /* uImage */ 324 partition@c0000 { /* uImage */
325 label = "zImage"; 325 label = "zImage";
326 reg = <0x000c0000 0x002d0000>; /* 2880KB */ 326 reg = <0x000c0000 0x002d0000>; /* 2880KB */
327 }; 327 };
328 328
329 partition@00390000 { /* uInitramfs */ 329 partition@390000 { /* uInitramfs */
330 label = "rd.gz"; 330 label = "rd.gz";
331 reg = <0x00390000 0x00440000>; /* 4250KB */ 331 reg = <0x00390000 0x00440000>; /* 4250KB */
332 }; 332 };
333 333
334 partition@007d0000 { /* MAC address and serial number */ 334 partition@7d0000 { /* MAC address and serial number */
335 label = "vendor"; 335 label = "vendor";
336 reg = <0x007d0000 0x00010000>; /* 64KB */ 336 reg = <0x007d0000 0x00010000>; /* 64KB */
337 }; 337 };
338 338
339 partition@007e0000 { 339 partition@7e0000 {
340 label = "RedBoot config"; 340 label = "RedBoot config";
341 reg = <0x007e0000 0x00010000>; /* 64KB */ 341 reg = <0x007e0000 0x00010000>; /* 64KB */
342 }; 342 };
343 343
344 partition@007f0000 { 344 partition@7f0000 {
345 label = "FIS directory"; 345 label = "FIS directory";
346 reg = <0x007f0000 0x00010000>; /* 64KB */ 346 reg = <0x007f0000 0x00010000>; /* 64KB */
347 }; 347 };
diff --git a/arch/arm/boot/dts/armada-385-synology-ds116.dts b/arch/arm/boot/dts/armada-385-synology-ds116.dts
index 31510eb56f10..36ad571e76f3 100644
--- a/arch/arm/boot/dts/armada-385-synology-ds116.dts
+++ b/arch/arm/boot/dts/armada-385-synology-ds116.dts
@@ -267,35 +267,35 @@
267 * enumerated. The MAC address and the serial number are listed 267 * enumerated. The MAC address and the serial number are listed
268 * in the "vendor" partition. 268 * in the "vendor" partition.
269 */ 269 */
270 partition@00000000 { 270 partition@0 {
271 label = "RedBoot"; 271 label = "RedBoot";
272 reg = <0x00000000 0x000f0000>; 272 reg = <0x00000000 0x000f0000>;
273 read-only; 273 read-only;
274 }; 274 };
275 275
276 partition@000c0000 { 276 partition@c0000 {
277 label = "zImage"; 277 label = "zImage";
278 reg = <0x000f0000 0x002d0000>; 278 reg = <0x000f0000 0x002d0000>;
279 }; 279 };
280 280
281 partition@00390000 { 281 partition@390000 {
282 label = "rd.gz"; 282 label = "rd.gz";
283 reg = <0x003c0000 0x00410000>; 283 reg = <0x003c0000 0x00410000>;
284 }; 284 };
285 285
286 partition@007d0000 { 286 partition@7d0000 {
287 label = "vendor"; 287 label = "vendor";
288 reg = <0x007d0000 0x00010000>; 288 reg = <0x007d0000 0x00010000>;
289 read-only; 289 read-only;
290 }; 290 };
291 291
292 partition@007e0000 { 292 partition@7e0000 {
293 label = "RedBoot config"; 293 label = "RedBoot config";
294 reg = <0x007e0000 0x00010000>; 294 reg = <0x007e0000 0x00010000>;
295 read-only; 295 read-only;
296 }; 296 };
297 297
298 partition@007f0000 { 298 partition@7f0000 {
299 label = "FIS directory"; 299 label = "FIS directory";
300 reg = <0x007f0000 0x00010000>; 300 reg = <0x007f0000 0x00010000>;
301 read-only; 301 read-only;
diff --git a/arch/arm/boot/dts/armada-xp-synology-ds414.dts b/arch/arm/boot/dts/armada-xp-synology-ds414.dts
index d8e05bab0cee..d7228a5461c8 100644
--- a/arch/arm/boot/dts/armada-xp-synology-ds414.dts
+++ b/arch/arm/boot/dts/armada-xp-synology-ds414.dts
@@ -332,32 +332,32 @@
332 * change the default environment, unless you know 332 * change the default environment, unless you know
333 * what you are doing. 333 * what you are doing.
334 */ 334 */
335 partition@00000000 { /* u-boot */ 335 partition@0 { /* u-boot */
336 label = "RedBoot"; 336 label = "RedBoot";
337 reg = <0x00000000 0x000d0000>; /* 832KB */ 337 reg = <0x00000000 0x000d0000>; /* 832KB */
338 }; 338 };
339 339
340 partition@000c0000 { /* uImage */ 340 partition@c0000 { /* uImage */
341 label = "zImage"; 341 label = "zImage";
342 reg = <0x000d0000 0x002d0000>; /* 2880KB */ 342 reg = <0x000d0000 0x002d0000>; /* 2880KB */
343 }; 343 };
344 344
345 partition@003a0000 { /* uInitramfs */ 345 partition@3a0000 { /* uInitramfs */
346 label = "rd.gz"; 346 label = "rd.gz";
347 reg = <0x003a0000 0x00430000>; /* 4250KB */ 347 reg = <0x003a0000 0x00430000>; /* 4250KB */
348 }; 348 };
349 349
350 partition@007d0000 { /* MAC address and serial number */ 350 partition@7d0000 { /* MAC address and serial number */
351 label = "vendor"; 351 label = "vendor";
352 reg = <0x007d0000 0x00010000>; /* 64KB */ 352 reg = <0x007d0000 0x00010000>; /* 64KB */
353 }; 353 };
354 354
355 partition@007e0000 { 355 partition@7e0000 {
356 label = "RedBoot config"; 356 label = "RedBoot config";
357 reg = <0x007e0000 0x00010000>; /* 64KB */ 357 reg = <0x007e0000 0x00010000>; /* 64KB */
358 }; 358 };
359 359
360 partition@007f0000 { 360 partition@7f0000 {
361 label = "FIS directory"; 361 label = "FIS directory";
362 reg = <0x007f0000 0x00010000>; /* 64KB */ 362 reg = <0x007f0000 0x00010000>; /* 64KB */
363 }; 363 };
diff --git a/arch/arm/boot/dts/artpec6.dtsi b/arch/arm/boot/dts/artpec6.dtsi
index 767cbe8d8557..2ed11773048d 100644
--- a/arch/arm/boot/dts/artpec6.dtsi
+++ b/arch/arm/boot/dts/artpec6.dtsi
@@ -151,7 +151,6 @@
151 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 151 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
152 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 152 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
153 interrupt-affinity = <&cpu0>, <&cpu1>; 153 interrupt-affinity = <&cpu0>, <&cpu1>;
154 interrupt-parent = <&intc>;
155 }; 154 };
156 155
157 pcie: pcie@f8050000 { 156 pcie: pcie@f8050000 {
@@ -185,7 +184,6 @@
185 compatible = "simple-bus"; 184 compatible = "simple-bus";
186 #address-cells = <0x1>; 185 #address-cells = <0x1>;
187 #size-cells = <0x1>; 186 #size-cells = <0x1>;
188 interrupt-parent = <&intc>;
189 ranges; 187 ranges;
190 dma-ranges = <0x80000000 0x00000000 0x40000000>; 188 dma-ranges = <0x80000000 0x00000000 0x40000000>;
191 dma-coherent; 189 dma-coherent;
@@ -195,7 +193,6 @@
195 clocks = <&eth_phy_ref_clk>, 193 clocks = <&eth_phy_ref_clk>,
196 <&clkctrl ARTPEC6_CLK_ETH_ACLK>; 194 <&clkctrl ARTPEC6_CLK_ETH_ACLK>;
197 compatible = "snps,dwc-qos-ethernet-4.10"; 195 compatible = "snps,dwc-qos-ethernet-4.10";
198 interrupt-parent = <&intc>;
199 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 196 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
200 reg = <0xf8010000 0x4000>; 197 reg = <0xf8010000 0x4000>;
201 198
diff --git a/arch/arm/boot/dts/aspeed-ast2500-evb.dts b/arch/arm/boot/dts/aspeed-ast2500-evb.dts
index f53e89d63477..602bc10fdaf4 100644
--- a/arch/arm/boot/dts/aspeed-ast2500-evb.dts
+++ b/arch/arm/boot/dts/aspeed-ast2500-evb.dts
@@ -60,3 +60,22 @@
60 pinctrl-names = "default"; 60 pinctrl-names = "default";
61 pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>; 61 pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>;
62}; 62};
63
64&i2c3 {
65 status = "okay";
66
67 eeprom@50 {
68 compatible = "atmel,24c08";
69 reg = <0x50>;
70 pagesize = <16>;
71 };
72};
73
74&i2c7 {
75 status = "okay";
76
77 lm75@4d {
78 compatible = "national,lm75";
79 reg = <0x4d>;
80 };
81};
diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts b/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts
index e1b523bd5b8b..c786bc2f2919 100644
--- a/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts
+++ b/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts
@@ -7,10 +7,6 @@
7 model = "Palmetto BMC"; 7 model = "Palmetto BMC";
8 compatible = "tyan,palmetto-bmc", "aspeed,ast2400"; 8 compatible = "tyan,palmetto-bmc", "aspeed,ast2400";
9 9
10 aliases {
11 serial4 = &uart5;
12 };
13
14 chosen { 10 chosen {
15 stdout-path = &uart5; 11 stdout-path = &uart5;
16 bootargs = "console=ttyS4,115200 earlyprintk"; 12 bootargs = "console=ttyS4,115200 earlyprintk";
@@ -62,3 +58,55 @@
62 pinctrl-names = "default"; 58 pinctrl-names = "default";
63 pinctrl-0 = <&pinctrl_rmii1_default>; 59 pinctrl-0 = <&pinctrl_rmii1_default>;
64}; 60};
61
62&i2c0 {
63 status = "okay";
64
65 eeprom@50 {
66 compatible = "atmel,24c256";
67 reg = <0x50>;
68 pagesize = <64>;
69 };
70
71 rtc@68 {
72 compatible = "dallas,ds3231";
73 reg = <0x68>;
74 };
75};
76
77&i2c1 {
78 status = "okay";
79};
80
81&i2c2 {
82 status = "okay";
83
84 tmp423@4c {
85 compatible = "ti,tmp423";
86 reg = <0x4c>;
87 };
88};
89
90&i2c3 {
91 status = "okay";
92};
93
94&i2c4 {
95 status = "okay";
96};
97
98&i2c5 {
99 status = "okay";
100};
101
102&i2c6 {
103 status = "okay";
104};
105
106&i2c7 {
107 status = "okay";
108};
109
110&vuart {
111 status = "okay";
112};
diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts b/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts
index 6dd77cba191c..8067793129ea 100644
--- a/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts
+++ b/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts
@@ -80,3 +80,61 @@
80 pinctrl-names = "default"; 80 pinctrl-names = "default";
81 pinctrl-0 = <&pinctrl_rmii1_default>; 81 pinctrl-0 = <&pinctrl_rmii1_default>;
82}; 82};
83
84&i2c2 {
85 status = "okay";
86};
87
88&i2c3 {
89 status = "okay";
90};
91
92&i2c4 {
93 status = "okay";
94};
95
96&i2c5 {
97 status = "okay";
98};
99
100&i2c6 {
101 /* PCIe slot 1 (x8) */
102 status = "okay";
103};
104
105&i2c7 {
106 /* PCIe slot 2 (x16) */
107 status = "okay";
108};
109
110&i2c8 {
111 /* PCIe slot 3 (x16) */
112 status = "okay";
113};
114
115&i2c9 {
116 /* PCIe slot 4 (x16) */
117 status = "okay";
118};
119
120&i2c10 {
121 /* PCIe slot 5 (x8) */
122 status = "okay";
123};
124
125&i2c11 {
126 status = "okay";
127
128 rtc@32 {
129 compatible = "epson,rx8900";
130 reg = <0x32>;
131 };
132};
133
134&i2c12 {
135 status = "okay";
136};
137
138&vuart {
139 status = "okay";
140};
diff --git a/arch/arm/boot/dts/aspeed-g4.dtsi b/arch/arm/boot/dts/aspeed-g4.dtsi
index fcc5efbd0879..45d815a86d42 100644
--- a/arch/arm/boot/dts/aspeed-g4.dtsi
+++ b/arch/arm/boot/dts/aspeed-g4.dtsi
@@ -8,6 +8,29 @@
8 #size-cells = <1>; 8 #size-cells = <1>;
9 interrupt-parent = <&vic>; 9 interrupt-parent = <&vic>;
10 10
11 aliases {
12 i2c0 = &i2c0;
13 i2c1 = &i2c1;
14 i2c2 = &i2c2;
15 i2c3 = &i2c3;
16 i2c4 = &i2c4;
17 i2c5 = &i2c5;
18 i2c6 = &i2c6;
19 i2c7 = &i2c7;
20 i2c8 = &i2c8;
21 i2c9 = &i2c9;
22 i2c10 = &i2c10;
23 i2c11 = &i2c11;
24 i2c12 = &i2c12;
25 i2c13 = &i2c13;
26 serial0 = &uart1;
27 serial1 = &uart2;
28 serial2 = &uart3;
29 serial3 = &uart4;
30 serial4 = &uart5;
31 serial5 = &vuart;
32 };
33
11 cpus { 34 cpus {
12 #address-cells = <1>; 35 #address-cells = <1>;
13 #size-cells = <0>; 36 #size-cells = <0>;
@@ -110,7 +133,7 @@
110 clock-frequency = <192000000>; 133 clock-frequency = <192000000>;
111 }; 134 };
112 135
113 clk_apb: clk_apb@08 { 136 clk_apb: clk_apb@8 {
114 #clock-cells = <0>; 137 #clock-cells = <0>;
115 compatible = "aspeed,g4-apb-clock", "fixed-clock"; 138 compatible = "aspeed,g4-apb-clock", "fixed-clock";
116 reg = <0x08>; 139 reg = <0x08>;
@@ -127,750 +150,17 @@
127 150
128 pinctrl: pinctrl { 151 pinctrl: pinctrl {
129 compatible = "aspeed,g4-pinctrl"; 152 compatible = "aspeed,g4-pinctrl";
130
131 pinctrl_acpi_default: acpi_default {
132 function = "ACPI";
133 groups = "ACPI";
134 };
135
136 pinctrl_adc0_default: adc0_default {
137 function = "ADC0";
138 groups = "ADC0";
139 };
140
141 pinctrl_adc1_default: adc1_default {
142 function = "ADC1";
143 groups = "ADC1";
144 };
145
146 pinctrl_adc10_default: adc10_default {
147 function = "ADC10";
148 groups = "ADC10";
149 };
150
151 pinctrl_adc11_default: adc11_default {
152 function = "ADC11";
153 groups = "ADC11";
154 };
155
156 pinctrl_adc12_default: adc12_default {
157 function = "ADC12";
158 groups = "ADC12";
159 };
160
161 pinctrl_adc13_default: adc13_default {
162 function = "ADC13";
163 groups = "ADC13";
164 };
165
166 pinctrl_adc14_default: adc14_default {
167 function = "ADC14";
168 groups = "ADC14";
169 };
170
171 pinctrl_adc15_default: adc15_default {
172 function = "ADC15";
173 groups = "ADC15";
174 };
175
176 pinctrl_adc2_default: adc2_default {
177 function = "ADC2";
178 groups = "ADC2";
179 };
180
181 pinctrl_adc3_default: adc3_default {
182 function = "ADC3";
183 groups = "ADC3";
184 };
185
186 pinctrl_adc4_default: adc4_default {
187 function = "ADC4";
188 groups = "ADC4";
189 };
190
191 pinctrl_adc5_default: adc5_default {
192 function = "ADC5";
193 groups = "ADC5";
194 };
195
196 pinctrl_adc6_default: adc6_default {
197 function = "ADC6";
198 groups = "ADC6";
199 };
200
201 pinctrl_adc7_default: adc7_default {
202 function = "ADC7";
203 groups = "ADC7";
204 };
205
206 pinctrl_adc8_default: adc8_default {
207 function = "ADC8";
208 groups = "ADC8";
209 };
210
211 pinctrl_adc9_default: adc9_default {
212 function = "ADC9";
213 groups = "ADC9";
214 };
215
216 pinctrl_bmcint_default: bmcint_default {
217 function = "BMCINT";
218 groups = "BMCINT";
219 };
220
221 pinctrl_ddcclk_default: ddcclk_default {
222 function = "DDCCLK";
223 groups = "DDCCLK";
224 };
225
226 pinctrl_ddcdat_default: ddcdat_default {
227 function = "DDCDAT";
228 groups = "DDCDAT";
229 };
230
231 pinctrl_extrst_default: extrst_default {
232 function = "EXTRST";
233 groups = "EXTRST";
234 };
235
236 pinctrl_flack_default: flack_default {
237 function = "FLACK";
238 groups = "FLACK";
239 };
240
241 pinctrl_flbusy_default: flbusy_default {
242 function = "FLBUSY";
243 groups = "FLBUSY";
244 };
245
246 pinctrl_flwp_default: flwp_default {
247 function = "FLWP";
248 groups = "FLWP";
249 };
250
251 pinctrl_gpid_default: gpid_default {
252 function = "GPID";
253 groups = "GPID";
254 };
255
256 pinctrl_gpid0_default: gpid0_default {
257 function = "GPID0";
258 groups = "GPID0";
259 };
260
261 pinctrl_gpid2_default: gpid2_default {
262 function = "GPID2";
263 groups = "GPID2";
264 };
265
266 pinctrl_gpid4_default: gpid4_default {
267 function = "GPID4";
268 groups = "GPID4";
269 };
270
271 pinctrl_gpid6_default: gpid6_default {
272 function = "GPID6";
273 groups = "GPID6";
274 };
275
276 pinctrl_gpie0_default: gpie0_default {
277 function = "GPIE0";
278 groups = "GPIE0";
279 };
280
281 pinctrl_gpie2_default: gpie2_default {
282 function = "GPIE2";
283 groups = "GPIE2";
284 };
285
286 pinctrl_gpie4_default: gpie4_default {
287 function = "GPIE4";
288 groups = "GPIE4";
289 };
290
291 pinctrl_gpie6_default: gpie6_default {
292 function = "GPIE6";
293 groups = "GPIE6";
294 };
295
296 pinctrl_i2c10_default: i2c10_default {
297 function = "I2C10";
298 groups = "I2C10";
299 };
300
301 pinctrl_i2c11_default: i2c11_default {
302 function = "I2C11";
303 groups = "I2C11";
304 };
305
306 pinctrl_i2c12_default: i2c12_default {
307 function = "I2C12";
308 groups = "I2C12";
309 };
310
311 pinctrl_i2c13_default: i2c13_default {
312 function = "I2C13";
313 groups = "I2C13";
314 };
315
316 pinctrl_i2c14_default: i2c14_default {
317 function = "I2C14";
318 groups = "I2C14";
319 };
320
321 pinctrl_i2c3_default: i2c3_default {
322 function = "I2C3";
323 groups = "I2C3";
324 };
325
326 pinctrl_i2c4_default: i2c4_default {
327 function = "I2C4";
328 groups = "I2C4";
329 };
330
331 pinctrl_i2c5_default: i2c5_default {
332 function = "I2C5";
333 groups = "I2C5";
334 };
335
336 pinctrl_i2c6_default: i2c6_default {
337 function = "I2C6";
338 groups = "I2C6";
339 };
340
341 pinctrl_i2c7_default: i2c7_default {
342 function = "I2C7";
343 groups = "I2C7";
344 };
345
346 pinctrl_i2c8_default: i2c8_default {
347 function = "I2C8";
348 groups = "I2C8";
349 };
350
351 pinctrl_i2c9_default: i2c9_default {
352 function = "I2C9";
353 groups = "I2C9";
354 };
355
356 pinctrl_lpcpd_default: lpcpd_default {
357 function = "LPCPD";
358 groups = "LPCPD";
359 };
360
361 pinctrl_lpcpme_default: lpcpme_default {
362 function = "LPCPME";
363 groups = "LPCPME";
364 };
365
366 pinctrl_lpcrst_default: lpcrst_default {
367 function = "LPCRST";
368 groups = "LPCRST";
369 };
370
371 pinctrl_lpcsmi_default: lpcsmi_default {
372 function = "LPCSMI";
373 groups = "LPCSMI";
374 };
375
376 pinctrl_mac1link_default: mac1link_default {
377 function = "MAC1LINK";
378 groups = "MAC1LINK";
379 };
380
381 pinctrl_mac2link_default: mac2link_default {
382 function = "MAC2LINK";
383 groups = "MAC2LINK";
384 };
385
386 pinctrl_mdio1_default: mdio1_default {
387 function = "MDIO1";
388 groups = "MDIO1";
389 };
390
391 pinctrl_mdio2_default: mdio2_default {
392 function = "MDIO2";
393 groups = "MDIO2";
394 };
395
396 pinctrl_ncts1_default: ncts1_default {
397 function = "NCTS1";
398 groups = "NCTS1";
399 };
400
401 pinctrl_ncts2_default: ncts2_default {
402 function = "NCTS2";
403 groups = "NCTS2";
404 };
405
406 pinctrl_ncts3_default: ncts3_default {
407 function = "NCTS3";
408 groups = "NCTS3";
409 };
410
411 pinctrl_ncts4_default: ncts4_default {
412 function = "NCTS4";
413 groups = "NCTS4";
414 };
415
416 pinctrl_ndcd1_default: ndcd1_default {
417 function = "NDCD1";
418 groups = "NDCD1";
419 };
420
421 pinctrl_ndcd2_default: ndcd2_default {
422 function = "NDCD2";
423 groups = "NDCD2";
424 };
425
426 pinctrl_ndcd3_default: ndcd3_default {
427 function = "NDCD3";
428 groups = "NDCD3";
429 };
430
431 pinctrl_ndcd4_default: ndcd4_default {
432 function = "NDCD4";
433 groups = "NDCD4";
434 };
435
436 pinctrl_ndsr1_default: ndsr1_default {
437 function = "NDSR1";
438 groups = "NDSR1";
439 };
440
441 pinctrl_ndsr2_default: ndsr2_default {
442 function = "NDSR2";
443 groups = "NDSR2";
444 };
445
446 pinctrl_ndsr3_default: ndsr3_default {
447 function = "NDSR3";
448 groups = "NDSR3";
449 };
450
451 pinctrl_ndsr4_default: ndsr4_default {
452 function = "NDSR4";
453 groups = "NDSR4";
454 };
455
456 pinctrl_ndtr1_default: ndtr1_default {
457 function = "NDTR1";
458 groups = "NDTR1";
459 };
460
461 pinctrl_ndtr2_default: ndtr2_default {
462 function = "NDTR2";
463 groups = "NDTR2";
464 };
465
466 pinctrl_ndtr3_default: ndtr3_default {
467 function = "NDTR3";
468 groups = "NDTR3";
469 };
470
471 pinctrl_ndtr4_default: ndtr4_default {
472 function = "NDTR4";
473 groups = "NDTR4";
474 };
475
476 pinctrl_ndts4_default: ndts4_default {
477 function = "NDTS4";
478 groups = "NDTS4";
479 };
480
481 pinctrl_nri1_default: nri1_default {
482 function = "NRI1";
483 groups = "NRI1";
484 };
485
486 pinctrl_nri2_default: nri2_default {
487 function = "NRI2";
488 groups = "NRI2";
489 };
490
491 pinctrl_nri3_default: nri3_default {
492 function = "NRI3";
493 groups = "NRI3";
494 };
495
496 pinctrl_nri4_default: nri4_default {
497 function = "NRI4";
498 groups = "NRI4";
499 };
500
501 pinctrl_nrts1_default: nrts1_default {
502 function = "NRTS1";
503 groups = "NRTS1";
504 };
505
506 pinctrl_nrts2_default: nrts2_default {
507 function = "NRTS2";
508 groups = "NRTS2";
509 };
510
511 pinctrl_nrts3_default: nrts3_default {
512 function = "NRTS3";
513 groups = "NRTS3";
514 };
515
516 pinctrl_oscclk_default: oscclk_default {
517 function = "OSCCLK";
518 groups = "OSCCLK";
519 };
520
521 pinctrl_pwm0_default: pwm0_default {
522 function = "PWM0";
523 groups = "PWM0";
524 };
525
526 pinctrl_pwm1_default: pwm1_default {
527 function = "PWM1";
528 groups = "PWM1";
529 };
530
531 pinctrl_pwm2_default: pwm2_default {
532 function = "PWM2";
533 groups = "PWM2";
534 };
535
536 pinctrl_pwm3_default: pwm3_default {
537 function = "PWM3";
538 groups = "PWM3";
539 };
540
541 pinctrl_pwm4_default: pwm4_default {
542 function = "PWM4";
543 groups = "PWM4";
544 };
545
546 pinctrl_pwm5_default: pwm5_default {
547 function = "PWM5";
548 groups = "PWM5";
549 };
550
551 pinctrl_pwm6_default: pwm6_default {
552 function = "PWM6";
553 groups = "PWM6";
554 };
555
556 pinctrl_pwm7_default: pwm7_default {
557 function = "PWM7";
558 groups = "PWM7";
559 };
560
561 pinctrl_rgmii1_default: rgmii1_default {
562 function = "RGMII1";
563 groups = "RGMII1";
564 };
565
566 pinctrl_rgmii2_default: rgmii2_default {
567 function = "RGMII2";
568 groups = "RGMII2";
569 };
570
571 pinctrl_rmii1_default: rmii1_default {
572 function = "RMII1";
573 groups = "RMII1";
574 };
575
576 pinctrl_rmii2_default: rmii2_default {
577 function = "RMII2";
578 groups = "RMII2";
579 };
580
581 pinctrl_rom16_default: rom16_default {
582 function = "ROM16";
583 groups = "ROM16";
584 };
585
586 pinctrl_rom8_default: rom8_default {
587 function = "ROM8";
588 groups = "ROM8";
589 };
590
591 pinctrl_romcs1_default: romcs1_default {
592 function = "ROMCS1";
593 groups = "ROMCS1";
594 };
595
596 pinctrl_romcs2_default: romcs2_default {
597 function = "ROMCS2";
598 groups = "ROMCS2";
599 };
600
601 pinctrl_romcs3_default: romcs3_default {
602 function = "ROMCS3";
603 groups = "ROMCS3";
604 };
605
606 pinctrl_romcs4_default: romcs4_default {
607 function = "ROMCS4";
608 groups = "ROMCS4";
609 };
610
611 pinctrl_rxd1_default: rxd1_default {
612 function = "RXD1";
613 groups = "RXD1";
614 };
615
616 pinctrl_rxd2_default: rxd2_default {
617 function = "RXD2";
618 groups = "RXD2";
619 };
620
621 pinctrl_rxd3_default: rxd3_default {
622 function = "RXD3";
623 groups = "RXD3";
624 };
625
626 pinctrl_rxd4_default: rxd4_default {
627 function = "RXD4";
628 groups = "RXD4";
629 };
630
631 pinctrl_salt1_default: salt1_default {
632 function = "SALT1";
633 groups = "SALT1";
634 };
635
636 pinctrl_salt2_default: salt2_default {
637 function = "SALT2";
638 groups = "SALT2";
639 };
640
641 pinctrl_salt3_default: salt3_default {
642 function = "SALT3";
643 groups = "SALT3";
644 };
645
646 pinctrl_salt4_default: salt4_default {
647 function = "SALT4";
648 groups = "SALT4";
649 };
650
651 pinctrl_sd1_default: sd1_default {
652 function = "SD1";
653 groups = "SD1";
654 };
655
656 pinctrl_sd2_default: sd2_default {
657 function = "SD2";
658 groups = "SD2";
659 };
660
661 pinctrl_sgpmck_default: sgpmck_default {
662 function = "SGPMCK";
663 groups = "SGPMCK";
664 };
665
666 pinctrl_sgpmi_default: sgpmi_default {
667 function = "SGPMI";
668 groups = "SGPMI";
669 };
670
671 pinctrl_sgpmld_default: sgpmld_default {
672 function = "SGPMLD";
673 groups = "SGPMLD";
674 };
675
676 pinctrl_sgpmo_default: sgpmo_default {
677 function = "SGPMO";
678 groups = "SGPMO";
679 };
680
681 pinctrl_sgpsck_default: sgpsck_default {
682 function = "SGPSCK";
683 groups = "SGPSCK";
684 };
685
686 pinctrl_sgpsi0_default: sgpsi0_default {
687 function = "SGPSI0";
688 groups = "SGPSI0";
689 };
690
691 pinctrl_sgpsi1_default: sgpsi1_default {
692 function = "SGPSI1";
693 groups = "SGPSI1";
694 };
695
696 pinctrl_sgpsld_default: sgpsld_default {
697 function = "SGPSLD";
698 groups = "SGPSLD";
699 };
700
701 pinctrl_sioonctrl_default: sioonctrl_default {
702 function = "SIOONCTRL";
703 groups = "SIOONCTRL";
704 };
705
706 pinctrl_siopbi_default: siopbi_default {
707 function = "SIOPBI";
708 groups = "SIOPBI";
709 };
710
711 pinctrl_siopbo_default: siopbo_default {
712 function = "SIOPBO";
713 groups = "SIOPBO";
714 };
715
716 pinctrl_siopwreq_default: siopwreq_default {
717 function = "SIOPWREQ";
718 groups = "SIOPWREQ";
719 };
720
721 pinctrl_siopwrgd_default: siopwrgd_default {
722 function = "SIOPWRGD";
723 groups = "SIOPWRGD";
724 };
725
726 pinctrl_sios3_default: sios3_default {
727 function = "SIOS3";
728 groups = "SIOS3";
729 };
730
731 pinctrl_sios5_default: sios5_default {
732 function = "SIOS5";
733 groups = "SIOS5";
734 };
735
736 pinctrl_siosci_default: siosci_default {
737 function = "SIOSCI";
738 groups = "SIOSCI";
739 };
740
741 pinctrl_spi1_default: spi1_default {
742 function = "SPI1";
743 groups = "SPI1";
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_spics1_default: spics1_default {
757 function = "SPICS1";
758 groups = "SPICS1";
759 };
760
761 pinctrl_timer3_default: timer3_default {
762 function = "TIMER3";
763 groups = "TIMER3";
764 };
765
766 pinctrl_timer4_default: timer4_default {
767 function = "TIMER4";
768 groups = "TIMER4";
769 };
770
771 pinctrl_timer5_default: timer5_default {
772 function = "TIMER5";
773 groups = "TIMER5";
774 };
775
776 pinctrl_timer6_default: timer6_default {
777 function = "TIMER6";
778 groups = "TIMER6";
779 };
780
781 pinctrl_timer7_default: timer7_default {
782 function = "TIMER7";
783 groups = "TIMER7";
784 };
785
786 pinctrl_timer8_default: timer8_default {
787 function = "TIMER8";
788 groups = "TIMER8";
789 };
790
791 pinctrl_txd1_default: txd1_default {
792 function = "TXD1";
793 groups = "TXD1";
794 };
795
796 pinctrl_txd2_default: txd2_default {
797 function = "TXD2";
798 groups = "TXD2";
799 };
800
801 pinctrl_txd3_default: txd3_default {
802 function = "TXD3";
803 groups = "TXD3";
804 };
805
806 pinctrl_txd4_default: txd4_default {
807 function = "TXD4";
808 groups = "TXD4";
809 };
810
811 pinctrl_uart6_default: uart6_default {
812 function = "UART6";
813 groups = "UART6";
814 };
815
816 pinctrl_usbcki_default: usbcki_default {
817 function = "USBCKI";
818 groups = "USBCKI";
819 };
820
821 pinctrl_vgabios_rom_default: vgabios_rom_default {
822 function = "VGABIOS_ROM";
823 groups = "VGABIOS_ROM";
824 };
825
826 pinctrl_vgahs_default: vgahs_default {
827 function = "VGAHS";
828 groups = "VGAHS";
829 };
830
831 pinctrl_vgavs_default: vgavs_default {
832 function = "VGAVS";
833 groups = "VGAVS";
834 };
835
836 pinctrl_vpi18_default: vpi18_default {
837 function = "VPI18";
838 groups = "VPI18";
839 };
840
841 pinctrl_vpi24_default: vpi24_default {
842 function = "VPI24";
843 groups = "VPI24";
844 };
845
846 pinctrl_vpi30_default: vpi30_default {
847 function = "VPI30";
848 groups = "VPI30";
849 };
850
851 pinctrl_vpo12_default: vpo12_default {
852 function = "VPO12";
853 groups = "VPO12";
854 };
855
856 pinctrl_vpo24_default: vpo24_default {
857 function = "VPO24";
858 groups = "VPO24";
859 };
860
861 pinctrl_wdtrst1_default: wdtrst1_default {
862 function = "WDTRST1";
863 groups = "WDTRST1";
864 };
865
866 pinctrl_wdtrst2_default: wdtrst2_default {
867 function = "WDTRST2";
868 groups = "WDTRST2";
869 };
870
871 }; 153 };
872 }; 154 };
873 155
156 adc: adc@1e6e9000 {
157 compatible = "aspeed,ast2400-adc";
158 reg = <0x1e6e9000 0xb0>;
159 clocks = <&clk_apb>;
160 #io-channel-cells = <1>;
161 status = "disabled";
162 };
163
874 sram@1e720000 { 164 sram@1e720000 {
875 compatible = "mmio-sram"; 165 compatible = "mmio-sram";
876 reg = <0x1e720000 0x8000>; // 32K 166 reg = <0x1e720000 0x8000>; // 32K
@@ -895,23 +185,9 @@
895 clock-names = "PCLK"; 185 clock-names = "PCLK";
896 }; 186 };
897 187
898 wdt1: wdt@1e785000 {
899 compatible = "aspeed,ast2400-wdt";
900 reg = <0x1e785000 0x1c>;
901 interrupts = <27>;
902 };
903
904 wdt2: wdt@1e785020 {
905 compatible = "aspeed,ast2400-wdt";
906 reg = <0x1e785020 0x1c>;
907 interrupts = <27>;
908 clocks = <&clk_apb>;
909 status = "disabled";
910 };
911
912 uart1: serial@1e783000 { 188 uart1: serial@1e783000 {
913 compatible = "ns16550a"; 189 compatible = "ns16550a";
914 reg = <0x1e783000 0x1000>; 190 reg = <0x1e783000 0x20>;
915 reg-shift = <2>; 191 reg-shift = <2>;
916 interrupts = <9>; 192 interrupts = <9>;
917 clocks = <&clk_uart>; 193 clocks = <&clk_uart>;
@@ -919,64 +195,1046 @@
919 status = "disabled"; 195 status = "disabled";
920 }; 196 };
921 197
922 uart2: serial@1e78d000 { 198 uart5: serial@1e784000 {
923 compatible = "ns16550a"; 199 compatible = "ns16550a";
924 reg = <0x1e78d000 0x1000>; 200 reg = <0x1e784000 0x20>;
925 reg-shift = <2>; 201 reg-shift = <2>;
926 interrupts = <32>; 202 interrupts = <10>;
927 clocks = <&clk_uart>; 203 clocks = <&clk_uart>;
928 no-loopback-test; 204 no-loopback-test;
929 status = "disabled"; 205 status = "disabled";
930 }; 206 };
931 207
932 uart3: serial@1e78e000 { 208 wdt1: watchdog@1e785000 {
933 compatible = "ns16550a"; 209 compatible = "aspeed,ast2400-wdt";
934 reg = <0x1e78e000 0x1000>; 210 reg = <0x1e785000 0x1c>;
211 };
212
213 wdt2: watchdog@1e785020 {
214 compatible = "aspeed,ast2400-wdt";
215 reg = <0x1e785020 0x1c>;
216 };
217
218 vuart: serial@1e787000 {
219 compatible = "aspeed,ast2400-vuart";
220 reg = <0x1e787000 0x40>;
935 reg-shift = <2>; 221 reg-shift = <2>;
936 interrupts = <33>; 222 interrupts = <10>;
937 clocks = <&clk_uart>; 223 clocks = <&clk_uart>;
938 no-loopback-test; 224 no-loopback-test;
939 status = "disabled"; 225 status = "disabled";
940 }; 226 };
941 227
942 uart4: serial@1e78f000 { 228 uart2: serial@1e78d000 {
943 compatible = "ns16550a"; 229 compatible = "ns16550a";
944 reg = <0x1e78f000 0x1000>; 230 reg = <0x1e78d000 0x20>;
945 reg-shift = <2>; 231 reg-shift = <2>;
946 interrupts = <34>; 232 interrupts = <32>;
947 clocks = <&clk_uart>; 233 clocks = <&clk_uart>;
948 no-loopback-test; 234 no-loopback-test;
949 status = "disabled"; 235 status = "disabled";
950 }; 236 };
951 237
952 uart5: serial@1e784000 { 238 uart3: serial@1e78e000 {
953 compatible = "ns16550a"; 239 compatible = "ns16550a";
954 reg = <0x1e784000 0x1000>; 240 reg = <0x1e78e000 0x20>;
955 reg-shift = <2>; 241 reg-shift = <2>;
956 interrupts = <10>; 242 interrupts = <33>;
957 clocks = <&clk_uart>; 243 clocks = <&clk_uart>;
958 current-speed = <38400>;
959 no-loopback-test; 244 no-loopback-test;
960 status = "disabled"; 245 status = "disabled";
961 }; 246 };
962 247
963 uart6: serial@1e787000 { 248 uart4: serial@1e78f000 {
964 compatible = "ns16550a"; 249 compatible = "ns16550a";
965 reg = <0x1e787000 0x1000>; 250 reg = <0x1e78f000 0x20>;
966 reg-shift = <2>; 251 reg-shift = <2>;
967 interrupts = <10>; 252 interrupts = <34>;
968 clocks = <&clk_uart>; 253 clocks = <&clk_uart>;
969 no-loopback-test; 254 no-loopback-test;
970 status = "disabled"; 255 status = "disabled";
971 }; 256 };
972 257
973 adc: adc@1e6e9000 { 258 i2c: i2c@1e78a000 {
974 compatible = "aspeed,ast2400-adc"; 259 compatible = "simple-bus";
975 reg = <0x1e6e9000 0xb0>; 260 #address-cells = <1>;
976 clocks = <&clk_apb>; 261 #size-cells = <1>;
977 #io-channel-cells = <1>; 262 ranges = <0 0x1e78a000 0x1000>;
978 status = "disabled";
979 }; 263 };
980 }; 264 };
981 }; 265 };
982}; 266};
267
268&i2c {
269 i2c_ic: interrupt-controller@0 {
270 #interrupt-cells = <1>;
271 compatible = "aspeed,ast2400-i2c-ic";
272 reg = <0x0 0x40>;
273 interrupts = <12>;
274 interrupt-controller;
275 };
276
277 i2c0: i2c-bus@40 {
278 #address-cells = <1>;
279 #size-cells = <0>;
280 #interrupt-cells = <1>;
281
282 reg = <0x40 0x40>;
283 compatible = "aspeed,ast2400-i2c-bus";
284 clocks = <&clk_apb>;
285 bus-frequency = <100000>;
286 interrupts = <0>;
287 interrupt-parent = <&i2c_ic>;
288 status = "disabled";
289 /* Does not need pinctrl properties */
290 };
291
292 i2c1: i2c-bus@80 {
293 #address-cells = <1>;
294 #size-cells = <0>;
295 #interrupt-cells = <1>;
296
297 reg = <0x80 0x40>;
298 compatible = "aspeed,ast2400-i2c-bus";
299 clocks = <&clk_apb>;
300 bus-frequency = <100000>;
301 interrupts = <1>;
302 interrupt-parent = <&i2c_ic>;
303 status = "disabled";
304 /* Does not need pinctrl properties */
305 };
306
307 i2c2: i2c-bus@c0 {
308 #address-cells = <1>;
309 #size-cells = <0>;
310 #interrupt-cells = <1>;
311
312 reg = <0xc0 0x40>;
313 compatible = "aspeed,ast2400-i2c-bus";
314 clocks = <&clk_apb>;
315 bus-frequency = <100000>;
316 interrupts = <2>;
317 interrupt-parent = <&i2c_ic>;
318 pinctrl-names = "default";
319 pinctrl-0 = <&pinctrl_i2c3_default>;
320 status = "disabled";
321 };
322
323 i2c3: i2c-bus@100 {
324 #address-cells = <1>;
325 #size-cells = <0>;
326 #interrupt-cells = <1>;
327
328 reg = <0x100 0x40>;
329 compatible = "aspeed,ast2400-i2c-bus";
330 clocks = <&clk_apb>;
331 bus-frequency = <100000>;
332 interrupts = <3>;
333 interrupt-parent = <&i2c_ic>;
334 pinctrl-names = "default";
335 pinctrl-0 = <&pinctrl_i2c4_default>;
336 status = "disabled";
337 };
338
339 i2c4: i2c-bus@140 {
340 #address-cells = <1>;
341 #size-cells = <0>;
342 #interrupt-cells = <1>;
343
344 reg = <0x140 0x40>;
345 compatible = "aspeed,ast2400-i2c-bus";
346 clocks = <&clk_apb>;
347 bus-frequency = <100000>;
348 interrupts = <4>;
349 interrupt-parent = <&i2c_ic>;
350 pinctrl-names = "default";
351 pinctrl-0 = <&pinctrl_i2c5_default>;
352 status = "disabled";
353 };
354
355 i2c5: i2c-bus@180 {
356 #address-cells = <1>;
357 #size-cells = <0>;
358 #interrupt-cells = <1>;
359
360 reg = <0x180 0x40>;
361 compatible = "aspeed,ast2400-i2c-bus";
362 clocks = <&clk_apb>;
363 bus-frequency = <100000>;
364 interrupts = <5>;
365 interrupt-parent = <&i2c_ic>;
366 pinctrl-names = "default";
367 pinctrl-0 = <&pinctrl_i2c6_default>;
368 status = "disabled";
369 };
370
371 i2c6: i2c-bus@1c0 {
372 #address-cells = <1>;
373 #size-cells = <0>;
374 #interrupt-cells = <1>;
375
376 reg = <0x1c0 0x40>;
377 compatible = "aspeed,ast2400-i2c-bus";
378 clocks = <&clk_apb>;
379 bus-frequency = <100000>;
380 interrupts = <6>;
381 interrupt-parent = <&i2c_ic>;
382 pinctrl-names = "default";
383 pinctrl-0 = <&pinctrl_i2c7_default>;
384 status = "disabled";
385 };
386
387 i2c7: i2c-bus@300 {
388 #address-cells = <1>;
389 #size-cells = <0>;
390 #interrupt-cells = <1>;
391
392 reg = <0x300 0x40>;
393 compatible = "aspeed,ast2400-i2c-bus";
394 clocks = <&clk_apb>;
395 bus-frequency = <100000>;
396 interrupts = <7>;
397 interrupt-parent = <&i2c_ic>;
398 pinctrl-names = "default";
399 pinctrl-0 = <&pinctrl_i2c8_default>;
400 status = "disabled";
401 };
402
403 i2c8: i2c-bus@340 {
404 #address-cells = <1>;
405 #size-cells = <0>;
406 #interrupt-cells = <1>;
407
408 reg = <0x340 0x40>;
409 compatible = "aspeed,ast2400-i2c-bus";
410 clocks = <&clk_apb>;
411 bus-frequency = <100000>;
412 interrupts = <8>;
413 interrupt-parent = <&i2c_ic>;
414 pinctrl-names = "default";
415 pinctrl-0 = <&pinctrl_i2c9_default>;
416 status = "disabled";
417 };
418
419 i2c9: i2c-bus@380 {
420 #address-cells = <1>;
421 #size-cells = <0>;
422 #interrupt-cells = <1>;
423
424 reg = <0x380 0x40>;
425 compatible = "aspeed,ast2400-i2c-bus";
426 clocks = <&clk_apb>;
427 bus-frequency = <100000>;
428 interrupts = <9>;
429 interrupt-parent = <&i2c_ic>;
430 pinctrl-names = "default";
431 pinctrl-0 = <&pinctrl_i2c10_default>;
432 status = "disabled";
433 };
434
435 i2c10: i2c-bus@3c0 {
436 #address-cells = <1>;
437 #size-cells = <0>;
438 #interrupt-cells = <1>;
439
440 reg = <0x3c0 0x40>;
441 compatible = "aspeed,ast2400-i2c-bus";
442 clocks = <&clk_apb>;
443 bus-frequency = <100000>;
444 interrupts = <10>;
445 interrupt-parent = <&i2c_ic>;
446 pinctrl-names = "default";
447 pinctrl-0 = <&pinctrl_i2c11_default>;
448 status = "disabled";
449 };
450
451 i2c11: i2c-bus@400 {
452 #address-cells = <1>;
453 #size-cells = <0>;
454 #interrupt-cells = <1>;
455
456 reg = <0x400 0x40>;
457 compatible = "aspeed,ast2400-i2c-bus";
458 clocks = <&clk_apb>;
459 bus-frequency = <100000>;
460 interrupts = <11>;
461 interrupt-parent = <&i2c_ic>;
462 pinctrl-names = "default";
463 pinctrl-0 = <&pinctrl_i2c12_default>;
464 status = "disabled";
465 };
466
467 i2c12: i2c-bus@440 {
468 #address-cells = <1>;
469 #size-cells = <0>;
470 #interrupt-cells = <1>;
471
472 reg = <0x440 0x40>;
473 compatible = "aspeed,ast2400-i2c-bus";
474 clocks = <&clk_apb>;
475 bus-frequency = <100000>;
476 interrupts = <12>;
477 interrupt-parent = <&i2c_ic>;
478 pinctrl-names = "default";
479 pinctrl-0 = <&pinctrl_i2c13_default>;
480 status = "disabled";
481 };
482
483 i2c13: i2c-bus@480 {
484 #address-cells = <1>;
485 #size-cells = <0>;
486 #interrupt-cells = <1>;
487
488 reg = <0x480 0x40>;
489 compatible = "aspeed,ast2400-i2c-bus";
490 clocks = <&clk_apb>;
491 bus-frequency = <100000>;
492 interrupts = <13>;
493 interrupt-parent = <&i2c_ic>;
494 pinctrl-names = "default";
495 pinctrl-0 = <&pinctrl_i2c14_default>;
496 status = "disabled";
497 };
498};
499
500&pinctrl {
501 pinctrl_acpi_default: acpi_default {
502 function = "ACPI";
503 groups = "ACPI";
504 };
505
506 pinctrl_adc0_default: adc0_default {
507 function = "ADC0";
508 groups = "ADC0";
509 };
510
511 pinctrl_adc1_default: adc1_default {
512 function = "ADC1";
513 groups = "ADC1";
514 };
515
516 pinctrl_adc10_default: adc10_default {
517 function = "ADC10";
518 groups = "ADC10";
519 };
520
521 pinctrl_adc11_default: adc11_default {
522 function = "ADC11";
523 groups = "ADC11";
524 };
525
526 pinctrl_adc12_default: adc12_default {
527 function = "ADC12";
528 groups = "ADC12";
529 };
530
531 pinctrl_adc13_default: adc13_default {
532 function = "ADC13";
533 groups = "ADC13";
534 };
535
536 pinctrl_adc14_default: adc14_default {
537 function = "ADC14";
538 groups = "ADC14";
539 };
540
541 pinctrl_adc15_default: adc15_default {
542 function = "ADC15";
543 groups = "ADC15";
544 };
545
546 pinctrl_adc2_default: adc2_default {
547 function = "ADC2";
548 groups = "ADC2";
549 };
550
551 pinctrl_adc3_default: adc3_default {
552 function = "ADC3";
553 groups = "ADC3";
554 };
555
556 pinctrl_adc4_default: adc4_default {
557 function = "ADC4";
558 groups = "ADC4";
559 };
560
561 pinctrl_adc5_default: adc5_default {
562 function = "ADC5";
563 groups = "ADC5";
564 };
565
566 pinctrl_adc6_default: adc6_default {
567 function = "ADC6";
568 groups = "ADC6";
569 };
570
571 pinctrl_adc7_default: adc7_default {
572 function = "ADC7";
573 groups = "ADC7";
574 };
575
576 pinctrl_adc8_default: adc8_default {
577 function = "ADC8";
578 groups = "ADC8";
579 };
580
581 pinctrl_adc9_default: adc9_default {
582 function = "ADC9";
583 groups = "ADC9";
584 };
585
586 pinctrl_bmcint_default: bmcint_default {
587 function = "BMCINT";
588 groups = "BMCINT";
589 };
590
591 pinctrl_ddcclk_default: ddcclk_default {
592 function = "DDCCLK";
593 groups = "DDCCLK";
594 };
595
596 pinctrl_ddcdat_default: ddcdat_default {
597 function = "DDCDAT";
598 groups = "DDCDAT";
599 };
600
601 pinctrl_extrst_default: extrst_default {
602 function = "EXTRST";
603 groups = "EXTRST";
604 };
605
606 pinctrl_flack_default: flack_default {
607 function = "FLACK";
608 groups = "FLACK";
609 };
610
611 pinctrl_flbusy_default: flbusy_default {
612 function = "FLBUSY";
613 groups = "FLBUSY";
614 };
615
616 pinctrl_flwp_default: flwp_default {
617 function = "FLWP";
618 groups = "FLWP";
619 };
620
621 pinctrl_gpid_default: gpid_default {
622 function = "GPID";
623 groups = "GPID";
624 };
625
626 pinctrl_gpid0_default: gpid0_default {
627 function = "GPID0";
628 groups = "GPID0";
629 };
630
631 pinctrl_gpid2_default: gpid2_default {
632 function = "GPID2";
633 groups = "GPID2";
634 };
635
636 pinctrl_gpid4_default: gpid4_default {
637 function = "GPID4";
638 groups = "GPID4";
639 };
640
641 pinctrl_gpid6_default: gpid6_default {
642 function = "GPID6";
643 groups = "GPID6";
644 };
645
646 pinctrl_gpie0_default: gpie0_default {
647 function = "GPIE0";
648 groups = "GPIE0";
649 };
650
651 pinctrl_gpie2_default: gpie2_default {
652 function = "GPIE2";
653 groups = "GPIE2";
654 };
655
656 pinctrl_gpie4_default: gpie4_default {
657 function = "GPIE4";
658 groups = "GPIE4";
659 };
660
661 pinctrl_gpie6_default: gpie6_default {
662 function = "GPIE6";
663 groups = "GPIE6";
664 };
665
666 pinctrl_i2c10_default: i2c10_default {
667 function = "I2C10";
668 groups = "I2C10";
669 };
670
671 pinctrl_i2c11_default: i2c11_default {
672 function = "I2C11";
673 groups = "I2C11";
674 };
675
676 pinctrl_i2c12_default: i2c12_default {
677 function = "I2C12";
678 groups = "I2C12";
679 };
680
681 pinctrl_i2c13_default: i2c13_default {
682 function = "I2C13";
683 groups = "I2C13";
684 };
685
686 pinctrl_i2c14_default: i2c14_default {
687 function = "I2C14";
688 groups = "I2C14";
689 };
690
691 pinctrl_i2c3_default: i2c3_default {
692 function = "I2C3";
693 groups = "I2C3";
694 };
695
696 pinctrl_i2c4_default: i2c4_default {
697 function = "I2C4";
698 groups = "I2C4";
699 };
700
701 pinctrl_i2c5_default: i2c5_default {
702 function = "I2C5";
703 groups = "I2C5";
704 };
705
706 pinctrl_i2c6_default: i2c6_default {
707 function = "I2C6";
708 groups = "I2C6";
709 };
710
711 pinctrl_i2c7_default: i2c7_default {
712 function = "I2C7";
713 groups = "I2C7";
714 };
715
716 pinctrl_i2c8_default: i2c8_default {
717 function = "I2C8";
718 groups = "I2C8";
719 };
720
721 pinctrl_i2c9_default: i2c9_default {
722 function = "I2C9";
723 groups = "I2C9";
724 };
725
726 pinctrl_lpcpd_default: lpcpd_default {
727 function = "LPCPD";
728 groups = "LPCPD";
729 };
730
731 pinctrl_lpcpme_default: lpcpme_default {
732 function = "LPCPME";
733 groups = "LPCPME";
734 };
735
736 pinctrl_lpcrst_default: lpcrst_default {
737 function = "LPCRST";
738 groups = "LPCRST";
739 };
740
741 pinctrl_lpcsmi_default: lpcsmi_default {
742 function = "LPCSMI";
743 groups = "LPCSMI";
744 };
745
746 pinctrl_mac1link_default: mac1link_default {
747 function = "MAC1LINK";
748 groups = "MAC1LINK";
749 };
750
751 pinctrl_mac2link_default: mac2link_default {
752 function = "MAC2LINK";
753 groups = "MAC2LINK";
754 };
755
756 pinctrl_mdio1_default: mdio1_default {
757 function = "MDIO1";
758 groups = "MDIO1";
759 };
760
761 pinctrl_mdio2_default: mdio2_default {
762 function = "MDIO2";
763 groups = "MDIO2";
764 };
765
766 pinctrl_ncts1_default: ncts1_default {
767 function = "NCTS1";
768 groups = "NCTS1";
769 };
770
771 pinctrl_ncts2_default: ncts2_default {
772 function = "NCTS2";
773 groups = "NCTS2";
774 };
775
776 pinctrl_ncts3_default: ncts3_default {
777 function = "NCTS3";
778 groups = "NCTS3";
779 };
780
781 pinctrl_ncts4_default: ncts4_default {
782 function = "NCTS4";
783 groups = "NCTS4";
784 };
785
786 pinctrl_ndcd1_default: ndcd1_default {
787 function = "NDCD1";
788 groups = "NDCD1";
789 };
790
791 pinctrl_ndcd2_default: ndcd2_default {
792 function = "NDCD2";
793 groups = "NDCD2";
794 };
795
796 pinctrl_ndcd3_default: ndcd3_default {
797 function = "NDCD3";
798 groups = "NDCD3";
799 };
800
801 pinctrl_ndcd4_default: ndcd4_default {
802 function = "NDCD4";
803 groups = "NDCD4";
804 };
805
806 pinctrl_ndsr1_default: ndsr1_default {
807 function = "NDSR1";
808 groups = "NDSR1";
809 };
810
811 pinctrl_ndsr2_default: ndsr2_default {
812 function = "NDSR2";
813 groups = "NDSR2";
814 };
815
816 pinctrl_ndsr3_default: ndsr3_default {
817 function = "NDSR3";
818 groups = "NDSR3";
819 };
820
821 pinctrl_ndsr4_default: ndsr4_default {
822 function = "NDSR4";
823 groups = "NDSR4";
824 };
825
826 pinctrl_ndtr1_default: ndtr1_default {
827 function = "NDTR1";
828 groups = "NDTR1";
829 };
830
831 pinctrl_ndtr2_default: ndtr2_default {
832 function = "NDTR2";
833 groups = "NDTR2";
834 };
835
836 pinctrl_ndtr3_default: ndtr3_default {
837 function = "NDTR3";
838 groups = "NDTR3";
839 };
840
841 pinctrl_ndtr4_default: ndtr4_default {
842 function = "NDTR4";
843 groups = "NDTR4";
844 };
845
846 pinctrl_ndts4_default: ndts4_default {
847 function = "NDTS4";
848 groups = "NDTS4";
849 };
850
851 pinctrl_nri1_default: nri1_default {
852 function = "NRI1";
853 groups = "NRI1";
854 };
855
856 pinctrl_nri2_default: nri2_default {
857 function = "NRI2";
858 groups = "NRI2";
859 };
860
861 pinctrl_nri3_default: nri3_default {
862 function = "NRI3";
863 groups = "NRI3";
864 };
865
866 pinctrl_nri4_default: nri4_default {
867 function = "NRI4";
868 groups = "NRI4";
869 };
870
871 pinctrl_nrts1_default: nrts1_default {
872 function = "NRTS1";
873 groups = "NRTS1";
874 };
875
876 pinctrl_nrts2_default: nrts2_default {
877 function = "NRTS2";
878 groups = "NRTS2";
879 };
880
881 pinctrl_nrts3_default: nrts3_default {
882 function = "NRTS3";
883 groups = "NRTS3";
884 };
885
886 pinctrl_oscclk_default: oscclk_default {
887 function = "OSCCLK";
888 groups = "OSCCLK";
889 };
890
891 pinctrl_pwm0_default: pwm0_default {
892 function = "PWM0";
893 groups = "PWM0";
894 };
895
896 pinctrl_pwm1_default: pwm1_default {
897 function = "PWM1";
898 groups = "PWM1";
899 };
900
901 pinctrl_pwm2_default: pwm2_default {
902 function = "PWM2";
903 groups = "PWM2";
904 };
905
906 pinctrl_pwm3_default: pwm3_default {
907 function = "PWM3";
908 groups = "PWM3";
909 };
910
911 pinctrl_pwm4_default: pwm4_default {
912 function = "PWM4";
913 groups = "PWM4";
914 };
915
916 pinctrl_pwm5_default: pwm5_default {
917 function = "PWM5";
918 groups = "PWM5";
919 };
920
921 pinctrl_pwm6_default: pwm6_default {
922 function = "PWM6";
923 groups = "PWM6";
924 };
925
926 pinctrl_pwm7_default: pwm7_default {
927 function = "PWM7";
928 groups = "PWM7";
929 };
930
931 pinctrl_rgmii1_default: rgmii1_default {
932 function = "RGMII1";
933 groups = "RGMII1";
934 };
935
936 pinctrl_rgmii2_default: rgmii2_default {
937 function = "RGMII2";
938 groups = "RGMII2";
939 };
940
941 pinctrl_rmii1_default: rmii1_default {
942 function = "RMII1";
943 groups = "RMII1";
944 };
945
946 pinctrl_rmii2_default: rmii2_default {
947 function = "RMII2";
948 groups = "RMII2";
949 };
950
951 pinctrl_rom16_default: rom16_default {
952 function = "ROM16";
953 groups = "ROM16";
954 };
955
956 pinctrl_rom8_default: rom8_default {
957 function = "ROM8";
958 groups = "ROM8";
959 };
960
961 pinctrl_romcs1_default: romcs1_default {
962 function = "ROMCS1";
963 groups = "ROMCS1";
964 };
965
966 pinctrl_romcs2_default: romcs2_default {
967 function = "ROMCS2";
968 groups = "ROMCS2";
969 };
970
971 pinctrl_romcs3_default: romcs3_default {
972 function = "ROMCS3";
973 groups = "ROMCS3";
974 };
975
976 pinctrl_romcs4_default: romcs4_default {
977 function = "ROMCS4";
978 groups = "ROMCS4";
979 };
980
981 pinctrl_rxd1_default: rxd1_default {
982 function = "RXD1";
983 groups = "RXD1";
984 };
985
986 pinctrl_rxd2_default: rxd2_default {
987 function = "RXD2";
988 groups = "RXD2";
989 };
990
991 pinctrl_rxd3_default: rxd3_default {
992 function = "RXD3";
993 groups = "RXD3";
994 };
995
996 pinctrl_rxd4_default: rxd4_default {
997 function = "RXD4";
998 groups = "RXD4";
999 };
1000
1001 pinctrl_salt1_default: salt1_default {
1002 function = "SALT1";
1003 groups = "SALT1";
1004 };
1005
1006 pinctrl_salt2_default: salt2_default {
1007 function = "SALT2";
1008 groups = "SALT2";
1009 };
1010
1011 pinctrl_salt3_default: salt3_default {
1012 function = "SALT3";
1013 groups = "SALT3";
1014 };
1015
1016 pinctrl_salt4_default: salt4_default {
1017 function = "SALT4";
1018 groups = "SALT4";
1019 };
1020
1021 pinctrl_sd1_default: sd1_default {
1022 function = "SD1";
1023 groups = "SD1";
1024 };
1025
1026 pinctrl_sd2_default: sd2_default {
1027 function = "SD2";
1028 groups = "SD2";
1029 };
1030
1031 pinctrl_sgpmck_default: sgpmck_default {
1032 function = "SGPMCK";
1033 groups = "SGPMCK";
1034 };
1035
1036 pinctrl_sgpmi_default: sgpmi_default {
1037 function = "SGPMI";
1038 groups = "SGPMI";
1039 };
1040
1041 pinctrl_sgpmld_default: sgpmld_default {
1042 function = "SGPMLD";
1043 groups = "SGPMLD";
1044 };
1045
1046 pinctrl_sgpmo_default: sgpmo_default {
1047 function = "SGPMO";
1048 groups = "SGPMO";
1049 };
1050
1051 pinctrl_sgpsck_default: sgpsck_default {
1052 function = "SGPSCK";
1053 groups = "SGPSCK";
1054 };
1055
1056 pinctrl_sgpsi0_default: sgpsi0_default {
1057 function = "SGPSI0";
1058 groups = "SGPSI0";
1059 };
1060
1061 pinctrl_sgpsi1_default: sgpsi1_default {
1062 function = "SGPSI1";
1063 groups = "SGPSI1";
1064 };
1065
1066 pinctrl_sgpsld_default: sgpsld_default {
1067 function = "SGPSLD";
1068 groups = "SGPSLD";
1069 };
1070
1071 pinctrl_sioonctrl_default: sioonctrl_default {
1072 function = "SIOONCTRL";
1073 groups = "SIOONCTRL";
1074 };
1075
1076 pinctrl_siopbi_default: siopbi_default {
1077 function = "SIOPBI";
1078 groups = "SIOPBI";
1079 };
1080
1081 pinctrl_siopbo_default: siopbo_default {
1082 function = "SIOPBO";
1083 groups = "SIOPBO";
1084 };
1085
1086 pinctrl_siopwreq_default: siopwreq_default {
1087 function = "SIOPWREQ";
1088 groups = "SIOPWREQ";
1089 };
1090
1091 pinctrl_siopwrgd_default: siopwrgd_default {
1092 function = "SIOPWRGD";
1093 groups = "SIOPWRGD";
1094 };
1095
1096 pinctrl_sios3_default: sios3_default {
1097 function = "SIOS3";
1098 groups = "SIOS3";
1099 };
1100
1101 pinctrl_sios5_default: sios5_default {
1102 function = "SIOS5";
1103 groups = "SIOS5";
1104 };
1105
1106 pinctrl_siosci_default: siosci_default {
1107 function = "SIOSCI";
1108 groups = "SIOSCI";
1109 };
1110
1111 pinctrl_spi1_default: spi1_default {
1112 function = "SPI1";
1113 groups = "SPI1";
1114 };
1115
1116 pinctrl_spi1debug_default: spi1debug_default {
1117 function = "SPI1DEBUG";
1118 groups = "SPI1DEBUG";
1119 };
1120
1121 pinctrl_spi1passthru_default: spi1passthru_default {
1122 function = "SPI1PASSTHRU";
1123 groups = "SPI1PASSTHRU";
1124 };
1125
1126 pinctrl_spics1_default: spics1_default {
1127 function = "SPICS1";
1128 groups = "SPICS1";
1129 };
1130
1131 pinctrl_timer3_default: timer3_default {
1132 function = "TIMER3";
1133 groups = "TIMER3";
1134 };
1135
1136 pinctrl_timer4_default: timer4_default {
1137 function = "TIMER4";
1138 groups = "TIMER4";
1139 };
1140
1141 pinctrl_timer5_default: timer5_default {
1142 function = "TIMER5";
1143 groups = "TIMER5";
1144 };
1145
1146 pinctrl_timer6_default: timer6_default {
1147 function = "TIMER6";
1148 groups = "TIMER6";
1149 };
1150
1151 pinctrl_timer7_default: timer7_default {
1152 function = "TIMER7";
1153 groups = "TIMER7";
1154 };
1155
1156 pinctrl_timer8_default: timer8_default {
1157 function = "TIMER8";
1158 groups = "TIMER8";
1159 };
1160
1161 pinctrl_txd1_default: txd1_default {
1162 function = "TXD1";
1163 groups = "TXD1";
1164 };
1165
1166 pinctrl_txd2_default: txd2_default {
1167 function = "TXD2";
1168 groups = "TXD2";
1169 };
1170
1171 pinctrl_txd3_default: txd3_default {
1172 function = "TXD3";
1173 groups = "TXD3";
1174 };
1175
1176 pinctrl_txd4_default: txd4_default {
1177 function = "TXD4";
1178 groups = "TXD4";
1179 };
1180
1181 pinctrl_uart6_default: uart6_default {
1182 function = "UART6";
1183 groups = "UART6";
1184 };
1185
1186 pinctrl_usbcki_default: usbcki_default {
1187 function = "USBCKI";
1188 groups = "USBCKI";
1189 };
1190
1191 pinctrl_vgabios_rom_default: vgabios_rom_default {
1192 function = "VGABIOS_ROM";
1193 groups = "VGABIOS_ROM";
1194 };
1195
1196 pinctrl_vgahs_default: vgahs_default {
1197 function = "VGAHS";
1198 groups = "VGAHS";
1199 };
1200
1201 pinctrl_vgavs_default: vgavs_default {
1202 function = "VGAVS";
1203 groups = "VGAVS";
1204 };
1205
1206 pinctrl_vpi18_default: vpi18_default {
1207 function = "VPI18";
1208 groups = "VPI18";
1209 };
1210
1211 pinctrl_vpi24_default: vpi24_default {
1212 function = "VPI24";
1213 groups = "VPI24";
1214 };
1215
1216 pinctrl_vpi30_default: vpi30_default {
1217 function = "VPI30";
1218 groups = "VPI30";
1219 };
1220
1221 pinctrl_vpo12_default: vpo12_default {
1222 function = "VPO12";
1223 groups = "VPO12";
1224 };
1225
1226 pinctrl_vpo24_default: vpo24_default {
1227 function = "VPO24";
1228 groups = "VPO24";
1229 };
1230
1231 pinctrl_wdtrst1_default: wdtrst1_default {
1232 function = "WDTRST1";
1233 groups = "WDTRST1";
1234 };
1235
1236 pinctrl_wdtrst2_default: wdtrst2_default {
1237 function = "WDTRST2";
1238 groups = "WDTRST2";
1239 };
1240};
diff --git a/arch/arm/boot/dts/aspeed-g5.dtsi b/arch/arm/boot/dts/aspeed-g5.dtsi
index eab8f549a6fe..5c4ecdba3a6b 100644
--- a/arch/arm/boot/dts/aspeed-g5.dtsi
+++ b/arch/arm/boot/dts/aspeed-g5.dtsi
@@ -8,6 +8,29 @@
8 #size-cells = <1>; 8 #size-cells = <1>;
9 interrupt-parent = <&vic>; 9 interrupt-parent = <&vic>;
10 10
11 aliases {
12 i2c0 = &i2c0;
13 i2c1 = &i2c1;
14 i2c2 = &i2c2;
15 i2c3 = &i2c3;
16 i2c4 = &i2c4;
17 i2c5 = &i2c5;
18 i2c6 = &i2c6;
19 i2c7 = &i2c7;
20 i2c8 = &i2c8;
21 i2c9 = &i2c9;
22 i2c10 = &i2c10;
23 i2c11 = &i2c11;
24 i2c12 = &i2c12;
25 i2c13 = &i2c13;
26 serial0 = &uart1;
27 serial1 = &uart2;
28 serial2 = &uart3;
29 serial3 = &uart4;
30 serial4 = &uart5;
31 serial5 = &vuart;
32 };
33
11 cpus { 34 cpus {
12 #address-cells = <1>; 35 #address-cells = <1>;
13 #size-cells = <0>; 36 #size-cells = <0>;
@@ -145,7 +168,7 @@
145 clock-frequency = <198000000>; 168 clock-frequency = <198000000>;
146 }; 169 };
147 170
148 clk_apb: clk_apb@08 { 171 clk_apb: clk_apb@8 {
149 #clock-cells = <0>; 172 #clock-cells = <0>;
150 compatible = "aspeed,g5-apb-clock", "fixed-clock"; 173 compatible = "aspeed,g5-apb-clock", "fixed-clock";
151 reg = <0x08>; 174 reg = <0x08>;
@@ -164,962 +187,1199 @@
164 compatible = "aspeed,g5-pinctrl"; 187 compatible = "aspeed,g5-pinctrl";
165 aspeed,external-nodes = <&gfx &lhc>; 188 aspeed,external-nodes = <&gfx &lhc>;
166 189
167 pinctrl_acpi_default: acpi_default { 190 };
168 function = "ACPI";
169 groups = "ACPI";
170 };
171 191
172 pinctrl_adc0_default: adc0_default { 192 };
173 function = "ADC0";
174 groups = "ADC0";
175 };
176 193
177 pinctrl_adc1_default: adc1_default { 194 gfx: display@1e6e6000 {
178 function = "ADC1"; 195 compatible = "aspeed,ast2500-gfx", "syscon";
179 groups = "ADC1"; 196 reg = <0x1e6e6000 0x1000>;
180 }; 197 reg-io-width = <4>;
198 };
181 199
182 pinctrl_adc10_default: adc10_default { 200 adc: adc@1e6e9000 {
183 function = "ADC10"; 201 compatible = "aspeed,ast2500-adc";
184 groups = "ADC10"; 202 reg = <0x1e6e9000 0xb0>;
185 }; 203 clocks = <&clk_apb>;
204 #io-channel-cells = <1>;
205 status = "disabled";
206 };
186 207
187 pinctrl_adc11_default: adc11_default { 208 sram@1e720000 {
188 function = "ADC11"; 209 compatible = "mmio-sram";
189 groups = "ADC11"; 210 reg = <0x1e720000 0x9000>; // 36K
190 }; 211 };
191 212
192 pinctrl_adc12_default: adc12_default { 213 gpio: gpio@1e780000 {
193 function = "ADC12"; 214 #gpio-cells = <2>;
194 groups = "ADC12"; 215 gpio-controller;
195 }; 216 compatible = "aspeed,ast2500-gpio";
217 reg = <0x1e780000 0x1000>;
218 interrupts = <20>;
219 gpio-ranges = <&pinctrl 0 0 220>;
220 interrupt-controller;
221 };
196 222
197 pinctrl_adc13_default: adc13_default { 223 timer: timer@1e782000 {
198 function = "ADC13"; 224 /* This timer is a Faraday FTTMR010 derivative */
199 groups = "ADC13"; 225 compatible = "aspeed,ast2400-timer";
200 }; 226 reg = <0x1e782000 0x90>;
227 interrupts = <16 17 18 35 36 37 38 39>;
228 clocks = <&clk_apb>;
229 clock-names = "PCLK";
230 };
201 231
202 pinctrl_adc14_default: adc14_default { 232 uart1: serial@1e783000 {
203 function = "ADC14"; 233 compatible = "ns16550a";
204 groups = "ADC14"; 234 reg = <0x1e783000 0x20>;
205 }; 235 reg-shift = <2>;
236 interrupts = <9>;
237 clocks = <&clk_uart>;
238 no-loopback-test;
239 status = "disabled";
240 };
206 241
207 pinctrl_adc15_default: adc15_default { 242 uart5: serial@1e784000 {
208 function = "ADC15"; 243 compatible = "ns16550a";
209 groups = "ADC15"; 244 reg = <0x1e784000 0x20>;
210 }; 245 reg-shift = <2>;
246 interrupts = <10>;
247 clocks = <&clk_uart>;
248 no-loopback-test;
249 status = "disabled";
250 };
211 251
212 pinctrl_adc2_default: adc2_default { 252 wdt1: watchdog@1e785000 {
213 function = "ADC2"; 253 compatible = "aspeed,ast2500-wdt";
214 groups = "ADC2"; 254 reg = <0x1e785000 0x20>;
215 }; 255 };
216 256
217 pinctrl_adc3_default: adc3_default { 257 wdt2: watchdog@1e785020 {
218 function = "ADC3"; 258 compatible = "aspeed,ast2500-wdt";
219 groups = "ADC3"; 259 reg = <0x1e785020 0x20>;
220 }; 260 };
221 261
222 pinctrl_adc4_default: adc4_default { 262 wdt3: watchdog@1e785040 {
223 function = "ADC4"; 263 compatible = "aspeed,ast2500-wdt";
224 groups = "ADC4"; 264 reg = <0x1e785040 0x20>;
225 }; 265 status = "disabled";
266 };
226 267
227 pinctrl_adc5_default: adc5_default { 268 lpc: lpc@1e789000 {
228 function = "ADC5"; 269 compatible = "aspeed,ast2500-lpc", "simple-mfd";
229 groups = "ADC5"; 270 reg = <0x1e789000 0x1000>;
230 };
231 271
232 pinctrl_adc6_default: adc6_default { 272 #address-cells = <1>;
233 function = "ADC6"; 273 #size-cells = <1>;
234 groups = "ADC6"; 274 ranges = <0 0x1e789000 0x1000>;
235 };
236 275
237 pinctrl_adc7_default: adc7_default { 276 lpc_bmc: lpc-bmc@0 {
238 function = "ADC7"; 277 compatible = "aspeed,ast2500-lpc-bmc";
239 groups = "ADC7"; 278 reg = <0x0 0x80>;
240 }; 279 };
241 280
242 pinctrl_adc8_default: adc8_default { 281 lpc_host: lpc-host@80 {
243 function = "ADC8"; 282 compatible = "aspeed,ast2500-lpc-host", "simple-mfd", "syscon";
244 groups = "ADC8"; 283 reg = <0x80 0x1e0>;
245 };
246 284
247 pinctrl_adc9_default: adc9_default { 285 #address-cells = <1>;
248 function = "ADC9"; 286 #size-cells = <1>;
249 groups = "ADC9"; 287 ranges = <0 0x80 0x1e0>;
250 };
251 288
252 pinctrl_bmcint_default: bmcint_default { 289 reg-io-width = <4>;
253 function = "BMCINT";
254 groups = "BMCINT";
255 };
256 290
257 pinctrl_ddcclk_default: ddcclk_default { 291 lhc: lhc@20 {
258 function = "DDCCLK"; 292 compatible = "aspeed,ast2500-lhc";
259 groups = "DDCCLK"; 293 reg = <0x20 0x24 0x48 0x8>;
260 }; 294 };
295 };
296 };
261 297
262 pinctrl_ddcdat_default: ddcdat_default { 298 vuart: serial@1e787000 {
263 function = "DDCDAT"; 299 compatible = "aspeed,ast2500-vuart";
264 groups = "DDCDAT"; 300 reg = <0x1e787000 0x40>;
265 }; 301 reg-shift = <2>;
302 interrupts = <10>;
303 clocks = <&clk_uart>;
304 no-loopback-test;
305 status = "disabled";
306 };
266 307
267 pinctrl_espi_default: espi_default { 308 uart2: serial@1e78d000 {
268 function = "ESPI"; 309 compatible = "ns16550a";
269 groups = "ESPI"; 310 reg = <0x1e78d000 0x20>;
270 }; 311 reg-shift = <2>;
312 interrupts = <32>;
313 clocks = <&clk_uart>;
314 no-loopback-test;
315 status = "disabled";
316 };
271 317
272 pinctrl_fwspics1_default: fwspics1_default { 318 uart3: serial@1e78e000 {
273 function = "FWSPICS1"; 319 compatible = "ns16550a";
274 groups = "FWSPICS1"; 320 reg = <0x1e78e000 0x20>;
275 }; 321 reg-shift = <2>;
322 interrupts = <33>;
323 clocks = <&clk_uart>;
324 no-loopback-test;
325 status = "disabled";
326 };
276 327
277 pinctrl_fwspics2_default: fwspics2_default { 328 uart4: serial@1e78f000 {
278 function = "FWSPICS2"; 329 compatible = "ns16550a";
279 groups = "FWSPICS2"; 330 reg = <0x1e78f000 0x20>;
280 }; 331 reg-shift = <2>;
332 interrupts = <34>;
333 clocks = <&clk_uart>;
334 no-loopback-test;
335 status = "disabled";
336 };
281 337
282 pinctrl_gpid0_default: gpid0_default { 338 i2c: i2c@1e78a000 {
283 function = "GPID0"; 339 compatible = "simple-bus";
284 groups = "GPID0"; 340 #address-cells = <1>;
285 }; 341 #size-cells = <1>;
342 ranges = <0 0x1e78a000 0x1000>;
343 };
344 };
345 };
346};
286 347
287 pinctrl_gpid2_default: gpid2_default { 348&i2c {
288 function = "GPID2"; 349 i2c_ic: interrupt-controller@0 {
289 groups = "GPID2"; 350 #interrupt-cells = <1>;
290 }; 351 compatible = "aspeed,ast2500-i2c-ic";
352 reg = <0x0 0x40>;
353 interrupts = <12>;
354 interrupt-controller;
355 };
291 356
292 pinctrl_gpid4_default: gpid4_default { 357 i2c0: i2c-bus@40 {
293 function = "GPID4"; 358 #address-cells = <1>;
294 groups = "GPID4"; 359 #size-cells = <0>;
295 }; 360 #interrupt-cells = <1>;
361
362 reg = <0x40 0x40>;
363 compatible = "aspeed,ast2500-i2c-bus";
364 clocks = <&clk_apb>;
365 bus-frequency = <100000>;
366 interrupts = <0>;
367 interrupt-parent = <&i2c_ic>;
368 status = "disabled";
369 /* Does not need pinctrl properties */
370 };
296 371
297 pinctrl_gpid6_default: gpid6_default { 372 i2c1: i2c-bus@80 {
298 function = "GPID6"; 373 #address-cells = <1>;
299 groups = "GPID6"; 374 #size-cells = <0>;
300 }; 375 #interrupt-cells = <1>;
376
377 reg = <0x80 0x40>;
378 compatible = "aspeed,ast2500-i2c-bus";
379 clocks = <&clk_apb>;
380 bus-frequency = <100000>;
381 interrupts = <1>;
382 interrupt-parent = <&i2c_ic>;
383 status = "disabled";
384 /* Does not need pinctrl properties */
385 };
301 386
302 pinctrl_gpie0_default: gpie0_default { 387 i2c2: i2c-bus@c0 {
303 function = "GPIE0"; 388 #address-cells = <1>;
304 groups = "GPIE0"; 389 #size-cells = <0>;
305 }; 390 #interrupt-cells = <1>;
391
392 reg = <0xc0 0x40>;
393 compatible = "aspeed,ast2500-i2c-bus";
394 clocks = <&clk_apb>;
395 bus-frequency = <100000>;
396 interrupts = <2>;
397 interrupt-parent = <&i2c_ic>;
398 pinctrl-names = "default";
399 pinctrl-0 = <&pinctrl_i2c3_default>;
400 status = "disabled";
401 };
306 402
307 pinctrl_gpie2_default: gpie2_default { 403 i2c3: i2c-bus@100 {
308 function = "GPIE2"; 404 #address-cells = <1>;
309 groups = "GPIE2"; 405 #size-cells = <0>;
310 }; 406 #interrupt-cells = <1>;
407
408 reg = <0x100 0x40>;
409 compatible = "aspeed,ast2500-i2c-bus";
410 clocks = <&clk_apb>;
411 bus-frequency = <100000>;
412 interrupts = <3>;
413 interrupt-parent = <&i2c_ic>;
414 pinctrl-names = "default";
415 pinctrl-0 = <&pinctrl_i2c4_default>;
416 status = "disabled";
417 };
311 418
312 pinctrl_gpie4_default: gpie4_default { 419 i2c4: i2c-bus@140 {
313 function = "GPIE4"; 420 #address-cells = <1>;
314 groups = "GPIE4"; 421 #size-cells = <0>;
315 }; 422 #interrupt-cells = <1>;
423
424 reg = <0x140 0x40>;
425 compatible = "aspeed,ast2500-i2c-bus";
426 clocks = <&clk_apb>;
427 bus-frequency = <100000>;
428 interrupts = <4>;
429 interrupt-parent = <&i2c_ic>;
430 pinctrl-names = "default";
431 pinctrl-0 = <&pinctrl_i2c5_default>;
432 status = "disabled";
433 };
316 434
317 pinctrl_gpie6_default: gpie6_default { 435 i2c5: i2c-bus@180 {
318 function = "GPIE6"; 436 #address-cells = <1>;
319 groups = "GPIE6"; 437 #size-cells = <0>;
320 }; 438 #interrupt-cells = <1>;
439
440 reg = <0x180 0x40>;
441 compatible = "aspeed,ast2500-i2c-bus";
442 clocks = <&clk_apb>;
443 bus-frequency = <100000>;
444 interrupts = <5>;
445 interrupt-parent = <&i2c_ic>;
446 pinctrl-names = "default";
447 pinctrl-0 = <&pinctrl_i2c6_default>;
448 status = "disabled";
449 };
321 450
322 pinctrl_i2c10_default: i2c10_default { 451 i2c6: i2c-bus@1c0 {
323 function = "I2C10"; 452 #address-cells = <1>;
324 groups = "I2C10"; 453 #size-cells = <0>;
325 }; 454 #interrupt-cells = <1>;
455
456 reg = <0x1c0 0x40>;
457 compatible = "aspeed,ast2500-i2c-bus";
458 clocks = <&clk_apb>;
459 bus-frequency = <100000>;
460 interrupts = <6>;
461 interrupt-parent = <&i2c_ic>;
462 pinctrl-names = "default";
463 pinctrl-0 = <&pinctrl_i2c7_default>;
464 status = "disabled";
465 };
326 466
327 pinctrl_i2c11_default: i2c11_default { 467 i2c7: i2c-bus@300 {
328 function = "I2C11"; 468 #address-cells = <1>;
329 groups = "I2C11"; 469 #size-cells = <0>;
330 }; 470 #interrupt-cells = <1>;
471
472 reg = <0x300 0x40>;
473 compatible = "aspeed,ast2500-i2c-bus";
474 clocks = <&clk_apb>;
475 bus-frequency = <100000>;
476 interrupts = <7>;
477 interrupt-parent = <&i2c_ic>;
478 pinctrl-names = "default";
479 pinctrl-0 = <&pinctrl_i2c8_default>;
480 status = "disabled";
481 };
331 482
332 pinctrl_i2c12_default: i2c12_default { 483 i2c8: i2c-bus@340 {
333 function = "I2C12"; 484 #address-cells = <1>;
334 groups = "I2C12"; 485 #size-cells = <0>;
335 }; 486 #interrupt-cells = <1>;
487
488 reg = <0x340 0x40>;
489 compatible = "aspeed,ast2500-i2c-bus";
490 clocks = <&clk_apb>;
491 bus-frequency = <100000>;
492 interrupts = <8>;
493 interrupt-parent = <&i2c_ic>;
494 pinctrl-names = "default";
495 pinctrl-0 = <&pinctrl_i2c9_default>;
496 status = "disabled";
497 };
336 498
337 pinctrl_i2c13_default: i2c13_default { 499 i2c9: i2c-bus@380 {
338 function = "I2C13"; 500 #address-cells = <1>;
339 groups = "I2C13"; 501 #size-cells = <0>;
340 }; 502 #interrupt-cells = <1>;
503
504 reg = <0x380 0x40>;
505 compatible = "aspeed,ast2500-i2c-bus";
506 clocks = <&clk_apb>;
507 bus-frequency = <100000>;
508 interrupts = <9>;
509 interrupt-parent = <&i2c_ic>;
510 pinctrl-names = "default";
511 pinctrl-0 = <&pinctrl_i2c10_default>;
512 status = "disabled";
513 };
341 514
342 pinctrl_i2c14_default: i2c14_default { 515 i2c10: i2c-bus@3c0 {
343 function = "I2C14"; 516 #address-cells = <1>;
344 groups = "I2C14"; 517 #size-cells = <0>;
345 }; 518 #interrupt-cells = <1>;
519
520 reg = <0x3c0 0x40>;
521 compatible = "aspeed,ast2500-i2c-bus";
522 clocks = <&clk_apb>;
523 bus-frequency = <100000>;
524 interrupts = <10>;
525 interrupt-parent = <&i2c_ic>;
526 pinctrl-names = "default";
527 pinctrl-0 = <&pinctrl_i2c11_default>;
528 status = "disabled";
529 };
346 530
347 pinctrl_i2c3_default: i2c3_default { 531 i2c11: i2c-bus@400 {
348 function = "I2C3"; 532 #address-cells = <1>;
349 groups = "I2C3"; 533 #size-cells = <0>;
350 }; 534 #interrupt-cells = <1>;
535
536 reg = <0x400 0x40>;
537 compatible = "aspeed,ast2500-i2c-bus";
538 clocks = <&clk_apb>;
539 bus-frequency = <100000>;
540 interrupts = <11>;
541 interrupt-parent = <&i2c_ic>;
542 pinctrl-names = "default";
543 pinctrl-0 = <&pinctrl_i2c12_default>;
544 status = "disabled";
545 };
351 546
352 pinctrl_i2c4_default: i2c4_default { 547 i2c12: i2c-bus@440 {
353 function = "I2C4"; 548 #address-cells = <1>;
354 groups = "I2C4"; 549 #size-cells = <0>;
355 }; 550 #interrupt-cells = <1>;
551
552 reg = <0x440 0x40>;
553 compatible = "aspeed,ast2500-i2c-bus";
554 clocks = <&clk_apb>;
555 bus-frequency = <100000>;
556 interrupts = <12>;
557 interrupt-parent = <&i2c_ic>;
558 pinctrl-names = "default";
559 pinctrl-0 = <&pinctrl_i2c13_default>;
560 status = "disabled";
561 };
356 562
357 pinctrl_i2c5_default: i2c5_default { 563 i2c13: i2c-bus@480 {
358 function = "I2C5"; 564 #address-cells = <1>;
359 groups = "I2C5"; 565 #size-cells = <0>;
360 }; 566 #interrupt-cells = <1>;
567
568 reg = <0x480 0x40>;
569 compatible = "aspeed,ast2500-i2c-bus";
570 clocks = <&clk_apb>;
571 bus-frequency = <100000>;
572 interrupts = <13>;
573 interrupt-parent = <&i2c_ic>;
574 pinctrl-names = "default";
575 pinctrl-0 = <&pinctrl_i2c14_default>;
576 status = "disabled";
577 };
578};
361 579
362 pinctrl_i2c6_default: i2c6_default { 580&pinctrl {
363 function = "I2C6"; 581 pinctrl_acpi_default: acpi_default {
364 groups = "I2C6"; 582 function = "ACPI";
365 }; 583 groups = "ACPI";
584 };
366 585
367 pinctrl_i2c7_default: i2c7_default { 586 pinctrl_adc0_default: adc0_default {
368 function = "I2C7"; 587 function = "ADC0";
369 groups = "I2C7"; 588 groups = "ADC0";
370 }; 589 };
371 590
372 pinctrl_i2c8_default: i2c8_default { 591 pinctrl_adc1_default: adc1_default {
373 function = "I2C8"; 592 function = "ADC1";
374 groups = "I2C8"; 593 groups = "ADC1";
375 }; 594 };
376 595
377 pinctrl_i2c9_default: i2c9_default { 596 pinctrl_adc10_default: adc10_default {
378 function = "I2C9"; 597 function = "ADC10";
379 groups = "I2C9"; 598 groups = "ADC10";
380 }; 599 };
381 600
382 pinctrl_lad0_default: lad0_default { 601 pinctrl_adc11_default: adc11_default {
383 function = "LAD0"; 602 function = "ADC11";
384 groups = "LAD0"; 603 groups = "ADC11";
385 }; 604 };
386 pinctrl_lad1_default: lad1_default {
387 function = "LAD1";
388 groups = "LAD1";
389 };
390 605
391 pinctrl_lad2_default: lad2_default { 606 pinctrl_adc12_default: adc12_default {
392 function = "LAD2"; 607 function = "ADC12";
393 groups = "LAD2"; 608 groups = "ADC12";
394 }; 609 };
395 610
396 pinctrl_lad3_default: lad3_default { 611 pinctrl_adc13_default: adc13_default {
397 function = "LAD3"; 612 function = "ADC13";
398 groups = "LAD3"; 613 groups = "ADC13";
399 }; 614 };
400 615
401 pinctrl_lclk_default: lclk_default { 616 pinctrl_adc14_default: adc14_default {
402 function = "LCLK"; 617 function = "ADC14";
403 groups = "LCLK"; 618 groups = "ADC14";
404 }; 619 };
405 620
406 pinctrl_lframe_default: lframe_default { 621 pinctrl_adc15_default: adc15_default {
407 function = "LFRAME"; 622 function = "ADC15";
408 groups = "LFRAME"; 623 groups = "ADC15";
409 }; 624 };
410 625
411 pinctrl_lpchc_default: lpchc_default { 626 pinctrl_adc2_default: adc2_default {
412 function = "LPCHC"; 627 function = "ADC2";
413 groups = "LPCHC"; 628 groups = "ADC2";
414 }; 629 };
415 630
416 pinctrl_lpcpd_default: lpcpd_default { 631 pinctrl_adc3_default: adc3_default {
417 function = "LPCPD"; 632 function = "ADC3";
418 groups = "LPCPD"; 633 groups = "ADC3";
419 }; 634 };
420 635
421 pinctrl_lpcplus_default: lpcplus_default { 636 pinctrl_adc4_default: adc4_default {
422 function = "LPCPLUS"; 637 function = "ADC4";
423 groups = "LPCPLUS"; 638 groups = "ADC4";
424 }; 639 };
425 640
426 pinctrl_lpcpme_default: lpcpme_default { 641 pinctrl_adc5_default: adc5_default {
427 function = "LPCPME"; 642 function = "ADC5";
428 groups = "LPCPME"; 643 groups = "ADC5";
429 }; 644 };
430 645
431 pinctrl_lpcrst_default: lpcrst_default { 646 pinctrl_adc6_default: adc6_default {
432 function = "LPCRST"; 647 function = "ADC6";
433 groups = "LPCRST"; 648 groups = "ADC6";
434 }; 649 };
435 650
436 pinctrl_lpcsmi_default: lpcsmi_default { 651 pinctrl_adc7_default: adc7_default {
437 function = "LPCSMI"; 652 function = "ADC7";
438 groups = "LPCSMI"; 653 groups = "ADC7";
439 }; 654 };
440 655
441 pinctrl_lsirq_default: lsirq_default { 656 pinctrl_adc8_default: adc8_default {
442 function = "LSIRQ"; 657 function = "ADC8";
443 groups = "LSIRQ"; 658 groups = "ADC8";
444 }; 659 };
445 660
446 pinctrl_mac1link_default: mac1link_default { 661 pinctrl_adc9_default: adc9_default {
447 function = "MAC1LINK"; 662 function = "ADC9";
448 groups = "MAC1LINK"; 663 groups = "ADC9";
449 }; 664 };
450 665
451 pinctrl_mac2link_default: mac2link_default { 666 pinctrl_bmcint_default: bmcint_default {
452 function = "MAC2LINK"; 667 function = "BMCINT";
453 groups = "MAC2LINK"; 668 groups = "BMCINT";
454 }; 669 };
455 670
456 pinctrl_mdio1_default: mdio1_default { 671 pinctrl_ddcclk_default: ddcclk_default {
457 function = "MDIO1"; 672 function = "DDCCLK";
458 groups = "MDIO1"; 673 groups = "DDCCLK";
459 }; 674 };
460 675
461 pinctrl_mdio2_default: mdio2_default { 676 pinctrl_ddcdat_default: ddcdat_default {
462 function = "MDIO2"; 677 function = "DDCDAT";
463 groups = "MDIO2"; 678 groups = "DDCDAT";
464 }; 679 };
465 680
466 pinctrl_ncts1_default: ncts1_default { 681 pinctrl_espi_default: espi_default {
467 function = "NCTS1"; 682 function = "ESPI";
468 groups = "NCTS1"; 683 groups = "ESPI";
469 }; 684 };
470 685
471 pinctrl_ncts2_default: ncts2_default { 686 pinctrl_fwspics1_default: fwspics1_default {
472 function = "NCTS2"; 687 function = "FWSPICS1";
473 groups = "NCTS2"; 688 groups = "FWSPICS1";
474 }; 689 };
475 690
476 pinctrl_ncts3_default: ncts3_default { 691 pinctrl_fwspics2_default: fwspics2_default {
477 function = "NCTS3"; 692 function = "FWSPICS2";
478 groups = "NCTS3"; 693 groups = "FWSPICS2";
479 }; 694 };
480 695
481 pinctrl_ncts4_default: ncts4_default { 696 pinctrl_gpid0_default: gpid0_default {
482 function = "NCTS4"; 697 function = "GPID0";
483 groups = "NCTS4"; 698 groups = "GPID0";
484 }; 699 };
485 700
486 pinctrl_ndcd1_default: ndcd1_default { 701 pinctrl_gpid2_default: gpid2_default {
487 function = "NDCD1"; 702 function = "GPID2";
488 groups = "NDCD1"; 703 groups = "GPID2";
489 }; 704 };
490 705
491 pinctrl_ndcd2_default: ndcd2_default { 706 pinctrl_gpid4_default: gpid4_default {
492 function = "NDCD2"; 707 function = "GPID4";
493 groups = "NDCD2"; 708 groups = "GPID4";
494 }; 709 };
495 710
496 pinctrl_ndcd3_default: ndcd3_default { 711 pinctrl_gpid6_default: gpid6_default {
497 function = "NDCD3"; 712 function = "GPID6";
498 groups = "NDCD3"; 713 groups = "GPID6";
499 }; 714 };
500 715
501 pinctrl_ndcd4_default: ndcd4_default { 716 pinctrl_gpie0_default: gpie0_default {
502 function = "NDCD4"; 717 function = "GPIE0";
503 groups = "NDCD4"; 718 groups = "GPIE0";
504 }; 719 };
505 720
506 pinctrl_ndsr1_default: ndsr1_default { 721 pinctrl_gpie2_default: gpie2_default {
507 function = "NDSR1"; 722 function = "GPIE2";
508 groups = "NDSR1"; 723 groups = "GPIE2";
509 }; 724 };
510 725
511 pinctrl_ndsr2_default: ndsr2_default { 726 pinctrl_gpie4_default: gpie4_default {
512 function = "NDSR2"; 727 function = "GPIE4";
513 groups = "NDSR2"; 728 groups = "GPIE4";
514 }; 729 };
515 730
516 pinctrl_ndsr3_default: ndsr3_default { 731 pinctrl_gpie6_default: gpie6_default {
517 function = "NDSR3"; 732 function = "GPIE6";
518 groups = "NDSR3"; 733 groups = "GPIE6";
519 }; 734 };
520 735
521 pinctrl_ndsr4_default: ndsr4_default { 736 pinctrl_i2c10_default: i2c10_default {
522 function = "NDSR4"; 737 function = "I2C10";
523 groups = "NDSR4"; 738 groups = "I2C10";
524 }; 739 };
525 740
526 pinctrl_ndtr1_default: ndtr1_default { 741 pinctrl_i2c11_default: i2c11_default {
527 function = "NDTR1"; 742 function = "I2C11";
528 groups = "NDTR1"; 743 groups = "I2C11";
529 }; 744 };
530 745
531 pinctrl_ndtr2_default: ndtr2_default { 746 pinctrl_i2c12_default: i2c12_default {
532 function = "NDTR2"; 747 function = "I2C12";
533 groups = "NDTR2"; 748 groups = "I2C12";
534 }; 749 };
535 750
536 pinctrl_ndtr3_default: ndtr3_default { 751 pinctrl_i2c13_default: i2c13_default {
537 function = "NDTR3"; 752 function = "I2C13";
538 groups = "NDTR3"; 753 groups = "I2C13";
539 }; 754 };
540 755
541 pinctrl_ndtr4_default: ndtr4_default { 756 pinctrl_i2c14_default: i2c14_default {
542 function = "NDTR4"; 757 function = "I2C14";
543 groups = "NDTR4"; 758 groups = "I2C14";
544 }; 759 };
545 760
546 pinctrl_nri1_default: nri1_default { 761 pinctrl_i2c3_default: i2c3_default {
547 function = "NRI1"; 762 function = "I2C3";
548 groups = "NRI1"; 763 groups = "I2C3";
549 }; 764 };
550 765
551 pinctrl_nri2_default: nri2_default { 766 pinctrl_i2c4_default: i2c4_default {
552 function = "NRI2"; 767 function = "I2C4";
553 groups = "NRI2"; 768 groups = "I2C4";
554 }; 769 };
555 770
556 pinctrl_nri3_default: nri3_default { 771 pinctrl_i2c5_default: i2c5_default {
557 function = "NRI3"; 772 function = "I2C5";
558 groups = "NRI3"; 773 groups = "I2C5";
559 }; 774 };
560 775
561 pinctrl_nri4_default: nri4_default { 776 pinctrl_i2c6_default: i2c6_default {
562 function = "NRI4"; 777 function = "I2C6";
563 groups = "NRI4"; 778 groups = "I2C6";
564 }; 779 };
565 780
566 pinctrl_nrts1_default: nrts1_default { 781 pinctrl_i2c7_default: i2c7_default {
567 function = "NRTS1"; 782 function = "I2C7";
568 groups = "NRTS1"; 783 groups = "I2C7";
569 }; 784 };
570 785
571 pinctrl_nrts2_default: nrts2_default { 786 pinctrl_i2c8_default: i2c8_default {
572 function = "NRTS2"; 787 function = "I2C8";
573 groups = "NRTS2"; 788 groups = "I2C8";
574 }; 789 };
575 790
576 pinctrl_nrts3_default: nrts3_default { 791 pinctrl_i2c9_default: i2c9_default {
577 function = "NRTS3"; 792 function = "I2C9";
578 groups = "NRTS3"; 793 groups = "I2C9";
579 }; 794 };
580 795
581 pinctrl_nrts4_default: nrts4_default { 796 pinctrl_lad0_default: lad0_default {
582 function = "NRTS4"; 797 function = "LAD0";
583 groups = "NRTS4"; 798 groups = "LAD0";
584 }; 799 };
585 800
586 pinctrl_oscclk_default: oscclk_default { 801 pinctrl_lad1_default: lad1_default {
587 function = "OSCCLK"; 802 function = "LAD1";
588 groups = "OSCCLK"; 803 groups = "LAD1";
589 }; 804 };
590 805
591 pinctrl_pewake_default: pewake_default { 806 pinctrl_lad2_default: lad2_default {
592 function = "PEWAKE"; 807 function = "LAD2";
593 groups = "PEWAKE"; 808 groups = "LAD2";
594 }; 809 };
595 810
596 pinctrl_pnor_default: pnor_default { 811 pinctrl_lad3_default: lad3_default {
597 function = "PNOR"; 812 function = "LAD3";
598 groups = "PNOR"; 813 groups = "LAD3";
599 }; 814 };
600 815
601 pinctrl_pwm0_default: pwm0_default { 816 pinctrl_lclk_default: lclk_default {
602 function = "PWM0"; 817 function = "LCLK";
603 groups = "PWM0"; 818 groups = "LCLK";
604 }; 819 };
605 820
606 pinctrl_pwm1_default: pwm1_default { 821 pinctrl_lframe_default: lframe_default {
607 function = "PWM1"; 822 function = "LFRAME";
608 groups = "PWM1"; 823 groups = "LFRAME";
609 }; 824 };
610 825
611 pinctrl_pwm2_default: pwm2_default { 826 pinctrl_lpchc_default: lpchc_default {
612 function = "PWM2"; 827 function = "LPCHC";
613 groups = "PWM2"; 828 groups = "LPCHC";
614 }; 829 };
615 830
616 pinctrl_pwm3_default: pwm3_default { 831 pinctrl_lpcpd_default: lpcpd_default {
617 function = "PWM3"; 832 function = "LPCPD";
618 groups = "PWM3"; 833 groups = "LPCPD";
619 }; 834 };
620 835
621 pinctrl_pwm4_default: pwm4_default { 836 pinctrl_lpcplus_default: lpcplus_default {
622 function = "PWM4"; 837 function = "LPCPLUS";
623 groups = "PWM4"; 838 groups = "LPCPLUS";
624 }; 839 };
625 840
626 pinctrl_pwm5_default: pwm5_default { 841 pinctrl_lpcpme_default: lpcpme_default {
627 function = "PWM5"; 842 function = "LPCPME";
628 groups = "PWM5"; 843 groups = "LPCPME";
629 }; 844 };
630 845
631 pinctrl_pwm6_default: pwm6_default { 846 pinctrl_lpcrst_default: lpcrst_default {
632 function = "PWM6"; 847 function = "LPCRST";
633 groups = "PWM6"; 848 groups = "LPCRST";
634 }; 849 };
635 850
636 pinctrl_pwm7_default: pwm7_default { 851 pinctrl_lpcsmi_default: lpcsmi_default {
637 function = "PWM7"; 852 function = "LPCSMI";
638 groups = "PWM7"; 853 groups = "LPCSMI";
639 }; 854 };
640 855
641 pinctrl_rgmii1_default: rgmii1_default { 856 pinctrl_lsirq_default: lsirq_default {
642 function = "RGMII1"; 857 function = "LSIRQ";
643 groups = "RGMII1"; 858 groups = "LSIRQ";
644 }; 859 };
645 860
646 pinctrl_rgmii2_default: rgmii2_default { 861 pinctrl_mac1link_default: mac1link_default {
647 function = "RGMII2"; 862 function = "MAC1LINK";
648 groups = "RGMII2"; 863 groups = "MAC1LINK";
649 }; 864 };
650 865
651 pinctrl_rmii1_default: rmii1_default { 866 pinctrl_mac2link_default: mac2link_default {
652 function = "RMII1"; 867 function = "MAC2LINK";
653 groups = "RMII1"; 868 groups = "MAC2LINK";
654 }; 869 };
655 870
656 pinctrl_rmii2_default: rmii2_default { 871 pinctrl_mdio1_default: mdio1_default {
657 function = "RMII2"; 872 function = "MDIO1";
658 groups = "RMII2"; 873 groups = "MDIO1";
659 }; 874 };
660 875
661 pinctrl_rxd1_default: rxd1_default { 876 pinctrl_mdio2_default: mdio2_default {
662 function = "RXD1"; 877 function = "MDIO2";
663 groups = "RXD1"; 878 groups = "MDIO2";
664 }; 879 };
665 880
666 pinctrl_rxd2_default: rxd2_default { 881 pinctrl_ncts1_default: ncts1_default {
667 function = "RXD2"; 882 function = "NCTS1";
668 groups = "RXD2"; 883 groups = "NCTS1";
669 }; 884 };
670 885
671 pinctrl_rxd3_default: rxd3_default { 886 pinctrl_ncts2_default: ncts2_default {
672 function = "RXD3"; 887 function = "NCTS2";
673 groups = "RXD3"; 888 groups = "NCTS2";
674 }; 889 };
675 890
676 pinctrl_rxd4_default: rxd4_default { 891 pinctrl_ncts3_default: ncts3_default {
677 function = "RXD4"; 892 function = "NCTS3";
678 groups = "RXD4"; 893 groups = "NCTS3";
679 }; 894 };
680 895
681 pinctrl_salt1_default: salt1_default { 896 pinctrl_ncts4_default: ncts4_default {
682 function = "SALT1"; 897 function = "NCTS4";
683 groups = "SALT1"; 898 groups = "NCTS4";
684 }; 899 };
685 900
686 pinctrl_salt10_default: salt10_default { 901 pinctrl_ndcd1_default: ndcd1_default {
687 function = "SALT10"; 902 function = "NDCD1";
688 groups = "SALT10"; 903 groups = "NDCD1";
689 }; 904 };
690 905
691 pinctrl_salt11_default: salt11_default { 906 pinctrl_ndcd2_default: ndcd2_default {
692 function = "SALT11"; 907 function = "NDCD2";
693 groups = "SALT11"; 908 groups = "NDCD2";
694 }; 909 };
695 910
696 pinctrl_salt12_default: salt12_default { 911 pinctrl_ndcd3_default: ndcd3_default {
697 function = "SALT12"; 912 function = "NDCD3";
698 groups = "SALT12"; 913 groups = "NDCD3";
699 }; 914 };
700 915
701 pinctrl_salt13_default: salt13_default { 916 pinctrl_ndcd4_default: ndcd4_default {
702 function = "SALT13"; 917 function = "NDCD4";
703 groups = "SALT13"; 918 groups = "NDCD4";
704 }; 919 };
705 920
706 pinctrl_salt14_default: salt14_default { 921 pinctrl_ndsr1_default: ndsr1_default {
707 function = "SALT14"; 922 function = "NDSR1";
708 groups = "SALT14"; 923 groups = "NDSR1";
709 }; 924 };
710 925
711 pinctrl_salt2_default: salt2_default { 926 pinctrl_ndsr2_default: ndsr2_default {
712 function = "SALT2"; 927 function = "NDSR2";
713 groups = "SALT2"; 928 groups = "NDSR2";
714 }; 929 };
715 930
716 pinctrl_salt3_default: salt3_default { 931 pinctrl_ndsr3_default: ndsr3_default {
717 function = "SALT3"; 932 function = "NDSR3";
718 groups = "SALT3"; 933 groups = "NDSR3";
719 }; 934 };
720 935
721 pinctrl_salt4_default: salt4_default { 936 pinctrl_ndsr4_default: ndsr4_default {
722 function = "SALT4"; 937 function = "NDSR4";
723 groups = "SALT4"; 938 groups = "NDSR4";
724 }; 939 };
725 940
726 pinctrl_salt5_default: salt5_default { 941 pinctrl_ndtr1_default: ndtr1_default {
727 function = "SALT5"; 942 function = "NDTR1";
728 groups = "SALT5"; 943 groups = "NDTR1";
729 }; 944 };
730 945
731 pinctrl_salt6_default: salt6_default { 946 pinctrl_ndtr2_default: ndtr2_default {
732 function = "SALT6"; 947 function = "NDTR2";
733 groups = "SALT6"; 948 groups = "NDTR2";
734 }; 949 };
735 950
736 pinctrl_salt7_default: salt7_default { 951 pinctrl_ndtr3_default: ndtr3_default {
737 function = "SALT7"; 952 function = "NDTR3";
738 groups = "SALT7"; 953 groups = "NDTR3";
739 }; 954 };
740 955
741 pinctrl_salt8_default: salt8_default { 956 pinctrl_ndtr4_default: ndtr4_default {
742 function = "SALT8"; 957 function = "NDTR4";
743 groups = "SALT8"; 958 groups = "NDTR4";
744 }; 959 };
745 960
746 pinctrl_salt9_default: salt9_default { 961 pinctrl_nri1_default: nri1_default {
747 function = "SALT9"; 962 function = "NRI1";
748 groups = "SALT9"; 963 groups = "NRI1";
749 }; 964 };
750 965
751 pinctrl_scl1_default: scl1_default { 966 pinctrl_nri2_default: nri2_default {
752 function = "SCL1"; 967 function = "NRI2";
753 groups = "SCL1"; 968 groups = "NRI2";
754 }; 969 };
755 970
756 pinctrl_scl2_default: scl2_default { 971 pinctrl_nri3_default: nri3_default {
757 function = "SCL2"; 972 function = "NRI3";
758 groups = "SCL2"; 973 groups = "NRI3";
759 }; 974 };
760 975
761 pinctrl_sd1_default: sd1_default { 976 pinctrl_nri4_default: nri4_default {
762 function = "SD1"; 977 function = "NRI4";
763 groups = "SD1"; 978 groups = "NRI4";
764 }; 979 };
765 980
766 pinctrl_sd2_default: sd2_default { 981 pinctrl_nrts1_default: nrts1_default {
767 function = "SD2"; 982 function = "NRTS1";
768 groups = "SD2"; 983 groups = "NRTS1";
769 }; 984 };
770 985
771 pinctrl_sda1_default: sda1_default { 986 pinctrl_nrts2_default: nrts2_default {
772 function = "SDA1"; 987 function = "NRTS2";
773 groups = "SDA1"; 988 groups = "NRTS2";
774 }; 989 };
775 990
776 pinctrl_sda2_default: sda2_default { 991 pinctrl_nrts3_default: nrts3_default {
777 function = "SDA2"; 992 function = "NRTS3";
778 groups = "SDA2"; 993 groups = "NRTS3";
779 }; 994 };
780 995
781 pinctrl_sgps1_default: sgps1_default { 996 pinctrl_nrts4_default: nrts4_default {
782 function = "SGPS1"; 997 function = "NRTS4";
783 groups = "SGPS1"; 998 groups = "NRTS4";
784 }; 999 };
785 1000
786 pinctrl_sgps2_default: sgps2_default { 1001 pinctrl_oscclk_default: oscclk_default {
787 function = "SGPS2"; 1002 function = "OSCCLK";
788 groups = "SGPS2"; 1003 groups = "OSCCLK";
789 }; 1004 };
790 1005
791 pinctrl_sioonctrl_default: sioonctrl_default { 1006 pinctrl_pewake_default: pewake_default {
792 function = "SIOONCTRL"; 1007 function = "PEWAKE";
793 groups = "SIOONCTRL"; 1008 groups = "PEWAKE";
794 }; 1009 };
795 1010
796 pinctrl_siopbi_default: siopbi_default { 1011 pinctrl_pnor_default: pnor_default {
797 function = "SIOPBI"; 1012 function = "PNOR";
798 groups = "SIOPBI"; 1013 groups = "PNOR";
799 }; 1014 };
800 1015
801 pinctrl_siopbo_default: siopbo_default { 1016 pinctrl_pwm0_default: pwm0_default {
802 function = "SIOPBO"; 1017 function = "PWM0";
803 groups = "SIOPBO"; 1018 groups = "PWM0";
804 }; 1019 };
805 1020
806 pinctrl_siopwreq_default: siopwreq_default { 1021 pinctrl_pwm1_default: pwm1_default {
807 function = "SIOPWREQ"; 1022 function = "PWM1";
808 groups = "SIOPWREQ"; 1023 groups = "PWM1";
809 }; 1024 };
810 1025
811 pinctrl_siopwrgd_default: siopwrgd_default { 1026 pinctrl_pwm2_default: pwm2_default {
812 function = "SIOPWRGD"; 1027 function = "PWM2";
813 groups = "SIOPWRGD"; 1028 groups = "PWM2";
814 }; 1029 };
815 1030
816 pinctrl_sios3_default: sios3_default { 1031 pinctrl_pwm3_default: pwm3_default {
817 function = "SIOS3"; 1032 function = "PWM3";
818 groups = "SIOS3"; 1033 groups = "PWM3";
819 }; 1034 };
820 1035
821 pinctrl_sios5_default: sios5_default { 1036 pinctrl_pwm4_default: pwm4_default {
822 function = "SIOS5"; 1037 function = "PWM4";
823 groups = "SIOS5"; 1038 groups = "PWM4";
824 }; 1039 };
825 1040
826 pinctrl_siosci_default: siosci_default { 1041 pinctrl_pwm5_default: pwm5_default {
827 function = "SIOSCI"; 1042 function = "PWM5";
828 groups = "SIOSCI"; 1043 groups = "PWM5";
829 }; 1044 };
830 1045
831 pinctrl_spi1_default: spi1_default { 1046 pinctrl_pwm6_default: pwm6_default {
832 function = "SPI1"; 1047 function = "PWM6";
833 groups = "SPI1"; 1048 groups = "PWM6";
834 }; 1049 };
835 1050
836 pinctrl_spi1cs1_default: spi1cs1_default { 1051 pinctrl_pwm7_default: pwm7_default {
837 function = "SPI1CS1"; 1052 function = "PWM7";
838 groups = "SPI1CS1"; 1053 groups = "PWM7";
839 }; 1054 };
840 1055
841 pinctrl_spi1debug_default: spi1debug_default { 1056 pinctrl_rgmii1_default: rgmii1_default {
842 function = "SPI1DEBUG"; 1057 function = "RGMII1";
843 groups = "SPI1DEBUG"; 1058 groups = "RGMII1";
844 }; 1059 };
845 1060
846 pinctrl_spi1passthru_default: spi1passthru_default { 1061 pinctrl_rgmii2_default: rgmii2_default {
847 function = "SPI1PASSTHRU"; 1062 function = "RGMII2";
848 groups = "SPI1PASSTHRU"; 1063 groups = "RGMII2";
849 }; 1064 };
850 1065
851 pinctrl_spi2ck_default: spi2ck_default { 1066 pinctrl_rmii1_default: rmii1_default {
852 function = "SPI2CK"; 1067 function = "RMII1";
853 groups = "SPI2CK"; 1068 groups = "RMII1";
854 }; 1069 };
855 1070
856 pinctrl_spi2cs0_default: spi2cs0_default { 1071 pinctrl_rmii2_default: rmii2_default {
857 function = "SPI2CS0"; 1072 function = "RMII2";
858 groups = "SPI2CS0"; 1073 groups = "RMII2";
859 }; 1074 };
860 1075
861 pinctrl_spi2cs1_default: spi2cs1_default { 1076 pinctrl_rxd1_default: rxd1_default {
862 function = "SPI2CS1"; 1077 function = "RXD1";
863 groups = "SPI2CS1"; 1078 groups = "RXD1";
864 }; 1079 };
865 1080
866 pinctrl_spi2miso_default: spi2miso_default { 1081 pinctrl_rxd2_default: rxd2_default {
867 function = "SPI2MISO"; 1082 function = "RXD2";
868 groups = "SPI2MISO"; 1083 groups = "RXD2";
869 }; 1084 };
870 1085
871 pinctrl_spi2mosi_default: spi2mosi_default { 1086 pinctrl_rxd3_default: rxd3_default {
872 function = "SPI2MOSI"; 1087 function = "RXD3";
873 groups = "SPI2MOSI"; 1088 groups = "RXD3";
874 }; 1089 };
875 1090
876 pinctrl_timer3_default: timer3_default { 1091 pinctrl_rxd4_default: rxd4_default {
877 function = "TIMER3"; 1092 function = "RXD4";
878 groups = "TIMER3"; 1093 groups = "RXD4";
879 }; 1094 };
880 1095
881 pinctrl_timer4_default: timer4_default { 1096 pinctrl_salt1_default: salt1_default {
882 function = "TIMER4"; 1097 function = "SALT1";
883 groups = "TIMER4"; 1098 groups = "SALT1";
884 }; 1099 };
885 1100
886 pinctrl_timer5_default: timer5_default { 1101 pinctrl_salt10_default: salt10_default {
887 function = "TIMER5"; 1102 function = "SALT10";
888 groups = "TIMER5"; 1103 groups = "SALT10";
889 }; 1104 };
890 1105
891 pinctrl_timer6_default: timer6_default { 1106 pinctrl_salt11_default: salt11_default {
892 function = "TIMER6"; 1107 function = "SALT11";
893 groups = "TIMER6"; 1108 groups = "SALT11";
894 }; 1109 };
895 1110
896 pinctrl_timer7_default: timer7_default { 1111 pinctrl_salt12_default: salt12_default {
897 function = "TIMER7"; 1112 function = "SALT12";
898 groups = "TIMER7"; 1113 groups = "SALT12";
899 }; 1114 };
900 1115
901 pinctrl_timer8_default: timer8_default { 1116 pinctrl_salt13_default: salt13_default {
902 function = "TIMER8"; 1117 function = "SALT13";
903 groups = "TIMER8"; 1118 groups = "SALT13";
904 }; 1119 };
905 1120
906 pinctrl_txd1_default: txd1_default { 1121 pinctrl_salt14_default: salt14_default {
907 function = "TXD1"; 1122 function = "SALT14";
908 groups = "TXD1"; 1123 groups = "SALT14";
909 }; 1124 };
910 1125
911 pinctrl_txd2_default: txd2_default { 1126 pinctrl_salt2_default: salt2_default {
912 function = "TXD2"; 1127 function = "SALT2";
913 groups = "TXD2"; 1128 groups = "SALT2";
914 }; 1129 };
915 1130
916 pinctrl_txd3_default: txd3_default { 1131 pinctrl_salt3_default: salt3_default {
917 function = "TXD3"; 1132 function = "SALT3";
918 groups = "TXD3"; 1133 groups = "SALT3";
919 }; 1134 };
920 1135
921 pinctrl_txd4_default: txd4_default { 1136 pinctrl_salt4_default: salt4_default {
922 function = "TXD4"; 1137 function = "SALT4";
923 groups = "TXD4"; 1138 groups = "SALT4";
924 }; 1139 };
925 1140
926 pinctrl_uart6_default: uart6_default { 1141 pinctrl_salt5_default: salt5_default {
927 function = "UART6"; 1142 function = "SALT5";
928 groups = "UART6"; 1143 groups = "SALT5";
929 }; 1144 };
930 1145
931 pinctrl_usbcki_default: usbcki_default { 1146 pinctrl_salt6_default: salt6_default {
932 function = "USBCKI"; 1147 function = "SALT6";
933 groups = "USBCKI"; 1148 groups = "SALT6";
934 }; 1149 };
935 1150
936 pinctrl_vgabiosrom_default: vgabiosrom_default { 1151 pinctrl_salt7_default: salt7_default {
937 function = "VGABIOSROM"; 1152 function = "SALT7";
938 groups = "VGABIOSROM"; 1153 groups = "SALT7";
939 }; 1154 };
940 1155
941 pinctrl_vgahs_default: vgahs_default { 1156 pinctrl_salt8_default: salt8_default {
942 function = "VGAHS"; 1157 function = "SALT8";
943 groups = "VGAHS"; 1158 groups = "SALT8";
944 }; 1159 };
945 1160
946 pinctrl_vgavs_default: vgavs_default { 1161 pinctrl_salt9_default: salt9_default {
947 function = "VGAVS"; 1162 function = "SALT9";
948 groups = "VGAVS"; 1163 groups = "SALT9";
949 }; 1164 };
950 1165
951 pinctrl_vpi24_default: vpi24_default { 1166 pinctrl_scl1_default: scl1_default {
952 function = "VPI24"; 1167 function = "SCL1";
953 groups = "VPI24"; 1168 groups = "SCL1";
954 }; 1169 };
955 1170
956 pinctrl_vpo_default: vpo_default { 1171 pinctrl_scl2_default: scl2_default {
957 function = "VPO"; 1172 function = "SCL2";
958 groups = "VPO"; 1173 groups = "SCL2";
959 }; 1174 };
960 1175
961 pinctrl_wdtrst1_default: wdtrst1_default { 1176 pinctrl_sd1_default: sd1_default {
962 function = "WDTRST1"; 1177 function = "SD1";
963 groups = "WDTRST1"; 1178 groups = "SD1";
964 }; 1179 };
965 1180
966 pinctrl_wdtrst2_default: wdtrst2_default { 1181 pinctrl_sd2_default: sd2_default {
967 function = "WDTRST2"; 1182 function = "SD2";
968 groups = "WDTRST2"; 1183 groups = "SD2";
969 }; 1184 };
970 1185
971 }; 1186 pinctrl_sda1_default: sda1_default {
1187 function = "SDA1";
1188 groups = "SDA1";
1189 };
972 1190
973 }; 1191 pinctrl_sda2_default: sda2_default {
1192 function = "SDA2";
1193 groups = "SDA2";
1194 };
974 1195
975 gfx: display@1e6e6000 { 1196 pinctrl_sgps1_default: sgps1_default {
976 compatible = "aspeed,ast2500-gfx", "syscon"; 1197 function = "SGPS1";
977 reg = <0x1e6e6000 0x1000>; 1198 groups = "SGPS1";
978 reg-io-width = <4>; 1199 };
979 };
980 1200
981 sram@1e720000 { 1201 pinctrl_sgps2_default: sgps2_default {
982 compatible = "mmio-sram"; 1202 function = "SGPS2";
983 reg = <0x1e720000 0x9000>; // 36K 1203 groups = "SGPS2";
984 }; 1204 };
985 1205
986 gpio: gpio@1e780000 { 1206 pinctrl_sioonctrl_default: sioonctrl_default {
987 #gpio-cells = <2>; 1207 function = "SIOONCTRL";
988 gpio-controller; 1208 groups = "SIOONCTRL";
989 compatible = "aspeed,ast2500-gpio"; 1209 };
990 reg = <0x1e780000 0x1000>;
991 interrupts = <20>;
992 gpio-ranges = <&pinctrl 0 0 220>;
993 interrupt-controller;
994 };
995 1210
996 timer: timer@1e782000 { 1211 pinctrl_siopbi_default: siopbi_default {
997 /* This timer is a Faraday FTTMR010 derivative */ 1212 function = "SIOPBI";
998 compatible = "aspeed,ast2400-timer"; 1213 groups = "SIOPBI";
999 reg = <0x1e782000 0x90>; 1214 };
1000 interrupts = <16 17 18 35 36 37 38 39>;
1001 clocks = <&clk_apb>;
1002 clock-names = "PCLK";
1003 };
1004 1215
1216 pinctrl_siopbo_default: siopbo_default {
1217 function = "SIOPBO";
1218 groups = "SIOPBO";
1219 };
1005 1220
1006 wdt1: wdt@1e785000 { 1221 pinctrl_siopwreq_default: siopwreq_default {
1007 compatible = "aspeed,ast2500-wdt"; 1222 function = "SIOPWREQ";
1008 reg = <0x1e785000 0x20>; 1223 groups = "SIOPWREQ";
1009 interrupts = <27>; 1224 };
1010 };
1011 1225
1012 wdt2: wdt@1e785020 { 1226 pinctrl_siopwrgd_default: siopwrgd_default {
1013 compatible = "aspeed,ast2500-wdt"; 1227 function = "SIOPWRGD";
1014 reg = <0x1e785020 0x20>; 1228 groups = "SIOPWRGD";
1015 interrupts = <27>; 1229 };
1016 status = "disabled";
1017 };
1018 1230
1019 wdt3: wdt@1e785040 { 1231 pinctrl_sios3_default: sios3_default {
1020 compatible = "aspeed,ast2500-wdt"; 1232 function = "SIOS3";
1021 reg = <0x1e785040 0x20>; 1233 groups = "SIOS3";
1022 status = "disabled"; 1234 };
1023 };
1024 1235
1025 uart1: serial@1e783000 { 1236 pinctrl_sios5_default: sios5_default {
1026 compatible = "ns16550a"; 1237 function = "SIOS5";
1027 reg = <0x1e783000 0x1000>; 1238 groups = "SIOS5";
1028 reg-shift = <2>; 1239 };
1029 interrupts = <9>;
1030 clocks = <&clk_uart>;
1031 no-loopback-test;
1032 status = "disabled";
1033 };
1034 1240
1035 lpc: lpc@1e789000 { 1241 pinctrl_siosci_default: siosci_default {
1036 compatible = "aspeed,ast2500-lpc", "simple-mfd"; 1242 function = "SIOSCI";
1037 reg = <0x1e789000 0x1000>; 1243 groups = "SIOSCI";
1244 };
1038 1245
1039 #address-cells = <1>; 1246 pinctrl_spi1_default: spi1_default {
1040 #size-cells = <1>; 1247 function = "SPI1";
1041 ranges = <0 0x1e789000 0x1000>; 1248 groups = "SPI1";
1249 };
1042 1250
1043 lpc_bmc: lpc-bmc@0 { 1251 pinctrl_spi1cs1_default: spi1cs1_default {
1044 compatible = "aspeed,ast2500-lpc-bmc"; 1252 function = "SPI1CS1";
1045 reg = <0x0 0x80>; 1253 groups = "SPI1CS1";
1046 }; 1254 };
1047 1255
1048 lpc_host: lpc-host@80 { 1256 pinctrl_spi1debug_default: spi1debug_default {
1049 compatible = "aspeed,ast2500-lpc-host", "simple-mfd", "syscon"; 1257 function = "SPI1DEBUG";
1050 reg = <0x80 0x1e0>; 1258 groups = "SPI1DEBUG";
1259 };
1051 1260
1052 #address-cells = <1>; 1261 pinctrl_spi1passthru_default: spi1passthru_default {
1053 #size-cells = <1>; 1262 function = "SPI1PASSTHRU";
1054 ranges = <0 0x80 0x1e0>; 1263 groups = "SPI1PASSTHRU";
1264 };
1055 1265
1056 reg-io-width = <4>; 1266 pinctrl_spi2ck_default: spi2ck_default {
1267 function = "SPI2CK";
1268 groups = "SPI2CK";
1269 };
1057 1270
1058 lhc: lhc@20 { 1271 pinctrl_spi2cs0_default: spi2cs0_default {
1059 compatible = "aspeed,ast2500-lhc"; 1272 function = "SPI2CS0";
1060 reg = <0x20 0x24 0x48 0x8>; 1273 groups = "SPI2CS0";
1061 }; 1274 };
1062 };
1063 };
1064 1275
1065 uart2: serial@1e78d000 { 1276 pinctrl_spi2cs1_default: spi2cs1_default {
1066 compatible = "ns16550a"; 1277 function = "SPI2CS1";
1067 reg = <0x1e78d000 0x1000>; 1278 groups = "SPI2CS1";
1068 reg-shift = <2>; 1279 };
1069 interrupts = <32>;
1070 clocks = <&clk_uart>;
1071 no-loopback-test;
1072 status = "disabled";
1073 };
1074 1280
1075 uart3: serial@1e78e000 { 1281 pinctrl_spi2miso_default: spi2miso_default {
1076 compatible = "ns16550a"; 1282 function = "SPI2MISO";
1077 reg = <0x1e78e000 0x1000>; 1283 groups = "SPI2MISO";
1078 reg-shift = <2>; 1284 };
1079 interrupts = <33>;
1080 clocks = <&clk_uart>;
1081 no-loopback-test;
1082 status = "disabled";
1083 };
1084 1285
1085 uart4: serial@1e78f000 { 1286 pinctrl_spi2mosi_default: spi2mosi_default {
1086 compatible = "ns16550a"; 1287 function = "SPI2MOSI";
1087 reg = <0x1e78f000 0x1000>; 1288 groups = "SPI2MOSI";
1088 reg-shift = <2>; 1289 };
1089 interrupts = <34>;
1090 clocks = <&clk_uart>;
1091 no-loopback-test;
1092 status = "disabled";
1093 };
1094 1290
1095 uart5: serial@1e784000 { 1291 pinctrl_timer3_default: timer3_default {
1096 compatible = "ns16550a"; 1292 function = "TIMER3";
1097 reg = <0x1e784000 0x1000>; 1293 groups = "TIMER3";
1098 reg-shift = <2>; 1294 };
1099 interrupts = <10>;
1100 clocks = <&clk_uart>;
1101 current-speed = <38400>;
1102 no-loopback-test;
1103 status = "disabled";
1104 };
1105 1295
1106 uart6: serial@1e787000 { 1296 pinctrl_timer4_default: timer4_default {
1107 compatible = "ns16550a"; 1297 function = "TIMER4";
1108 reg = <0x1e787000 0x1000>; 1298 groups = "TIMER4";
1109 reg-shift = <2>; 1299 };
1110 interrupts = <10>;
1111 clocks = <&clk_uart>;
1112 no-loopback-test;
1113 status = "disabled";
1114 };
1115 1300
1116 adc: adc@1e6e9000 { 1301 pinctrl_timer5_default: timer5_default {
1117 compatible = "aspeed,ast2500-adc"; 1302 function = "TIMER5";
1118 reg = <0x1e6e9000 0xb0>; 1303 groups = "TIMER5";
1119 clocks = <&clk_apb>; 1304 };
1120 #io-channel-cells = <1>; 1305
1121 status = "disabled"; 1306 pinctrl_timer6_default: timer6_default {
1122 }; 1307 function = "TIMER6";
1123 }; 1308 groups = "TIMER6";
1309 };
1310
1311 pinctrl_timer7_default: timer7_default {
1312 function = "TIMER7";
1313 groups = "TIMER7";
1314 };
1315
1316 pinctrl_timer8_default: timer8_default {
1317 function = "TIMER8";
1318 groups = "TIMER8";
1319 };
1320
1321 pinctrl_txd1_default: txd1_default {
1322 function = "TXD1";
1323 groups = "TXD1";
1324 };
1325
1326 pinctrl_txd2_default: txd2_default {
1327 function = "TXD2";
1328 groups = "TXD2";
1329 };
1330
1331 pinctrl_txd3_default: txd3_default {
1332 function = "TXD3";
1333 groups = "TXD3";
1334 };
1335
1336 pinctrl_txd4_default: txd4_default {
1337 function = "TXD4";
1338 groups = "TXD4";
1339 };
1340
1341 pinctrl_uart6_default: uart6_default {
1342 function = "UART6";
1343 groups = "UART6";
1344 };
1345
1346 pinctrl_usbcki_default: usbcki_default {
1347 function = "USBCKI";
1348 groups = "USBCKI";
1349 };
1350
1351 pinctrl_vgabiosrom_default: vgabiosrom_default {
1352 function = "VGABIOSROM";
1353 groups = "VGABIOSROM";
1354 };
1355
1356 pinctrl_vgahs_default: vgahs_default {
1357 function = "VGAHS";
1358 groups = "VGAHS";
1359 };
1360
1361 pinctrl_vgavs_default: vgavs_default {
1362 function = "VGAVS";
1363 groups = "VGAVS";
1364 };
1365
1366 pinctrl_vpi24_default: vpi24_default {
1367 function = "VPI24";
1368 groups = "VPI24";
1369 };
1370
1371 pinctrl_vpo_default: vpo_default {
1372 function = "VPO";
1373 groups = "VPO";
1374 };
1375
1376 pinctrl_wdtrst1_default: wdtrst1_default {
1377 function = "WDTRST1";
1378 groups = "WDTRST1";
1379 };
1380
1381 pinctrl_wdtrst2_default: wdtrst2_default {
1382 function = "WDTRST2";
1383 groups = "WDTRST2";
1124 }; 1384 };
1125}; 1385};
diff --git a/arch/arm/boot/dts/at91-ariag25.dts b/arch/arm/boot/dts/at91-ariag25.dts
index 4da011a7a698..1c86537a42a0 100644
--- a/arch/arm/boot/dts/at91-ariag25.dts
+++ b/arch/arm/boot/dts/at91-ariag25.dts
@@ -147,12 +147,12 @@
147 }; 147 };
148 }; 148 };
149 149
150 usb0: ohci@00600000 { 150 usb0: ohci@600000 {
151 status = "okay"; 151 status = "okay";
152 num-ports = <3>; 152 num-ports = <3>;
153 }; 153 };
154 154
155 usb1: ehci@00700000 { 155 usb1: ehci@700000 {
156 status = "okay"; 156 status = "okay";
157 }; 157 };
158 }; 158 };
diff --git a/arch/arm/boot/dts/at91-ariettag25.dts b/arch/arm/boot/dts/at91-ariettag25.dts
index 21c5b56c92e0..f877f3430bcc 100644
--- a/arch/arm/boot/dts/at91-ariettag25.dts
+++ b/arch/arm/boot/dts/at91-ariettag25.dts
@@ -59,12 +59,12 @@
59 }; 59 };
60 }; 60 };
61 61
62 usb0: ohci@00600000 { 62 usb0: ohci@600000 {
63 status = "okay"; 63 status = "okay";
64 num-ports = <3>; 64 num-ports = <3>;
65 }; 65 };
66 66
67 usb1: ehci@00700000 { 67 usb1: ehci@700000 {
68 status = "okay"; 68 status = "okay";
69 }; 69 };
70 }; 70 };
diff --git a/arch/arm/boot/dts/at91-cosino_mega2560.dts b/arch/arm/boot/dts/at91-cosino_mega2560.dts
index 27ebb0f722fd..c452654b843a 100644
--- a/arch/arm/boot/dts/at91-cosino_mega2560.dts
+++ b/arch/arm/boot/dts/at91-cosino_mega2560.dts
@@ -62,7 +62,7 @@
62 }; 62 };
63 }; 63 };
64 64
65 usb0: ohci@00600000 { 65 usb0: ohci@600000 {
66 status = "okay"; 66 status = "okay";
67 num-ports = <3>; 67 num-ports = <3>;
68 atmel,vbus-gpio = <0 /* &pioD 18 GPIO_ACTIVE_LOW */ 68 atmel,vbus-gpio = <0 /* &pioD 18 GPIO_ACTIVE_LOW */
@@ -71,7 +71,7 @@
71 >; 71 >;
72 }; 72 };
73 73
74 usb1: ehci@00700000 { 74 usb1: ehci@700000 {
75 status = "okay"; 75 status = "okay";
76 }; 76 };
77 }; 77 };
diff --git a/arch/arm/boot/dts/at91-kizbox2.dts b/arch/arm/boot/dts/at91-kizbox2.dts
index 4372c0287c1c..ec6c28c521a5 100644
--- a/arch/arm/boot/dts/at91-kizbox2.dts
+++ b/arch/arm/boot/dts/at91-kizbox2.dts
@@ -133,11 +133,11 @@
133 }; 133 };
134 }; 134 };
135 135
136 usb1: ohci@00600000 { 136 usb1: ohci@600000 {
137 status = "okay"; 137 status = "okay";
138 }; 138 };
139 139
140 usb2: ehci@00700000 { 140 usb2: ehci@700000 {
141 status = "okay"; 141 status = "okay";
142 }; 142 };
143 143
diff --git a/arch/arm/boot/dts/at91-kizboxmini.dts b/arch/arm/boot/dts/at91-kizboxmini.dts
index 33238fcb6d0b..fe1bc0a59a98 100644
--- a/arch/arm/boot/dts/at91-kizboxmini.dts
+++ b/arch/arm/boot/dts/at91-kizboxmini.dts
@@ -59,12 +59,12 @@
59 }; 59 };
60 }; 60 };
61 61
62 usb0: ohci@00600000 { 62 usb0: ohci@600000 {
63 num-ports = <1>; 63 num-ports = <1>;
64 status = "okay"; 64 status = "okay";
65 }; 65 };
66 66
67 usb1: ehci@00700000 { 67 usb1: ehci@700000 {
68 status = "okay"; 68 status = "okay";
69 }; 69 };
70 70
diff --git a/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts b/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts
index 60cb084a8d92..6d87b4eb6c41 100644
--- a/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts
+++ b/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts
@@ -53,19 +53,27 @@
53 model = "Atmel SAMA5D27 SOM1 EK"; 53 model = "Atmel SAMA5D27 SOM1 EK";
54 compatible = "atmel,sama5d27-som1-ek", "atmel,sama5d27-som1", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5"; 54 compatible = "atmel,sama5d27-som1-ek", "atmel,sama5d27-som1", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5";
55 55
56 aliases {
57 serial0 = &uart1; /* DBGU */
58 serial1 = &uart4; /* mikro BUS 1 */
59 serial2 = &uart2; /* mikro BUS 2 */
60 i2c1 = &i2c1;
61 i2c2 = &i2c2;
62 };
63
56 chosen { 64 chosen {
57 stdout-path = "serial0:115200n8"; 65 stdout-path = "serial0:115200n8";
58 }; 66 };
59 67
60 ahb { 68 ahb {
61 usb0: gadget@00300000 { 69 usb0: gadget@300000 {
62 atmel,vbus-gpio = <&pioA PIN_PD20 GPIO_ACTIVE_HIGH>; 70 atmel,vbus-gpio = <&pioA PIN_PD20 GPIO_ACTIVE_HIGH>;
63 pinctrl-names = "default"; 71 pinctrl-names = "default";
64 pinctrl-0 = <&pinctrl_usba_vbus>; 72 pinctrl-0 = <&pinctrl_usba_vbus>;
65 status = "okay"; 73 status = "okay";
66 }; 74 };
67 75
68 usb1: ohci@00400000 { 76 usb1: ohci@400000 {
69 num-ports = <3>; 77 num-ports = <3>;
70 atmel,vbus-gpio = <0 /* &pioA PIN_PD20 GPIO_ACTIVE_HIGH */ 78 atmel,vbus-gpio = <0 /* &pioA PIN_PD20 GPIO_ACTIVE_HIGH */
71 &pioA PIN_PA27 GPIO_ACTIVE_HIGH 79 &pioA PIN_PA27 GPIO_ACTIVE_HIGH
@@ -76,7 +84,7 @@
76 status = "okay"; 84 status = "okay";
77 }; 85 };
78 86
79 usb2: ehci@00500000 { 87 usb2: ehci@500000 {
80 status = "okay"; 88 status = "okay";
81 }; 89 };
82 90
@@ -128,12 +136,14 @@
128 }; 136 };
129 137
130 pwm0: pwm@f802c000 { 138 pwm0: pwm@f802c000 {
131 status = "okay"; 139 pinctrl-names = "default";
140 pinctrl-0 = <&pinctrl_mikrobus1_pwm &pinctrl_mikrobus2_pwm>;
141 status = "disabled"; /* Conflict with leds. */
132 }; 142 };
133 143
134 flx1: flexcom@f8038000 { 144 flx1: flexcom@f8038000 {
135 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>; 145 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
136 status = "disabled"; 146 status = "okay";
137 147
138 i2c2: i2c@600 { 148 i2c2: i2c@600 {
139 compatible = "atmel,sama5d2-i2c"; 149 compatible = "atmel,sama5d2-i2c";
@@ -147,7 +157,7 @@
147 pinctrl-names = "default"; 157 pinctrl-names = "default";
148 pinctrl-0 = <&pinctrl_mikrobus_i2c>; 158 pinctrl-0 = <&pinctrl_mikrobus_i2c>;
149 atmel,fifo-size = <16>; 159 atmel,fifo-size = <16>;
150 status = "disabled"; 160 status = "okay";
151 }; 161 };
152 }; 162 };
153 163
@@ -165,17 +175,12 @@
165 status = "okay"; 175 status = "okay";
166 }; 176 };
167 177
168 can0: can@f8054000 {
169 pinctrl-names = "default";
170 pinctrl-0 = <&pinctrl_can0_default>;
171 };
172
173 uart3: serial@fc008000 { 178 uart3: serial@fc008000 {
174 atmel,use-dma-rx; 179 atmel,use-dma-rx;
175 atmel,use-dma-tx; 180 atmel,use-dma-tx;
176 pinctrl-names = "default"; 181 pinctrl-names = "default";
177 pinctrl-0 = <&pinctrl_uart3_default>; 182 pinctrl-0 = <&pinctrl_uart3_default>;
178 status = "disabled"; 183 status = "disabled"; /* Conflict with isc. */
179 }; 184 };
180 185
181 uart4: serial@fc00c000 { 186 uart4: serial@fc00c000 {
@@ -199,7 +204,7 @@
199 pinctrl-names = "default"; 204 pinctrl-names = "default";
200 pinctrl-0 = <&pinctrl_flx3_default>; 205 pinctrl-0 = <&pinctrl_flx3_default>;
201 atmel,fifo-size = <32>; 206 atmel,fifo-size = <32>;
202 status = "disabled"; 207 status = "disabled"; /* Conflict with isc. */
203 }; 208 };
204 209
205 spi2: spi@400 { 210 spi2: spi@400 {
@@ -211,7 +216,7 @@
211 pinctrl-names = "default"; 216 pinctrl-names = "default";
212 pinctrl-0 = <&pinctrl_flx3_default>; 217 pinctrl-0 = <&pinctrl_flx3_default>;
213 atmel,fifo-size = <16>; 218 atmel,fifo-size = <16>;
214 status = "disabled"; 219 status = "disabled"; /* Conflict with isc. */
215 }; 220 };
216 }; 221 };
217 222
@@ -228,7 +233,7 @@
228 pinctrl-names = "default"; 233 pinctrl-names = "default";
229 pinctrl-0 = <&pinctrl_flx4_default>; 234 pinctrl-0 = <&pinctrl_flx4_default>;
230 atmel,fifo-size = <32>; 235 atmel,fifo-size = <32>;
231 status = "disabled"; 236 status = "disabled"; /* Conflict with spi3 and i2c3. */
232 }; 237 };
233 238
234 spi3: spi@400 { 239 spi3: spi@400 {
@@ -240,7 +245,7 @@
240 pinctrl-names = "default"; 245 pinctrl-names = "default";
241 pinctrl-0 = <&pinctrl_mikrobus_spi &pinctrl_mikrobus1_spi_cs &pinctrl_mikrobus2_spi_cs>; 246 pinctrl-0 = <&pinctrl_mikrobus_spi &pinctrl_mikrobus1_spi_cs &pinctrl_mikrobus2_spi_cs>;
242 atmel,fifo-size = <16>; 247 atmel,fifo-size = <16>;
243 status = "okay"; 248 status = "okay"; /* Conflict with uart6 and i2c3. */
244 }; 249 };
245 250
246 i2c3: i2c@600 { 251 i2c3: i2c@600 {
@@ -255,7 +260,7 @@
255 pinctrl-names = "default"; 260 pinctrl-names = "default";
256 pinctrl-0 = <&pinctrl_flx4_default>; 261 pinctrl-0 = <&pinctrl_flx4_default>;
257 atmel,fifo-size = <16>; 262 atmel,fifo-size = <16>;
258 status = "disabled"; 263 status = "disabled"; /* Conflict with uart6 and spi3. */
259 }; 264 };
260 }; 265 };
261 266
@@ -268,12 +273,6 @@
268 273
269 pinctrl@fc038000 { 274 pinctrl@fc038000 {
270 275
271 pinctrl_can0_default: can0_default {
272 pinmux = <PIN_PC10__CANTX0>,
273 <PIN_PC11__CANRX0>;
274 bias-disable;
275 };
276
277 pinctrl_can1_default: can1_default { 276 pinctrl_can1_default: can1_default {
278 pinmux = <PIN_PC26__CANTX1>, 277 pinmux = <PIN_PC26__CANTX1>,
279 <PIN_PC27__CANRX1>; 278 <PIN_PC27__CANRX1>;
@@ -350,7 +349,7 @@
350 <PIN_PA7__SDMMC0_DAT5>, 349 <PIN_PA7__SDMMC0_DAT5>,
351 <PIN_PA8__SDMMC0_DAT6>, 350 <PIN_PA8__SDMMC0_DAT6>,
352 <PIN_PA9__SDMMC0_DAT7>; 351 <PIN_PA9__SDMMC0_DAT7>;
353 bias-pull-up; 352 bias-disable;
354 }; 353 };
355 354
356 ck_cd_vddsel { 355 ck_cd_vddsel {
@@ -368,7 +367,7 @@
368 <PIN_PA19__SDMMC1_DAT1>, 367 <PIN_PA19__SDMMC1_DAT1>,
369 <PIN_PA20__SDMMC1_DAT2>, 368 <PIN_PA20__SDMMC1_DAT2>,
370 <PIN_PA21__SDMMC1_DAT3>; 369 <PIN_PA21__SDMMC1_DAT3>;
371 bias-pull-up; 370 bias-disable;
372 }; 371 };
373 372
374 conf-ck_cd { 373 conf-ck_cd {
@@ -512,6 +511,7 @@
512 label = "USER"; 511 label = "USER";
513 gpios = <&pioA PIN_PA29 GPIO_ACTIVE_LOW>; 512 gpios = <&pioA PIN_PA29 GPIO_ACTIVE_LOW>;
514 linux,code = <0x104>; 513 linux,code = <0x104>;
514 wakeup-source;
515 }; 515 };
516 }; 516 };
517 517
@@ -519,7 +519,7 @@
519 compatible = "gpio-leds"; 519 compatible = "gpio-leds";
520 pinctrl-names = "default"; 520 pinctrl-names = "default";
521 pinctrl-0 = <&pinctrl_led_gpio_default>; 521 pinctrl-0 = <&pinctrl_led_gpio_default>;
522 status = "okay"; 522 status = "okay"; /* Conflict with pwm0. */
523 523
524 red { 524 red {
525 label = "red"; 525 label = "red";
diff --git a/arch/arm/boot/dts/at91-sama5d2_xplained.dts b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
index cbc26001247b..56de21de2779 100644
--- a/arch/arm/boot/dts/at91-sama5d2_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
@@ -67,14 +67,14 @@
67 }; 67 };
68 68
69 ahb { 69 ahb {
70 usb0: gadget@00300000 { 70 usb0: gadget@300000 {
71 atmel,vbus-gpio = <&pioA PIN_PA31 GPIO_ACTIVE_HIGH>; 71 atmel,vbus-gpio = <&pioA PIN_PA31 GPIO_ACTIVE_HIGH>;
72 pinctrl-names = "default"; 72 pinctrl-names = "default";
73 pinctrl-0 = <&pinctrl_usba_vbus>; 73 pinctrl-0 = <&pinctrl_usba_vbus>;
74 status = "okay"; 74 status = "okay";
75 }; 75 };
76 76
77 usb1: ohci@00400000 { 77 usb1: ohci@400000 {
78 num-ports = <3>; 78 num-ports = <3>;
79 atmel,vbus-gpio = <0 /* &pioA PIN_PB9 GPIO_ACTIVE_HIGH */ 79 atmel,vbus-gpio = <0 /* &pioA PIN_PB9 GPIO_ACTIVE_HIGH */
80 &pioA PIN_PB10 GPIO_ACTIVE_HIGH 80 &pioA PIN_PB10 GPIO_ACTIVE_HIGH
@@ -85,7 +85,7 @@
85 status = "okay"; 85 status = "okay";
86 }; 86 };
87 87
88 usb2: ehci@00500000 { 88 usb2: ehci@500000 {
89 status = "okay"; 89 status = "okay";
90 }; 90 };
91 91
@@ -103,6 +103,8 @@
103 pinctrl-names = "default"; 103 pinctrl-names = "default";
104 pinctrl-0 = <&pinctrl_sdmmc1_default>; 104 pinctrl-0 = <&pinctrl_sdmmc1_default>;
105 status = "okay"; /* conflict with qspi0 */ 105 status = "okay"; /* conflict with qspi0 */
106 vqmmc-supply = <&vdd_3v3_reg>;
107 vmmc-supply = <&vdd_3v3_reg>;
106 }; 108 };
107 109
108 apb { 110 apb {
@@ -160,14 +162,6 @@
160 compatible = "active-semi,act8945a"; 162 compatible = "active-semi,act8945a";
161 reg = <0x5b>; 163 reg = <0x5b>;
162 active-semi,vsel-high; 164 active-semi,vsel-high;
163 active-semi,chglev-gpios = <&pioA PIN_PA12 GPIO_ACTIVE_HIGH>;
164 active-semi,lbo-gpios = <&pioA PIN_PC8 GPIO_ACTIVE_LOW>;
165 active-semi,irq_gpios = <&pioA PIN_PB13 GPIO_ACTIVE_LOW>;
166 active-semi,input-voltage-threshold-microvolt = <6600>;
167 active-semi,precondition-timeout = <40>;
168 active-semi,total-timeout = <3>;
169 pinctrl-names = "default";
170 pinctrl-0 = <&pinctrl_charger_chglev &pinctrl_charger_lbo &pinctrl_charger_irq>;
171 status = "okay"; 165 status = "okay";
172 166
173 regulators { 167 regulators {
@@ -220,11 +214,28 @@
220 regulator-always-on; 214 regulator-always-on;
221 }; 215 };
222 }; 216 };
217
218 charger {
219 compatible = "active-semi,act8945a-charger";
220 pinctrl-names = "default";
221 pinctrl-0 = <&pinctrl_charger_chglev &pinctrl_charger_lbo &pinctrl_charger_irq>;
222 interrupt-parent = <&pioA>;
223 interrupts = <PIN_PB13 GPIO_ACTIVE_LOW>;
224
225 active-semi,chglev-gpios = <&pioA PIN_PA12 GPIO_ACTIVE_HIGH>;
226 active-semi,lbo-gpios = <&pioA PIN_PC8 GPIO_ACTIVE_LOW>;
227 active-semi,input-voltage-threshold-microvolt = <6600>;
228 active-semi,precondition-timeout = <40>;
229 active-semi,total-timeout = <3>;
230 status = "okay";
231 };
223 }; 232 };
224 }; 233 };
225 234
226 pwm0: pwm@f802c000 { 235 pwm0: pwm@f802c000 {
227 status = "okay"; 236 pinctrl-names = "default";
237 pinctrl-0 = <&pinctrl_pwm0_pwm2_default>;
238 status = "disabled"; /* conflict with leds */
228 }; 239 };
229 240
230 flx0: flexcom@f8034000 { 241 flx0: flexcom@f8034000 {
@@ -449,7 +460,7 @@
449 <PIN_PA7__SDMMC0_DAT5>, 460 <PIN_PA7__SDMMC0_DAT5>,
450 <PIN_PA8__SDMMC0_DAT6>, 461 <PIN_PA8__SDMMC0_DAT6>,
451 <PIN_PA9__SDMMC0_DAT7>; 462 <PIN_PA9__SDMMC0_DAT7>;
452 bias-pull-up; 463 bias-disable;
453 }; 464 };
454 465
455 ck_cd_rstn_vddsel { 466 ck_cd_rstn_vddsel {
@@ -468,7 +479,7 @@
468 <PIN_PA19__SDMMC1_DAT1>, 479 <PIN_PA19__SDMMC1_DAT1>,
469 <PIN_PA20__SDMMC1_DAT2>, 480 <PIN_PA20__SDMMC1_DAT2>,
470 <PIN_PA21__SDMMC1_DAT3>; 481 <PIN_PA21__SDMMC1_DAT3>;
471 bias-pull-up; 482 bias-disable;
472 }; 483 };
473 484
474 conf-ck_cd { 485 conf-ck_cd {
@@ -508,6 +519,11 @@
508 bias-disable; 519 bias-disable;
509 }; 520 };
510 521
522 pinctrl_pwm0_pwm2_default: pwm0_pwm2_default {
523 pinmux = <PIN_PB5__PWMH2>,
524 <PIN_PB6__PWML2>;
525 bias-pull-up;
526 };
511 }; 527 };
512 528
513 classd: classd@fc048000 { 529 classd: classd@fc048000 {
@@ -536,6 +552,7 @@
536 label = "PB_USER"; 552 label = "PB_USER";
537 gpios = <&pioA PIN_PB9 GPIO_ACTIVE_LOW>; 553 gpios = <&pioA PIN_PB9 GPIO_ACTIVE_LOW>;
538 linux,code = <0x104>; 554 linux,code = <0x104>;
555 wakeup-source;
539 }; 556 };
540 }; 557 };
541 558
@@ -543,7 +560,7 @@
543 compatible = "gpio-leds"; 560 compatible = "gpio-leds";
544 pinctrl-names = "default"; 561 pinctrl-names = "default";
545 pinctrl-0 = <&pinctrl_led_gpio_default>; 562 pinctrl-0 = <&pinctrl_led_gpio_default>;
546 status = "okay"; 563 status = "okay"; /* conflict with pwm0 */
547 564
548 red { 565 red {
549 label = "red"; 566 label = "red";
diff --git a/arch/arm/boot/dts/at91-sama5d3_xplained.dts b/arch/arm/boot/dts/at91-sama5d3_xplained.dts
index 3af088d2cba7..40879aded680 100644
--- a/arch/arm/boot/dts/at91-sama5d3_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d3_xplained.dts
@@ -235,14 +235,14 @@
235 }; 235 };
236 }; 236 };
237 237
238 usb0: gadget@00500000 { 238 usb0: gadget@500000 {
239 atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>; /* PE9, conflicts with A9 */ 239 atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>; /* PE9, conflicts with A9 */
240 pinctrl-names = "default"; 240 pinctrl-names = "default";
241 pinctrl-0 = <&pinctrl_usba_vbus>; 241 pinctrl-0 = <&pinctrl_usba_vbus>;
242 status = "okay"; 242 status = "okay";
243 }; 243 };
244 244
245 usb1: ohci@00600000 { 245 usb1: ohci@600000 {
246 num-ports = <3>; 246 num-ports = <3>;
247 atmel,vbus-gpio = <0 247 atmel,vbus-gpio = <0
248 &pioE 3 GPIO_ACTIVE_LOW 248 &pioE 3 GPIO_ACTIVE_LOW
@@ -251,7 +251,7 @@
251 status = "okay"; 251 status = "okay";
252 }; 252 };
253 253
254 usb2: ehci@00700000 { 254 usb2: ehci@700000 {
255 status = "okay"; 255 status = "okay";
256 }; 256 };
257 257
diff --git a/arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts b/arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts
index 84be29f38dae..fe05aaa7ac87 100644
--- a/arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts
+++ b/arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts
@@ -21,14 +21,14 @@
21 }; 21 };
22 22
23 ahb { 23 ahb {
24 usb0: gadget@00400000 { 24 usb0: gadget@400000 {
25 atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>; 25 atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>;
26 pinctrl-names = "default"; 26 pinctrl-names = "default";
27 pinctrl-0 = <&pinctrl_usba_vbus>; 27 pinctrl-0 = <&pinctrl_usba_vbus>;
28 status = "okay"; 28 status = "okay";
29 }; 29 };
30 30
31 usb1: ohci@00500000 { 31 usb1: ohci@500000 {
32 num-ports = <3>; 32 num-ports = <3>;
33 atmel,vbus-gpio = <0 33 atmel,vbus-gpio = <0
34 &pioE 11 GPIO_ACTIVE_LOW 34 &pioE 11 GPIO_ACTIVE_LOW
@@ -37,7 +37,7 @@
37 status = "okay"; 37 status = "okay";
38 }; 38 };
39 39
40 usb2: ehci@00600000 { 40 usb2: ehci@600000 {
41 status = "okay"; 41 status = "okay";
42 }; 42 };
43 43
diff --git a/arch/arm/boot/dts/at91-sama5d4_xplained.dts b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
index cf712444b2c2..29ab17a97f9a 100644
--- a/arch/arm/boot/dts/at91-sama5d4_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
@@ -170,14 +170,14 @@
170 }; 170 };
171 }; 171 };
172 172
173 usb0: gadget@00400000 { 173 usb0: gadget@400000 {
174 atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>; 174 atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>;
175 pinctrl-names = "default"; 175 pinctrl-names = "default";
176 pinctrl-0 = <&pinctrl_usba_vbus>; 176 pinctrl-0 = <&pinctrl_usba_vbus>;
177 status = "okay"; 177 status = "okay";
178 }; 178 };
179 179
180 usb1: ohci@00500000 { 180 usb1: ohci@500000 {
181 num-ports = <3>; 181 num-ports = <3>;
182 atmel,vbus-gpio = <0 182 atmel,vbus-gpio = <0
183 &pioE 11 GPIO_ACTIVE_HIGH 183 &pioE 11 GPIO_ACTIVE_HIGH
@@ -186,7 +186,7 @@
186 status = "okay"; 186 status = "okay";
187 }; 187 };
188 188
189 usb2: ehci@00600000 { 189 usb2: ehci@600000 {
190 status = "okay"; 190 status = "okay";
191 }; 191 };
192 192
diff --git a/arch/arm/boot/dts/at91-sama5d4ek.dts b/arch/arm/boot/dts/at91-sama5d4ek.dts
index bae5248f126e..5b7ee92e32a7 100644
--- a/arch/arm/boot/dts/at91-sama5d4ek.dts
+++ b/arch/arm/boot/dts/at91-sama5d4ek.dts
@@ -216,14 +216,14 @@
216 }; 216 };
217 }; 217 };
218 218
219 usb0: gadget@00400000 { 219 usb0: gadget@400000 {
220 atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>; 220 atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>;
221 pinctrl-names = "default"; 221 pinctrl-names = "default";
222 pinctrl-0 = <&pinctrl_usba_vbus>; 222 pinctrl-0 = <&pinctrl_usba_vbus>;
223 status = "okay"; 223 status = "okay";
224 }; 224 };
225 225
226 usb1: ohci@00500000 { 226 usb1: ohci@500000 {
227 num-ports = <3>; 227 num-ports = <3>;
228 atmel,vbus-gpio = <0 /* &pioE 10 GPIO_ACTIVE_LOW */ 228 atmel,vbus-gpio = <0 /* &pioE 10 GPIO_ACTIVE_LOW */
229 &pioE 11 GPIO_ACTIVE_LOW 229 &pioE 11 GPIO_ACTIVE_LOW
@@ -232,7 +232,7 @@
232 status = "okay"; 232 status = "okay";
233 }; 233 };
234 234
235 usb2: ehci@00600000 { 235 usb2: ehci@600000 {
236 status = "okay"; 236 status = "okay";
237 }; 237 };
238 238
diff --git a/arch/arm/boot/dts/at91-vinco.dts b/arch/arm/boot/dts/at91-vinco.dts
index e0c0b2897a49..9f6005708ea8 100644
--- a/arch/arm/boot/dts/at91-vinco.dts
+++ b/arch/arm/boot/dts/at91-vinco.dts
@@ -180,14 +180,14 @@
180 }; 180 };
181 }; 181 };
182 182
183 usb0: gadget@00400000 { 183 usb0: gadget@400000 {
184 atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>; 184 atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>;
185 pinctrl-names = "default"; 185 pinctrl-names = "default";
186 pinctrl-0 = <&pinctrl_usba_vbus>; 186 pinctrl-0 = <&pinctrl_usba_vbus>;
187 status = "disable"; 187 status = "disable";
188 }; 188 };
189 189
190 usb1: ohci@00500000 { 190 usb1: ohci@500000 {
191 num-ports = <3>; 191 num-ports = <3>;
192 atmel,vbus-gpio = <0 192 atmel,vbus-gpio = <0
193 &pioE 11 GPIO_ACTIVE_LOW 193 &pioE 11 GPIO_ACTIVE_LOW
@@ -196,7 +196,7 @@
196 status = "disable"; 196 status = "disable";
197 }; 197 };
198 198
199 usb2: ehci@00600000 { 199 usb2: ehci@600000 {
200 /* 4G Modem */ 200 /* 4G Modem */
201 status = "okay"; 201 status = "okay";
202 }; 202 };
diff --git a/arch/arm/boot/dts/at91rm9200.dtsi b/arch/arm/boot/dts/at91rm9200.dtsi
index f057e0b15a6f..da622bf45b4a 100644
--- a/arch/arm/boot/dts/at91rm9200.dtsi
+++ b/arch/arm/boot/dts/at91rm9200.dtsi
@@ -66,7 +66,7 @@
66 }; 66 };
67 }; 67 };
68 68
69 sram: sram@00200000 { 69 sram: sram@200000 {
70 compatible = "mmio-sram"; 70 compatible = "mmio-sram";
71 reg = <0x00200000 0x4000>; 71 reg = <0x00200000 0x4000>;
72 }; 72 };
@@ -938,7 +938,7 @@
938 status = "disabled"; 938 status = "disabled";
939 }; 939 };
940 940
941 usb0: ohci@00300000 { 941 usb0: ohci@300000 {
942 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 942 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
943 reg = <0x00300000 0x100000>; 943 reg = <0x00300000 0x100000>;
944 interrupts = <23 IRQ_TYPE_LEVEL_HIGH 2>; 944 interrupts = <23 IRQ_TYPE_LEVEL_HIGH 2>;
diff --git a/arch/arm/boot/dts/at91rm9200ek.dts b/arch/arm/boot/dts/at91rm9200ek.dts
index f90e1c2d3caa..33192d0cefee 100644
--- a/arch/arm/boot/dts/at91rm9200ek.dts
+++ b/arch/arm/boot/dts/at91rm9200ek.dts
@@ -78,7 +78,7 @@
78 }; 78 };
79 }; 79 };
80 80
81 usb0: ohci@00300000 { 81 usb0: ohci@300000 {
82 num-ports = <2>; 82 num-ports = <2>;
83 status = "okay"; 83 status = "okay";
84 }; 84 };
diff --git a/arch/arm/boot/dts/at91sam9260.dtsi b/arch/arm/boot/dts/at91sam9260.dtsi
index 6582f3cca929..bc655e7332d6 100644
--- a/arch/arm/boot/dts/at91sam9260.dtsi
+++ b/arch/arm/boot/dts/at91sam9260.dtsi
@@ -69,7 +69,7 @@
69 }; 69 };
70 }; 70 };
71 71
72 sram0: sram@002ff000 { 72 sram0: sram@2ff000 {
73 compatible = "mmio-sram"; 73 compatible = "mmio-sram";
74 reg = <0x002ff000 0x2000>; 74 reg = <0x002ff000 0x2000>;
75 }; 75 };
diff --git a/arch/arm/boot/dts/at91sam9261.dtsi b/arch/arm/boot/dts/at91sam9261.dtsi
index a05353f96151..66876019101d 100644
--- a/arch/arm/boot/dts/at91sam9261.dtsi
+++ b/arch/arm/boot/dts/at91sam9261.dtsi
@@ -60,7 +60,7 @@
60 }; 60 };
61 }; 61 };
62 62
63 sram: sram@00300000 { 63 sram: sram@300000 {
64 compatible = "mmio-sram"; 64 compatible = "mmio-sram";
65 reg = <0x00300000 0x28000>; 65 reg = <0x00300000 0x28000>;
66 }; 66 };
@@ -71,7 +71,7 @@
71 #size-cells = <1>; 71 #size-cells = <1>;
72 ranges; 72 ranges;
73 73
74 usb0: ohci@00500000 { 74 usb0: ohci@500000 {
75 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 75 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
76 reg = <0x00500000 0x100000>; 76 reg = <0x00500000 0x100000>;
77 interrupts = <20 IRQ_TYPE_LEVEL_HIGH 2>; 77 interrupts = <20 IRQ_TYPE_LEVEL_HIGH 2>;
diff --git a/arch/arm/boot/dts/at91sam9261ek.dts b/arch/arm/boot/dts/at91sam9261ek.dts
index 157e1493e6eb..960d6940ebf6 100644
--- a/arch/arm/boot/dts/at91sam9261ek.dts
+++ b/arch/arm/boot/dts/at91sam9261ek.dts
@@ -32,7 +32,7 @@
32 }; 32 };
33 33
34 ahb { 34 ahb {
35 usb0: ohci@00500000 { 35 usb0: ohci@500000 {
36 status = "okay"; 36 status = "okay";
37 }; 37 };
38 38
diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi
index ed4b564f8de5..e54f14d36b6f 100644
--- a/arch/arm/boot/dts/at91sam9263.dtsi
+++ b/arch/arm/boot/dts/at91sam9263.dtsi
@@ -62,12 +62,12 @@
62 }; 62 };
63 }; 63 };
64 64
65 sram0: sram@00300000 { 65 sram0: sram@300000 {
66 compatible = "mmio-sram"; 66 compatible = "mmio-sram";
67 reg = <0x00300000 0x14000>; 67 reg = <0x00300000 0x14000>;
68 }; 68 };
69 69
70 sram1: sram@00500000 { 70 sram1: sram@500000 {
71 compatible = "mmio-sram"; 71 compatible = "mmio-sram";
72 reg = <0x00500000 0x4000>; 72 reg = <0x00500000 0x4000>;
73 }; 73 };
@@ -1010,7 +1010,7 @@
1010 status = "disabled"; 1010 status = "disabled";
1011 }; 1011 };
1012 1012
1013 usb0: ohci@00a00000 { 1013 usb0: ohci@a00000 {
1014 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 1014 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
1015 reg = <0x00a00000 0x100000>; 1015 reg = <0x00a00000 0x100000>;
1016 interrupts = <29 IRQ_TYPE_LEVEL_HIGH 2>; 1016 interrupts = <29 IRQ_TYPE_LEVEL_HIGH 2>;
diff --git a/arch/arm/boot/dts/at91sam9263ek.dts b/arch/arm/boot/dts/at91sam9263ek.dts
index 10a0925da10e..5a2e1af793f5 100644
--- a/arch/arm/boot/dts/at91sam9263ek.dts
+++ b/arch/arm/boot/dts/at91sam9263ek.dts
@@ -191,7 +191,7 @@
191 }; 191 };
192 }; 192 };
193 193
194 usb0: ohci@00a00000 { 194 usb0: ohci@a00000 {
195 num-ports = <2>; 195 num-ports = <2>;
196 status = "okay"; 196 status = "okay";
197 atmel,vbus-gpio = <&pioA 24 GPIO_ACTIVE_HIGH 197 atmel,vbus-gpio = <&pioA 24 GPIO_ACTIVE_HIGH
diff --git a/arch/arm/boot/dts/at91sam9g20.dtsi b/arch/arm/boot/dts/at91sam9g20.dtsi
index f59301618163..90705ee6008b 100644
--- a/arch/arm/boot/dts/at91sam9g20.dtsi
+++ b/arch/arm/boot/dts/at91sam9g20.dtsi
@@ -16,11 +16,11 @@
16 reg = <0x20000000 0x08000000>; 16 reg = <0x20000000 0x08000000>;
17 }; 17 };
18 18
19 sram0: sram@002ff000 { 19 sram0: sram@2ff000 {
20 status = "disabled"; 20 status = "disabled";
21 }; 21 };
22 22
23 sram1: sram@002fc000 { 23 sram1: sram@2fc000 {
24 compatible = "mmio-sram"; 24 compatible = "mmio-sram";
25 reg = <0x002fc000 0x8000>; 25 reg = <0x002fc000 0x8000>;
26 }; 26 };
diff --git a/arch/arm/boot/dts/at91sam9g45.dtsi b/arch/arm/boot/dts/at91sam9g45.dtsi
index 64fa3f9a39d3..2b127ca7aaa0 100644
--- a/arch/arm/boot/dts/at91sam9g45.dtsi
+++ b/arch/arm/boot/dts/at91sam9g45.dtsi
@@ -74,7 +74,7 @@
74 }; 74 };
75 }; 75 };
76 76
77 sram: sram@00300000 { 77 sram: sram@300000 {
78 compatible = "mmio-sram"; 78 compatible = "mmio-sram";
79 reg = <0x00300000 0x10000>; 79 reg = <0x00300000 0x10000>;
80 }; 80 };
@@ -1313,7 +1313,7 @@
1313 status = "disabled"; 1313 status = "disabled";
1314 }; 1314 };
1315 1315
1316 usb0: ohci@00700000 { 1316 usb0: ohci@700000 {
1317 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 1317 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
1318 reg = <0x00700000 0x100000>; 1318 reg = <0x00700000 0x100000>;
1319 interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>; 1319 interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
@@ -1322,7 +1322,7 @@
1322 status = "disabled"; 1322 status = "disabled";
1323 }; 1323 };
1324 1324
1325 usb1: ehci@00800000 { 1325 usb1: ehci@800000 {
1326 compatible = "atmel,at91sam9g45-ehci", "usb-ehci"; 1326 compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
1327 reg = <0x00800000 0x100000>; 1327 reg = <0x00800000 0x100000>;
1328 interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>; 1328 interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
diff --git a/arch/arm/boot/dts/at91sam9m10g45ek.dts b/arch/arm/boot/dts/at91sam9m10g45ek.dts
index 94c52c555f83..e922552a04cb 100644
--- a/arch/arm/boot/dts/at91sam9m10g45ek.dts
+++ b/arch/arm/boot/dts/at91sam9m10g45ek.dts
@@ -290,14 +290,14 @@
290 }; 290 };
291 }; 291 };
292 292
293 usb0: ohci@00700000 { 293 usb0: ohci@700000 {
294 status = "okay"; 294 status = "okay";
295 num-ports = <2>; 295 num-ports = <2>;
296 atmel,vbus-gpio = <&pioD 1 GPIO_ACTIVE_LOW 296 atmel,vbus-gpio = <&pioD 1 GPIO_ACTIVE_LOW
297 &pioD 3 GPIO_ACTIVE_LOW>; 297 &pioD 3 GPIO_ACTIVE_LOW>;
298 }; 298 };
299 299
300 usb1: ehci@00800000 { 300 usb1: ehci@800000 {
301 status = "okay"; 301 status = "okay";
302 }; 302 };
303 }; 303 };
diff --git a/arch/arm/boot/dts/at91sam9n12.dtsi b/arch/arm/boot/dts/at91sam9n12.dtsi
index 06516d02d351..e0ac824e0785 100644
--- a/arch/arm/boot/dts/at91sam9n12.dtsi
+++ b/arch/arm/boot/dts/at91sam9n12.dtsi
@@ -64,7 +64,7 @@
64 }; 64 };
65 }; 65 };
66 66
67 sram: sram@00300000 { 67 sram: sram@300000 {
68 compatible = "mmio-sram"; 68 compatible = "mmio-sram";
69 reg = <0x00300000 0x8000>; 69 reg = <0x00300000 0x8000>;
70 }; 70 };
@@ -1018,7 +1018,7 @@
1018 }; 1018 };
1019 }; 1019 };
1020 1020
1021 usb0: ohci@00500000 { 1021 usb0: ohci@500000 {
1022 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 1022 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
1023 reg = <0x00500000 0x00100000>; 1023 reg = <0x00500000 0x00100000>;
1024 interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>; 1024 interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
diff --git a/arch/arm/boot/dts/at91sam9n12ek.dts b/arch/arm/boot/dts/at91sam9n12ek.dts
index 5bea8c59b115..212562aedf5e 100644
--- a/arch/arm/boot/dts/at91sam9n12ek.dts
+++ b/arch/arm/boot/dts/at91sam9n12ek.dts
@@ -169,7 +169,7 @@
169 }; 169 };
170 }; 170 };
171 171
172 usb0: ohci@00500000 { 172 usb0: ohci@500000 {
173 num-ports = <1>; 173 num-ports = <1>;
174 atmel,vbus-gpio = <&pioB 7 GPIO_ACTIVE_LOW>; 174 atmel,vbus-gpio = <&pioB 7 GPIO_ACTIVE_LOW>;
175 status = "okay"; 175 status = "okay";
diff --git a/arch/arm/boot/dts/at91sam9rl.dtsi b/arch/arm/boot/dts/at91sam9rl.dtsi
index 7768342a6638..52f0e9ef8f67 100644
--- a/arch/arm/boot/dts/at91sam9rl.dtsi
+++ b/arch/arm/boot/dts/at91sam9rl.dtsi
@@ -70,7 +70,7 @@
70 }; 70 };
71 }; 71 };
72 72
73 sram: sram@00300000 { 73 sram: sram@300000 {
74 compatible = "mmio-sram"; 74 compatible = "mmio-sram";
75 reg = <0x00300000 0x10000>; 75 reg = <0x00300000 0x10000>;
76 }; 76 };
@@ -81,7 +81,7 @@
81 #size-cells = <1>; 81 #size-cells = <1>;
82 ranges; 82 ranges;
83 83
84 fb0: fb@00500000 { 84 fb0: fb@500000 {
85 compatible = "atmel,at91sam9rl-lcdc"; 85 compatible = "atmel,at91sam9rl-lcdc";
86 reg = <0x00500000 0x1000>; 86 reg = <0x00500000 0x1000>;
87 interrupts = <23 IRQ_TYPE_LEVEL_HIGH 3>; 87 interrupts = <23 IRQ_TYPE_LEVEL_HIGH 3>;
diff --git a/arch/arm/boot/dts/at91sam9rlek.dts b/arch/arm/boot/dts/at91sam9rlek.dts
index 9047c168298a..ea6ed98960c9 100644
--- a/arch/arm/boot/dts/at91sam9rlek.dts
+++ b/arch/arm/boot/dts/at91sam9rlek.dts
@@ -32,7 +32,7 @@
32 }; 32 };
33 33
34 ahb { 34 ahb {
35 fb0: fb@00500000 { 35 fb0: fb@500000 {
36 display = <&display0>; 36 display = <&display0>;
37 status = "okay"; 37 status = "okay";
38 38
diff --git a/arch/arm/boot/dts/at91sam9x25ek.dts b/arch/arm/boot/dts/at91sam9x25ek.dts
index 494864836e83..f705a3165656 100644
--- a/arch/arm/boot/dts/at91sam9x25ek.dts
+++ b/arch/arm/boot/dts/at91sam9x25ek.dts
@@ -16,6 +16,10 @@
16 16
17 ahb { 17 ahb {
18 apb { 18 apb {
19 can1: can@f8004000 {
20 status = "okay";
21 };
22
19 macb0: ethernet@f802c000 { 23 macb0: ethernet@f802c000 {
20 phy-mode = "rmii"; 24 phy-mode = "rmii";
21 status = "okay"; 25 status = "okay";
@@ -25,6 +29,12 @@
25 phy-mode = "rmii"; 29 phy-mode = "rmii";
26 status = "okay"; 30 status = "okay";
27 }; 31 };
32
33 pwm0: pwm@f8034000 {
34 pinctrl-names = "default";
35 pinctrl-0 = <&pinctrl_pwm0_pwm0_1>;
36 status = "okay";
37 };
28 }; 38 };
29 }; 39 };
30}; 40};
diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi
index 57f307541d2e..ad779a7dfefd 100644
--- a/arch/arm/boot/dts/at91sam9x5.dtsi
+++ b/arch/arm/boot/dts/at91sam9x5.dtsi
@@ -72,7 +72,7 @@
72 }; 72 };
73 }; 73 };
74 74
75 sram: sram@00300000 { 75 sram: sram@300000 {
76 compatible = "mmio-sram"; 76 compatible = "mmio-sram";
77 reg = <0x00300000 0x8000>; 77 reg = <0x00300000 0x8000>;
78 }; 78 };
@@ -1231,7 +1231,7 @@
1231 }; 1231 };
1232 }; 1232 };
1233 1233
1234 usb0: ohci@00600000 { 1234 usb0: ohci@600000 {
1235 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 1235 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
1236 reg = <0x00600000 0x100000>; 1236 reg = <0x00600000 0x100000>;
1237 interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>; 1237 interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
@@ -1240,7 +1240,7 @@
1240 status = "disabled"; 1240 status = "disabled";
1241 }; 1241 };
1242 1242
1243 usb1: ehci@00700000 { 1243 usb1: ehci@700000 {
1244 compatible = "atmel,at91sam9g45-ehci", "usb-ehci"; 1244 compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
1245 reg = <0x00700000 0x100000>; 1245 reg = <0x00700000 0x100000>;
1246 interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>; 1246 interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
diff --git a/arch/arm/boot/dts/at91sam9x5ek.dtsi b/arch/arm/boot/dts/at91sam9x5ek.dtsi
index 9d2bbc41a7b0..4a2e13c8bf00 100644
--- a/arch/arm/boot/dts/at91sam9x5ek.dtsi
+++ b/arch/arm/boot/dts/at91sam9x5ek.dtsi
@@ -50,6 +50,8 @@
50 }; 50 };
51 51
52 usart0: serial@f801c000 { 52 usart0: serial@f801c000 {
53 atmel,use-dma-rx;
54 atmel,use-dma-tx;
53 status = "okay"; 55 status = "okay";
54 }; 56 };
55 57
@@ -134,7 +136,7 @@
134 }; 136 };
135 }; 137 };
136 138
137 usb0: ohci@00600000 { 139 usb0: ohci@600000 {
138 status = "okay"; 140 status = "okay";
139 num-ports = <3>; 141 num-ports = <3>;
140 atmel,vbus-gpio = <0 /* &pioD 18 GPIO_ACTIVE_LOW *//* Activate to have access to port A */ 142 atmel,vbus-gpio = <0 /* &pioD 18 GPIO_ACTIVE_LOW *//* Activate to have access to port A */
@@ -143,7 +145,7 @@
143 >; 145 >;
144 }; 146 };
145 147
146 usb1: ehci@00700000 { 148 usb1: ehci@700000 {
147 status = "okay"; 149 status = "okay";
148 }; 150 };
149 }; 151 };
diff --git a/arch/arm/boot/dts/at91sam9xe.dtsi b/arch/arm/boot/dts/at91sam9xe.dtsi
index 0278f63b2daf..1304452f0fae 100644
--- a/arch/arm/boot/dts/at91sam9xe.dtsi
+++ b/arch/arm/boot/dts/at91sam9xe.dtsi
@@ -49,11 +49,11 @@
49 model = "Atmel AT91SAM9XE family SoC"; 49 model = "Atmel AT91SAM9XE family SoC";
50 compatible = "atmel,at91sam9xe", "atmel,at91sam9260"; 50 compatible = "atmel,at91sam9xe", "atmel,at91sam9260";
51 51
52 sram0: sram@002ff000 { 52 sram0: sram@2ff000 {
53 status = "disabled"; 53 status = "disabled";
54 }; 54 };
55 55
56 sram1: sram@00300000 { 56 sram1: sram@300000 {
57 compatible = "mmio-sram"; 57 compatible = "mmio-sram";
58 reg = <0x00300000 0x4000>; 58 reg = <0x00300000 0x4000>;
59 }; 59 };
diff --git a/arch/arm/boot/dts/axp209.dtsi b/arch/arm/boot/dts/axp209.dtsi
index 3c8fa26e87b7..897103e0a79b 100644
--- a/arch/arm/boot/dts/axp209.dtsi
+++ b/arch/arm/boot/dts/axp209.dtsi
@@ -107,7 +107,7 @@
107 }; 107 };
108 }; 108 };
109 109
110 usb_power_supply: usb_power_supply { 110 usb_power_supply: usb-power-supply {
111 compatible = "x-powers,axp202-usb-power-supply"; 111 compatible = "x-powers,axp202-usb-power-supply";
112 status = "disabled"; 112 status = "disabled";
113 }; 113 };
diff --git a/arch/arm/boot/dts/axp81x.dtsi b/arch/arm/boot/dts/axp81x.dtsi
new file mode 100644
index 000000000000..73b761f850c5
--- /dev/null
+++ b/arch/arm/boot/dts/axp81x.dtsi
@@ -0,0 +1,139 @@
1/*
2 * Copyright 2017 Chen-Yu Tsai
3 *
4 * Chen-Yu Tsai <wens@csie.org>
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/* AXP813/818 Integrated Power Management Chip */
46
47&axp81x {
48 interrupt-controller;
49 #interrupt-cells = <1>;
50
51 regulators {
52 /* Default work frequency for buck regulators */
53 x-powers,dcdc-freq = <3000>;
54
55 reg_dcdc1: dcdc1 {
56 };
57
58 reg_dcdc2: dcdc2 {
59 };
60
61 reg_dcdc3: dcdc3 {
62 };
63
64 reg_dcdc4: dcdc4 {
65 };
66
67 reg_dcdc5: dcdc5 {
68 };
69
70 reg_dcdc6: dcdc6 {
71 };
72
73 reg_dcdc7: dcdc7 {
74 };
75
76 reg_aldo1: aldo1 {
77 };
78
79 reg_aldo2: aldo2 {
80 };
81
82 reg_aldo3: aldo3 {
83 };
84
85 reg_dldo1: dldo1 {
86 };
87
88 reg_dldo2: dldo2 {
89 };
90
91 reg_dldo3: dldo3 {
92 };
93
94 reg_dldo4: dldo4 {
95 };
96
97 reg_eldo1: eldo1 {
98 };
99
100 reg_eldo2: eldo2 {
101 };
102
103 reg_eldo3: eldo3 {
104 };
105
106 reg_fldo1: fldo1 {
107 };
108
109 reg_fldo2: fldo2 {
110 };
111
112 reg_fldo3: fldo3 {
113 };
114
115 reg_ldo_io0: ldo-io0 {
116 /* Disable by default to avoid conflicts with GPIO */
117 status = "disabled";
118 };
119
120 reg_ldo_io1: ldo-io1 {
121 /* Disable by default to avoid conflicts with GPIO */
122 status = "disabled";
123 };
124
125 reg_rtc_ldo: rtc-ldo {
126 /* RTC_LDO is a fixed, always-on regulator */
127 regulator-always-on;
128 regulator-min-microvolt = <1800000>;
129 regulator-max-microvolt = <1800000>;
130 };
131
132 reg_sw: sw {
133 };
134
135 reg_drivevbus: drivevbus {
136 status = "disabled";
137 };
138 };
139};
diff --git a/arch/arm/boot/dts/bcm-cygnus.dtsi b/arch/arm/boot/dts/bcm-cygnus.dtsi
index 7c957ea06c66..699fdf94d139 100644
--- a/arch/arm/boot/dts/bcm-cygnus.dtsi
+++ b/arch/arm/boot/dts/bcm-cygnus.dtsi
@@ -96,14 +96,14 @@
96 #address-cells = <1>; 96 #address-cells = <1>;
97 #size-cells = <1>; 97 #size-cells = <1>;
98 98
99 otp: otp@0301c800 { 99 otp: otp@301c800 {
100 compatible = "brcm,ocotp"; 100 compatible = "brcm,ocotp";
101 reg = <0x0301c800 0x2c>; 101 reg = <0x0301c800 0x2c>;
102 brcm,ocotp-size = <2048>; 102 brcm,ocotp-size = <2048>;
103 status = "disabled"; 103 status = "disabled";
104 }; 104 };
105 105
106 pcie_phy: phy@0301d0a0 { 106 pcie_phy: phy@301d0a0 {
107 compatible = "brcm,cygnus-pcie-phy"; 107 compatible = "brcm,cygnus-pcie-phy";
108 reg = <0x0301d0a0 0x14>; 108 reg = <0x0301d0a0 0x14>;
109 #address-cells = <1>; 109 #address-cells = <1>;
@@ -120,7 +120,7 @@
120 }; 120 };
121 }; 121 };
122 122
123 pinctrl: pinctrl@0301d0c8 { 123 pinctrl: pinctrl@301d0c8 {
124 compatible = "brcm,cygnus-pinmux"; 124 compatible = "brcm,cygnus-pinmux";
125 reg = <0x0301d0c8 0x30>, 125 reg = <0x0301d0c8 0x30>,
126 <0x0301d24c 0x2c>; 126 <0x0301d24c 0x2c>;
@@ -141,7 +141,7 @@
141 }; 141 };
142 }; 142 };
143 143
144 mailbox: mailbox@03024024 { 144 mailbox: mailbox@3024024 {
145 compatible = "brcm,iproc-mailbox"; 145 compatible = "brcm,iproc-mailbox";
146 reg = <0x03024024 0x40>; 146 reg = <0x03024024 0x40>;
147 interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>; 147 interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
@@ -150,7 +150,7 @@
150 #mbox-cells = <1>; 150 #mbox-cells = <1>;
151 }; 151 };
152 152
153 gpio_crmu: gpio@03024800 { 153 gpio_crmu: gpio@3024800 {
154 compatible = "brcm,cygnus-crmu-gpio"; 154 compatible = "brcm,cygnus-crmu-gpio";
155 reg = <0x03024800 0x50>, 155 reg = <0x03024800 0x50>,
156 <0x03024008 0x18>; 156 <0x03024008 0x18>;
@@ -473,6 +473,16 @@
473 status = "disabled"; 473 status = "disabled";
474 }; 474 };
475 475
476 clcd: clcd@180a0000 {
477 compatible = "arm,pl111", "arm,primecell";
478 reg = <0x180a0000 0x1000>;
479 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
480 interrupt-names = "combined";
481 clocks = <&axi41_clk>, <&apb_clk>;
482 clock-names = "clcdclk", "apb_pclk";
483 status = "disabled";
484 };
485
476 v3d: v3d@180a2000 { 486 v3d: v3d@180a2000 {
477 compatible = "brcm,cygnus-v3d"; 487 compatible = "brcm,cygnus-v3d";
478 reg = <0x180a2000 0x1000>; 488 reg = <0x180a2000 0x1000>;
@@ -575,6 +585,14 @@
575 status = "disabled"; 585 status = "disabled";
576 }; 586 };
577 587
588 pwm: pwm@180aa500 {
589 compatible = "brcm,kona-pwm";
590 reg = <0x180aa500 0xc4>;
591 #pwm-cells = <3>;
592 clocks = <&asiu_clks BCM_CYGNUS_ASIU_PWM_CLK>;
593 status = "disabled";
594 };
595
578 keypad: keypad@180ac000 { 596 keypad: keypad@180ac000 {
579 compatible = "brcm,bcm-keypad"; 597 compatible = "brcm,bcm-keypad";
580 reg = <0x180ac000 0x14c>; 598 reg = <0x180ac000 0x14c>;
diff --git a/arch/arm/boot/dts/bcm-hr2.dtsi b/arch/arm/boot/dts/bcm-hr2.dtsi
new file mode 100644
index 000000000000..3f9cedd8011f
--- /dev/null
+++ b/arch/arm/boot/dts/bcm-hr2.dtsi
@@ -0,0 +1,368 @@
1/*
2 * BSD LICENSE
3 *
4 * Copyright(c) 2017 Broadcom. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 * * Neither the name of Broadcom Corporation nor the names of its
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33#include <dt-bindings/interrupt-controller/arm-gic.h>
34#include <dt-bindings/interrupt-controller/irq.h>
35
36/ {
37 compatible = "brcm,hr2";
38 model = "Broadcom Hurricane 2 SoC";
39 interrupt-parent = <&gic>;
40 #address-cells = <1>;
41 #size-cells = <1>;
42
43 cpus {
44 #address-cells = <1>;
45 #size-cells = <0>;
46
47 cpu0: cpu@0 {
48 device_type = "cpu";
49 compatible = "arm,cortex-a9";
50 next-level-cache = <&L2>;
51 reg = <0x0>;
52 };
53 };
54
55 pmu {
56 compatible = "arm,cortex-a9-pmu";
57 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH
58 GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
59 interrupt-affinity = <&cpu0>;
60 };
61
62 mpcore@19000000 {
63 compatible = "simple-bus";
64 ranges = <0x00000000 0x19000000 0x00023000>;
65 #address-cells = <1>;
66 #size-cells = <1>;
67
68 a9pll: arm_clk@0 {
69 #clock-cells = <0>;
70 compatible = "brcm,hr2-armpll";
71 clocks = <&osc>;
72 reg = <0x0 0x1000>;
73 };
74
75 timer@20200 {
76 compatible = "arm,cortex-a9-global-timer";
77 reg = <0x20200 0x100>;
78 interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
79 clocks = <&periph_clk>;
80 };
81
82 twd-timer@20600 {
83 compatible = "arm,cortex-a9-twd-timer";
84 reg = <0x20600 0x20>;
85 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) |
86 IRQ_TYPE_LEVEL_HIGH)>;
87 clocks = <&periph_clk>;
88 };
89
90 twd-watchdog@20620 {
91 compatible = "arm,cortex-a9-twd-wdt";
92 reg = <0x20620 0x20>;
93 interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) |
94 IRQ_TYPE_LEVEL_HIGH)>;
95 clocks = <&periph_clk>;
96 };
97
98 gic: interrupt-controller@21000 {
99 compatible = "arm,cortex-a9-gic";
100 #interrupt-cells = <3>;
101 #address-cells = <0>;
102 interrupt-controller;
103 reg = <0x21000 0x1000>,
104 <0x20100 0x100>;
105 };
106
107 L2: l2-cache@22000 {
108 compatible = "arm,pl310-cache";
109 reg = <0x22000 0x1000>;
110 cache-unified;
111 cache-level = <2>;
112 };
113 };
114
115 clocks {
116 #address-cells = <1>;
117 #size-cells = <1>;
118 ranges;
119
120 osc: oscillator {
121 #clock-cells = <0>;
122 compatible = "fixed-clock";
123 clock-frequency = <25000000>;
124 };
125
126 periph_clk: periph_clk {
127 #clock-cells = <0>;
128 compatible = "fixed-factor-clock";
129 clocks = <&a9pll>;
130 clock-div = <2>;
131 clock-mult = <1>;
132 };
133 };
134
135 axi@18000000 {
136 compatible = "simple-bus";
137 ranges = <0x00000000 0x18000000 0x0011c40c>;
138 #address-cells = <1>;
139 #size-cells = <1>;
140
141 uart0: serial@300 {
142 compatible = "ns16550a";
143 reg = <0x0300 0x100>;
144 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
145 clocks = <&osc>;
146 status = "disabled";
147 };
148
149 uart1: serial@400 {
150 compatible = "ns16550a";
151 reg = <0x0400 0x100>;
152 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
153 clocks = <&osc>;
154 status = "disabled";
155 };
156
157 dma@20000 {
158 compatible = "arm,pl330", "arm,primecell";
159 reg = <0x20000 0x1000>;
160 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
161 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
162 <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
163 <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,
164 <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
165 <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
166 <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
167 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
168 <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
169 #dma-cells = <1>;
170 status = "disabled";
171 };
172
173 amac0: ethernet@22000 {
174 compatible = "brcm,nsp-amac";
175 reg = <0x22000 0x1000>,
176 <0x110000 0x1000>;
177 reg-names = "amac_base", "idm_base";
178 interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
179 status = "disabled";
180 };
181
182 nand: nand@26000 {
183 compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
184 reg = <0x26000 0x600>,
185 <0x11b408 0x600>,
186 <0x026f00 0x20>;
187 reg-names = "nand", "iproc-idm", "iproc-ext";
188 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
189
190 #address-cells = <1>;
191 #size-cells = <0>;
192
193 brcm,nand-has-wp;
194 };
195
196 gpiob: gpio@30000 {
197 compatible = "brcm,iproc-hr2-gpio", "brcm,iproc-gpio";
198 reg = <0x30000 0x50>;
199 #gpio-cells = <2>;
200 gpio-controller;
201 ngpios = <4>;
202 interrupt-controller;
203 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
204 };
205
206 pwm: pwm@31000 {
207 compatible = "brcm,iproc-pwm";
208 reg = <0x31000 0x28>;
209 clocks = <&osc>;
210 #pwm-cells = <3>;
211 status = "disabled";
212 };
213
214 rng: rng@33000 {
215 compatible = "brcm,bcm-nsp-rng";
216 reg = <0x33000 0x14>;
217 };
218
219 qspi: qspi@27200 {
220 compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi";
221 reg = <0x027200 0x184>,
222 <0x027000 0x124>,
223 <0x11c408 0x004>,
224 <0x0273a0 0x01c>;
225 reg-names = "mspi", "bspi", "intr_regs",
226 "intr_status_reg";
227 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
228 <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
229 <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>,
230 <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>,
231 <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>,
232 <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>,
233 <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
234 interrupt-names = "spi_lr_fullness_reached",
235 "spi_lr_session_aborted",
236 "spi_lr_impatient",
237 "spi_lr_session_done",
238 "spi_lr_overhead",
239 "mspi_done",
240 "mspi_halted";
241 num-cs = <2>;
242 #address-cells = <1>;
243 #size-cells = <0>;
244
245 /* partitions defined in board DTS */
246 };
247
248 ccbtimer0: timer@34000 {
249 compatible = "arm,sp804";
250 reg = <0x34000 0x1000>;
251 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
252 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
253 };
254
255 ccbtimer1: timer@35000 {
256 compatible = "arm,sp804";
257 reg = <0x35000 0x1000>;
258 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
259 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
260 };
261
262 i2c0: i2c@38000 {
263 compatible = "brcm,iproc-i2c";
264 reg = <0x38000 0x50>;
265 #address-cells = <1>;
266 #size-cells = <0>;
267 interrupts = <GIC_SPI 95 IRQ_TYPE_NONE>;
268 clock-frequency = <100000>;
269 };
270
271 watchdog@39000 {
272 compatible = "arm,sp805", "arm,primecell";
273 reg = <0x39000 0x1000>;
274 interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>;
275 };
276
277 i2c1: i2c@3b000 {
278 compatible = "brcm,iproc-i2c";
279 reg = <0x3b000 0x50>;
280 #address-cells = <1>;
281 #size-cells = <0>;
282 interrupts = <GIC_SPI 96 IRQ_TYPE_NONE>;
283 clock-frequency = <100000>;
284 };
285 };
286
287 pflash: nor@20000000 {
288 compatible = "cfi-flash", "jedec-flash";
289 reg = <0x20000000 0x04000000>;
290 status = "disabled";
291 #address-cells = <1>;
292 #size-cells = <1>;
293
294 /* partitions defined in board DTS */
295 };
296
297 pcie0: pcie@18012000 {
298 compatible = "brcm,iproc-pcie";
299 reg = <0x18012000 0x1000>;
300
301 #interrupt-cells = <1>;
302 interrupt-map-mask = <0 0 0 0>;
303 interrupt-map = <0 0 0 0 &gic GIC_SPI 186 IRQ_TYPE_NONE>;
304
305 linux,pci-domain = <0>;
306
307 bus-range = <0x00 0xff>;
308
309 #address-cells = <3>;
310 #size-cells = <2>;
311 device_type = "pci";
312
313 /* Note: The HW does not support I/O resources. So,
314 * only the memory resource range is being specified.
315 */
316 ranges = <0x82000000 0 0x08000000 0x08000000 0 0x8000000>;
317
318 status = "disabled";
319
320 msi-parent = <&msi0>;
321 msi0: msi-controller {
322 compatible = "brcm,iproc-msi";
323 msi-controller;
324 interrupt-parent = <&gic>;
325 interrupts = <GIC_SPI 182 IRQ_TYPE_NONE>,
326 <GIC_SPI 183 IRQ_TYPE_NONE>,
327 <GIC_SPI 184 IRQ_TYPE_NONE>,
328 <GIC_SPI 185 IRQ_TYPE_NONE>;
329 brcm,pcie-msi-inten;
330 };
331 };
332
333 pcie1: pcie@18013000 {
334 compatible = "brcm,iproc-pcie";
335 reg = <0x18013000 0x1000>;
336
337 #interrupt-cells = <1>;
338 interrupt-map-mask = <0 0 0 0>;
339 interrupt-map = <0 0 0 0 &gic GIC_SPI 192 IRQ_TYPE_NONE>;
340
341 linux,pci-domain = <1>;
342
343 bus-range = <0x00 0xff>;
344
345 #address-cells = <3>;
346 #size-cells = <2>;
347 device_type = "pci";
348
349 /* Note: The HW does not support I/O resources. So,
350 * only the memory resource range is being specified.
351 */
352 ranges = <0x82000000 0 0x40000000 0x40000000 0 0x8000000>;
353
354 status = "disabled";
355
356 msi-parent = <&msi1>;
357 msi1: msi-controller {
358 compatible = "brcm,iproc-msi";
359 msi-controller;
360 interrupt-parent = <&gic>;
361 interrupts = <GIC_SPI 188 IRQ_TYPE_NONE>,
362 <GIC_SPI 189 IRQ_TYPE_NONE>,
363 <GIC_SPI 190 IRQ_TYPE_NONE>,
364 <GIC_SPI 191 IRQ_TYPE_NONE>;
365 brcm,pcie-msi-inten;
366 };
367 };
368};
diff --git a/arch/arm/boot/dts/bcm-nsp.dtsi b/arch/arm/boot/dts/bcm-nsp.dtsi
index dff66974feed..528b9e3bc1da 100644
--- a/arch/arm/boot/dts/bcm-nsp.dtsi
+++ b/arch/arm/boot/dts/bcm-nsp.dtsi
@@ -75,7 +75,7 @@
75 #address-cells = <1>; 75 #address-cells = <1>;
76 #size-cells = <1>; 76 #size-cells = <1>;
77 77
78 a9pll: arm_clk@00000 { 78 a9pll: arm_clk@0 {
79 #clock-cells = <0>; 79 #clock-cells = <0>;
80 compatible = "brcm,nsp-armpll"; 80 compatible = "brcm,nsp-armpll";
81 clocks = <&osc>; 81 clocks = <&osc>;
@@ -164,7 +164,7 @@
164 #address-cells = <1>; 164 #address-cells = <1>;
165 #size-cells = <1>; 165 #size-cells = <1>;
166 166
167 gpioa: gpio@0020 { 167 gpioa: gpio@20 {
168 compatible = "brcm,nsp-gpio-a"; 168 compatible = "brcm,nsp-gpio-a";
169 reg = <0x0020 0x70>, 169 reg = <0x0020 0x70>,
170 <0x3f1c4 0x1c>; 170 <0x3f1c4 0x1c>;
@@ -176,7 +176,7 @@
176 gpio-ranges = <&pinctrl 0 0 32>; 176 gpio-ranges = <&pinctrl 0 0 32>;
177 }; 177 };
178 178
179 uart0: serial@0300 { 179 uart0: serial@300 {
180 compatible = "ns16550a"; 180 compatible = "ns16550a";
181 reg = <0x0300 0x100>; 181 reg = <0x0300 0x100>;
182 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 182 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
@@ -184,7 +184,7 @@
184 status = "disabled"; 184 status = "disabled";
185 }; 185 };
186 186
187 uart1: serial@0400 { 187 uart1: serial@400 {
188 compatible = "ns16550a"; 188 compatible = "ns16550a";
189 reg = <0x0400 0x100>; 189 reg = <0x0400 0x100>;
190 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 190 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
index eb1a28da57e3..a8844d033b3f 100644
--- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
+++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
@@ -30,6 +30,11 @@
30 pinctrl-names = "default"; 30 pinctrl-names = "default";
31 pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>; 31 pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>;
32 status = "okay"; 32 status = "okay";
33
34 bluetooth {
35 compatible = "brcm,bcm43438-bt";
36 max-speed = <2000000>;
37 };
33}; 38};
34 39
35/* uart1 is mapped to the pin header */ 40/* uart1 is mapped to the pin header */
diff --git a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
index c544ab302012..ba1c19b1b3eb 100644
--- a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
+++ b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
@@ -57,7 +57,8 @@
57 usb { 57 usb {
58 label = "bcm53xx:green:usb"; 58 label = "bcm53xx:green:usb";
59 gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>; 59 gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
60 linux,default-trigger = "none"; 60 trigger-sources = <&ohci_port2>, <&ehci_port2>;
61 linux,default-trigger = "usbport";
61 }; 62 };
62 63
63 status { 64 status {
diff --git a/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts b/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
new file mode 100644
index 000000000000..ecd22a246746
--- /dev/null
+++ b/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
@@ -0,0 +1,63 @@
1/*
2 * Copyright (C) 2017 Luxul Inc.
3 *
4 * Licensed under the ISC license.
5 */
6
7/dts-v1/;
8
9#include "bcm4708.dtsi"
10#include "bcm5301x-nand-cs0-bch8.dtsi"
11
12/ {
13 compatible = "luxul,abr-4500-v1", "brcm,bcm47094", "brcm,bcm4708";
14 model = "Luxul ABR-4500 V1";
15
16 chosen {
17 bootargs = "earlycon";
18 };
19
20 memory {
21 reg = <0x00000000 0x08000000
22 0x88000000 0x18000000>;
23 };
24
25 leds {
26 compatible = "gpio-leds";
27
28 status {
29 label = "bcm53xx:green:status";
30 gpios = <&chipcommon 20 GPIO_ACTIVE_LOW>;
31 linux,default-trigger = "timer";
32 };
33
34 usb3 {
35 label = "bcm53xx:green:usb3";
36 gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
37 trigger-sources = <&ohci_port1>, <&ehci_port1>,
38 <&xhci_port1>;
39 linux,default-trigger = "usbport";
40 };
41
42 };
43
44 gpio-keys {
45 compatible = "gpio-keys";
46 #address-cells = <1>;
47 #size-cells = <0>;
48
49 restart {
50 label = "Reset";
51 linux,code = <KEY_RESTART>;
52 gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
53 };
54 };
55};
56
57&usb3 {
58 vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
59};
60
61&spi_nor {
62 status = "okay";
63};
diff --git a/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts b/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
new file mode 100644
index 000000000000..15ffb1abc440
--- /dev/null
+++ b/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
@@ -0,0 +1,63 @@
1/*
2 * Copyright (C) 2017 Luxul Inc.
3 *
4 * Licensed under the ISC license.
5 */
6
7/dts-v1/;
8
9#include "bcm4708.dtsi"
10#include "bcm5301x-nand-cs0-bch8.dtsi"
11
12/ {
13 compatible = "luxul,xbr-4500-v1", "brcm,bcm47094", "brcm,bcm4708";
14 model = "Luxul XBR-4500 V1";
15
16 chosen {
17 bootargs = "earlycon";
18 };
19
20 memory {
21 reg = <0x00000000 0x08000000
22 0x88000000 0x18000000>;
23 };
24
25 leds {
26 compatible = "gpio-leds";
27
28 status {
29 label = "bcm53xx:green:status";
30 gpios = <&chipcommon 20 GPIO_ACTIVE_HIGH>;
31 linux,default-trigger = "timer";
32 };
33
34 usb3 {
35 label = "bcm53xx:green:usb3";
36 gpios = <&chipcommon 19 GPIO_ACTIVE_HIGH>;
37 trigger-sources = <&ohci_port1>, <&ehci_port1>,
38 <&xhci_port1>;
39 linux,default-trigger = "usbport";
40 };
41
42 };
43
44 gpio-keys {
45 compatible = "gpio-keys";
46 #address-cells = <1>;
47 #size-cells = <0>;
48
49 restart {
50 label = "Reset";
51 linux,code = <KEY_RESTART>;
52 gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
53 };
54 };
55};
56
57&usb3 {
58 vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
59};
60
61&spi_nor {
62 status = "okay";
63};
diff --git a/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts b/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
new file mode 100644
index 000000000000..74c83b0ca54e
--- /dev/null
+++ b/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
@@ -0,0 +1,50 @@
1/*
2 * Copyright 2017 Luxul Inc.
3 *
4 * Licensed under the ISC license.
5 */
6
7/dts-v1/;
8
9#include "bcm53573.dtsi"
10
11/ {
12 compatible = "luxul,xap-1440-v1", "brcm,bcm47189", "brcm,bcm53573";
13 model = "Luxul XAP-1440 V1";
14
15 chosen {
16 bootargs = "earlycon";
17 };
18
19 memory {
20 reg = <0x00000000 0x08000000>;
21 };
22
23 leds {
24 compatible = "gpio-leds";
25
26 wlan {
27 label = "bcm53xx:blue:wlan";
28 gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
29 linux,default-trigger = "default-off";
30 };
31
32 system {
33 label = "bcm53xx:green:system";
34 gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
35 linux,default-trigger = "timer";
36 };
37 };
38
39 gpio-keys {
40 compatible = "gpio-keys";
41 #address-cells = <1>;
42 #size-cells = <0>;
43
44 restart {
45 label = "Reset";
46 linux,code = <KEY_RESTART>;
47 gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
48 };
49 };
50};
diff --git a/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts b/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
new file mode 100644
index 000000000000..214df18f3a75
--- /dev/null
+++ b/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
@@ -0,0 +1,87 @@
1/*
2 * Copyright 2017 Luxul Inc.
3 *
4 * Licensed under the ISC license.
5 */
6
7/dts-v1/;
8
9#include "bcm53573.dtsi"
10
11/ {
12 compatible = "luxul,xap-810-v1", "brcm,bcm47189", "brcm,bcm53573";
13 model = "Luxul XAP-810 V1";
14
15 chosen {
16 bootargs = "earlycon";
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 11 GPIO_ACTIVE_HIGH>;
29 linux,default-trigger = "default-off";
30 };
31
32 system {
33 label = "bcm53xx:green:system";
34 gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
35 linux,default-trigger = "timer";
36 };
37 };
38
39 pcie0_leds {
40 compatible = "gpio-leds";
41
42 2ghz {
43 label = "bcm53xx:blue:2ghz";
44 gpios = <&pcie0_chipcommon 3 GPIO_ACTIVE_HIGH>;
45 linux,default-trigger = "default-off";
46 };
47 };
48
49 gpio-keys {
50 compatible = "gpio-keys";
51 #address-cells = <1>;
52 #size-cells = <0>;
53
54 restart {
55 label = "Reset";
56 linux,code = <KEY_RESTART>;
57 gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
58 };
59 };
60};
61
62&pcie0 {
63 ranges = <0x00000000 0 0 0 0 0x00100000>;
64 #address-cells = <3>;
65 #size-cells = <2>;
66
67 bridge@0,0,0 {
68 reg = <0x0000 0 0 0 0>;
69 ranges = <0x00000000 0 0 0 0 0 0 0x00100000>;
70 #address-cells = <3>;
71 #size-cells = <2>;
72
73 wifi@0,1,0 {
74 reg = <0x0000 0 0 0 0>;
75 ranges = <0x00000000 0 0 0 0x00100000>;
76 #address-cells = <1>;
77 #size-cells = <1>;
78
79 pcie0_chipcommon: chipcommon@0 {
80 reg = <0 0x1000>;
81
82 gpio-controller;
83 #gpio-cells = <2>;
84 };
85 };
86 };
87};
diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index 045b9bb857f9..9a076c409f4e 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -24,7 +24,7 @@
24 #address-cells = <1>; 24 #address-cells = <1>;
25 #size-cells = <1>; 25 #size-cells = <1>;
26 26
27 uart0: serial@0300 { 27 uart0: serial@300 {
28 compatible = "ns16550"; 28 compatible = "ns16550";
29 reg = <0x0300 0x100>; 29 reg = <0x0300 0x100>;
30 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 30 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
@@ -32,7 +32,7 @@
32 status = "disabled"; 32 status = "disabled";
33 }; 33 };
34 34
35 uart1: serial@0400 { 35 uart1: serial@400 {
36 compatible = "ns16550"; 36 compatible = "ns16550";
37 reg = <0x0400 0x100>; 37 reg = <0x0400 0x100>;
38 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 38 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
@@ -47,7 +47,7 @@
47 #address-cells = <1>; 47 #address-cells = <1>;
48 #size-cells = <1>; 48 #size-cells = <1>;
49 49
50 a9pll: arm_clk@00000 { 50 a9pll: arm_clk@0 {
51 #clock-cells = <0>; 51 #clock-cells = <0>;
52 compatible = "brcm,nsp-armpll"; 52 compatible = "brcm,nsp-armpll";
53 clocks = <&osc>; 53 clocks = <&osc>;
diff --git a/arch/arm/boot/dts/bcm53340-ubnt-unifi-switch8.dts b/arch/arm/boot/dts/bcm53340-ubnt-unifi-switch8.dts
new file mode 100644
index 000000000000..431cda514230
--- /dev/null
+++ b/arch/arm/boot/dts/bcm53340-ubnt-unifi-switch8.dts
@@ -0,0 +1,85 @@
1/*
2 * DTS for Unifi Switch 8 port
3 *
4 * Copyright (C) 2017 Florian Fainelli <f.fainelli@gmail.com>
5 *
6 * Licensed under the GNU/GPL. See COPYING for details.
7 */
8
9/dts-v1/;
10
11#include "bcm-hr2.dtsi"
12
13/ {
14 compatible = "ubnt,unifi-switch8", "brcm,bcm53342", "brcm,hr2";
15 model = "Ubiquiti UniFi Switch 8 (BCM53342)";
16
17 /* Hurricane 2 designs use the second UART */
18 chosen {
19 bootargs = "console=ttyS1,115200 earlyprintk";
20 };
21
22 memory@0 {
23 reg = <0x00000000 0x08000000>,
24 <0x68000000 0x08000000>;
25 };
26};
27
28&uart1 {
29 status = "okay";
30};
31
32&qspi {
33 status = "okay";
34 bspi-sel = <0>;
35
36 flash: m25p80@0 {
37 compatible = "m25p80";
38 reg = <0>;
39 #address-cells = <1>;
40 #size-cells = <1>;
41 spi-max-frequency = <12500000>;
42 spi-cpol;
43 spi-cpha;
44
45 partition@0 {
46 label = "u-boot";
47 reg = <0x0 0xc0000>;
48 };
49
50 partition@c0000 {
51 label = "u-boot-env";
52 reg = <0xc0000 0x10000>;
53 };
54
55 partition@d0000 {
56 label = "shmoo";
57 reg = <0xd0000 0x10000>;
58 };
59
60 partition@e0000 {
61 label = "kernel0";
62 reg = <0xe0000 0xf00000>;
63 };
64
65 partition@fe0000 {
66 label = "kernel1";
67 reg = <0xfe0000 0xf10000>;
68 };
69
70 partition@1ef0000 {
71 label = "cfg";
72 reg = <0x1ef0000 0x100000>;
73 };
74
75 partition@1ff0000 {
76 label = "EEPROM";
77 reg = <0x1ff0000 0x10000>;
78 };
79 };
80};
81
82&pcie0 {
83 /* Attaches to the internal switch */
84 status = "okay";
85};
diff --git a/arch/arm/boot/dts/bcm53573.dtsi b/arch/arm/boot/dts/bcm53573.dtsi
index c698a565b8ae..16007d72c346 100644
--- a/arch/arm/boot/dts/bcm53573.dtsi
+++ b/arch/arm/boot/dts/bcm53573.dtsi
@@ -107,7 +107,7 @@
107 gpio-controller; 107 gpio-controller;
108 #gpio-cells = <2>; 108 #gpio-cells = <2>;
109 109
110 uart0: serial@0300 { 110 uart0: serial@300 {
111 compatible = "ns16550a"; 111 compatible = "ns16550a";
112 reg = <0x0300 0x100>; 112 reg = <0x0300 0x100>;
113 interrupt-parent = <&gic>; 113 interrupt-parent = <&gic>;
diff --git a/arch/arm/boot/dts/berlin2.dtsi b/arch/arm/boot/dts/berlin2.dtsi
index 425c48971abe..d575823c5750 100644
--- a/arch/arm/boot/dts/berlin2.dtsi
+++ b/arch/arm/boot/dts/berlin2.dtsi
@@ -202,7 +202,7 @@
202 ranges = <0 0xe80000 0x10000>; 202 ranges = <0 0xe80000 0x10000>;
203 interrupt-parent = <&aic>; 203 interrupt-parent = <&aic>;
204 204
205 gpio0: gpio@0400 { 205 gpio0: gpio@400 {
206 compatible = "snps,dw-apb-gpio"; 206 compatible = "snps,dw-apb-gpio";
207 reg = <0x0400 0x400>; 207 reg = <0x0400 0x400>;
208 #address-cells = <1>; 208 #address-cells = <1>;
@@ -220,7 +220,7 @@
220 }; 220 };
221 }; 221 };
222 222
223 gpio1: gpio@0800 { 223 gpio1: gpio@800 {
224 compatible = "snps,dw-apb-gpio"; 224 compatible = "snps,dw-apb-gpio";
225 reg = <0x0800 0x400>; 225 reg = <0x0800 0x400>;
226 #address-cells = <1>; 226 #address-cells = <1>;
@@ -238,7 +238,7 @@
238 }; 238 };
239 }; 239 };
240 240
241 gpio2: gpio@0c00 { 241 gpio2: gpio@c00 {
242 compatible = "snps,dw-apb-gpio"; 242 compatible = "snps,dw-apb-gpio";
243 reg = <0x0c00 0x400>; 243 reg = <0x0c00 0x400>;
244 #address-cells = <1>; 244 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/berlin2cd.dtsi b/arch/arm/boot/dts/berlin2cd.dtsi
index 4fe1574d08c3..501c59d97eae 100644
--- a/arch/arm/boot/dts/berlin2cd.dtsi
+++ b/arch/arm/boot/dts/berlin2cd.dtsi
@@ -182,7 +182,7 @@
182 ranges = <0 0xe80000 0x10000>; 182 ranges = <0 0xe80000 0x10000>;
183 interrupt-parent = <&aic>; 183 interrupt-parent = <&aic>;
184 184
185 gpio0: gpio@0400 { 185 gpio0: gpio@400 {
186 compatible = "snps,dw-apb-gpio"; 186 compatible = "snps,dw-apb-gpio";
187 reg = <0x0400 0x400>; 187 reg = <0x0400 0x400>;
188 #address-cells = <1>; 188 #address-cells = <1>;
@@ -200,7 +200,7 @@
200 }; 200 };
201 }; 201 };
202 202
203 gpio1: gpio@0800 { 203 gpio1: gpio@800 {
204 compatible = "snps,dw-apb-gpio"; 204 compatible = "snps,dw-apb-gpio";
205 reg = <0x0800 0x400>; 205 reg = <0x0800 0x400>;
206 #address-cells = <1>; 206 #address-cells = <1>;
@@ -218,7 +218,7 @@
218 }; 218 };
219 }; 219 };
220 220
221 gpio2: gpio@0c00 { 221 gpio2: gpio@c00 {
222 compatible = "snps,dw-apb-gpio"; 222 compatible = "snps,dw-apb-gpio";
223 reg = <0x0c00 0x400>; 223 reg = <0x0c00 0x400>;
224 #address-cells = <1>; 224 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi
index e548229697fc..bf3a6c9a1d34 100644
--- a/arch/arm/boot/dts/berlin2q.dtsi
+++ b/arch/arm/boot/dts/berlin2q.dtsi
@@ -234,7 +234,7 @@
234 ranges = <0 0xe80000 0x10000>; 234 ranges = <0 0xe80000 0x10000>;
235 interrupt-parent = <&aic>; 235 interrupt-parent = <&aic>;
236 236
237 gpio0: gpio@0400 { 237 gpio0: gpio@400 {
238 compatible = "snps,dw-apb-gpio"; 238 compatible = "snps,dw-apb-gpio";
239 reg = <0x0400 0x400>; 239 reg = <0x0400 0x400>;
240 #address-cells = <1>; 240 #address-cells = <1>;
@@ -252,7 +252,7 @@
252 }; 252 };
253 }; 253 };
254 254
255 gpio1: gpio@0800 { 255 gpio1: gpio@800 {
256 compatible = "snps,dw-apb-gpio"; 256 compatible = "snps,dw-apb-gpio";
257 reg = <0x0800 0x400>; 257 reg = <0x0800 0x400>;
258 #address-cells = <1>; 258 #address-cells = <1>;
@@ -270,7 +270,7 @@
270 }; 270 };
271 }; 271 };
272 272
273 gpio2: gpio@0c00 { 273 gpio2: gpio@c00 {
274 compatible = "snps,dw-apb-gpio"; 274 compatible = "snps,dw-apb-gpio";
275 reg = <0x0c00 0x400>; 275 reg = <0x0c00 0x400>;
276 #address-cells = <1>; 276 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/da850-lcdk.dts b/arch/arm/boot/dts/da850-lcdk.dts
index a0f0916156e6..eed89e659143 100644
--- a/arch/arm/boot/dts/da850-lcdk.dts
+++ b/arch/arm/boot/dts/da850-lcdk.dts
@@ -26,6 +26,19 @@
26 reg = <0xc0000000 0x08000000>; 26 reg = <0xc0000000 0x08000000>;
27 }; 27 };
28 28
29 reserved-memory {
30 #address-cells = <1>;
31 #size-cells = <1>;
32 ranges;
33
34 dsp_memory_region: dsp-memory@c3000000 {
35 compatible = "shared-dma-pool";
36 reg = <0xc3000000 0x1000000>;
37 reusable;
38 status = "okay";
39 };
40 };
41
29 sound { 42 sound {
30 compatible = "simple-audio-card"; 43 compatible = "simple-audio-card";
31 simple-audio-card,name = "DA850/OMAP-L138 LCDK"; 44 simple-audio-card,name = "DA850/OMAP-L138 LCDK";
@@ -319,3 +332,8 @@
319 pinctrl-0 = <&vpif_capture_pins>; 332 pinctrl-0 = <&vpif_capture_pins>;
320 status = "okay"; 333 status = "okay";
321}; 334};
335
336&dsp {
337 memory-region = <&dsp_memory_region>;
338 status = "okay";
339};
diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi
index af68ef7b0caa..c66cf7895363 100644
--- a/arch/arm/boot/dts/da850.dtsi
+++ b/arch/arm/boot/dts/da850.dtsi
@@ -23,6 +23,18 @@
23 reg = <0xfffee000 0x2000>; 23 reg = <0xfffee000 0x2000>;
24 }; 24 };
25 }; 25 };
26 dsp: dsp@11800000 {
27 compatible = "ti,da850-dsp";
28 reg = <0x11800000 0x40000>,
29 <0x11e00000 0x8000>,
30 <0x11f00000 0x8000>,
31 <0x01c14044 0x4>,
32 <0x01c14174 0x8>;
33 reg-names = "l2sram", "l1pram", "l1dram", "host1cfg", "chipsig";
34 interrupt-parent = <&intc>;
35 interrupts = <28>;
36 status = "disabled";
37 };
26 soc@1c00000 { 38 soc@1c00000 {
27 compatible = "simple-bus"; 39 compatible = "simple-bus";
28 model = "da850"; 40 model = "da850";
diff --git a/arch/arm/boot/dts/dove.dtsi b/arch/arm/boot/dts/dove.dtsi
index f4a07bb7c3a2..4a0a5115b298 100644
--- a/arch/arm/boot/dts/dove.dtsi
+++ b/arch/arm/boot/dts/dove.dtsi
@@ -457,25 +457,25 @@
457 }; 457 };
458 }; 458 };
459 459
460 thermal: thermal-diode@001c { 460 thermal: thermal-diode@1c {
461 compatible = "marvell,dove-thermal"; 461 compatible = "marvell,dove-thermal";
462 reg = <0x001c 0x0c>, <0x005c 0x08>; 462 reg = <0x001c 0x0c>, <0x005c 0x08>;
463 }; 463 };
464 464
465 gate_clk: clock-gating-ctrl@0038 { 465 gate_clk: clock-gating-ctrl@38 {
466 compatible = "marvell,dove-gating-clock"; 466 compatible = "marvell,dove-gating-clock";
467 reg = <0x0038 0x4>; 467 reg = <0x0038 0x4>;
468 clocks = <&core_clk 0>; 468 clocks = <&core_clk 0>;
469 #clock-cells = <1>; 469 #clock-cells = <1>;
470 }; 470 };
471 471
472 divider_clk: core-clock@0064 { 472 divider_clk: core-clock@64 {
473 compatible = "marvell,dove-divider-clock"; 473 compatible = "marvell,dove-divider-clock";
474 reg = <0x0064 0x8>; 474 reg = <0x0064 0x8>;
475 #clock-cells = <1>; 475 #clock-cells = <1>;
476 }; 476 };
477 477
478 pinctrl: pin-ctrl@0200 { 478 pinctrl: pin-ctrl@200 {
479 compatible = "marvell,dove-pinctrl"; 479 compatible = "marvell,dove-pinctrl";
480 reg = <0x0200 0x14>, 480 reg = <0x0200 0x14>,
481 <0x0440 0x04>; 481 <0x0440 0x04>;
@@ -719,13 +719,13 @@
719 }; 719 };
720 }; 720 };
721 721
722 core_clk: core-clocks@0214 { 722 core_clk: core-clocks@214 {
723 compatible = "marvell,dove-core-clock"; 723 compatible = "marvell,dove-core-clock";
724 reg = <0x0214 0x4>; 724 reg = <0x0214 0x4>;
725 #clock-cells = <1>; 725 #clock-cells = <1>;
726 }; 726 };
727 727
728 gpio0: gpio-ctrl@0400 { 728 gpio0: gpio-ctrl@400 {
729 compatible = "marvell,orion-gpio"; 729 compatible = "marvell,orion-gpio";
730 #gpio-cells = <2>; 730 #gpio-cells = <2>;
731 gpio-controller; 731 gpio-controller;
@@ -737,7 +737,7 @@
737 interrupts = <12>, <13>, <14>, <60>; 737 interrupts = <12>, <13>, <14>, <60>;
738 }; 738 };
739 739
740 gpio1: gpio-ctrl@0420 { 740 gpio1: gpio-ctrl@420 {
741 compatible = "marvell,orion-gpio"; 741 compatible = "marvell,orion-gpio";
742 #gpio-cells = <2>; 742 #gpio-cells = <2>;
743 gpio-controller; 743 gpio-controller;
diff --git a/arch/arm/boot/dts/dra7-evm-common.dtsi b/arch/arm/boot/dts/dra7-evm-common.dtsi
index 343e95f9a001..e088bb93636a 100644
--- a/arch/arm/boot/dts/dra7-evm-common.dtsi
+++ b/arch/arm/boot/dts/dra7-evm-common.dtsi
@@ -256,3 +256,7 @@
256 status = "okay"; 256 status = "okay";
257 }; 257 };
258}; 258};
259
260&pcie1_rc {
261 status = "okay";
262};
diff --git a/arch/arm/boot/dts/dra7-evm.dts b/arch/arm/boot/dts/dra7-evm.dts
index aa426dabb6c3..ef9c90daa74b 100644
--- a/arch/arm/boot/dts/dra7-evm.dts
+++ b/arch/arm/boot/dts/dra7-evm.dts
@@ -497,7 +497,3 @@
497 pinctrl-1 = <&dcan1_pins_sleep>; 497 pinctrl-1 = <&dcan1_pins_sleep>;
498 pinctrl-2 = <&dcan1_pins_default>; 498 pinctrl-2 = <&dcan1_pins_default>;
499}; 499};
500
501&pcie1_rc {
502 status = "okay";
503};
diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi
index 92b5cb40a9d5..ac9216293b7c 100644
--- a/arch/arm/boot/dts/dra7.dtsi
+++ b/arch/arm/boot/dts/dra7.dtsi
@@ -170,7 +170,7 @@
170 pbias_mmc_reg: pbias_mmc_omap5 { 170 pbias_mmc_reg: pbias_mmc_omap5 {
171 regulator-name = "pbias_mmc_omap5"; 171 regulator-name = "pbias_mmc_omap5";
172 regulator-min-microvolt = <1800000>; 172 regulator-min-microvolt = <1800000>;
173 regulator-max-microvolt = <3000000>; 173 regulator-max-microvolt = <3300000>;
174 }; 174 };
175 }; 175 };
176 176
diff --git a/arch/arm/boot/dts/ep7211-edb7211.dts b/arch/arm/boot/dts/ep7211-edb7211.dts
index 9a134ed271eb..bc9d5b697452 100644
--- a/arch/arm/boot/dts/ep7211-edb7211.dts
+++ b/arch/arm/boot/dts/ep7211-edb7211.dts
@@ -75,7 +75,7 @@
75}; 75};
76 76
77&bus { 77&bus {
78 flash: nor@00000000 { 78 flash: nor@0 {
79 compatible = "cfi-flash"; 79 compatible = "cfi-flash";
80 reg = <0 0x00000000 0x02000000>; 80 reg = <0 0x00000000 0x02000000>;
81 bank-width = <2>; 81 bank-width = <2>;
diff --git a/arch/arm/boot/dts/exynos3250-artik5.dtsi b/arch/arm/boot/dts/exynos3250-artik5.dtsi
index 639c2e605f3c..152e0291d0da 100644
--- a/arch/arm/boot/dts/exynos3250-artik5.dtsi
+++ b/arch/arm/boot/dts/exynos3250-artik5.dtsi
@@ -29,7 +29,7 @@
29 reg = <0x40000000 0x1ff00000>; 29 reg = <0x40000000 0x1ff00000>;
30 }; 30 };
31 31
32 firmware@0205f000 { 32 firmware@205f000 {
33 compatible = "samsung,secure-firmware"; 33 compatible = "samsung,secure-firmware";
34 reg = <0x0205f000 0x1000>; 34 reg = <0x0205f000 0x1000>;
35 }; 35 };
diff --git a/arch/arm/boot/dts/exynos3250-monk.dts b/arch/arm/boot/dts/exynos3250-monk.dts
index bbdfcbc6e7d2..029eb18590cf 100644
--- a/arch/arm/boot/dts/exynos3250-monk.dts
+++ b/arch/arm/boot/dts/exynos3250-monk.dts
@@ -32,7 +32,7 @@
32 reg = <0x40000000 0x1ff00000>; 32 reg = <0x40000000 0x1ff00000>;
33 }; 33 };
34 34
35 firmware@0205F000 { 35 firmware@205f000 {
36 compatible = "samsung,secure-firmware"; 36 compatible = "samsung,secure-firmware";
37 reg = <0x0205F000 0x1000>; 37 reg = <0x0205F000 0x1000>;
38 }; 38 };
diff --git a/arch/arm/boot/dts/exynos3250-rinato.dts b/arch/arm/boot/dts/exynos3250-rinato.dts
index 0b45467d77a8..3743df4de390 100644
--- a/arch/arm/boot/dts/exynos3250-rinato.dts
+++ b/arch/arm/boot/dts/exynos3250-rinato.dts
@@ -32,7 +32,7 @@
32 reg = <0x40000000 0x1ff00000>; 32 reg = <0x40000000 0x1ff00000>;
33 }; 33 };
34 34
35 firmware@0205F000 { 35 firmware@205f000 {
36 compatible = "samsung,secure-firmware"; 36 compatible = "samsung,secure-firmware";
37 reg = <0x0205F000 0x1000>; 37 reg = <0x0205F000 0x1000>;
38 }; 38 };
@@ -227,28 +227,6 @@
227 vci-supply = <&ldo20_reg>; 227 vci-supply = <&ldo20_reg>;
228 reset-gpios = <&gpe0 1 GPIO_ACTIVE_LOW>; 228 reset-gpios = <&gpe0 1 GPIO_ACTIVE_LOW>;
229 te-gpios = <&gpx0 6 GPIO_ACTIVE_HIGH>; 229 te-gpios = <&gpx0 6 GPIO_ACTIVE_HIGH>;
230 power-on-delay= <30>;
231 power-off-delay= <120>;
232 reset-delay = <5>;
233 init-delay = <100>;
234 flip-horizontal;
235 flip-vertical;
236 panel-width-mm = <29>;
237 panel-height-mm = <29>;
238
239 display-timings {
240 timing-0 {
241 clock-frequency = <4600000>;
242 hactive = <320>;
243 vactive = <320>;
244 hfront-porch = <1>;
245 hback-porch = <1>;
246 hsync-len = <1>;
247 vfront-porch = <150>;
248 vback-porch = <1>;
249 vsync-len = <2>;
250 };
251 };
252 }; 230 };
253}; 231};
254 232
diff --git a/arch/arm/boot/dts/exynos3250.dtsi b/arch/arm/boot/dts/exynos3250.dtsi
index 590ee442d0ae..2bd3872221a1 100644
--- a/arch/arm/boot/dts/exynos3250.dtsi
+++ b/arch/arm/boot/dts/exynos3250.dtsi
@@ -122,7 +122,7 @@
122 }; 122 };
123 }; 123 };
124 124
125 sysram@02020000 { 125 sysram@2020000 {
126 compatible = "mmio-sram"; 126 compatible = "mmio-sram";
127 reg = <0x02020000 0x40000>; 127 reg = <0x02020000 0x40000>;
128 #address-cells = <1>; 128 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index 5739389f5bb8..4768b086ed67 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -55,7 +55,7 @@
55 serial3 = &serial_3; 55 serial3 = &serial_3;
56 }; 56 };
57 57
58 clock_audss: clock-controller@03810000 { 58 clock_audss: clock-controller@3810000 {
59 compatible = "samsung,exynos4210-audss-clock"; 59 compatible = "samsung,exynos4210-audss-clock";
60 reg = <0x03810000 0x0C>; 60 reg = <0x03810000 0x0C>;
61 #clock-cells = <1>; 61 #clock-cells = <1>;
@@ -64,7 +64,7 @@
64 clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in"; 64 clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in";
65 }; 65 };
66 66
67 i2s0: i2s@03830000 { 67 i2s0: i2s@3830000 {
68 compatible = "samsung,s5pv210-i2s"; 68 compatible = "samsung,s5pv210-i2s";
69 reg = <0x03830000 0x100>; 69 reg = <0x03830000 0x100>;
70 clocks = <&clock_audss EXYNOS_I2S_BUS>, 70 clocks = <&clock_audss EXYNOS_I2S_BUS>,
diff --git a/arch/arm/boot/dts/exynos4210-pinctrl.dtsi b/arch/arm/boot/dts/exynos4210-pinctrl.dtsi
index f280954b260a..82c32d4d83d8 100644
--- a/arch/arm/boot/dts/exynos4210-pinctrl.dtsi
+++ b/arch/arm/boot/dts/exynos4210-pinctrl.dtsi
@@ -843,7 +843,7 @@
843 }; 843 };
844 }; 844 };
845 845
846 pinctrl@03860000 { 846 pinctrl@3860000 {
847 gpz: gpz { 847 gpz: gpz {
848 gpio-controller; 848 gpio-controller;
849 #gpio-cells = <2>; 849 #gpio-cells = <2>;
diff --git a/arch/arm/boot/dts/exynos4210-universal_c210.dts b/arch/arm/boot/dts/exynos4210-universal_c210.dts
index 0c89ea99de54..acd2b2286ccb 100644
--- a/arch/arm/boot/dts/exynos4210-universal_c210.dts
+++ b/arch/arm/boot/dts/exynos4210-universal_c210.dts
@@ -31,7 +31,7 @@
31 stdout-path = &serial_2; 31 stdout-path = &serial_2;
32 }; 32 };
33 33
34 sysram@02020000 { 34 sysram@2020000 {
35 smp-sysram@0 { 35 smp-sysram@0 {
36 status = "disabled"; 36 status = "disabled";
37 }; 37 };
diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
index 768fb075b1fd..03dd61f64809 100644
--- a/arch/arm/boot/dts/exynos4210.dtsi
+++ b/arch/arm/boot/dts/exynos4210.dtsi
@@ -64,7 +64,7 @@
64 }; 64 };
65 }; 65 };
66 66
67 sysram: sysram@02020000 { 67 sysram: sysram@2020000 {
68 compatible = "mmio-sram"; 68 compatible = "mmio-sram";
69 reg = <0x02020000 0x20000>; 69 reg = <0x02020000 0x20000>;
70 #address-cells = <1>; 70 #address-cells = <1>;
@@ -151,7 +151,7 @@
151 }; 151 };
152 }; 152 };
153 153
154 pinctrl_2: pinctrl@03860000 { 154 pinctrl_2: pinctrl@3860000 {
155 compatible = "samsung,exynos4210-pinctrl"; 155 compatible = "samsung,exynos4210-pinctrl";
156 reg = <0x03860000 0x1000>; 156 reg = <0x03860000 0x1000>;
157 }; 157 };
diff --git a/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
index 14ce2c69bc0b..bda49b232f7b 100644
--- a/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
+++ b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
@@ -26,7 +26,7 @@
26 reg = <0x40000000 0x40000000>; 26 reg = <0x40000000 0x40000000>;
27 }; 27 };
28 28
29 firmware@0203F000 { 29 firmware@203f000 {
30 compatible = "samsung,secure-firmware"; 30 compatible = "samsung,secure-firmware";
31 reg = <0x0203F000 0x1000>; 31 reg = <0x0203F000 0x1000>;
32 }; 32 };
diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
index 102acd78be15..a21be71000c1 100644
--- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
+++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
@@ -20,7 +20,7 @@
20 stdout-path = &serial_1; 20 stdout-path = &serial_1;
21 }; 21 };
22 22
23 firmware@0204F000 { 23 firmware@204f000 {
24 compatible = "samsung,secure-firmware"; 24 compatible = "samsung,secure-firmware";
25 reg = <0x0204F000 0x1000>; 25 reg = <0x0204F000 0x1000>;
26 }; 26 };
@@ -31,8 +31,6 @@
31 pinctrl-0 = <&gpio_power_key>; 31 pinctrl-0 = <&gpio_power_key>;
32 32
33 power_key { 33 power_key {
34 interrupt-parent = <&gpx1>;
35 interrupts = <3 IRQ_TYPE_NONE>;
36 gpios = <&gpx1 3 GPIO_ACTIVE_LOW>; 34 gpios = <&gpx1 3 GPIO_ACTIVE_LOW>;
37 linux,code = <KEY_POWER>; 35 linux,code = <KEY_POWER>;
38 label = "power key"; 36 label = "power key";
@@ -253,7 +251,7 @@
253 samsung,i2c-max-bus-freq = <400000>; 251 samsung,i2c-max-bus-freq = <400000>;
254 status = "okay"; 252 status = "okay";
255 253
256 usb3503: usb3503@08 { 254 usb3503: usb3503@8 {
257 compatible = "smsc,usb3503"; 255 compatible = "smsc,usb3503";
258 reg = <0x08>; 256 reg = <0x08>;
259 257
@@ -263,7 +261,7 @@
263 initial-mode = <1>; 261 initial-mode = <1>;
264 }; 262 };
265 263
266 max77686: pmic@09 { 264 max77686: pmic@9 {
267 compatible = "maxim,max77686"; 265 compatible = "maxim,max77686";
268 interrupt-parent = <&gpx3>; 266 interrupt-parent = <&gpx3>;
269 interrupts = <2 IRQ_TYPE_NONE>; 267 interrupts = <2 IRQ_TYPE_NONE>;
diff --git a/arch/arm/boot/dts/exynos4412-odroidx.dts b/arch/arm/boot/dts/exynos4412-odroidx.dts
index 97882267ef09..acf48a018e5e 100644
--- a/arch/arm/boot/dts/exynos4412-odroidx.dts
+++ b/arch/arm/boot/dts/exynos4412-odroidx.dts
@@ -43,8 +43,6 @@
43 pinctrl-0 = <&gpio_power_key &gpio_home_key>; 43 pinctrl-0 = <&gpio_power_key &gpio_home_key>;
44 44
45 home_key { 45 home_key {
46 interrupt-parent = <&gpx2>;
47 interrupts = <2 IRQ_TYPE_NONE>;
48 gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>; 46 gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
49 linux,code = <KEY_HOME>; 47 linux,code = <KEY_HOME>;
50 label = "home key"; 48 label = "home key";
diff --git a/arch/arm/boot/dts/exynos4412-origen.dts b/arch/arm/boot/dts/exynos4412-origen.dts
index 8a89eb893d64..b0b5ec7903a5 100644
--- a/arch/arm/boot/dts/exynos4412-origen.dts
+++ b/arch/arm/boot/dts/exynos4412-origen.dts
@@ -32,7 +32,7 @@
32 stdout-path = &serial_2; 32 stdout-path = &serial_2;
33 }; 33 };
34 34
35 firmware@0203F000 { 35 firmware@203f000 {
36 compatible = "samsung,secure-firmware"; 36 compatible = "samsung,secure-firmware";
37 reg = <0x0203F000 0x1000>; 37 reg = <0x0203F000 0x1000>;
38 }; 38 };
diff --git a/arch/arm/boot/dts/exynos4412-pinctrl.dtsi b/arch/arm/boot/dts/exynos4412-pinctrl.dtsi
index 1d27c28564e4..4eebd4721a5f 100644
--- a/arch/arm/boot/dts/exynos4412-pinctrl.dtsi
+++ b/arch/arm/boot/dts/exynos4412-pinctrl.dtsi
@@ -899,7 +899,7 @@
899 }; 899 };
900 }; 900 };
901 901
902 pinctrl_2: pinctrl@03860000 { 902 pinctrl_2: pinctrl@3860000 {
903 gpz: gpz { 903 gpz: gpz {
904 gpio-controller; 904 gpio-controller;
905 #gpio-cells = <2>; 905 #gpio-cells = <2>;
diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts
index bceb919ac637..220cdf109405 100644
--- a/arch/arm/boot/dts/exynos4412-trats2.dts
+++ b/arch/arm/boot/dts/exynos4412-trats2.dts
@@ -18,6 +18,7 @@
18#include <dt-bindings/gpio/gpio.h> 18#include <dt-bindings/gpio/gpio.h>
19#include <dt-bindings/interrupt-controller/irq.h> 19#include <dt-bindings/interrupt-controller/irq.h>
20#include <dt-bindings/clock/maxim,max77686.h> 20#include <dt-bindings/clock/maxim,max77686.h>
21#include <dt-bindings/pinctrl/samsung.h>
21 22
22/ { 23/ {
23 model = "Samsung Trats 2 based on Exynos4412"; 24 model = "Samsung Trats 2 based on Exynos4412";
@@ -40,7 +41,7 @@
40 stdout-path = &serial_2; 41 stdout-path = &serial_2;
41 }; 42 };
42 43
43 firmware@0204F000 { 44 firmware@204f000 {
44 compatible = "samsung,secure-firmware"; 45 compatible = "samsung,secure-firmware";
45 reg = <0x0204F000 0x1000>; 46 reg = <0x0204F000 0x1000>;
46 }; 47 };
@@ -97,6 +98,34 @@
97 gpio = <&gpj0 5 GPIO_ACTIVE_HIGH>; 98 gpio = <&gpj0 5 GPIO_ACTIVE_HIGH>;
98 enable-active-high; 99 enable-active-high;
99 }; 100 };
101
102 vsil12: voltage-regulator-6 {
103 compatible = "regulator-fixed";
104 regulator-name = "VSIL_1.2V";
105 regulator-min-microvolt = <1200000>;
106 regulator-max-microvolt = <1200000>;
107 gpio = <&gpl0 4 GPIO_ACTIVE_HIGH>;
108 enable-active-high;
109 vin-supply = <&buck7_reg>;
110 };
111
112 vcc33mhl: voltage-regulator-7 {
113 compatible = "regulator-fixed";
114 regulator-name = "VCC_3.3_MHL";
115 regulator-min-microvolt = <3300000>;
116 regulator-max-microvolt = <3300000>;
117 gpio = <&gpl0 4 GPIO_ACTIVE_HIGH>;
118 enable-active-high;
119 };
120
121 vcc18mhl: voltage-regulator-8 {
122 compatible = "regulator-fixed";
123 regulator-name = "VCC_1.8_MHL";
124 regulator-min-microvolt = <1800000>;
125 regulator-max-microvolt = <1800000>;
126 gpio = <&gpl0 4 GPIO_ACTIVE_HIGH>;
127 enable-active-high;
128 };
100 }; 129 };
101 130
102 gpio-keys { 131 gpio-keys {
@@ -206,7 +235,7 @@
206 #size-cells = <0>; 235 #size-cells = <0>;
207 status = "okay"; 236 status = "okay";
208 237
209 ak8975@0c { 238 ak8975@c {
210 compatible = "asahi-kasei,ak8975"; 239 compatible = "asahi-kasei,ak8975";
211 reg = <0x0c>; 240 reg = <0x0c>;
212 gpios = <&gpj0 7 GPIO_ACTIVE_HIGH>; 241 gpios = <&gpj0 7 GPIO_ACTIVE_HIGH>;
@@ -229,6 +258,36 @@
229 }; 258 };
230 }; 259 };
231 260
261 i2c-mhl {
262 compatible = "i2c-gpio";
263 gpios = <&gpf0 4 GPIO_ACTIVE_HIGH>, <&gpf0 6 GPIO_ACTIVE_HIGH>;
264 i2c-gpio,delay-us = <100>;
265 #address-cells = <1>;
266 #size-cells = <0>;
267
268 pinctrl-0 = <&i2c_mhl_bus>;
269 pinctrl-names = "default";
270 status = "okay";
271
272 sii9234: hdmi-bridge@39 {
273 compatible = "sil,sii9234";
274 avcc33-supply = <&vcc33mhl>;
275 iovcc18-supply = <&vcc18mhl>;
276 avcc12-supply = <&vsil12>;
277 cvcc12-supply = <&vsil12>;
278 reset-gpios = <&gpf3 4 GPIO_ACTIVE_LOW>;
279 interrupt-parent = <&gpf3>;
280 interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
281 reg = <0x39>;
282
283 port {
284 mhl_to_hdmi: endpoint {
285 remote-endpoint = <&hdmi_to_mhl>;
286 };
287 };
288 };
289 };
290
232 camera: camera { 291 camera: camera {
233 pinctrl-0 = <&cam_port_a_clk_active &cam_port_b_clk_active>; 292 pinctrl-0 = <&cam_port_a_clk_active &cam_port_b_clk_active>;
234 pinctrl-names = "default"; 293 pinctrl-names = "default";
@@ -501,6 +560,29 @@
501 status = "okay"; 560 status = "okay";
502}; 561};
503 562
563&hdmi {
564 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
565 pinctrl-names = "default";
566 pinctrl-0 = <&hdmi_hpd>;
567 vdd-supply = <&ldo3_reg>;
568 vdd_osc-supply = <&ldo4_reg>;
569 vdd_pll-supply = <&ldo3_reg>;
570 ddc = <&i2c_5>;
571 status = "okay";
572
573 ports {
574 #address-cells = <1>;
575 #size-cells = <0>;
576
577 port@1 {
578 reg = <1>;
579 hdmi_to_mhl: endpoint {
580 remote-endpoint = <&mhl_to_hdmi>;
581 };
582 };
583 };
584};
585
504&hsotg { 586&hsotg {
505 vusb_d-supply = <&ldo15_reg>; 587 vusb_d-supply = <&ldo15_reg>;
506 vusb_a-supply = <&ldo12_reg>; 588 vusb_a-supply = <&ldo12_reg>;
@@ -579,6 +661,10 @@
579 }; 661 };
580}; 662};
581 663
664&i2c_5 {
665 status = "okay";
666};
667
582&i2c_7 { 668&i2c_7 {
583 samsung,i2c-sda-delay = <100>; 669 samsung,i2c-sda-delay = <100>;
584 samsung,i2c-slave-addr = <0x10>; 670 samsung,i2c-slave-addr = <0x10>;
@@ -587,7 +673,7 @@
587 pinctrl-names = "default"; 673 pinctrl-names = "default";
588 status = "okay"; 674 status = "okay";
589 675
590 max77686: max77686_pmic@09 { 676 max77686: max77686_pmic@9 {
591 compatible = "maxim,max77686"; 677 compatible = "maxim,max77686";
592 interrupt-parent = <&gpx0>; 678 interrupt-parent = <&gpx0>;
593 interrupts = <7 IRQ_TYPE_NONE>; 679 interrupts = <7 IRQ_TYPE_NONE>;
@@ -873,12 +959,20 @@
873 }; 959 };
874}; 960};
875 961
962&i2c_8 {
963 status = "okay";
964};
965
876&i2s0 { 966&i2s0 {
877 pinctrl-0 = <&i2s0_bus>; 967 pinctrl-0 = <&i2s0_bus>;
878 pinctrl-names = "default"; 968 pinctrl-names = "default";
879 status = "okay"; 969 status = "okay";
880}; 970};
881 971
972&mixer {
973 status = "okay";
974};
975
882&mshc_0 { 976&mshc_0 {
883 broken-cd; 977 broken-cd;
884 non-removable; 978 non-removable;
@@ -904,6 +998,18 @@
904 pinctrl-names = "default"; 998 pinctrl-names = "default";
905 pinctrl-0 = <&sleep0>; 999 pinctrl-0 = <&sleep0>;
906 1000
1001 mhl_int: mhl-int {
1002 samsung,pins = "gpf3-5";
1003 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
1004 };
1005
1006 i2c_mhl_bus: i2c-mhl-bus {
1007 samsung,pins = "gpf0-4", "gpf0-6";
1008 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
1009 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
1010 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
1011 };
1012
907 sleep0: sleep-states { 1013 sleep0: sleep-states {
908 PIN_SLP(gpa0-0, INPUT, NONE); 1014 PIN_SLP(gpa0-0, INPUT, NONE);
909 PIN_SLP(gpa0-1, OUT0, NONE); 1015 PIN_SLP(gpa0-1, OUT0, NONE);
@@ -1007,6 +1113,11 @@
1007 pinctrl-names = "default"; 1113 pinctrl-names = "default";
1008 pinctrl-0 = <&sleep1>; 1114 pinctrl-0 = <&sleep1>;
1009 1115
1116 hdmi_hpd: hdmi-hpd {
1117 samsung,pins = "gpx3-7";
1118 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
1119 };
1120
1010 sleep1: sleep-states { 1121 sleep1: sleep-states {
1011 PIN_SLP(gpk0-0, PREV, NONE); 1122 PIN_SLP(gpk0-0, PREV, NONE);
1012 PIN_SLP(gpk0-1, PREV, NONE); 1123 PIN_SLP(gpk0-1, PREV, NONE);
diff --git a/arch/arm/boot/dts/exynos4412.dtsi b/arch/arm/boot/dts/exynos4412.dtsi
index 7ff03a7e8fb9..b255ac55b1c1 100644
--- a/arch/arm/boot/dts/exynos4412.dtsi
+++ b/arch/arm/boot/dts/exynos4412.dtsi
@@ -150,7 +150,7 @@
150 }; 150 };
151 }; 151 };
152 152
153 sysram@02020000 { 153 sysram@2020000 {
154 compatible = "mmio-sram"; 154 compatible = "mmio-sram";
155 reg = <0x02020000 0x40000>; 155 reg = <0x02020000 0x40000>;
156 #address-cells = <1>; 156 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/exynos5250-arndale.dts b/arch/arm/boot/dts/exynos5250-arndale.dts
index 18a7f396ac5f..0efd678b8251 100644
--- a/arch/arm/boot/dts/exynos5250-arndale.dts
+++ b/arch/arm/boot/dts/exynos5250-arndale.dts
@@ -152,6 +152,8 @@
152}; 152};
153 153
154&hdmi { 154&hdmi {
155 status = "okay";
156 ddc = <&i2c_2>;
155 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_LOW>; 157 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_LOW>;
156 vdd_osc-supply = <&ldo10_reg>; 158 vdd_osc-supply = <&ldo10_reg>;
157 vdd_pll-supply = <&ldo8_reg>; 159 vdd_pll-supply = <&ldo8_reg>;
@@ -455,15 +457,9 @@
455 457
456&i2c_2 { 458&i2c_2 {
457 status = "okay"; 459 status = "okay";
458 460 /* used by HDMI DDC */
459 samsung,i2c-sda-delay = <100>; 461 samsung,i2c-sda-delay = <100>;
460 samsung,i2c-max-bus-freq = <66000>; 462 samsung,i2c-max-bus-freq = <66000>;
461 samsung,i2c-slave-addr = <0x50>;
462
463 hdmiddc@50 {
464 compatible = "samsung,exynos4210-hdmiddc";
465 reg = <0x50>;
466 };
467}; 463};
468 464
469&i2c_3 { 465&i2c_3 {
@@ -489,15 +485,9 @@
489 485
490&i2c_8 { 486&i2c_8 {
491 status = "okay"; 487 status = "okay";
492 488 /* used by HDMI PHY */
493 samsung,i2c-sda-delay = <100>; 489 samsung,i2c-sda-delay = <100>;
494 samsung,i2c-max-bus-freq = <66000>; 490 samsung,i2c-max-bus-freq = <66000>;
495 samsung,i2c-slave-addr = <0x38>;
496
497 hdmiphy@38 {
498 compatible = "samsung,exynos4212-hdmiphy";
499 reg = <0x38>;
500 };
501}; 491};
502 492
503&i2c_9 { 493&i2c_9 {
@@ -516,6 +506,10 @@
516 status = "okay"; 506 status = "okay";
517}; 507};
518 508
509&mixer {
510 status = "okay";
511};
512
519&mmc_0 { 513&mmc_0 {
520 status = "okay"; 514 status = "okay";
521 broken-cd; 515 broken-cd;
diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts
index 062cba4c2c31..1e3f9627766c 100644
--- a/arch/arm/boot/dts/exynos5250-smdk5250.dts
+++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts
@@ -116,6 +116,8 @@
116}; 116};
117 117
118&hdmi { 118&hdmi {
119 status = "okay";
120 ddc = <&i2c_2>;
119 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 121 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
120}; 122};
121 123
@@ -129,7 +131,7 @@
129 reg = <0x50>; 131 reg = <0x50>;
130 }; 132 };
131 133
132 max77686@09 { 134 max77686@9 {
133 compatible = "maxim,max77686"; 135 compatible = "maxim,max77686";
134 reg = <0x09>; 136 reg = <0x09>;
135 interrupt-parent = <&gpx3>; 137 interrupt-parent = <&gpx3>;
@@ -308,24 +310,16 @@
308 310
309&i2c_2 { 311&i2c_2 {
310 status = "okay"; 312 status = "okay";
313 /* used by HDMI DDC */
311 samsung,i2c-sda-delay = <100>; 314 samsung,i2c-sda-delay = <100>;
312 samsung,i2c-max-bus-freq = <66000>; 315 samsung,i2c-max-bus-freq = <66000>;
313
314 hdmiddc@50 {
315 compatible = "samsung,exynos4210-hdmiddc";
316 reg = <0x50>;
317 };
318}; 316};
319 317
320&i2c_8 { 318&i2c_8 {
321 status = "okay"; 319 status = "okay";
320 /* used by HDMI PHY */
322 samsung,i2c-sda-delay = <100>; 321 samsung,i2c-sda-delay = <100>;
323 samsung,i2c-max-bus-freq = <66000>; 322 samsung,i2c-max-bus-freq = <66000>;
324
325 hdmiphy@38 {
326 compatible = "samsung,exynos4212-hdmiphy";
327 reg = <0x38>;
328 };
329}; 323};
330 324
331&i2c_9 { 325&i2c_9 {
@@ -344,6 +338,10 @@
344 status = "okay"; 338 status = "okay";
345}; 339};
346 340
341&mixer {
342 status = "okay";
343};
344
347&mmc_0 { 345&mmc_0 {
348 status = "okay"; 346 status = "okay";
349 broken-cd; 347 broken-cd;
diff --git a/arch/arm/boot/dts/exynos5250-snow-common.dtsi b/arch/arm/boot/dts/exynos5250-snow-common.dtsi
index 8788880e459d..2e7175d2b1b8 100644
--- a/arch/arm/boot/dts/exynos5250-snow-common.dtsi
+++ b/arch/arm/boot/dts/exynos5250-snow-common.dtsi
@@ -261,10 +261,10 @@
261}; 261};
262 262
263&hdmi { 263&hdmi {
264 status = "okay";
264 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 265 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
265 pinctrl-names = "default"; 266 pinctrl-names = "default";
266 pinctrl-0 = <&hdmi_hpd_irq>; 267 pinctrl-0 = <&hdmi_hpd_irq>;
267 phy = <&hdmiphy>;
268 ddc = <&i2c_2>; 268 ddc = <&i2c_2>;
269 hdmi-en-supply = <&tps65090_fet7>; 269 hdmi-en-supply = <&tps65090_fet7>;
270 vdd-supply = <&ldo8_reg>; 270 vdd-supply = <&ldo8_reg>;
@@ -281,7 +281,7 @@
281 samsung,i2c-sda-delay = <100>; 281 samsung,i2c-sda-delay = <100>;
282 samsung,i2c-max-bus-freq = <378000>; 282 samsung,i2c-max-bus-freq = <378000>;
283 283
284 max77686: max77686@09 { 284 max77686: max77686@9 {
285 compatible = "maxim,max77686"; 285 compatible = "maxim,max77686";
286 interrupt-parent = <&gpx3>; 286 interrupt-parent = <&gpx3>;
287 interrupts = <2 IRQ_TYPE_NONE>; 287 interrupts = <2 IRQ_TYPE_NONE>;
@@ -450,13 +450,9 @@
450 450
451&i2c_2 { 451&i2c_2 {
452 status = "okay"; 452 status = "okay";
453 /* used by HDMI DDC */
453 samsung,i2c-sda-delay = <100>; 454 samsung,i2c-sda-delay = <100>;
454 samsung,i2c-max-bus-freq = <66000>; 455 samsung,i2c-max-bus-freq = <66000>;
455
456 hdmiddc@50 {
457 compatible = "samsung,exynos4210-hdmiddc";
458 reg = <0x50>;
459 };
460}; 456};
461 457
462&i2c_3 { 458&i2c_3 {
@@ -514,19 +510,19 @@
514 510
515&i2c_8 { 511&i2c_8 {
516 status = "okay"; 512 status = "okay";
513 /* used by HDMI PHY */
517 samsung,i2c-sda-delay = <100>; 514 samsung,i2c-sda-delay = <100>;
518 samsung,i2c-max-bus-freq = <378000>; 515 samsung,i2c-max-bus-freq = <378000>;
519
520 hdmiphy: hdmiphy@38 {
521 compatible = "samsung,exynos4212-hdmiphy";
522 reg = <0x38>;
523 };
524}; 516};
525 517
526&i2s0 { 518&i2s0 {
527 status = "okay"; 519 status = "okay";
528}; 520};
529 521
522&mixer {
523 status = "okay";
524};
525
530/* eMMC flash */ 526/* eMMC flash */
531&mmc_0 { 527&mmc_0 {
532 status = "okay"; 528 status = "okay";
diff --git a/arch/arm/boot/dts/exynos5250-spring.dts b/arch/arm/boot/dts/exynos5250-spring.dts
index d53bfcbeb39c..47dbc50546c1 100644
--- a/arch/arm/boot/dts/exynos5250-spring.dts
+++ b/arch/arm/boot/dts/exynos5250-spring.dts
@@ -91,10 +91,10 @@
91}; 91};
92 92
93&hdmi { 93&hdmi {
94 status = "okay";
94 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 95 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
95 pinctrl-names = "default"; 96 pinctrl-names = "default";
96 pinctrl-0 = <&hdmi_hpd_irq>; 97 pinctrl-0 = <&hdmi_hpd_irq>;
97 phy = <&hdmiphy>;
98 ddc = <&i2c_2>; 98 ddc = <&i2c_2>;
99 hdmi-en-supply = <&ldo8_reg>; 99 hdmi-en-supply = <&ldo8_reg>;
100 vdd-supply = <&ldo8_reg>; 100 vdd-supply = <&ldo8_reg>;
@@ -362,13 +362,9 @@
362 362
363&i2c_2 { 363&i2c_2 {
364 status = "okay"; 364 status = "okay";
365 /* used by HDMI DDC */
365 samsung,i2c-sda-delay = <100>; 366 samsung,i2c-sda-delay = <100>;
366 samsung,i2c-max-bus-freq = <66000>; 367 samsung,i2c-max-bus-freq = <66000>;
367
368 hdmiddc@50 {
369 compatible = "samsung,exynos4210-hdmiddc";
370 reg = <0x50>;
371 };
372}; 368};
373 369
374&i2c_3 { 370&i2c_3 {
@@ -412,19 +408,19 @@
412 408
413&i2c_8 { 409&i2c_8 {
414 status = "okay"; 410 status = "okay";
411 /* used by HDMI PHY */
415 samsung,i2c-sda-delay = <100>; 412 samsung,i2c-sda-delay = <100>;
416 samsung,i2c-max-bus-freq = <378000>; 413 samsung,i2c-max-bus-freq = <378000>;
417
418 hdmiphy: hdmiphy@38 {
419 compatible = "samsung,exynos4212-hdmiphy";
420 reg = <0x38>;
421 };
422}; 414};
423 415
424&i2s0 { 416&i2s0 {
425 status = "okay"; 417 status = "okay";
426}; 418};
427 419
420&mixer {
421 status = "okay";
422};
423
428&mmc_0 { 424&mmc_0 {
429 status = "okay"; 425 status = "okay";
430 broken-cd; 426 broken-cd;
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi
index 8dbeb873e99c..5286084e1032 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -93,7 +93,7 @@
93 }; 93 };
94 94
95 soc: soc { 95 soc: soc {
96 sysram@02020000 { 96 sysram@2020000 {
97 compatible = "mmio-sram"; 97 compatible = "mmio-sram";
98 reg = <0x02020000 0x30000>; 98 reg = <0x02020000 0x30000>;
99 #address-cells = <1>; 99 #address-cells = <1>;
@@ -219,7 +219,7 @@
219 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 219 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
220 }; 220 };
221 221
222 pinctrl_3: pinctrl@03860000 { 222 pinctrl_3: pinctrl@3860000 {
223 compatible = "samsung,exynos5250-pinctrl"; 223 compatible = "samsung,exynos5250-pinctrl";
224 reg = <0x03860000 0x1000>; 224 reg = <0x03860000 0x1000>;
225 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 225 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
@@ -367,6 +367,11 @@
367 clocks = <&clock CLK_I2C_HDMI>; 367 clocks = <&clock CLK_I2C_HDMI>;
368 clock-names = "i2c"; 368 clock-names = "i2c";
369 status = "disabled"; 369 status = "disabled";
370
371 hdmiphy: hdmiphy@38 {
372 compatible = "samsung,exynos4212-hdmiphy";
373 reg = <0x38>;
374 };
370 }; 375 };
371 376
372 i2c_9: i2c@121D0000 { 377 i2c_9: i2c@121D0000 {
@@ -475,7 +480,7 @@
475 status = "disabled"; 480 status = "disabled";
476 }; 481 };
477 482
478 i2s0: i2s@03830000 { 483 i2s0: i2s@3830000 {
479 compatible = "samsung,s5pv210-i2s"; 484 compatible = "samsung,s5pv210-i2s";
480 status = "disabled"; 485 status = "disabled";
481 reg = <0x03830000 0x100>; 486 reg = <0x03830000 0x100>;
@@ -637,7 +642,7 @@
637 }; 642 };
638 643
639 gsc_0: gsc@13e00000 { 644 gsc_0: gsc@13e00000 {
640 compatible = "samsung,exynos5-gsc"; 645 compatible = "samsung,exynos5250-gsc", "samsung,exynos5-gsc";
641 reg = <0x13e00000 0x1000>; 646 reg = <0x13e00000 0x1000>;
642 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 647 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
643 power-domains = <&pd_gsc>; 648 power-domains = <&pd_gsc>;
@@ -647,7 +652,7 @@
647 }; 652 };
648 653
649 gsc_1: gsc@13e10000 { 654 gsc_1: gsc@13e10000 {
650 compatible = "samsung,exynos5-gsc"; 655 compatible = "samsung,exynos5250-gsc", "samsung,exynos5-gsc";
651 reg = <0x13e10000 0x1000>; 656 reg = <0x13e10000 0x1000>;
652 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 657 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
653 power-domains = <&pd_gsc>; 658 power-domains = <&pd_gsc>;
@@ -657,7 +662,7 @@
657 }; 662 };
658 663
659 gsc_2: gsc@13e20000 { 664 gsc_2: gsc@13e20000 {
660 compatible = "samsung,exynos5-gsc"; 665 compatible = "samsung,exynos5250-gsc", "samsung,exynos5-gsc";
661 reg = <0x13e20000 0x1000>; 666 reg = <0x13e20000 0x1000>;
662 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 667 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
663 power-domains = <&pd_gsc>; 668 power-domains = <&pd_gsc>;
@@ -667,7 +672,7 @@
667 }; 672 };
668 673
669 gsc_3: gsc@13e30000 { 674 gsc_3: gsc@13e30000 {
670 compatible = "samsung,exynos5-gsc"; 675 compatible = "samsung,exynos5250-gsc", "samsung,exynos5-gsc";
671 reg = <0x13e30000 0x1000>; 676 reg = <0x13e30000 0x1000>;
672 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 677 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
673 power-domains = <&pd_gsc>; 678 power-domains = <&pd_gsc>;
@@ -687,6 +692,8 @@
687 clock-names = "hdmi", "sclk_hdmi", "sclk_pixel", 692 clock-names = "hdmi", "sclk_hdmi", "sclk_pixel",
688 "sclk_hdmiphy", "mout_hdmi"; 693 "sclk_hdmiphy", "mout_hdmi";
689 samsung,syscon-phandle = <&pmu_system_controller>; 694 samsung,syscon-phandle = <&pmu_system_controller>;
695 phy = <&hdmiphy>;
696 status = "disabled";
690 }; 697 };
691 698
692 hdmicec: cec@101B0000 { 699 hdmicec: cec@101B0000 {
@@ -702,7 +709,7 @@
702 status = "disabled"; 709 status = "disabled";
703 }; 710 };
704 711
705 mixer@14450000 { 712 mixer: mixer@14450000 {
706 compatible = "samsung,exynos5250-mixer"; 713 compatible = "samsung,exynos5250-mixer";
707 reg = <0x14450000 0x10000>; 714 reg = <0x14450000 0x10000>;
708 power-domains = <&pd_disp1>; 715 power-domains = <&pd_disp1>;
@@ -711,6 +718,7 @@
711 <&clock CLK_SCLK_HDMI>; 718 <&clock CLK_SCLK_HDMI>;
712 clock-names = "mixer", "hdmi", "sclk_hdmi"; 719 clock-names = "mixer", "hdmi", "sclk_hdmi";
713 iommus = <&sysmmu_tv>; 720 iommus = <&sysmmu_tv>;
721 status = "disabled";
714 }; 722 };
715 723
716 dp_phy: video-phy { 724 dp_phy: video-phy {
diff --git a/arch/arm/boot/dts/exynos5410-odroidxu.dts b/arch/arm/boot/dts/exynos5410-odroidxu.dts
index c4de1353e5df..a45eaae33f8f 100644
--- a/arch/arm/boot/dts/exynos5410-odroidxu.dts
+++ b/arch/arm/boot/dts/exynos5410-odroidxu.dts
@@ -54,7 +54,7 @@
54 #clock-cells = <0>; 54 #clock-cells = <0>;
55 }; 55 };
56 56
57 firmware@02073000 { 57 firmware@2073000 {
58 compatible = "samsung,secure-firmware"; 58 compatible = "samsung,secure-firmware";
59 reg = <0x02073000 0x1000>; 59 reg = <0x02073000 0x1000>;
60 }; 60 };
@@ -164,7 +164,7 @@
164 samsung,i2c-max-bus-freq = <400000>; 164 samsung,i2c-max-bus-freq = <400000>;
165 status = "okay"; 165 status = "okay";
166 166
167 usb3503: usb-hub@08 { 167 usb3503: usb-hub@8 {
168 compatible = "smsc,usb3503"; 168 compatible = "smsc,usb3503";
169 reg = <0x08>; 169 reg = <0x08>;
170 170
@@ -178,7 +178,7 @@
178 refclk-frequency = <24000000>; 178 refclk-frequency = <24000000>;
179 }; 179 };
180 180
181 max77802: pmic@09 { 181 max77802: pmic@9 {
182 compatible = "maxim,max77802"; 182 compatible = "maxim,max77802";
183 reg = <0x9>; 183 reg = <0x9>;
184 interrupt-parent = <&gpx0>; 184 interrupt-parent = <&gpx0>;
diff --git a/arch/arm/boot/dts/exynos5410-smdk5410.dts b/arch/arm/boot/dts/exynos5410-smdk5410.dts
index 9cb7726ef8d0..25f21e9e7d58 100644
--- a/arch/arm/boot/dts/exynos5410-smdk5410.dts
+++ b/arch/arm/boot/dts/exynos5410-smdk5410.dts
@@ -32,7 +32,7 @@
32 #clock-cells = <0>; 32 #clock-cells = <0>;
33 }; 33 };
34 34
35 firmware@02037000 { 35 firmware@2037000 {
36 compatible = "samsung,secure-firmware"; 36 compatible = "samsung,secure-firmware";
37 reg = <0x02037000 0x1000>; 37 reg = <0x02037000 0x1000>;
38 }; 38 };
diff --git a/arch/arm/boot/dts/exynos5410.dtsi b/arch/arm/boot/dts/exynos5410.dtsi
index 7eab4bc07cec..06713ec86f0d 100644
--- a/arch/arm/boot/dts/exynos5410.dtsi
+++ b/arch/arm/boot/dts/exynos5410.dtsi
@@ -187,7 +187,7 @@
187 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 187 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
188 }; 188 };
189 189
190 pinctrl_3: pinctrl@03860000 { 190 pinctrl_3: pinctrl@3860000 {
191 compatible = "samsung,exynos5410-pinctrl"; 191 compatible = "samsung,exynos5410-pinctrl";
192 reg = <0x03860000 0x1000>; 192 reg = <0x03860000 0x1000>;
193 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 193 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
@@ -223,7 +223,7 @@
223 }; 223 };
224 }; 224 };
225 225
226 audi2s0: i2s@03830000 { 226 audi2s0: i2s@3830000 {
227 compatible = "samsung,exynos5420-i2s"; 227 compatible = "samsung,exynos5420-i2s";
228 reg = <0x03830000 0x100>; 228 reg = <0x03830000 0x100>;
229 dmas = <&pdma0 10 229 dmas = <&pdma0 10
diff --git a/arch/arm/boot/dts/exynos5420-arndale-octa.dts b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
index ee1bb9b8b366..bc78575d8a4d 100644
--- a/arch/arm/boot/dts/exynos5420-arndale-octa.dts
+++ b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
@@ -30,7 +30,7 @@
30 bootargs = "console=ttySAC3,115200"; 30 bootargs = "console=ttySAC3,115200";
31 }; 31 };
32 32
33 firmware@02073000 { 33 firmware@2073000 {
34 compatible = "samsung,secure-firmware"; 34 compatible = "samsung,secure-firmware";
35 reg = <0x02073000 0x1000>; 35 reg = <0x02073000 0x1000>;
36 }; 36 };
@@ -360,6 +360,10 @@
360 status = "okay"; 360 status = "okay";
361}; 361};
362 362
363&mixer {
364 status = "okay";
365};
366
363&mmc_0 { 367&mmc_0 {
364 status = "okay"; 368 status = "okay";
365 broken-cd; 369 broken-cd;
diff --git a/arch/arm/boot/dts/exynos5420-cpus.dtsi b/arch/arm/boot/dts/exynos5420-cpus.dtsi
index 5c052d7ff554..d7d703aa1699 100644
--- a/arch/arm/boot/dts/exynos5420-cpus.dtsi
+++ b/arch/arm/boot/dts/exynos5420-cpus.dtsi
@@ -36,6 +36,7 @@
36 cooling-min-level = <0>; 36 cooling-min-level = <0>;
37 cooling-max-level = <11>; 37 cooling-max-level = <11>;
38 #cooling-cells = <2>; /* min followed by max */ 38 #cooling-cells = <2>; /* min followed by max */
39 capacity-dmips-mhz = <1024>;
39 }; 40 };
40 41
41 cpu1: cpu@1 { 42 cpu1: cpu@1 {
@@ -48,6 +49,7 @@
48 cooling-min-level = <0>; 49 cooling-min-level = <0>;
49 cooling-max-level = <11>; 50 cooling-max-level = <11>;
50 #cooling-cells = <2>; /* min followed by max */ 51 #cooling-cells = <2>; /* min followed by max */
52 capacity-dmips-mhz = <1024>;
51 }; 53 };
52 54
53 cpu2: cpu@2 { 55 cpu2: cpu@2 {
@@ -60,6 +62,7 @@
60 cooling-min-level = <0>; 62 cooling-min-level = <0>;
61 cooling-max-level = <11>; 63 cooling-max-level = <11>;
62 #cooling-cells = <2>; /* min followed by max */ 64 #cooling-cells = <2>; /* min followed by max */
65 capacity-dmips-mhz = <1024>;
63 }; 66 };
64 67
65 cpu3: cpu@3 { 68 cpu3: cpu@3 {
@@ -72,6 +75,7 @@
72 cooling-min-level = <0>; 75 cooling-min-level = <0>;
73 cooling-max-level = <11>; 76 cooling-max-level = <11>;
74 #cooling-cells = <2>; /* min followed by max */ 77 #cooling-cells = <2>; /* min followed by max */
78 capacity-dmips-mhz = <1024>;
75 }; 79 };
76 80
77 cpu4: cpu@100 { 81 cpu4: cpu@100 {
@@ -85,6 +89,7 @@
85 cooling-min-level = <0>; 89 cooling-min-level = <0>;
86 cooling-max-level = <7>; 90 cooling-max-level = <7>;
87 #cooling-cells = <2>; /* min followed by max */ 91 #cooling-cells = <2>; /* min followed by max */
92 capacity-dmips-mhz = <539>;
88 }; 93 };
89 94
90 cpu5: cpu@101 { 95 cpu5: cpu@101 {
@@ -97,6 +102,7 @@
97 cooling-min-level = <0>; 102 cooling-min-level = <0>;
98 cooling-max-level = <7>; 103 cooling-max-level = <7>;
99 #cooling-cells = <2>; /* min followed by max */ 104 #cooling-cells = <2>; /* min followed by max */
105 capacity-dmips-mhz = <539>;
100 }; 106 };
101 107
102 cpu6: cpu@102 { 108 cpu6: cpu@102 {
@@ -109,6 +115,7 @@
109 cooling-min-level = <0>; 115 cooling-min-level = <0>;
110 cooling-max-level = <7>; 116 cooling-max-level = <7>;
111 #cooling-cells = <2>; /* min followed by max */ 117 #cooling-cells = <2>; /* min followed by max */
118 capacity-dmips-mhz = <539>;
112 }; 119 };
113 120
114 cpu7: cpu@103 { 121 cpu7: cpu@103 {
@@ -121,6 +128,7 @@
121 cooling-min-level = <0>; 128 cooling-min-level = <0>;
122 cooling-max-level = <7>; 129 cooling-max-level = <7>;
123 #cooling-cells = <2>; /* min followed by max */ 130 #cooling-cells = <2>; /* min followed by max */
131 capacity-dmips-mhz = <539>;
124 }; 132 };
125 }; 133 };
126}; 134};
diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts b/arch/arm/boot/dts/exynos5420-peach-pit.dts
index 683a4cfb4a23..38af8769711c 100644
--- a/arch/arm/boot/dts/exynos5420-peach-pit.dts
+++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts
@@ -696,6 +696,10 @@
696 status = "okay"; 696 status = "okay";
697}; 697};
698 698
699&mixer {
700 status = "okay";
701};
702
699/* eMMC flash */ 703/* eMMC flash */
700&mmc_0 { 704&mmc_0 {
701 status = "okay"; 705 status = "okay";
diff --git a/arch/arm/boot/dts/exynos5420-smdk5420.dts b/arch/arm/boot/dts/exynos5420-smdk5420.dts
index 08c8ab173e87..310d8637ce9f 100644
--- a/arch/arm/boot/dts/exynos5420-smdk5420.dts
+++ b/arch/arm/boot/dts/exynos5420-smdk5420.dts
@@ -130,6 +130,7 @@
130 130
131&hdmi { 131&hdmi {
132 status = "okay"; 132 status = "okay";
133 ddc = <&i2c_2>;
133 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 134 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
134 pinctrl-names = "default"; 135 pinctrl-names = "default";
135 pinctrl-0 = <&hdmi_hpd_irq>; 136 pinctrl-0 = <&hdmi_hpd_irq>;
@@ -347,12 +348,12 @@
347&i2c_2 { 348&i2c_2 {
348 samsung,i2c-sda-delay = <100>; 349 samsung,i2c-sda-delay = <100>;
349 samsung,i2c-max-bus-freq = <66000>; 350 samsung,i2c-max-bus-freq = <66000>;
351 /* used by HDMI DDC */
350 status = "okay"; 352 status = "okay";
353};
351 354
352 hdmiddc@50 { 355&mixer {
353 compatible = "samsung,exynos4210-hdmiddc"; 356 status = "okay";
354 reg = <0x50>;
355 };
356}; 357};
357 358
358&mmc_0 { 359&mmc_0 {
diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
index 02d2f898efa6..8aa2cc7aa125 100644
--- a/arch/arm/boot/dts/exynos5420.dtsi
+++ b/arch/arm/boot/dts/exynos5420.dtsi
@@ -352,7 +352,7 @@
352 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 352 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
353 }; 353 };
354 354
355 pinctrl_4: pinctrl@03860000 { 355 pinctrl_4: pinctrl@3860000 {
356 compatible = "samsung,exynos5420-pinctrl"; 356 compatible = "samsung,exynos5420-pinctrl";
357 reg = <0x03860000 0x1000>; 357 reg = <0x03860000 0x1000>;
358 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 358 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
@@ -365,7 +365,7 @@
365 interrupt-parent = <&gic>; 365 interrupt-parent = <&gic>;
366 ranges; 366 ranges;
367 367
368 adma: adma@03880000 { 368 adma: adma@3880000 {
369 compatible = "arm,pl330", "arm,primecell"; 369 compatible = "arm,pl330", "arm,primecell";
370 reg = <0x03880000 0x1000>; 370 reg = <0x03880000 0x1000>;
371 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 371 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
@@ -429,7 +429,7 @@
429 }; 429 };
430 }; 430 };
431 431
432 i2s0: i2s@03830000 { 432 i2s0: i2s@3830000 {
433 compatible = "samsung,exynos5420-i2s"; 433 compatible = "samsung,exynos5420-i2s";
434 reg = <0x03830000 0x100>; 434 reg = <0x03830000 0x100>;
435 dmas = <&adma 0 435 dmas = <&adma 0
@@ -646,6 +646,7 @@
646 clock-names = "mixer", "hdmi", "sclk_hdmi"; 646 clock-names = "mixer", "hdmi", "sclk_hdmi";
647 power-domains = <&disp_pd>; 647 power-domains = <&disp_pd>;
648 iommus = <&sysmmu_tv>; 648 iommus = <&sysmmu_tv>;
649 status = "disabled";
649 }; 650 };
650 651
651 rotator: rotator@11C00000 { 652 rotator: rotator@11C00000 {
@@ -658,7 +659,7 @@
658 }; 659 };
659 660
660 gsc_0: video-scaler@13e00000 { 661 gsc_0: video-scaler@13e00000 {
661 compatible = "samsung,exynos5-gsc"; 662 compatible = "samsung,exynos5420-gsc", "samsung,exynos5-gsc";
662 reg = <0x13e00000 0x1000>; 663 reg = <0x13e00000 0x1000>;
663 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 664 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
664 clocks = <&clock CLK_GSCL0>; 665 clocks = <&clock CLK_GSCL0>;
@@ -668,7 +669,7 @@
668 }; 669 };
669 670
670 gsc_1: video-scaler@13e10000 { 671 gsc_1: video-scaler@13e10000 {
671 compatible = "samsung,exynos5-gsc"; 672 compatible = "samsung,exynos5420-gsc", "samsung,exynos5-gsc";
672 reg = <0x13e10000 0x1000>; 673 reg = <0x13e10000 0x1000>;
673 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 674 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
674 clocks = <&clock CLK_GSCL1>; 675 clocks = <&clock CLK_GSCL1>;
diff --git a/arch/arm/boot/dts/exynos5422-cpus.dtsi b/arch/arm/boot/dts/exynos5422-cpus.dtsi
index bf3c6f1ec4ee..ec01d8020c2d 100644
--- a/arch/arm/boot/dts/exynos5422-cpus.dtsi
+++ b/arch/arm/boot/dts/exynos5422-cpus.dtsi
@@ -35,6 +35,7 @@
35 cooling-min-level = <0>; 35 cooling-min-level = <0>;
36 cooling-max-level = <11>; 36 cooling-max-level = <11>;
37 #cooling-cells = <2>; /* min followed by max */ 37 #cooling-cells = <2>; /* min followed by max */
38 capacity-dmips-mhz = <539>;
38 }; 39 };
39 40
40 cpu1: cpu@101 { 41 cpu1: cpu@101 {
@@ -47,6 +48,7 @@
47 cooling-min-level = <0>; 48 cooling-min-level = <0>;
48 cooling-max-level = <11>; 49 cooling-max-level = <11>;
49 #cooling-cells = <2>; /* min followed by max */ 50 #cooling-cells = <2>; /* min followed by max */
51 capacity-dmips-mhz = <539>;
50 }; 52 };
51 53
52 cpu2: cpu@102 { 54 cpu2: cpu@102 {
@@ -59,6 +61,7 @@
59 cooling-min-level = <0>; 61 cooling-min-level = <0>;
60 cooling-max-level = <11>; 62 cooling-max-level = <11>;
61 #cooling-cells = <2>; /* min followed by max */ 63 #cooling-cells = <2>; /* min followed by max */
64 capacity-dmips-mhz = <539>;
62 }; 65 };
63 66
64 cpu3: cpu@103 { 67 cpu3: cpu@103 {
@@ -71,6 +74,7 @@
71 cooling-min-level = <0>; 74 cooling-min-level = <0>;
72 cooling-max-level = <11>; 75 cooling-max-level = <11>;
73 #cooling-cells = <2>; /* min followed by max */ 76 #cooling-cells = <2>; /* min followed by max */
77 capacity-dmips-mhz = <539>;
74 }; 78 };
75 79
76 cpu4: cpu@0 { 80 cpu4: cpu@0 {
@@ -84,6 +88,7 @@
84 cooling-min-level = <0>; 88 cooling-min-level = <0>;
85 cooling-max-level = <15>; 89 cooling-max-level = <15>;
86 #cooling-cells = <2>; /* min followed by max */ 90 #cooling-cells = <2>; /* min followed by max */
91 capacity-dmips-mhz = <1024>;
87 }; 92 };
88 93
89 cpu5: cpu@1 { 94 cpu5: cpu@1 {
@@ -96,6 +101,7 @@
96 cooling-min-level = <0>; 101 cooling-min-level = <0>;
97 cooling-max-level = <15>; 102 cooling-max-level = <15>;
98 #cooling-cells = <2>; /* min followed by max */ 103 #cooling-cells = <2>; /* min followed by max */
104 capacity-dmips-mhz = <1024>;
99 }; 105 };
100 106
101 cpu6: cpu@2 { 107 cpu6: cpu@2 {
@@ -108,6 +114,7 @@
108 cooling-min-level = <0>; 114 cooling-min-level = <0>;
109 cooling-max-level = <15>; 115 cooling-max-level = <15>;
110 #cooling-cells = <2>; /* min followed by max */ 116 #cooling-cells = <2>; /* min followed by max */
117 capacity-dmips-mhz = <1024>;
111 }; 118 };
112 119
113 cpu7: cpu@3 { 120 cpu7: cpu@3 {
@@ -120,6 +127,7 @@
120 cooling-min-level = <0>; 127 cooling-min-level = <0>;
121 cooling-max-level = <15>; 128 cooling-max-level = <15>;
122 #cooling-cells = <2>; /* min followed by max */ 129 #cooling-cells = <2>; /* min followed by max */
130 capacity-dmips-mhz = <1024>;
123 }; 131 };
124 }; 132 };
125}; 133};
diff --git a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
new file mode 100644
index 000000000000..a5b8d0f0877e
--- /dev/null
+++ b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
@@ -0,0 +1,443 @@
1/*
2 * Hardkernel Odroid XU3/XU4/HC1 boards core device tree source
3 *
4 * Copyright (c) 2017 Marek Szyprowski
5 * Copyright (c) 2013-2017 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11*/
12
13#include <dt-bindings/clock/samsung,s2mps11.h>
14#include <dt-bindings/interrupt-controller/irq.h>
15#include <dt-bindings/gpio/gpio.h>
16#include "exynos5800.dtsi"
17#include "exynos5422-cpus.dtsi"
18
19/ {
20 memory@40000000 {
21 device_type = "memory";
22 reg = <0x40000000 0x7EA00000>;
23 };
24
25 chosen {
26 stdout-path = "serial2:115200n8";
27 };
28
29 firmware@02073000 {
30 compatible = "samsung,secure-firmware";
31 reg = <0x02073000 0x1000>;
32 };
33
34 fixed-rate-clocks {
35 oscclk {
36 compatible = "samsung,exynos5420-oscclk";
37 clock-frequency = <24000000>;
38 };
39 };
40};
41
42&bus_wcore {
43 devfreq-events = <&nocp_mem0_0>, <&nocp_mem0_1>,
44 <&nocp_mem1_0>, <&nocp_mem1_1>;
45 vdd-supply = <&buck3_reg>;
46 exynos,saturation-ratio = <100>;
47 status = "okay";
48};
49
50&bus_noc {
51 devfreq = <&bus_wcore>;
52 status = "okay";
53};
54
55&bus_fsys_apb {
56 devfreq = <&bus_wcore>;
57 status = "okay";
58};
59
60&bus_fsys {
61 devfreq = <&bus_wcore>;
62 status = "okay";
63};
64
65&bus_fsys2 {
66 devfreq = <&bus_wcore>;
67 status = "okay";
68};
69
70&bus_mfc {
71 devfreq = <&bus_wcore>;
72 status = "okay";
73};
74
75&bus_gen {
76 devfreq = <&bus_wcore>;
77 status = "okay";
78};
79
80&bus_peri {
81 devfreq = <&bus_wcore>;
82 status = "okay";
83};
84
85&bus_g2d {
86 devfreq = <&bus_wcore>;
87 status = "okay";
88};
89
90&bus_g2d_acp {
91 devfreq = <&bus_wcore>;
92 status = "okay";
93};
94
95&bus_jpeg {
96 devfreq = <&bus_wcore>;
97 status = "okay";
98};
99
100&bus_jpeg_apb {
101 devfreq = <&bus_wcore>;
102 status = "okay";
103};
104
105&bus_disp1_fimd {
106 devfreq = <&bus_wcore>;
107 status = "okay";
108};
109
110&bus_disp1 {
111 devfreq = <&bus_wcore>;
112 status = "okay";
113};
114
115&bus_gscl_scaler {
116 devfreq = <&bus_wcore>;
117 status = "okay";
118};
119
120&bus_mscl {
121 devfreq = <&bus_wcore>;
122 status = "okay";
123};
124
125&cpu0 {
126 cpu-supply = <&buck6_reg>;
127};
128
129&cpu4 {
130 cpu-supply = <&buck2_reg>;
131};
132
133&hsi2c_4 {
134 status = "okay";
135
136 s2mps11_pmic@66 {
137 compatible = "samsung,s2mps11-pmic";
138 reg = <0x66>;
139 samsung,s2mps11-acokb-ground;
140
141 interrupt-parent = <&gpx0>;
142 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
143 pinctrl-names = "default";
144 pinctrl-0 = <&s2mps11_irq>;
145
146 s2mps11_osc: clocks {
147 #clock-cells = <1>;
148 clock-output-names = "s2mps11_ap",
149 "s2mps11_cp", "s2mps11_bt";
150 };
151
152 regulators {
153 ldo1_reg: LDO1 {
154 regulator-name = "vdd_ldo1";
155 regulator-min-microvolt = <1000000>;
156 regulator-max-microvolt = <1000000>;
157 regulator-always-on;
158 };
159
160 ldo3_reg: LDO3 {
161 regulator-name = "vddq_mmc0";
162 regulator-min-microvolt = <1800000>;
163 regulator-max-microvolt = <1800000>;
164 };
165
166 ldo4_reg: LDO4 {
167 regulator-name = "vdd_adc";
168 regulator-min-microvolt = <1800000>;
169 regulator-max-microvolt = <1800000>;
170 };
171
172 ldo5_reg: LDO5 {
173 regulator-name = "vdd_ldo5";
174 regulator-min-microvolt = <1800000>;
175 regulator-max-microvolt = <1800000>;
176 regulator-always-on;
177 };
178
179 ldo6_reg: LDO6 {
180 regulator-name = "vdd_ldo6";
181 regulator-min-microvolt = <1000000>;
182 regulator-max-microvolt = <1000000>;
183 regulator-always-on;
184 };
185
186 ldo7_reg: LDO7 {
187 regulator-name = "vdd_ldo7";
188 regulator-min-microvolt = <1800000>;
189 regulator-max-microvolt = <1800000>;
190 regulator-always-on;
191 };
192
193 ldo8_reg: LDO8 {
194 regulator-name = "vdd_ldo8";
195 regulator-min-microvolt = <1800000>;
196 regulator-max-microvolt = <1800000>;
197 regulator-always-on;
198 };
199
200 ldo9_reg: LDO9 {
201 regulator-name = "vdd_ldo9";
202 regulator-min-microvolt = <3000000>;
203 regulator-max-microvolt = <3000000>;
204 regulator-always-on;
205 };
206
207 ldo10_reg: LDO10 {
208 regulator-name = "vdd_ldo10";
209 regulator-min-microvolt = <1800000>;
210 regulator-max-microvolt = <1800000>;
211 regulator-always-on;
212 };
213
214 ldo11_reg: LDO11 {
215 regulator-name = "vdd_ldo11";
216 regulator-min-microvolt = <1000000>;
217 regulator-max-microvolt = <1000000>;
218 regulator-always-on;
219 };
220
221 ldo12_reg: LDO12 {
222 regulator-name = "vdd_ldo12";
223 regulator-min-microvolt = <1800000>;
224 regulator-max-microvolt = <1800000>;
225 regulator-always-on;
226 };
227
228 ldo13_reg: LDO13 {
229 regulator-name = "vddq_mmc2";
230 regulator-min-microvolt = <2800000>;
231 regulator-max-microvolt = <2800000>;
232 };
233
234 ldo15_reg: LDO15 {
235 regulator-name = "vdd_ldo15";
236 regulator-min-microvolt = <3100000>;
237 regulator-max-microvolt = <3100000>;
238 regulator-always-on;
239 };
240
241 ldo16_reg: LDO16 {
242 regulator-name = "vdd_ldo16";
243 regulator-min-microvolt = <2200000>;
244 regulator-max-microvolt = <2200000>;
245 regulator-always-on;
246 };
247
248 ldo17_reg: LDO17 {
249 regulator-name = "tsp_avdd";
250 regulator-min-microvolt = <3300000>;
251 regulator-max-microvolt = <3300000>;
252 regulator-always-on;
253 };
254
255 ldo18_reg: LDO18 {
256 regulator-name = "vdd_emmc_1V8";
257 regulator-min-microvolt = <1800000>;
258 regulator-max-microvolt = <1800000>;
259 };
260
261 ldo19_reg: LDO19 {
262 regulator-name = "vdd_sd";
263 regulator-min-microvolt = <2800000>;
264 regulator-max-microvolt = <2800000>;
265 };
266
267 ldo24_reg: LDO24 {
268 regulator-name = "tsp_io";
269 regulator-min-microvolt = <2800000>;
270 regulator-max-microvolt = <2800000>;
271 regulator-always-on;
272 };
273
274 ldo26_reg: LDO26 {
275 regulator-name = "vdd_ldo26";
276 regulator-min-microvolt = <3000000>;
277 regulator-max-microvolt = <3000000>;
278 regulator-always-on;
279 };
280
281 buck1_reg: BUCK1 {
282 regulator-name = "vdd_mif";
283 regulator-min-microvolt = <800000>;
284 regulator-max-microvolt = <1300000>;
285 regulator-always-on;
286 regulator-boot-on;
287 };
288
289 buck2_reg: BUCK2 {
290 regulator-name = "vdd_arm";
291 regulator-min-microvolt = <800000>;
292 regulator-max-microvolt = <1500000>;
293 regulator-always-on;
294 regulator-boot-on;
295 };
296
297 buck3_reg: BUCK3 {
298 regulator-name = "vdd_int";
299 regulator-min-microvolt = <800000>;
300 regulator-max-microvolt = <1400000>;
301 regulator-always-on;
302 regulator-boot-on;
303 };
304
305 buck4_reg: BUCK4 {
306 regulator-name = "vdd_g3d";
307 regulator-min-microvolt = <800000>;
308 regulator-max-microvolt = <1400000>;
309 regulator-always-on;
310 regulator-boot-on;
311 };
312
313 buck5_reg: BUCK5 {
314 regulator-name = "vdd_mem";
315 regulator-min-microvolt = <800000>;
316 regulator-max-microvolt = <1400000>;
317 regulator-always-on;
318 regulator-boot-on;
319 };
320
321 buck6_reg: BUCK6 {
322 regulator-name = "vdd_kfc";
323 regulator-min-microvolt = <800000>;
324 regulator-max-microvolt = <1500000>;
325 regulator-always-on;
326 regulator-boot-on;
327 };
328
329 buck7_reg: BUCK7 {
330 regulator-name = "vdd_1.0v_ldo";
331 regulator-min-microvolt = <800000>;
332 regulator-max-microvolt = <1500000>;
333 regulator-always-on;
334 regulator-boot-on;
335 };
336
337 buck8_reg: BUCK8 {
338 regulator-name = "vdd_1.8v_ldo";
339 regulator-min-microvolt = <800000>;
340 regulator-max-microvolt = <1500000>;
341 regulator-always-on;
342 regulator-boot-on;
343 };
344
345 buck9_reg: BUCK9 {
346 regulator-name = "vdd_2.8v_ldo";
347 regulator-min-microvolt = <3000000>;
348 regulator-max-microvolt = <3750000>;
349 regulator-always-on;
350 regulator-boot-on;
351 };
352
353 buck10_reg: BUCK10 {
354 regulator-name = "vdd_vmem";
355 regulator-min-microvolt = <2850000>;
356 regulator-max-microvolt = <2850000>;
357 regulator-always-on;
358 regulator-boot-on;
359 };
360 };
361 };
362};
363
364&mmc_2 {
365 status = "okay";
366 card-detect-delay = <200>;
367 samsung,dw-mshc-ciu-div = <3>;
368 samsung,dw-mshc-sdr-timing = <0 4>;
369 samsung,dw-mshc-ddr-timing = <0 2>;
370 pinctrl-names = "default";
371 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
372 bus-width = <4>;
373 cap-sd-highspeed;
374 vmmc-supply = <&ldo19_reg>;
375 vqmmc-supply = <&ldo13_reg>;
376};
377
378&nocp_mem0_0 {
379 status = "okay";
380};
381
382&nocp_mem0_1 {
383 status = "okay";
384};
385
386&nocp_mem1_0 {
387 status = "okay";
388};
389
390&nocp_mem1_1 {
391 status = "okay";
392};
393
394&pinctrl_0 {
395 s2mps11_irq: s2mps11-irq {
396 samsung,pins = "gpx0-4";
397 samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
398 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
399 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
400 };
401};
402
403&tmu_cpu0 {
404 vtmu-supply = <&ldo7_reg>;
405};
406
407&tmu_cpu1 {
408 vtmu-supply = <&ldo7_reg>;
409};
410
411&tmu_cpu2 {
412 vtmu-supply = <&ldo7_reg>;
413};
414
415&tmu_cpu3 {
416 vtmu-supply = <&ldo7_reg>;
417};
418
419&tmu_gpu {
420 vtmu-supply = <&ldo7_reg>;
421};
422
423&rtc {
424 status = "okay";
425 clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>;
426 clock-names = "rtc", "rtc_src";
427};
428
429&usbdrd_dwc3_0 {
430 dr_mode = "host";
431};
432
433/* usbdrd_dwc3_1 mode customized in each board */
434
435&usbdrd3_0 {
436 vdd33-supply = <&ldo9_reg>;
437 vdd10-supply = <&ldo11_reg>;
438};
439
440&usbdrd3_1 {
441 vdd33-supply = <&ldo9_reg>;
442 vdd10-supply = <&ldo11_reg>;
443};
diff --git a/arch/arm/boot/dts/exynos5422-odroidhc1.dts b/arch/arm/boot/dts/exynos5422-odroidhc1.dts
new file mode 100644
index 000000000000..fb8e8ae776e9
--- /dev/null
+++ b/arch/arm/boot/dts/exynos5422-odroidhc1.dts
@@ -0,0 +1,213 @@
1/*
2 * Hardkernel Odroid HC1 board device tree source
3 *
4 * Copyright (c) 2017 Marek Szyprowski
5 * Copyright (c) 2017 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11*/
12
13/dts-v1/;
14#include "exynos5422-odroid-core.dtsi"
15
16/ {
17 model = "Hardkernel Odroid HC1";
18 compatible = "hardkernel,odroid-hc1", "samsung,exynos5800", \
19 "samsung,exynos5";
20
21 pwmleds {
22 compatible = "pwm-leds";
23
24 blueled {
25 label = "blue:heartbeat";
26 pwms = <&pwm 2 2000000 0>;
27 pwm-names = "pwm2";
28 max_brightness = <255>;
29 linux,default-trigger = "heartbeat";
30 };
31 };
32
33 thermal-zones {
34 cpu0_thermal: cpu0-thermal {
35 thermal-sensors = <&tmu_cpu0 0>;
36 trips {
37 cpu0_alert0: cpu-alert-0 {
38 temperature = <70000>; /* millicelsius */
39 hysteresis = <10000>; /* millicelsius */
40 type = "active";
41 };
42 cpu0_alert1: cpu-alert-1 {
43 temperature = <85000>; /* millicelsius */
44 hysteresis = <10000>; /* millicelsius */
45 type = "active";
46 };
47 cpu0_crit0: cpu-crit-0 {
48 temperature = <120000>; /* millicelsius */
49 hysteresis = <0>; /* millicelsius */
50 type = "critical";
51 };
52 };
53
54 cooling-maps {
55 /*
56 * When reaching cpu0_alert0, reduce CPU
57 * by 2 steps. On Exynos5422/5800 that would
58 * be: 1600 MHz and 1100 MHz.
59 */
60 map0 {
61 trip = <&cpu0_alert0>;
62 cooling-device = <&cpu0 0 2>;
63 };
64 map1 {
65 trip = <&cpu0_alert0>;
66 cooling-device = <&cpu4 0 2>;
67 };
68 /*
69 * When reaching cpu0_alert1, reduce CPU
70 * further, down to 600 MHz (12 steps for big,
71 * 7 steps for LITTLE).
72 */
73 map2 {
74 trip = <&cpu0_alert1>;
75 cooling-device = <&cpu0 3 7>;
76 };
77 map3 {
78 trip = <&cpu0_alert1>;
79 cooling-device = <&cpu4 3 12>;
80 };
81 };
82 };
83 cpu1_thermal: cpu1-thermal {
84 thermal-sensors = <&tmu_cpu1 0>;
85 trips {
86 cpu1_alert0: cpu-alert-0 {
87 temperature = <70000>;
88 hysteresis = <10000>;
89 type = "active";
90 };
91 cpu1_alert1: cpu-alert-1 {
92 temperature = <85000>;
93 hysteresis = <10000>;
94 type = "active";
95 };
96 cpu1_crit0: cpu-crit-0 {
97 temperature = <120000>;
98 hysteresis = <0>;
99 type = "critical";
100 };
101 };
102 cooling-maps {
103 map0 {
104 trip = <&cpu1_alert0>;
105 cooling-device = <&cpu0 0 2>;
106 };
107 map1 {
108 trip = <&cpu1_alert0>;
109 cooling-device = <&cpu4 0 2>;
110 };
111 map2 {
112 trip = <&cpu1_alert1>;
113 cooling-device = <&cpu0 3 7>;
114 };
115 map3 {
116 trip = <&cpu1_alert1>;
117 cooling-device = <&cpu4 3 12>;
118 };
119 };
120 };
121 cpu2_thermal: cpu2-thermal {
122 thermal-sensors = <&tmu_cpu2 0>;
123 trips {
124 cpu2_alert0: cpu-alert-0 {
125 temperature = <70000>;
126 hysteresis = <10000>;
127 type = "active";
128 };
129 cpu2_alert1: cpu-alert-1 {
130 temperature = <85000>;
131 hysteresis = <10000>;
132 type = "active";
133 };
134 cpu2_crit0: cpu-crit-0 {
135 temperature = <120000>;
136 hysteresis = <0>;
137 type = "critical";
138 };
139 };
140 cooling-maps {
141 map0 {
142 trip = <&cpu2_alert0>;
143 cooling-device = <&cpu0 0 2>;
144 };
145 map1 {
146 trip = <&cpu2_alert0>;
147 cooling-device = <&cpu4 0 2>;
148 };
149 map2 {
150 trip = <&cpu2_alert1>;
151 cooling-device = <&cpu0 3 7>;
152 };
153 map3 {
154 trip = <&cpu2_alert1>;
155 cooling-device = <&cpu4 3 12>;
156 };
157 };
158 };
159 cpu3_thermal: cpu3-thermal {
160 thermal-sensors = <&tmu_cpu3 0>;
161 trips {
162 cpu3_alert0: cpu-alert-0 {
163 temperature = <70000>;
164 hysteresis = <10000>;
165 type = "active";
166 };
167 cpu3_alert1: cpu-alert-1 {
168 temperature = <85000>;
169 hysteresis = <10000>;
170 type = "active";
171 };
172 cpu3_crit0: cpu-crit-0 {
173 temperature = <120000>;
174 hysteresis = <0>;
175 type = "critical";
176 };
177 };
178 cooling-maps {
179 map0 {
180 trip = <&cpu3_alert0>;
181 cooling-device = <&cpu0 0 2>;
182 };
183 map1 {
184 trip = <&cpu3_alert0>;
185 cooling-device = <&cpu4 0 2>;
186 };
187 map2 {
188 trip = <&cpu3_alert1>;
189 cooling-device = <&cpu0 3 7>;
190 };
191 map3 {
192 trip = <&cpu3_alert1>;
193 cooling-device = <&cpu4 3 12>;
194 };
195 };
196 };
197 };
198
199};
200
201&pwm {
202 /*
203 * PWM 2 -- Blue LED
204 */
205 pinctrl-0 = <&pwm2_out>;
206 pinctrl-names = "default";
207 samsung,pwm-outputs = <2>;
208 status = "okay";
209};
210
211&usbdrd_dwc3_1 {
212 dr_mode = "host";
213};
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-audio.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-audio.dtsi
index c0b85981c6bf..da3141a307d5 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3-audio.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3-audio.dtsi
@@ -11,6 +11,8 @@
11 * published by the Free Software Foundation. 11 * published by the Free Software Foundation.
12*/ 12*/
13 13
14#include <dt-bindings/sound/samsung-i2s.h>
15
14/ { 16/ {
15 sound: sound { 17 sound: sound {
16 compatible = "simple-audio-card"; 18 compatible = "simple-audio-card";
@@ -43,6 +45,17 @@
43 }; 45 };
44}; 46};
45 47
48&clock_audss {
49 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
50 <&clock_audss EXYNOS_MOUT_I2S>,
51 <&clock_audss EXYNOS_DOUT_AUD_BUS>;
52 assigned-clock-parents = <&clock CLK_FIN_PLL>,
53 <&clock_audss EXYNOS_MOUT_AUDSS>;
54 assigned-clock-rates = <0>,
55 <0>,
56 <19200000>;
57};
58
46&hsi2c_5 { 59&hsi2c_5 {
47 status = "okay"; 60 status = "okay";
48 max98090: max98090@10 { 61 max98090: max98090@10 {
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
index a183b56283f8..445c6c5a1300 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
@@ -12,32 +12,28 @@
12 * published by the Free Software Foundation. 12 * published by the Free Software Foundation.
13*/ 13*/
14 14
15#include <dt-bindings/clock/samsung,s2mps11.h> 15#include <dt-bindings/input/input.h>
16#include <dt-bindings/interrupt-controller/irq.h> 16#include "exynos5422-odroid-core.dtsi"
17#include <dt-bindings/gpio/gpio.h>
18#include <dt-bindings/sound/samsung-i2s.h>
19#include "exynos5800.dtsi"
20#include "exynos5422-cpus.dtsi"
21 17
22/ { 18/ {
23 memory@40000000 { 19 gpio_keys {
24 device_type = "memory"; 20 compatible = "gpio-keys";
25 reg = <0x40000000 0x7EA00000>; 21 pinctrl-names = "default";
26 }; 22 pinctrl-0 = <&power_key>;
27 23
28 chosen { 24 power_key {
29 stdout-path = "serial2:115200n8"; 25 /*
30 }; 26 * The power button (SW2) is connected to the PWRON
31 27 * pin (active high) of the S2MPS11 PMIC, which acts
32 firmware@02073000 { 28 * as a 16ms debouce filter and signal inverter with
33 compatible = "samsung,secure-firmware"; 29 * output on ONOB pin (active low). ONOB PMIC pin is
34 reg = <0x02073000 0x1000>; 30 * then connected to XEINT3 SoC pin.
35 }; 31 */
36 32 gpios = <&gpx0 3 GPIO_ACTIVE_LOW>;
37 fixed-rate-clocks { 33 linux,code = <KEY_POWER>;
38 oscclk { 34 label = "power key";
39 compatible = "samsung,exynos5420-oscclk"; 35 debounce-interval = <0>;
40 clock-frequency = <24000000>; 36 wakeup-source;
41 }; 37 };
42 }; 38 };
43 39
@@ -63,22 +59,22 @@
63 polling-delay-passive = <250>; 59 polling-delay-passive = <250>;
64 polling-delay = <0>; 60 polling-delay = <0>;
65 trips { 61 trips {
66 cpu_alert0: cpu-alert-0 { 62 cpu0_alert0: cpu-alert-0 {
67 temperature = <50000>; /* millicelsius */ 63 temperature = <50000>; /* millicelsius */
68 hysteresis = <5000>; /* millicelsius */ 64 hysteresis = <5000>; /* millicelsius */
69 type = "active"; 65 type = "active";
70 }; 66 };
71 cpu_alert1: cpu-alert-1 { 67 cpu0_alert1: cpu-alert-1 {
72 temperature = <60000>; /* millicelsius */ 68 temperature = <60000>; /* millicelsius */
73 hysteresis = <5000>; /* millicelsius */ 69 hysteresis = <5000>; /* millicelsius */
74 type = "active"; 70 type = "active";
75 }; 71 };
76 cpu_alert2: cpu-alert-2 { 72 cpu0_alert2: cpu-alert-2 {
77 temperature = <70000>; /* millicelsius */ 73 temperature = <70000>; /* millicelsius */
78 hysteresis = <5000>; /* millicelsius */ 74 hysteresis = <5000>; /* millicelsius */
79 type = "active"; 75 type = "active";
80 }; 76 };
81 cpu_crit0: cpu-crit-0 { 77 cpu0_crit0: cpu-crit-0 {
82 temperature = <120000>; /* millicelsius */ 78 temperature = <120000>; /* millicelsius */
83 hysteresis = <0>; /* millicelsius */ 79 hysteresis = <0>; /* millicelsius */
84 type = "critical"; 80 type = "critical";
@@ -87,59 +83,258 @@
87 * Exynos542x supports only 4 trip-points 83 * Exynos542x supports only 4 trip-points
88 * so for these polling mode is required. 84 * so for these polling mode is required.
89 * Start polling at temperature level of last 85 * Start polling at temperature level of last
90 * interrupt-driven trip: cpu_alert2 86 * interrupt-driven trip: cpu0_alert2
91 */ 87 */
92 cpu_alert3: cpu-alert-3 { 88 cpu0_alert3: cpu-alert-3 {
93 temperature = <70000>; /* millicelsius */ 89 temperature = <70000>; /* millicelsius */
94 hysteresis = <10000>; /* millicelsius */ 90 hysteresis = <10000>; /* millicelsius */
95 type = "passive"; 91 type = "passive";
96 }; 92 };
97 cpu_alert4: cpu-alert-4 { 93 cpu0_alert4: cpu-alert-4 {
98 temperature = <85000>; /* millicelsius */ 94 temperature = <85000>; /* millicelsius */
99 hysteresis = <10000>; /* millicelsius */ 95 hysteresis = <10000>; /* millicelsius */
100 type = "passive"; 96 type = "passive";
101 }; 97 };
102
103 }; 98 };
104 cooling-maps { 99 cooling-maps {
105 map0 { 100 map0 {
106 trip = <&cpu_alert0>; 101 trip = <&cpu0_alert0>;
107 cooling-device = <&fan0 0 1>; 102 cooling-device = <&fan0 0 1>;
108 }; 103 };
109 map1 { 104 map1 {
110 trip = <&cpu_alert1>; 105 trip = <&cpu0_alert1>;
111 cooling-device = <&fan0 1 2>; 106 cooling-device = <&fan0 1 2>;
112 }; 107 };
113 map2 { 108 map2 {
114 trip = <&cpu_alert2>; 109 trip = <&cpu0_alert2>;
115 cooling-device = <&fan0 2 3>; 110 cooling-device = <&fan0 2 3>;
116 }; 111 };
117 /* 112 /*
118 * When reaching cpu_alert3, reduce CPU 113 * When reaching cpu0_alert3, reduce CPU
119 * by 2 steps. On Exynos5422/5800 that would 114 * by 2 steps. On Exynos5422/5800 that would
120 * be: 1600 MHz and 1100 MHz. 115 * be: 1600 MHz and 1100 MHz.
121 */ 116 */
122 map3 { 117 map3 {
123 trip = <&cpu_alert3>; 118 trip = <&cpu0_alert3>;
124 cooling-device = <&cpu0 0 2>; 119 cooling-device = <&cpu0 0 2>;
125 }; 120 };
126 map4 { 121 map4 {
127 trip = <&cpu_alert3>; 122 trip = <&cpu0_alert3>;
128 cooling-device = <&cpu4 0 2>; 123 cooling-device = <&cpu4 0 2>;
129 }; 124 };
130
131 /* 125 /*
132 * When reaching cpu_alert4, reduce CPU 126 * When reaching cpu0_alert4, reduce CPU
133 * further, down to 600 MHz (11 steps for big, 127 * further, down to 600 MHz (12 steps for big,
134 * 7 steps for LITTLE). 128 * 7 steps for LITTLE).
135 */ 129 */
136 map5 { 130 map5 {
137 trip = <&cpu_alert4>; 131 trip = <&cpu0_alert4>;
132 cooling-device = <&cpu0 3 7>;
133 };
134 map6 {
135 trip = <&cpu0_alert4>;
136 cooling-device = <&cpu4 3 12>;
137 };
138 };
139 };
140 cpu1_thermal: cpu1-thermal {
141 thermal-sensors = <&tmu_cpu1 0>;
142 polling-delay-passive = <250>;
143 polling-delay = <0>;
144 trips {
145 cpu1_alert0: cpu-alert-0 {
146 temperature = <50000>;
147 hysteresis = <5000>;
148 type = "active";
149 };
150 cpu1_alert1: cpu-alert-1 {
151 temperature = <60000>;
152 hysteresis = <5000>;
153 type = "active";
154 };
155 cpu1_alert2: cpu-alert-2 {
156 temperature = <70000>;
157 hysteresis = <5000>;
158 type = "active";
159 };
160 cpu1_crit0: cpu-crit-0 {
161 temperature = <120000>;
162 hysteresis = <0>;
163 type = "critical";
164 };
165 cpu1_alert3: cpu-alert-3 {
166 temperature = <70000>;
167 hysteresis = <10000>;
168 type = "passive";
169 };
170 cpu1_alert4: cpu-alert-4 {
171 temperature = <85000>;
172 hysteresis = <10000>;
173 type = "passive";
174 };
175 };
176 cooling-maps {
177 map0 {
178 trip = <&cpu1_alert0>;
179 cooling-device = <&fan0 0 1>;
180 };
181 map1 {
182 trip = <&cpu1_alert1>;
183 cooling-device = <&fan0 1 2>;
184 };
185 map2 {
186 trip = <&cpu1_alert2>;
187 cooling-device = <&fan0 2 3>;
188 };
189 map3 {
190 trip = <&cpu1_alert3>;
191 cooling-device = <&cpu0 0 2>;
192 };
193 map4 {
194 trip = <&cpu1_alert3>;
195 cooling-device = <&cpu4 0 2>;
196 };
197 map5 {
198 trip = <&cpu1_alert4>;
199 cooling-device = <&cpu0 3 7>;
200 };
201 map6 {
202 trip = <&cpu1_alert4>;
203 cooling-device = <&cpu4 3 12>;
204 };
205 };
206 };
207 cpu2_thermal: cpu2-thermal {
208 thermal-sensors = <&tmu_cpu2 0>;
209 polling-delay-passive = <250>;
210 polling-delay = <0>;
211 trips {
212 cpu2_alert0: cpu-alert-0 {
213 temperature = <50000>;
214 hysteresis = <5000>;
215 type = "active";
216 };
217 cpu2_alert1: cpu-alert-1 {
218 temperature = <60000>;
219 hysteresis = <5000>;
220 type = "active";
221 };
222 cpu2_alert2: cpu-alert-2 {
223 temperature = <70000>;
224 hysteresis = <5000>;
225 type = "active";
226 };
227 cpu2_crit0: cpu-crit-0 {
228 temperature = <120000>;
229 hysteresis = <0>;
230 type = "critical";
231 };
232 cpu2_alert3: cpu-alert-3 {
233 temperature = <70000>;
234 hysteresis = <10000>;
235 type = "passive";
236 };
237 cpu2_alert4: cpu-alert-4 {
238 temperature = <85000>;
239 hysteresis = <10000>;
240 type = "passive";
241 };
242 };
243 cooling-maps {
244 map0 {
245 trip = <&cpu2_alert0>;
246 cooling-device = <&fan0 0 1>;
247 };
248 map1 {
249 trip = <&cpu2_alert1>;
250 cooling-device = <&fan0 1 2>;
251 };
252 map2 {
253 trip = <&cpu2_alert2>;
254 cooling-device = <&fan0 2 3>;
255 };
256 map3 {
257 trip = <&cpu2_alert3>;
258 cooling-device = <&cpu0 0 2>;
259 };
260 map4 {
261 trip = <&cpu2_alert3>;
262 cooling-device = <&cpu4 0 2>;
263 };
264 map5 {
265 trip = <&cpu2_alert4>;
138 cooling-device = <&cpu0 3 7>; 266 cooling-device = <&cpu0 3 7>;
139 }; 267 };
140 map6 { 268 map6 {
141 trip = <&cpu_alert4>; 269 trip = <&cpu2_alert4>;
142 cooling-device = <&cpu4 3 11>; 270 cooling-device = <&cpu4 3 12>;
271 };
272 };
273 };
274 cpu3_thermal: cpu3-thermal {
275 thermal-sensors = <&tmu_cpu3 0>;
276 polling-delay-passive = <250>;
277 polling-delay = <0>;
278 trips {
279 cpu3_alert0: cpu-alert-0 {
280 temperature = <50000>;
281 hysteresis = <5000>;
282 type = "active";
283 };
284 cpu3_alert1: cpu-alert-1 {
285 temperature = <60000>;
286 hysteresis = <5000>;
287 type = "active";
288 };
289 cpu3_alert2: cpu-alert-2 {
290 temperature = <70000>;
291 hysteresis = <5000>;
292 type = "active";
293 };
294 cpu3_crit0: cpu-crit-0 {
295 temperature = <120000>;
296 hysteresis = <0>;
297 type = "critical";
298 };
299 cpu3_alert3: cpu-alert-3 {
300 temperature = <70000>;
301 hysteresis = <10000>;
302 type = "passive";
303 };
304 cpu3_alert4: cpu-alert-4 {
305 temperature = <85000>;
306 hysteresis = <10000>;
307 type = "passive";
308 };
309 };
310 cooling-maps {
311 map0 {
312 trip = <&cpu3_alert0>;
313 cooling-device = <&fan0 0 1>;
314 };
315 map1 {
316 trip = <&cpu3_alert1>;
317 cooling-device = <&fan0 1 2>;
318 };
319 map2 {
320 trip = <&cpu3_alert2>;
321 cooling-device = <&fan0 2 3>;
322 };
323 map3 {
324 trip = <&cpu3_alert3>;
325 cooling-device = <&cpu0 0 2>;
326 };
327 map4 {
328 trip = <&cpu3_alert3>;
329 cooling-device = <&cpu4 0 2>;
330 };
331 map5 {
332 trip = <&cpu3_alert4>;
333 cooling-device = <&cpu0 3 7>;
334 };
335 map6 {
336 trip = <&cpu3_alert4>;
337 cooling-device = <&cpu4 3 12>;
143 }; 338 };
144 }; 339 };
145 }; 340 };
@@ -151,110 +346,9 @@
151 status = "okay"; 346 status = "okay";
152}; 347};
153 348
154&bus_wcore {
155 devfreq-events = <&nocp_mem0_0>, <&nocp_mem0_1>,
156 <&nocp_mem1_0>, <&nocp_mem1_1>;
157 vdd-supply = <&buck3_reg>;
158 exynos,saturation-ratio = <100>;
159 status = "okay";
160};
161
162&bus_noc {
163 devfreq = <&bus_wcore>;
164 status = "okay";
165};
166
167&bus_fsys_apb {
168 devfreq = <&bus_wcore>;
169 status = "okay";
170};
171
172&bus_fsys {
173 devfreq = <&bus_wcore>;
174 status = "okay";
175};
176
177&bus_fsys2 {
178 devfreq = <&bus_wcore>;
179 status = "okay";
180};
181
182&bus_mfc {
183 devfreq = <&bus_wcore>;
184 status = "okay";
185};
186
187&bus_gen {
188 devfreq = <&bus_wcore>;
189 status = "okay";
190};
191
192&bus_peri {
193 devfreq = <&bus_wcore>;
194 status = "okay";
195};
196
197&bus_g2d {
198 devfreq = <&bus_wcore>;
199 status = "okay";
200};
201
202&bus_g2d_acp {
203 devfreq = <&bus_wcore>;
204 status = "okay";
205};
206
207&bus_jpeg {
208 devfreq = <&bus_wcore>;
209 status = "okay";
210};
211
212&bus_jpeg_apb {
213 devfreq = <&bus_wcore>;
214 status = "okay";
215};
216
217&bus_disp1_fimd {
218 devfreq = <&bus_wcore>;
219 status = "okay";
220};
221
222&bus_disp1 {
223 devfreq = <&bus_wcore>;
224 status = "okay";
225};
226
227&bus_gscl_scaler {
228 devfreq = <&bus_wcore>;
229 status = "okay";
230};
231
232&bus_mscl {
233 devfreq = <&bus_wcore>;
234 status = "okay";
235};
236
237&clock_audss {
238 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
239 <&clock_audss EXYNOS_MOUT_I2S>,
240 <&clock_audss EXYNOS_DOUT_AUD_BUS>;
241 assigned-clock-parents = <&clock CLK_FIN_PLL>,
242 <&clock_audss EXYNOS_MOUT_AUDSS>;
243 assigned-clock-rates = <0>,
244 <0>,
245 <19200000>;
246};
247
248&cpu0 {
249 cpu-supply = <&buck6_reg>;
250};
251
252&cpu4 {
253 cpu-supply = <&buck2_reg>;
254};
255
256&hdmi { 349&hdmi {
257 status = "okay"; 350 status = "okay";
351 ddc = <&i2c_2>;
258 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 352 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
259 pinctrl-names = "default"; 353 pinctrl-names = "default";
260 pinctrl-0 = <&hdmi_hpd_irq>; 354 pinctrl-0 = <&hdmi_hpd_irq>;
@@ -269,246 +363,15 @@
269 needs-hpd; 363 needs-hpd;
270}; 364};
271 365
272&hsi2c_4 {
273 status = "okay";
274
275 s2mps11_pmic@66 {
276 compatible = "samsung,s2mps11-pmic";
277 reg = <0x66>;
278 samsung,s2mps11-acokb-ground;
279
280 interrupt-parent = <&gpx0>;
281 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
282 pinctrl-names = "default";
283 pinctrl-0 = <&s2mps11_irq>;
284
285 s2mps11_osc: clocks {
286 #clock-cells = <1>;
287 clock-output-names = "s2mps11_ap",
288 "s2mps11_cp", "s2mps11_bt";
289 };
290
291 regulators {
292 ldo1_reg: LDO1 {
293 regulator-name = "vdd_ldo1";
294 regulator-min-microvolt = <1000000>;
295 regulator-max-microvolt = <1000000>;
296 regulator-always-on;
297 };
298
299 ldo3_reg: LDO3 {
300 regulator-name = "vddq_mmc0";
301 regulator-min-microvolt = <1800000>;
302 regulator-max-microvolt = <1800000>;
303 };
304
305 ldo4_reg: LDO4 {
306 regulator-name = "vdd_adc";
307 regulator-min-microvolt = <1800000>;
308 regulator-max-microvolt = <1800000>;
309 };
310
311 ldo5_reg: LDO5 {
312 regulator-name = "vdd_ldo5";
313 regulator-min-microvolt = <1800000>;
314 regulator-max-microvolt = <1800000>;
315 regulator-always-on;
316 };
317
318 ldo6_reg: LDO6 {
319 regulator-name = "vdd_ldo6";
320 regulator-min-microvolt = <1000000>;
321 regulator-max-microvolt = <1000000>;
322 regulator-always-on;
323 };
324
325 ldo7_reg: LDO7 {
326 regulator-name = "vdd_ldo7";
327 regulator-min-microvolt = <1800000>;
328 regulator-max-microvolt = <1800000>;
329 regulator-always-on;
330 };
331
332 ldo8_reg: LDO8 {
333 regulator-name = "vdd_ldo8";
334 regulator-min-microvolt = <1800000>;
335 regulator-max-microvolt = <1800000>;
336 regulator-always-on;
337 };
338
339 ldo9_reg: LDO9 {
340 regulator-name = "vdd_ldo9";
341 regulator-min-microvolt = <3000000>;
342 regulator-max-microvolt = <3000000>;
343 regulator-always-on;
344 };
345
346 ldo10_reg: LDO10 {
347 regulator-name = "vdd_ldo10";
348 regulator-min-microvolt = <1800000>;
349 regulator-max-microvolt = <1800000>;
350 regulator-always-on;
351 };
352
353 ldo11_reg: LDO11 {
354 regulator-name = "vdd_ldo11";
355 regulator-min-microvolt = <1000000>;
356 regulator-max-microvolt = <1000000>;
357 regulator-always-on;
358 };
359
360 ldo12_reg: LDO12 {
361 regulator-name = "vdd_ldo12";
362 regulator-min-microvolt = <1800000>;
363 regulator-max-microvolt = <1800000>;
364 regulator-always-on;
365 };
366
367 ldo13_reg: LDO13 {
368 regulator-name = "vddq_mmc2";
369 regulator-min-microvolt = <2800000>;
370 regulator-max-microvolt = <2800000>;
371 };
372
373 ldo15_reg: LDO15 {
374 regulator-name = "vdd_ldo15";
375 regulator-min-microvolt = <3100000>;
376 regulator-max-microvolt = <3100000>;
377 regulator-always-on;
378 };
379
380 ldo16_reg: LDO16 {
381 regulator-name = "vdd_ldo16";
382 regulator-min-microvolt = <2200000>;
383 regulator-max-microvolt = <2200000>;
384 regulator-always-on;
385 };
386
387 ldo17_reg: LDO17 {
388 regulator-name = "tsp_avdd";
389 regulator-min-microvolt = <3300000>;
390 regulator-max-microvolt = <3300000>;
391 regulator-always-on;
392 };
393
394 ldo18_reg: LDO18 {
395 regulator-name = "vdd_emmc_1V8";
396 regulator-min-microvolt = <1800000>;
397 regulator-max-microvolt = <1800000>;
398 };
399
400 ldo19_reg: LDO19 {
401 regulator-name = "vdd_sd";
402 regulator-min-microvolt = <2800000>;
403 regulator-max-microvolt = <2800000>;
404 };
405
406 ldo24_reg: LDO24 {
407 regulator-name = "tsp_io";
408 regulator-min-microvolt = <2800000>;
409 regulator-max-microvolt = <2800000>;
410 regulator-always-on;
411 };
412
413 ldo26_reg: LDO26 {
414 regulator-name = "vdd_ldo26";
415 regulator-min-microvolt = <3000000>;
416 regulator-max-microvolt = <3000000>;
417 regulator-always-on;
418 };
419
420 buck1_reg: BUCK1 {
421 regulator-name = "vdd_mif";
422 regulator-min-microvolt = <800000>;
423 regulator-max-microvolt = <1300000>;
424 regulator-always-on;
425 regulator-boot-on;
426 };
427
428 buck2_reg: BUCK2 {
429 regulator-name = "vdd_arm";
430 regulator-min-microvolt = <800000>;
431 regulator-max-microvolt = <1500000>;
432 regulator-always-on;
433 regulator-boot-on;
434 };
435
436 buck3_reg: BUCK3 {
437 regulator-name = "vdd_int";
438 regulator-min-microvolt = <800000>;
439 regulator-max-microvolt = <1400000>;
440 regulator-always-on;
441 regulator-boot-on;
442 };
443
444 buck4_reg: BUCK4 {
445 regulator-name = "vdd_g3d";
446 regulator-min-microvolt = <800000>;
447 regulator-max-microvolt = <1400000>;
448 regulator-always-on;
449 regulator-boot-on;
450 };
451
452 buck5_reg: BUCK5 {
453 regulator-name = "vdd_mem";
454 regulator-min-microvolt = <800000>;
455 regulator-max-microvolt = <1400000>;
456 regulator-always-on;
457 regulator-boot-on;
458 };
459
460 buck6_reg: BUCK6 {
461 regulator-name = "vdd_kfc";
462 regulator-min-microvolt = <800000>;
463 regulator-max-microvolt = <1500000>;
464 regulator-always-on;
465 regulator-boot-on;
466 };
467
468 buck7_reg: BUCK7 {
469 regulator-name = "vdd_1.0v_ldo";
470 regulator-min-microvolt = <800000>;
471 regulator-max-microvolt = <1500000>;
472 regulator-always-on;
473 regulator-boot-on;
474 };
475
476 buck8_reg: BUCK8 {
477 regulator-name = "vdd_1.8v_ldo";
478 regulator-min-microvolt = <800000>;
479 regulator-max-microvolt = <1500000>;
480 regulator-always-on;
481 regulator-boot-on;
482 };
483
484 buck9_reg: BUCK9 {
485 regulator-name = "vdd_2.8v_ldo";
486 regulator-min-microvolt = <3000000>;
487 regulator-max-microvolt = <3750000>;
488 regulator-always-on;
489 regulator-boot-on;
490 };
491
492 buck10_reg: BUCK10 {
493 regulator-name = "vdd_vmem";
494 regulator-min-microvolt = <2850000>;
495 regulator-max-microvolt = <2850000>;
496 regulator-always-on;
497 regulator-boot-on;
498 };
499 };
500 };
501};
502
503&i2c_2 { 366&i2c_2 {
504 samsung,i2c-sda-delay = <100>; 367 samsung,i2c-sda-delay = <100>;
505 samsung,i2c-max-bus-freq = <66000>; 368 samsung,i2c-max-bus-freq = <66000>;
369 /* used by HDMI DDC */
506 status = "okay"; 370 status = "okay";
371};
507 372
508 hdmiddc@50 { 373&mixer {
509 compatible = "samsung,exynos4210-hdmiddc"; 374 status = "okay";
510 reg = <0x50>;
511 };
512}; 375};
513 376
514&mmc_0 { 377&mmc_0 {
@@ -530,48 +393,18 @@
530 vqmmc-supply = <&ldo3_reg>; 393 vqmmc-supply = <&ldo3_reg>;
531}; 394};
532 395
533&mmc_2 {
534 status = "okay";
535 card-detect-delay = <200>;
536 samsung,dw-mshc-ciu-div = <3>;
537 samsung,dw-mshc-sdr-timing = <0 4>;
538 samsung,dw-mshc-ddr-timing = <0 2>;
539 pinctrl-names = "default";
540 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
541 bus-width = <4>;
542 cap-sd-highspeed;
543 vmmc-supply = <&ldo19_reg>;
544 vqmmc-supply = <&ldo13_reg>;
545};
546
547&nocp_mem0_0 {
548 status = "okay";
549};
550
551&nocp_mem0_1 {
552 status = "okay";
553};
554
555&nocp_mem1_0 {
556 status = "okay";
557};
558
559&nocp_mem1_1 {
560 status = "okay";
561};
562
563&pinctrl_0 { 396&pinctrl_0 {
564 hdmi_hpd_irq: hdmi-hpd-irq { 397 power_key: power-key {
565 samsung,pins = "gpx3-7"; 398 samsung,pins = "gpx0-3";
566 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 399 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
567 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>; 400 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
568 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 401 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
569 }; 402 };
570 403
571 s2mps11_irq: s2mps11-irq { 404 hdmi_hpd_irq: hdmi-hpd-irq {
572 samsung,pins = "gpx0-4"; 405 samsung,pins = "gpx3-7";
573 samsung,pin-function = <EXYNOS_PIN_FUNC_F>; 406 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
574 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 407 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
575 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 408 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
576 }; 409 };
577}; 410};
@@ -584,45 +417,3 @@
584 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 417 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
585 }; 418 };
586}; 419};
587
588&tmu_cpu0 {
589 vtmu-supply = <&ldo7_reg>;
590};
591
592&tmu_cpu1 {
593 vtmu-supply = <&ldo7_reg>;
594};
595
596&tmu_cpu2 {
597 vtmu-supply = <&ldo7_reg>;
598};
599
600&tmu_cpu3 {
601 vtmu-supply = <&ldo7_reg>;
602};
603
604&tmu_gpu {
605 vtmu-supply = <&ldo7_reg>;
606};
607
608&rtc {
609 status = "okay";
610 clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>;
611 clock-names = "rtc", "rtc_src";
612};
613
614&usbdrd_dwc3_0 {
615 dr_mode = "host";
616};
617
618/* usbdrd_dwc3_1 mode customized in each board */
619
620&usbdrd3_0 {
621 vdd33-supply = <&ldo9_reg>;
622 vdd10-supply = <&ldo11_reg>;
623};
624
625&usbdrd3_1 {
626 vdd33-supply = <&ldo9_reg>;
627 vdd10-supply = <&ldo11_reg>;
628};
diff --git a/arch/arm/boot/dts/exynos5440-ssdk5440.dts b/arch/arm/boot/dts/exynos5440-ssdk5440.dts
index 92bd2c6f7631..7eafad333bdb 100644
--- a/arch/arm/boot/dts/exynos5440-ssdk5440.dts
+++ b/arch/arm/boot/dts/exynos5440-ssdk5440.dts
@@ -56,7 +56,7 @@
56 samsung,spi-feedback-delay = <0>; 56 samsung,spi-feedback-delay = <0>;
57 }; 57 };
58 58
59 partition@00000 { 59 partition@0 {
60 label = "BootLoader"; 60 label = "BootLoader";
61 reg = <0x60000 0x80000>; 61 reg = <0x60000 0x80000>;
62 read-only; 62 read-only;
diff --git a/arch/arm/boot/dts/exynos5440.dtsi b/arch/arm/boot/dts/exynos5440.dtsi
index 7a00be7ea6d7..9c3c75ae5e48 100644
--- a/arch/arm/boot/dts/exynos5440.dtsi
+++ b/arch/arm/boot/dts/exynos5440.dtsi
@@ -196,7 +196,7 @@
196 clock-names = "watchdog"; 196 clock-names = "watchdog";
197 }; 197 };
198 198
199 gmac: ethernet@00230000 { 199 gmac: ethernet@230000 {
200 compatible = "snps,dwmac-3.70a", "snps,dwmac"; 200 compatible = "snps,dwmac-3.70a", "snps,dwmac";
201 reg = <0x00230000 0x8000>; 201 reg = <0x00230000 0x8000>;
202 interrupt-parent = <&gic>; 202 interrupt-parent = <&gic>;
diff --git a/arch/arm/boot/dts/exynos54xx.dtsi b/arch/arm/boot/dts/exynos54xx.dtsi
index 0389e8a10d0b..a5007f182bc4 100644
--- a/arch/arm/boot/dts/exynos54xx.dtsi
+++ b/arch/arm/boot/dts/exynos54xx.dtsi
@@ -29,7 +29,7 @@
29 }; 29 };
30 30
31 soc: soc { 31 soc: soc {
32 sysram@02020000 { 32 sysram@2020000 {
33 compatible = "mmio-sram"; 33 compatible = "mmio-sram";
34 reg = <0x02020000 0x54000>; 34 reg = <0x02020000 0x54000>;
35 #address-cells = <1>; 35 #address-cells = <1>;
@@ -134,6 +134,7 @@
134 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 134 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
135 phys = <&usbdrd_phy0 0>, <&usbdrd_phy0 1>; 135 phys = <&usbdrd_phy0 0>, <&usbdrd_phy0 1>;
136 phy-names = "usb2-phy", "usb3-phy"; 136 phy-names = "usb2-phy", "usb3-phy";
137 snps,dis_u3_susphy_quirk;
137 }; 138 };
138 }; 139 };
139 140
@@ -154,6 +155,7 @@
154 reg = <0x12400000 0x10000>; 155 reg = <0x12400000 0x10000>;
155 phys = <&usbdrd_phy1 0>, <&usbdrd_phy1 1>; 156 phys = <&usbdrd_phy1 0>, <&usbdrd_phy1 1>;
156 phy-names = "usb2-phy", "usb3-phy"; 157 phy-names = "usb2-phy", "usb3-phy";
158 snps,dis_u3_susphy_quirk;
157 }; 159 };
158 }; 160 };
159 161
diff --git a/arch/arm/boot/dts/ge863-pro3.dtsi b/arch/arm/boot/dts/ge863-pro3.dtsi
index 8613944ea5c5..6a9fdc0760f0 100644
--- a/arch/arm/boot/dts/ge863-pro3.dtsi
+++ b/arch/arm/boot/dts/ge863-pro3.dtsi
@@ -50,7 +50,7 @@
50 reg = <0x0 0x7c0000>; 50 reg = <0x0 0x7c0000>;
51 }; 51 };
52 52
53 root@07c0000 { 53 root@7c0000 {
54 label = "root"; 54 label = "root";
55 reg = <0x7c0000 0x7840000>; 55 reg = <0x7c0000 0x7840000>;
56 }; 56 };
diff --git a/arch/arm/boot/dts/gemini.dtsi b/arch/arm/boot/dts/gemini.dtsi
index b9b07d0895cf..cb5c925bd597 100644
--- a/arch/arm/boot/dts/gemini.dtsi
+++ b/arch/arm/boot/dts/gemini.dtsi
@@ -142,6 +142,12 @@
142 groups = "idegrp"; 142 groups = "idegrp";
143 }; 143 };
144 }; 144 };
145 tvc_default_pins: pinctrl-tvc {
146 mux {
147 function = "tvc";
148 groups = "tvcgrp";
149 };
150 };
145 }; 151 };
146 }; 152 };
147 153
@@ -348,5 +354,20 @@
348 memcpy-bus-width = <32>; 354 memcpy-bus-width = <32>;
349 #dma-cells = <2>; 355 #dma-cells = <2>;
350 }; 356 };
357
358 display-controller@6a000000 {
359 compatible = "cortina,gemini-tvc", "faraday,tve200";
360 reg = <0x6a000000 0x1000>;
361 interrupts = <13 IRQ_TYPE_EDGE_RISING>;
362 resets = <&syscon GEMINI_RESET_TVC>;
363 clocks = <&syscon GEMINI_CLK_GATE_TVC>,
364 <&syscon GEMINI_CLK_TVC>;
365 clock-names = "PCLK", "TVE";
366 pinctrl-names = "default";
367 pinctrl-0 = <&tvc_default_pins>;
368 #address-cells = <1>;
369 #size-cells = <0>;
370 status = "disabled";
371 };
351 }; 372 };
352}; 373};
diff --git a/arch/arm/boot/dts/hip01.dtsi b/arch/arm/boot/dts/hip01.dtsi
index 9d5fd5cfefa6..f7cf4f53e764 100644
--- a/arch/arm/boot/dts/hip01.dtsi
+++ b/arch/arm/boot/dts/hip01.dtsi
@@ -91,14 +91,14 @@
91 reboot-offset = <0x4>; 91 reboot-offset = <0x4>;
92 }; 92 };
93 93
94 global_timer@0a000200 { 94 global_timer@a000200 {
95 compatible = "arm,cortex-a9-global-timer"; 95 compatible = "arm,cortex-a9-global-timer";
96 reg = <0x0a000200 0x100>; 96 reg = <0x0a000200 0x100>;
97 interrupts = <1 11 0xf04>; 97 interrupts = <1 11 0xf04>;
98 clocks = <&hisi_refclk144mhz>; 98 clocks = <&hisi_refclk144mhz>;
99 }; 99 };
100 100
101 local_timer@0a000600 { 101 local_timer@a000600 {
102 compatible = "arm,cortex-a9-twd-timer"; 102 compatible = "arm,cortex-a9-twd-timer";
103 reg = <0x0a000600 0x100>; 103 reg = <0x0a000600 0x100>;
104 interrupts = <1 13 0xf04>; 104 interrupts = <1 13 0xf04>;
diff --git a/arch/arm/boot/dts/hip04-d01.dts b/arch/arm/boot/dts/hip04-d01.dts
index 40a9e33c2654..ca48641d0f48 100644
--- a/arch/arm/boot/dts/hip04-d01.dts
+++ b/arch/arm/boot/dts/hip04-d01.dts
@@ -18,7 +18,7 @@
18 model = "Hisilicon D01 Development Board"; 18 model = "Hisilicon D01 Development Board";
19 compatible = "hisilicon,hip04-d01"; 19 compatible = "hisilicon,hip04-d01";
20 20
21 memory@00000000,10000000 { 21 memory@0,10000000 {
22 device_type = "memory"; 22 device_type = "memory";
23 reg = <0x00000000 0x10000000 0x00000000 0xc0000000>, 23 reg = <0x00000000 0x10000000 0x00000000 0xc0000000>,
24 <0x00000004 0xc0000000 0x00000003 0x40000000>; 24 <0x00000004 0xc0000000 0x00000003 0x40000000>;
diff --git a/arch/arm/boot/dts/hisi-x5hd2.dtsi b/arch/arm/boot/dts/hisi-x5hd2.dtsi
index 6c712a97e1fe..50d3f8426da1 100644
--- a/arch/arm/boot/dts/hisi-x5hd2.dtsi
+++ b/arch/arm/boot/dts/hisi-x5hd2.dtsi
@@ -39,7 +39,7 @@
39 compatible = "simple-bus"; 39 compatible = "simple-bus";
40 ranges; 40 ranges;
41 41
42 timer0: timer@00002000 { 42 timer0: timer@2000 {
43 compatible = "arm,sp804", "arm,primecell"; 43 compatible = "arm,sp804", "arm,primecell";
44 reg = <0x00002000 0x1000>; 44 reg = <0x00002000 0x1000>;
45 /* timer00 & timer01 */ 45 /* timer00 & timer01 */
@@ -48,7 +48,7 @@
48 status = "disabled"; 48 status = "disabled";
49 }; 49 };
50 50
51 timer1: timer@00a29000 { 51 timer1: timer@a29000 {
52 /* 52 /*
53 * Only used in NORMAL state, not available ins 53 * Only used in NORMAL state, not available ins
54 * SLOW or DOZE state. 54 * SLOW or DOZE state.
@@ -62,7 +62,7 @@
62 status = "disabled"; 62 status = "disabled";
63 }; 63 };
64 64
65 timer2: timer@00a2a000 { 65 timer2: timer@a2a000 {
66 compatible = "arm,sp804", "arm,primecell"; 66 compatible = "arm,sp804", "arm,primecell";
67 reg = <0x00a2a000 0x1000>; 67 reg = <0x00a2a000 0x1000>;
68 /* timer20 & timer21 */ 68 /* timer20 & timer21 */
@@ -71,7 +71,7 @@
71 status = "disabled"; 71 status = "disabled";
72 }; 72 };
73 73
74 timer3: timer@00a2b000 { 74 timer3: timer@a2b000 {
75 compatible = "arm,sp804", "arm,primecell"; 75 compatible = "arm,sp804", "arm,primecell";
76 reg = <0x00a2b000 0x1000>; 76 reg = <0x00a2b000 0x1000>;
77 /* timer30 & timer31 */ 77 /* timer30 & timer31 */
@@ -80,7 +80,7 @@
80 status = "disabled"; 80 status = "disabled";
81 }; 81 };
82 82
83 timer4: timer@00a81000 { 83 timer4: timer@a81000 {
84 compatible = "arm,sp804", "arm,primecell"; 84 compatible = "arm,sp804", "arm,primecell";
85 reg = <0x00a81000 0x1000>; 85 reg = <0x00a81000 0x1000>;
86 /* timer30 & timer31 */ 86 /* timer30 & timer31 */
@@ -89,7 +89,7 @@
89 status = "disabled"; 89 status = "disabled";
90 }; 90 };
91 91
92 uart0: uart@00b00000 { 92 uart0: uart@b00000 {
93 compatible = "arm,pl011", "arm,primecell"; 93 compatible = "arm,pl011", "arm,primecell";
94 reg = <0x00b00000 0x1000>; 94 reg = <0x00b00000 0x1000>;
95 interrupts = <0 49 4>; 95 interrupts = <0 49 4>;
@@ -98,7 +98,7 @@
98 status = "disabled"; 98 status = "disabled";
99 }; 99 };
100 100
101 uart1: uart@00006000 { 101 uart1: uart@6000 {
102 compatible = "arm,pl011", "arm,primecell"; 102 compatible = "arm,pl011", "arm,primecell";
103 reg = <0x00006000 0x1000>; 103 reg = <0x00006000 0x1000>;
104 interrupts = <0 50 4>; 104 interrupts = <0 50 4>;
@@ -107,7 +107,7 @@
107 status = "disabled"; 107 status = "disabled";
108 }; 108 };
109 109
110 uart2: uart@00b02000 { 110 uart2: uart@b02000 {
111 compatible = "arm,pl011", "arm,primecell"; 111 compatible = "arm,pl011", "arm,primecell";
112 reg = <0x00b02000 0x1000>; 112 reg = <0x00b02000 0x1000>;
113 interrupts = <0 51 4>; 113 interrupts = <0 51 4>;
@@ -116,7 +116,7 @@
116 status = "disabled"; 116 status = "disabled";
117 }; 117 };
118 118
119 uart3: uart@00b03000 { 119 uart3: uart@b03000 {
120 compatible = "arm,pl011", "arm,primecell"; 120 compatible = "arm,pl011", "arm,primecell";
121 reg = <0x00b03000 0x1000>; 121 reg = <0x00b03000 0x1000>;
122 interrupts = <0 52 4>; 122 interrupts = <0 52 4>;
@@ -125,7 +125,7 @@
125 status = "disabled"; 125 status = "disabled";
126 }; 126 };
127 127
128 uart4: uart@00b04000 { 128 uart4: uart@b04000 {
129 compatible = "arm,pl011", "arm,primecell"; 129 compatible = "arm,pl011", "arm,primecell";
130 reg = <0xb04000 0x1000>; 130 reg = <0xb04000 0x1000>;
131 interrupts = <0 53 4>; 131 interrupts = <0 53 4>;
@@ -199,7 +199,7 @@
199 status = "disabled"; 199 status = "disabled";
200 }; 200 };
201 201
202 gpio5: gpio@004000 { 202 gpio5: gpio@4000 {
203 compatible = "arm,pl061", "arm,primecell"; 203 compatible = "arm,pl061", "arm,primecell";
204 reg = <0x004000 0x1000>; 204 reg = <0x004000 0x1000>;
205 interrupts = <0 113 0x4>; 205 interrupts = <0 113 0x4>;
@@ -378,7 +378,7 @@
378 }; 378 };
379 }; 379 };
380 380
381 local_timer@00a00600 { 381 local_timer@a00600 {
382 compatible = "arm,cortex-a9-twd-timer"; 382 compatible = "arm,cortex-a9-twd-timer";
383 reg = <0x00a00600 0x20>; 383 reg = <0x00a00600 0x20>;
384 interrupts = <1 13 0xf01>; 384 interrupts = <1 13 0xf01>;
@@ -392,7 +392,7 @@
392 cache-level = <2>; 392 cache-level = <2>;
393 }; 393 };
394 394
395 sysctrl: system-controller@00000000 { 395 sysctrl: system-controller@0 {
396 compatible = "hisilicon,sysctrl", "syscon"; 396 compatible = "hisilicon,sysctrl", "syscon";
397 reg = <0x00000000 0x1000>; 397 reg = <0x00000000 0x1000>;
398 }; 398 };
@@ -404,7 +404,7 @@
404 mask = <0xdeadbeef>; 404 mask = <0xdeadbeef>;
405 }; 405 };
406 406
407 cpuctrl@00a22000 { 407 cpuctrl@a22000 {
408 compatible = "hisilicon,cpuctrl"; 408 compatible = "hisilicon,cpuctrl";
409 #address-cells = <1>; 409 #address-cells = <1>;
410 #size-cells = <1>; 410 #size-cells = <1>;
@@ -489,7 +489,7 @@
489 clocks = <&clock HIX5HD2_SATA_CLK>; 489 clocks = <&clock HIX5HD2_SATA_CLK>;
490 }; 490 };
491 491
492 ir: ir@001000 { 492 ir: ir@1000 {
493 compatible = "hisilicon,hix5hd2-ir"; 493 compatible = "hisilicon,hix5hd2-ir";
494 reg = <0x001000 0x1000>; 494 reg = <0x001000 0x1000>;
495 interrupts = <0 47 4>; 495 interrupts = <0 47 4>;
diff --git a/arch/arm/boot/dts/imx1.dtsi b/arch/arm/boot/dts/imx1.dtsi
index 38d712be5685..20f6565c337d 100644
--- a/arch/arm/boot/dts/imx1.dtsi
+++ b/arch/arm/boot/dts/imx1.dtsi
@@ -40,7 +40,7 @@
40 spi1 = &cspi2; 40 spi1 = &cspi2;
41 }; 41 };
42 42
43 aitc: aitc-interrupt-controller@00223000 { 43 aitc: aitc-interrupt-controller@223000 {
44 compatible = "fsl,imx1-aitc", "fsl,avic"; 44 compatible = "fsl,imx1-aitc", "fsl,avic";
45 interrupt-controller; 45 interrupt-controller;
46 #interrupt-cells = <1>; 46 #interrupt-cells = <1>;
@@ -69,14 +69,14 @@
69 interrupt-parent = <&aitc>; 69 interrupt-parent = <&aitc>;
70 ranges; 70 ranges;
71 71
72 aipi@00200000 { 72 aipi@200000 {
73 compatible = "fsl,aipi-bus", "simple-bus"; 73 compatible = "fsl,aipi-bus", "simple-bus";
74 #address-cells = <1>; 74 #address-cells = <1>;
75 #size-cells = <1>; 75 #size-cells = <1>;
76 reg = <0x00200000 0x10000>; 76 reg = <0x00200000 0x10000>;
77 ranges; 77 ranges;
78 78
79 gpt1: timer@00202000 { 79 gpt1: timer@202000 {
80 compatible = "fsl,imx1-gpt"; 80 compatible = "fsl,imx1-gpt";
81 reg = <0x00202000 0x1000>; 81 reg = <0x00202000 0x1000>;
82 interrupts = <59>; 82 interrupts = <59>;
@@ -85,7 +85,7 @@
85 clock-names = "ipg", "per"; 85 clock-names = "ipg", "per";
86 }; 86 };
87 87
88 gpt2: timer@00203000 { 88 gpt2: timer@203000 {
89 compatible = "fsl,imx1-gpt"; 89 compatible = "fsl,imx1-gpt";
90 reg = <0x00203000 0x1000>; 90 reg = <0x00203000 0x1000>;
91 interrupts = <58>; 91 interrupts = <58>;
@@ -94,7 +94,7 @@
94 clock-names = "ipg", "per"; 94 clock-names = "ipg", "per";
95 }; 95 };
96 96
97 fb: fb@00205000 { 97 fb: fb@205000 {
98 compatible = "fsl,imx1-fb"; 98 compatible = "fsl,imx1-fb";
99 reg = <0x00205000 0x1000>; 99 reg = <0x00205000 0x1000>;
100 interrupts = <14>; 100 interrupts = <14>;
@@ -105,7 +105,7 @@
105 status = "disabled"; 105 status = "disabled";
106 }; 106 };
107 107
108 uart1: serial@00206000 { 108 uart1: serial@206000 {
109 compatible = "fsl,imx1-uart"; 109 compatible = "fsl,imx1-uart";
110 reg = <0x00206000 0x1000>; 110 reg = <0x00206000 0x1000>;
111 interrupts = <30 29 26>; 111 interrupts = <30 29 26>;
@@ -115,7 +115,7 @@
115 status = "disabled"; 115 status = "disabled";
116 }; 116 };
117 117
118 uart2: serial@00207000 { 118 uart2: serial@207000 {
119 compatible = "fsl,imx1-uart"; 119 compatible = "fsl,imx1-uart";
120 reg = <0x00207000 0x1000>; 120 reg = <0x00207000 0x1000>;
121 interrupts = <24 23 20>; 121 interrupts = <24 23 20>;
@@ -125,7 +125,7 @@
125 status = "disabled"; 125 status = "disabled";
126 }; 126 };
127 127
128 pwm: pwm@00208000 { 128 pwm: pwm@208000 {
129 #pwm-cells = <2>; 129 #pwm-cells = <2>;
130 compatible = "fsl,imx1-pwm"; 130 compatible = "fsl,imx1-pwm";
131 reg = <0x00208000 0x1000>; 131 reg = <0x00208000 0x1000>;
@@ -135,7 +135,7 @@
135 clock-names = "ipg", "per"; 135 clock-names = "ipg", "per";
136 }; 136 };
137 137
138 dma: dma@00209000 { 138 dma: dma@209000 {
139 compatible = "fsl,imx1-dma"; 139 compatible = "fsl,imx1-dma";
140 reg = <0x00209000 0x1000>; 140 reg = <0x00209000 0x1000>;
141 interrupts = <61 60>; 141 interrupts = <61 60>;
@@ -145,7 +145,7 @@
145 #dma-cells = <1>; 145 #dma-cells = <1>;
146 }; 146 };
147 147
148 uart3: serial@0020a000 { 148 uart3: serial@20a000 {
149 compatible = "fsl,imx1-uart"; 149 compatible = "fsl,imx1-uart";
150 reg = <0x0020a000 0x1000>; 150 reg = <0x0020a000 0x1000>;
151 interrupts = <54 4 1>; 151 interrupts = <54 4 1>;
@@ -156,14 +156,14 @@
156 }; 156 };
157 }; 157 };
158 158
159 aipi@00210000 { 159 aipi@210000 {
160 compatible = "fsl,aipi-bus", "simple-bus"; 160 compatible = "fsl,aipi-bus", "simple-bus";
161 #address-cells = <1>; 161 #address-cells = <1>;
162 #size-cells = <1>; 162 #size-cells = <1>;
163 reg = <0x00210000 0x10000>; 163 reg = <0x00210000 0x10000>;
164 ranges; 164 ranges;
165 165
166 cspi1: cspi@00213000 { 166 cspi1: cspi@213000 {
167 #address-cells = <1>; 167 #address-cells = <1>;
168 #size-cells = <0>; 168 #size-cells = <0>;
169 compatible = "fsl,imx1-cspi"; 169 compatible = "fsl,imx1-cspi";
@@ -175,7 +175,7 @@
175 status = "disabled"; 175 status = "disabled";
176 }; 176 };
177 177
178 i2c: i2c@00217000 { 178 i2c: i2c@217000 {
179 #address-cells = <1>; 179 #address-cells = <1>;
180 #size-cells = <0>; 180 #size-cells = <0>;
181 compatible = "fsl,imx1-i2c"; 181 compatible = "fsl,imx1-i2c";
@@ -185,7 +185,7 @@
185 status = "disabled"; 185 status = "disabled";
186 }; 186 };
187 187
188 cspi2: cspi@00219000 { 188 cspi2: cspi@219000 {
189 #address-cells = <1>; 189 #address-cells = <1>;
190 #size-cells = <0>; 190 #size-cells = <0>;
191 compatible = "fsl,imx1-cspi"; 191 compatible = "fsl,imx1-cspi";
@@ -197,20 +197,20 @@
197 status = "disabled"; 197 status = "disabled";
198 }; 198 };
199 199
200 clks: ccm@0021b000 { 200 clks: ccm@21b000 {
201 compatible = "fsl,imx1-ccm"; 201 compatible = "fsl,imx1-ccm";
202 reg = <0x0021b000 0x1000>; 202 reg = <0x0021b000 0x1000>;
203 #clock-cells = <1>; 203 #clock-cells = <1>;
204 }; 204 };
205 205
206 iomuxc: iomuxc@0021c000 { 206 iomuxc: iomuxc@21c000 {
207 compatible = "fsl,imx1-iomuxc"; 207 compatible = "fsl,imx1-iomuxc";
208 reg = <0x0021c000 0x1000>; 208 reg = <0x0021c000 0x1000>;
209 #address-cells = <1>; 209 #address-cells = <1>;
210 #size-cells = <1>; 210 #size-cells = <1>;
211 ranges; 211 ranges;
212 212
213 gpio1: gpio@0021c000 { 213 gpio1: gpio@21c000 {
214 compatible = "fsl,imx1-gpio"; 214 compatible = "fsl,imx1-gpio";
215 reg = <0x0021c000 0x100>; 215 reg = <0x0021c000 0x100>;
216 interrupts = <11>; 216 interrupts = <11>;
@@ -220,7 +220,7 @@
220 #interrupt-cells = <2>; 220 #interrupt-cells = <2>;
221 }; 221 };
222 222
223 gpio2: gpio@0021c100 { 223 gpio2: gpio@21c100 {
224 compatible = "fsl,imx1-gpio"; 224 compatible = "fsl,imx1-gpio";
225 reg = <0x0021c100 0x100>; 225 reg = <0x0021c100 0x100>;
226 interrupts = <12>; 226 interrupts = <12>;
@@ -230,7 +230,7 @@
230 #interrupt-cells = <2>; 230 #interrupt-cells = <2>;
231 }; 231 };
232 232
233 gpio3: gpio@0021c200 { 233 gpio3: gpio@21c200 {
234 compatible = "fsl,imx1-gpio"; 234 compatible = "fsl,imx1-gpio";
235 reg = <0x0021c200 0x100>; 235 reg = <0x0021c200 0x100>;
236 interrupts = <13>; 236 interrupts = <13>;
@@ -240,7 +240,7 @@
240 #interrupt-cells = <2>; 240 #interrupt-cells = <2>;
241 }; 241 };
242 242
243 gpio4: gpio@0021c300 { 243 gpio4: gpio@21c300 {
244 compatible = "fsl,imx1-gpio"; 244 compatible = "fsl,imx1-gpio";
245 reg = <0x0021c300 0x100>; 245 reg = <0x0021c300 0x100>;
246 interrupts = <62>; 246 interrupts = <62>;
@@ -252,7 +252,7 @@
252 }; 252 };
253 }; 253 };
254 254
255 weim: weim@00220000 { 255 weim: weim@220000 {
256 #address-cells = <2>; 256 #address-cells = <2>;
257 #size-cells = <1>; 257 #size-cells = <1>;
258 compatible = "fsl,imx1-weim"; 258 compatible = "fsl,imx1-weim";
@@ -269,7 +269,7 @@
269 status = "disabled"; 269 status = "disabled";
270 }; 270 };
271 271
272 esram: esram@00300000 { 272 esram: esram@300000 {
273 compatible = "mmio-sram"; 273 compatible = "mmio-sram";
274 reg = <0x00300000 0x20000>; 274 reg = <0x00300000 0x20000>;
275 }; 275 };
diff --git a/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts b/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts
index db39bd6b8e00..0f053721d80f 100644
--- a/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts
+++ b/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts
@@ -64,7 +64,7 @@
64&esdhc1 { 64&esdhc1 {
65 pinctrl-names = "default"; 65 pinctrl-names = "default";
66 pinctrl-0 = <&pinctrl_esdhc1>; 66 pinctrl-0 = <&pinctrl_esdhc1>;
67 cd-gpios = <&gpio1 20>; 67 cd-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
68 status = "okay"; 68 status = "okay";
69}; 69};
70 70
diff --git a/arch/arm/boot/dts/imx25-pdk.dts b/arch/arm/boot/dts/imx25-pdk.dts
index c52692821fb1..2d15ce72d006 100644
--- a/arch/arm/boot/dts/imx25-pdk.dts
+++ b/arch/arm/boot/dts/imx25-pdk.dts
@@ -135,7 +135,7 @@
135 pinctrl-0 = <&pinctrl_i2c1>; 135 pinctrl-0 = <&pinctrl_i2c1>;
136 status = "okay"; 136 status = "okay";
137 137
138 codec: sgtl5000@0a { 138 codec: sgtl5000@a {
139 compatible = "fsl,sgtl5000"; 139 compatible = "fsl,sgtl5000";
140 reg = <0x0a>; 140 reg = <0x0a>;
141 clocks = <&clks 129>; 141 clocks = <&clks 129>;
@@ -295,6 +295,14 @@
295 status = "okay"; 295 status = "okay";
296}; 296};
297 297
298&tsc {
299 status = "okay";
300};
301
302&tscadc {
303 status = "okay";
304};
305
298&uart1 { 306&uart1 {
299 pinctrl-names = "default"; 307 pinctrl-names = "default";
300 pinctrl-0 = <&pinctrl_uart1>; 308 pinctrl-0 = <&pinctrl_uart1>;
diff --git a/arch/arm/boot/dts/imx28-apx4devkit.dts b/arch/arm/boot/dts/imx28-apx4devkit.dts
index d2a91976e67f..ae078341fb60 100644
--- a/arch/arm/boot/dts/imx28-apx4devkit.dts
+++ b/arch/arm/boot/dts/imx28-apx4devkit.dts
@@ -143,7 +143,7 @@
143 pinctrl-0 = <&i2c0_pins_a>; 143 pinctrl-0 = <&i2c0_pins_a>;
144 status = "okay"; 144 status = "okay";
145 145
146 sgtl5000: codec@0a { 146 sgtl5000: codec@a {
147 compatible = "fsl,sgtl5000"; 147 compatible = "fsl,sgtl5000";
148 reg = <0x0a>; 148 reg = <0x0a>;
149 VDDA-supply = <&reg_3p3v>; 149 VDDA-supply = <&reg_3p3v>;
diff --git a/arch/arm/boot/dts/imx28-eukrea-mbmx28lc.dtsi b/arch/arm/boot/dts/imx28-eukrea-mbmx28lc.dtsi
index 581e85f4fd4c..49ab40838e69 100644
--- a/arch/arm/boot/dts/imx28-eukrea-mbmx28lc.dtsi
+++ b/arch/arm/boot/dts/imx28-eukrea-mbmx28lc.dtsi
@@ -148,7 +148,7 @@
148 pinctrl-0 = <&i2c0_pins_a>; 148 pinctrl-0 = <&i2c0_pins_a>;
149 status = "okay"; 149 status = "okay";
150 150
151 sgtl5000: codec@0a { 151 sgtl5000: codec@a {
152 compatible = "fsl,sgtl5000"; 152 compatible = "fsl,sgtl5000";
153 reg = <0x0a>; 153 reg = <0x0a>;
154 VDDA-supply = <&reg_3p3v>; 154 VDDA-supply = <&reg_3p3v>;
diff --git a/arch/arm/boot/dts/imx28-evk.dts b/arch/arm/boot/dts/imx28-evk.dts
index 5309bb90d7d5..7f5b80402c54 100644
--- a/arch/arm/boot/dts/imx28-evk.dts
+++ b/arch/arm/boot/dts/imx28-evk.dts
@@ -194,7 +194,7 @@
194 pinctrl-0 = <&i2c0_pins_a>; 194 pinctrl-0 = <&i2c0_pins_a>;
195 status = "okay"; 195 status = "okay";
196 196
197 sgtl5000: codec@0a { 197 sgtl5000: codec@a {
198 compatible = "fsl,sgtl5000"; 198 compatible = "fsl,sgtl5000";
199 reg = <0x0a>; 199 reg = <0x0a>;
200 VDDA-supply = <&reg_3p3v>; 200 VDDA-supply = <&reg_3p3v>;
diff --git a/arch/arm/boot/dts/imx28-m28evk.dts b/arch/arm/boot/dts/imx28-m28evk.dts
index dbfb8aab505f..22aa025cab1e 100644
--- a/arch/arm/boot/dts/imx28-m28evk.dts
+++ b/arch/arm/boot/dts/imx28-m28evk.dts
@@ -137,7 +137,7 @@
137 }; 137 };
138 138
139 i2c0: i2c@80058000 { 139 i2c0: i2c@80058000 {
140 sgtl5000: codec@0a { 140 sgtl5000: codec@a {
141 compatible = "fsl,sgtl5000"; 141 compatible = "fsl,sgtl5000";
142 reg = <0x0a>; 142 reg = <0x0a>;
143 VDDA-supply = <&reg_3p3v>; 143 VDDA-supply = <&reg_3p3v>;
diff --git a/arch/arm/boot/dts/imx28-tx28.dts b/arch/arm/boot/dts/imx28-tx28.dts
index 0ebbc83852d0..152621ea37db 100644
--- a/arch/arm/boot/dts/imx28-tx28.dts
+++ b/arch/arm/boot/dts/imx28-tx28.dts
@@ -1,13 +1,43 @@
1/* 1/*
2 * Copyright 2012 Shawn Guo <shawn.guo@linaro.org> 2 * Copyright 2012 Shawn Guo <shawn.guo@linaro.org>
3 * Copyright 2013 Lothar Waßmann <LW@KARO-electronics.de> 3 * Copyright 2013-2017 Lothar Waßmann <LW@KARO-electronics.de>
4 * 4 *
5 * The code contained herein is licensed under the GNU General Public 5 * This file is dual-licensed: you can use it either under the terms
6 * License. You may obtain a copy of the GNU General Public License 6 * of the GPL or the X11 license, at your option. Note that this dual
7 * Version 2 at the following locations: 7 * licensing only applies to this file, and not this project as a
8 * whole.
8 * 9 *
9 * http://www.opensource.org/licenses/gpl-license.html 10 * a) This file is free software; you can redistribute it and/or
10 * http://www.gnu.org/copyleft/gpl.html 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.
11 */ 41 */
12 42
13/dts-v1/; 43/dts-v1/;
@@ -45,82 +75,69 @@
45 status = "disabled"; 75 status = "disabled";
46 }; 76 };
47 77
48 regulators { 78 reg_usb0_vbus: regulator-usb0-vbus {
49 compatible = "simple-bus"; 79 compatible = "regulator-fixed";
50 #address-cells = <1>; 80 regulator-name = "usb0_vbus";
51 #size-cells = <0>; 81 regulator-min-microvolt = <5000000>;
52 82 regulator-max-microvolt = <5000000>;
53 reg_usb0_vbus: regulator@0 { 83 gpio = <&gpio0 18 GPIO_ACTIVE_HIGH>;
54 compatible = "regulator-fixed"; 84 enable-active-high;
55 reg = <0>; 85 };
56 regulator-name = "usb0_vbus";
57 regulator-min-microvolt = <5000000>;
58 regulator-max-microvolt = <5000000>;
59 gpio = <&gpio0 18 GPIO_ACTIVE_HIGH>;
60 enable-active-high;
61 };
62 86
63 reg_usb1_vbus: regulator@1 { 87 reg_usb1_vbus: regulator-usb1-vbus {
64 compatible = "regulator-fixed"; 88 compatible = "regulator-fixed";
65 reg = <1>; 89 regulator-name = "usb1_vbus";
66 regulator-name = "usb1_vbus"; 90 regulator-min-microvolt = <5000000>;
67 regulator-min-microvolt = <5000000>; 91 regulator-max-microvolt = <5000000>;
68 regulator-max-microvolt = <5000000>; 92 gpio = <&gpio3 27 GPIO_ACTIVE_HIGH>;
69 gpio = <&gpio3 27 GPIO_ACTIVE_HIGH>; 93 enable-active-high;
70 enable-active-high; 94 };
71 };
72 95
73 reg_2p5v: regulator@2 { 96 reg_2p5v: regulator-2p5v {
74 compatible = "regulator-fixed"; 97 compatible = "regulator-fixed";
75 reg = <2>; 98 regulator-name = "2P5V";
76 regulator-name = "2P5V"; 99 regulator-min-microvolt = <2500000>;
77 regulator-min-microvolt = <2500000>; 100 regulator-max-microvolt = <2500000>;
78 regulator-max-microvolt = <2500000>; 101 regulator-always-on;
79 regulator-always-on; 102 };
80 };
81 103
82 reg_3p3v: regulator@3 { 104 reg_3p3v: regulator-3p3v {
83 compatible = "regulator-fixed"; 105 compatible = "regulator-fixed";
84 reg = <3>; 106 regulator-name = "3P3V";
85 regulator-name = "3P3V"; 107 regulator-min-microvolt = <3300000>;
86 regulator-min-microvolt = <3300000>; 108 regulator-max-microvolt = <3300000>;
87 regulator-max-microvolt = <3300000>; 109 regulator-always-on;
88 regulator-always-on; 110 };
89 };
90 111
91 reg_can_xcvr: regulator@4 { 112 reg_can_xcvr: regulator-can-xcvr {
92 compatible = "regulator-fixed"; 113 compatible = "regulator-fixed";
93 reg = <4>; 114 regulator-name = "CAN XCVR";
94 regulator-name = "CAN XCVR"; 115 regulator-min-microvolt = <3300000>;
95 regulator-min-microvolt = <3300000>; 116 regulator-max-microvolt = <3300000>;
96 regulator-max-microvolt = <3300000>; 117 gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
97 gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>; 118 pinctrl-names = "default";
98 pinctrl-names = "default"; 119 pinctrl-0 = <&tx28_flexcan_xcvr_pins>;
99 pinctrl-0 = <&tx28_flexcan_xcvr_pins>; 120 };
100 };
101 121
102 reg_lcd: regulator@5 { 122 reg_lcd: regulator-lcd-power {
103 compatible = "regulator-fixed"; 123 compatible = "regulator-fixed";
104 reg = <5>; 124 regulator-name = "LCD POWER";
105 regulator-name = "LCD POWER"; 125 regulator-min-microvolt = <3300000>;
106 regulator-min-microvolt = <3300000>; 126 regulator-max-microvolt = <3300000>;
107 regulator-max-microvolt = <3300000>; 127 gpio = <&gpio1 31 GPIO_ACTIVE_HIGH>;
108 gpio = <&gpio1 31 GPIO_ACTIVE_HIGH>; 128 enable-active-high;
109 enable-active-high; 129 };
110 };
111 130
112 reg_lcd_reset: regulator@6 { 131 reg_lcd_reset: regulator-lcd-reset {
113 compatible = "regulator-fixed"; 132 compatible = "regulator-fixed";
114 reg = <6>; 133 regulator-name = "LCD RESET";
115 regulator-name = "LCD RESET"; 134 regulator-min-microvolt = <3300000>;
116 regulator-min-microvolt = <3300000>; 135 regulator-max-microvolt = <3300000>;
117 regulator-max-microvolt = <3300000>; 136 gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
118 gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>; 137 startup-delay-us = <300000>;
119 startup-delay-us = <300000>; 138 enable-active-high;
120 enable-active-high; 139 regulator-always-on;
121 regulator-always-on; 140 regulator-boot-on;
122 regulator-boot-on;
123 };
124 }; 141 };
125 142
126 clocks { 143 clocks {
@@ -298,7 +315,7 @@
298 clock-frequency = <400000>; 315 clock-frequency = <400000>;
299 status = "okay"; 316 status = "okay";
300 317
301 sgtl5000: sgtl5000@0a { 318 sgtl5000: sgtl5000@a {
302 compatible = "fsl,sgtl5000"; 319 compatible = "fsl,sgtl5000";
303 reg = <0x0a>; 320 reg = <0x0a>;
304 VDDA-supply = <&reg_2p5v>; 321 VDDA-supply = <&reg_2p5v>;
@@ -312,7 +329,7 @@
312 pinctrl-names = "default"; 329 pinctrl-names = "default";
313 pinctrl-0 = <&tx28_pca9554_pins>; 330 pinctrl-0 = <&tx28_pca9554_pins>;
314 interrupt-parent = <&gpio3>; 331 interrupt-parent = <&gpio3>;
315 interrupts = <28 0>; 332 interrupts = <28 IRQ_TYPE_NONE>;
316 gpio-controller; 333 gpio-controller;
317 #gpio-cells = <2>; 334 #gpio-cells = <2>;
318 interrupt-controller; 335 interrupt-controller;
@@ -336,7 +353,7 @@
336 pinctrl-names = "default"; 353 pinctrl-names = "default";
337 pinctrl-0 = <&tx28_tsc2007_pins>; 354 pinctrl-0 = <&tx28_tsc2007_pins>;
338 interrupt-parent = <&gpio3>; 355 interrupt-parent = <&gpio3>;
339 interrupts = <20 0>; 356 interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
340 pendown-gpio = <&gpio3 20 GPIO_ACTIVE_LOW>; 357 pendown-gpio = <&gpio3 20 GPIO_ACTIVE_LOW>;
341 ti,x-plate-ohms = /bits/ 16 <660>; 358 ti,x-plate-ohms = /bits/ 16 <660>;
342 }; 359 };
@@ -344,6 +361,8 @@
344 ds1339: rtc@68 { 361 ds1339: rtc@68 {
345 compatible = "mxim,ds1339"; 362 compatible = "mxim,ds1339";
346 reg = <0x68>; 363 reg = <0x68>;
364 trickle-resistor-ohms = <250>;
365 trickle-diode-disable;
347 }; 366 };
348}; 367};
349 368
diff --git a/arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dts b/arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dts
index e9357131b026..ae98d6759074 100644
--- a/arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dts
+++ b/arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dts
@@ -65,7 +65,7 @@
65&esdhc1 { 65&esdhc1 {
66 pinctrl-names = "default"; 66 pinctrl-names = "default";
67 pinctrl-0 = <&pinctrl_esdhc1>; 67 pinctrl-0 = <&pinctrl_esdhc1>;
68 cd-gpios = <&gpio3 24>; 68 cd-gpios = <&gpio3 24 GPIO_ACTIVE_LOW>;
69 status = "okay"; 69 status = "okay";
70}; 70};
71 71
diff --git a/arch/arm/boot/dts/imx50.dtsi b/arch/arm/boot/dts/imx50.dtsi
index 3747d80104f4..35955e63d6c5 100644
--- a/arch/arm/boot/dts/imx50.dtsi
+++ b/arch/arm/boot/dts/imx50.dtsi
@@ -52,7 +52,7 @@
52 }; 52 };
53 }; 53 };
54 54
55 tzic: tz-interrupt-controller@0fffc000 { 55 tzic: tz-interrupt-controller@fffc000 {
56 compatible = "fsl,imx50-tzic", "fsl,imx53-tzic", "fsl,tzic"; 56 compatible = "fsl,imx50-tzic", "fsl,imx53-tzic", "fsl,tzic";
57 interrupt-controller; 57 interrupt-controller;
58 #interrupt-cells = <1>; 58 #interrupt-cells = <1>;
@@ -443,6 +443,7 @@
443 clocks = <&clks IMX5_CLK_SDMA_GATE>, 443 clocks = <&clks IMX5_CLK_SDMA_GATE>,
444 <&clks IMX5_CLK_SDMA_GATE>; 444 <&clks IMX5_CLK_SDMA_GATE>;
445 clock-names = "ipg", "ahb"; 445 clock-names = "ipg", "ahb";
446 #dma-cells = <3>;
446 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx50.bin"; 447 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx50.bin";
447 }; 448 };
448 449
diff --git a/arch/arm/boot/dts/imx51-apf51dev.dts b/arch/arm/boot/dts/imx51-apf51dev.dts
index a5e6091c8729..3e1846a64d93 100644
--- a/arch/arm/boot/dts/imx51-apf51dev.dts
+++ b/arch/arm/boot/dts/imx51-apf51dev.dts
@@ -16,7 +16,7 @@
16 model = "Armadeus Systems APF51Dev docking/development board"; 16 model = "Armadeus Systems APF51Dev docking/development board";
17 compatible = "armadeus,imx51-apf51dev", "armadeus,imx51-apf51", "fsl,imx51"; 17 compatible = "armadeus,imx51-apf51dev", "armadeus,imx51-apf51", "fsl,imx51";
18 18
19 backlight@bl1{ 19 backlight {
20 pinctrl-names = "default"; 20 pinctrl-names = "default";
21 pinctrl-0 = <&pinctrl_backlight>; 21 pinctrl-0 = <&pinctrl_backlight>;
22 compatible = "gpio-backlight"; 22 compatible = "gpio-backlight";
@@ -24,7 +24,7 @@
24 default-on; 24 default-on;
25 }; 25 };
26 26
27 display@di1 { 27 disp1 {
28 compatible = "fsl,imx-parallel-display"; 28 compatible = "fsl,imx-parallel-display";
29 interface-pix-fmt = "bgr666"; 29 interface-pix-fmt = "bgr666";
30 pinctrl-names = "default"; 30 pinctrl-names = "default";
@@ -51,7 +51,7 @@
51 51
52 port { 52 port {
53 display_in: endpoint { 53 display_in: endpoint {
54 remote-endpoint = <&ipu_di0_disp0>; 54 remote-endpoint = <&ipu_di0_disp1>;
55 }; 55 };
56 }; 56 };
57 }; 57 };
@@ -120,7 +120,7 @@
120 pinctrl-0 = <&pinctrl_hog>; 120 pinctrl-0 = <&pinctrl_hog>;
121 121
122 imx51-apf51dev { 122 imx51-apf51dev {
123 pinctrl_backlight: bl1grp { 123 pinctrl_backlight: backlightgrp {
124 fsl,pins = < 124 fsl,pins = <
125 MX51_PAD_DI1_D1_CS__GPIO3_4 0x1F5 125 MX51_PAD_DI1_D1_CS__GPIO3_4 0x1F5
126 >; 126 >;
@@ -218,6 +218,6 @@
218 }; 218 };
219}; 219};
220 220
221&ipu_di0_disp0 { 221&ipu_di0_disp1 {
222 remote-endpoint = <&display_in>; 222 remote-endpoint = <&display_in>;
223}; 223};
diff --git a/arch/arm/boot/dts/imx51-babbage.dts b/arch/arm/boot/dts/imx51-babbage.dts
index 873cf242679c..2a694c5cc8ae 100644
--- a/arch/arm/boot/dts/imx51-babbage.dts
+++ b/arch/arm/boot/dts/imx51-babbage.dts
@@ -39,7 +39,7 @@
39 }; 39 };
40 }; 40 };
41 41
42 display0: display@di0 { 42 display1: disp1 {
43 compatible = "fsl,imx-parallel-display"; 43 compatible = "fsl,imx-parallel-display";
44 interface-pix-fmt = "rgb24"; 44 interface-pix-fmt = "rgb24";
45 pinctrl-names = "default"; 45 pinctrl-names = "default";
@@ -61,12 +61,12 @@
61 61
62 port { 62 port {
63 display0_in: endpoint { 63 display0_in: endpoint {
64 remote-endpoint = <&ipu_di0_disp0>; 64 remote-endpoint = <&ipu_di0_disp1>;
65 }; 65 };
66 }; 66 };
67 }; 67 };
68 68
69 display1: display@di1 { 69 display2: disp2 {
70 compatible = "fsl,imx-parallel-display"; 70 compatible = "fsl,imx-parallel-display";
71 interface-pix-fmt = "rgb565"; 71 interface-pix-fmt = "rgb565";
72 pinctrl-names = "default"; 72 pinctrl-names = "default";
@@ -93,7 +93,7 @@
93 93
94 port { 94 port {
95 display1_in: endpoint { 95 display1_in: endpoint {
96 remote-endpoint = <&ipu_di1_disp1>; 96 remote-endpoint = <&ipu_di1_disp2>;
97 }; 97 };
98 }; 98 };
99 }; 99 };
@@ -337,7 +337,7 @@
337 pinctrl-0 = <&pinctrl_i2c2>; 337 pinctrl-0 = <&pinctrl_i2c2>;
338 status = "okay"; 338 status = "okay";
339 339
340 sgtl5000: codec@0a { 340 sgtl5000: codec@a {
341 compatible = "fsl,sgtl5000"; 341 compatible = "fsl,sgtl5000";
342 pinctrl-names = "default"; 342 pinctrl-names = "default";
343 pinctrl-0 = <&pinctrl_clkcodec>; 343 pinctrl-0 = <&pinctrl_clkcodec>;
@@ -348,11 +348,11 @@
348 }; 348 };
349}; 349};
350 350
351&ipu_di0_disp0 { 351&ipu_di0_disp1 {
352 remote-endpoint = <&display0_in>; 352 remote-endpoint = <&display0_in>;
353}; 353};
354 354
355&ipu_di1_disp1 { 355&ipu_di1_disp2 {
356 remote-endpoint = <&display1_in>; 356 remote-endpoint = <&display1_in>;
357}; 357};
358 358
diff --git a/arch/arm/boot/dts/imx51-ts4800.dts b/arch/arm/boot/dts/imx51-ts4800.dts
index ca1cc5eca80f..564233e97412 100644
--- a/arch/arm/boot/dts/imx51-ts4800.dts
+++ b/arch/arm/boot/dts/imx51-ts4800.dts
@@ -50,7 +50,7 @@
50 power-supply = <&backlight_reg>; 50 power-supply = <&backlight_reg>;
51 }; 51 };
52 52
53 display0: display@di0 { 53 display1: disp1 {
54 compatible = "fsl,imx-parallel-display"; 54 compatible = "fsl,imx-parallel-display";
55 interface-pix-fmt = "rgb24"; 55 interface-pix-fmt = "rgb24";
56 pinctrl-names = "default"; 56 pinctrl-names = "default";
@@ -71,9 +71,9 @@
71 }; 71 };
72 }; 72 };
73 73
74 port@0 { 74 port {
75 display0_in: endpoint { 75 display0_in: endpoint {
76 remote-endpoint = <&ipu_di0_disp0>; 76 remote-endpoint = <&ipu_di0_disp1>;
77 }; 77 };
78 }; 78 };
79 }; 79 };
@@ -107,7 +107,7 @@
107 }; 107 };
108}; 108};
109 109
110&ipu_di0_disp0 { 110&ipu_di0_disp1 {
111 remote-endpoint = <&display0_in>; 111 remote-endpoint = <&display0_in>;
112}; 112};
113 113
diff --git a/arch/arm/boot/dts/imx51-zii-rdu1.dts b/arch/arm/boot/dts/imx51-zii-rdu1.dts
new file mode 100644
index 000000000000..49be0e1c812d
--- /dev/null
+++ b/arch/arm/boot/dts/imx51-zii-rdu1.dts
@@ -0,0 +1,834 @@
1/*
2 * Copyright (C) 2017 Zodiac Inflight Innovations
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/dts-v1/;
43#include "imx51.dtsi"
44#include <dt-bindings/sound/fsl-imx-audmux.h>
45
46/ {
47 model = "ZII RDU1 Board";
48 compatible = "zii,imx51-rdu1", "fsl,imx51";
49
50 chosen {
51 stdout-path = &uart1;
52 };
53
54 aliases {
55 mdio-gpio0 = &mdio_gpio;
56 rtc0 = &ds1341;
57 };
58
59 clk_26M_osc: 26M_osc {
60 compatible = "fixed-clock";
61 #clock-cells = <0>;
62 clock-frequency = <26000000>;
63 };
64
65 clk_26M_osc_gate: 26M_gate {
66 compatible = "gpio-gate-clock";
67 pinctrl-names = "default";
68 pinctrl-0 = <&pinctrl_clk26mhz>;
69 clocks = <&clk_26M_osc>;
70 #clock-cells = <0>;
71 enable-gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>;
72 };
73
74 clk_26M_usb: usbhost_gate {
75 compatible = "gpio-gate-clock";
76 pinctrl-names = "default";
77 pinctrl-0 = <&pinctrl_usbgate26mhz>;
78 clocks = <&clk_26M_osc_gate>;
79 #clock-cells = <0>;
80 enable-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
81 };
82
83 clk_26M_snd: snd_gate {
84 compatible = "gpio-gate-clock";
85 pinctrl-names = "default";
86 pinctrl-0 = <&pinctrl_sndgate26mhz>;
87 clocks = <&clk_26M_osc_gate>;
88 #clock-cells = <0>;
89 enable-gpios = <&gpio4 26 GPIO_ACTIVE_LOW>;
90 };
91
92 reg_5p0v_main: regulator-5p0v-main {
93 compatible = "regulator-fixed";
94 regulator-name = "5V_MAIN";
95 regulator-min-microvolt = <5000000>;
96 regulator-max-microvolt = <5000000>;
97 regulator-always-on;
98 };
99
100 reg_3p3v: regulator-3p3v {
101 compatible = "regulator-fixed";
102 regulator-name = "3.3V";
103 regulator-min-microvolt = <3300000>;
104 regulator-max-microvolt = <3300000>;
105 regulator-always-on;
106 };
107
108 disp0 {
109 compatible = "fsl,imx-parallel-display";
110 pinctrl-names = "default";
111 pinctrl-0 = <&pinctrl_ipu_disp1>;
112
113 #address-cells = <1>;
114 #size-cells = <0>;
115
116 port@0 {
117 reg = <0>;
118
119 display_in: endpoint {
120 remote-endpoint = <&ipu_di0_disp1>;
121 };
122 };
123
124 port@1 {
125 reg = <1>;
126
127 display_out: endpoint {
128 remote-endpoint = <&panel_in>;
129 };
130 };
131 };
132
133 panel {
134 /* no compatible here, bootloader will patch in correct one */
135 pinctrl-names = "default";
136 pinctrl-0 = <&pinctrl_panel>;
137 power-supply = <&reg_3p3v>;
138 enable-gpios = <&gpio3 3 GPIO_ACTIVE_HIGH>;
139 status = "disabled";
140
141 port {
142 panel_in: endpoint {
143 remote-endpoint = <&display_out>;
144 };
145 };
146 };
147
148 i2c_gpio: i2c-gpio {
149 compatible = "i2c-gpio";
150 pinctrl-names = "default";
151 pinctrl-0 = <&pinctrl_swi2c>;
152 gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>, /* sda */
153 <&gpio3 4 GPIO_ACTIVE_HIGH>; /* scl */
154 i2c-gpio,delay-us = <50>;
155 status = "okay";
156
157 #address-cells = <1>;
158 #size-cells = <0>;
159
160 sgtl5000: codec@a {
161 compatible = "fsl,sgtl5000";
162 reg = <0x0a>;
163 clocks = <&clk_26M_snd>;
164 VDDA-supply = <&vdig_reg>;
165 VDDIO-supply = <&vvideo_reg>;
166 #sound-dai-cells = <0>;
167 };
168 };
169
170 spi_gpio: spi-gpio {
171 compatible = "spi-gpio";
172 #address-cells = <1>;
173 #size-cells = <0>;
174 pinctrl-names = "default";
175 pinctrl-0 = <&pinctrl_gpiospi0>;
176 status = "okay";
177
178 gpio-sck = <&gpio4 15 GPIO_ACTIVE_HIGH>;
179 gpio-mosi = <&gpio4 12 GPIO_ACTIVE_HIGH>;
180 gpio-miso = <&gpio4 11 GPIO_ACTIVE_HIGH>;
181 num-chipselects = <1>;
182 cs-gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>;
183
184 eeprom@0 {
185 compatible = "eeprom-93xx46";
186 reg = <0>;
187 spi-max-frequency = <1000000>;
188 spi-cs-high;
189 data-size = <8>;
190 };
191 };
192
193 mdio_gpio: mdio-gpio {
194 compatible = "virtual,mdio-gpio";
195 pinctrl-names = "default";
196 pinctrl-0 = <&pinctrl_swmdio>;
197 gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>, /* mdc */
198 <&gpio3 25 GPIO_ACTIVE_HIGH>; /* mdio */
199
200 #address-cells = <1>;
201 #size-cells = <0>;
202
203 switch@0 {
204 compatible = "marvell,mv88e6085";
205 #address-cells = <1>;
206 #size-cells = <0>;
207 reg = <0>;
208 dsa,member = <0 0>;
209
210 ports {
211 #address-cells = <1>;
212 #size-cells = <0>;
213
214 port@0 {
215 reg = <0>;
216 label = "cpu";
217 ethernet = <&fec>;
218
219 fixed-link {
220 speed = <100>;
221 full-duplex;
222 };
223 };
224
225 port@1 {
226 reg = <1>;
227 label = "netaux";
228 };
229
230 port@3 {
231 reg = <3>;
232 label = "netright";
233 };
234
235 port@4 {
236 reg = <4>;
237 label = "netleft";
238 };
239 };
240 };
241 };
242
243 sound {
244 compatible = "simple-audio-card";
245 simple-audio-card,name = "RDU1 audio";
246 simple-audio-card,format = "i2s";
247 simple-audio-card,bitclock-master = <&sound_codec>;
248 simple-audio-card,frame-master = <&sound_codec>;
249 simple-audio-card,widgets =
250 "Headphone", "Headphone Jack";
251 simple-audio-card,routing =
252 "Headphone Jack", "HPLEFT",
253 "Headphone Jack", "HPRIGHT";
254 simple-audio-card,aux-devs = <&tpa6130a2>;
255
256 sound_cpu: simple-audio-card,cpu {
257 sound-dai = <&ssi2>;
258 };
259
260 sound_codec: simple-audio-card,codec {
261 sound-dai = <&sgtl5000>;
262 clocks = <&clk_26M_snd>;
263 };
264 };
265
266 usbh1phy: usbphy1 {
267 compatible = "usb-nop-xceiv";
268 pinctrl-names = "default";
269 pinctrl-0 = <&pinctrl_usbh1phy>;
270 clocks = <&clk_26M_usb>;
271 clock-names = "main_clk";
272 reset-gpios = <&gpio4 8 GPIO_ACTIVE_LOW>;
273 vcc-supply = <&vusb_reg>;
274 };
275
276 usbh2phy: usbphy2 {
277 compatible = "usb-nop-xceiv";
278 pinctrl-names = "default";
279 pinctrl-0 = <&pinctrl_usbh2phy>;
280 clocks = <&clk_26M_usb>;
281 clock-names = "main_clk";
282 reset-gpios = <&gpio4 7 GPIO_ACTIVE_LOW>;
283 vcc-supply = <&vusb_reg>;
284 };
285};
286
287&audmux {
288 pinctrl-names = "default";
289 pinctrl-0 = <&pinctrl_audmux>;
290 status = "okay";
291
292 ssi2 {
293 fsl,audmux-port = <1>;
294 fsl,port-config = <
295 (IMX_AUDMUX_V2_PTCR_SYN |
296 IMX_AUDMUX_V2_PTCR_TFSEL(2) |
297 IMX_AUDMUX_V2_PTCR_TCSEL(2) |
298 IMX_AUDMUX_V2_PTCR_TFSDIR |
299 IMX_AUDMUX_V2_PTCR_TCLKDIR)
300 IMX_AUDMUX_V2_PDCR_RXDSEL(2)
301 >;
302 };
303
304 aud3 {
305 fsl,audmux-port = <2>;
306 fsl,port-config = <
307 IMX_AUDMUX_V2_PTCR_SYN
308 IMX_AUDMUX_V2_PDCR_RXDSEL(1)
309 >;
310 };
311};
312
313&cpu {
314 cpu-supply = <&sw1_reg>;
315};
316
317&ecspi1 {
318 pinctrl-names = "default";
319 pinctrl-0 = <&pinctrl_ecspi1>;
320 cs-gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>,
321 <&gpio4 25 GPIO_ACTIVE_LOW>;
322 status = "okay";
323
324 pmic@0 {
325 compatible = "fsl,mc13892";
326 pinctrl-names = "default";
327 pinctrl-0 = <&pinctrl_pmic>;
328 spi-max-frequency = <6000000>;
329 spi-cs-high;
330 reg = <0>;
331 interrupt-parent = <&gpio1>;
332 interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
333 fsl,mc13xxx-uses-adc;
334
335 regulators {
336 sw1_reg: sw1 {
337 regulator-min-microvolt = <600000>;
338 regulator-max-microvolt = <1375000>;
339 regulator-boot-on;
340 regulator-always-on;
341 };
342
343 sw2_reg: sw2 {
344 regulator-min-microvolt = <900000>;
345 regulator-max-microvolt = <1850000>;
346 regulator-boot-on;
347 regulator-always-on;
348 };
349
350 sw3_reg: sw3 {
351 regulator-min-microvolt = <1100000>;
352 regulator-max-microvolt = <1850000>;
353 regulator-boot-on;
354 regulator-always-on;
355 };
356
357 sw4_reg: sw4 {
358 regulator-min-microvolt = <1100000>;
359 regulator-max-microvolt = <1850000>;
360 regulator-boot-on;
361 regulator-always-on;
362 };
363
364 vpll_reg: vpll {
365 regulator-min-microvolt = <1050000>;
366 regulator-max-microvolt = <1800000>;
367 regulator-boot-on;
368 regulator-always-on;
369 };
370
371 vdig_reg: vdig {
372 regulator-min-microvolt = <1650000>;
373 regulator-max-microvolt = <1650000>;
374 regulator-boot-on;
375 };
376
377 vsd_reg: vsd {
378 regulator-min-microvolt = <1800000>;
379 regulator-max-microvolt = <3150000>;
380 };
381
382 vusb_reg: vusb {
383 regulator-always-on;
384 };
385
386 vusb2_reg: vusb2 {
387 regulator-min-microvolt = <2400000>;
388 regulator-max-microvolt = <2775000>;
389 regulator-boot-on;
390 regulator-always-on;
391 };
392
393 vvideo_reg: vvideo {
394 regulator-min-microvolt = <2775000>;
395 regulator-max-microvolt = <2775000>;
396 };
397
398 vaudio_reg: vaudio {
399 regulator-min-microvolt = <2300000>;
400 regulator-max-microvolt = <3000000>;
401 };
402
403 vcam_reg: vcam {
404 regulator-min-microvolt = <2500000>;
405 regulator-max-microvolt = <3000000>;
406 };
407
408 vgen1_reg: vgen1 {
409 regulator-min-microvolt = <1200000>;
410 regulator-max-microvolt = <1200000>;
411 };
412
413 vgen2_reg: vgen2 {
414 regulator-min-microvolt = <1200000>;
415 regulator-max-microvolt = <3150000>;
416 regulator-always-on;
417 };
418
419 vgen3_reg: vgen3 {
420 regulator-min-microvolt = <1800000>;
421 regulator-max-microvolt = <2900000>;
422 regulator-always-on;
423 };
424 };
425
426 leds {
427 #address-cells = <1>;
428 #size-cells = <0>;
429 led-control = <0x0 0x0 0x3f83f8 0x0>;
430
431 sysled0 {
432 reg = <3>;
433 label = "system:green:status";
434 linux,default-trigger = "default-on";
435 };
436
437 sysled1 {
438 reg = <4>;
439 label = "system:green:act";
440 linux,default-trigger = "heartbeat";
441 };
442 };
443 };
444
445 flash@1 {
446 #address-cells = <1>;
447 #size-cells = <1>;
448 compatible = "atmel,at45db642d", "atmel,at45", "atmel,dataflash";
449 spi-max-frequency = <25000000>;
450 reg = <1>;
451 };
452};
453
454&esdhc1 {
455 pinctrl-names = "default";
456 pinctrl-0 = <&pinctrl_esdhc1>;
457 bus-width = <4>;
458 non-removable;
459 status = "okay";
460};
461
462&fec {
463 pinctrl-names = "default";
464 pinctrl-0 = <&pinctrl_fec>;
465 phy-mode = "mii";
466 phy-reset-gpios = <&gpio2 14 GPIO_ACTIVE_LOW>;
467 phy-supply = <&vgen3_reg>;
468 status = "okay";
469};
470
471&i2c2 {
472 pinctrl-names = "default";
473 pinctrl-0 = <&pinctrl_i2c2>;
474 status = "okay";
475
476 eeprom@50 {
477 compatible = "atmel,24c04";
478 pagesize = <16>;
479 reg = <0x50>;
480 };
481
482 tpa6130a2: amp@60 {
483 compatible = "ti,tpa6130a2";
484 reg = <0x60>;
485 pinctrl-names = "default";
486 pinctrl-0 = <&pinctrl_ampgpio>;
487 power-gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
488 Vdd-supply = <&reg_3p3v>;
489 };
490
491 ds1341: rtc@68 {
492 compatible = "maxim,ds1341";
493 reg = <0x68>;
494 };
495
496 /* touch nodes default disabled, bootloader will enable the right one */
497
498 touchscreen@4b {
499 compatible = "atmel,maxtouch";
500 reg = <0x4b>;
501 pinctrl-names = "default";
502 pinctrl-0 = <&pinctrl_ts>;
503 interrupt-parent = <&gpio3>;
504 interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
505 status = "disabled";
506 };
507
508 touchscreen@4c {
509 compatible = "atmel,maxtouch";
510 reg = <0x4c>;
511 pinctrl-names = "default";
512 pinctrl-0 = <&pinctrl_ts>;
513 interrupt-parent = <&gpio3>;
514 interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
515 status = "disabled";
516 };
517
518 touchscreen@20 {
519 compatible = "syna,rmi4_i2c";
520 reg = <0x20>;
521 pinctrl-names = "default";
522 pinctrl-0 = <&pinctrl_ts>;
523 interrupt-parent = <&gpio3>;
524 interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
525 status = "disabled";
526
527 #address-cells = <1>;
528 #size-cells = <0>;
529
530 rmi4-f01@1 {
531 reg = <0x1>;
532 syna,nosleep-mode = <2>;
533 };
534
535 rmi4-f11@11 {
536 reg = <0x11>;
537 touch-inverted-y;
538 touch-swapped-x-y;
539 syna,sensor-type = <1>;
540 };
541 };
542
543};
544
545&ipu_di0_disp1 {
546 remote-endpoint = <&display_in>;
547};
548
549&ssi2 {
550 status = "okay";
551};
552
553&uart1 {
554 pinctrl-names = "default";
555 pinctrl-0 = <&pinctrl_uart1>;
556 status = "okay";
557};
558
559&uart2 {
560 pinctrl-names = "default";
561 pinctrl-0 = <&pinctrl_uart2>;
562 status = "okay";
563};
564
565&uart3 {
566 pinctrl-names = "default";
567 pinctrl-0 = <&pinctrl_uart3>;
568 status = "okay";
569};
570
571&usbh1 {
572 pinctrl-names = "default";
573 pinctrl-0 = <&pinctrl_usbh1>;
574 dr_mode = "host";
575 phy_type = "ulpi";
576 fsl,usbphy = <&usbh1phy>;
577 disable-over-current;
578 vbus-supply = <&reg_5p0v_main>;
579 status = "okay";
580};
581
582&usbh2 {
583 pinctrl-names = "default";
584 pinctrl-0 = <&pinctrl_usbh2>;
585 dr_mode = "host";
586 phy_type = "ulpi";
587 fsl,usbphy = <&usbh2phy>;
588 disable-over-current;
589 vbus-supply = <&reg_5p0v_main>;
590 status = "okay";
591};
592
593&usbphy0 {
594 vcc-supply = <&vusb_reg>;
595};
596
597&usbotg {
598 dr_mode = "host";
599 disable-over-current;
600 phy_type = "utmi_wide";
601 vbus-supply = <&reg_5p0v_main>;
602 status = "okay";
603};
604
605&iomuxc {
606 pinctrl_ampgpio: ampgpiogrp {
607 fsl,pins = <
608 MX51_PAD_GPIO1_9__GPIO1_9 0x5e
609 >;
610 };
611
612 pinctrl_audmux: audmuxgrp {
613 fsl,pins = <
614 MX51_PAD_AUD3_BB_TXD__AUD3_TXD 0xa5
615 MX51_PAD_AUD3_BB_RXD__AUD3_RXD 0x85
616 MX51_PAD_AUD3_BB_CK__AUD3_TXC 0xa5
617 MX51_PAD_AUD3_BB_FS__AUD3_TXFS 0x85
618 >;
619 };
620
621 pinctrl_clk26mhz: clk26mhzgrp {
622 fsl,pins = <
623 MX51_PAD_DI1_PIN12__GPIO3_1 0x85
624 >;
625 };
626
627 pinctrl_ecspi1: ecspi1grp {
628 fsl,pins = <
629 MX51_PAD_CSPI1_MISO__ECSPI1_MISO 0x185
630 MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI 0x185
631 MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK 0x185
632 MX51_PAD_CSPI1_SS0__GPIO4_24 0x85
633 MX51_PAD_CSPI1_SS1__GPIO4_25 0x85
634 >;
635 };
636
637 pinctrl_esdhc1: esdhc1grp {
638 fsl,pins = <
639 MX51_PAD_SD1_CMD__SD1_CMD 0x400020d5
640 MX51_PAD_SD1_CLK__SD1_CLK 0x20d5
641 MX51_PAD_SD1_DATA0__SD1_DATA0 0x20d5
642 MX51_PAD_SD1_DATA1__SD1_DATA1 0x20d5
643 MX51_PAD_SD1_DATA2__SD1_DATA2 0x20d5
644 MX51_PAD_SD1_DATA3__SD1_DATA3 0x20d5
645 >;
646 };
647
648 pinctrl_fec: fecgrp {
649 fsl,pins = <
650 MX51_PAD_EIM_EB2__FEC_MDIO 0x1f5
651 MX51_PAD_NANDF_D9__FEC_RDATA0 0x2180
652 MX51_PAD_EIM_EB3__FEC_RDATA1 0x180
653 MX51_PAD_EIM_CS2__FEC_RDATA2 0x180
654 MX51_PAD_EIM_CS3__FEC_RDATA3 0x180
655 MX51_PAD_EIM_CS4__FEC_RX_ER 0x180
656 MX51_PAD_NANDF_D11__FEC_RX_DV 0x2084
657 MX51_PAD_EIM_CS5__FEC_CRS 0x180
658 MX51_PAD_NANDF_RB2__FEC_COL 0x2180
659 MX51_PAD_NANDF_RB3__FEC_RX_CLK 0x2180
660 MX51_PAD_NANDF_CS2__FEC_TX_ER 0x2004
661 MX51_PAD_NANDF_CS3__FEC_MDC 0x2004
662 MX51_PAD_NANDF_D8__FEC_TDATA0 0x2180
663 MX51_PAD_NANDF_CS4__FEC_TDATA1 0x2004
664 MX51_PAD_NANDF_CS5__FEC_TDATA2 0x2004
665 MX51_PAD_NANDF_CS6__FEC_TDATA3 0x2004
666 MX51_PAD_DISP2_DAT9__FEC_TX_EN 0x2004
667 MX51_PAD_DISP2_DAT13__FEC_TX_CLK 0x2180
668 MX51_PAD_EIM_A20__GPIO2_14 0x85
669 >;
670 };
671
672 pinctrl_gpiospi0: gpiospi0grp {
673 fsl,pins = <
674 MX51_PAD_CSI2_D18__GPIO4_11 0x85
675 MX51_PAD_CSI2_D19__GPIO4_12 0x85
676 MX51_PAD_CSI2_HSYNC__GPIO4_14 0x85
677 MX51_PAD_CSI2_PIXCLK__GPIO4_15 0x85
678 >;
679 };
680
681 pinctrl_i2c2: i2c2grp {
682 fsl,pins = <
683 MX51_PAD_KEY_COL4__I2C2_SCL 0x400001ed
684 MX51_PAD_KEY_COL5__I2C2_SDA 0x400001ed
685 >;
686 };
687
688 pinctrl_ipu_disp1: ipudisp1grp {
689 fsl,pins = <
690 MX51_PAD_DISP1_DAT0__DISP1_DAT0 0x5
691 MX51_PAD_DISP1_DAT1__DISP1_DAT1 0x5
692 MX51_PAD_DISP1_DAT2__DISP1_DAT2 0x5
693 MX51_PAD_DISP1_DAT3__DISP1_DAT3 0x5
694 MX51_PAD_DISP1_DAT4__DISP1_DAT4 0x5
695 MX51_PAD_DISP1_DAT5__DISP1_DAT5 0x5
696 MX51_PAD_DISP1_DAT6__DISP1_DAT6 0x5
697 MX51_PAD_DISP1_DAT7__DISP1_DAT7 0x5
698 MX51_PAD_DISP1_DAT8__DISP1_DAT8 0x5
699 MX51_PAD_DISP1_DAT9__DISP1_DAT9 0x5
700 MX51_PAD_DISP1_DAT10__DISP1_DAT10 0x5
701 MX51_PAD_DISP1_DAT11__DISP1_DAT11 0x5
702 MX51_PAD_DISP1_DAT12__DISP1_DAT12 0x5
703 MX51_PAD_DISP1_DAT13__DISP1_DAT13 0x5
704 MX51_PAD_DISP1_DAT14__DISP1_DAT14 0x5
705 MX51_PAD_DISP1_DAT15__DISP1_DAT15 0x5
706 MX51_PAD_DISP1_DAT16__DISP1_DAT16 0x5
707 MX51_PAD_DISP1_DAT17__DISP1_DAT17 0x5
708 MX51_PAD_DISP1_DAT18__DISP1_DAT18 0x5
709 MX51_PAD_DISP1_DAT19__DISP1_DAT19 0x5
710 MX51_PAD_DISP1_DAT20__DISP1_DAT20 0x5
711 MX51_PAD_DISP1_DAT21__DISP1_DAT21 0x5
712 MX51_PAD_DISP1_DAT22__DISP1_DAT22 0x5
713 MX51_PAD_DISP1_DAT23__DISP1_DAT23 0x5
714 MX51_PAD_DI1_PIN2__DI1_PIN2 0x5
715 MX51_PAD_DI1_PIN3__DI1_PIN3 0x5
716 MX51_PAD_DI2_DISP_CLK__DI2_DISP_CLK 0x5
717 >;
718 };
719
720 pinctrl_panel: panelgrp {
721 fsl,pins = <
722 MX51_PAD_DI1_D0_CS__GPIO3_3 0x85
723 >;
724 };
725
726 pinctrl_pmic: pmicgrp {
727 fsl,pins = <
728 MX51_PAD_GPIO1_4__GPIO1_4 0x1e0
729 MX51_PAD_GPIO1_8__GPIO1_8 0x21e2
730 >;
731 };
732
733 pinctrl_sndgate26mhz: sndgate26mhzgrp {
734 fsl,pins = <
735 MX51_PAD_CSPI1_RDY__GPIO4_26 0x85
736 >;
737 };
738
739 pinctrl_swi2c: swi2cgrp {
740 fsl,pins = <
741 MX51_PAD_GPIO1_2__GPIO1_2 0xc5
742 MX51_PAD_DI1_D1_CS__GPIO3_4 0x400001f5
743 >;
744 };
745
746 pinctrl_swmdio: swmdiogrp {
747 fsl,pins = <
748 MX51_PAD_NANDF_D14__GPIO3_26 0x21e6
749 MX51_PAD_NANDF_D15__GPIO3_25 0x21e6
750 >;
751 };
752
753 pinctrl_ts: tsgrp {
754 fsl,pins = <
755 MX51_PAD_CSI1_D8__GPIO3_12 0x85
756 MX51_PAD_CSI1_D9__GPIO3_13 0x85
757 >;
758 };
759
760 pinctrl_uart1: uart1grp {
761 fsl,pins = <
762 MX51_PAD_UART1_RXD__UART1_RXD 0x1c5
763 MX51_PAD_UART1_TXD__UART1_TXD 0x1c5
764 MX51_PAD_UART1_RTS__UART1_RTS 0x1c4
765 MX51_PAD_UART1_CTS__UART1_CTS 0x1c4
766 >;
767 };
768
769 pinctrl_uart2: uart2grp {
770 fsl,pins = <
771 MX51_PAD_UART2_RXD__UART2_RXD 0xc5
772 MX51_PAD_UART2_TXD__UART2_TXD 0xc5
773 >;
774 };
775
776 pinctrl_uart3: uart3grp {
777 fsl,pins = <
778 MX51_PAD_EIM_D25__UART3_RXD 0x1c5
779 MX51_PAD_EIM_D26__UART3_TXD 0x1c5
780 >;
781 };
782
783 pinctrl_usbgate26mhz: usbgate26mhzgrp {
784 fsl,pins = <
785 MX51_PAD_DISP2_DAT6__GPIO1_19 0x85
786 >;
787 };
788
789 pinctrl_usbh1: usbh1grp {
790 fsl,pins = <
791 MX51_PAD_USBH1_STP__USBH1_STP 0x0
792 MX51_PAD_USBH1_CLK__USBH1_CLK 0x0
793 MX51_PAD_USBH1_DIR__USBH1_DIR 0x0
794 MX51_PAD_USBH1_NXT__USBH1_NXT 0x0
795 MX51_PAD_USBH1_DATA0__USBH1_DATA0 0x0
796 MX51_PAD_USBH1_DATA1__USBH1_DATA1 0x0
797 MX51_PAD_USBH1_DATA2__USBH1_DATA2 0x0
798 MX51_PAD_USBH1_DATA3__USBH1_DATA3 0x0
799 MX51_PAD_USBH1_DATA4__USBH1_DATA4 0x0
800 MX51_PAD_USBH1_DATA5__USBH1_DATA5 0x0
801 MX51_PAD_USBH1_DATA6__USBH1_DATA6 0x0
802 MX51_PAD_USBH1_DATA7__USBH1_DATA7 0x0
803 >;
804 };
805
806 pinctrl_usbh1phy: usbh1phygrp {
807 fsl,pins = <
808 MX51_PAD_NANDF_D0__GPIO4_8 0x85
809 >;
810 };
811
812 pinctrl_usbh2: usbh2grp {
813 fsl,pins = <
814 MX51_PAD_EIM_A26__USBH2_STP 0x0
815 MX51_PAD_EIM_A24__USBH2_CLK 0x0
816 MX51_PAD_EIM_A25__USBH2_DIR 0x0
817 MX51_PAD_EIM_A27__USBH2_NXT 0x0
818 MX51_PAD_EIM_D16__USBH2_DATA0 0x0
819 MX51_PAD_EIM_D17__USBH2_DATA1 0x0
820 MX51_PAD_EIM_D18__USBH2_DATA2 0x0
821 MX51_PAD_EIM_D19__USBH2_DATA3 0x0
822 MX51_PAD_EIM_D20__USBH2_DATA4 0x0
823 MX51_PAD_EIM_D21__USBH2_DATA5 0x0
824 MX51_PAD_EIM_D22__USBH2_DATA6 0x0
825 MX51_PAD_EIM_D23__USBH2_DATA7 0x0
826 >;
827 };
828
829 pinctrl_usbh2phy: usbh2phygrp {
830 fsl,pins = <
831 MX51_PAD_NANDF_D1__GPIO4_7 0x85
832 >;
833 };
834};
diff --git a/arch/arm/boot/dts/imx51.dtsi b/arch/arm/boot/dts/imx51.dtsi
index 1ee1d542d9ad..378be720b3c7 100644
--- a/arch/arm/boot/dts/imx51.dtsi
+++ b/arch/arm/boot/dts/imx51.dtsi
@@ -148,14 +148,14 @@
148 ipu_di0: port@2 { 148 ipu_di0: port@2 {
149 reg = <2>; 149 reg = <2>;
150 150
151 ipu_di0_disp0: endpoint { 151 ipu_di0_disp1: endpoint {
152 }; 152 };
153 }; 153 };
154 154
155 ipu_di1: port@3 { 155 ipu_di1: port@3 {
156 reg = <3>; 156 reg = <3>;
157 157
158 ipu_di1_disp1: endpoint { 158 ipu_di1_disp2: endpoint {
159 }; 159 };
160 }; 160 };
161 }; 161 };
diff --git a/arch/arm/boot/dts/imx53-m53evk.dts b/arch/arm/boot/dts/imx53-m53evk.dts
index 4347a321c782..e48525763b1b 100644
--- a/arch/arm/boot/dts/imx53-m53evk.dts
+++ b/arch/arm/boot/dts/imx53-m53evk.dts
@@ -16,7 +16,7 @@
16 model = "Aries/DENX M53EVK"; 16 model = "Aries/DENX M53EVK";
17 compatible = "aries,imx53-m53evk", "denx,imx53-m53evk", "fsl,imx53"; 17 compatible = "aries,imx53-m53evk", "denx,imx53-m53evk", "fsl,imx53";
18 18
19 display1: display@di1 { 19 display1: disp1 {
20 compatible = "fsl,imx-parallel-display"; 20 compatible = "fsl,imx-parallel-display";
21 interface-pix-fmt = "bgr666"; 21 interface-pix-fmt = "bgr666";
22 pinctrl-names = "default"; 22 pinctrl-names = "default";
@@ -150,7 +150,7 @@
150 pinctrl-0 = <&pinctrl_i2c1>; 150 pinctrl-0 = <&pinctrl_i2c1>;
151 status = "okay"; 151 status = "okay";
152 152
153 sgtl5000: codec@0a { 153 sgtl5000: codec@a {
154 compatible = "fsl,sgtl5000"; 154 compatible = "fsl,sgtl5000";
155 reg = <0x0a>; 155 reg = <0x0a>;
156 VDDA-supply = <&reg_3p2v>; 156 VDDA-supply = <&reg_3p2v>;
@@ -183,7 +183,7 @@
183 >; 183 >;
184 }; 184 };
185 185
186 led_pin_gpio: led_gpio@0 { 186 led_pin_gpio: led_gpio {
187 fsl,pins = < 187 fsl,pins = <
188 MX53_PAD_PATA_DATA8__GPIO2_8 0x80000000 188 MX53_PAD_PATA_DATA8__GPIO2_8 0x80000000
189 MX53_PAD_PATA_DATA9__GPIO2_9 0x80000000 189 MX53_PAD_PATA_DATA9__GPIO2_9 0x80000000
diff --git a/arch/arm/boot/dts/imx53-mba53.dts b/arch/arm/boot/dts/imx53-mba53.dts
index df705ba48897..296dd74fc246 100644
--- a/arch/arm/boot/dts/imx53-mba53.dts
+++ b/arch/arm/boot/dts/imx53-mba53.dts
@@ -30,7 +30,7 @@
30 power-supply = <&reg_backlight>; 30 power-supply = <&reg_backlight>;
31 }; 31 };
32 32
33 disp1: display@disp1 { 33 disp1: disp1 {
34 compatible = "fsl,imx-parallel-display"; 34 compatible = "fsl,imx-parallel-display";
35 pinctrl-names = "default"; 35 pinctrl-names = "default";
36 pinctrl-0 = <&pinctrl_disp1_1>; 36 pinctrl-0 = <&pinctrl_disp1_1>;
diff --git a/arch/arm/boot/dts/imx53-ppd.dts b/arch/arm/boot/dts/imx53-ppd.dts
new file mode 100644
index 000000000000..cce959438a79
--- /dev/null
+++ b/arch/arm/boot/dts/imx53-ppd.dts
@@ -0,0 +1,1042 @@
1/*
2 * Copyright 2014 General Electric Company
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/dts-v1/;
43
44#include "imx53.dtsi"
45#include <dt-bindings/input/input.h>
46
47/ {
48 model = "General Electric CS ONE";
49 compatible = "ge,imx53-cpuvo", "fsl,imx53";
50
51 aliases {
52 spi0 = &cspi;
53 spi1 = &ecspi1;
54 spi2 = &ecspi2;
55 };
56
57 chosen {
58 stdout-path = "&uart1:115200n8";
59 };
60
61 memory@70000000 {
62 device_type = "memory";
63 reg = <0x70000000 0x20000000>,
64 <0xb0000000 0x20000000>;
65 };
66
67 cko2_11M: sgtl-clock-cko2 {
68 compatible = "fixed-clock";
69 #clock-cells = <0>;
70 clock-frequency = <11289600>;
71 };
72
73 sgtlsound: sound {
74 compatible = "fsl,imx53-cpuvo-sgtl5000",
75 "fsl,imx-audio-sgtl5000";
76 model = "imx53-cpuvo-sgtl5000";
77 ssi-controller = <&ssi2>;
78 audio-codec = <&sgtl5000>;
79 audio-routing =
80 "MIC_IN", "Mic Jack",
81 "Mic Jack", "Mic Bias",
82 "Headphone Jack", "HP_OUT";
83 mux-int-port = <2>;
84 mux-ext-port = <6>;
85 };
86
87 reg_sgtl5k: regulator-sgtl5k {
88 compatible = "regulator-fixed";
89 regulator-name = "regulator-sgtl5k";
90 regulator-min-microvolt = <3300000>;
91 regulator-max-microvolt = <3300000>;
92 regulator-always-on;
93 };
94
95 reg_usb_otg_vbus: regulator-usb-otg-vbus {
96 compatible = "regulator-fixed";
97 regulator-name = "usbotg_vbus";
98 regulator-min-microvolt = <5000000>;
99 regulator-max-microvolt = <5000000>;
100 pinctrl-0 = <&pinctrl_usb_otg_vbus>;
101 gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>;
102 enable-active-high;
103 };
104
105 reg_usb_vbus: regulator-usb-vbus {
106 compatible = "regulator-fixed";
107 regulator-name = "usbh1_vbus";
108 regulator-min-microvolt = <5000000>;
109 regulator-max-microvolt = <5000000>;
110 regulator-always-on;
111 };
112
113 reg_usbh2_vbus: regulator-usbh2-vbus {
114 compatible = "regulator-fixed";
115 regulator-name = "usbh2_vbus";
116 regulator-min-microvolt = <5000000>;
117 regulator-max-microvolt = <5000000>;
118 pinctrl-names = "default";
119 pinctrl-0 = <&pinctrl_usbh2_vbus>;
120 gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>;
121 enable-active-high;
122 };
123
124 reg_usbh3_vbus: regulator-usbh3-vbus {
125 compatible = "regulator-fixed";
126 regulator-name = "usbh3_vbus";
127 regulator-min-microvolt = <5000000>;
128 regulator-max-microvolt = <5000000>;
129 pinctrl-names = "default";
130 pinctrl-0 = <&pinctrl_usbh3_vbus>;
131 gpio = <&gpio5 27 GPIO_ACTIVE_HIGH>;
132 enable-active-high;
133 };
134
135 pwm_bl: backlight {
136 compatible = "pwm-backlight";
137 pwms = <&pwm2 0 50000>;
138 brightness-levels = <0 2 5 7 10 12 15 17 20 22 25 28 30 33 35
139 38 40 43 45 48 51 53 56 58 61 63 66 68 71
140 73 76 79 81 84 86 89 91 94 96 99 102 104
141 107 109 112 114 117 119 122 124 127 130
142 132 135 137 140 142 145 147 150 153 155
143 158 160 163 165 168 170 173 175 178 181
144 183 186 188 191 193 196 198 201 204 206
145 209 211 214 216 219 221 224 226 229 232
146 234 237 239 242 244 247 249 252 255>;
147 default-brightness-level = <0>;
148 enable-gpios = <&gpio5 29 GPIO_ACTIVE_HIGH>;
149 };
150
151 leds {
152 compatible = "pwm-leds";
153
154 alarm-brightness {
155 pwms = <&pwm1 0 100000>;
156 max-brightness = <255>;
157 };
158 };
159
160 gpio-poweroff {
161 compatible = "gpio-poweroff";
162 gpios = <&gpio3 9 GPIO_ACTIVE_HIGH>;
163 };
164
165 gpio-restart {
166 compatible = "gpio-restart";
167 gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
168 active-delay = <100>;
169 inactive-delay = <10>;
170 wait-delay = <100>;
171 };
172
173 power-gpio-keys {
174 compatible = "gpio-keys";
175 #address-cells = <1>;
176 #size-cells = <0>;
177
178 power-button {
179 label = "Power button";
180 gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
181 linux,code = <KEY_POWER>;
182 };
183 };
184
185 touch-lock-key {
186 compatible = "gpio-keys";
187 #address-cells = <1>;
188 #size-cells = <0>;
189
190 touch-lock-button {
191 label = "Touch lock button";
192 gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
193 linux,code = <KEY_F12>;
194 };
195 };
196
197 usbphy2: usbphy2 {
198 compatible = "usb-nop-xceiv";
199 reset-gpios = <&gpio4 4 GPIO_ACTIVE_LOW>;
200 clock-names = "main_clk";
201 clock-frequency = <24000000>;
202 clocks = <&clks IMX5_CLK_CKO2>;
203 assigned-clocks = <&clks IMX5_CLK_CKO2_SEL>, <&clks IMX5_CLK_OSC>;
204 assigned-clock-parents = <&clks IMX5_CLK_OSC>;
205 };
206
207 usbphy3: usbphy3 {
208 compatible = "usb-nop-xceiv";
209 reset-gpios = <&gpio2 19 GPIO_ACTIVE_LOW>;
210 clock-names = "main_clk";
211
212 clock-frequency = <24000000>;
213 clocks = <&clks IMX5_CLK_CKO2>;
214 assigned-clocks = <&clks IMX5_CLK_CKO2_SEL>, <&clks IMX5_CLK_OSC>;
215 assigned-clock-parents = <&clks IMX5_CLK_OSC>;
216 };
217
218 panel-lvds0 {
219 compatible = "nvd,9128";
220
221 port {
222 panel_in_lvds0: endpoint {
223 remote-endpoint = <&lvds0_out>;
224 };
225 };
226 };
227};
228
229&audmux {
230 pinctrl-names = "default";
231 pinctrl-0 = <&pinctrl_audmux>;
232 status = "okay";
233};
234
235&cpu0 {
236 /* CPU rated to 1GHz, not 1.2GHz as per the default settings */
237 operating-points = <
238 /* kHz uV */
239 166666 850000
240 400000 900000
241 800000 1050000
242 1000000 1200000
243 >;
244};
245
246&ecspi1 {
247 pinctrl-names = "default";
248 pinctrl-0 = <&pinctrl_ecspi1>;
249 cs-gpios = <&gpio5 17 GPIO_ACTIVE_LOW
250 &gpio4 10 GPIO_ACTIVE_LOW
251 &gpio4 11 GPIO_ACTIVE_LOW
252 &gpio4 12 GPIO_ACTIVE_LOW>;
253 status = "okay";
254
255 spidev0: spi@0 {
256 compatible = "ge,achc";
257 reg = <0>;
258 spi-max-frequency = <1000000>;
259 };
260
261 spidev1: spi@1 {
262 compatible = "ge,achc";
263 reg = <1>;
264 spi-max-frequency = <1000000>;
265 };
266
267 gpioxra0: gpio@2 {
268 compatible = "exar,xra1403";
269 reg = <2>;
270 gpio-controller;
271 #gpio-cells = <2>;
272 spi-max-frequency = <1000000>;
273 };
274
275 gpioxra1: gpio@3 {
276 compatible = "exar,xra1403";
277 reg = <3>;
278 gpio-controller;
279 #gpio-cells = <2>;
280 spi-max-frequency = <1000000>;
281 };
282};
283
284&ecspi2 {
285 pinctrl-names = "default";
286 pinctrl-0 = <&pinctrl_ecspi2>;
287 num-chipselects = <1>;
288 cs-gpios = <&gpio2 26 GPIO_ACTIVE_LOW>;
289 status = "okay";
290
291 da9053@0 {
292 compatible = "dlg,da9053-aa";
293 reg = <0>;
294 interrupt-parent = <&gpio3>;
295 interrupts = <12 0x8>;
296 spi-max-frequency = <1000000>;
297
298 regulators {
299 buck1_reg: buck1 {
300 regulator-name = "BUCKCORE";
301 regulator-min-microvolt = <500000>;
302 regulator-max-microvolt = <2075000>;
303 regulator-always-on;
304 };
305
306 buck2_reg: buck2 {
307 regulator-name = "BUCKPRO";
308 regulator-min-microvolt = <500000>;
309 regulator-max-microvolt = <2075000>;
310 regulator-always-on;
311 };
312
313 buck3_reg: buck3 {
314 regulator-name = "BUCKMEM";
315 regulator-min-microvolt = <925000>;
316 regulator-max-microvolt = <2500000>;
317 regulator-always-on;
318 };
319
320 buck4_reg: buck4 {
321 regulator-name = "BUCKPERI";
322 regulator-min-microvolt = <1800000>;
323 regulator-max-microvolt = <3600000>;
324 regulator-always-on;
325 };
326
327 ldo1_reg: ldo1 {
328 regulator-name = "ldo1_1v3";
329 regulator-min-microvolt = <600000>;
330 regulator-max-microvolt = <1800000>;
331 regulator-always-on;
332 };
333
334 ldo2_reg: ldo2 {
335 regulator-name = "ldo2_1v3";
336 regulator-min-microvolt = <600000>;
337 regulator-max-microvolt = <1800000>;
338 regulator-always-on;
339 };
340
341 ldo3_reg: ldo3 {
342 regulator-name = "ldo3_3v3";
343 regulator-min-microvolt = <1725000>;
344 regulator-max-microvolt = <3300000>;
345 regulator-always-on;
346 };
347
348 ldo4_reg: ldo4 {
349 regulator-name = "ldo4_2v775";
350 regulator-min-microvolt = <1725000>;
351 regulator-max-microvolt = <3300000>;
352 regulator-always-on;
353 };
354
355 ldo5_reg: ldo5 {
356 regulator-name = "ldo5_3v3";
357 regulator-min-microvolt = <1200000>;
358 regulator-max-microvolt = <3600000>;
359 regulator-always-on;
360 };
361
362 ldo6_reg: ldo6 {
363 regulator-name = "ldo6_1v3";
364 regulator-min-microvolt = <1200000>;
365 regulator-max-microvolt = <3600000>;
366 regulator-always-on;
367 };
368
369 ldo7_reg: ldo7 {
370 regulator-name = "ldo7_2v75";
371 regulator-min-microvolt = <1200000>;
372 regulator-max-microvolt = <3600000>;
373 regulator-always-on;
374 };
375
376 ldo8_reg: ldo8 {
377 regulator-name = "ldo8_1v8";
378 regulator-min-microvolt = <1200000>;
379 regulator-max-microvolt = <3600000>;
380 regulator-always-on;
381 };
382
383 ldo9_reg: ldo9 {
384 regulator-name = "ldo9_1v5";
385 regulator-min-microvolt = <1250000>;
386 regulator-max-microvolt = <3650000>;
387 regulator-always-on;
388 };
389
390 ldo10_reg: ldo10 {
391 regulator-name = "ldo10_1v3";
392 regulator-min-microvolt = <1200000>;
393 regulator-max-microvolt = <3600000>;
394 regulator-always-on;
395 };
396 };
397 };
398
399};
400
401&esdhc3 {
402 pinctrl-names = "default";
403 pinctrl-0 = <&pinctrl_esdhc3>;
404 bus-width = <8>;
405 status = "okay";
406};
407
408&fec {
409 pinctrl-names = "default";
410 pinctrl-0 = <&pinctrl_fec>;
411 phy-mode = "rmii";
412 phy-reset-gpios = <&gpio2 16 GPIO_ACTIVE_LOW>;
413 status = "okay";
414};
415
416&i2c1 {
417 pinctrl-names = "default", "gpio";
418 pinctrl-0 = <&pinctrl_i2c1>;
419 pinctrl-1 = <&pinctrl_i2c1_gpio>;
420 sda-gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
421 scl-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
422 status = "okay";
423
424 i2c-switch@70 {
425 compatible = "nxp,pca9547";
426 #address-cells = <1>;
427 #size-cells = <0>;
428 reg = <0x70>;
429 reset-gpios = <&gpio2 18 GPIO_ACTIVE_LOW>;
430
431 i2c4: i2c@0 {
432 #address-cells = <1>;
433 #size-cells = <0>;
434 reg = <0>;
435
436 sgtl5000: codec@a {
437 compatible = "fsl,sgtl5000";
438 reg = <0xa>;
439 VDDA-supply = <&reg_sgtl5k>;
440 VDDIO-supply = <&reg_sgtl5k>;
441 clocks = <&cko2_11M>;
442 status = "okay";
443 };
444 };
445
446 i2c5: i2c@1 {
447 #address-cells = <1>;
448 #size-cells = <0>;
449 reg = <1>;
450
451 rtc@30 {
452 compatible = "sii,s35390a";
453 reg = <0x30>;
454 };
455
456 temp@48 {
457 compatible = "ti,tmp112";
458 reg = <0x48>;
459 };
460
461 mma8453q: accelerometer@1c {
462 compatible = "fsl,mma8453";
463 reg = <0x1c>;
464 interrupt-parent = <&gpio1>;
465 interrupts = <6 0>;
466 interrupt-names = "INT1";
467 };
468
469 mpl3115: pressure-sensor@60 {
470 compatible = "fsl,mpl3115";
471 reg = <0x60>;
472 };
473
474 eeprom: eeprom@50 {
475 compatible = "atmel,24c08";
476 reg = <0x50>;
477 };
478 };
479
480 i2c6: i2c@2 {
481 #address-cells = <1>;
482 #size-cells = <0>;
483 reg = <2>;
484 };
485
486 i2c7: i2c@3 {
487 #address-cells = <1>;
488 #size-cells = <0>;
489 reg = <3>;
490 };
491
492 i2c8: i2c@4 {
493 #address-cells = <1>;
494 #size-cells = <0>;
495 reg = <4>;
496 };
497
498 i2c9: i2c@5 {
499 #address-cells = <1>;
500 #size-cells = <0>;
501 reg = <5>;
502 };
503
504 i2c10: i2c@6 {
505 #address-cells = <1>;
506 #size-cells = <0>;
507 reg = <6>;
508 };
509
510 i2c11: i2c@7 {
511 #address-cells = <1>;
512 #size-cells = <0>;
513 reg = <7>;
514 };
515 };
516};
517
518&i2c2 {
519 pinctrl-names = "default", "gpio";
520 pinctrl-0 = <&pinctrl_i2c2>;
521 pinctrl-1 = <&pinctrl_i2c2_gpio>;
522 sda-gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
523 scl-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>;
524 status = "okay";
525
526 touchscreen@4b {
527 compatible = "atmel,maxtouch";
528 reg = <0x4b>;
529 interrupt-parent = <&gpio5>;
530 interrupts = <4 0x8>;
531 };
532};
533
534&i2c3 {
535 pinctrl-names = "default", "gpio";
536 pinctrl-0 = <&pinctrl_i2c3>;
537 pinctrl-1 = <&pinctrl_i2c3_gpio>;
538 sda-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>;
539 scl-gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>;
540 status = "okay";
541};
542
543&ldb {
544 status = "okay";
545
546 lvds0: lvds-channel@0 {
547 status = "okay";
548
549 port@2 {
550 reg = <2>;
551
552 lvds0_out: endpoint {
553 remote-endpoint = <&panel_in_lvds0>;
554 };
555 };
556 };
557};
558
559&pwm1 {
560 pinctrl-names = "default";
561 pinctrl-0 = <&pinctrl_pwm1>;
562 status = "okay";
563};
564
565&pwm2 {
566 pinctrl-names = "default";
567 pinctrl-0 = <&pinctrl_pwm2>;
568 status = "okay";
569};
570
571&ssi2 {
572 status = "okay";
573};
574
575&uart1 {
576 pinctrl-names = "default";
577 pinctrl-0 = <&pinctrl_uart1>;
578 status = "okay";
579};
580
581&uart2 {
582 pinctrl-names = "default";
583 pinctrl-0 = <&pinctrl_uart2>;
584 status = "okay";
585};
586
587&uart3 {
588 pinctrl-names = "default";
589 pinctrl-0 = <&pinctrl_uart3>;
590 uart-has-rtscts;
591 status = "okay";
592};
593
594&uart4 {
595 pinctrl-names = "default";
596 pinctrl-0 = <&pinctrl_uart4>;
597 status = "okay";
598};
599
600&uart5 {
601 pinctrl-names = "default";
602 pinctrl-0 = <&pinctrl_uart5>;
603 status = "okay";
604};
605
606&usbotg {
607 dr_mode = "otg";
608 phy_type = "utmi";
609 vbus-supply = <&reg_usb_otg_vbus>;
610 pinctrl-0 = <&pinctrl_usb_otg>;
611 status = "okay";
612};
613
614&usbh1 {
615 vbus-supply = <&reg_usb_vbus>;
616 phy_type = "utmi";
617 dr_mode = "host";
618 status = "okay";
619};
620
621&usbh2 {
622 pinctrl-names = "default";
623 pinctrl-0 = <&pinctrl_usbh2>;
624 phy_type = "ulpi";
625 dr_mode = "host";
626 fsl,usbphy = <&usbphy2>;
627 vbus-supply = <&reg_usbh2_vbus>;
628 status = "okay";
629};
630
631&usbh3 {
632 pinctrl-names = "default";
633 pinctrl-0 = <&pinctrl_usbh3>;
634 phy_type = "ulpi";
635 dr_mode = "host";
636 vbus-supply = <&reg_usbh3_vbus>;
637 fsl,usbphy = <&usbphy3>;
638 status = "okay";
639};
640
641&iomuxc {
642 pinctrl-names = "default";
643 pinctrl-0 = <&pinctrl_hog_rev6>;
644
645 pinctrl_audmux: audmuxgrp {
646 fsl,pins = <
647 MX53_PAD_DISP0_DAT19__AUDMUX_AUD5_RXD 0x400
648 MX53_PAD_DISP0_DAT17__AUDMUX_AUD5_TXD 0x400
649 MX53_PAD_DISP0_DAT16__AUDMUX_AUD5_TXC 0x400
650 MX53_PAD_DISP0_DAT18__AUDMUX_AUD5_TXFS 0x400
651 MX53_PAD_DI0_PIN15__AUDMUX_AUD6_TXC 0x400
652 MX53_PAD_DI0_PIN3__AUDMUX_AUD6_TXFS 0x400
653 MX53_PAD_DI0_PIN4__AUDMUX_AUD6_RXD 0x400
654 MX53_PAD_DI0_PIN2__AUDMUX_AUD6_TXD 0x400
655 >;
656 };
657
658 pinctrl_ecspi1: ecspi1grp {
659 fsl,pins = <
660 MX53_PAD_DISP0_DAT21__ECSPI1_MOSI 0x400
661 MX53_PAD_DISP0_DAT22__ECSPI1_MISO 0x400
662 MX53_PAD_DISP0_DAT20__ECSPI1_SCLK 0x400
663 /* ECSPI1_SS0, must treat as GPIO for EzPort */
664 MX53_PAD_DISP0_DAT23__GPIO5_17 0x400
665 MX53_PAD_KEY_COL2__GPIO4_10 0x0
666 MX53_PAD_KEY_ROW2__GPIO4_11 0x0
667 MX53_PAD_KEY_COL3__GPIO4_12 0x0
668 >;
669 };
670
671 pinctrl_ecspi2: ecspi2grp {
672 fsl,pins = <
673 MX53_PAD_EIM_CS1__ECSPI2_MOSI 0x0
674 MX53_PAD_EIM_OE__ECSPI2_MISO 0x0
675 MX53_PAD_EIM_CS0__ECSPI2_SCLK 0x0
676 MX53_PAD_EIM_RW__GPIO2_26 0x0
677 >;
678 };
679
680 pinctrl_esdhc1: esdhc1grp {
681 fsl,pins = <
682 MX53_PAD_SD1_DATA0__ESDHC1_DAT0 0x1d5
683 MX53_PAD_SD1_DATA1__ESDHC1_DAT1 0x1d5
684 MX53_PAD_SD1_DATA2__ESDHC1_DAT2 0x1d5
685 MX53_PAD_SD1_DATA3__ESDHC1_DAT3 0x1d5
686 MX53_PAD_SD1_CMD__ESDHC1_CMD 0x1d5
687 MX53_PAD_SD1_CLK__ESDHC1_CLK 0x1d5
688 >;
689 };
690
691 pinctrl_esdhc3: esdhc3grp {
692 fsl,pins = <
693 MX53_PAD_PATA_DATA8__ESDHC3_DAT0 0x1d5
694 MX53_PAD_PATA_DATA9__ESDHC3_DAT1 0x1d5
695 MX53_PAD_PATA_DATA10__ESDHC3_DAT2 0x1d5
696 MX53_PAD_PATA_DATA11__ESDHC3_DAT3 0x1d5
697 MX53_PAD_PATA_DATA0__ESDHC3_DAT4 0x1d5
698 MX53_PAD_PATA_DATA1__ESDHC3_DAT5 0x1d5
699 MX53_PAD_PATA_DATA2__ESDHC3_DAT6 0x1d5
700 MX53_PAD_PATA_DATA3__ESDHC3_DAT7 0x1d5
701 MX53_PAD_PATA_RESET_B__ESDHC3_CMD 0x1d5
702 MX53_PAD_PATA_IORDY__ESDHC3_CLK 0x1d5
703 >;
704 };
705
706 pinctrl_fec: fecgrp {
707 fsl,pins = <
708 MX53_PAD_FEC_MDC__FEC_MDC 0x0
709 MX53_PAD_FEC_MDIO__FEC_MDIO 0x0
710 MX53_PAD_FEC_REF_CLK__FEC_TX_CLK 0x0
711 MX53_PAD_FEC_RX_ER__FEC_RX_ER 0x0
712 MX53_PAD_FEC_CRS_DV__FEC_RX_DV 0x0
713 MX53_PAD_FEC_RXD1__FEC_RDATA_1 0x0
714 MX53_PAD_FEC_RXD0__FEC_RDATA_0 0x0
715 MX53_PAD_FEC_TX_EN__FEC_TX_EN 0x0
716 MX53_PAD_FEC_TXD1__FEC_TDATA_1 0x0
717 MX53_PAD_FEC_TXD0__FEC_TDATA_0 0x0
718 >;
719 };
720
721 pinctrl_hog_rev6: hoggrp {
722 fsl,pins = <
723 /* CKO2 */
724 MX53_PAD_GPIO_3__CCM_CLKO2 0x4
725 /* DEFIB_SYNC_MARKER_IN_IRQ */
726 MX53_PAD_GPIO_5__GPIO1_5 0x0
727 /* ACCELEROMETER_DATA_RDY_N */
728 MX53_PAD_GPIO_6__GPIO1_6 0x0
729 /* TEMPERATURE_ALERT_N */
730 MX53_PAD_GPIO_7__GPIO1_7 0x0
731 /* BAROMETRIC_PRESSURE_DATA_RDY_N */
732 MX53_PAD_GPIO_8__GPIO1_8 0x0
733 /* DOCKING_I2C_INTERFACE_IRQ_N */
734 MX53_PAD_PATA_DATA4__GPIO2_4 0x0
735 /* PWR_OUT_TO_DOCK_FAULT_N */
736 MX53_PAD_PATA_DATA5__GPIO2_5 0x0
737 /* ENABLE_PWR_TO_DOCK_N */
738 MX53_PAD_PATA_DATA6__GPIO2_6 0x0
739 /* HOST_CONTROLLED_RESET_TO_DOCKING_CONNECTOR_N */
740 MX53_PAD_PATA_DATA7__GPIO2_7 0x0
741 /* REMOTE_ON_REQUEST_FROM_DOCKING_CONNECTOR_IS_ACTIVE_N */
742 MX53_PAD_PATA_DATA12__GPIO2_12 0x0
743 /* DOCK_PRESENT_N */
744 MX53_PAD_PATA_DATA13__GPIO2_13 0x0
745 /* ECG_MARKER_IN_FROM_DOCKING_CONNECTOR_IRQ */
746 MX53_PAD_PATA_DATA14__GPIO2_14 0x0
747 /* ENABLE_ECG_MARKER_INTERFACE_TO_DOCKING_CONNECTOR */
748 MX53_PAD_PATA_DATA15__GPIO2_15 0x0
749 /* RESET_IMX535_ETHERNET_PHY_N */
750 MX53_PAD_EIM_A22__GPIO2_16 0x0
751 /* ENABLE_PWR_TO_LCD_AND_UI_INTERFACE */
752 MX53_PAD_EIM_A21__GPIO2_17 0x0
753 /* RESET_I2C1_BUS_SEGMENT_MUX_N */
754 MX53_PAD_EIM_A20__GPIO2_18 0x0
755 /* RESET_IMX535_USB_HOST3_PHY_N */
756 MX53_PAD_EIM_A19__GPIO2_19 0x0
757 /* ESDHC3_EMMC_NAND_RST_N */
758 MX53_PAD_EIM_A18__GPIO2_20 0x0
759 /* LCD_AND_UI_INTERFACE_PWR_FAULT_N */
760 MX53_PAD_EIM_A17__GPIO2_21 0x0
761 /* POWER_DOWN_LVDS0_DESERIALIZER_N */
762 MX53_PAD_EIM_A16__GPIO2_22 0x0
763 /* POWER_DOWN_LVDS1_DESERIALIZER_N */
764 MX53_PAD_EIM_LBA__GPIO2_27 0x0
765 /* RESET_DP0_TRANSMITTER_N */
766 MX53_PAD_EIM_EB0__GPIO2_28 0x0
767 /* RESET_DP1_TRANSMITTER_N */
768 MX53_PAD_EIM_EB1__GPIO2_29 0x0
769 /* ENABLE_SPDIF_AUDIO_TO_DP0 */
770 MX53_PAD_EIM_DA0__GPIO3_0 0x0
771 /* ENABLE_SPDIF_AUDIO_TO_DP1 */
772 MX53_PAD_EIM_DA1__GPIO3_1 0x0
773 /* LVDS1_MUX_CTRL */
774 MX53_PAD_EIM_DA2__GPIO3_2 0x0
775 /* LVDS0_MUX_CTRL */
776 MX53_PAD_EIM_DA3__GPIO3_3 0x0
777 /* DP1_TRANSMITTER_IRQ */
778 MX53_PAD_EIM_DA4__GPIO3_4 0x0
779 /* DP0_TRANSMITTER_IRQ */
780 MX53_PAD_EIM_DA5__GPIO3_5 0x0
781 /* USB_RESET_N */
782 MX53_PAD_EIM_DA6__GPIO3_6 0x0
783 /* ENABLE_BATTERY_CHARGER */
784 MX53_PAD_EIM_DA7__GPIO3_7 0x0
785 /* SOFTWARE_CONTROLLED_PWR_CYCLE */
786 MX53_PAD_EIM_DA8__GPIO3_8 0x0
787 /* SOFTWARE_CONTROLLED_POWERDOWN */
788 MX53_PAD_EIM_DA9__GPIO3_9 0x0
789 /* DC_PWR_IN_OK */
790 MX53_PAD_EIM_DA10__GPIO3_10 0x0
791 /* BATT_PRESENT_N */
792 MX53_PAD_EIM_DA11__GPIO3_11 0xe4
793 /* PMIC_IRQ_N */
794 MX53_PAD_EIM_DA12__GPIO3_12 0x0
795 /* PMIC_VDD_FAULT_STATUS_N */
796 MX53_PAD_EIM_DA13__GPIO3_13 0x0
797 /* IMX535_ETHERNET_PHY_STATUS_IRQ_N */
798 MX53_PAD_EIM_DA14__GPIO3_14 0x0
799 /* NOT USED - AVAILABLE 3.3V GPIO */
800 MX53_PAD_EIM_DA15__GPIO3_15 0x0
801 /* NOT USED - AVAILABLE 3.3V GPIO */
802 MX53_PAD_EIM_D22__GPIO3_22 0x0
803 /* NOT USED - AVAILABLE 3.3V GPIO */
804 MX53_PAD_EIM_D24__GPIO3_24 0x0
805 /* NBP_PUMP_VALVE_PWR_ENABLE */
806 MX53_PAD_EIM_D25__GPIO3_25 0x0
807 /* NIBP_RESET_N */
808 MX53_PAD_EIM_D26__GPIO3_26 0x0
809 /* LATCHED_OVERPRESSURE_N */
810 MX53_PAD_EIM_D27__GPIO3_27 0x0
811 /* NBP_SBWTCLK */
812 MX53_PAD_EIM_D29__GPIO3_29 0x0
813 /* ENABLE_WIFI_MODULE */
814 MX53_PAD_GPIO_11__GPIO4_1 0x400
815 /* WIFI_MODULE_IRQ_N */
816 MX53_PAD_GPIO_12__GPIO4_2 0x400
817 /* ENABLE_BLUETOOTH_MODULE */
818 MX53_PAD_GPIO_13__GPIO4_3 0x400
819 /* RESET_IMX535_USB_HOST2_PHY_N */
820 MX53_PAD_GPIO_14__GPIO4_4 0x400
821 /* ONKEY_IS_DEPRESSED */
822 MX53_PAD_KEY_ROW3__GPIO4_13 0x0
823 /* UNUSED_GPIO_TO_ALARM_LIGHT_BOARD */
824 MX53_PAD_EIM_WAIT__GPIO5_0 0x0
825 /* DISPLAY_LOCK_BUTTON_IS_DEPRESSED_N */
826 MX53_PAD_EIM_A25__GPIO5_2 0x0
827 /* I2C_PCAP_TOUCHSCREEN_IRQ_N */
828 MX53_PAD_EIM_A24__GPIO5_4 0x0
829 /* NOT USED - AVAILABLE 1.8V GPIO */
830 MX53_PAD_DISP0_DAT13__GPIO5_7 0x400
831 /* NOT USED - AVAILABLE 1.8V GPIO */
832 MX53_PAD_DISP0_DAT14__GPIO5_8 0x400
833 /* NOT USED - AVAILABLE 1.8V GPIO */
834 MX53_PAD_DISP0_DAT15__GPIO5_9 0x400
835 /* HOST_CONTROLLED_RESET_TO_LCD_N */
836 MX53_PAD_CSI0_PIXCLK__GPIO5_18 0x0
837 /* HOST_CONTROLLED_RESET_TO_PCAP_N */
838 MX53_PAD_CSI0_MCLK__GPIO5_19 0x0
839 /* LR_SCAN_CTRL */
840 MX53_PAD_CSI0_DATA_EN__GPIO5_20 0x0
841 /* UD_SCAN_CTRL */
842 MX53_PAD_CSI0_VSYNC__GPIO5_21 0x0
843 /* DATA_WIDTH_CTRL */
844 MX53_PAD_CSI0_DAT10__GPIO5_28 0x0
845 /* BACKLIGHT_ENABLE */
846 MX53_PAD_CSI0_DAT11__GPIO5_29 0x0
847 /* MED_USB_PORT_1_HOST_SELECT */
848 MX53_PAD_EIM_A23__GPIO6_6 0x0
849 /* MED_USB_PORT_2_HOST_SELECT */
850 MX53_PAD_NANDF_CLE__GPIO6_7 0x0
851 /* MED_USB_PORT_3_HOST_SELECT */
852 MX53_PAD_NANDF_ALE__GPIO6_8 0x0
853 /* MED_USB_PORT_4_HOST_SELECT */
854 MX53_PAD_NANDF_WP_B__GPIO6_9 0x0
855 /* MED_USB_PORT_5_HOST_SELECT */
856 MX53_PAD_NANDF_RB0__GPIO6_10 0x0
857 /* MED_USB_PORT_6_HOST_SELECT */
858 MX53_PAD_NANDF_CS0__GPIO6_11 0x0
859 /* MED_USB_PORT_7_HOST_SELECT */
860 MX53_PAD_NANDF_WE_B__GPIO6_12 0x0
861 /* MED_USB_PORT_8_HOST_SELECT */
862 MX53_PAD_NANDF_RE_B__GPIO6_13 0x0
863 /* MED_USB_PORT_TO_IMX_SELECT_0 */
864 MX53_PAD_NANDF_CS1__GPIO6_14 0x0
865 /* MED_USB_PORT_TO_IMX_SELECT_1 */
866 MX53_PAD_NANDF_CS2__GPIO6_15 0x0
867 /* MED_USB_PORT_TO_IMX_SELECT_2 */
868 MX53_PAD_NANDF_CS3__GPIO6_16 0x0
869 /* POWER_AND_BOOT_STATUS_INDICATOR */
870 MX53_PAD_PATA_INTRQ__GPIO7_2 0x1e4
871 /* ACTIVATE_ALARM_LIGHT_RED */
872 MX53_PAD_PATA_DIOR__GPIO7_3 0x0
873 /* ACTIVATE_ALARM_LIGHT_YELLOW */
874 MX53_PAD_PATA_DA_1__GPIO7_7 0x0
875 /* ACTIVATE_ALARM_LIGHT_CYAN */
876 MX53_PAD_PATA_DA_2__GPIO7_8 0x0
877 /* RUNNING_ON_BATTERY_INDICATOR_GREEN */
878 MX53_PAD_GPIO_16__GPIO7_11 0x0
879 /* BATTERY_STATUS_INDICATOR_AMBER */
880 MX53_PAD_GPIO_17__GPIO7_12 0x0
881 /* AUDIO_ALARMS_SILENCED_INDICATOR */
882 MX53_PAD_GPIO_18__GPIO7_13 0x0
883 >;
884 };
885
886 pinctrl_i2c1: i2c1grp {
887 fsl,pins = <
888 MX53_PAD_EIM_D21__I2C1_SCL 0x400001e4
889 MX53_PAD_EIM_D28__I2C1_SDA 0x400001e4
890 >;
891 };
892
893 pinctrl_i2c1_gpio: i2c1gpiogrp {
894 fsl,pins = <
895 MX53_PAD_EIM_D28__GPIO3_28 0x1e4
896 MX53_PAD_EIM_D21__GPIO3_21 0x1e4
897 >;
898 };
899
900 pinctrl_i2c2: i2c2grp {
901 fsl,pins = <
902 MX53_PAD_EIM_EB2__I2C2_SCL 0x400001e4
903 MX53_PAD_EIM_D16__I2C2_SDA 0x400001e4
904 >;
905 };
906
907 pinctrl_i2c2_gpio: i2c2gpiogrp {
908 fsl,pins = <
909 MX53_PAD_EIM_D16__GPIO3_16 0x1e4
910 MX53_PAD_EIM_EB2__GPIO2_30 0x1e4
911 >;
912 };
913
914 pinctrl_i2c3: i2c3grp {
915 fsl,pins = <
916 MX53_PAD_EIM_D17__I2C3_SCL 0x400001e4
917 MX53_PAD_EIM_D18__I2C3_SDA 0x400001e4
918 >;
919 };
920
921 pinctrl_i2c3_gpio: i2c3gpiogrp {
922 fsl,pins = <
923 MX53_PAD_EIM_D18__GPIO3_18 0x1e4
924 MX53_PAD_EIM_D17__GPIO3_17 0x1e4
925 >;
926 };
927
928 pinctrl_pwm1: pwm1grp {
929 fsl,pins = <
930 MX53_PAD_GPIO_9__PWM1_PWMO 0x5
931 >;
932 };
933
934 pinctrl_pwm2: pwm2grp {
935 fsl,pins = <
936 MX53_PAD_DISP0_DAT9__PWM2_PWMO 0x5
937 >;
938 };
939
940 pinctrl_uart1: uart1grp {
941 fsl,pins = <
942 MX53_PAD_PATA_DIOW__UART1_TXD_MUX 0x1e4
943 MX53_PAD_PATA_DMACK__UART1_RXD_MUX 0x1e4
944 >;
945 };
946
947 pinctrl_uart2: uart2grp {
948 fsl,pins = <
949 MX53_PAD_PATA_DMARQ__UART2_TXD_MUX 0x1e4
950 MX53_PAD_PATA_BUFFER_EN__UART2_RXD_MUX 0x1e4
951 >;
952 };
953
954 pinctrl_uart3: uart3grp {
955 fsl,pins = <
956 MX53_PAD_PATA_CS_0__UART3_TXD_MUX 0x1e4
957 MX53_PAD_PATA_CS_1__UART3_RXD_MUX 0x1e4
958 MX53_PAD_EIM_D23__UART3_CTS 0x1e4
959 MX53_PAD_EIM_EB3__UART3_RTS 0x1e4
960 >;
961 };
962
963 pinctrl_uart4: uart4grp {
964 fsl,pins = <
965 MX53_PAD_KEY_COL0__UART4_TXD_MUX 0x1e4
966 MX53_PAD_KEY_ROW0__UART4_RXD_MUX 0x1e4
967 >;
968 };
969
970 pinctrl_uart5: uart5grp {
971 fsl,pins = <
972 MX53_PAD_KEY_COL1__UART5_TXD_MUX 0x1e4
973 MX53_PAD_KEY_ROW1__UART5_RXD_MUX 0x1e4
974 >;
975 };
976
977 pinctrl_usb_otg_vbus: usb-otg-vbusgrp {
978 fsl,pins = <
979 /* USB_HS_OTG_VBUS_ENABLE */
980 MX53_PAD_KEY_ROW4__GPIO4_15 0x1c4
981 >;
982 };
983
984 pinctrl_usbh2: usbh2grp {
985 fsl,pins = <
986 /* USB H2 */
987 MX53_PAD_DISP0_DAT0__USBOH3_USBH2_DATA_0 0x180
988 MX53_PAD_DISP0_DAT1__USBOH3_USBH2_DATA_1 0x180
989 MX53_PAD_DISP0_DAT2__USBOH3_USBH2_DATA_2 0x180
990 MX53_PAD_DISP0_DAT3__USBOH3_USBH2_DATA_3 0x180
991 MX53_PAD_DISP0_DAT4__USBOH3_USBH2_DATA_4 0x180
992 MX53_PAD_DISP0_DAT5__USBOH3_USBH2_DATA_5 0x180
993 MX53_PAD_DISP0_DAT6__USBOH3_USBH2_DATA_6 0x180
994 MX53_PAD_DISP0_DAT7__USBOH3_USBH2_DATA_7 0x180
995 MX53_PAD_DISP0_DAT10__USBOH3_USBH2_STP 0x180
996 MX53_PAD_DISP0_DAT11__USBOH3_USBH2_NXT 0x180
997 MX53_PAD_DISP0_DAT12__USBOH3_USBH2_CLK 0x180
998 MX53_PAD_DI0_DISP_CLK__USBOH3_USBH2_DIR 0x5
999 MX53_PAD_EIM_D30__USBOH3_USBH2_OC 0x180
1000 >;
1001 };
1002
1003 pinctrl_usbh2_vbus: usbh2-vbusgrp {
1004 fsl,pins = <
1005 /* USB_HS_HOST2_VBUS_ENABLE */
1006 MX53_PAD_EIM_D31__GPIO3_31 0x0
1007 >;
1008 };
1009
1010 pinctrl_usbh3_vbus: usbh3-vbusgrp {
1011 fsl,pins = <
1012 /* USB_HS_HOST3_VBUS_ENABLE */
1013 MX53_PAD_CSI0_DAT9__GPIO5_27 0x0
1014 >;
1015 };
1016
1017 pinctrl_usbh3: usbh3grp {
1018 fsl,pins = <
1019 /* USB H3 */
1020 MX53_PAD_CSI0_DAT12__USBOH3_USBH3_DATA_0 0x180
1021 MX53_PAD_CSI0_DAT13__USBOH3_USBH3_DATA_1 0x180
1022 MX53_PAD_CSI0_DAT14__USBOH3_USBH3_DATA_2 0x180
1023 MX53_PAD_CSI0_DAT15__USBOH3_USBH3_DATA_3 0x180
1024 MX53_PAD_CSI0_DAT16__USBOH3_USBH3_DATA_4 0x180
1025 MX53_PAD_CSI0_DAT17__USBOH3_USBH3_DATA_5 0x180
1026 MX53_PAD_CSI0_DAT18__USBOH3_USBH3_DATA_6 0x180
1027 MX53_PAD_CSI0_DAT19__USBOH3_USBH3_DATA_7 0x180
1028 MX53_PAD_CSI0_DAT7__USBOH3_USBH3_DIR 0x5
1029 MX53_PAD_CSI0_DAT6__USBOH3_USBH3_CLK 0x180
1030 MX53_PAD_CSI0_DAT5__USBOH3_USBH3_NXT 0x180
1031 MX53_PAD_CSI0_DAT4__USBOH3_USBH3_STP 0x180
1032 MX53_PAD_CSI0_DAT8__USBOH3_USBH3_OC 0x180
1033 >;
1034 };
1035
1036 pinctrl_usb_otg: usbotggrp {
1037 fsl,pins = <
1038 /* USB_OTG_FAULT_N */
1039 MX53_PAD_KEY_COL4__USBOH3_USBOTG_OC 0x180
1040 >;
1041 };
1042};
diff --git a/arch/arm/boot/dts/imx53-qsb-common.dtsi b/arch/arm/boot/dts/imx53-qsb-common.dtsi
index 683dcbe27cbd..41a2e2a2b079 100644
--- a/arch/arm/boot/dts/imx53-qsb-common.dtsi
+++ b/arch/arm/boot/dts/imx53-qsb-common.dtsi
@@ -22,7 +22,7 @@
22 <0xb0000000 0x20000000>; 22 <0xb0000000 0x20000000>;
23 }; 23 };
24 24
25 display0: display@di0 { 25 display0: disp0 {
26 compatible = "fsl,imx-parallel-display"; 26 compatible = "fsl,imx-parallel-display";
27 interface-pix-fmt = "rgb565"; 27 interface-pix-fmt = "rgb565";
28 pinctrl-names = "default"; 28 pinctrl-names = "default";
@@ -172,7 +172,7 @@
172 >; 172 >;
173 }; 173 };
174 174
175 led_pin_gpio7_7: led_gpio7_7@0 { 175 led_pin_gpio7_7: led_gpio7_7 {
176 fsl,pins = < 176 fsl,pins = <
177 MX53_PAD_PATA_DA_1__GPIO7_7 0x80000000 177 MX53_PAD_PATA_DA_1__GPIO7_7 0x80000000
178 >; 178 >;
@@ -314,7 +314,7 @@
314 pinctrl-0 = <&pinctrl_i2c2>; 314 pinctrl-0 = <&pinctrl_i2c2>;
315 status = "okay"; 315 status = "okay";
316 316
317 sgtl5000: codec@0a { 317 sgtl5000: codec@a {
318 compatible = "fsl,sgtl5000"; 318 compatible = "fsl,sgtl5000";
319 reg = <0x0a>; 319 reg = <0x0a>;
320 VDDA-supply = <&reg_3p2v>; 320 VDDA-supply = <&reg_3p2v>;
diff --git a/arch/arm/boot/dts/imx53-smd.dts b/arch/arm/boot/dts/imx53-smd.dts
index 33cb64fc8372..51f4a42a55e2 100644
--- a/arch/arm/boot/dts/imx53-smd.dts
+++ b/arch/arm/boot/dts/imx53-smd.dts
@@ -232,12 +232,12 @@
232 pinctrl-0 = <&pinctrl_i2c2>; 232 pinctrl-0 = <&pinctrl_i2c2>;
233 status = "okay"; 233 status = "okay";
234 234
235 codec: sgtl5000@0a { 235 codec: sgtl5000@a {
236 compatible = "fsl,sgtl5000"; 236 compatible = "fsl,sgtl5000";
237 reg = <0x0a>; 237 reg = <0x0a>;
238 }; 238 };
239 239
240 magnetometer: mag3110@0e { 240 magnetometer: mag3110@e {
241 compatible = "fsl,mag3110"; 241 compatible = "fsl,mag3110";
242 reg = <0x0e>; 242 reg = <0x0e>;
243 }; 243 };
diff --git a/arch/arm/boot/dts/imx53-tx53-x03x.dts b/arch/arm/boot/dts/imx53-tx53-x03x.dts
index 0ecb43d88522..7eb53e48c2f4 100644
--- a/arch/arm/boot/dts/imx53-tx53-x03x.dts
+++ b/arch/arm/boot/dts/imx53-tx53-x03x.dts
@@ -1,12 +1,42 @@
1/* 1/*
2 * Copyright 2013 Lothar Waßmann <LW@KARO-electronics.de> 2 * Copyright 2013-2017 Lothar Waßmann <LW@KARO-electronics.de>
3 * 3 *
4 * The code contained herein is licensed under the GNU General Public 4 * This file is dual-licensed: you can use it either under the terms
5 * License. You may obtain a copy of the GNU General Public License 5 * of the GPL or the X11 license, at your option. Note that this dual
6 * Version 2 at the following locations: 6 * licensing only applies to this file, and not this project as a
7 * whole.
7 * 8 *
8 * http://www.opensource.org/licenses/gpl-license.html 9 * a) This file is free software; you can redistribute it and/or
9 * http://www.gnu.org/copyleft/gpl.html 10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
39 * OTHER DEALINGS IN THE SOFTWARE.
10 */ 40 */
11 41
12/dts-v1/; 42/dts-v1/;
@@ -24,7 +54,7 @@
24 }; 54 };
25 55
26 soc { 56 soc {
27 display: display@di0 { 57 display: disp0 {
28 compatible = "fsl,imx-parallel-display"; 58 compatible = "fsl,imx-parallel-display";
29 interface-pix-fmt = "rgb24"; 59 interface-pix-fmt = "rgb24";
30 pinctrl-names = "default"; 60 pinctrl-names = "default";
@@ -173,28 +203,24 @@
173 default-brightness-level = <50>; 203 default-brightness-level = <50>;
174 }; 204 };
175 205
176 regulators { 206 reg_lcd_pwr: regulator-lcd-pwr {
177 reg_lcd_pwr: regulator@5 { 207 compatible = "regulator-fixed";
178 compatible = "regulator-fixed"; 208 regulator-name = "LCD POWER";
179 reg = <5>; 209 regulator-min-microvolt = <3300000>;
180 regulator-name = "LCD POWER"; 210 regulator-max-microvolt = <3300000>;
181 regulator-min-microvolt = <3300000>; 211 gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>;
182 regulator-max-microvolt = <3300000>; 212 enable-active-high;
183 gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>; 213 regulator-boot-on;
184 enable-active-high; 214 };
185 regulator-boot-on;
186 };
187 215
188 reg_lcd_reset: regulator@6 { 216 reg_lcd_reset: regulator-lcd-reset {
189 compatible = "regulator-fixed"; 217 compatible = "regulator-fixed";
190 reg = <6>; 218 regulator-name = "LCD RESET";
191 regulator-name = "LCD RESET"; 219 regulator-min-microvolt = <3300000>;
192 regulator-min-microvolt = <3300000>; 220 regulator-max-microvolt = <3300000>;
193 regulator-max-microvolt = <3300000>; 221 gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>;
194 gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>; 222 enable-active-high;
195 enable-active-high; 223 regulator-boot-on;
196 regulator-boot-on;
197 };
198 }; 224 };
199}; 225};
200 226
@@ -203,7 +229,7 @@
203 pinctrl-0 = <&pinctrl_i2c3>; 229 pinctrl-0 = <&pinctrl_i2c3>;
204 status = "okay"; 230 status = "okay";
205 231
206 sgtl5000: codec@0a { 232 sgtl5000: codec@a {
207 compatible = "fsl,sgtl5000"; 233 compatible = "fsl,sgtl5000";
208 reg = <0x0a>; 234 reg = <0x0a>;
209 VDDA-supply = <&reg_2v5>; 235 VDDA-supply = <&reg_2v5>;
@@ -228,7 +254,7 @@
228 pinctrl-names = "default"; 254 pinctrl-names = "default";
229 pinctrl-0 = <&pinctrl_tsc2007>; 255 pinctrl-0 = <&pinctrl_tsc2007>;
230 interrupt-parent = <&gpio3>; 256 interrupt-parent = <&gpio3>;
231 interrupts = <26 0>; 257 interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
232 gpios = <&gpio3 26 GPIO_ACTIVE_LOW>; 258 gpios = <&gpio3 26 GPIO_ACTIVE_LOW>;
233 ti,x-plate-ohms = <660>; 259 ti,x-plate-ohms = <660>;
234 wakeup-source; 260 wakeup-source;
diff --git a/arch/arm/boot/dts/imx53-tx53-x13x.dts b/arch/arm/boot/dts/imx53-tx53-x13x.dts
index 3cf682a681f4..f2b2ad3ce9e5 100644
--- a/arch/arm/boot/dts/imx53-tx53-x13x.dts
+++ b/arch/arm/boot/dts/imx53-tx53-x13x.dts
@@ -1,6 +1,42 @@
1/* 1/*
2 * Copyright 2013 Lothar Waßmann <LW@KARO-electronics.de> 2 * Copyright 2013-2017 Lothar Waßmann <LW@KARO-electronics.de>
3 * 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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
39 * OTHER DEALINGS IN THE SOFTWARE.
4 * The code contained herein is licensed under the GNU General Public 40 * The code contained herein is licensed under the GNU General Public
5 * License. You may obtain a copy of the GNU General Public License 41 * License. You may obtain a copy of the GNU General Public License
6 * Version 2 at the following locations: 42 * Version 2 at the following locations:
@@ -63,82 +99,46 @@
63 default-brightness-level = <50>; 99 default-brightness-level = <50>;
64 }; 100 };
65 101
66 regulators { 102 reg_lcd_pwr0: regulator-lvds0-pwr {
67 reg_lcd_pwr0: regulator@5 { 103 compatible = "regulator-fixed";
68 compatible = "regulator-fixed"; 104 regulator-name = "LVDS0 POWER";
69 reg = <5>; 105 regulator-min-microvolt = <3300000>;
70 regulator-name = "LVDS0 POWER"; 106 regulator-max-microvolt = <3300000>;
71 regulator-min-microvolt = <3300000>; 107 gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>;
72 regulator-max-microvolt = <3300000>; 108 enable-active-high;
73 gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>; 109 regulator-boot-on;
74 enable-active-high;
75 regulator-boot-on;
76 };
77
78 reg_lcd_pwr1: regulator@6 {
79 compatible = "regulator-fixed";
80 reg = <6>;
81 regulator-name = "LVDS1 POWER";
82 regulator-min-microvolt = <3300000>;
83 regulator-max-microvolt = <3300000>;
84 gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>;
85 enable-active-high;
86 regulator-boot-on;
87 };
88 }; 110 };
89};
90 111
91&i2c2 { 112 reg_lcd_pwr1: regulator-lvds1-pwr {
92 pinctrl-names = "default"; 113 compatible = "regulator-fixed";
93 pinctrl-0 = <&pinctrl_i2c2>; 114 regulator-name = "LVDS1 POWER";
94 status = "okay"; 115 regulator-min-microvolt = <3300000>;
95 116 regulator-max-microvolt = <3300000>;
96 touchscreen2: eeti@04 { 117 gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>;
97 compatible = "eeti,egalax_ts"; 118 enable-active-high;
98 reg = <0x04>; 119 regulator-boot-on;
99 pinctrl-names = "default";
100 pinctrl-0 = <&pinctrl_eeti2>;
101 interrupt-parent = <&gpio3>;
102 interrupts = <23 0>;
103 wakeup-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
104 wakeup-source;
105 }; 120 };
106}; 121};
107 122
108&i2c3 { 123&i2c3 {
109 pinctrl-names = "default"; 124 pinctrl-names = "default", "gpio";
110 pinctrl-0 = <&pinctrl_i2c3>; 125 pinctrl-0 = <&pinctrl_i2c3>;
126 pinctrl-1 = <&pinctrl_i2c3_gpio>;
127 scl-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
128 sda-gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
111 status = "okay"; 129 status = "okay";
112 130
113 sgtl5000: codec@0a { 131 sgtl5000: codec@a {
114 compatible = "fsl,sgtl5000"; 132 compatible = "fsl,sgtl5000";
115 reg = <0x0a>; 133 reg = <0x0a>;
116 VDDA-supply = <&reg_2v5>; 134 VDDA-supply = <&reg_2v5>;
117 VDDIO-supply = <&reg_3v3>; 135 VDDIO-supply = <&reg_3v3>;
118 clocks = <&mclk>; 136 clocks = <&mclk>;
119 }; 137 };
120
121 touchscreen1: eeti@04 {
122 compatible = "eeti,egalax_ts";
123 reg = <0x04>;
124 pinctrl-names = "default";
125 pinctrl-0 = <&pinctrl_eeti1>;
126 interrupt-parent = <&gpio3>;
127 interrupts = <22 0>;
128 wakeup-gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>;
129 wakeup-source;
130 };
131}; 138};
132 139
133&iomuxc { 140&iomuxc {
134 imx53-tx53-x13x { 141 imx53-tx53-x13x {
135 pinctrl_i2c2: i2c2-grp1 {
136 fsl,pins = <
137 MX53_PAD_KEY_ROW3__I2C2_SDA 0xc0000000
138 MX53_PAD_KEY_COL3__I2C2_SCL 0xc0000000
139 >;
140 };
141
142 pinctrl_lvds0: lvds0grp { 142 pinctrl_lvds0: lvds0grp {
143 fsl,pins = < 143 fsl,pins = <
144 MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3 0x80000000 144 MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3 0x80000000
diff --git a/arch/arm/boot/dts/imx53-tx53.dtsi b/arch/arm/boot/dts/imx53-tx53.dtsi
index 7807c1fa1101..71b58b6933e1 100644
--- a/arch/arm/boot/dts/imx53-tx53.dtsi
+++ b/arch/arm/boot/dts/imx53-tx53.dtsi
@@ -1,15 +1,45 @@
1/* 1/*
2 * Copyright 2012 <LW@KARO-electronics.de> 2 * Copyright 2012-2017 <LW@KARO-electronics.de>
3 * based on imx53-qsb.dts 3 * based on imx53-qsb.dts
4 * Copyright 2011 Freescale Semiconductor, Inc. 4 * Copyright 2011 Freescale Semiconductor, Inc.
5 * Copyright 2011 Linaro Ltd. 5 * Copyright 2011 Linaro Ltd.
6 * 6 *
7 * The code contained herein is licensed under the GNU General Public 7 * This file is dual-licensed: you can use it either under the terms
8 * License. You may obtain a copy of the GNU General Public License 8 * of the GPL or the X11 license, at your option. Note that this dual
9 * Version 2 at the following locations: 9 * licensing only applies to this file, and not this project as a
10 * whole.
10 * 11 *
11 * http://www.opensource.org/licenses/gpl-license.html 12 * a) This file is free software; you can redistribute it and/or
12 * http://www.gnu.org/copyleft/gpl.html 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 "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.
13 */ 43 */
14 44
15#include "imx53.dtsi" 45#include "imx53.dtsi"
@@ -66,61 +96,50 @@
66 }; 96 };
67 }; 97 };
68 98
69 regulators { 99 reg_2v5: regulator-2v5 {
70 compatible = "simple-bus"; 100 compatible = "regulator-fixed";
71 #address-cells = <1>; 101 regulator-name = "2V5";
72 #size-cells = <0>; 102 regulator-min-microvolt = <2500000>;
73 103 regulator-max-microvolt = <2500000>;
74 reg_2v5: regulator@0 { 104 };
75 compatible = "regulator-fixed";
76 reg = <0>;
77 regulator-name = "2V5";
78 regulator-min-microvolt = <2500000>;
79 regulator-max-microvolt = <2500000>;
80 };
81 105
82 reg_3v3: regulator@1 { 106 reg_3v3: regulator-3v3 {
83 compatible = "regulator-fixed"; 107 compatible = "regulator-fixed";
84 reg = <1>; 108 regulator-name = "3V3";
85 regulator-name = "3V3"; 109 regulator-min-microvolt = <3300000>;
86 regulator-min-microvolt = <3300000>; 110 regulator-max-microvolt = <3300000>;
87 regulator-max-microvolt = <3300000>; 111 };
88 };
89 112
90 reg_can_xcvr: regulator@2 { 113 reg_can_xcvr: regulator-can-xcvr {
91 compatible = "regulator-fixed"; 114 compatible = "regulator-fixed";
92 reg = <2>; 115 regulator-name = "CAN XCVR";
93 regulator-name = "CAN XCVR"; 116 regulator-min-microvolt = <3300000>;
94 regulator-min-microvolt = <3300000>; 117 regulator-max-microvolt = <3300000>;
95 regulator-max-microvolt = <3300000>; 118 pinctrl-names = "default";
96 pinctrl-names = "default"; 119 pinctrl-0 = <&pinctrl_can_xcvr>;
97 pinctrl-0 = <&pinctrl_can_xcvr>; 120 gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
98 gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>; 121 };
99 };
100 122
101 reg_usbh1_vbus: regulator@3 { 123 reg_usbh1_vbus: regulator-usbh1-vbus {
102 compatible = "regulator-fixed"; 124 compatible = "regulator-fixed";
103 reg = <3>; 125 regulator-name = "usbh1_vbus";
104 regulator-name = "usbh1_vbus"; 126 regulator-min-microvolt = <5000000>;
105 regulator-min-microvolt = <5000000>; 127 regulator-max-microvolt = <5000000>;
106 regulator-max-microvolt = <5000000>; 128 pinctrl-names = "default";
107 pinctrl-names = "default"; 129 pinctrl-0 = <&pinctrl_usbh1_vbus>;
108 pinctrl-0 = <&pinctrl_usbh1_vbus>; 130 gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>;
109 gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>; 131 enable-active-high;
110 enable-active-high; 132 };
111 };
112 133
113 reg_usbotg_vbus: regulator@4 { 134 reg_usbotg_vbus: regulator-usbotg-vbus {
114 compatible = "regulator-fixed"; 135 compatible = "regulator-fixed";
115 reg = <4>; 136 regulator-name = "usbotg_vbus";
116 regulator-name = "usbotg_vbus"; 137 regulator-min-microvolt = <5000000>;
117 regulator-min-microvolt = <5000000>; 138 regulator-max-microvolt = <5000000>;
118 regulator-max-microvolt = <5000000>; 139 pinctrl-names = "default";
119 pinctrl-names = "default"; 140 pinctrl-0 = <&pinctrl_usbotg_vbus>;
120 pinctrl-0 = <&pinctrl_usbotg_vbus>; 141 gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>;
121 gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>; 142 enable-active-high;
122 enable-active-high;
123 };
124 }; 143 };
125 144
126 sound { 145 sound {
@@ -208,14 +227,17 @@
208 227
209 phy0: ethernet-phy@0 { 228 phy0: ethernet-phy@0 {
210 interrupt-parent = <&gpio2>; 229 interrupt-parent = <&gpio2>;
211 interrupts = <4>; 230 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
212 device_type = "ethernet-phy"; 231 device_type = "ethernet-phy";
213 }; 232 };
214}; 233};
215 234
216&i2c1 { 235&i2c1 {
217 pinctrl-names = "default"; 236 pinctrl-names = "default", "gpio";
218 pinctrl-0 = <&pinctrl_i2c1>; 237 pinctrl-0 = <&pinctrl_i2c1>;
238 pinctrl-0 = <&pinctrl_i2c1_gpio>;
239 scl-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
240 sda-gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
219 clock-frequency = <400000>; 241 clock-frequency = <400000>;
220 status = "okay"; 242 status = "okay";
221 243
@@ -225,7 +247,9 @@
225 pinctrl-names = "default"; 247 pinctrl-names = "default";
226 pinctrl-0 = <&pinctrl_ds1339>; 248 pinctrl-0 = <&pinctrl_ds1339>;
227 interrupt-parent = <&gpio4>; 249 interrupt-parent = <&gpio4>;
228 interrupts = <20 0>; 250 interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
251 trickle-resistor-ohms = <250>;
252 trickle-diode-disable;
229 }; 253 };
230}; 254};
231 255
@@ -368,15 +392,29 @@
368 392
369 pinctrl_i2c1: i2c1grp { 393 pinctrl_i2c1: i2c1grp {
370 fsl,pins = < 394 fsl,pins = <
371 MX53_PAD_EIM_D21__I2C1_SCL 0xc0000000 395 MX53_PAD_EIM_D21__I2C1_SCL 0x400001e4
372 MX53_PAD_EIM_D28__I2C1_SDA 0xc0000000 396 MX53_PAD_EIM_D28__I2C1_SDA 0x400001e4
397 >;
398 };
399
400 pinctrl_i2c1_gpio: i2c1-gpiogrp {
401 fsl,pins = <
402 MX53_PAD_EIM_D21__GPIO3_21 0x400001e6
403 MX53_PAD_EIM_D28__GPIO3_28 0x400001e6
373 >; 404 >;
374 }; 405 };
375 406
376 pinctrl_i2c3: i2c3grp { 407 pinctrl_i2c3: i2c3grp {
377 fsl,pins = < 408 fsl,pins = <
378 MX53_PAD_GPIO_3__I2C3_SCL 0xc0000000 409 MX53_PAD_GPIO_3__I2C3_SCL 0x400001e4
379 MX53_PAD_GPIO_6__I2C3_SDA 0xc0000000 410 MX53_PAD_GPIO_6__I2C3_SDA 0x400001e4
411 >;
412 };
413
414 pinctrl_i2c3_gpio: i2c3-gpiogrp {
415 fsl,pins = <
416 MX53_PAD_GPIO_3__GPIO1_3 0x400001e6
417 MX53_PAD_GPIO_6__GPIO1_6 0x400001e6
380 >; 418 >;
381 }; 419 };
382 420
diff --git a/arch/arm/boot/dts/imx53-voipac-bsb.dts b/arch/arm/boot/dts/imx53-voipac-bsb.dts
index fc51b87ad208..25c78f19826c 100644
--- a/arch/arm/boot/dts/imx53-voipac-bsb.dts
+++ b/arch/arm/boot/dts/imx53-voipac-bsb.dts
@@ -130,7 +130,7 @@
130 pinctrl-0 = <&pinctrl_i2c3>; 130 pinctrl-0 = <&pinctrl_i2c3>;
131 status = "okay"; 131 status = "okay";
132 132
133 sgtl5000: codec@0a { 133 sgtl5000: codec@a {
134 compatible = "fsl,sgtl5000"; 134 compatible = "fsl,sgtl5000";
135 reg = <0x0a>; 135 reg = <0x0a>;
136 VDDA-supply = <&reg_3p3v>; 136 VDDA-supply = <&reg_3p3v>;
diff --git a/arch/arm/boot/dts/imx53.dtsi b/arch/arm/boot/dts/imx53.dtsi
index 8bf0d89cdd35..589a67c5f796 100644
--- a/arch/arm/boot/dts/imx53.dtsi
+++ b/arch/arm/boot/dts/imx53.dtsi
@@ -80,7 +80,7 @@
80 ports = <&ipu_di0>, <&ipu_di1>; 80 ports = <&ipu_di0>, <&ipu_di1>;
81 }; 81 };
82 82
83 tzic: tz-interrupt-controller@0fffc000 { 83 tzic: tz-interrupt-controller@fffc000 {
84 compatible = "fsl,imx53-tzic", "fsl,tzic"; 84 compatible = "fsl,imx53-tzic", "fsl,tzic";
85 interrupt-controller; 85 interrupt-controller;
86 #interrupt-cells = <1>; 86 #interrupt-cells = <1>;
@@ -299,14 +299,14 @@
299 reg = <0x53f00000 0x60>; 299 reg = <0x53f00000 0x60>;
300 }; 300 };
301 301
302 usbphy0: usbphy@0 { 302 usbphy0: usbphy-0 {
303 compatible = "usb-nop-xceiv"; 303 compatible = "usb-nop-xceiv";
304 clocks = <&clks IMX5_CLK_USB_PHY1_GATE>; 304 clocks = <&clks IMX5_CLK_USB_PHY1_GATE>;
305 clock-names = "main_clk"; 305 clock-names = "main_clk";
306 status = "okay"; 306 status = "okay";
307 }; 307 };
308 308
309 usbphy1: usbphy@1 { 309 usbphy1: usbphy-1 {
310 compatible = "usb-nop-xceiv"; 310 compatible = "usb-nop-xceiv";
311 clocks = <&clks IMX5_CLK_USB_PHY2_GATE>; 311 clocks = <&clks IMX5_CLK_USB_PHY2_GATE>;
312 clock-names = "main_clk"; 312 clock-names = "main_clk";
diff --git a/arch/arm/boot/dts/imx6dl-aristainetos2_4.dts b/arch/arm/boot/dts/imx6dl-aristainetos2_4.dts
index 0677625463d6..5f0d196495d0 100644
--- a/arch/arm/boot/dts/imx6dl-aristainetos2_4.dts
+++ b/arch/arm/boot/dts/imx6dl-aristainetos2_4.dts
@@ -52,7 +52,7 @@
52 reg = <0x10000000 0x40000000>; 52 reg = <0x10000000 0x40000000>;
53 }; 53 };
54 54
55 display0: display@di0 { 55 display0: disp0 {
56 #address-cells = <1>; 56 #address-cells = <1>;
57 #size-cells = <0>; 57 #size-cells = <0>;
58 compatible = "fsl,imx-parallel-display"; 58 compatible = "fsl,imx-parallel-display";
diff --git a/arch/arm/boot/dts/imx6dl-aristainetos_4.dts b/arch/arm/boot/dts/imx6dl-aristainetos_4.dts
index 32a812b1839e..cc418cecabdb 100644
--- a/arch/arm/boot/dts/imx6dl-aristainetos_4.dts
+++ b/arch/arm/boot/dts/imx6dl-aristainetos_4.dts
@@ -32,7 +32,7 @@
32 }; 32 };
33 33
34 soc { 34 soc {
35 display0: display@di0 { 35 display0: disp0 {
36 compatible = "fsl,imx-parallel-display"; 36 compatible = "fsl,imx-parallel-display";
37 interface-pix-fmt = "rgb24"; 37 interface-pix-fmt = "rgb24";
38 pinctrl-names = "default"; 38 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/imx6dl-aristainetos_7.dts b/arch/arm/boot/dts/imx6dl-aristainetos_7.dts
index 15203f0e9725..126ff964eded 100644
--- a/arch/arm/boot/dts/imx6dl-aristainetos_7.dts
+++ b/arch/arm/boot/dts/imx6dl-aristainetos_7.dts
@@ -21,7 +21,7 @@
21 }; 21 };
22 22
23 soc { 23 soc {
24 display0: display@di0 { 24 display0: disp0 {
25 compatible = "fsl,imx-parallel-display"; 25 compatible = "fsl,imx-parallel-display";
26 interface-pix-fmt = "rgb24"; 26 interface-pix-fmt = "rgb24";
27 pinctrl-names = "default"; 27 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
index 26541538562c..5705ebee0595 100644
--- a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
+++ b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
@@ -88,7 +88,7 @@
88 }; 88 };
89 }; 89 };
90 90
91 lcd_display: display@di0 { 91 lcd_display: disp0 {
92 compatible = "fsl,imx-parallel-display"; 92 compatible = "fsl,imx-parallel-display";
93 #address-cells = <1>; 93 #address-cells = <1>;
94 #size-cells = <0>; 94 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/imx6dl-icore.dts b/arch/arm/boot/dts/imx6dl-icore.dts
index 6de83c72bd72..971f9fc39c66 100644
--- a/arch/arm/boot/dts/imx6dl-icore.dts
+++ b/arch/arm/boot/dts/imx6dl-icore.dts
@@ -57,3 +57,12 @@
57&can2 { 57&can2 {
58 status = "okay"; 58 status = "okay";
59}; 59};
60
61&i2c1 {
62 max11801: touchscreen@48 {
63 compatible = "maxim,max11801";
64 reg = <0x48>;
65 interrupt-parent = <&gpio3>;
66 interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
67 };
68};
diff --git a/arch/arm/boot/dts/imx6dl-riotboard.dts b/arch/arm/boot/dts/imx6dl-riotboard.dts
index 275c6c05219d..23e108204e1e 100644
--- a/arch/arm/boot/dts/imx6dl-riotboard.dts
+++ b/arch/arm/boot/dts/imx6dl-riotboard.dts
@@ -157,7 +157,7 @@
157 pinctrl-0 = <&pinctrl_i2c1>; 157 pinctrl-0 = <&pinctrl_i2c1>;
158 status = "okay"; 158 status = "okay";
159 159
160 codec: sgtl5000@0a { 160 codec: sgtl5000@a {
161 compatible = "fsl,sgtl5000"; 161 compatible = "fsl,sgtl5000";
162 reg = <0x0a>; 162 reg = <0x0a>;
163 clocks = <&clks IMX6QDL_CLK_CKO>; 163 clocks = <&clks IMX6QDL_CLK_CKO>;
@@ -165,7 +165,7 @@
165 VDDIO-supply = <&reg_3p3v>; 165 VDDIO-supply = <&reg_3p3v>;
166 }; 166 };
167 167
168 pmic: pf0100@08 { 168 pmic: pf0100@8 {
169 compatible = "fsl,pfuze100"; 169 compatible = "fsl,pfuze100";
170 reg = <0x08>; 170 reg = <0x08>;
171 interrupt-parent = <&gpio5>; 171 interrupt-parent = <&gpio5>;
diff --git a/arch/arm/boot/dts/imx6dl-tx6dl-comtft.dts b/arch/arm/boot/dts/imx6dl-tx6dl-comtft.dts
index aac42ac465b6..51a9bb9d6bc2 100644
--- a/arch/arm/boot/dts/imx6dl-tx6dl-comtft.dts
+++ b/arch/arm/boot/dts/imx6dl-tx6dl-comtft.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright 2014-2016 Lothar Waßmann <LW@KARO-electronics.de> 2 * Copyright 2014-2017 Lothar Waßmann <LW@KARO-electronics.de>
3 * 3 *
4 * This file is dual-licensed: you can use it either under the terms 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 5 * of the GPL or the X11 license, at your option. Note that this dual
@@ -42,70 +42,16 @@
42/dts-v1/; 42/dts-v1/;
43#include "imx6dl.dtsi" 43#include "imx6dl.dtsi"
44#include "imx6qdl-tx6.dtsi" 44#include "imx6qdl-tx6.dtsi"
45#include "imx6qdl-tx6-lcd.dtsi"
45 46
46/ { 47/ {
47 model = "Ka-Ro electronics TX6DL Module on CoMpact TFT"; 48 model = "Ka-Ro electronics TX6DL Module on CoMpact TFT";
48 compatible = "karo,imx6dl-tx6dl", "fsl,imx6dl"; 49 compatible = "karo,imx6dl-tx6dl", "fsl,imx6dl";
50};
49 51
50 aliases { 52&backlight {
51 display = &display; 53 pwms = <&pwm2 0 500000 0>;
52 }; 54 /delete-property/ turn-on-delay-ms;
53
54 backlight: backlight {
55 compatible = "pwm-backlight";
56 pwms = <&pwm2 0 500000 0>;
57 power-supply = <&reg_3v3>;
58 /*
59 * a poor man's way to create a 1:1 relationship between
60 * the PWM value and the actual duty cycle
61 */
62 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
63 10 11 12 13 14 15 16 17 18 19
64 20 21 22 23 24 25 26 27 28 29
65 30 31 32 33 34 35 36 37 38 39
66 40 41 42 43 44 45 46 47 48 49
67 50 51 52 53 54 55 56 57 58 59
68 60 61 62 63 64 65 66 67 68 69
69 70 71 72 73 74 75 76 77 78 79
70 80 81 82 83 84 85 86 87 88 89
71 90 91 92 93 94 95 96 97 98 99
72 100>;
73 default-brightness-level = <50>;
74 };
75
76 display: display@di0 {
77 compatible = "fsl,imx-parallel-display";
78 interface-pix-fmt = "rgb24";
79 pinctrl-names = "default";
80 pinctrl-0 = <&pinctrl_disp0_1>;
81 status = "okay";
82
83 port {
84 display0_in: endpoint {
85 remote-endpoint = <&ipu1_di0_disp0>;
86 };
87 };
88
89 display-timings {
90 native-mode = <&ET070001DM6>;
91
92 ET070001DM6: CoMTFT { /* same as ET0700 but with inverted pixel clock */
93 clock-frequency = <33264000>;
94 hactive = <800>;
95 vactive = <480>;
96 hback-porch = <88>;
97 hsync-len = <128>;
98 hfront-porch = <40>;
99 vback-porch = <33>;
100 vsync-len = <2>;
101 vfront-porch = <10>;
102 hsync-active = <0>;
103 vsync-active = <0>;
104 de-active = <1>;
105 pixelclk-active = <1>;
106 };
107 };
108 };
109}; 55};
110 56
111&can1 { 57&can1 {
@@ -116,14 +62,14 @@
116 xceiver-supply = <&reg_3v3>; 62 xceiver-supply = <&reg_3v3>;
117}; 63};
118 64
119&ipu1_di0_disp0 {
120 remote-endpoint = <&display0_in>;
121};
122
123&kpp { 65&kpp {
124 status = "disabled"; 66 status = "disabled";
125}; 67};
126 68
69&lcd_panel {
70 compatible = "edt,etm0700g0edh6";
71};
72
127&reg_can_xcvr { 73&reg_can_xcvr {
128 status = "disabled"; 74 status = "disabled";
129}; 75};
diff --git a/arch/arm/boot/dts/imx6dl-tx6s-8034-mb7.dts b/arch/arm/boot/dts/imx6dl-tx6s-8034-mb7.dts
new file mode 100644
index 000000000000..fc23b4d291a1
--- /dev/null
+++ b/arch/arm/boot/dts/imx6dl-tx6s-8034-mb7.dts
@@ -0,0 +1,48 @@
1/*
2 * Copyright 2017 Lothar Waßmann <LW@KARO-electronics.de>
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/dts-v1/;
43#include "imx6dl-tx6s-8034.dts"
44#include "imx6qdl-tx6-mb7.dtsi"
45
46/ {
47 model = "Ka-Ro electronics TX6S-8034 Module on MB7 baseboard";
48};
diff --git a/arch/arm/boot/dts/imx6dl-tx6s-8034.dts b/arch/arm/boot/dts/imx6dl-tx6s-8034.dts
index ff8f7b1c4282..9eb2ef17339c 100644
--- a/arch/arm/boot/dts/imx6dl-tx6s-8034.dts
+++ b/arch/arm/boot/dts/imx6dl-tx6s-8034.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright 2015-2016 Lothar Waßmann <LW@KARO-electronics.de> 2 * Copyright 2015-2017 Lothar Waßmann <LW@KARO-electronics.de>
3 * 3 *
4 * This file is dual-licensed: you can use it either under the terms 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 5 * of the GPL or the X11 license, at your option. Note that this dual
@@ -42,174 +42,15 @@
42/dts-v1/; 42/dts-v1/;
43#include "imx6dl.dtsi" 43#include "imx6dl.dtsi"
44#include "imx6qdl-tx6.dtsi" 44#include "imx6qdl-tx6.dtsi"
45#include "imx6qdl-tx6-lcd.dtsi"
45 46
46/ { 47/ {
47 model = "Ka-Ro electronics TX6S-8034 Module"; 48 model = "Ka-Ro electronics TX6S-8034 Module";
48 compatible = "karo,imx6dl-tx6dl", "fsl,imx6dl"; 49 compatible = "karo,imx6dl-tx6dl", "fsl,imx6dl";
49 50
50 aliases {
51 display = &display;
52 ipu1 = &ipu1;
53 };
54
55 cpus { 51 cpus {
56 /delete-node/ cpu@1; 52 /delete-node/ cpu@1;
57 }; 53 };
58
59 backlight: backlight {
60 compatible = "pwm-backlight";
61 pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
62 pinctrl-names = "default";
63 pinctrl-0 = <&pinctrl_lcd0_pwr>;
64 enable-gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
65 power-supply = <&reg_lcd1_pwr>;
66 /*
67 * a poor man's way to create a 1:1 relationship between
68 * the PWM value and the actual duty cycle
69 */
70 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
71 10 11 12 13 14 15 16 17 18 19
72 20 21 22 23 24 25 26 27 28 29
73 30 31 32 33 34 35 36 37 38 39
74 40 41 42 43 44 45 46 47 48 49
75 50 51 52 53 54 55 56 57 58 59
76 60 61 62 63 64 65 66 67 68 69
77 70 71 72 73 74 75 76 77 78 79
78 80 81 82 83 84 85 86 87 88 89
79 90 91 92 93 94 95 96 97 98 99
80 100>;
81 default-brightness-level = <50>;
82 };
83
84 display: display@di0 {
85 compatible = "fsl,imx-parallel-display";
86 pinctrl-names = "default";
87 pinctrl-0 = <&pinctrl_disp0_2>;
88 interface-pix-fmt = "rgb24";
89 status = "okay";
90
91 port {
92 display0_in: endpoint {
93 remote-endpoint = <&ipu1_di0_disp0>;
94 };
95 };
96
97 display-timings {
98 native-mode = <&vga>;
99
100 vga: VGA {
101 clock-frequency = <25200000>;
102 hactive = <640>;
103 vactive = <480>;
104 hback-porch = <48>;
105 hsync-len = <96>;
106 hfront-porch = <16>;
107 vback-porch = <31>;
108 vsync-len = <2>;
109 vfront-porch = <12>;
110 hsync-active = <0>;
111 vsync-active = <0>;
112 de-active = <1>;
113 pixelclk-active = <0>;
114 };
115
116 ETV570 {
117 clock-frequency = <25200000>;
118 hactive = <640>;
119 vactive = <480>;
120 hback-porch = <114>;
121 hsync-len = <30>;
122 hfront-porch = <16>;
123 vback-porch = <32>;
124 vsync-len = <3>;
125 vfront-porch = <10>;
126 hsync-active = <0>;
127 vsync-active = <0>;
128 de-active = <1>;
129 pixelclk-active = <0>;
130 };
131
132 ET0350 {
133 clock-frequency = <6413760>;
134 hactive = <320>;
135 vactive = <240>;
136 hback-porch = <34>;
137 hsync-len = <34>;
138 hfront-porch = <20>;
139 vback-porch = <15>;
140 vsync-len = <3>;
141 vfront-porch = <4>;
142 hsync-active = <0>;
143 vsync-active = <0>;
144 de-active = <1>;
145 pixelclk-active = <0>;
146 };
147
148 ET0430 {
149 clock-frequency = <9009000>;
150 hactive = <480>;
151 vactive = <272>;
152 hback-porch = <2>;
153 hsync-len = <41>;
154 hfront-porch = <2>;
155 vback-porch = <2>;
156 vsync-len = <10>;
157 vfront-porch = <2>;
158 hsync-active = <0>;
159 vsync-active = <0>;
160 de-active = <1>;
161 pixelclk-active = <1>;
162 };
163
164 ET0500 {
165 clock-frequency = <33264000>;
166 hactive = <800>;
167 vactive = <480>;
168 hback-porch = <88>;
169 hsync-len = <128>;
170 hfront-porch = <40>;
171 vback-porch = <33>;
172 vsync-len = <2>;
173 vfront-porch = <10>;
174 hsync-active = <0>;
175 vsync-active = <0>;
176 de-active = <1>;
177 pixelclk-active = <0>;
178 };
179
180 ET0700 { /* same as ET0500 */
181 clock-frequency = <33264000>;
182 hactive = <800>;
183 vactive = <480>;
184 hback-porch = <88>;
185 hsync-len = <128>;
186 hfront-porch = <40>;
187 vback-porch = <33>;
188 vsync-len = <2>;
189 vfront-porch = <10>;
190 hsync-active = <0>;
191 vsync-active = <0>;
192 de-active = <1>;
193 pixelclk-active = <0>;
194 };
195
196 ETQ570 {
197 clock-frequency = <6596040>;
198 hactive = <320>;
199 vactive = <240>;
200 hback-porch = <38>;
201 hsync-len = <30>;
202 hfront-porch = <30>;
203 vback-porch = <16>;
204 vsync-len = <3>;
205 vfront-porch = <4>;
206 hsync-active = <0>;
207 vsync-active = <0>;
208 de-active = <1>;
209 pixelclk-active = <0>;
210 };
211 };
212 };
213}; 54};
214 55
215&ds1339 { 56&ds1339 {
@@ -227,11 +68,3 @@
227 MX6QDL_PAD_SD3_CMD__GPIO7_IO02 0x170b0 /* SD1 CD */ 68 MX6QDL_PAD_SD3_CMD__GPIO7_IO02 0x170b0 /* SD1 CD */
228 >; 69 >;
229}; 70};
230
231&ipu1_di0_disp0 {
232 remote-endpoint = <&display0_in>;
233};
234
235&reg_lcd0_pwr {
236 status = "disabled";
237};
diff --git a/arch/arm/boot/dts/imx6dl-tx6s-8035-mb7.dts b/arch/arm/boot/dts/imx6dl-tx6s-8035-mb7.dts
new file mode 100644
index 000000000000..4101c6597721
--- /dev/null
+++ b/arch/arm/boot/dts/imx6dl-tx6s-8035-mb7.dts
@@ -0,0 +1,48 @@
1/*
2 * Copyright 2017 Lothar Waßmann <LW@KARO-electronics.de>
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/dts-v1/;
43#include "imx6dl-tx6s-8035.dts"
44#include "imx6qdl-tx6-mb7.dtsi"
45
46/ {
47 model = "Ka-Ro electronics TX6U-8035 Module on MB7 baseboard";
48};
diff --git a/arch/arm/boot/dts/imx6dl-tx6s-8035.dts b/arch/arm/boot/dts/imx6dl-tx6s-8035.dts
index f988950e9443..a5532ecc18c5 100644
--- a/arch/arm/boot/dts/imx6dl-tx6s-8035.dts
+++ b/arch/arm/boot/dts/imx6dl-tx6s-8035.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright 2015-2016 Lothar Waßmann <LW@KARO-electronics.de> 2 * Copyright 2015-2017 Lothar Waßmann <LW@KARO-electronics.de>
3 * 3 *
4 * This file is dual-licensed: you can use it either under the terms 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 5 * of the GPL or the X11 license, at your option. Note that this dual
@@ -42,174 +42,15 @@
42/dts-v1/; 42/dts-v1/;
43#include "imx6dl.dtsi" 43#include "imx6dl.dtsi"
44#include "imx6qdl-tx6.dtsi" 44#include "imx6qdl-tx6.dtsi"
45#include "imx6qdl-tx6-lcd.dtsi"
45 46
46/ { 47/ {
47 model = "Ka-Ro electronics TX6S-8035 Module"; 48 model = "Ka-Ro electronics TX6S-8035 Module";
48 compatible = "karo,imx6dl-tx6dl", "fsl,imx6dl"; 49 compatible = "karo,imx6dl-tx6dl", "fsl,imx6dl";
49 50
50 aliases {
51 display = &display;
52 ipu1 = &ipu1;
53 };
54
55 cpus { 51 cpus {
56 /delete-node/ cpu@1; 52 /delete-node/ cpu@1;
57 }; 53 };
58
59 backlight: backlight {
60 compatible = "pwm-backlight";
61 pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
62 pinctrl-names = "default";
63 pinctrl-0 = <&pinctrl_lcd0_pwr>;
64 enable-gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
65 power-supply = <&reg_lcd1_pwr>;
66 /*
67 * a poor man's way to create a 1:1 relationship between
68 * the PWM value and the actual duty cycle
69 */
70 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
71 10 11 12 13 14 15 16 17 18 19
72 20 21 22 23 24 25 26 27 28 29
73 30 31 32 33 34 35 36 37 38 39
74 40 41 42 43 44 45 46 47 48 49
75 50 51 52 53 54 55 56 57 58 59
76 60 61 62 63 64 65 66 67 68 69
77 70 71 72 73 74 75 76 77 78 79
78 80 81 82 83 84 85 86 87 88 89
79 90 91 92 93 94 95 96 97 98 99
80 100>;
81 default-brightness-level = <50>;
82 };
83
84 display: display@di0 {
85 compatible = "fsl,imx-parallel-display";
86 pinctrl-names = "default";
87 pinctrl-0 = <&pinctrl_disp0_2>;
88 interface-pix-fmt = "rgb24";
89 status = "okay";
90
91 port {
92 display0_in: endpoint {
93 remote-endpoint = <&ipu1_di0_disp0>;
94 };
95 };
96
97 display-timings {
98 native-mode = <&vga>;
99
100 vga: VGA {
101 clock-frequency = <25200000>;
102 hactive = <640>;
103 vactive = <480>;
104 hback-porch = <48>;
105 hsync-len = <96>;
106 hfront-porch = <16>;
107 vback-porch = <31>;
108 vsync-len = <2>;
109 vfront-porch = <12>;
110 hsync-active = <0>;
111 vsync-active = <0>;
112 de-active = <1>;
113 pixelclk-active = <0>;
114 };
115
116 ETV570 {
117 clock-frequency = <25200000>;
118 hactive = <640>;
119 vactive = <480>;
120 hback-porch = <114>;
121 hsync-len = <30>;
122 hfront-porch = <16>;
123 vback-porch = <32>;
124 vsync-len = <3>;
125 vfront-porch = <10>;
126 hsync-active = <0>;
127 vsync-active = <0>;
128 de-active = <1>;
129 pixelclk-active = <0>;
130 };
131
132 ET0350 {
133 clock-frequency = <6413760>;
134 hactive = <320>;
135 vactive = <240>;
136 hback-porch = <34>;
137 hsync-len = <34>;
138 hfront-porch = <20>;
139 vback-porch = <15>;
140 vsync-len = <3>;
141 vfront-porch = <4>;
142 hsync-active = <0>;
143 vsync-active = <0>;
144 de-active = <1>;
145 pixelclk-active = <0>;
146 };
147
148 ET0430 {
149 clock-frequency = <9009000>;
150 hactive = <480>;
151 vactive = <272>;
152 hback-porch = <2>;
153 hsync-len = <41>;
154 hfront-porch = <2>;
155 vback-porch = <2>;
156 vsync-len = <10>;
157 vfront-porch = <2>;
158 hsync-active = <0>;
159 vsync-active = <0>;
160 de-active = <1>;
161 pixelclk-active = <1>;
162 };
163
164 ET0500 {
165 clock-frequency = <33264000>;
166 hactive = <800>;
167 vactive = <480>;
168 hback-porch = <88>;
169 hsync-len = <128>;
170 hfront-porch = <40>;
171 vback-porch = <33>;
172 vsync-len = <2>;
173 vfront-porch = <10>;
174 hsync-active = <0>;
175 vsync-active = <0>;
176 de-active = <1>;
177 pixelclk-active = <0>;
178 };
179
180 ET0700 { /* same as ET0500 */
181 clock-frequency = <33264000>;
182 hactive = <800>;
183 vactive = <480>;
184 hback-porch = <88>;
185 hsync-len = <128>;
186 hfront-porch = <40>;
187 vback-porch = <33>;
188 vsync-len = <2>;
189 vfront-porch = <10>;
190 hsync-active = <0>;
191 vsync-active = <0>;
192 de-active = <1>;
193 pixelclk-active = <0>;
194 };
195
196 ETQ570 {
197 clock-frequency = <6596040>;
198 hactive = <320>;
199 vactive = <240>;
200 hback-porch = <38>;
201 hsync-len = <30>;
202 hfront-porch = <30>;
203 vback-porch = <16>;
204 vsync-len = <3>;
205 vfront-porch = <4>;
206 hsync-active = <0>;
207 vsync-active = <0>;
208 de-active = <1>;
209 pixelclk-active = <0>;
210 };
211 };
212 };
213}; 54};
214 55
215&ds1339 { 56&ds1339 {
@@ -220,14 +61,6 @@
220 status = "disabled"; 61 status = "disabled";
221}; 62};
222 63
223&ipu1_di0_disp0 {
224 remote-endpoint = <&display0_in>;
225};
226
227&reg_lcd0_pwr {
228 status = "disabled";
229};
230
231&usdhc4 { 64&usdhc4 {
232 pinctrl-names = "default"; 65 pinctrl-names = "default";
233 pinctrl-0 = <&pinctrl_usdhc4>; 66 pinctrl-0 = <&pinctrl_usdhc4>;
diff --git a/arch/arm/boot/dts/imx6dl-tx6u-801x.dts b/arch/arm/boot/dts/imx6dl-tx6u-801x.dts
index d1f1298ec55a..67ed0452f5de 100644
--- a/arch/arm/boot/dts/imx6dl-tx6u-801x.dts
+++ b/arch/arm/boot/dts/imx6dl-tx6u-801x.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright 2014-2016 Lothar Waßmann <LW@KARO-electronics.de> 2 * Copyright 2014-2017 Lothar Waßmann <LW@KARO-electronics.de>
3 * 3 *
4 * This file is dual-licensed: you can use it either under the terms 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 5 * of the GPL or the X11 license, at your option. Note that this dual
@@ -42,166 +42,9 @@
42/dts-v1/; 42/dts-v1/;
43#include "imx6dl.dtsi" 43#include "imx6dl.dtsi"
44#include "imx6qdl-tx6.dtsi" 44#include "imx6qdl-tx6.dtsi"
45#include "imx6qdl-tx6-lcd.dtsi"
45 46
46/ { 47/ {
47 model = "Ka-Ro electronics TX6U-801x Module"; 48 model = "Ka-Ro electronics TX6U-801x Module";
48 compatible = "karo,imx6dl-tx6dl", "fsl,imx6dl"; 49 compatible = "karo,imx6dl-tx6dl", "fsl,imx6dl";
49
50 aliases {
51 display = &display;
52 };
53
54 backlight: backlight {
55 compatible = "pwm-backlight";
56 pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
57 power-supply = <&reg_3v3>;
58 /*
59 * a poor man's way to create a 1:1 relationship between
60 * the PWM value and the actual duty cycle
61 */
62 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
63 10 11 12 13 14 15 16 17 18 19
64 20 21 22 23 24 25 26 27 28 29
65 30 31 32 33 34 35 36 37 38 39
66 40 41 42 43 44 45 46 47 48 49
67 50 51 52 53 54 55 56 57 58 59
68 60 61 62 63 64 65 66 67 68 69
69 70 71 72 73 74 75 76 77 78 79
70 80 81 82 83 84 85 86 87 88 89
71 90 91 92 93 94 95 96 97 98 99
72 100>;
73 default-brightness-level = <50>;
74 };
75
76 display: display@di0 {
77 compatible = "fsl,imx-parallel-display";
78 interface-pix-fmt = "rgb24";
79 pinctrl-names = "default";
80 pinctrl-0 = <&pinctrl_disp0_1>;
81 status = "okay";
82
83 port {
84 display0_in: endpoint {
85 remote-endpoint = <&ipu1_di0_disp0>;
86 };
87 };
88
89 display-timings {
90 VGA {
91 clock-frequency = <25200000>;
92 hactive = <640>;
93 vactive = <480>;
94 hback-porch = <48>;
95 hsync-len = <96>;
96 hfront-porch = <16>;
97 vback-porch = <31>;
98 vsync-len = <2>;
99 vfront-porch = <12>;
100 hsync-active = <0>;
101 vsync-active = <0>;
102 de-active = <1>;
103 pixelclk-active = <0>;
104 };
105
106 ETV570 {
107 clock-frequency = <25200000>;
108 hactive = <640>;
109 vactive = <480>;
110 hback-porch = <114>;
111 hsync-len = <30>;
112 hfront-porch = <16>;
113 vback-porch = <32>;
114 vsync-len = <3>;
115 vfront-porch = <10>;
116 hsync-active = <0>;
117 vsync-active = <0>;
118 de-active = <1>;
119 pixelclk-active = <0>;
120 };
121
122 ET0350 {
123 clock-frequency = <6413760>;
124 hactive = <320>;
125 vactive = <240>;
126 hback-porch = <34>;
127 hsync-len = <34>;
128 hfront-porch = <20>;
129 vback-porch = <15>;
130 vsync-len = <3>;
131 vfront-porch = <4>;
132 hsync-active = <0>;
133 vsync-active = <0>;
134 de-active = <1>;
135 pixelclk-active = <0>;
136 };
137
138 ET0430 {
139 clock-frequency = <9009000>;
140 hactive = <480>;
141 vactive = <272>;
142 hback-porch = <2>;
143 hsync-len = <41>;
144 hfront-porch = <2>;
145 vback-porch = <2>;
146 vsync-len = <10>;
147 vfront-porch = <2>;
148 hsync-active = <0>;
149 vsync-active = <0>;
150 de-active = <1>;
151 pixelclk-active = <1>;
152 };
153
154 ET0500 {
155 clock-frequency = <33264000>;
156 hactive = <800>;
157 vactive = <480>;
158 hback-porch = <88>;
159 hsync-len = <128>;
160 hfront-porch = <40>;
161 vback-porch = <33>;
162 vsync-len = <2>;
163 vfront-porch = <10>;
164 hsync-active = <0>;
165 vsync-active = <0>;
166 de-active = <1>;
167 pixelclk-active = <0>;
168 };
169
170 ET0700 { /* same as ET0500 */
171 clock-frequency = <33264000>;
172 hactive = <800>;
173 vactive = <480>;
174 hback-porch = <88>;
175 hsync-len = <128>;
176 hfront-porch = <40>;
177 vback-porch = <33>;
178 vsync-len = <2>;
179 vfront-porch = <10>;
180 hsync-active = <0>;
181 vsync-active = <0>;
182 de-active = <1>;
183 pixelclk-active = <0>;
184 };
185
186 ETQ570 {
187 clock-frequency = <6596040>;
188 hactive = <320>;
189 vactive = <240>;
190 hback-porch = <38>;
191 hsync-len = <30>;
192 hfront-porch = <30>;
193 vback-porch = <16>;
194 vsync-len = <3>;
195 vfront-porch = <4>;
196 hsync-active = <0>;
197 vsync-active = <0>;
198 de-active = <1>;
199 pixelclk-active = <0>;
200 };
201 };
202 };
203};
204
205&ipu1_di0_disp0 {
206 remote-endpoint = <&display0_in>;
207}; 50};
diff --git a/arch/arm/boot/dts/imx6dl-tx6u-8033-mb7.dts b/arch/arm/boot/dts/imx6dl-tx6u-8033-mb7.dts
new file mode 100644
index 000000000000..d34189fc52d9
--- /dev/null
+++ b/arch/arm/boot/dts/imx6dl-tx6u-8033-mb7.dts
@@ -0,0 +1,48 @@
1/*
2 * Copyright 2017 Lothar Waßmann <LW@KARO-electronics.de>
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/dts-v1/;
43#include "imx6dl-tx6u-8033.dts"
44#include "imx6qdl-tx6-mb7.dtsi"
45
46/ {
47 model = "Ka-Ro electronics TX6U-8033 Module on MB7 baseboard";
48};
diff --git a/arch/arm/boot/dts/imx6dl-tx6u-8033.dts b/arch/arm/boot/dts/imx6dl-tx6u-8033.dts
index 4d3204a56f46..7030b2654bbd 100644
--- a/arch/arm/boot/dts/imx6dl-tx6u-8033.dts
+++ b/arch/arm/boot/dts/imx6dl-tx6u-8033.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright 2014-2016 Lothar Waßmann <LW@KARO-electronics.de> 2 * Copyright 2014-2017 Lothar Waßmann <LW@KARO-electronics.de>
3 * 3 *
4 * This file is dual-licensed: you can use it either under the terms 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 5 * of the GPL or the X11 license, at your option. Note that this dual
@@ -42,169 +42,11 @@
42/dts-v1/; 42/dts-v1/;
43#include "imx6dl.dtsi" 43#include "imx6dl.dtsi"
44#include "imx6qdl-tx6.dtsi" 44#include "imx6qdl-tx6.dtsi"
45#include "imx6qdl-tx6-lcd.dtsi"
45 46
46/ { 47/ {
47 model = "Ka-Ro electronics TX6U-8033 Module"; 48 model = "Ka-Ro electronics TX6U-8033 Module";
48 compatible = "karo,imx6dl-tx6dl", "fsl,imx6dl"; 49 compatible = "karo,imx6dl-tx6dl", "fsl,imx6dl";
49
50 aliases {
51 display = &display;
52 };
53
54 backlight: backlight {
55 compatible = "pwm-backlight";
56 pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
57 pinctrl-names = "default";
58 pinctrl-0 = <&pinctrl_lcd0_pwr>;
59 enable-gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
60 power-supply = <&reg_lcd1_pwr>;
61 /*
62 * a poor man's way to create a 1:1 relationship between
63 * the PWM value and the actual duty cycle
64 */
65 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
66 10 11 12 13 14 15 16 17 18 19
67 20 21 22 23 24 25 26 27 28 29
68 30 31 32 33 34 35 36 37 38 39
69 40 41 42 43 44 45 46 47 48 49
70 50 51 52 53 54 55 56 57 58 59
71 60 61 62 63 64 65 66 67 68 69
72 70 71 72 73 74 75 76 77 78 79
73 80 81 82 83 84 85 86 87 88 89
74 90 91 92 93 94 95 96 97 98 99
75 100>;
76 default-brightness-level = <50>;
77 };
78
79 display: display@di0 {
80 compatible = "fsl,imx-parallel-display";
81 pinctrl-names = "default";
82 pinctrl-0 = <&pinctrl_disp0_2>;
83 interface-pix-fmt = "rgb24";
84 status = "okay";
85
86 port {
87 display0_in: endpoint {
88 remote-endpoint = <&ipu1_di0_disp0>;
89 };
90 };
91
92 display-timings {
93 native-mode = <&vga>;
94
95 vga: VGA {
96 clock-frequency = <25200000>;
97 hactive = <640>;
98 vactive = <480>;
99 hback-porch = <48>;
100 hsync-len = <96>;
101 hfront-porch = <16>;
102 vback-porch = <31>;
103 vsync-len = <2>;
104 vfront-porch = <12>;
105 hsync-active = <0>;
106 vsync-active = <0>;
107 de-active = <1>;
108 pixelclk-active = <0>;
109 };
110
111 ETV570 {
112 clock-frequency = <25200000>;
113 hactive = <640>;
114 vactive = <480>;
115 hback-porch = <114>;
116 hsync-len = <30>;
117 hfront-porch = <16>;
118 vback-porch = <32>;
119 vsync-len = <3>;
120 vfront-porch = <10>;
121 hsync-active = <0>;
122 vsync-active = <0>;
123 de-active = <1>;
124 pixelclk-active = <0>;
125 };
126
127 ET0350 {
128 clock-frequency = <6413760>;
129 hactive = <320>;
130 vactive = <240>;
131 hback-porch = <34>;
132 hsync-len = <34>;
133 hfront-porch = <20>;
134 vback-porch = <15>;
135 vsync-len = <3>;
136 vfront-porch = <4>;
137 hsync-active = <0>;
138 vsync-active = <0>;
139 de-active = <1>;
140 pixelclk-active = <0>;
141 };
142
143 ET0430 {
144 clock-frequency = <9009000>;
145 hactive = <480>;
146 vactive = <272>;
147 hback-porch = <2>;
148 hsync-len = <41>;
149 hfront-porch = <2>;
150 vback-porch = <2>;
151 vsync-len = <10>;
152 vfront-porch = <2>;
153 hsync-active = <0>;
154 vsync-active = <0>;
155 de-active = <1>;
156 pixelclk-active = <1>;
157 };
158
159 ET0500 {
160 clock-frequency = <33264000>;
161 hactive = <800>;
162 vactive = <480>;
163 hback-porch = <88>;
164 hsync-len = <128>;
165 hfront-porch = <40>;
166 vback-porch = <33>;
167 vsync-len = <2>;
168 vfront-porch = <10>;
169 hsync-active = <0>;
170 vsync-active = <0>;
171 de-active = <1>;
172 pixelclk-active = <0>;
173 };
174
175 ET0700 { /* same as ET0500 */
176 clock-frequency = <33264000>;
177 hactive = <800>;
178 vactive = <480>;
179 hback-porch = <88>;
180 hsync-len = <128>;
181 hfront-porch = <40>;
182 vback-porch = <33>;
183 vsync-len = <2>;
184 vfront-porch = <10>;
185 hsync-active = <0>;
186 vsync-active = <0>;
187 de-active = <1>;
188 pixelclk-active = <0>;
189 };
190
191 ETQ570 {
192 clock-frequency = <6596040>;
193 hactive = <320>;
194 vactive = <240>;
195 hback-porch = <38>;
196 hsync-len = <30>;
197 hfront-porch = <30>;
198 vback-porch = <16>;
199 vsync-len = <3>;
200 vfront-porch = <4>;
201 hsync-active = <0>;
202 vsync-active = <0>;
203 de-active = <1>;
204 pixelclk-active = <0>;
205 };
206 };
207 };
208}; 50};
209 51
210&ds1339 { 52&ds1339 {
@@ -215,14 +57,6 @@
215 status = "disabled"; 57 status = "disabled";
216}; 58};
217 59
218&ipu1_di0_disp0 {
219 remote-endpoint = <&display0_in>;
220};
221
222&reg_lcd0_pwr {
223 status = "disabled";
224};
225
226&usdhc4 { 60&usdhc4 {
227 pinctrl-names = "default"; 61 pinctrl-names = "default";
228 pinctrl-0 = <&pinctrl_usdhc4>; 62 pinctrl-0 = <&pinctrl_usdhc4>;
diff --git a/arch/arm/boot/dts/imx6dl-tx6u-80xx-mb7.dts b/arch/arm/boot/dts/imx6dl-tx6u-80xx-mb7.dts
new file mode 100644
index 000000000000..aef5fcc42904
--- /dev/null
+++ b/arch/arm/boot/dts/imx6dl-tx6u-80xx-mb7.dts
@@ -0,0 +1,48 @@
1/*
2 * Copyright 2017 Lothar Waßmann <LW@KARO-electronics.de>
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/dts-v1/;
43#include "imx6dl-tx6u-801x.dts"
44#include "imx6qdl-tx6-mb7.dtsi"
45
46/ {
47 model = "Ka-Ro electronics TX6U-8030/-8010/-8012 Module on MB7 baseboard";
48};
diff --git a/arch/arm/boot/dts/imx6dl-tx6u-811x.dts b/arch/arm/boot/dts/imx6dl-tx6u-811x.dts
index 5e0c6bb49f37..5342f2f5a8a8 100644
--- a/arch/arm/boot/dts/imx6dl-tx6u-811x.dts
+++ b/arch/arm/boot/dts/imx6dl-tx6u-811x.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright 2014-2016 Lothar Waßmann <LW@KARO-electronics.de> 2 * Copyright 2014-2017 Lothar Waßmann <LW@KARO-electronics.de>
3 * 3 *
4 * This file is dual-licensed: you can use it either under the terms 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 5 * of the GPL or the X11 license, at your option. Note that this dual
@@ -42,137 +42,9 @@
42/dts-v1/; 42/dts-v1/;
43#include "imx6dl.dtsi" 43#include "imx6dl.dtsi"
44#include "imx6qdl-tx6.dtsi" 44#include "imx6qdl-tx6.dtsi"
45#include "imx6qdl-tx6-lvds.dtsi"
45 46
46/ { 47/ {
47 model = "Ka-Ro electronics TX6U-811x Module"; 48 model = "Ka-Ro electronics TX6U-811x Module";
48 compatible = "karo,imx6dl-tx6dl", "fsl,imx6dl"; 49 compatible = "karo,imx6dl-tx6dl", "fsl,imx6dl";
49
50 aliases {
51 display = &lvds0;
52 lvds0 = &lvds0;
53 lvds1 = &lvds1;
54 };
55
56 backlight0: backlight0 {
57 compatible = "pwm-backlight";
58 pwms = <&pwm2 0 500000 0>;
59 power-supply = <&reg_lcd0_pwr>;
60 /*
61 * a poor man's way to create a 1:1 relationship between
62 * the PWM value and the actual duty cycle
63 */
64 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
65 10 11 12 13 14 15 16 17 18 19
66 20 21 22 23 24 25 26 27 28 29
67 30 31 32 33 34 35 36 37 38 39
68 40 41 42 43 44 45 46 47 48 49
69 50 51 52 53 54 55 56 57 58 59
70 60 61 62 63 64 65 66 67 68 69
71 70 71 72 73 74 75 76 77 78 79
72 80 81 82 83 84 85 86 87 88 89
73 90 91 92 93 94 95 96 97 98 99
74 100>;
75 default-brightness-level = <50>;
76 };
77
78 backlight1: backlight1 {
79 compatible = "pwm-backlight";
80 pwms = <&pwm1 0 500000 0>;
81 power-supply = <&reg_lcd1_pwr>;
82 /*
83 * a poor man's way to create a 1:1 relationship between
84 * the PWM value and the actual duty cycle
85 */
86 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
87 10 11 12 13 14 15 16 17 18 19
88 20 21 22 23 24 25 26 27 28 29
89 30 31 32 33 34 35 36 37 38 39
90 40 41 42 43 44 45 46 47 48 49
91 50 51 52 53 54 55 56 57 58 59
92 60 61 62 63 64 65 66 67 68 69
93 70 71 72 73 74 75 76 77 78 79
94 80 81 82 83 84 85 86 87 88 89
95 90 91 92 93 94 95 96 97 98 99
96 100>;
97 default-brightness-level = <50>;
98 };
99};
100
101&i2c3 {
102 polytouch2: eeti@04 {
103 compatible = "eeti,egalax_ts";
104 reg = <0x04>;
105 pinctrl-names = "default";
106 pinctrl-0 = <&pinctrl_eeti>;
107 interrupt-parent = <&gpio3>;
108 interrupts = <22 0>;
109 wakeup-gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>;
110 wakeup-source;
111 };
112};
113
114&kpp {
115 status = "disabled"; /* pad conflict with backlight1 PWM */
116};
117
118&ldb {
119 status = "okay";
120
121 lvds0: lvds-channel@0 {
122 fsl,data-mapping = "spwg";
123 fsl,data-width = <18>;
124 status = "okay";
125
126 display-timings {
127 native-mode = <&lvds_timing0>;
128 lvds_timing0: hsd100pxn1 {
129 clock-frequency = <65000000>;
130 hactive = <1024>;
131 vactive = <768>;
132 hback-porch = <220>;
133 hfront-porch = <40>;
134 vback-porch = <21>;
135 vfront-porch = <7>;
136 hsync-len = <60>;
137 vsync-len = <10>;
138 de-active = <1>;
139 pixelclk-active = <1>;
140 };
141 };
142 };
143
144 lvds1: lvds-channel@1 {
145 fsl,data-mapping = "spwg";
146 fsl,data-width = <18>;
147 status = "disabled";
148
149 display-timings {
150 native-mode = <&lvds_timing1>;
151 lvds_timing1: hsd100pxn1 {
152 clock-frequency = <65000000>;
153 hactive = <1024>;
154 vactive = <768>;
155 hback-porch = <220>;
156 hfront-porch = <40>;
157 vback-porch = <21>;
158 vfront-porch = <7>;
159 hsync-len = <60>;
160 vsync-len = <10>;
161 de-active = <1>;
162 pixelclk-active = <1>;
163 };
164 };
165 };
166};
167
168&pwm1 {
169 status = "okay";
170};
171
172&iomuxc {
173 pinctrl_eeti: eetigrp {
174 fsl,pins = <
175 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b1 /* Interrupt */
176 >;
177 };
178}; 50};
diff --git a/arch/arm/boot/dts/imx6dl-tx6u-81xx-mb7.dts b/arch/arm/boot/dts/imx6dl-tx6u-81xx-mb7.dts
index b9a783f7160e..c4588fb0bf6f 100644
--- a/arch/arm/boot/dts/imx6dl-tx6u-81xx-mb7.dts
+++ b/arch/arm/boot/dts/imx6dl-tx6u-81xx-mb7.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright 2016 Lothar Waßmann <LW@KARO-electronics.de> 2 * Copyright 2016-2017 Lothar Waßmann <LW@KARO-electronics.de>
3 * 3 *
4 * This file is dual-licensed: you can use it either under the terms 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 5 * of the GPL or the X11 license, at your option. Note that this dual
@@ -40,216 +40,9 @@
40 */ 40 */
41 41
42/dts-v1/; 42/dts-v1/;
43#include "imx6dl.dtsi" 43#include "imx6dl-tx6u-811x.dts"
44#include "imx6qdl-tx6.dtsi" 44#include "imx6qdl-tx6-mb7.dtsi"
45 45
46/ { 46/ {
47 model = "Ka-Ro electronics TX6U-81xx Module on MB7 baseboard"; 47 model = "Ka-Ro electronics TX6U-8130/-8110 Module on MB7 baseboard";
48 compatible = "karo,imx6dl-tx6dl", "fsl,imx6dl";
49
50 aliases {
51 display = &lvds0;
52 lvds0 = &lvds0;
53 lvds1 = &lvds1;
54 };
55
56 backlight0: backlight0 {
57 compatible = "pwm-backlight";
58 pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
59 power-supply = <&reg_lcd0_pwr>;
60 /*
61 * a poor man's way to create a 1:1 relationship between
62 * the PWM value and the actual duty cycle
63 */
64 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
65 10 11 12 13 14 15 16 17 18 19
66 20 21 22 23 24 25 26 27 28 29
67 30 31 32 33 34 35 36 37 38 39
68 40 41 42 43 44 45 46 47 48 49
69 50 51 52 53 54 55 56 57 58 59
70 60 61 62 63 64 65 66 67 68 69
71 70 71 72 73 74 75 76 77 78 79
72 80 81 82 83 84 85 86 87 88 89
73 90 91 92 93 94 95 96 97 98 99
74 100>;
75 default-brightness-level = <50>;
76 };
77
78 backlight1: backlight1 {
79 compatible = "pwm-backlight";
80 pwms = <&pwm1 0 500000 PWM_POLARITY_INVERTED>;
81 power-supply = <&reg_lcd1_pwr>;
82 /*
83 * a poor man's way to create a 1:1 relationship between
84 * the PWM value and the actual duty cycle
85 */
86 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
87 10 11 12 13 14 15 16 17 18 19
88 20 21 22 23 24 25 26 27 28 29
89 30 31 32 33 34 35 36 37 38 39
90 40 41 42 43 44 45 46 47 48 49
91 50 51 52 53 54 55 56 57 58 59
92 60 61 62 63 64 65 66 67 68 69
93 70 71 72 73 74 75 76 77 78 79
94 80 81 82 83 84 85 86 87 88 89
95 90 91 92 93 94 95 96 97 98 99
96 100>;
97 default-brightness-level = <50>;
98 };
99};
100
101&can1 {
102 status = "disabled";
103};
104
105&can2 {
106 xceiver-supply = <&reg_3v3>;
107};
108
109&i2c3 {
110 polytouch1: eeti@04 {
111 compatible = "eeti,egalax_ts";
112 reg = <0x04>;
113 pinctrl-names = "default";
114 pinctrl-0 = <&pinctrl_eeti>;
115 interrupts-extended = <&gpio3 22 IRQ_TYPE_EDGE_FALLING>;
116 wakeup-gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>;
117 wakeup-source;
118 };
119};
120
121&kpp {
122 status = "disabled"; /* pads partially clash with backlight1 PWM */
123};
124
125&ldb {
126 status = "okay";
127
128 lvds0: lvds-channel@0 {
129 fsl,data-mapping = "spwg";
130 fsl,data-width = <18>;
131 status = "okay";
132
133 display-timings {
134 native-mode = <&lvds0_timing1>;
135
136 lvds0_timing0: hsd100pxn1 {
137 clock-frequency = <65000000>;
138 hactive = <1024>;
139 vactive = <768>;
140 hback-porch = <220>;
141 hfront-porch = <40>;
142 vback-porch = <21>;
143 vfront-porch = <7>;
144 hsync-len = <60>;
145 vsync-len = <10>;
146 hsync-active = <0>;
147 vsync-active = <0>;
148 de-active = <1>;
149 pixelclk-active = <1>;
150 };
151
152 lvds0_timing1: VGA {
153 clock-frequency = <25200000>;
154 hactive = <640>;
155 vactive = <480>;
156 hback-porch = <48>;
157 hfront-porch = <16>;
158 vback-porch = <31>;
159 vfront-porch = <12>;
160 hsync-len = <96>;
161 vsync-len = <2>;
162 hsync-active = <0>;
163 vsync-active = <0>;
164 de-active = <1>;
165 pixelclk-active = <0>;
166 };
167
168 lvds0_timing2: nl12880bc20 {
169 clock-frequency = <71000000>;
170 hactive = <1280>;
171 vactive = <800>;
172 hback-porch = <50>;
173 hfront-porch = <50>;
174 vback-porch = <5>;
175 vfront-porch = <5>;
176 hsync-len = <60>;
177 vsync-len = <13>;
178 hsync-active = <0>;
179 vsync-active = <0>;
180 de-active = <1>;
181 pixelclk-active = <1>;
182 };
183 };
184 };
185
186 lvds1: lvds-channel@1 {
187 fsl,data-mapping = "spwg";
188 fsl,data-width = <18>;
189 status = "okay";
190
191 display-timings {
192 native-mode = <&lvds1_timing2>;
193
194 lvds1_timing0: hsd100pxn1 {
195 clock-frequency = <65000000>;
196 hactive = <1024>;
197 vactive = <768>;
198 hback-porch = <220>;
199 hfront-porch = <40>;
200 vback-porch = <21>;
201 vfront-porch = <7>;
202 hsync-len = <60>;
203 vsync-len = <10>;
204 hsync-active = <0>;
205 vsync-active = <0>;
206 de-active = <1>;
207 pixelclk-active = <1>;
208 };
209
210 lvds1_timing1: VGA {
211 clock-frequency = <25200000>;
212 hactive = <640>;
213 vactive = <480>;
214 hback-porch = <48>;
215 hfront-porch = <16>;
216 vback-porch = <31>;
217 vfront-porch = <12>;
218 hsync-len = <96>;
219 vsync-len = <2>;
220 hsync-active = <0>;
221 vsync-active = <0>;
222 de-active = <1>;
223 pixelclk-active = <0>;
224 };
225
226 lvds1_timing2: nl12880bc20 {
227 clock-frequency = <71000000>;
228 hactive = <1280>;
229 vactive = <800>;
230 hback-porch = <50>;
231 hfront-porch = <50>;
232 vback-porch = <5>;
233 vfront-porch = <5>;
234 hsync-len = <60>;
235 vsync-len = <13>;
236 hsync-active = <0>;
237 vsync-active = <0>;
238 de-active = <1>;
239 pixelclk-active = <1>;
240 };
241 };
242 };
243};
244
245&pwm1 {
246 status = "okay";
247};
248
249&iomuxc {
250 pinctrl_eeti: eetigrp {
251 fsl,pins = <
252 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b1 /* Interrupt */
253 >;
254 };
255}; 48};
diff --git a/arch/arm/boot/dts/imx6dl-wandboard-revd1.dts b/arch/arm/boot/dts/imx6dl-wandboard-revd1.dts
new file mode 100644
index 000000000000..aa4d4faaaec4
--- /dev/null
+++ b/arch/arm/boot/dts/imx6dl-wandboard-revd1.dts
@@ -0,0 +1,22 @@
1/*
2 * Copyright 2013 Freescale Semiconductor, Inc.
3 *
4 * Author: Fabio Estevam <fabio.estevam@freescale.com>
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/dts-v1/;
12#include "imx6dl.dtsi"
13#include "imx6qdl-wandboard-revd1.dtsi"
14
15/ {
16 model = "Wandboard i.MX6 Dual Lite Board revD1";
17 compatible = "wand,imx6dl-wandboard", "fsl,imx6dl";
18
19 memory {
20 reg = <0x10000000 0x40000000>;
21 };
22};
diff --git a/arch/arm/boot/dts/imx6dl.dtsi b/arch/arm/boot/dts/imx6dl.dtsi
index 8475e6cc59ac..4d693a75ce98 100644
--- a/arch/arm/boot/dts/imx6dl.dtsi
+++ b/arch/arm/boot/dts/imx6dl.dtsi
@@ -60,35 +60,35 @@
60 }; 60 };
61 61
62 soc { 62 soc {
63 ocram: sram@00900000 { 63 ocram: sram@900000 {
64 compatible = "mmio-sram"; 64 compatible = "mmio-sram";
65 reg = <0x00900000 0x20000>; 65 reg = <0x00900000 0x20000>;
66 clocks = <&clks IMX6QDL_CLK_OCRAM>; 66 clocks = <&clks IMX6QDL_CLK_OCRAM>;
67 }; 67 };
68 68
69 aips1: aips-bus@02000000 { 69 aips1: aips-bus@2000000 {
70 iomuxc: iomuxc@020e0000 { 70 iomuxc: iomuxc@20e0000 {
71 compatible = "fsl,imx6dl-iomuxc"; 71 compatible = "fsl,imx6dl-iomuxc";
72 }; 72 };
73 73
74 pxp: pxp@020f0000 { 74 pxp: pxp@20f0000 {
75 reg = <0x020f0000 0x4000>; 75 reg = <0x020f0000 0x4000>;
76 interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>; 76 interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
77 }; 77 };
78 78
79 epdc: epdc@020f4000 { 79 epdc: epdc@20f4000 {
80 reg = <0x020f4000 0x4000>; 80 reg = <0x020f4000 0x4000>;
81 interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>; 81 interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>;
82 }; 82 };
83 83
84 lcdif: lcdif@020f8000 { 84 lcdif: lcdif@20f8000 {
85 reg = <0x020f8000 0x4000>; 85 reg = <0x020f8000 0x4000>;
86 interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>; 86 interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
87 }; 87 };
88 }; 88 };
89 89
90 aips2: aips-bus@02100000 { 90 aips2: aips-bus@2100000 {
91 i2c4: i2c@021f8000 { 91 i2c4: i2c@21f8000 {
92 #address-cells = <1>; 92 #address-cells = <1>;
93 #size-cells = <0>; 93 #size-cells = <0>;
94 compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c"; 94 compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
diff --git a/arch/arm/boot/dts/imx6q-apalis-eval.dts b/arch/arm/boot/dts/imx6q-apalis-eval.dts
index 4bbfe3d61027..8b56656e53da 100644
--- a/arch/arm/boot/dts/imx6q-apalis-eval.dts
+++ b/arch/arm/boot/dts/imx6q-apalis-eval.dts
@@ -76,7 +76,7 @@
76 }; 76 };
77 }; 77 };
78 78
79 lcd_display: display@di0 { 79 lcd_display: disp0 {
80 compatible = "fsl,imx-parallel-display"; 80 compatible = "fsl,imx-parallel-display";
81 #address-cells = <1>; 81 #address-cells = <1>;
82 #size-cells = <0>; 82 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts b/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
index a35c7a54ad3b..27dc0fc686a9 100644
--- a/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
+++ b/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
@@ -77,7 +77,7 @@
77 }; 77 };
78 }; 78 };
79 79
80 lcd_display: display@di0 { 80 lcd_display: disp0 {
81 compatible = "fsl,imx-parallel-display"; 81 compatible = "fsl,imx-parallel-display";
82 #address-cells = <1>; 82 #address-cells = <1>;
83 #size-cells = <0>; 83 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/imx6q-apalis-ixora.dts b/arch/arm/boot/dts/imx6q-apalis-ixora.dts
index 60d33e99de76..40b2c67fe7af 100644
--- a/arch/arm/boot/dts/imx6q-apalis-ixora.dts
+++ b/arch/arm/boot/dts/imx6q-apalis-ixora.dts
@@ -76,7 +76,7 @@
76 }; 76 };
77 }; 77 };
78 78
79 lcd_display: display@di0 { 79 lcd_display: disp0 {
80 compatible = "fsl,imx-parallel-display"; 80 compatible = "fsl,imx-parallel-display";
81 #address-cells = <1>; 81 #address-cells = <1>;
82 #size-cells = <0>; 82 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/imx6q-bx50v3.dtsi b/arch/arm/boot/dts/imx6q-bx50v3.dtsi
index 1015e55ca8f7..b915837bbb5f 100644
--- a/arch/arm/boot/dts/imx6q-bx50v3.dtsi
+++ b/arch/arm/boot/dts/imx6q-bx50v3.dtsi
@@ -165,7 +165,7 @@
165 #size-cells = <0>; 165 #size-cells = <0>;
166 reg = <0x3>; 166 reg = <0x3>;
167 167
168 sgtl5000: codec@0a { 168 sgtl5000: codec@a {
169 compatible = "fsl,sgtl5000"; 169 compatible = "fsl,sgtl5000";
170 reg = <0x0a>; 170 reg = <0x0a>;
171 clocks = <&mclk>; 171 clocks = <&mclk>;
diff --git a/arch/arm/boot/dts/imx6q-cm-fx6.dts b/arch/arm/boot/dts/imx6q-cm-fx6.dts
index fe6ab0aa34f9..bc7587c383f6 100644
--- a/arch/arm/boot/dts/imx6q-cm-fx6.dts
+++ b/arch/arm/boot/dts/imx6q-cm-fx6.dts
@@ -77,8 +77,7 @@
77 regulator-name = "regulator-pcie-power-on-gpio"; 77 regulator-name = "regulator-pcie-power-on-gpio";
78 regulator-min-microvolt = <3300000>; 78 regulator-min-microvolt = <3300000>;
79 regulator-max-microvolt = <3300000>; 79 regulator-max-microvolt = <3300000>;
80 gpio = <&gpio2 24 GPIO_ACTIVE_HIGH>; 80 gpio = <&gpio2 24 GPIO_ACTIVE_LOW>;
81 enable-active-high;
82 }; 81 };
83 82
84 reg_usb_h1_vbus: usb_h1_vbus { 83 reg_usb_h1_vbus: usb_h1_vbus {
@@ -362,7 +361,7 @@
362 pinctrl-names = "default"; 361 pinctrl-names = "default";
363 pinctrl-0 = <&pinctrl_pcie>; 362 pinctrl-0 = <&pinctrl_pcie>;
364 reset-gpio = <&gpio1 26 GPIO_ACTIVE_LOW>; 363 reset-gpio = <&gpio1 26 GPIO_ACTIVE_LOW>;
365 vdd-supply = <&reg_pcie_power_on_gpio>; 364 vpcie-supply = <&reg_pcie_power_on_gpio>;
366 status = "okay"; 365 status = "okay";
367}; 366};
368 367
diff --git a/arch/arm/boot/dts/imx6q-display5-tianma-tm070-1280x768.dts b/arch/arm/boot/dts/imx6q-display5-tianma-tm070-1280x768.dts
new file mode 100644
index 000000000000..16658b76fc4e
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-display5-tianma-tm070-1280x768.dts
@@ -0,0 +1,51 @@
1/*
2 * Copyright 2017
3 * Lukasz Majewski, DENX Software Engineering, lukma@denx.de
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 licensed under the terms of the GNU General Public
11 * License version 2. This program is licensed "as is" without
12 * any warranty of any kind, whether express or implied.
13 *
14 * Or, alternatively,
15 *
16 * b) Permission is hereby granted, free of charge, to any person
17 * obtaining a copy of this software and associated documentation
18 * files (the "Software"), to deal in the Software without
19 * restriction, including without limitation the rights to use,
20 * copy, modify, merge, publish, distribute, sublicense, and/or
21 * sell copies of the Software, and to permit persons to whom the
22 * Software is furnished to do so, subject to the following
23 * conditions:
24 *
25 * The above copyright notice and this permission notice shall be
26 * included in all copies or substantial portions of the Software.
27 *
28 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
29 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
30 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
31 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
32 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
33 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
34 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
35 * OTHER DEALINGS IN THE SOFTWARE.
36 */
37
38/dts-v1/;
39
40#include "imx6q-display5.dtsi"
41
42&panel {
43 compatible = "tianma,tm070jdhg30";
44};
45
46&ldb {
47 lvds0: lvds-channel@0 {
48 fsl,data-mapping = "spwg";
49 fsl,data-width = <18>;
50 };
51};
diff --git a/arch/arm/boot/dts/imx6q-display5.dtsi b/arch/arm/boot/dts/imx6q-display5.dtsi
new file mode 100644
index 000000000000..4084de43d4d9
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-display5.dtsi
@@ -0,0 +1,596 @@
1/*
2 * Copyright 2017
3 * Lukasz Majewski, DENX Software Engineering, lukma@denx.de
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 licensed under the terms of the GNU General Public
11 * License version 2. This program is licensed "as is" without
12 * any warranty of any kind, whether express or implied.
13 *
14 * Or, alternatively,
15 *
16 * b) Permission is hereby granted, free of charge, to any person
17 * obtaining a copy of this software and associated documentation
18 * files (the "Software"), to deal in the Software without
19 * restriction, including without limitation the rights to use,
20 * copy, modify, merge, publish, distribute, sublicense, and/or
21 * sell copies of the Software, and to permit persons to whom the
22 * Software is furnished to do so, subject to the following
23 * conditions:
24 *
25 * The above copyright notice and this permission notice shall be
26 * included in all copies or substantial portions of the Software.
27 *
28 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
29 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
30 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
31 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
32 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
33 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
34 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
35 * OTHER DEALINGS IN THE SOFTWARE.
36 */
37
38/dts-v1/;
39
40#include "imx6q.dtsi"
41
42#include <dt-bindings/gpio/gpio.h>
43#include <dt-bindings/pwm/pwm.h>
44#include <dt-bindings/sound/fsl-imx-audmux.h>
45
46/ {
47 model = "Liebherr (LWN) display5 i.MX6 Quad Board";
48 compatible = "lwn,display5", "fsl,imx6q";
49
50 memory {
51 reg = <0x10000000 0x40000000>;
52 };
53
54 backlight_lvds: backlight {
55 compatible = "pwm-backlight";
56 pinctrl-names = "default";
57 pinctrl-0 = <&pinctrl_backlight>;
58 pwms = <&pwm2 0 5000000 0>;
59 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
60 10 11 12 13 14 15 16 17 18 19
61 20 21 22 23 24 25 26 27 28 29
62 30 31 32 33 34 35 36 37 38 39
63 40 41 42 43 44 45 46 47 48 49
64 50 51 52 53 54 55 56 57 58 59
65 60 61 62 63 64 65 66 67 68 69
66 70 71 72 73 74 75 76 77 78 79
67 80 81 82 83 84 85 86 87 88 89
68 90 91 92 93 94 95 96 97 98 99
69 100 101 102 103 104 105 106 107 108 109
70 110 111 112 113 114 115 116 117 118 119
71 120 121 122 123 124 125 126 127 128 129
72 130 131 132 133 134 135 136 137 138 139
73 140 141 142 143 144 145 146 147 148 149
74 150 151 152 153 154 155 156 157 158 159
75 160 161 162 163 164 165 166 167 168 169
76 170 171 172 173 174 175 176 177 178 179
77 180 181 182 183 184 185 186 187 188 189
78 190 191 192 193 194 195 196 197 198 199
79 200 201 202 203 204 205 206 207 208 209
80 210 211 212 213 214 215 216 217 218 219
81 220 221 222 223 224 225 226 227 228 229
82 230 231 232 233 234 235 236 237 238 239
83 240 241 242 243 244 245 246 247 248 249
84 250 251 252 253 254 255>;
85 default-brightness-level = <250>;
86 enable-gpios = <&gpio5 7 GPIO_ACTIVE_HIGH>;
87 };
88
89 reg_lvds: regulator-lvds {
90 compatible = "regulator-fixed";
91 regulator-name = "lvds_ppen";
92 regulator-min-microvolt = <3300000>;
93 regulator-max-microvolt = <3300000>;
94 regulator-boot-on;
95 regulator-always-on;
96 pinctrl-names = "default";
97 pinctrl-0 = <&pinctrl_reg_lvds>;
98 gpio = <&gpio5 13 GPIO_ACTIVE_HIGH>;
99 enable-active-high;
100 };
101
102 reg_usbh1_vbus: usb-h1-vbus {
103 compatible = "regulator-fixed";
104 gpio = <&gpio3 31 GPIO_ACTIVE_LOW>;
105 pinctrl-names = "default";
106 pinctrl-0 = <&pinctrl_usbh1_vbus>;
107 regulator-name = "usb_h1_vbus";
108 regulator-min-microvolt = <5000000>;
109 regulator-max-microvolt = <5000000>;
110 regulator-enable-ramp-delay = <300000>;
111 };
112
113 sound {
114 compatible = "simple-audio-card";
115 label = "tfa9879-mono";
116
117 simple-audio-card,dai-link {
118 /* DAC */
119 format = "i2s";
120 bitclock-master = <&dailink_master>;
121 frame-master = <&dailink_master>;
122
123 dailink_master: cpu {
124 sound-dai = <&ssi2>;
125 };
126 codec {
127 sound-dai = <&codec>;
128 };
129 };
130 };
131
132 panel: panel-lvds0 {
133 backlight = <&backlight_lvds>;
134 power-supply = <&reg_lvds>;
135
136 port {
137 panel_in_lvds0: endpoint {
138 remote-endpoint = <&lvds0_out>;
139 };
140 };
141 };
142};
143
144&audmux {
145 pinctrl-names = "default";
146 pinctrl-0 = <&pinctrl_audmux>;
147 status = "okay";
148
149 ssi2 {
150 fsl,audmux-port = <1>;
151 fsl,port-config = <
152 (IMX_AUDMUX_V2_PTCR_SYN |
153 IMX_AUDMUX_V2_PTCR_TFSEL(5) |
154 IMX_AUDMUX_V2_PTCR_TCSEL(5) |
155 IMX_AUDMUX_V2_PTCR_TFSDIR |
156 IMX_AUDMUX_V2_PTCR_TCLKDIR)
157 IMX_AUDMUX_V2_PDCR_RXDSEL(5)
158 >;
159 };
160
161 aud6 {
162 fsl,audmux-port = <5>;
163 fsl,port-config = <
164 (IMX_AUDMUX_V2_PTCR_RFSEL(8) |
165 IMX_AUDMUX_V2_PTCR_RCSEL(8) |
166 IMX_AUDMUX_V2_PTCR_TFSEL(1) |
167 IMX_AUDMUX_V2_PTCR_TCSEL(1) |
168 IMX_AUDMUX_V2_PTCR_RFSDIR |
169 IMX_AUDMUX_V2_PTCR_RCLKDIR |
170 IMX_AUDMUX_V2_PTCR_TFSDIR |
171 IMX_AUDMUX_V2_PTCR_TCLKDIR)
172 IMX_AUDMUX_V2_PDCR_RXDSEL(1)
173 >;
174 };
175};
176
177&ecspi2 {
178 cs-gpios = <&gpio5 29 GPIO_ACTIVE_LOW>;
179 pinctrl-names = "default";
180 pinctrl-0 = <&pinctrl_ecspi2 &pinctrl_ecspi2_cs &pinctrl_ecspi2_flwp>;
181 status = "okay";
182
183 s25fl256s: flash@0 {
184 #address-cells = <1>;
185 #size-cells = <1>;
186 compatible = "jedec,spi-nor";
187 spi-max-frequency = <40000000>;
188 reg = <0>;
189
190 partition@0 {
191 label = "SPL (spi)";
192 reg = <0x0 0x20000>;
193 read-only;
194 };
195 partition@1 {
196 label = "u-boot (spi)";
197 reg = <0x20000 0x100000>;
198 read-only;
199 };
200 partition@2 {
201 label = "uboot-env (spi)";
202 reg = <0x120000 0x10000>;
203 };
204 partition@3 {
205 label = "uboot-envr (spi)";
206 reg = <0x130000 0x10000>;
207 };
208 partition@4 {
209 label = "linux-recovery (spi)";
210 reg = <0x140000 0x800000>;
211 };
212 partition@5 {
213 label = "swupdate-fitImg (spi)";
214 reg = <0x940000 0x400000>;
215 };
216 partition@6 {
217 label = "swupdate-initramfs (spi)";
218 reg = <0xD40000 0x800000>;
219 };
220 };
221};
222
223&ecspi3 {
224 cs-gpios = <&gpio4 24 GPIO_ACTIVE_LOW>;
225 pinctrl-names = "default";
226 pinctrl-0 = <&pinctrl_ecspi3 &pinctrl_ecspi3_cs &pinctrl_ecspi3_flwp>;
227 status = "okay";
228};
229
230&fec {
231 pinctrl-names = "default";
232 pinctrl-0 = <&pinctrl_enet>;
233 phy-handle = <&ethernet_phy0>;
234 phy-mode = "rgmii-id";
235 status = "okay";
236
237 mdio {
238 #address-cells = <1>;
239 #size-cells = <0>;
240 ethernet_phy0: ethernet-phy@0 {
241 compatible = "marvell,88E1510";
242 device_type = "ethernet-phy";
243 /* Set LED0 control: */
244 /* On - Link, Blink - Activity, Off - No Link */
245 marvell,reg-init = <3 0x10 0 0x1011>;
246 max-speed = <100>;
247 reg = <0>;
248 };
249 };
250};
251
252&i2c1 {
253 clock-frequency = <400000>;
254 pinctrl-names = "default";
255 pinctrl-0 = <&pinctrl_i2c1>;
256 status = "okay";
257
258 codec: tfa9879@6C {
259 #sound-dai-cells = <0>;
260 compatible = "nxp,tfa9879";
261 reg = <0x6C>;
262 };
263};
264
265&i2c2 {
266 clock-frequency = <400000>;
267 pinctrl-names = "default";
268 pinctrl-0 = <&pinctrl_i2c2>;
269 status = "okay";
270};
271
272&i2c3 {
273 clock-frequency = <400000>;
274 pinctrl-names = "default";
275 pinctrl-0 = <&pinctrl_i2c3>;
276 status = "okay";
277
278 at24@50 {
279 compatible = "atmel,24c256";
280 pagesize = <64>;
281 reg = <0x50>;
282 };
283
284 pfuze100: pmic@8 {
285 compatible = "fsl,pfuze100";
286 reg = <0x08>;
287
288 regulators {
289 sw1a_reg: sw1ab {
290 regulator-min-microvolt = <300000>;
291 regulator-max-microvolt = <1875000>;
292 regulator-boot-on;
293 regulator-always-on;
294 regulator-ramp-delay = <6250>;
295 };
296
297 sw1c_reg: sw1c {
298 regulator-min-microvolt = <300000>;
299 regulator-max-microvolt = <1875000>;
300 regulator-boot-on;
301 regulator-always-on;
302 regulator-ramp-delay = <6250>;
303 };
304
305 sw2_reg: sw2 {
306 regulator-min-microvolt = <800000>;
307 regulator-max-microvolt = <3950000>;
308 regulator-boot-on;
309 regulator-always-on;
310 };
311
312 sw3a_reg: sw3a {
313 regulator-min-microvolt = <400000>;
314 regulator-max-microvolt = <1975000>;
315 regulator-boot-on;
316 regulator-always-on;
317 };
318
319 sw3b_reg: sw3b {
320 regulator-min-microvolt = <400000>;
321 regulator-max-microvolt = <1975000>;
322 regulator-boot-on;
323 regulator-always-on;
324 };
325
326 sw4_reg: sw4 {
327 regulator-min-microvolt = <800000>;
328 regulator-max-microvolt = <3300000>;
329 };
330
331 swbst_reg: swbst {
332 regulator-min-microvolt = <5000000>;
333 regulator-max-microvolt = <5150000>;
334 };
335
336 snvs_reg: vsnvs {
337 regulator-min-microvolt = <1000000>;
338 regulator-max-microvolt = <3000000>;
339 regulator-boot-on;
340 regulator-always-on;
341 };
342
343 vref_reg: vrefddr {
344 regulator-boot-on;
345 regulator-always-on;
346 };
347
348 vgen1_reg: vgen1 {
349 regulator-min-microvolt = <800000>;
350 regulator-max-microvolt = <1550000>;
351 };
352
353 vgen2_reg: vgen2 {
354 regulator-min-microvolt = <800000>;
355 regulator-max-microvolt = <1550000>;
356 };
357
358 vgen3_reg: vgen3 {
359 regulator-min-microvolt = <1800000>;
360 regulator-max-microvolt = <3300000>;
361 };
362
363 vgen4_reg: vgen4 {
364 regulator-min-microvolt = <1800000>;
365 regulator-max-microvolt = <3300000>;
366 regulator-always-on;
367 };
368
369 vgen5_reg: vgen5 {
370 regulator-min-microvolt = <1800000>;
371 regulator-max-microvolt = <3300000>;
372 regulator-always-on;
373 };
374
375 vgen6_reg: vgen6 {
376 regulator-min-microvolt = <1800000>;
377 regulator-max-microvolt = <3300000>;
378 regulator-always-on;
379 };
380 };
381 };
382};
383
384&ldb {
385 status = "okay";
386
387 lvds0: lvds-channel@0 {
388 status = "okay";
389
390 port@4 {
391 reg = <4>;
392
393 lvds0_out: endpoint {
394 remote-endpoint = <&panel_in_lvds0>;
395 };
396 };
397 };
398};
399
400&pwm2 {
401 #pwm-cells = <3>;
402 pinctrl-names = "default";
403 pinctrl-0 = <&pinctrl_pwm2>;
404 status = "okay";
405};
406
407&ssi2 {
408 status = "okay";
409};
410
411&uart4 {
412 pinctrl-names = "default";
413 pinctrl-0 = <&pinctrl_uart4>;
414 uart-has-rtscts;
415 status = "okay";
416};
417
418&uart5 {
419 pinctrl-names = "default";
420 pinctrl-0 = <&pinctrl_uart5>;
421 status = "okay";
422};
423
424&usbh1 {
425 vbus-supply = <&reg_usbh1_vbus>;
426 pinctrl-0 = <&pinctrl_usbh1>;
427 status = "okay";
428};
429
430&usdhc4 {
431 pinctrl-names = "default";
432 pinctrl-0 = <&pinctrl_usdhc4>;
433 bus-width = <8>;
434 non-removable;
435 status = "okay";
436};
437
438&iomuxc {
439 pinctrl_audmux: audmuxgrp {
440 fsl,pins = <
441 /* I2S OUTPUT AUD6*/
442 MX6QDL_PAD_DI0_PIN4__AUD6_RXD 0x130b0
443 MX6QDL_PAD_DI0_PIN2__AUD6_TXD 0x130b0
444 MX6QDL_PAD_DI0_PIN3__AUD6_TXFS 0x130b0
445 MX6QDL_PAD_DI0_PIN15__AUD6_TXC 0x130b0
446 >;
447 };
448
449 pinctrl_backlight: dispgrp {
450 fsl,pins = <
451 /* BLEN_OUT */
452 MX6QDL_PAD_DISP0_DAT13__GPIO5_IO07 0x1b0b0
453 >;
454 };
455
456 pinctrl_ecspi2: ecspi2grp {
457 fsl,pins = <
458 MX6QDL_PAD_CSI0_DAT10__ECSPI2_MISO 0x100b1
459 MX6QDL_PAD_CSI0_DAT9__ECSPI2_MOSI 0x100b1
460 MX6QDL_PAD_CSI0_DAT8__ECSPI2_SCLK 0x100b1
461 >;
462 };
463
464 pinctrl_ecspi2_cs: ecspi2csgrp {
465 fsl,pins = <
466 MX6QDL_PAD_CSI0_DAT11__GPIO5_IO29 0x100b1
467 >;
468 };
469
470 pinctrl_ecspi2_flwp: ecspi2flwpgrp {
471 fsl,pins = <
472 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x1b0b0
473 >;
474 };
475
476 pinctrl_ecspi3: ecspi3grp {
477 fsl,pins = <
478 MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x100b1
479 MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x100b1
480 MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1
481 >;
482 };
483
484 pinctrl_ecspi3_cs: ecspi3csgrp {
485 fsl,pins = <
486 MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24 0x1b0b0
487 >;
488 };
489
490 pinctrl_ecspi3_flwp: ecspi3flwpgrp {
491 fsl,pins = <
492 MX6QDL_PAD_DISP0_DAT6__GPIO4_IO27 0x1b0b0
493 >;
494 };
495
496 pinctrl_enet: enetgrp {
497 fsl,pins = <
498 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
499 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
500 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0
501 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0
502 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0
503 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0
504 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0
505 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0
506 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
507 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
508 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0
509 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0
510 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0
511 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0
512 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
513 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
514 MX6QDL_PAD_GPIO_6__ENET_IRQ 0x000b1
515 MX6QDL_PAD_ENET_RXD0__GPIO1_IO27 0x1b0b0
516 >;
517 };
518
519 pinctrl_i2c1: i2c1grp {
520 fsl,pins = <
521 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
522 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
523 >;
524 };
525
526 pinctrl_i2c2: i2c2grp {
527 fsl,pins = <
528 MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1
529 MX6QDL_PAD_EIM_D16__I2C2_SDA 0x4001b8b1
530 >;
531 };
532
533 pinctrl_i2c3: i2c3grp {
534 fsl,pins = <
535 MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1
536 MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
537 >;
538 };
539
540 pinctrl_pwm2: pwm2grp {
541 fsl,pins = <
542 MX6QDL_PAD_DISP0_DAT9__PWM2_OUT 0x1b0b1
543 >;
544 };
545
546 pinctrl_reg_lvds: reqlvdsgrp {
547 fsl,pins = <
548 /* LVDS_PPEN_OUT */
549 MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x1b0b0
550 >;
551 };
552
553 pinctrl_uart4: uart4grp {
554 fsl,pins = <
555 MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x1b0b1
556 MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x1b0b1
557 MX6QDL_PAD_CSI0_DAT16__UART4_RTS_B 0x1b0b1
558 MX6QDL_PAD_CSI0_DAT17__UART4_CTS_B 0x1b0b1
559 >;
560 };
561
562 pinctrl_uart5: uart5grp {
563 fsl,pins = <
564 MX6QDL_PAD_CSI0_DAT14__UART5_TX_DATA 0x1b0b1
565 MX6QDL_PAD_CSI0_DAT15__UART5_RX_DATA 0x1b0b1
566 >;
567 };
568
569 pinctrl_usbh1: usbh1grp {
570 fsl,pins = <
571 MX6QDL_PAD_EIM_D30__USB_H1_OC 0x030b0
572 >;
573 };
574
575 pinctrl_usbh1_vbus: usbh1_vbus_grp {
576 fsl,pins = <
577 MX6QDL_PAD_EIM_D31__GPIO3_IO31 0x1b0b0
578 >;
579 };
580
581 pinctrl_usdhc4: usdhc4grp {
582 fsl,pins = <
583 MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059
584 MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059
585 MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059
586 MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059
587 MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059
588 MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059
589 MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x17059
590 MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x17059
591 MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x17059
592 MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x17059
593 MX6QDL_PAD_NANDF_ALE__SD4_RESET 0x17059
594 >;
595 };
596};
diff --git a/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts b/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts
index 33eb7f180995..f0316ea96898 100644
--- a/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts
+++ b/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts
@@ -139,7 +139,7 @@
139 &pinctrl_pfuze>; 139 &pinctrl_pfuze>;
140 status = "okay"; 140 status = "okay";
141 141
142 pmic: pfuze100@08 { 142 pmic: pfuze100@8 {
143 compatible = "fsl,pfuze100"; 143 compatible = "fsl,pfuze100";
144 reg = <0x08>; 144 reg = <0x08>;
145 interrupt-parent = <&gpio3>; 145 interrupt-parent = <&gpio3>;
diff --git a/arch/arm/boot/dts/imx6q-gw5400-a.dts b/arch/arm/boot/dts/imx6q-gw5400-a.dts
index 9dbeea05a949..29adaa7c72f8 100644
--- a/arch/arm/boot/dts/imx6q-gw5400-a.dts
+++ b/arch/arm/boot/dts/imx6q-gw5400-a.dts
@@ -211,7 +211,7 @@
211 pinctrl-0 = <&pinctrl_i2c2>; 211 pinctrl-0 = <&pinctrl_i2c2>;
212 status = "okay"; 212 status = "okay";
213 213
214 pmic: pfuze100@08 { 214 pmic: pfuze100@8 {
215 compatible = "fsl,pfuze100"; 215 compatible = "fsl,pfuze100";
216 reg = <0x08>; 216 reg = <0x08>;
217 217
@@ -322,7 +322,7 @@
322 reg = <0x1c>; 322 reg = <0x1c>;
323 }; 323 };
324 324
325 codec: sgtl5000@0a { 325 codec: sgtl5000@a {
326 compatible = "fsl,sgtl5000"; 326 compatible = "fsl,sgtl5000";
327 reg = <0x0a>; 327 reg = <0x0a>;
328 clocks = <&clks IMX6QDL_CLK_CKO>; 328 clocks = <&clks IMX6QDL_CLK_CKO>;
@@ -330,7 +330,7 @@
330 VDDIO-supply = <&reg_3p3v>; 330 VDDIO-supply = <&reg_3p3v>;
331 }; 331 };
332 332
333 touchscreen: egalax_ts@04 { 333 touchscreen: egalax_ts@4 {
334 compatible = "eeti,egalax_ts"; 334 compatible = "eeti,egalax_ts";
335 reg = <0x04>; 335 reg = <0x04>;
336 interrupt-parent = <&gpio7>; 336 interrupt-parent = <&gpio7>;
@@ -392,127 +392,124 @@
392}; 392};
393 393
394&iomuxc { 394&iomuxc {
395 imx6q-gw5400-a { 395 pinctrl_audmux: audmuxgrp {
396 396 fsl,pins = <
397 pinctrl_audmux: audmuxgrp { 397 MX6QDL_PAD_SD2_DAT0__AUD4_RXD 0x130b0
398 fsl,pins = < 398 MX6QDL_PAD_SD2_DAT3__AUD4_TXC 0x130b0
399 MX6QDL_PAD_SD2_DAT0__AUD4_RXD 0x130b0 399 MX6QDL_PAD_SD2_DAT2__AUD4_TXD 0x110b0
400 MX6QDL_PAD_SD2_DAT3__AUD4_TXC 0x130b0 400 MX6QDL_PAD_SD2_DAT1__AUD4_TXFS 0x130b0
401 MX6QDL_PAD_SD2_DAT2__AUD4_TXD 0x110b0 401 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0 /* AUD4_MCK */
402 MX6QDL_PAD_SD2_DAT1__AUD4_TXFS 0x130b0 402 >;
403 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0 /* AUD4_MCK */ 403 };
404 >;
405 };
406 404
407 pinctrl_ecspi1: ecspi1grp { 405 pinctrl_ecspi1: ecspi1grp {
408 fsl,pins = < 406 fsl,pins = <
409 MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1 407 MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1
410 MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1 408 MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1
411 MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1 409 MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1
412 MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x1b0b0 /* SPINOR_CS0# */ 410 MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x1b0b0 /* SPINOR_CS0# */
413 >; 411 >;
414 }; 412 };
415 413
416 pinctrl_enet: enetgrp { 414 pinctrl_enet: enetgrp {
417 fsl,pins = < 415 fsl,pins = <
418 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030 416 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
419 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030 417 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030
420 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030 418 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030
421 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030 419 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
422 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030 420 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
423 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030 421 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
424 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030 422 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
425 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030 423 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
426 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030 424 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
427 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030 425 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
428 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030 426 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
429 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030 427 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
430 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 428 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
431 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 429 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
432 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 430 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
433 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8 431 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
434 >; 432 >;
435 }; 433 };
436 434
437 pinctrl_gpio_leds: gpioledsgrp { 435 pinctrl_gpio_leds: gpioledsgrp {
438 fsl,pins = < 436 fsl,pins = <
439 MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1b0b0 /* user1 led */ 437 MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1b0b0 /* user1 led */
440 MX6QDL_PAD_KEY_COL2__GPIO4_IO10 0x1b0b0 /* user2 led */ 438 MX6QDL_PAD_KEY_COL2__GPIO4_IO10 0x1b0b0 /* user2 led */
441 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b0 /* user3 led */ 439 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b0 /* user3 led */
442 >; 440 >;
443 }; 441 };
444 442
445 pinctrl_i2c1: i2c1grp { 443 pinctrl_i2c1: i2c1grp {
446 fsl,pins = < 444 fsl,pins = <
447 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 445 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
448 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 446 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
449 >; 447 >;
450 }; 448 };
451 449
452 pinctrl_i2c2: i2c2grp { 450 pinctrl_i2c2: i2c2grp {
453 fsl,pins = < 451 fsl,pins = <
454 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 452 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
455 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 453 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
456 >; 454 >;
457 }; 455 };
458 456
459 pinctrl_i2c3: i2c3grp { 457 pinctrl_i2c3: i2c3grp {
460 fsl,pins = < 458 fsl,pins = <
461 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1 459 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
462 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1 460 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
463 >; 461 >;
464 }; 462 };
465 463
466 pinctrl_pcie: pciegrp { 464 pinctrl_pcie: pciegrp {
467 fsl,pins = < 465 fsl,pins = <
468 MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1b0b0 /* PCIE IRQ */ 466 MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1b0b0 /* PCIE IRQ */
469 MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0 /* PCIE RST */ 467 MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0 /* PCIE RST */
470 >; 468 >;
471 }; 469 };
472 470
473 pinctrl_pps: ppsgrp { 471 pinctrl_pps: ppsgrp {
474 fsl,pins = < 472 fsl,pins = <
475 MX6QDL_PAD_GPIO_5__GPIO1_IO05 0x1b0b0 /* GPS_PPS */ 473 MX6QDL_PAD_GPIO_5__GPIO1_IO05 0x1b0b0 /* GPS_PPS */
476 >; 474 >;
477 }; 475 };
478 476
479 pinctrl_uart1: uart1grp { 477 pinctrl_uart1: uart1grp {
480 fsl,pins = < 478 fsl,pins = <
481 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1 479 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
482 MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1 480 MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1
483 >; 481 >;
484 }; 482 };
485 483
486 pinctrl_uart2: uart2grp { 484 pinctrl_uart2: uart2grp {
487 fsl,pins = < 485 fsl,pins = <
488 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1 486 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
489 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1 487 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1
490 >; 488 >;
491 }; 489 };
492 490
493 pinctrl_uart5: uart5grp { 491 pinctrl_uart5: uart5grp {
494 fsl,pins = < 492 fsl,pins = <
495 MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1 493 MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1
496 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1 494 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1
497 >; 495 >;
498 }; 496 };
499 497
500 pinctrl_usbotg: usbotggrp { 498 pinctrl_usbotg: usbotggrp {
501 fsl,pins = < 499 fsl,pins = <
502 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059 500 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
503 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 /* OTG_PWR_EN */ 501 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 /* OTG_PWR_EN */
504 >; 502 >;
505 }; 503 };
506 504
507 pinctrl_usdhc3: usdhc3grp { 505 pinctrl_usdhc3: usdhc3grp {
508 fsl,pins = < 506 fsl,pins = <
509 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 507 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
510 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 508 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
511 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059 509 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
512 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 510 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
513 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 511 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
514 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 512 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
515 >; 513 >;
516 };
517 }; 514 };
518}; 515};
diff --git a/arch/arm/boot/dts/imx6q-h100.dts b/arch/arm/boot/dts/imx6q-h100.dts
index 8f9252889971..a3269f57df2b 100644
--- a/arch/arm/boot/dts/imx6q-h100.dts
+++ b/arch/arm/boot/dts/imx6q-h100.dts
@@ -185,7 +185,7 @@
185 reg = <0x68>; 185 reg = <0x68>;
186 }; 186 };
187 187
188 sgtl5000: sgtl5000@0a { 188 sgtl5000: sgtl5000@a {
189 compatible = "fsl,sgtl5000"; 189 compatible = "fsl,sgtl5000";
190 reg = <0x0a>; 190 reg = <0x0a>;
191 pinctrl-names = "default"; 191 pinctrl-names = "default";
@@ -195,7 +195,7 @@
195 VDDIO-supply = <&reg_3p3v>; 195 VDDIO-supply = <&reg_3p3v>;
196 }; 196 };
197 197
198 tc358743: tc358743@0f { 198 tc358743: tc358743@f {
199 compatible = "toshiba,tc358743"; 199 compatible = "toshiba,tc358743";
200 reg = <0x0f>; 200 reg = <0x0f>;
201 pinctrl-names = "default"; 201 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/imx6q-icore-rqs.dts b/arch/arm/boot/dts/imx6q-icore-rqs.dts
index e451b4ceb4d8..b81f48c6a8c6 100644
--- a/arch/arm/boot/dts/imx6q-icore-rqs.dts
+++ b/arch/arm/boot/dts/imx6q-icore-rqs.dts
@@ -47,30 +47,6 @@
47/ { 47/ {
48 model = "Engicam i.CoreM6 Quad/Dual RQS Starter Kit"; 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
51 sound {
52 compatible = "fsl,imx-audio-sgtl5000";
53 model = "imx-audio-sgtl5000";
54 ssi-controller = <&ssi1>;
55 audio-codec = <&codec>;
56 audio-routing =
57 "MIC_IN", "Mic Jack",
58 "Mic Jack", "Mic Bias",
59 "Headphone Jack", "HP_OUT";
60 mux-int-port = <1>;
61 mux-ext-port = <4>;
62 };
63};
64
65&i2c3 {
66 codec: sgtl5000@0a {
67 compatible = "fsl,sgtl5000";
68 reg = <0x0a>;
69 clocks = <&clks IMX6QDL_CLK_CKO>;
70 VDDA-supply = <&reg_2p5v>;
71 VDDIO-supply = <&reg_3p3v>;
72 VDDD-supply = <&reg_1p8v>;
73 };
74}; 50};
75 51
76&sata { 52&sata {
diff --git a/arch/arm/boot/dts/imx6q-mccmon6.dts b/arch/arm/boot/dts/imx6q-mccmon6.dts
index eedbe737420c..cab36f48d5f1 100644
--- a/arch/arm/boot/dts/imx6q-mccmon6.dts
+++ b/arch/arm/boot/dts/imx6q-mccmon6.dts
@@ -121,7 +121,7 @@
121 pinctrl-0 = <&pinctrl_i2c2>; 121 pinctrl-0 = <&pinctrl_i2c2>;
122 status = "okay"; 122 status = "okay";
123 123
124 pfuze100: pmic@08 { 124 pfuze100: pmic@8 {
125 compatible = "fsl,pfuze100"; 125 compatible = "fsl,pfuze100";
126 reg = <0x08>; 126 reg = <0x08>;
127 127
diff --git a/arch/arm/boot/dts/imx6q-novena.dts b/arch/arm/boot/dts/imx6q-novena.dts
index d83cfb6ec598..7d7dc59507cf 100644
--- a/arch/arm/boot/dts/imx6q-novena.dts
+++ b/arch/arm/boot/dts/imx6q-novena.dts
@@ -158,7 +158,6 @@
158 regulator-max-microvolt = <1500000>; 158 regulator-max-microvolt = <1500000>;
159 gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>; 159 gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
160 enable-active-high; 160 enable-active-high;
161 regulator-always-on;
162 }; 161 };
163 162
164 reg_sata: regulator-sata { 163 reg_sata: regulator-sata {
@@ -255,7 +254,7 @@
255 reg = <0x68>; 254 reg = <0x68>;
256 }; 255 };
257 256
258 sbs_battery: bq20z75@0b { 257 sbs_battery: bq20z75@b {
259 compatible = "sbs,sbs-battery"; 258 compatible = "sbs,sbs-battery";
260 reg = <0x0b>; 259 reg = <0x0b>;
261 sbs,i2c-retry-count = <50>; 260 sbs,i2c-retry-count = <50>;
@@ -295,7 +294,7 @@
295 pinctrl-0 = <&pinctrl_i2c2_novena>; 294 pinctrl-0 = <&pinctrl_i2c2_novena>;
296 status = "okay"; 295 status = "okay";
297 296
298 pmic: pfuze100@08 { 297 pmic: pfuze100@8 {
299 compatible = "fsl,pfuze100"; 298 compatible = "fsl,pfuze100";
300 reg = <0x08>; 299 reg = <0x08>;
301 300
@@ -447,6 +446,7 @@
447 pinctrl-names = "default"; 446 pinctrl-names = "default";
448 pinctrl-0 = <&pinctrl_pcie_novena>; 447 pinctrl-0 = <&pinctrl_pcie_novena>;
449 reset-gpio = <&gpio3 29 GPIO_ACTIVE_LOW>; 448 reset-gpio = <&gpio3 29 GPIO_ACTIVE_LOW>;
449 vpcie-supply = <&reg_pcie>;
450 status = "okay"; 450 status = "okay";
451}; 451};
452 452
diff --git a/arch/arm/boot/dts/imx6q-pistachio.dts b/arch/arm/boot/dts/imx6q-pistachio.dts
new file mode 100644
index 000000000000..1effb58f304c
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-pistachio.dts
@@ -0,0 +1,693 @@
1/*
2 * Copyright (C) 2017 NutsBoard.Org
3 *
4 * Author: Wig Cheng <onlywig@gmail.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/dts-v1/;
46
47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/input/input.h>
49#include "imx6q.dtsi"
50
51/ {
52 model = "NutsBoard i.MX6 Quad Pistachio board";
53 compatible = "nutsboard,imx6q-pistachio", "fsl,imx6q";
54
55 chosen {
56 stdout-path = &uart4;
57 };
58
59 memory: memory {
60 reg = <0x10000000 0x80000000>;
61 };
62
63 reg_3p3v: regulator-3p3v {
64 compatible = "regulator-fixed";
65 regulator-name = "3P3V";
66 regulator-min-microvolt = <3300000>;
67 regulator-max-microvolt = <3300000>;
68 };
69
70 reg_1p8v: regulator-1p8v {
71 compatible = "regulator-fixed";
72 regulator-name = "1P8V";
73 regulator-min-microvolt = <1800000>;
74 regulator-max-microvolt = <1800000>;
75 };
76
77 wlan_en_reg: regulator-wlan_en {
78 compatible = "regulator-fixed";
79 regulator-name = "wlan-en-regulator";
80 regulator-min-microvolt = <1800000>;
81 regulator-max-microvolt = <1800000>;
82 gpio = <&gpio2 24 GPIO_ACTIVE_HIGH>;
83 startup-delay-us = <70000>;
84 enable-active-high;
85 };
86
87 reg_usb_otg_vbus: regulator-usb_vbus {
88 compatible = "regulator-fixed";
89 regulator-name = "usb_otg_vbus";
90 regulator-min-microvolt = <5000000>;
91 regulator-max-microvolt = <5000000>;
92 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
93 enable-active-high;
94 vin-supply = <&swbst_reg>;
95 };
96
97 gpio-keys {
98 compatible = "gpio-keys";
99 pinctrl-names = "default";
100 pinctrl-0 = <&pinctrl_gpio_keys>;
101
102 power {
103 label = "Power Button";
104 gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
105 gpio-key,wakeup;
106 linux,code = <KEY_POWER>;
107 };
108 };
109
110 sound {
111 compatible = "fsl,imx-sgtl5000",
112 "fsl,imx-audio-sgtl5000";
113 model = "audio-sgtl5000";
114 ssi-controller = <&ssi1>;
115 audio-codec = <&codec>;
116 audio-routing =
117 "MIC_IN", "Mic Jack",
118 "Mic Jack", "Mic Bias",
119 "Headphone Jack", "HP_OUT";
120 mux-int-port = <1>;
121 mux-ext-port = <3>;
122 };
123
124 backlight_lvds: backlight-lvds {
125 compatible = "pwm-backlight";
126 pwms = <&pwm1 0 50000>;
127 brightness-levels = <
128 0 /*1 2 3 4 5 6*/ 7 8 9
129 10 11 12 13 14 15 16 17 18 19
130 20 21 22 23 24 25 26 27 28 29
131 30 31 32 33 34 35 36 37 38 39
132 40 41 42 43 44 45 46 47 48 49
133 50 51 52 53 54 55 56 57 58 59
134 60 61 62 63 64 65 66 67 68 69
135 70 71 72 73 74 75 76 77 78 79
136 80 81 82 83 84 85 86 87 88 89
137 90 91 92 93 94 95 96 97 98 99
138 100
139 >;
140 default-brightness-level = <94>;
141 status = "okay";
142 };
143
144 panel {
145 compatible = "hannstar,hsd100pxn1";
146 backlight = <&backlight_lvds>;
147
148 port {
149 panel_in: endpoint {
150 remote-endpoint = <&lvds0_out>;
151 };
152 };
153 };
154};
155
156&audmux {
157 pinctrl-names = "default";
158 pinctrl-0 = <&pinctrl_audmux>;
159 status = "okay";
160};
161
162&can2 {
163 pinctrl-names = "default";
164 pinctrl-0 = <&pinctrl_flexcan2>;
165 status = "okay";
166};
167
168&clks {
169 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
170 <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
171 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
172 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
173};
174
175&fec {
176 pinctrl-names = "default";
177 pinctrl-0 = <&pinctrl_enet>;
178 phy-mode = "rgmii";
179 status = "okay";
180};
181
182&hdmi {
183 ddc-i2c-bus = <&i2c2>;
184 status = "okay";
185};
186
187&i2c1 {
188 clock-frequency = <100000>;
189 pinctrl-names = "default";
190 pinctrl-0 = <&pinctrl_i2c1>;
191 status = "okay";
192
193 codec: sgtl5000@a {
194 compatible = "fsl,sgtl5000";
195 pinctrl-names = "default";
196 pinctrl-0 = <&pinctrl_i2c1_sgtl5000>;
197 reg = <0x0a>;
198 clocks = <&clks IMX6QDL_CLK_CKO>;
199 VDDA-supply = <&reg_1p8v>;
200 VDDIO-supply = <&reg_1p8v>;
201 };
202};
203
204&i2c2 {
205 clock-frequency = <100000>;
206 pinctrl-names = "default";
207 pinctrl-0 = <&pinctrl_i2c2>;
208 status = "okay";
209
210 pmic: pfuze100@8 {
211 compatible = "fsl,pfuze100";
212 reg = <0x08>;
213
214 regulators {
215 sw1a_reg: sw1ab {
216 regulator-min-microvolt = <300000>;
217 regulator-max-microvolt = <1875000>;
218 regulator-boot-on;
219 regulator-always-on;
220 regulator-ramp-delay = <6250>;
221 };
222
223 sw1c_reg: sw1c {
224 regulator-min-microvolt = <300000>;
225 regulator-max-microvolt = <1875000>;
226 regulator-boot-on;
227 regulator-always-on;
228 regulator-ramp-delay = <6250>;
229 };
230
231 sw2_reg: sw2 {
232 regulator-min-microvolt = <800000>;
233 regulator-max-microvolt = <3300000>;
234 regulator-boot-on;
235 regulator-always-on;
236 regulator-ramp-delay = <6250>;
237 };
238
239 sw3a_reg: sw3a {
240 regulator-min-microvolt = <400000>;
241 regulator-max-microvolt = <1975000>;
242 regulator-boot-on;
243 regulator-always-on;
244 };
245
246 sw3b_reg: sw3b {
247 regulator-min-microvolt = <400000>;
248 regulator-max-microvolt = <1975000>;
249 regulator-boot-on;
250 regulator-always-on;
251 };
252
253 sw4_reg: sw4 {
254 regulator-min-microvolt = <800000>;
255 regulator-max-microvolt = <3300000>;
256 };
257
258 swbst_reg: swbst {
259 regulator-min-microvolt = <5000000>;
260 regulator-max-microvolt = <5150000>;
261 };
262
263 snvs_reg: vsnvs {
264 regulator-min-microvolt = <1000000>;
265 regulator-max-microvolt = <3000000>;
266 regulator-boot-on;
267 regulator-always-on;
268 };
269
270 vref_reg: vrefddr {
271 regulator-boot-on;
272 regulator-always-on;
273 };
274
275 vgen1_reg: vgen1 {
276 regulator-min-microvolt = <800000>;
277 regulator-max-microvolt = <1550000>;
278 };
279
280 vgen2_reg: vgen2 {
281 regulator-min-microvolt = <800000>;
282 regulator-max-microvolt = <1550000>;
283 };
284
285 vgen3_reg: vgen3 {
286 regulator-min-microvolt = <1800000>;
287 regulator-max-microvolt = <3300000>;
288 };
289
290 vgen4_reg: vgen4 {
291 regulator-min-microvolt = <1800000>;
292 regulator-max-microvolt = <3300000>;
293 regulator-always-on;
294 };
295
296 vgen5_reg: vgen5 {
297 regulator-min-microvolt = <1800000>;
298 regulator-max-microvolt = <3300000>;
299 regulator-always-on;
300 };
301 vgen6_reg: vgen6 {
302 regulator-min-microvolt = <1800000>;
303 regulator-max-microvolt = <3300000>;
304 regulator-always-on;
305 };
306 };
307 };
308
309 ar1021@4d {
310 compatible = "microchip,ar1021-i2c";
311 reg = <0x4d>;
312 interrupt-parent = <&gpio6>;
313 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
314 };
315};
316
317&i2c3 {
318 clock-frequency = <100000>;
319 pinctrl-names = "default";
320 pinctrl-0 = <&pinctrl_i2c3>;
321 status = "okay";
322};
323
324&iomuxc {
325 pinctrl-names = "default";
326
327 pinctrl_hog: hoggrp {
328 fsl,pins = <
329 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 /*pcie power*/
330 MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x1b0b0 /*LCD power*/
331 MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x1b0b0 /*backlight power*/
332 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b1 /*SD3 CD pin*/
333 MX6QDL_PAD_KEY_COL2__GPIO4_IO10 0x1b0b0 /*codec power*/
334 MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x1b0b0 /*touch reset*/
335 MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x1b0b01 /*touch irq*/
336 MX6QDL_PAD_GPIO_7__GPIO1_IO07 0x1b0b0/*backlight pwr*/
337 MX6QDL_PAD_GPIO_16__GPIO7_IO11 0x1b0b0 /*gpio 5V_1*/
338 MX6QDL_PAD_EIM_A19__GPIO2_IO19 0x1b0b0 /*gpio 5V_2*/
339 MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x1b0b0 /*gpio 5V_3*/
340 MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b0 /*gpio 5V_4*/
341 MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x1b0b0 /*AUX_5V_EN*/
342 MX6QDL_PAD_NANDF_WP_B__GPIO6_IO09 0x1b0b0 /*AUX_5VB_EN*/
343 MX6QDL_PAD_NANDF_RB0__GPIO6_IO10 0x1b0b0 /*AUX_3V3_EN*/
344 MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x1b0b0 /*I2C expander pwr*/
345 >;
346 };
347
348 pinctrl_audmux: audmuxgrp {
349 fsl,pins = <
350 MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x130b0
351 MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x130b0
352 MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x110b0
353 MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x130b0
354 >;
355 };
356
357 pinctrl_ecspi1: ecspi1grp {
358 fsl,pins = <
359 MX6QDL_PAD_KEY_COL1__ECSPI1_MISO 0x100b1
360 MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI 0x100b1
361 MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK 0x100b1
362 MX6QDL_PAD_KEY_ROW1__GPIO4_IO09 0x1b0b0
363 >;
364 };
365
366 pinctrl_enet: enetgrp {
367 fsl,pins = <
368 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b8b0
369 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
370 /* AR8035 reset */
371 MX6QDL_PAD_EIM_A20__GPIO2_IO18 0x130b0
372 /* AR8035 interrupt */
373 MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x1b0b1
374 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
375 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
376 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
377 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
378 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
379 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
380 /* AR8035 CLK_25M --> ENET_REF_CLK (V22) */
381 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x0a0b1
382 /* AR8035 pin strapping: IO voltage: pull up */
383 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
384 /* AR8035 pin strapping: PHYADDR#0: pull down */
385 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x13030
386 /* AR8035 pin strapping: PHYADDR#1: pull down */
387 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x13030
388 /* AR8035 pin strapping: MODE#1: pull up */
389 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
390 /* AR8035 pin strapping: MODE#3: pull up */
391 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
392 /* AR8035 pin strapping: MODE#0: pull down */
393 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x13030
394 >;
395 };
396
397 pinctrl_flexcan2: flexcan2grp {
398 fsl,pins = <
399 MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x1b0b0
400 MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x1b0b0
401 >;
402 };
403
404 pinctrl_gpio_keys: gpio_keysgrp {
405 fsl,pins = <
406 MX6QDL_PAD_SD4_DAT4__GPIO2_IO12 0x1b0b0
407 >;
408 };
409
410 pinctrl_hdmi_cec: hdmicecgrp {
411 fsl,pins = <
412 MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x108b0
413 >;
414 };
415
416 pinctrl_i2c1: i2c1grp {
417 fsl,pins = <
418 MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1
419 MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001b8b1
420 >;
421 };
422
423 pinctrl_i2c2: i2c2grp {
424 fsl,pins = <
425 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
426 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
427 >;
428 };
429
430 pinctrl_i2c3: i2c3grp {
431 fsl,pins = <
432 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
433 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
434 >;
435 };
436
437 pinctrl_i2c1_sgtl5000: i2c1-sgtl5000grp {
438 fsl,pins = <
439 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x000b0 /* sys_mclk */
440 MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x130b0 /*headphone det*/
441 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x130b0 /*microphone det*/
442 >;
443 };
444
445 pinctrl_pwm1: pwm1grp {
446 fsl,pins = <
447 MX6QDL_PAD_GPIO_9__PWM1_OUT 0x1b0b1
448 >;
449 };
450
451 pinctrl_uart1: uart1grp {
452 fsl,pins = <
453 MX6QDL_PAD_CSI0_DAT10__UART1_RX_DATA 0x1b0b1
454 MX6QDL_PAD_CSI0_DAT11__UART1_TX_DATA 0x1b0b1
455 MX6QDL_PAD_EIM_D20__UART1_CTS_B 0x1b0b1
456 MX6QDL_PAD_EIM_D19__UART1_RTS_B 0x1b0b1
457 MX6QDL_PAD_EIM_D23__UART1_DCD_B 0x1b0b0
458 MX6QDL_PAD_EIM_D24__UART1_DTR_B 0x1b0b0
459 MX6QDL_PAD_EIM_D25__UART1_DSR_B 0x1b0b0
460 >;
461 };
462
463 pinctrl_uart2: uart2grp {
464 fsl,pins = <
465 MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1
466 MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1
467 MX6QDL_PAD_EIM_D28__UART2_CTS_B 0x1b0b1
468 MX6QDL_PAD_EIM_D29__UART2_RTS_B 0x1b0b1
469 >;
470 };
471
472 pinctrl_uart3: uart3grp {
473 fsl,pins = <
474 MX6QDL_PAD_SD4_CLK__UART3_RX_DATA 0x1b0b1
475 MX6QDL_PAD_SD4_CMD__UART3_TX_DATA 0x1b0b1
476 MX6QDL_PAD_EIM_D30__UART3_CTS_B 0x1b0b1
477 MX6QDL_PAD_EIM_D31__UART3_RTS_B 0x1b0b1
478 >;
479 };
480
481 pinctrl_uart4: uart4grp {
482 fsl,pins = <
483 MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x1b0b1
484 MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x1b0b1
485 MX6QDL_PAD_CSI0_DAT16__UART4_RTS_B 0x1b0b1
486 MX6QDL_PAD_CSI0_DAT17__UART4_CTS_B 0x1b0b1
487 >;
488 };
489
490 pinctrl_uart5: uart5grp {
491 fsl,pins = <
492 MX6QDL_PAD_CSI0_DAT14__UART5_TX_DATA 0x1b0b1
493 MX6QDL_PAD_CSI0_DAT15__UART5_RX_DATA 0x1b0b1
494 MX6QDL_PAD_CSI0_DAT18__UART5_RTS_B 0x1b0b1
495 MX6QDL_PAD_CSI0_DAT19__UART5_CTS_B 0x1b0b1
496 MX6QDL_PAD_EIM_A21__GPIO2_IO17 0x15059 /*BT_EN*/
497 >;
498 };
499
500 pinctrl_usbotg: usbotggrp {
501 fsl,pins = <
502 MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059
503 >;
504 };
505
506 pinctrl_usdhc1: usdhc1grp {
507 fsl,pins = <
508 MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17059
509 MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10059
510 MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17059
511 MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17059
512 MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17059
513 MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17059
514 MX6QDL_PAD_NANDF_D0__SD1_DATA4 0x17059
515 MX6QDL_PAD_NANDF_D1__SD1_DATA5 0x17059
516 MX6QDL_PAD_NANDF_D2__SD1_DATA6 0x17059
517 MX6QDL_PAD_NANDF_D3__SD1_DATA7 0x17059
518 >;
519 };
520
521 pinctrl_usdhc2: usdhc2grp {
522 fsl,pins = <
523 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059
524 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059
525 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
526 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
527 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
528 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059
529 MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x15059 /*WL_EN_LDO*/
530 MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x15059 /*WL_EN*/
531 MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x15059 /*WL_IRQ*/
532 >;
533 };
534
535 pinctrl_usdhc3: usdhc3grp {
536 fsl,pins = <
537 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17071
538 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10071
539 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17071
540 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17071
541 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17071
542 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17071
543 >;
544 };
545
546 pinctrl_wdog: wdoggrp {
547 fsl,pins = <
548 MX6QDL_PAD_GPIO_1__WDOG2_B 0x1b0b00
549 >;
550 };
551};
552
553&ldb {
554 status = "okay";
555
556 lvds-channel@1 {
557 fsl,data-mapping = "spwg";
558 fsl,data-width = <18>;
559 status = "okay";
560
561 port@4 {
562 reg = <4>;
563
564 lvds0_out: endpoint {
565 remote-endpoint = <&panel_in>;
566 };
567 };
568 };
569};
570
571&pwm1 {
572 pinctrl-names = "default";
573 pinctrl-0 = <&pinctrl_pwm1>;
574 status = "okay";
575};
576
577&snvs_poweroff {
578 status = "okay";
579};
580
581&ssi1 {
582 status = "okay";
583};
584
585&uart1 {
586 pinctrl-names = "default";
587 pinctrl-0 = <&pinctrl_uart1>;
588 uart-has-rtscts;
589 fsl,dte-mode;
590 status = "okay";
591};
592
593&uart2 {
594 pinctrl-names = "default";
595 pinctrl-0 = <&pinctrl_uart2>;
596 uart-has-rtscts;
597 status = "okay";
598};
599
600&uart3 {
601 pinctrl-names = "default";
602 pinctrl-0 = <&pinctrl_uart3>;
603 uart-has-rtscts;
604 status = "okay";
605};
606
607&uart4 {
608 pinctrl-names = "default";
609 pinctrl-0 = <&pinctrl_uart4>;
610 uart-has-rtscts;
611 status = "okay";
612};
613
614&uart5 {
615 pinctrl-names = "default";
616 pinctrl-0 = <&pinctrl_uart5>;
617 fsl,uart-has-rtscts;
618 status = "okay";
619};
620
621&usbotg {
622 vbus-supply = <&reg_usb_otg_vbus>;
623 pinctrl-names = "default";
624 pinctrl-0 = <&pinctrl_usbotg>;
625 disable-over-current;
626 srp-disable;
627 hnp-disable;
628 adp-disable;
629 status = "okay";
630};
631
632&usbh1 {
633 status = "okay";
634};
635
636&usbphy1 {
637 fsl,tx-d-cal = <0x5>;
638};
639
640&usbphy2 {
641 fsl,tx-d-cal = <0x5>;
642};
643
644&usdhc1 {
645 pinctrl-names = "default";
646 pinctrl-0 = <&pinctrl_usdhc1>;
647 bus-width = <8>;
648 keep-power-in-suspend;
649 vmmc-supply = <&reg_3p3v>;
650 status = "okay";
651};
652
653&usdhc2 {
654 pinctrl-names = "default";
655 pinctrl-0 = <&pinctrl_usdhc2>;
656 bus-width = <4>;
657 vmmc-supply = <&wlan_en_reg>;
658 no-1-8-v;
659 keep-power-in-suspend;
660 non-removable;
661 cap-power-off-card;
662 status = "okay";
663
664 #address-cells = <1>;
665 #size-cells = <0>;
666 wlcore: wlcore@2 {
667 compatible = "ti,wl1835";
668 reg = <2>;
669 interrupt-parent = <&gpio5>;
670 interrupts = <18 IRQ_TYPE_LEVEL_HIGH>;
671 ref-clock-frequency = <38400000>;
672 tcxo-clock-frequency = <26000000>;
673 };
674};
675
676&usdhc3 {
677 pinctrl-names = "default";
678 pinctrl-0 = <&pinctrl_usdhc3>;
679 bus-width = <4>;
680 cd-gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
681 no-1-8-v;
682 keep-power-in-suspend;
683 wakeup-source;
684 status = "okay";
685};
686
687&sata {
688 status = "okay";
689};
690
691&wdog1 {
692 status = "okay";
693};
diff --git a/arch/arm/boot/dts/imx6q-tbs2910.dts b/arch/arm/boot/dts/imx6q-tbs2910.dts
index 06f492e17ca7..a3cd7afac20a 100644
--- a/arch/arm/boot/dts/imx6q-tbs2910.dts
+++ b/arch/arm/boot/dts/imx6q-tbs2910.dts
@@ -158,7 +158,7 @@
158 pinctrl-0 = <&pinctrl_i2c1>; 158 pinctrl-0 = <&pinctrl_i2c1>;
159 status = "okay"; 159 status = "okay";
160 160
161 sgtl5000: sgtl5000@0a { 161 sgtl5000: sgtl5000@a {
162 clocks = <&clks IMX6QDL_CLK_CKO>; 162 clocks = <&clks IMX6QDL_CLK_CKO>;
163 compatible = "fsl,sgtl5000"; 163 compatible = "fsl,sgtl5000";
164 pinctrl-names = "default"; 164 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/imx6q-tx6q-1010-comtft.dts b/arch/arm/boot/dts/imx6q-tx6q-1010-comtft.dts
index 71746edc2ee9..ac3050a835e5 100644
--- a/arch/arm/boot/dts/imx6q-tx6q-1010-comtft.dts
+++ b/arch/arm/boot/dts/imx6q-tx6q-1010-comtft.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright 2014-2016 Lothar Waßmann <LW@KARO-electronics.de> 2 * Copyright 2014-2017 Lothar Waßmann <LW@KARO-electronics.de>
3 * 3 *
4 * This file is dual-licensed: you can use it either under the terms 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 5 * of the GPL or the X11 license, at your option. Note that this dual
@@ -42,70 +42,16 @@
42/dts-v1/; 42/dts-v1/;
43#include "imx6q.dtsi" 43#include "imx6q.dtsi"
44#include "imx6qdl-tx6.dtsi" 44#include "imx6qdl-tx6.dtsi"
45#include "imx6qdl-tx6-lcd.dtsi"
45 46
46/ { 47/ {
47 model = "Ka-Ro electronics TX6Q-1010 Module on CoMpact TFT"; 48 model = "Ka-Ro electronics TX6Q-1010 Module on CoMpact TFT";
48 compatible = "karo,imx6q-tx6q", "fsl,imx6q"; 49 compatible = "karo,imx6q-tx6q", "fsl,imx6q";
50};
49 51
50 aliases { 52&backlight {
51 display = &display; 53 pwms = <&pwm2 0 500000 0>;
52 }; 54 /delete-property/ turn-on-delay-ms;
53
54 backlight: backlight {
55 compatible = "pwm-backlight";
56 pwms = <&pwm2 0 500000 0>;
57 power-supply = <&reg_3v3>;
58 /*
59 * a poor man's way to create a 1:1 relationship between
60 * the PWM value and the actual duty cycle
61 */
62 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
63 10 11 12 13 14 15 16 17 18 19
64 20 21 22 23 24 25 26 27 28 29
65 30 31 32 33 34 35 36 37 38 39
66 40 41 42 43 44 45 46 47 48 49
67 50 51 52 53 54 55 56 57 58 59
68 60 61 62 63 64 65 66 67 68 69
69 70 71 72 73 74 75 76 77 78 79
70 80 81 82 83 84 85 86 87 88 89
71 90 91 92 93 94 95 96 97 98 99
72 100>;
73 default-brightness-level = <50>;
74 };
75
76 display: display@di0 {
77 compatible = "fsl,imx-parallel-display";
78 interface-pix-fmt = "rgb24";
79 pinctrl-names = "default";
80 pinctrl-0 = <&pinctrl_disp0_1>;
81 status = "okay";
82
83 port {
84 display0_in: endpoint {
85 remote-endpoint = <&ipu1_di0_disp0>;
86 };
87 };
88
89 display-timings {
90 native-mode = <&ET070001DM6>;
91
92 ET070001DM6: CoMTFT { /* same as ET0700 but with inverted pixel clock */
93 clock-frequency = <33264000>;
94 hactive = <800>;
95 vactive = <480>;
96 hback-porch = <88>;
97 hsync-len = <128>;
98 hfront-porch = <40>;
99 vback-porch = <33>;
100 vsync-len = <2>;
101 vfront-porch = <10>;
102 hsync-active = <0>;
103 vsync-active = <0>;
104 de-active = <1>;
105 pixelclk-active = <1>;
106 };
107 };
108 };
109}; 55};
110 56
111&can1 { 57&can1 {
@@ -116,14 +62,14 @@
116 xceiver-supply = <&reg_3v3>; 62 xceiver-supply = <&reg_3v3>;
117}; 63};
118 64
119&ipu1_di0_disp0 {
120 remote-endpoint = <&display0_in>;
121};
122
123&kpp { 65&kpp {
124 status = "disabled"; 66 status = "disabled";
125}; 67};
126 68
69&lcd_panel {
70 compatible = "edt,etm0700g0edh6";
71};
72
127&reg_can_xcvr { 73&reg_can_xcvr {
128 status = "disabled"; 74 status = "disabled";
129}; 75};
diff --git a/arch/arm/boot/dts/imx6q-tx6q-1010.dts b/arch/arm/boot/dts/imx6q-tx6q-1010.dts
index f9cd21a41a79..4ee860b626ff 100644
--- a/arch/arm/boot/dts/imx6q-tx6q-1010.dts
+++ b/arch/arm/boot/dts/imx6q-tx6q-1010.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright 2014-2016 Lothar Waßmann <LW@KARO-electronics.de> 2 * Copyright 2014-2017 Lothar Waßmann <LW@KARO-electronics.de>
3 * 3 *
4 * This file is dual-licensed: you can use it either under the terms 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 5 * of the GPL or the X11 license, at your option. Note that this dual
@@ -42,166 +42,13 @@
42/dts-v1/; 42/dts-v1/;
43#include "imx6q.dtsi" 43#include "imx6q.dtsi"
44#include "imx6qdl-tx6.dtsi" 44#include "imx6qdl-tx6.dtsi"
45#include "imx6qdl-tx6-lcd.dtsi"
45 46
46/ { 47/ {
47 model = "Ka-Ro electronics TX6Q-1010 Module"; 48 model = "Ka-Ro electronics TX6Q-1010/-1030 Module";
48 compatible = "karo,imx6q-tx6q", "fsl,imx6q"; 49 compatible = "karo,imx6q-tx6q", "fsl,imx6q";
49
50 aliases {
51 display = &display;
52 };
53
54 backlight: backlight {
55 compatible = "pwm-backlight";
56 pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
57 power-supply = <&reg_3v3>;
58 /*
59 * a poor man's way to create a 1:1 relationship between
60 * the PWM value and the actual duty cycle
61 */
62 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
63 10 11 12 13 14 15 16 17 18 19
64 20 21 22 23 24 25 26 27 28 29
65 30 31 32 33 34 35 36 37 38 39
66 40 41 42 43 44 45 46 47 48 49
67 50 51 52 53 54 55 56 57 58 59
68 60 61 62 63 64 65 66 67 68 69
69 70 71 72 73 74 75 76 77 78 79
70 80 81 82 83 84 85 86 87 88 89
71 90 91 92 93 94 95 96 97 98 99
72 100>;
73 default-brightness-level = <50>;
74 };
75
76 display: display@di0 {
77 compatible = "fsl,imx-parallel-display";
78 interface-pix-fmt = "rgb24";
79 pinctrl-names = "default";
80 pinctrl-0 = <&pinctrl_disp0_1>;
81 status = "okay";
82
83 port {
84 display0_in: endpoint {
85 remote-endpoint = <&ipu1_di0_disp0>;
86 };
87 };
88
89 display-timings {
90 VGA {
91 clock-frequency = <25200000>;
92 hactive = <640>;
93 vactive = <480>;
94 hback-porch = <48>;
95 hsync-len = <96>;
96 hfront-porch = <16>;
97 vback-porch = <31>;
98 vsync-len = <2>;
99 vfront-porch = <12>;
100 hsync-active = <0>;
101 vsync-active = <0>;
102 de-active = <1>;
103 pixelclk-active = <0>;
104 };
105
106 ETV570 {
107 clock-frequency = <25200000>;
108 hactive = <640>;
109 vactive = <480>;
110 hback-porch = <114>;
111 hsync-len = <30>;
112 hfront-porch = <16>;
113 vback-porch = <32>;
114 vsync-len = <3>;
115 vfront-porch = <10>;
116 hsync-active = <0>;
117 vsync-active = <0>;
118 de-active = <1>;
119 pixelclk-active = <0>;
120 };
121
122 ET0350 {
123 clock-frequency = <6413760>;
124 hactive = <320>;
125 vactive = <240>;
126 hback-porch = <34>;
127 hsync-len = <34>;
128 hfront-porch = <20>;
129 vback-porch = <15>;
130 vsync-len = <3>;
131 vfront-porch = <4>;
132 hsync-active = <0>;
133 vsync-active = <0>;
134 de-active = <1>;
135 pixelclk-active = <0>;
136 };
137
138 ET0430 {
139 clock-frequency = <9009000>;
140 hactive = <480>;
141 vactive = <272>;
142 hback-porch = <2>;
143 hsync-len = <41>;
144 hfront-porch = <2>;
145 vback-porch = <2>;
146 vsync-len = <10>;
147 vfront-porch = <2>;
148 hsync-active = <0>;
149 vsync-active = <0>;
150 de-active = <1>;
151 pixelclk-active = <1>;
152 };
153
154 ET0500 {
155 clock-frequency = <33264000>;
156 hactive = <800>;
157 vactive = <480>;
158 hback-porch = <88>;
159 hsync-len = <128>;
160 hfront-porch = <40>;
161 vback-porch = <33>;
162 vsync-len = <2>;
163 vfront-porch = <10>;
164 hsync-active = <0>;
165 vsync-active = <0>;
166 de-active = <1>;
167 pixelclk-active = <0>;
168 };
169
170 ET0700 { /* same as ET0500 */
171 clock-frequency = <33264000>;
172 hactive = <800>;
173 vactive = <480>;
174 hback-porch = <88>;
175 hsync-len = <128>;
176 hfront-porch = <40>;
177 vback-porch = <33>;
178 vsync-len = <2>;
179 vfront-porch = <10>;
180 hsync-active = <0>;
181 vsync-active = <0>;
182 de-active = <1>;
183 pixelclk-active = <0>;
184 };
185
186 ETQ570 {
187 clock-frequency = <6596040>;
188 hactive = <320>;
189 vactive = <240>;
190 hback-porch = <38>;
191 hsync-len = <30>;
192 hfront-porch = <30>;
193 vback-porch = <16>;
194 vsync-len = <3>;
195 vfront-porch = <4>;
196 hsync-active = <0>;
197 vsync-active = <0>;
198 de-active = <1>;
199 pixelclk-active = <0>;
200 };
201 };
202 };
203}; 50};
204 51
205&ipu1_di0_disp0 { 52&ipu2 {
206 remote-endpoint = <&display0_in>; 53 status = "disabled";
207}; 54};
diff --git a/arch/arm/boot/dts/imx6q-tx6q-1020-comtft.dts b/arch/arm/boot/dts/imx6q-tx6q-1020-comtft.dts
index 959ff3fb7304..a773f252816c 100644
--- a/arch/arm/boot/dts/imx6q-tx6q-1020-comtft.dts
+++ b/arch/arm/boot/dts/imx6q-tx6q-1020-comtft.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright 2014-2016 Lothar Waßmann <LW@KARO-electronics.de> 2 * Copyright 2014-2017 Lothar Waßmann <LW@KARO-electronics.de>
3 * 3 *
4 * This file is dual-licensed: you can use it either under the terms 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 5 * of the GPL or the X11 license, at your option. Note that this dual
@@ -42,70 +42,16 @@
42/dts-v1/; 42/dts-v1/;
43#include "imx6q.dtsi" 43#include "imx6q.dtsi"
44#include "imx6qdl-tx6.dtsi" 44#include "imx6qdl-tx6.dtsi"
45#include "imx6qdl-tx6-lcd.dtsi"
45 46
46/ { 47/ {
47 model = "Ka-Ro electronics TX6Q-1020 Module on CoMpact TFT"; 48 model = "Ka-Ro electronics TX6Q-1020 Module on CoMpact TFT";
48 compatible = "karo,imx6q-tx6q", "fsl,imx6q"; 49 compatible = "karo,imx6q-tx6q", "fsl,imx6q";
50};
49 51
50 aliases { 52&backlight {
51 display = &display; 53 pwms = <&pwm2 0 500000 0>;
52 }; 54 /delete-property/ turn-on-delay-ms;
53
54 backlight: backlight {
55 compatible = "pwm-backlight";
56 pwms = <&pwm2 0 500000 0>;
57 power-supply = <&reg_3v3>;
58 /*
59 * a poor man's way to create a 1:1 relationship between
60 * the PWM value and the actual duty cycle
61 */
62 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
63 10 11 12 13 14 15 16 17 18 19
64 20 21 22 23 24 25 26 27 28 29
65 30 31 32 33 34 35 36 37 38 39
66 40 41 42 43 44 45 46 47 48 49
67 50 51 52 53 54 55 56 57 58 59
68 60 61 62 63 64 65 66 67 68 69
69 70 71 72 73 74 75 76 77 78 79
70 80 81 82 83 84 85 86 87 88 89
71 90 91 92 93 94 95 96 97 98 99
72 100>;
73 default-brightness-level = <50>;
74 };
75
76 display: display@di0 {
77 compatible = "fsl,imx-parallel-display";
78 interface-pix-fmt = "rgb24";
79 pinctrl-names = "default";
80 pinctrl-0 = <&pinctrl_disp0_1>;
81 status = "okay";
82
83 port {
84 display0_in: endpoint {
85 remote-endpoint = <&ipu1_di0_disp0>;
86 };
87 };
88
89 display-timings {
90 native-mode = <&ET070001DM6>;
91
92 ET070001DM6: CoMTFT { /* same as ET0700 but with inverted pixel clock */
93 clock-frequency = <33264000>;
94 hactive = <800>;
95 vactive = <480>;
96 hback-porch = <88>;
97 hsync-len = <128>;
98 hfront-porch = <40>;
99 vback-porch = <33>;
100 vsync-len = <2>;
101 vfront-porch = <10>;
102 hsync-active = <0>;
103 vsync-active = <0>;
104 de-active = <1>;
105 pixelclk-active = <1>;
106 };
107 };
108 };
109}; 55};
110 56
111&can1 { 57&can1 {
@@ -124,14 +70,14 @@
124 status = "disabled"; 70 status = "disabled";
125}; 71};
126 72
127&ipu1_di0_disp0 {
128 remote-endpoint = <&display0_in>;
129};
130
131&kpp { 73&kpp {
132 status = "disabled"; 74 status = "disabled";
133}; 75};
134 76
77&lcd_panel {
78 compatible = "edt,etm0700g0edh6";
79};
80
135&reg_can_xcvr { 81&reg_can_xcvr {
136 status = "disabled"; 82 status = "disabled";
137}; 83};
diff --git a/arch/arm/boot/dts/imx6q-tx6q-1020.dts b/arch/arm/boot/dts/imx6q-tx6q-1020.dts
index b49133d25d80..0a4daec8d3ad 100644
--- a/arch/arm/boot/dts/imx6q-tx6q-1020.dts
+++ b/arch/arm/boot/dts/imx6q-tx6q-1020.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright 2014-2016 Lothar Waßmann <LW@KARO-electronics.de> 2 * Copyright 2014-2017 Lothar Waßmann <LW@KARO-electronics.de>
3 * 3 *
4 * This file is dual-licensed: you can use it either under the terms 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 5 * of the GPL or the X11 license, at your option. Note that this dual
@@ -42,164 +42,11 @@
42/dts-v1/; 42/dts-v1/;
43#include "imx6q.dtsi" 43#include "imx6q.dtsi"
44#include "imx6qdl-tx6.dtsi" 44#include "imx6qdl-tx6.dtsi"
45#include "imx6qdl-tx6-lcd.dtsi"
45 46
46/ { 47/ {
47 model = "Ka-Ro electronics TX6Q-1020 Module"; 48 model = "Ka-Ro electronics TX6Q-1020 Module";
48 compatible = "karo,imx6q-tx6q", "fsl,imx6q"; 49 compatible = "karo,imx6q-tx6q", "fsl,imx6q";
49
50 aliases {
51 display = &display;
52 };
53
54 backlight: backlight {
55 compatible = "pwm-backlight";
56 pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
57 power-supply = <&reg_3v3>;
58 /*
59 * a poor man's way to create a 1:1 relationship between
60 * the PWM value and the actual duty cycle
61 */
62 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
63 10 11 12 13 14 15 16 17 18 19
64 20 21 22 23 24 25 26 27 28 29
65 30 31 32 33 34 35 36 37 38 39
66 40 41 42 43 44 45 46 47 48 49
67 50 51 52 53 54 55 56 57 58 59
68 60 61 62 63 64 65 66 67 68 69
69 70 71 72 73 74 75 76 77 78 79
70 80 81 82 83 84 85 86 87 88 89
71 90 91 92 93 94 95 96 97 98 99
72 100>;
73 default-brightness-level = <50>;
74 };
75
76 display: display@di0 {
77 compatible = "fsl,imx-parallel-display";
78 interface-pix-fmt = "rgb24";
79 pinctrl-names = "default";
80 pinctrl-0 = <&pinctrl_disp0_1>;
81 status = "okay";
82
83 port {
84 display0_in: endpoint {
85 remote-endpoint = <&ipu1_di0_disp0>;
86 };
87 };
88
89 display-timings {
90 VGA {
91 clock-frequency = <25200000>;
92 hactive = <640>;
93 vactive = <480>;
94 hback-porch = <48>;
95 hsync-len = <96>;
96 hfront-porch = <16>;
97 vback-porch = <31>;
98 vsync-len = <2>;
99 vfront-porch = <12>;
100 hsync-active = <0>;
101 vsync-active = <0>;
102 de-active = <1>;
103 pixelclk-active = <0>;
104 };
105
106 ETV570 {
107 clock-frequency = <25200000>;
108 hactive = <640>;
109 vactive = <480>;
110 hback-porch = <114>;
111 hsync-len = <30>;
112 hfront-porch = <16>;
113 vback-porch = <32>;
114 vsync-len = <3>;
115 vfront-porch = <10>;
116 hsync-active = <0>;
117 vsync-active = <0>;
118 de-active = <1>;
119 pixelclk-active = <0>;
120 };
121
122 ET0350 {
123 clock-frequency = <6413760>;
124 hactive = <320>;
125 vactive = <240>;
126 hback-porch = <34>;
127 hsync-len = <34>;
128 hfront-porch = <20>;
129 vback-porch = <15>;
130 vsync-len = <3>;
131 vfront-porch = <4>;
132 hsync-active = <0>;
133 vsync-active = <0>;
134 de-active = <1>;
135 pixelclk-active = <0>;
136 };
137
138 ET0430 {
139 clock-frequency = <9009000>;
140 hactive = <480>;
141 vactive = <272>;
142 hback-porch = <2>;
143 hsync-len = <41>;
144 hfront-porch = <2>;
145 vback-porch = <2>;
146 vsync-len = <10>;
147 vfront-porch = <2>;
148 hsync-active = <0>;
149 vsync-active = <0>;
150 de-active = <1>;
151 pixelclk-active = <1>;
152 };
153
154 ET0500 {
155 clock-frequency = <33264000>;
156 hactive = <800>;
157 vactive = <480>;
158 hback-porch = <88>;
159 hsync-len = <128>;
160 hfront-porch = <40>;
161 vback-porch = <33>;
162 vsync-len = <2>;
163 vfront-porch = <10>;
164 hsync-active = <0>;
165 vsync-active = <0>;
166 de-active = <1>;
167 pixelclk-active = <0>;
168 };
169
170 ET0700 { /* same as ET0500 */
171 clock-frequency = <33264000>;
172 hactive = <800>;
173 vactive = <480>;
174 hback-porch = <88>;
175 hsync-len = <128>;
176 hfront-porch = <40>;
177 vback-porch = <33>;
178 vsync-len = <2>;
179 vfront-porch = <10>;
180 hsync-active = <0>;
181 vsync-active = <0>;
182 de-active = <1>;
183 pixelclk-active = <0>;
184 };
185
186 ETQ570 {
187 clock-frequency = <6596040>;
188 hactive = <320>;
189 vactive = <240>;
190 hback-porch = <38>;
191 hsync-len = <30>;
192 hfront-porch = <30>;
193 vback-porch = <16>;
194 vsync-len = <3>;
195 vfront-porch = <4>;
196 hsync-active = <0>;
197 vsync-active = <0>;
198 de-active = <1>;
199 pixelclk-active = <0>;
200 };
201 };
202 };
203}; 50};
204 51
205&ds1339 { 52&ds1339 {
@@ -210,14 +57,15 @@
210 status = "disabled"; 57 status = "disabled";
211}; 58};
212 59
213&ipu1_di0_disp0 { 60&ipu2 {
214 remote-endpoint = <&display0_in>; 61 status = "disabled";
215}; 62};
216 63
217&usdhc4 { 64&usdhc4 {
218 pinctrl-names = "default"; 65 pinctrl-names = "default";
219 pinctrl-0 = <&pinctrl_usdhc4>; 66 pinctrl-0 = <&pinctrl_usdhc4>;
220 bus-width = <4>; 67 bus-width = <4>;
68 non-removable;
221 no-1-8-v; 69 no-1-8-v;
222 fsl,wp-controller; 70 fsl,wp-controller;
223 status = "okay"; 71 status = "okay";
diff --git a/arch/arm/boot/dts/imx6q-tx6q-1036-mb7.dts b/arch/arm/boot/dts/imx6q-tx6q-1036-mb7.dts
new file mode 100644
index 000000000000..9ffbb0fe7df8
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-tx6q-1036-mb7.dts
@@ -0,0 +1,48 @@
1/*
2 * Copyright 2017 Lothar Waßmann <LW@KARO-electronics.de>
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/dts-v1/;
43#include "imx6q-tx6q-1036.dts"
44#include "imx6qdl-tx6-mb7.dtsi"
45
46/ {
47 model = "Ka-Ro electronics TX6Q-1036 Module on MB7 baseboard";
48};
diff --git a/arch/arm/boot/dts/imx6q-tx6q-1036.dts b/arch/arm/boot/dts/imx6q-tx6q-1036.dts
index 7c152e32758c..cb2fcb4896c6 100644
--- a/arch/arm/boot/dts/imx6q-tx6q-1036.dts
+++ b/arch/arm/boot/dts/imx6q-tx6q-1036.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright 2014-2016 Lothar Waßmann <LW@KARO-electronics.de> 2 * Copyright 2014-2017 Lothar Waßmann <LW@KARO-electronics.de>
3 * 3 *
4 * This file is dual-licensed: you can use it either under the terms 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 5 * of the GPL or the X11 license, at your option. Note that this dual
@@ -42,169 +42,11 @@
42/dts-v1/; 42/dts-v1/;
43#include "imx6q.dtsi" 43#include "imx6q.dtsi"
44#include "imx6qdl-tx6.dtsi" 44#include "imx6qdl-tx6.dtsi"
45#include "imx6qdl-tx6-lcd.dtsi"
45 46
46/ { 47/ {
47 model = "Ka-Ro electronics TX6Q-1036 Module"; 48 model = "Ka-Ro electronics TX6Q-1036 Module";
48 compatible = "karo,imx6q-tx6q", "fsl,imx6q"; 49 compatible = "karo,imx6q-tx6q", "fsl,imx6q";
49
50 aliases {
51 display = &display;
52 };
53
54 backlight: backlight {
55 compatible = "pwm-backlight";
56 pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
57 pinctrl-names = "default";
58 pinctrl-0 = <&pinctrl_lcd0_pwr>;
59 enable-gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
60 power-supply = <&reg_lcd1_pwr>;
61 /*
62 * a poor man's way to create a 1:1 relationship between
63 * the PWM value and the actual duty cycle
64 */
65 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
66 10 11 12 13 14 15 16 17 18 19
67 20 21 22 23 24 25 26 27 28 29
68 30 31 32 33 34 35 36 37 38 39
69 40 41 42 43 44 45 46 47 48 49
70 50 51 52 53 54 55 56 57 58 59
71 60 61 62 63 64 65 66 67 68 69
72 70 71 72 73 74 75 76 77 78 79
73 80 81 82 83 84 85 86 87 88 89
74 90 91 92 93 94 95 96 97 98 99
75 100>;
76 default-brightness-level = <50>;
77 };
78
79 display: display@di0 {
80 compatible = "fsl,imx-parallel-display";
81 pinctrl-names = "default";
82 pinctrl-0 = <&pinctrl_disp0_2>;
83 interface-pix-fmt = "rgb24";
84 status = "okay";
85
86 port {
87 display0_in: endpoint {
88 remote-endpoint = <&ipu1_di0_disp0>;
89 };
90 };
91
92 display-timings {
93 native-mode = <&vga>;
94
95 vga: VGA {
96 clock-frequency = <25200000>;
97 hactive = <640>;
98 vactive = <480>;
99 hback-porch = <48>;
100 hsync-len = <96>;
101 hfront-porch = <16>;
102 vback-porch = <31>;
103 vsync-len = <2>;
104 vfront-porch = <12>;
105 hsync-active = <0>;
106 vsync-active = <0>;
107 de-active = <1>;
108 pixelclk-active = <0>;
109 };
110
111 ETV570 {
112 clock-frequency = <25200000>;
113 hactive = <640>;
114 vactive = <480>;
115 hback-porch = <114>;
116 hsync-len = <30>;
117 hfront-porch = <16>;
118 vback-porch = <32>;
119 vsync-len = <3>;
120 vfront-porch = <10>;
121 hsync-active = <0>;
122 vsync-active = <0>;
123 de-active = <1>;
124 pixelclk-active = <0>;
125 };
126
127 ET0350 {
128 clock-frequency = <6413760>;
129 hactive = <320>;
130 vactive = <240>;
131 hback-porch = <34>;
132 hsync-len = <34>;
133 hfront-porch = <20>;
134 vback-porch = <15>;
135 vsync-len = <3>;
136 vfront-porch = <4>;
137 hsync-active = <0>;
138 vsync-active = <0>;
139 de-active = <1>;
140 pixelclk-active = <0>;
141 };
142
143 ET0430 {
144 clock-frequency = <9009000>;
145 hactive = <480>;
146 vactive = <272>;
147 hback-porch = <2>;
148 hsync-len = <41>;
149 hfront-porch = <2>;
150 vback-porch = <2>;
151 vsync-len = <10>;
152 vfront-porch = <2>;
153 hsync-active = <0>;
154 vsync-active = <0>;
155 de-active = <1>;
156 pixelclk-active = <1>;
157 };
158
159 ET0500 {
160 clock-frequency = <33264000>;
161 hactive = <800>;
162 vactive = <480>;
163 hback-porch = <88>;
164 hsync-len = <128>;
165 hfront-porch = <40>;
166 vback-porch = <33>;
167 vsync-len = <2>;
168 vfront-porch = <10>;
169 hsync-active = <0>;
170 vsync-active = <0>;
171 de-active = <1>;
172 pixelclk-active = <0>;
173 };
174
175 ET0700 { /* same as ET0500 */
176 clock-frequency = <33264000>;
177 hactive = <800>;
178 vactive = <480>;
179 hback-porch = <88>;
180 hsync-len = <128>;
181 hfront-porch = <40>;
182 vback-porch = <33>;
183 vsync-len = <2>;
184 vfront-porch = <10>;
185 hsync-active = <0>;
186 vsync-active = <0>;
187 de-active = <1>;
188 pixelclk-active = <0>;
189 };
190
191 ETQ570 {
192 clock-frequency = <6596040>;
193 hactive = <320>;
194 vactive = <240>;
195 hback-porch = <38>;
196 hsync-len = <30>;
197 hfront-porch = <30>;
198 vback-porch = <16>;
199 vsync-len = <3>;
200 vfront-porch = <4>;
201 hsync-active = <0>;
202 vsync-active = <0>;
203 de-active = <1>;
204 pixelclk-active = <0>;
205 };
206 };
207 };
208}; 50};
209 51
210&ds1339 { 52&ds1339 {
@@ -215,18 +57,10 @@
215 status = "disabled"; 57 status = "disabled";
216}; 58};
217 59
218&ipu1_di0_disp0 {
219 remote-endpoint = <&display0_in>;
220};
221
222&ipu2 { 60&ipu2 {
223 status = "disabled"; 61 status = "disabled";
224}; 62};
225 63
226&reg_lcd0_pwr {
227 status = "disabled";
228};
229
230&usdhc4 { 64&usdhc4 {
231 pinctrl-names = "default"; 65 pinctrl-names = "default";
232 pinctrl-0 = <&pinctrl_usdhc4>; 66 pinctrl-0 = <&pinctrl_usdhc4>;
diff --git a/arch/arm/boot/dts/imx6q-tx6q-10x0-mb7.dts b/arch/arm/boot/dts/imx6q-tx6q-10x0-mb7.dts
new file mode 100644
index 000000000000..d43a5d8f1749
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-tx6q-10x0-mb7.dts
@@ -0,0 +1,48 @@
1/*
2 * Copyright 2017 Lothar Waßmann <LW@KARO-electronics.de>
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/dts-v1/;
43#include "imx6q-tx6q-1010.dts"
44#include "imx6qdl-tx6-mb7.dtsi"
45
46/ {
47 model = "Ka-Ro electronics TX6Q-1010/-1030 Module on MB7 baseboard";
48};
diff --git a/arch/arm/boot/dts/imx6q-tx6q-1110.dts b/arch/arm/boot/dts/imx6q-tx6q-1110.dts
index 0433e220a931..f7b0acb65352 100644
--- a/arch/arm/boot/dts/imx6q-tx6q-1110.dts
+++ b/arch/arm/boot/dts/imx6q-tx6q-1110.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright 2014-2016 Lothar Waßmann <LW@KARO-electronics.de> 2 * Copyright 2014-2017 Lothar Waßmann <LW@KARO-electronics.de>
3 * 3 *
4 * This file is dual-licensed: you can use it either under the terms 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 5 * of the GPL or the X11 license, at your option. Note that this dual
@@ -42,141 +42,17 @@
42/dts-v1/; 42/dts-v1/;
43#include "imx6q.dtsi" 43#include "imx6q.dtsi"
44#include "imx6qdl-tx6.dtsi" 44#include "imx6qdl-tx6.dtsi"
45#include "imx6qdl-tx6-lvds.dtsi"
45 46
46/ { 47/ {
47 model = "Ka-Ro electronics TX6Q-1110 Module"; 48 model = "Ka-Ro electronics TX6Q-1110/-1130 Module";
48 compatible = "karo,imx6q-tx6q", "fsl,imx6q"; 49 compatible = "karo,imx6q-tx6q", "fsl,imx6q";
49
50 aliases {
51 display = &lvds0;
52 lvds0 = &lvds0;
53 lvds1 = &lvds1;
54 };
55
56 backlight0: backlight0 {
57 compatible = "pwm-backlight";
58 pwms = <&pwm2 0 500000 0>;
59 power-supply = <&reg_lcd0_pwr>;
60 /*
61 * a poor man's way to create a 1:1 relationship between
62 * the PWM value and the actual duty cycle
63 */
64 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
65 10 11 12 13 14 15 16 17 18 19
66 20 21 22 23 24 25 26 27 28 29
67 30 31 32 33 34 35 36 37 38 39
68 40 41 42 43 44 45 46 47 48 49
69 50 51 52 53 54 55 56 57 58 59
70 60 61 62 63 64 65 66 67 68 69
71 70 71 72 73 74 75 76 77 78 79
72 80 81 82 83 84 85 86 87 88 89
73 90 91 92 93 94 95 96 97 98 99
74 100>;
75 default-brightness-level = <50>;
76 };
77
78 backlight1: backlight1 {
79 compatible = "pwm-backlight";
80 pwms = <&pwm1 0 500000 0>;
81 power-supply = <&reg_lcd1_pwr>;
82 /*
83 * a poor man's way to create a 1:1 relationship between
84 * the PWM value and the actual duty cycle
85 */
86 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
87 10 11 12 13 14 15 16 17 18 19
88 20 21 22 23 24 25 26 27 28 29
89 30 31 32 33 34 35 36 37 38 39
90 40 41 42 43 44 45 46 47 48 49
91 50 51 52 53 54 55 56 57 58 59
92 60 61 62 63 64 65 66 67 68 69
93 70 71 72 73 74 75 76 77 78 79
94 80 81 82 83 84 85 86 87 88 89
95 90 91 92 93 94 95 96 97 98 99
96 100>;
97 default-brightness-level = <50>;
98 };
99};
100
101&i2c3 {
102 polytouch1: eeti@04 {
103 compatible = "eeti,egalax_ts";
104 reg = <0x04>;
105 pinctrl-names = "default";
106 pinctrl-0 = <&pinctrl_eeti>;
107 interrupt-parent = <&gpio3>;
108 interrupts = <22 0>;
109 wakeup-gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>;
110 wakeup-source;
111 };
112}; 50};
113 51
114&kpp { 52&ipu2 {
115 status = "disabled"; /* pad conflict with backlight1 PWM */ 53 status = "disabled";
116};
117
118&ldb {
119 status = "okay";
120
121 lvds0: lvds-channel@0 {
122 fsl,data-mapping = "spwg";
123 fsl,data-width = <18>;
124 status = "okay";
125
126 display-timings {
127 native-mode = <&lvds_timing0>;
128 lvds_timing0: hsd100pxn1 {
129 clock-frequency = <65000000>;
130 hactive = <1024>;
131 vactive = <768>;
132 hback-porch = <220>;
133 hfront-porch = <40>;
134 vback-porch = <21>;
135 vfront-porch = <7>;
136 hsync-len = <60>;
137 vsync-len = <10>;
138 de-active = <1>;
139 pixelclk-active = <1>;
140 };
141 };
142 };
143
144 lvds1: lvds-channel@1 {
145 fsl,data-mapping = "spwg";
146 fsl,data-width = <18>;
147 status = "disabled";
148
149 display-timings {
150 native-mode = <&lvds_timing1>;
151 lvds_timing1: hsd100pxn1 {
152 clock-frequency = <65000000>;
153 hactive = <1024>;
154 vactive = <768>;
155 hback-porch = <220>;
156 hfront-porch = <40>;
157 vback-porch = <21>;
158 vfront-porch = <7>;
159 hsync-len = <60>;
160 vsync-len = <10>;
161 de-active = <1>;
162 pixelclk-active = <1>;
163 };
164 };
165 };
166};
167
168&pwm1 {
169 status = "okay";
170}; 54};
171 55
172&sata { 56&sata {
173 status = "okay"; 57 status = "okay";
174}; 58};
175
176&iomuxc {
177 pinctrl_eeti: eetigrp {
178 fsl,pins = <
179 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b1 /* Interrupt */
180 >;
181 };
182};
diff --git a/arch/arm/boot/dts/imx6q-tx6q-11x0-mb7.dts b/arch/arm/boot/dts/imx6q-tx6q-11x0-mb7.dts
index d78b129d01ea..387edf2b3f96 100644
--- a/arch/arm/boot/dts/imx6q-tx6q-11x0-mb7.dts
+++ b/arch/arm/boot/dts/imx6q-tx6q-11x0-mb7.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright 2016 Lothar Waßmann <LW@KARO-electronics.de> 2 * Copyright 2016-2017 Lothar Waßmann <LW@KARO-electronics.de>
3 * 3 *
4 * This file is dual-licensed: you can use it either under the terms 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 5 * of the GPL or the X11 license, at your option. Note that this dual
@@ -40,225 +40,9 @@
40 */ 40 */
41 41
42/dts-v1/; 42/dts-v1/;
43#include "imx6q.dtsi" 43#include "imx6q-tx6q-1110.dts"
44#include "imx6qdl-tx6.dtsi" 44#include "imx6qdl-tx6-mb7.dtsi"
45 45
46/ { 46/ {
47 model = "Ka-Ro electronics TX6Q-1110/-1130 Module on MB7 baseboard"; 47 model = "Ka-Ro electronics TX6Q-1110/-1130 Module on MB7 baseboard";
48 compatible = "karo,imx6q-tx6q", "fsl,imx6q";
49
50 aliases {
51 display = &lvds0;
52 ipu1 = &ipu2;
53 lvds0 = &lvds0;
54 lvds1 = &lvds1;
55 };
56
57 backlight0: backlight0 {
58 compatible = "pwm-backlight";
59 pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
60 power-supply = <&reg_lcd0_pwr>;
61 /*
62 * a poor man's way to create a 1:1 relationship between
63 * the PWM value and the actual duty cycle
64 */
65 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
66 10 11 12 13 14 15 16 17 18 19
67 20 21 22 23 24 25 26 27 28 29
68 30 31 32 33 34 35 36 37 38 39
69 40 41 42 43 44 45 46 47 48 49
70 50 51 52 53 54 55 56 57 58 59
71 60 61 62 63 64 65 66 67 68 69
72 70 71 72 73 74 75 76 77 78 79
73 80 81 82 83 84 85 86 87 88 89
74 90 91 92 93 94 95 96 97 98 99
75 100>;
76 default-brightness-level = <50>;
77 };
78
79 backlight1: backlight1 {
80 compatible = "pwm-backlight";
81 pwms = <&pwm1 0 500000 PWM_POLARITY_INVERTED>;
82 power-supply = <&reg_lcd1_pwr>;
83 /*
84 * a poor man's way to create a 1:1 relationship between
85 * the PWM value and the actual duty cycle
86 */
87 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
88 10 11 12 13 14 15 16 17 18 19
89 20 21 22 23 24 25 26 27 28 29
90 30 31 32 33 34 35 36 37 38 39
91 40 41 42 43 44 45 46 47 48 49
92 50 51 52 53 54 55 56 57 58 59
93 60 61 62 63 64 65 66 67 68 69
94 70 71 72 73 74 75 76 77 78 79
95 80 81 82 83 84 85 86 87 88 89
96 90 91 92 93 94 95 96 97 98 99
97 100>;
98 default-brightness-level = <50>;
99 };
100};
101
102&can1 {
103 status = "disabled";
104};
105
106&can2 {
107 xceiver-supply = <&reg_3v3>;
108};
109
110&i2c3 {
111 polytouch1: eeti@04 {
112 compatible = "eeti,egalax_ts";
113 reg = <0x04>;
114 pinctrl-names = "default";
115 pinctrl-0 = <&pinctrl_eeti>;
116 interrupts-extended = <&gpio3 22 IRQ_TYPE_EDGE_FALLING>;
117 wakeup-gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>;
118 wakeup-source;
119 };
120};
121
122&ipu2 {
123 status = "disabled";
124};
125
126&kpp {
127 status = "disabled"; /* pads partially clash with backlight1 PWM */
128};
129
130&ldb {
131 status = "okay";
132
133 lvds0: lvds-channel@0 {
134 fsl,data-mapping = "spwg";
135 fsl,data-width = <18>;
136 status = "okay";
137
138 display-timings {
139 native-mode = <&lvds0_timing1>;
140
141 lvds0_timing0: hsd100pxn1 {
142 clock-frequency = <65000000>;
143 hactive = <1024>;
144 vactive = <768>;
145 hback-porch = <220>;
146 hfront-porch = <40>;
147 vback-porch = <21>;
148 vfront-porch = <7>;
149 hsync-len = <60>;
150 vsync-len = <10>;
151 hsync-active = <0>;
152 vsync-active = <0>;
153 de-active = <1>;
154 pixelclk-active = <1>;
155 };
156
157 lvds0_timing1: VGA {
158 clock-frequency = <25200000>;
159 hactive = <640>;
160 vactive = <480>;
161 hback-porch = <48>;
162 hfront-porch = <16>;
163 vback-porch = <31>;
164 vfront-porch = <12>;
165 hsync-len = <96>;
166 vsync-len = <2>;
167 hsync-active = <0>;
168 vsync-active = <0>;
169 de-active = <1>;
170 pixelclk-active = <0>;
171 };
172
173 lvds0_timing2: nl12880bc20 {
174 clock-frequency = <71000000>;
175 hactive = <1280>;
176 vactive = <800>;
177 hback-porch = <50>;
178 hfront-porch = <50>;
179 vback-porch = <5>;
180 vfront-porch = <5>;
181 hsync-len = <60>;
182 vsync-len = <13>;
183 hsync-active = <0>;
184 vsync-active = <0>;
185 de-active = <1>;
186 pixelclk-active = <1>;
187 };
188 };
189 };
190
191 lvds1: lvds-channel@1 {
192 fsl,data-mapping = "spwg";
193 fsl,data-width = <18>;
194 status = "okay";
195
196 display-timings {
197 native-mode = <&lvds1_timing2>;
198
199 lvds1_timing0: hsd100pxn1 {
200 clock-frequency = <65000000>;
201 hactive = <1024>;
202 vactive = <768>;
203 hback-porch = <220>;
204 hfront-porch = <40>;
205 vback-porch = <21>;
206 vfront-porch = <7>;
207 hsync-len = <60>;
208 vsync-len = <10>;
209 hsync-active = <0>;
210 vsync-active = <0>;
211 de-active = <1>;
212 pixelclk-active = <1>;
213 };
214
215 lvds1_timing1: VGA {
216 clock-frequency = <25200000>;
217 hactive = <640>;
218 vactive = <480>;
219 hback-porch = <48>;
220 hfront-porch = <16>;
221 vback-porch = <31>;
222 vfront-porch = <12>;
223 hsync-len = <96>;
224 vsync-len = <2>;
225 hsync-active = <0>;
226 vsync-active = <0>;
227 de-active = <1>;
228 pixelclk-active = <0>;
229 };
230
231 lvds1_timing2: nl12880bc20 {
232 clock-frequency = <71000000>;
233 hactive = <1280>;
234 vactive = <800>;
235 hback-porch = <50>;
236 hfront-porch = <50>;
237 vback-porch = <5>;
238 vfront-porch = <5>;
239 hsync-len = <60>;
240 vsync-len = <13>;
241 hsync-active = <0>;
242 vsync-active = <0>;
243 de-active = <1>;
244 pixelclk-active = <1>;
245 };
246 };
247 };
248};
249
250&pwm1 {
251 status = "okay";
252};
253
254&sata {
255 status = "okay";
256};
257
258&iomuxc {
259 pinctrl_eeti: eetigrp {
260 fsl,pins = <
261 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b1 /* Interrupt */
262 >;
263 };
264}; 48};
diff --git a/arch/arm/boot/dts/imx6q-utilite-pro.dts b/arch/arm/boot/dts/imx6q-utilite-pro.dts
index 16d5be1aeb3c..f5d9c34b0d39 100644
--- a/arch/arm/boot/dts/imx6q-utilite-pro.dts
+++ b/arch/arm/boot/dts/imx6q-utilite-pro.dts
@@ -188,6 +188,8 @@
188/delete-node/&hdmi_mux_1; 188/delete-node/&hdmi_mux_1;
189 189
190&hdmi { 190&hdmi {
191 pinctrl-names = "default";
192 pinctrl-0 = <&pinctrl_hdmicec>;
191 ddc-i2c-bus = <&i2c2>; 193 ddc-i2c-bus = <&i2c2>;
192 status = "okay"; 194 status = "okay";
193}; 195};
@@ -211,6 +213,12 @@
211 >; 213 >;
212 }; 214 };
213 215
216 pinctrl_hdmicec: hdmicecgrp {
217 fsl,pins = <
218 MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0
219 >;
220 };
221
214 pinctrl_hpd: hpdgrp { 222 pinctrl_hpd: hpdgrp {
215 fsl,pins = < 223 fsl,pins = <
216 MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b0 224 MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b0
diff --git a/arch/arm/boot/dts/imx6q-wandboard-revd1.dts b/arch/arm/boot/dts/imx6q-wandboard-revd1.dts
new file mode 100644
index 000000000000..e87ddb168669
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-wandboard-revd1.dts
@@ -0,0 +1,26 @@
1/*
2 * Copyright 2013 Freescale Semiconductor, Inc.
3 *
4 * Author: Fabio Estevam <fabio.estevam@freescale.com>
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/dts-v1/;
12#include "imx6q.dtsi"
13#include "imx6qdl-wandboard-revd1.dtsi"
14
15/ {
16 model = "Wandboard i.MX6 Quad Board revD1";
17 compatible = "wand,imx6q-wandboard", "fsl,imx6q";
18
19 memory {
20 reg = <0x10000000 0x80000000>;
21 };
22};
23
24&sata {
25 status = "okay";
26};
diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi
index 90a741732f60..bc581aa5cf17 100644
--- a/arch/arm/boot/dts/imx6q.dtsi
+++ b/arch/arm/boot/dts/imx6q.dtsi
@@ -79,15 +79,15 @@
79 }; 79 };
80 80
81 soc { 81 soc {
82 ocram: sram@00900000 { 82 ocram: sram@900000 {
83 compatible = "mmio-sram"; 83 compatible = "mmio-sram";
84 reg = <0x00900000 0x40000>; 84 reg = <0x00900000 0x40000>;
85 clocks = <&clks IMX6QDL_CLK_OCRAM>; 85 clocks = <&clks IMX6QDL_CLK_OCRAM>;
86 }; 86 };
87 87
88 aips-bus@02000000 { /* AIPS1 */ 88 aips-bus@2000000 { /* AIPS1 */
89 spba-bus@02000000 { 89 spba-bus@2000000 {
90 ecspi5: ecspi@02018000 { 90 ecspi5: ecspi@2018000 {
91 #address-cells = <1>; 91 #address-cells = <1>;
92 #size-cells = <0>; 92 #size-cells = <0>;
93 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; 93 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
@@ -102,12 +102,12 @@
102 }; 102 };
103 }; 103 };
104 104
105 iomuxc: iomuxc@020e0000 { 105 iomuxc: iomuxc@20e0000 {
106 compatible = "fsl,imx6q-iomuxc"; 106 compatible = "fsl,imx6q-iomuxc";
107 }; 107 };
108 }; 108 };
109 109
110 sata: sata@02200000 { 110 sata: sata@2200000 {
111 compatible = "fsl,imx6q-ahci"; 111 compatible = "fsl,imx6q-ahci";
112 reg = <0x02200000 0x4000>; 112 reg = <0x02200000 0x4000>;
113 interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>; 113 interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
@@ -118,7 +118,7 @@
118 status = "disabled"; 118 status = "disabled";
119 }; 119 };
120 120
121 gpu_vg: gpu@02204000 { 121 gpu_vg: gpu@2204000 {
122 compatible = "vivante,gc"; 122 compatible = "vivante,gc";
123 reg = <0x02204000 0x4000>; 123 reg = <0x02204000 0x4000>;
124 interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>; 124 interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
@@ -128,7 +128,7 @@
128 power-domains = <&pd_pu>; 128 power-domains = <&pd_pu>;
129 }; 129 };
130 130
131 ipu2: ipu@02800000 { 131 ipu2: ipu@2800000 {
132 #address-cells = <1>; 132 #address-cells = <1>;
133 #size-cells = <0>; 133 #size-cells = <0>;
134 compatible = "fsl,imx6q-ipu"; 134 compatible = "fsl,imx6q-ipu";
diff --git a/arch/arm/boot/dts/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
index ea339fa58f4a..e80fdca585f8 100644
--- a/arch/arm/boot/dts/imx6qdl-apalis.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
@@ -222,7 +222,7 @@
222 pinctrl-0 = <&pinctrl_i2c2>; 222 pinctrl-0 = <&pinctrl_i2c2>;
223 status = "okay"; 223 status = "okay";
224 224
225 pmic: pfuze100@08 { 225 pmic: pfuze100@8 {
226 compatible = "fsl,pfuze100"; 226 compatible = "fsl,pfuze100";
227 reg = <0x08>; 227 reg = <0x08>;
228 228
@@ -313,7 +313,7 @@
313 }; 313 };
314 }; 314 };
315 315
316 codec: sgtl5000@0a { 316 codec: sgtl5000@a {
317 compatible = "fsl,sgtl5000"; 317 compatible = "fsl,sgtl5000";
318 reg = <0x0a>; 318 reg = <0x0a>;
319 clocks = <&clks IMX6QDL_CLK_CKO>; 319 clocks = <&clks IMX6QDL_CLK_CKO>;
diff --git a/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi b/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi
index 9cd2a7477ed7..829a47938179 100644
--- a/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi
@@ -54,7 +54,7 @@
54 stdout-path = &uart4; 54 stdout-path = &uart4;
55 }; 55 };
56 56
57 display@di0 { 57 disp0 {
58 compatible = "fsl,imx-parallel-display"; 58 compatible = "fsl,imx-parallel-display";
59 interface-pix-fmt = "bgr666"; 59 interface-pix-fmt = "bgr666";
60 pinctrl-names = "default"; 60 pinctrl-names = "default";
@@ -209,7 +209,7 @@
209 pinctrl-0 = <&pinctrl_i2c2>; 209 pinctrl-0 = <&pinctrl_i2c2>;
210 status = "okay"; 210 status = "okay";
211 211
212 codec: sgtl5000@0a { 212 codec: sgtl5000@a {
213 compatible = "fsl,sgtl5000"; 213 compatible = "fsl,sgtl5000";
214 reg = <0x0a>; 214 reg = <0x0a>;
215 clocks = <&clks IMX6QDL_CLK_CKO>; 215 clocks = <&clks IMX6QDL_CLK_CKO>;
diff --git a/arch/arm/boot/dts/imx6qdl-colibri.dtsi b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
index ad84eddb6836..fc66bbfd6796 100644
--- a/arch/arm/boot/dts/imx6qdl-colibri.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
@@ -167,7 +167,7 @@
167 pinctrl-0 = <&pinctrl_i2c2>; 167 pinctrl-0 = <&pinctrl_i2c2>;
168 status = "okay"; 168 status = "okay";
169 169
170 pmic: pfuze100@08 { 170 pmic: pfuze100@8 {
171 compatible = "fsl,pfuze100"; 171 compatible = "fsl,pfuze100";
172 reg = <0x08>; 172 reg = <0x08>;
173 173
@@ -248,7 +248,7 @@
248 }; 248 };
249 }; 249 };
250 250
251 codec: sgtl5000@0a { 251 codec: sgtl5000@a {
252 compatible = "fsl,sgtl5000"; 252 compatible = "fsl,sgtl5000";
253 reg = <0x0a>; 253 reg = <0x0a>;
254 clocks = <&clks IMX6QDL_CLK_CKO>; 254 clocks = <&clks IMX6QDL_CLK_CKO>;
diff --git a/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
index 885556260bd0..dea8fc43c692 100644
--- a/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
@@ -332,175 +332,173 @@
332}; 332};
333 333
334&iomuxc { 334&iomuxc {
335 imx6qdl-gw51xx { 335 pinctrl_adv7180: adv7180grp {
336 pinctrl_adv7180: adv7180grp { 336 fsl,pins = <
337 fsl,pins = < 337 MX6QDL_PAD_CSI0_DAT5__GPIO5_IO23 0x0001b0b0
338 MX6QDL_PAD_CSI0_DAT5__GPIO5_IO23 0x0001b0b0 338 MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x4001b0b0
339 MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x4001b0b0 339 >;
340 >; 340 };
341 };
342 341
343 pinctrl_enet: enetgrp { 342 pinctrl_enet: enetgrp {
344 fsl,pins = < 343 fsl,pins = <
345 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030 344 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
346 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030 345 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030
347 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030 346 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030
348 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030 347 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
349 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030 348 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
350 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030 349 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
351 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030 350 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
352 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030 351 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
353 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030 352 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
354 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030 353 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
355 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030 354 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
356 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030 355 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
357 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 356 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
358 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 357 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
359 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 358 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
360 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8 359 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
361 MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x1b0b0 /* PHY Reset */ 360 MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x1b0b0 /* PHY Reset */
362 >; 361 >;
363 }; 362 };
364 363
365 pinctrl_gpio_leds: gpioledsgrp { 364 pinctrl_gpio_leds: gpioledsgrp {
366 fsl,pins = < 365 fsl,pins = <
367 MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1b0b0 366 MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1b0b0
368 MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x1b0b0 367 MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x1b0b0
369 >; 368 >;
370 }; 369 };
371 370
372 pinctrl_gpmi_nand: gpminandgrp { 371 pinctrl_gpmi_nand: gpminandgrp {
373 fsl,pins = < 372 fsl,pins = <
374 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1 373 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1
375 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1 374 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1
376 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1 375 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1
377 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000 376 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000
378 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1 377 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1
379 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1 378 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1
380 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1 379 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1
381 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1 380 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1
382 MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1 381 MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1
383 MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1 382 MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1
384 MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1 383 MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1
385 MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1 384 MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1
386 MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1 385 MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1
387 MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1 386 MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1
388 MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1 387 MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1
389 >; 388 >;
390 }; 389 };
391 390
392 pinctrl_i2c1: i2c1grp { 391 pinctrl_i2c1: i2c1grp {
393 fsl,pins = < 392 fsl,pins = <
394 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 393 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
395 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 394 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
396 >; 395 >;
397 }; 396 };
398 397
399 pinctrl_i2c2: i2c2grp { 398 pinctrl_i2c2: i2c2grp {
400 fsl,pins = < 399 fsl,pins = <
401 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 400 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
402 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 401 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
403 >; 402 >;
404 }; 403 };
405 404
406 pinctrl_i2c3: i2c3grp { 405 pinctrl_i2c3: i2c3grp {
407 fsl,pins = < 406 fsl,pins = <
408 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1 407 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
409 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1 408 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
410 >; 409 >;
411 }; 410 };
412 411
413 pinctrl_ipu1_csi0: ipu1csi0grp { 412 pinctrl_ipu1_csi0: ipu1csi0grp {
414 fsl,pins = < 413 fsl,pins = <
415 MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x1b0b0 414 MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x1b0b0
416 MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x1b0b0 415 MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x1b0b0
417 MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x1b0b0 416 MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x1b0b0
418 MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x1b0b0 417 MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x1b0b0
419 MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x1b0b0 418 MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x1b0b0
420 MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x1b0b0 419 MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x1b0b0
421 MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x1b0b0 420 MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x1b0b0
422 MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x1b0b0 421 MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x1b0b0
423 MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x1b0b0 422 MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x1b0b0
424 MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x1b0b0 423 MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x1b0b0
425 MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x1b0b0 424 MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x1b0b0
426 >; 425 >;
427 }; 426 };
428 427
429 pinctrl_pcie: pciegrp { 428 pinctrl_pcie: pciegrp {
430 fsl,pins = < 429 fsl,pins = <
431 MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0 430 MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0
432 >; 431 >;
433 }; 432 };
434 433
435 pinctrl_pmic: pmicgrp { 434 pinctrl_pmic: pmicgrp {
436 fsl,pins = < 435 fsl,pins = <
437 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */ 436 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */
438 >; 437 >;
439 }; 438 };
440 439
441 pinctrl_pps: ppsgrp { 440 pinctrl_pps: ppsgrp {
442 fsl,pins = < 441 fsl,pins = <
443 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1 442 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1
444 >; 443 >;
445 }; 444 };
446 445
447 pinctrl_pwm2: pwm2grp { 446 pinctrl_pwm2: pwm2grp {
448 fsl,pins = < 447 fsl,pins = <
449 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1 448 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1
450 >; 449 >;
451 }; 450 };
452 451
453 pinctrl_pwm3: pwm3grp { 452 pinctrl_pwm3: pwm3grp {
454 fsl,pins = < 453 fsl,pins = <
455 MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x1b0b1 454 MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x1b0b1
456 >; 455 >;
457 }; 456 };
458 457
459 pinctrl_pwm4: pwm4grp { 458 pinctrl_pwm4: pwm4grp {
460 fsl,pins = < 459 fsl,pins = <
461 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1 460 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
462 >; 461 >;
463 }; 462 };
464 463
465 pinctrl_uart1: uart1grp { 464 pinctrl_uart1: uart1grp {
466 fsl,pins = < 465 fsl,pins = <
467 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1 466 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
468 MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1 467 MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1
469 >; 468 >;
470 }; 469 };
471 470
472 pinctrl_uart2: uart2grp { 471 pinctrl_uart2: uart2grp {
473 fsl,pins = < 472 fsl,pins = <
474 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1 473 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
475 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1 474 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1
476 >; 475 >;
477 }; 476 };
478 477
479 pinctrl_uart3: uart3grp { 478 pinctrl_uart3: uart3grp {
480 fsl,pins = < 479 fsl,pins = <
481 MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1 480 MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
482 MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1 481 MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
483 >; 482 >;
484 }; 483 };
485 484
486 pinctrl_uart5: uart5grp { 485 pinctrl_uart5: uart5grp {
487 fsl,pins = < 486 fsl,pins = <
488 MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1 487 MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1
489 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1 488 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1
490 >; 489 >;
491 }; 490 };
492 491
493 pinctrl_usbotg: usbotggrp { 492 pinctrl_usbotg: usbotggrp {
494 fsl,pins = < 493 fsl,pins = <
495 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059 494 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
496 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 /* OTG_PWR_EN */ 495 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 /* OTG_PWR_EN */
497 >; 496 >;
498 }; 497 };
499 498
500 pinctrl_wdog: wdoggrp { 499 pinctrl_wdog: wdoggrp {
501 fsl,pins = < 500 fsl,pins = <
502 MX6QDL_PAD_DISP0_DAT8__WDOG1_B 0x1b0b0 501 MX6QDL_PAD_DISP0_DAT8__WDOG1_B 0x1b0b0
503 >; 502 >;
504 };
505 }; 503 };
506}; 504};
diff --git a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
index 115d706228ef..363a44394dad 100644
--- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
@@ -303,7 +303,7 @@
303 pinctrl-0 = <&pinctrl_i2c3>; 303 pinctrl-0 = <&pinctrl_i2c3>;
304 status = "okay"; 304 status = "okay";
305 305
306 codec: sgtl5000@0a { 306 codec: sgtl5000@a {
307 compatible = "fsl,sgtl5000"; 307 compatible = "fsl,sgtl5000";
308 reg = <0x0a>; 308 reg = <0x0a>;
309 clocks = <&clks IMX6QDL_CLK_CKO>; 309 clocks = <&clks IMX6QDL_CLK_CKO>;
@@ -311,7 +311,7 @@
311 VDDIO-supply = <&reg_3p3v>; 311 VDDIO-supply = <&reg_3p3v>;
312 }; 312 };
313 313
314 touchscreen: egalax_ts@04 { 314 touchscreen: egalax_ts@4 {
315 compatible = "eeti,egalax_ts"; 315 compatible = "eeti,egalax_ts";
316 reg = <0x04>; 316 reg = <0x04>;
317 interrupt-parent = <&gpio7>; 317 interrupt-parent = <&gpio7>;
@@ -423,213 +423,211 @@
423}; 423};
424 424
425&iomuxc { 425&iomuxc {
426 imx6qdl-gw52xx { 426 pinctrl_audmux: audmuxgrp {
427 pinctrl_audmux: audmuxgrp { 427 fsl,pins = <
428 fsl,pins = < 428 MX6QDL_PAD_SD2_DAT0__AUD4_RXD 0x130b0
429 MX6QDL_PAD_SD2_DAT0__AUD4_RXD 0x130b0 429 MX6QDL_PAD_SD2_DAT3__AUD4_TXC 0x130b0
430 MX6QDL_PAD_SD2_DAT3__AUD4_TXC 0x130b0 430 MX6QDL_PAD_SD2_DAT2__AUD4_TXD 0x110b0
431 MX6QDL_PAD_SD2_DAT2__AUD4_TXD 0x110b0 431 MX6QDL_PAD_SD2_DAT1__AUD4_TXFS 0x130b0
432 MX6QDL_PAD_SD2_DAT1__AUD4_TXFS 0x130b0 432 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0 /* AUD4_MCK */
433 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0 /* AUD4_MCK */ 433 >;
434 >; 434 };
435 };
436 435
437 pinctrl_ecspi3: escpi3grp { 436 pinctrl_ecspi3: escpi3grp {
438 fsl,pins = < 437 fsl,pins = <
439 MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1 438 MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1
440 MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x100b1 439 MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x100b1
441 MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x100b1 440 MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x100b1
442 MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24 0x100b1 441 MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24 0x100b1
443 >; 442 >;
444 }; 443 };
445 444
446 pinctrl_enet: enetgrp { 445 pinctrl_enet: enetgrp {
447 fsl,pins = < 446 fsl,pins = <
448 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030 447 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
449 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030 448 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030
450 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030 449 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030
451 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030 450 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
452 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030 451 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
453 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030 452 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
454 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030 453 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
455 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030 454 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
456 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030 455 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
457 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030 456 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
458 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030 457 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
459 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030 458 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
460 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 459 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
461 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 460 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
462 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 461 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
463 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8 462 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
464 MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x1b0b0 /* PHY Reset */ 463 MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x1b0b0 /* PHY Reset */
465 >; 464 >;
466 }; 465 };
467 466
468 pinctrl_flexcan1: flexcan1grp { 467 pinctrl_flexcan1: flexcan1grp {
469 fsl,pins = < 468 fsl,pins = <
470 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b1 469 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b1
471 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b0b1 470 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b0b1
472 MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x4001b0b0 /* CAN_STBY */ 471 MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x4001b0b0 /* CAN_STBY */
473 >; 472 >;
474 }; 473 };
475 474
476 pinctrl_gpio_leds: gpioledsgrp { 475 pinctrl_gpio_leds: gpioledsgrp {
477 fsl,pins = < 476 fsl,pins = <
478 MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1b0b0 477 MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1b0b0
479 MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x1b0b0 478 MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x1b0b0
480 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b0 479 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b0
481 >; 480 >;
482 }; 481 };
483 482
484 pinctrl_gpmi_nand: gpminandgrp { 483 pinctrl_gpmi_nand: gpminandgrp {
485 fsl,pins = < 484 fsl,pins = <
486 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1 485 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1
487 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1 486 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1
488 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1 487 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1
489 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000 488 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000
490 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1 489 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1
491 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1 490 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1
492 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1 491 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1
493 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1 492 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1
494 MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1 493 MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1
495 MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1 494 MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1
496 MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1 495 MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1
497 MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1 496 MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1
498 MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1 497 MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1
499 MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1 498 MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1
500 MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1 499 MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1
501 >; 500 >;
502 }; 501 };
503 502
504 pinctrl_i2c1: i2c1grp { 503 pinctrl_i2c1: i2c1grp {
505 fsl,pins = < 504 fsl,pins = <
506 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 505 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
507 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 506 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
508 >; 507 >;
509 }; 508 };
510 509
511 pinctrl_i2c2: i2c2grp { 510 pinctrl_i2c2: i2c2grp {
512 fsl,pins = < 511 fsl,pins = <
513 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 512 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
514 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 513 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
515 >; 514 >;
516 }; 515 };
517 516
518 pinctrl_i2c3: i2c3grp { 517 pinctrl_i2c3: i2c3grp {
519 fsl,pins = < 518 fsl,pins = <
520 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1 519 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
521 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1 520 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
522 >; 521 >;
523 }; 522 };
524 523
525 pinctrl_pcie: pciegrp { 524 pinctrl_pcie: pciegrp {
526 fsl,pins = < 525 fsl,pins = <
527 MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0 /* PCIE_RST# */ 526 MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0 /* PCIE_RST# */
528 >; 527 >;
529 }; 528 };
530 529
531 pinctrl_pmic: pmicgrp { 530 pinctrl_pmic: pmicgrp {
532 fsl,pins = < 531 fsl,pins = <
533 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */ 532 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */
534 >; 533 >;
535 }; 534 };
536 535
537 pinctrl_pps: ppsgrp { 536 pinctrl_pps: ppsgrp {
538 fsl,pins = < 537 fsl,pins = <
539 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1 538 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1
540 >; 539 >;
541 }; 540 };
542 541
543 pinctrl_pwm2: pwm2grp { 542 pinctrl_pwm2: pwm2grp {
544 fsl,pins = < 543 fsl,pins = <
545 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1 544 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1
546 >; 545 >;
547 }; 546 };
548 547
549 pinctrl_pwm3: pwm3grp { 548 pinctrl_pwm3: pwm3grp {
550 fsl,pins = < 549 fsl,pins = <
551 MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x1b0b1 550 MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x1b0b1
552 >; 551 >;
553 }; 552 };
554 553
555 pinctrl_pwm4: pwm4grp { 554 pinctrl_pwm4: pwm4grp {
556 fsl,pins = < 555 fsl,pins = <
557 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1 556 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
558 >; 557 >;
559 }; 558 };
560 559
561 pinctrl_uart1: uart1grp { 560 pinctrl_uart1: uart1grp {
562 fsl,pins = < 561 fsl,pins = <
563 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1 562 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
564 MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1 563 MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1
565 MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x4001b0b1 /* TEN */ 564 MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x4001b0b1 /* TEN */
566 >; 565 >;
567 }; 566 };
568 567
569 pinctrl_uart2: uart2grp { 568 pinctrl_uart2: uart2grp {
570 fsl,pins = < 569 fsl,pins = <
571 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1 570 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
572 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1 571 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1
573 >; 572 >;
574 }; 573 };
575 574
576 pinctrl_uart5: uart5grp { 575 pinctrl_uart5: uart5grp {
577 fsl,pins = < 576 fsl,pins = <
578 MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1 577 MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1
579 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1 578 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1
580 >; 579 >;
581 }; 580 };
582 581
583 pinctrl_usbotg: usbotggrp { 582 pinctrl_usbotg: usbotggrp {
584 fsl,pins = < 583 fsl,pins = <
585 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059 584 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
586 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 /* OTG_PWR_EN */ 585 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 /* OTG_PWR_EN */
587 >; 586 >;
588 }; 587 };
589 588
590 pinctrl_usdhc3: usdhc3grp { 589 pinctrl_usdhc3: usdhc3grp {
591 fsl,pins = < 590 fsl,pins = <
592 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 591 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
593 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 592 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
594 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059 593 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
595 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 594 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
596 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 595 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
597 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 596 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
598 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x17059 /* CD */ 597 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x17059 /* CD */
599 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x17059 598 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x17059
600 >; 599 >;
601 }; 600 };
602 601
603 pinctrl_usdhc3_100mhz: usdhc3grp100mhz { 602 pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
604 fsl,pins = < 603 fsl,pins = <
605 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170b9 604 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170b9
606 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x170b9 605 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x170b9
607 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170b9 606 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170b9
608 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170b9 607 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170b9
609 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170b9 608 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170b9
610 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170b9 609 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170b9
611 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170b9 /* CD */ 610 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170b9 /* CD */
612 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170b9 611 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170b9
613 >; 612 >;
614 }; 613 };
615 614
616 pinctrl_usdhc3_200mhz: usdhc3grp200mhz { 615 pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
617 fsl,pins = < 616 fsl,pins = <
618 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9 617 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9
619 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9 618 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9
620 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9 619 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
621 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9 620 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
622 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9 621 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
623 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9 622 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
624 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170f9 /* CD */ 623 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170f9 /* CD */
625 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170f9 624 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170f9
626 >; 625 >;
627 }; 626 };
628 627
629 pinctrl_wdog: wdoggrp { 628 pinctrl_wdog: wdoggrp {
630 fsl,pins = < 629 fsl,pins = <
631 MX6QDL_PAD_DISP0_DAT8__WDOG1_B 0x1b0b0 630 MX6QDL_PAD_DISP0_DAT8__WDOG1_B 0x1b0b0
632 >; 631 >;
633 };
634 }; 632 };
635}; 633};
diff --git a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
index 24be7965056c..c75385c0cad0 100644
--- a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
@@ -294,7 +294,7 @@
294 pinctrl-0 = <&pinctrl_i2c3>; 294 pinctrl-0 = <&pinctrl_i2c3>;
295 status = "okay"; 295 status = "okay";
296 296
297 codec: sgtl5000@0a { 297 codec: sgtl5000@a {
298 compatible = "fsl,sgtl5000"; 298 compatible = "fsl,sgtl5000";
299 reg = <0x0a>; 299 reg = <0x0a>;
300 clocks = <&clks IMX6QDL_CLK_CKO>; 300 clocks = <&clks IMX6QDL_CLK_CKO>;
@@ -302,7 +302,7 @@
302 VDDIO-supply = <&reg_3p3v>; 302 VDDIO-supply = <&reg_3p3v>;
303 }; 303 };
304 304
305 touchscreen: egalax_ts@04 { 305 touchscreen: egalax_ts@4 {
306 compatible = "eeti,egalax_ts"; 306 compatible = "eeti,egalax_ts";
307 reg = <0x04>; 307 reg = <0x04>;
308 interrupt-parent = <&gpio1>; 308 interrupt-parent = <&gpio1>;
@@ -415,205 +415,203 @@
415}; 415};
416 416
417&iomuxc { 417&iomuxc {
418 imx6qdl-gw53xx { 418 pinctrl_audmux: audmuxgrp {
419 pinctrl_audmux: audmuxgrp { 419 fsl,pins = <
420 fsl,pins = < 420 MX6QDL_PAD_SD2_DAT0__AUD4_RXD 0x130b0
421 MX6QDL_PAD_SD2_DAT0__AUD4_RXD 0x130b0 421 MX6QDL_PAD_SD2_DAT3__AUD4_TXC 0x130b0
422 MX6QDL_PAD_SD2_DAT3__AUD4_TXC 0x130b0 422 MX6QDL_PAD_SD2_DAT2__AUD4_TXD 0x110b0
423 MX6QDL_PAD_SD2_DAT2__AUD4_TXD 0x110b0 423 MX6QDL_PAD_SD2_DAT1__AUD4_TXFS 0x130b0
424 MX6QDL_PAD_SD2_DAT1__AUD4_TXFS 0x130b0 424 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0 /* AUD4_MCK */
425 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0 /* AUD4_MCK */ 425 >;
426 >; 426 };
427 };
428 427
429 pinctrl_enet: enetgrp { 428 pinctrl_enet: enetgrp {
430 fsl,pins = < 429 fsl,pins = <
431 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030 430 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
432 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030 431 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030
433 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030 432 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030
434 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030 433 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
435 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030 434 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
436 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030 435 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
437 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030 436 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
438 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030 437 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
439 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030 438 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
440 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030 439 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
441 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030 440 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
442 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030 441 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
443 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 442 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
444 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 443 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
445 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 444 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
446 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8 445 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
447 >; 446 >;
448 }; 447 };
449 448
450 pinctrl_flexcan1: flexcan1grp { 449 pinctrl_flexcan1: flexcan1grp {
451 fsl,pins = < 450 fsl,pins = <
452 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b1 451 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b1
453 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b0b1 452 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b0b1
454 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x4001b0b0 /* CAN_STBY */ 453 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x4001b0b0 /* CAN_STBY */
455 >; 454 >;
456 }; 455 };
457 456
458 pinctrl_gpio_leds: gpioledsgrp { 457 pinctrl_gpio_leds: gpioledsgrp {
459 fsl,pins = < 458 fsl,pins = <
460 MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1b0b0 459 MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1b0b0
461 MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x1b0b0 460 MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x1b0b0
462 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b0 461 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b0
463 >; 462 >;
464 }; 463 };
465 464
466 pinctrl_gpmi_nand: gpminandgrp { 465 pinctrl_gpmi_nand: gpminandgrp {
467 fsl,pins = < 466 fsl,pins = <
468 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1 467 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1
469 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1 468 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1
470 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1 469 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1
471 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000 470 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000
472 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1 471 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1
473 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1 472 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1
474 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1 473 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1
475 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1 474 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1
476 MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1 475 MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1
477 MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1 476 MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1
478 MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1 477 MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1
479 MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1 478 MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1
480 MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1 479 MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1
481 MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1 480 MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1
482 MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1 481 MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1
483 >; 482 >;
484 }; 483 };
485 484
486 pinctrl_i2c1: i2c1grp { 485 pinctrl_i2c1: i2c1grp {
487 fsl,pins = < 486 fsl,pins = <
488 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 487 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
489 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 488 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
490 >; 489 >;
491 }; 490 };
492 491
493 pinctrl_i2c2: i2c2grp { 492 pinctrl_i2c2: i2c2grp {
494 fsl,pins = < 493 fsl,pins = <
495 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 494 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
496 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 495 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
497 >; 496 >;
498 }; 497 };
499 498
500 pinctrl_i2c3: i2c3grp { 499 pinctrl_i2c3: i2c3grp {
501 fsl,pins = < 500 fsl,pins = <
502 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1 501 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
503 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1 502 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
504 >; 503 >;
505 }; 504 };
506 505
507 pinctrl_pcie: pciegrp { 506 pinctrl_pcie: pciegrp {
508 fsl,pins = < 507 fsl,pins = <
509 MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1b0b0 /* PCIE IRQ */ 508 MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1b0b0 /* PCIE IRQ */
510 MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0 /* PCIE RST */ 509 MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0 /* PCIE RST */
511 >; 510 >;
512 }; 511 };
513 512
514 pinctrl_pmic: pmicgrp { 513 pinctrl_pmic: pmicgrp {
515 fsl,pins = < 514 fsl,pins = <
516 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */ 515 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */
517 >; 516 >;
518 }; 517 };
519 518
520 pinctrl_pps: ppsgrp { 519 pinctrl_pps: ppsgrp {
521 fsl,pins = < 520 fsl,pins = <
522 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1 521 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1
523 >; 522 >;
524 }; 523 };
525 524
526 pinctrl_pwm2: pwm2grp { 525 pinctrl_pwm2: pwm2grp {
527 fsl,pins = < 526 fsl,pins = <
528 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1 527 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1
529 >; 528 >;
530 }; 529 };
531 530
532 pinctrl_pwm3: pwm3grp { 531 pinctrl_pwm3: pwm3grp {
533 fsl,pins = < 532 fsl,pins = <
534 MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x1b0b1 533 MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x1b0b1
535 >; 534 >;
536 }; 535 };
537 536
538 pinctrl_pwm4: pwm4grp { 537 pinctrl_pwm4: pwm4grp {
539 fsl,pins = < 538 fsl,pins = <
540 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1 539 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
541 >; 540 >;
542 }; 541 };
543 542
544 pinctrl_uart1: uart1grp { 543 pinctrl_uart1: uart1grp {
545 fsl,pins = < 544 fsl,pins = <
546 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1 545 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
547 MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1 546 MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1
548 MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x4001b0b1 /* TEN */ 547 MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x4001b0b1 /* TEN */
549 >; 548 >;
550 }; 549 };
551 550
552 pinctrl_uart2: uart2grp { 551 pinctrl_uart2: uart2grp {
553 fsl,pins = < 552 fsl,pins = <
554 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1 553 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
555 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1 554 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1
556 >; 555 >;
557 }; 556 };
558 557
559 pinctrl_uart5: uart5grp { 558 pinctrl_uart5: uart5grp {
560 fsl,pins = < 559 fsl,pins = <
561 MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1 560 MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1
562 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1 561 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1
563 >; 562 >;
564 }; 563 };
565 564
566 pinctrl_usbotg: usbotggrp { 565 pinctrl_usbotg: usbotggrp {
567 fsl,pins = < 566 fsl,pins = <
568 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059 567 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
569 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 /* PWR_EN */ 568 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 /* PWR_EN */
570 MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x1b0b0 /* OC */ 569 MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x1b0b0 /* OC */
571 >; 570 >;
572 }; 571 };
573 572
574 pinctrl_usdhc3: usdhc3grp { 573 pinctrl_usdhc3: usdhc3grp {
575 fsl,pins = < 574 fsl,pins = <
576 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 575 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
577 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 576 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
578 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059 577 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
579 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 578 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
580 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 579 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
581 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 580 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
582 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x17059 /* CD */ 581 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x17059 /* CD */
583 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x17059 582 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x17059
584 >; 583 >;
585 }; 584 };
586 585
587 pinctrl_usdhc3_100mhz: usdhc3grp100mhz { 586 pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
588 fsl,pins = < 587 fsl,pins = <
589 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170b9 588 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170b9
590 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100b9 589 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100b9
591 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170b9 590 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170b9
592 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170b9 591 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170b9
593 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170b9 592 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170b9
594 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170b9 593 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170b9
595 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170b9 /* CD */ 594 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170b9 /* CD */
596 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170b9 595 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170b9
597 >; 596 >;
598 }; 597 };
599 598
600 pinctrl_usdhc3_200mhz: usdhc3grp200mhz { 599 pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
601 fsl,pins = < 600 fsl,pins = <
602 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9 601 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9
603 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9 602 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9
604 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9 603 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
605 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9 604 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
606 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9 605 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
607 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9 606 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
608 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170f9 /* CD */ 607 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170f9 /* CD */
609 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170f9 608 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170f9
610 >; 609 >;
611 }; 610 };
612 611
613 pinctrl_wdog: wdoggrp { 612 pinctrl_wdog: wdoggrp {
614 fsl,pins = < 613 fsl,pins = <
615 MX6QDL_PAD_DISP0_DAT8__WDOG1_B 0x1b0b0 614 MX6QDL_PAD_DISP0_DAT8__WDOG1_B 0x1b0b0
616 >; 615 >;
617 };
618 }; 616 };
619}; 617};
diff --git a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
index 4594b2279169..eab75f3dbaf3 100644
--- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
@@ -223,7 +223,7 @@
223 pinctrl-0 = <&pinctrl_i2c2>; 223 pinctrl-0 = <&pinctrl_i2c2>;
224 status = "okay"; 224 status = "okay";
225 225
226 pmic: pfuze100@08 { 226 pmic: pfuze100@8 {
227 compatible = "fsl,pfuze100"; 227 compatible = "fsl,pfuze100";
228 reg = <0x08>; 228 reg = <0x08>;
229 229
@@ -331,7 +331,7 @@
331 pinctrl-0 = <&pinctrl_i2c3>; 331 pinctrl-0 = <&pinctrl_i2c3>;
332 status = "okay"; 332 status = "okay";
333 333
334 codec: sgtl5000@0a { 334 codec: sgtl5000@a {
335 compatible = "fsl,sgtl5000"; 335 compatible = "fsl,sgtl5000";
336 reg = <0x0a>; 336 reg = <0x0a>;
337 clocks = <&clks IMX6QDL_CLK_CKO>; 337 clocks = <&clks IMX6QDL_CLK_CKO>;
@@ -339,7 +339,7 @@
339 VDDIO-supply = <&reg_3p3v>; 339 VDDIO-supply = <&reg_3p3v>;
340 }; 340 };
341 341
342 touchscreen: egalax_ts@04 { 342 touchscreen: egalax_ts@4 {
343 compatible = "eeti,egalax_ts"; 343 compatible = "eeti,egalax_ts";
344 reg = <0x04>; 344 reg = <0x04>;
345 interrupt-parent = <&gpio7>; 345 interrupt-parent = <&gpio7>;
@@ -468,221 +468,219 @@
468}; 468};
469 469
470&iomuxc { 470&iomuxc {
471 imx6qdl-gw54xx { 471 pinctrl_audmux: audmuxgrp {
472 pinctrl_audmux: audmuxgrp { 472 fsl,pins = <
473 fsl,pins = < 473 MX6QDL_PAD_SD2_DAT0__AUD4_RXD 0x130b0
474 MX6QDL_PAD_SD2_DAT0__AUD4_RXD 0x130b0 474 MX6QDL_PAD_SD2_DAT3__AUD4_TXC 0x130b0
475 MX6QDL_PAD_SD2_DAT3__AUD4_TXC 0x130b0 475 MX6QDL_PAD_SD2_DAT2__AUD4_TXD 0x110b0
476 MX6QDL_PAD_SD2_DAT2__AUD4_TXD 0x110b0 476 MX6QDL_PAD_SD2_DAT1__AUD4_TXFS 0x130b0
477 MX6QDL_PAD_SD2_DAT1__AUD4_TXFS 0x130b0 477 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0 /* AUD4_MCK */
478 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0 /* AUD4_MCK */ 478 >;
479 >; 479 };
480 };
481 480
482 pinctrl_enet: enetgrp { 481 pinctrl_enet: enetgrp {
483 fsl,pins = < 482 fsl,pins = <
484 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030 483 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
485 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030 484 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030
486 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030 485 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030
487 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030 486 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
488 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030 487 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
489 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030 488 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
490 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030 489 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
491 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030 490 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
492 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030 491 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
493 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030 492 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
494 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030 493 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
495 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030 494 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
496 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 495 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
497 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 496 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
498 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 497 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
499 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8 498 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
500 >; 499 >;
501 }; 500 };
502 501
503 pinctrl_ecspi2: escpi2grp { 502 pinctrl_ecspi2: escpi2grp {
504 fsl,pins = < 503 fsl,pins = <
505 MX6QDL_PAD_EIM_CS0__ECSPI2_SCLK 0x100b1 504 MX6QDL_PAD_EIM_CS0__ECSPI2_SCLK 0x100b1
506 MX6QDL_PAD_EIM_CS1__ECSPI2_MOSI 0x100b1 505 MX6QDL_PAD_EIM_CS1__ECSPI2_MOSI 0x100b1
507 MX6QDL_PAD_EIM_OE__ECSPI2_MISO 0x100b1 506 MX6QDL_PAD_EIM_OE__ECSPI2_MISO 0x100b1
508 MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x100b1 507 MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x100b1
509 >; 508 >;
510 }; 509 };
511 510
512 pinctrl_flexcan1: flexcan1grp { 511 pinctrl_flexcan1: flexcan1grp {
513 fsl,pins = < 512 fsl,pins = <
514 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b1 513 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b1
515 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b0b1 514 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b0b1
516 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x4001b0b0 /* CAN_STBY */ 515 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x4001b0b0 /* CAN_STBY */
517 >; 516 >;
518 }; 517 };
519 518
520 pinctrl_gpio_leds: gpioledsgrp { 519 pinctrl_gpio_leds: gpioledsgrp {
521 fsl,pins = < 520 fsl,pins = <
522 MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1b0b0 521 MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1b0b0
523 MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x1b0b0 522 MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x1b0b0
524 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b0 523 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b0
525 >; 524 >;
526 }; 525 };
527 526
528 pinctrl_gpmi_nand: gpminandgrp { 527 pinctrl_gpmi_nand: gpminandgrp {
529 fsl,pins = < 528 fsl,pins = <
530 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1 529 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1
531 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1 530 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1
532 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1 531 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1
533 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000 532 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000
534 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1 533 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1
535 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1 534 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1
536 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1 535 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1
537 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1 536 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1
538 MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1 537 MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1
539 MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1 538 MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1
540 MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1 539 MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1
541 MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1 540 MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1
542 MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1 541 MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1
543 MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1 542 MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1
544 MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1 543 MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1
545 >; 544 >;
546 }; 545 };
547 546
548 pinctrl_i2c1: i2c1grp { 547 pinctrl_i2c1: i2c1grp {
549 fsl,pins = < 548 fsl,pins = <
550 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 549 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
551 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 550 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
552 >; 551 >;
553 }; 552 };
554 553
555 pinctrl_i2c2: i2c2grp { 554 pinctrl_i2c2: i2c2grp {
556 fsl,pins = < 555 fsl,pins = <
557 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 556 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
558 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 557 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
559 >; 558 >;
560 }; 559 };
561 560
562 pinctrl_i2c3: i2c3grp { 561 pinctrl_i2c3: i2c3grp {
563 fsl,pins = < 562 fsl,pins = <
564 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1 563 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
565 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1 564 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
566 >; 565 >;
567 }; 566 };
568 567
569 pinctrl_pcie: pciegrp { 568 pinctrl_pcie: pciegrp {
570 fsl,pins = < 569 fsl,pins = <
571 MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1b0b0 /* PCIE IRQ */ 570 MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1b0b0 /* PCIE IRQ */
572 MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0 /* PCIE RST */ 571 MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0 /* PCIE RST */
573 >; 572 >;
574 }; 573 };
575 574
576 pinctrl_pps: ppsgrp { 575 pinctrl_pps: ppsgrp {
577 fsl,pins = < 576 fsl,pins = <
578 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1 577 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1
579 >; 578 >;
580 }; 579 };
581 580
582 pinctrl_pwm1: pwm1grp { 581 pinctrl_pwm1: pwm1grp {
583 fsl,pins = < 582 fsl,pins = <
584 MX6QDL_PAD_GPIO_9__PWM1_OUT 0x1b0b1 583 MX6QDL_PAD_GPIO_9__PWM1_OUT 0x1b0b1
585 >; 584 >;
586 }; 585 };
587 586
588 pinctrl_pwm2: pwm2grp { 587 pinctrl_pwm2: pwm2grp {
589 fsl,pins = < 588 fsl,pins = <
590 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1 589 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1
591 >; 590 >;
592 }; 591 };
593 592
594 pinctrl_pwm3: pwm3grp { 593 pinctrl_pwm3: pwm3grp {
595 fsl,pins = < 594 fsl,pins = <
596 MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1 595 MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1
597 >; 596 >;
598 }; 597 };
599 598
600 pinctrl_pwm4_backlight: pwm4grpbacklight { 599 pinctrl_pwm4_backlight: pwm4grpbacklight {
601 fsl,pins = < 600 fsl,pins = <
602 /* LVDS_PWM J6.5 */ 601 /* LVDS_PWM J6.5 */
603 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1 602 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
604 >; 603 >;
605 }; 604 };
606 605
607 pinctrl_pwm4_dio: pwm4grpdio { 606 pinctrl_pwm4_dio: pwm4grpdio {
608 fsl,pins = < 607 fsl,pins = <
609 /* DIO3 J16.4 */ 608 /* DIO3 J16.4 */
610 MX6QDL_PAD_SD4_DAT2__PWM4_OUT 0x1b0b1 609 MX6QDL_PAD_SD4_DAT2__PWM4_OUT 0x1b0b1
611 >; 610 >;
612 }; 611 };
613 612
614 pinctrl_uart1: uart1grp { 613 pinctrl_uart1: uart1grp {
615 fsl,pins = < 614 fsl,pins = <
616 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1 615 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
617 MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1 616 MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1
618 MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x4001b0b1 /* TEN */ 617 MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x4001b0b1 /* TEN */
619 >; 618 >;
620 }; 619 };
621 620
622 pinctrl_uart2: uart2grp { 621 pinctrl_uart2: uart2grp {
623 fsl,pins = < 622 fsl,pins = <
624 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1 623 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
625 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1 624 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1
626 >; 625 >;
627 }; 626 };
628 627
629 pinctrl_uart5: uart5grp { 628 pinctrl_uart5: uart5grp {
630 fsl,pins = < 629 fsl,pins = <
631 MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1 630 MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1
632 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1 631 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1
633 >; 632 >;
634 }; 633 };
635 634
636 pinctrl_usbotg: usbotggrp { 635 pinctrl_usbotg: usbotggrp {
637 fsl,pins = < 636 fsl,pins = <
638 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059 637 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
639 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 /* PWR_EN */ 638 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 /* PWR_EN */
640 >; 639 >;
641 }; 640 };
642 641
643 pinctrl_usdhc3: usdhc3grp { 642 pinctrl_usdhc3: usdhc3grp {
644 fsl,pins = < 643 fsl,pins = <
645 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 644 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
646 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 645 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
647 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059 646 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
648 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 647 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
649 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 648 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
650 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 649 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
651 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x17059 /* CD */ 650 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x17059 /* CD */
652 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x17059 651 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x17059
653 >; 652 >;
654 }; 653 };
655 654
656 pinctrl_usdhc3_100mhz: usdhc3grp100mhz { 655 pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
657 fsl,pins = < 656 fsl,pins = <
658 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170b9 657 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170b9
659 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100b9 658 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100b9
660 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170b9 659 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170b9
661 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170b9 660 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170b9
662 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170b9 661 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170b9
663 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170b9 662 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170b9
664 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170b9 /* CD */ 663 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170b9 /* CD */
665 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170b9 664 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170b9
666 >; 665 >;
667 }; 666 };
668 667
669 pinctrl_usdhc3_200mhz: usdhc3grp200mhz { 668 pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
670 fsl,pins = < 669 fsl,pins = <
671 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9 670 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9
672 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9 671 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9
673 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9 672 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
674 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9 673 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
675 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9 674 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
676 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9 675 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
677 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170f9 /* CD */ 676 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170f9 /* CD */
678 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170f9 677 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170f9
679 >; 678 >;
680 }; 679 };
681 680
682 pinctrl_wdog: wdoggrp { 681 pinctrl_wdog: wdoggrp {
683 fsl,pins = < 682 fsl,pins = <
684 MX6QDL_PAD_SD1_DAT3__WDOG2_B 0x1b0b0 683 MX6QDL_PAD_SD1_DAT3__WDOG2_B 0x1b0b0
685 >; 684 >;
686 };
687 }; 685 };
688}; 686};
diff --git a/arch/arm/boot/dts/imx6qdl-gw551x.dtsi b/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
index 405b40310ddf..30d4662d4480 100644
--- a/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
@@ -320,110 +320,108 @@
320}; 320};
321 321
322&iomuxc { 322&iomuxc {
323 imx6qdl-gw51xx { 323 pinctrl_flexcan1: flexcan1grp {
324 pinctrl_flexcan1: flexcan1grp { 324 fsl,pins = <
325 fsl,pins = < 325 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b1
326 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b1 326 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b0b1
327 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b0b1 327 MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x4001b0b0 /* CAN_STBY */
328 MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x4001b0b0 /* CAN_STBY */ 328 >;
329 >; 329 };
330 };
331 330
332 pinctrl_gpio_leds: gpioledsgrp { 331 pinctrl_gpio_leds: gpioledsgrp {
333 fsl,pins = < 332 fsl,pins = <
334 MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x1b0b0 333 MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x1b0b0
335 >; 334 >;
336 }; 335 };
337 336
338 pinctrl_gpmi_nand: gpminandgrp { 337 pinctrl_gpmi_nand: gpminandgrp {
339 fsl,pins = < 338 fsl,pins = <
340 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1 339 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1
341 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1 340 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1
342 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1 341 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1
343 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000 342 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000
344 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1 343 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1
345 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1 344 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1
346 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1 345 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1
347 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1 346 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1
348 MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1 347 MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1
349 MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1 348 MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1
350 MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1 349 MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1
351 MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1 350 MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1
352 MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1 351 MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1
353 MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1 352 MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1
354 MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1 353 MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1
355 >; 354 >;
356 }; 355 };
357 356
358 pinctrl_i2c1: i2c1grp { 357 pinctrl_i2c1: i2c1grp {
359 fsl,pins = < 358 fsl,pins = <
360 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 359 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
361 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 360 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
362 >; 361 >;
363 }; 362 };
364 363
365 pinctrl_i2c2: i2c2grp { 364 pinctrl_i2c2: i2c2grp {
366 fsl,pins = < 365 fsl,pins = <
367 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 366 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
368 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 367 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
369 >; 368 >;
370 }; 369 };
371 370
372 pinctrl_i2c3: i2c3grp { 371 pinctrl_i2c3: i2c3grp {
373 fsl,pins = < 372 fsl,pins = <
374 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1 373 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
375 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1 374 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
376 >; 375 >;
377 }; 376 };
378 377
379 pinctrl_pcie: pciegrp { 378 pinctrl_pcie: pciegrp {
380 fsl,pins = < 379 fsl,pins = <
381 MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0 /* PCIE RST */ 380 MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0 /* PCIE RST */
382 >; 381 >;
383 }; 382 };
384 383
385 pinctrl_pmic: pmicgrp { 384 pinctrl_pmic: pmicgrp {
386 fsl,pins = < 385 fsl,pins = <
387 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */ 386 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */
388 >; 387 >;
389 }; 388 };
390 389
391 pinctrl_pwm2: pwm2grp { 390 pinctrl_pwm2: pwm2grp {
392 fsl,pins = < 391 fsl,pins = <
393 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1 392 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1
394 >; 393 >;
395 }; 394 };
396 395
397 pinctrl_pwm3: pwm3grp { 396 pinctrl_pwm3: pwm3grp {
398 fsl,pins = < 397 fsl,pins = <
399 MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x1b0b1 398 MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x1b0b1
400 >; 399 >;
401 }; 400 };
402 401
403 pinctrl_uart2: uart2grp { 402 pinctrl_uart2: uart2grp {
404 fsl,pins = < 403 fsl,pins = <
405 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1 404 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
406 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1 405 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1
407 >; 406 >;
408 }; 407 };
409 408
410 pinctrl_uart3: uart3grp { 409 pinctrl_uart3: uart3grp {
411 fsl,pins = < 410 fsl,pins = <
412 MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1 411 MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
413 MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1 412 MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
414 >; 413 >;
415 }; 414 };
416 415
417 pinctrl_usbotg: usbotggrp { 416 pinctrl_usbotg: usbotggrp {
418 fsl,pins = < 417 fsl,pins = <
419 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059 418 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
420 >; 419 >;
421 }; 420 };
422 421
423 pinctrl_wdog: wdoggrp { 422 pinctrl_wdog: wdoggrp {
424 fsl,pins = < 423 fsl,pins = <
425 MX6QDL_PAD_DISP0_DAT8__WDOG1_B 0x1b0b0 424 MX6QDL_PAD_DISP0_DAT8__WDOG1_B 0x1b0b0
426 >; 425 >;
427 };
428 }; 426 };
429}; 427};
diff --git a/arch/arm/boot/dts/imx6qdl-gw552x.dtsi b/arch/arm/boot/dts/imx6qdl-gw552x.dtsi
index 67613dd7cc92..c67c10605070 100644
--- a/arch/arm/boot/dts/imx6qdl-gw552x.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw552x.dtsi
@@ -270,105 +270,103 @@
270}; 270};
271 271
272&iomuxc { 272&iomuxc {
273 imx6qdl-gw552x { 273 pinctrl_gpio_leds: gpioledsgrp {
274 pinctrl_gpio_leds: gpioledsgrp { 274 fsl,pins = <
275 fsl,pins = < 275 MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1b0b0
276 MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1b0b0 276 MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x1b0b0
277 MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x1b0b0 277 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b0
278 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b0 278 >;
279 >; 279 };
280 };
281 280
282 pinctrl_gpmi_nand: gpminandgrp { 281 pinctrl_gpmi_nand: gpminandgrp {
283 fsl,pins = < 282 fsl,pins = <
284 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1 283 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1
285 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1 284 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1
286 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1 285 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1
287 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000 286 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000
288 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1 287 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1
289 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1 288 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1
290 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1 289 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1
291 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1 290 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1
292 MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1 291 MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1
293 MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1 292 MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1
294 MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1 293 MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1
295 MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1 294 MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1
296 MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1 295 MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1
297 MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1 296 MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1
298 MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1 297 MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1
299 >; 298 >;
300 }; 299 };
301 300
302 pinctrl_i2c1: i2c1grp { 301 pinctrl_i2c1: i2c1grp {
303 fsl,pins = < 302 fsl,pins = <
304 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 303 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
305 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 304 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
306 >; 305 >;
307 }; 306 };
308 307
309 pinctrl_i2c2: i2c2grp { 308 pinctrl_i2c2: i2c2grp {
310 fsl,pins = < 309 fsl,pins = <
311 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 310 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
312 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 311 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
313 >; 312 >;
314 }; 313 };
315 314
316 pinctrl_i2c3: i2c3grp { 315 pinctrl_i2c3: i2c3grp {
317 fsl,pins = < 316 fsl,pins = <
318 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1 317 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
319 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1 318 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
320 >; 319 >;
321 }; 320 };
322 321
323 pinctrl_pcie: pciegrp { 322 pinctrl_pcie: pciegrp {
324 fsl,pins = < 323 fsl,pins = <
325 MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0 324 MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0
326 >; 325 >;
327 }; 326 };
328 327
329 pinctrl_pmic: pmicgrp { 328 pinctrl_pmic: pmicgrp {
330 fsl,pins = < 329 fsl,pins = <
331 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */ 330 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */
332 >; 331 >;
333 }; 332 };
334 333
335 pinctrl_pwm2: pwm2grp { 334 pinctrl_pwm2: pwm2grp {
336 fsl,pins = < 335 fsl,pins = <
337 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1 336 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1
338 >; 337 >;
339 }; 338 };
340 339
341 pinctrl_pwm3: pwm3grp { 340 pinctrl_pwm3: pwm3grp {
342 fsl,pins = < 341 fsl,pins = <
343 MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x1b0b1 342 MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x1b0b1
344 >; 343 >;
345 }; 344 };
346 345
347 pinctrl_uart2: uart2grp { 346 pinctrl_uart2: uart2grp {
348 fsl,pins = < 347 fsl,pins = <
349 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1 348 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
350 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1 349 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1
351 >; 350 >;
352 }; 351 };
353 352
354 pinctrl_uart3: uart3grp { 353 pinctrl_uart3: uart3grp {
355 fsl,pins = < 354 fsl,pins = <
356 MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1 355 MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
357 MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1 356 MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
358 >; 357 >;
359 }; 358 };
360 359
361 pinctrl_uart5: uart5grp { 360 pinctrl_uart5: uart5grp {
362 fsl,pins = < 361 fsl,pins = <
363 MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1 362 MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1
364 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1 363 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1
365 >; 364 >;
366 }; 365 };
367 366
368 pinctrl_wdog: wdoggrp { 367 pinctrl_wdog: wdoggrp {
369 fsl,pins = < 368 fsl,pins = <
370 MX6QDL_PAD_DISP0_DAT8__WDOG1_B 0x1b0b0 369 MX6QDL_PAD_DISP0_DAT8__WDOG1_B 0x1b0b0
371 >; 370 >;
372 };
373 }; 371 };
374}; 372};
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi
index 988334c889eb..37c07c0748aa 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard.dtsi
@@ -138,7 +138,7 @@
138 }; 138 };
139 139
140 /* Pro baseboard model */ 140 /* Pro baseboard model */
141 sgtl5000: sgtl5000@0a { 141 sgtl5000: sgtl5000@a {
142 clocks = <&clks IMX6QDL_CLK_CKO>; 142 clocks = <&clks IMX6QDL_CLK_CKO>;
143 compatible = "fsl,sgtl5000"; 143 compatible = "fsl,sgtl5000";
144 pinctrl-names = "default"; 144 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi b/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
index 7ca291e9dbdb..b6220d62f6de 100644
--- a/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
@@ -41,6 +41,7 @@
41 41
42#include <dt-bindings/gpio/gpio.h> 42#include <dt-bindings/gpio/gpio.h>
43#include <dt-bindings/clock/imx6qdl-clock.h> 43#include <dt-bindings/clock/imx6qdl-clock.h>
44#include <dt-bindings/sound/fsl-imx-audmux.h>
44 45
45/ { 46/ {
46 memory { 47 memory {
@@ -118,17 +119,77 @@
118 clocks = <&clks IMX6QDL_CLK_LVDS2_GATE>; 119 clocks = <&clks IMX6QDL_CLK_LVDS2_GATE>;
119 clock-names = "refclk"; 120 clock-names = "refclk";
120 }; 121 };
121};
122 122
123&clks { 123 sound {
124 assigned-clocks = <&clks IMX6QDL_CLK_LVDS2_SEL>; 124 compatible = "simple-audio-card";
125 assigned-clock-parents = <&clks IMX6QDL_CLK_OSC>; 125 simple-audio-card,name = "imx6qdl-icore-rqs-sgtl5000";
126 simple-audio-card,format = "i2s";
127 simple-audio-card,bitclock-master = <&dailink_master>;
128 simple-audio-card,frame-master = <&dailink_master>;
129 simple-audio-card,widgets =
130 "Microphone", "Mic Jack",
131 "Headphone", "Headphone Jack",
132 "Line", "Line In Jack",
133 "Speaker", "Line Out Jack",
134 "Speaker", "Ext Spk";
135 simple-audio-card,routing =
136 "MIC_IN", "Mic Jack",
137 "Mic Jack", "Mic Bias",
138 "Headphone Jack", "HP_OUT";
139
140 simple-audio-card,cpu {
141 sound-dai = <&ssi1>;
142 };
143
144 dailink_master: simple-audio-card,codec {
145 sound-dai = <&sgtl5000>;
146 };
147 };
126}; 148};
127 149
128&audmux { 150&audmux {
129 pinctrl-names = "default"; 151 pinctrl-names = "default";
130 pinctrl-0 = <&pinctrl_audmux>; 152 pinctrl-0 = <&pinctrl_audmux>;
131 status = "okay"; 153 status = "okay";
154
155 audmux_ssi1 {
156 fsl,audmux-port = <MX51_AUDMUX_PORT1_SSI0>;
157 fsl,port-config = <
158 (IMX_AUDMUX_V2_PTCR_TFSDIR |
159 IMX_AUDMUX_V2_PTCR_TFSEL(MX51_AUDMUX_PORT4) |
160 IMX_AUDMUX_V2_PTCR_TCLKDIR |
161 IMX_AUDMUX_V2_PTCR_TCSEL(MX51_AUDMUX_PORT4) |
162 IMX_AUDMUX_V2_PTCR_SYN)
163 IMX_AUDMUX_V2_PDCR_RXDSEL(MX51_AUDMUX_PORT4)
164 >;
165 };
166
167 audmux_aud4 {
168 fsl,audmux-port = <MX51_AUDMUX_PORT4>;
169 fsl,port-config = <
170 IMX_AUDMUX_V2_PTCR_SYN
171 IMX_AUDMUX_V2_PDCR_RXDSEL(MX51_AUDMUX_PORT1_SSI0)
172 >;
173 };
174};
175
176&can1 {
177 pinctrl-names = "default";
178 pinctrl-0 = <&pinctrl_can1>;
179 xceiver-supply = <&reg_3p3v>;
180 status = "okay";
181};
182
183&can2 {
184 pinctrl-names = "default";
185 pinctrl-0 = <&pinctrl_can2>;
186 xceiver-supply = <&reg_3p3v>;
187 status = "okay";
188};
189
190&clks {
191 assigned-clocks = <&clks IMX6QDL_CLK_LVDS2_SEL>;
192 assigned-clock-parents = <&clks IMX6QDL_CLK_OSC>;
132}; 193};
133 194
134&fec { 195&fec {
@@ -174,6 +235,16 @@
174 pinctrl-names = "default"; 235 pinctrl-names = "default";
175 pinctrl-0 = <&pinctrl_i2c3>; 236 pinctrl-0 = <&pinctrl_i2c3>;
176 status = "okay"; 237 status = "okay";
238
239 sgtl5000: codec@a {
240 #sound-dai-cells = <0>;
241 compatible = "fsl,sgtl5000";
242 reg = <0x0a>;
243 clocks = <&clks IMX6QDL_CLK_CKO>;
244 VDDA-supply = <&reg_2p5v>;
245 VDDIO-supply = <&reg_3p3v>;
246 VDDD-supply = <&reg_1p8v>;
247 };
177}; 248};
178 249
179&pcie { 250&pcie {
@@ -184,6 +255,7 @@
184}; 255};
185 256
186&ssi1 { 257&ssi1 {
258 fsl,mode = "i2s-slave";
187 status = "okay"; 259 status = "okay";
188}; 260};
189 261
@@ -270,6 +342,20 @@
270 >; 342 >;
271 }; 343 };
272 344
345 pinctrl_can1: can1grp {
346 fsl,pins = <
347 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b020
348 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b020
349 >;
350 };
351
352 pinctrl_can2: can2grp {
353 fsl,pins = <
354 MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x1b020
355 MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x1b020
356 >;
357 };
358
273 pinctrl_i2c1: i2c1grp { 359 pinctrl_i2c1: i2c1grp {
274 fsl,pins = < 360 fsl,pins = <
275 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 361 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
diff --git a/arch/arm/boot/dts/imx6qdl-icore.dtsi b/arch/arm/boot/dts/imx6qdl-icore.dtsi
index 56d0c5d21cd0..a1b469c142f1 100644
--- a/arch/arm/boot/dts/imx6qdl-icore.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-icore.dtsi
@@ -42,6 +42,7 @@
42 42
43#include <dt-bindings/gpio/gpio.h> 43#include <dt-bindings/gpio/gpio.h>
44#include <dt-bindings/input/input.h> 44#include <dt-bindings/input/input.h>
45#include <dt-bindings/sound/fsl-imx-audmux.h>
45 46
46/ { 47/ {
47 memory { 48 memory {
@@ -55,6 +56,25 @@
55 default-brightness-level = <7>; 56 default-brightness-level = <7>;
56 }; 57 };
57 58
59 reg_1p8v: regulator-1p8v {
60 compatible = "regulator-fixed";
61 regulator-name = "1P8V";
62 regulator-min-microvolt = <1800000>;
63 regulator-max-microvolt = <1800000>;
64 regulator-boot-on;
65 regulator-always-on;
66 };
67
68
69 reg_2p5v: regulator-3p3v {
70 compatible = "regulator-fixed";
71 regulator-name = "2P5V";
72 regulator-min-microvolt = <2500000>;
73 regulator-max-microvolt = <2500000>;
74 regulator-boot-on;
75 regulator-always-on;
76 };
77
58 reg_3p3v: regulator-3p3v { 78 reg_3p3v: regulator-3p3v {
59 compatible = "regulator-fixed"; 79 compatible = "regulator-fixed";
60 regulator-name = "3P3V"; 80 regulator-name = "3P3V";
@@ -87,6 +107,59 @@
87 #clock-cells = <0>; 107 #clock-cells = <0>;
88 clock-frequency = <25000000>; /* 25MHz for example */ 108 clock-frequency = <25000000>; /* 25MHz for example */
89 }; 109 };
110
111 sound {
112 compatible = "simple-audio-card";
113 simple-audio-card,name = "imx6qdl-icore-sgtl5000";
114 simple-audio-card,format = "i2s";
115 simple-audio-card,bitclock-master = <&dailink_master>;
116 simple-audio-card,frame-master = <&dailink_master>;
117 simple-audio-card,widgets =
118 "Microphone", "Mic Jack",
119 "Headphone", "Headphone Jack",
120 "Line", "Line In Jack",
121 "Speaker", "Line Out Jack",
122 "Speaker", "Ext Spk";
123 simple-audio-card,routing =
124 "MIC_IN", "Mic Jack",
125 "Mic Jack", "Mic Bias",
126 "Headphone Jack", "HP_OUT";
127
128 simple-audio-card,cpu {
129 sound-dai = <&ssi1>;
130 };
131
132 dailink_master: simple-audio-card,codec {
133 sound-dai = <&sgtl5000>;
134 };
135 };
136};
137
138&audmux {
139 pinctrl-names = "default";
140 pinctrl-0 = <&pinctrl_audmux>;
141 status = "okay";
142
143
144 audmux_ssi1 {
145 fsl,audmux-port = <MX51_AUDMUX_PORT1_SSI0>;
146 fsl,port-config = <
147 (IMX_AUDMUX_V2_PTCR_TFSDIR |
148 IMX_AUDMUX_V2_PTCR_TFSEL(MX51_AUDMUX_PORT4) |
149 IMX_AUDMUX_V2_PTCR_TCLKDIR |
150 IMX_AUDMUX_V2_PTCR_TCSEL(MX51_AUDMUX_PORT4) |
151 IMX_AUDMUX_V2_PTCR_SYN)
152 IMX_AUDMUX_V2_PDCR_RXDSEL(MX51_AUDMUX_PORT4)
153 >;
154 };
155
156 audmux_aud4 {
157 fsl,audmux-port = <MX51_AUDMUX_PORT4>;
158 fsl,port-config = <
159 IMX_AUDMUX_V2_PTCR_SYN
160 IMX_AUDMUX_V2_PDCR_RXDSEL(MX51_AUDMUX_PORT1_SSI0)
161 >;
162 };
90}; 163};
91 164
92&can1 { 165&can1 {
@@ -141,6 +214,16 @@
141 pinctrl-names = "default"; 214 pinctrl-names = "default";
142 pinctrl-0 = <&pinctrl_i2c3>; 215 pinctrl-0 = <&pinctrl_i2c3>;
143 status = "okay"; 216 status = "okay";
217
218 sgtl5000: codec@a {
219 #sound-dai-cells = <0>;
220 compatible = "fsl,sgtl5000";
221 reg = <0x0a>;
222 clocks = <&clks IMX6QDL_CLK_CKO>;
223 VDDA-supply = <&reg_2p5v>;
224 VDDIO-supply = <&reg_3p3v>;
225 VDDD-supply = <&reg_1p8v>;
226 };
144}; 227};
145 228
146&pwm3 { 229&pwm3 {
@@ -149,6 +232,11 @@
149 status = "okay"; 232 status = "okay";
150}; 233};
151 234
235&ssi1 {
236 fsl,mode = "i2s-slave";
237 status = "okay";
238};
239
152&uart4 { 240&uart4 {
153 pinctrl-names = "default"; 241 pinctrl-names = "default";
154 pinctrl-0 = <&pinctrl_uart4>; 242 pinctrl-0 = <&pinctrl_uart4>;
@@ -178,6 +266,15 @@
178}; 266};
179 267
180&iomuxc { 268&iomuxc {
269 pinctrl_audmux: audmux {
270 fsl,pins = <
271 MX6QDL_PAD_DISP0_DAT20__AUD4_TXC 0x130b0
272 MX6QDL_PAD_DISP0_DAT21__AUD4_TXD 0x110b0
273 MX6QDL_PAD_DISP0_DAT22__AUD4_TXFS 0x130b0
274 MX6QDL_PAD_DISP0_DAT23__AUD4_RXD 0x130b0
275 >;
276 };
277
181 pinctrl_enet: enetgrp { 278 pinctrl_enet: enetgrp {
182 fsl,pins = < 279 fsl,pins = <
183 MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1b0b0 280 MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1b0b0
diff --git a/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi b/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
index 6b81580623ff..4cc4e23cf99c 100644
--- a/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
@@ -255,7 +255,7 @@
255 pinctrl-0 = <&pinctrl_i2c1>; 255 pinctrl-0 = <&pinctrl_i2c1>;
256 status = "okay"; 256 status = "okay";
257 257
258 codec: sgtl5000@0a { 258 codec: sgtl5000@a {
259 compatible = "fsl,sgtl5000"; 259 compatible = "fsl,sgtl5000";
260 pinctrl-names = "default"; 260 pinctrl-names = "default";
261 pinctrl-0 = <&pinctrl_sgtl5000>; 261 pinctrl-0 = <&pinctrl_sgtl5000>;
@@ -279,7 +279,7 @@
279 pinctrl-0 = <&pinctrl_i2c3>; 279 pinctrl-0 = <&pinctrl_i2c3>;
280 status = "okay"; 280 status = "okay";
281 281
282 touchscreen@04 { 282 touchscreen@4 {
283 compatible = "eeti,egalax_ts"; 283 compatible = "eeti,egalax_ts";
284 reg = <0x04>; 284 reg = <0x04>;
285 interrupt-parent = <&gpio1>; 285 interrupt-parent = <&gpio1>;
diff --git a/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi b/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
index b63134e3b51a..3a77f0fedfce 100644
--- a/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
@@ -256,7 +256,7 @@
256 status = "okay"; 256 status = "okay";
257 }; 257 };
258 258
259 lcd_display: display@di0 { 259 lcd_display: disp0 {
260 compatible = "fsl,imx-parallel-display"; 260 compatible = "fsl,imx-parallel-display";
261 #address-cells = <1>; 261 #address-cells = <1>;
262 #size-cells = <0>; 262 #size-cells = <0>;
@@ -397,7 +397,7 @@
397 pinctrl-0 = <&pinctrl_i2c1>; 397 pinctrl-0 = <&pinctrl_i2c1>;
398 status = "okay"; 398 status = "okay";
399 399
400 codec: sgtl5000@0a { 400 codec: sgtl5000@a {
401 compatible = "fsl,sgtl5000"; 401 compatible = "fsl,sgtl5000";
402 pinctrl-names = "default"; 402 pinctrl-names = "default";
403 pinctrl-0 = <&pinctrl_sgtl5000>; 403 pinctrl-0 = <&pinctrl_sgtl5000>;
@@ -429,7 +429,7 @@
429 pinctrl-0 = <&pinctrl_i2c3>; 429 pinctrl-0 = <&pinctrl_i2c3>;
430 status = "okay"; 430 status = "okay";
431 431
432 touchscreen@04 { 432 touchscreen@4 {
433 compatible = "eeti,egalax_ts"; 433 compatible = "eeti,egalax_ts";
434 reg = <0x04>; 434 reg = <0x04>;
435 interrupt-parent = <&gpio1>; 435 interrupt-parent = <&gpio1>;
diff --git a/arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi b/arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi
index a24e4f1911ab..40942d6b94b3 100644
--- a/arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi
@@ -120,7 +120,7 @@
120 }; 120 };
121 }; 121 };
122 122
123 lcd_display: display@di0 { 123 lcd_display: disp0 {
124 compatible = "fsl,imx-parallel-display"; 124 compatible = "fsl,imx-parallel-display";
125 #address-cells = <1>; 125 #address-cells = <1>;
126 #size-cells = <0>; 126 #size-cells = <0>;
@@ -315,7 +315,7 @@
315 pinctrl-0 = <&pinctrl_i2c1>; 315 pinctrl-0 = <&pinctrl_i2c1>;
316 status = "okay"; 316 status = "okay";
317 317
318 codec: sgtl5000@0a { 318 codec: sgtl5000@a {
319 compatible = "fsl,sgtl5000"; 319 compatible = "fsl,sgtl5000";
320 pinctrl-names = "default"; 320 pinctrl-names = "default";
321 pinctrl-0 = <&pinctrl_sgtl5000>; 321 pinctrl-0 = <&pinctrl_sgtl5000>;
@@ -347,7 +347,7 @@
347 pinctrl-0 = <&pinctrl_i2c3>; 347 pinctrl-0 = <&pinctrl_i2c3>;
348 status = "okay"; 348 status = "okay";
349 349
350 touchscreen@04 { 350 touchscreen@4 {
351 compatible = "eeti,egalax_ts"; 351 compatible = "eeti,egalax_ts";
352 reg = <0x04>; 352 reg = <0x04>;
353 interrupt-parent = <&gpio1>; 353 interrupt-parent = <&gpio1>;
diff --git a/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi b/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
index d309a4d0eb08..4bdf29169d2a 100644
--- a/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
@@ -197,7 +197,7 @@
197 status = "okay"; 197 status = "okay";
198 }; 198 };
199 199
200 lcd_display: display@di0 { 200 lcd_display: disp0 {
201 compatible = "fsl,imx-parallel-display"; 201 compatible = "fsl,imx-parallel-display";
202 #address-cells = <1>; 202 #address-cells = <1>;
203 #size-cells = <0>; 203 #size-cells = <0>;
@@ -313,7 +313,7 @@
313 pinctrl-0 = <&pinctrl_i2c1>; 313 pinctrl-0 = <&pinctrl_i2c1>;
314 status = "okay"; 314 status = "okay";
315 315
316 codec: sgtl5000@0a { 316 codec: sgtl5000@a {
317 compatible = "fsl,sgtl5000"; 317 compatible = "fsl,sgtl5000";
318 reg = <0x0a>; 318 reg = <0x0a>;
319 clocks = <&clks IMX6QDL_CLK_CKO>; 319 clocks = <&clks IMX6QDL_CLK_CKO>;
@@ -340,7 +340,7 @@
340 pinctrl-0 = <&pinctrl_i2c3>; 340 pinctrl-0 = <&pinctrl_i2c3>;
341 status = "okay"; 341 status = "okay";
342 342
343 touchscreen@04 { 343 touchscreen@4 {
344 compatible = "eeti,egalax_ts"; 344 compatible = "eeti,egalax_ts";
345 reg = <0x04>; 345 reg = <0x04>;
346 interrupt-parent = <&gpio1>; 346 interrupt-parent = <&gpio1>;
diff --git a/arch/arm/boot/dts/imx6qdl-rex.dtsi b/arch/arm/boot/dts/imx6qdl-rex.dtsi
index 5cf90c24c707..6e9549ff11da 100644
--- a/arch/arm/boot/dts/imx6qdl-rex.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-rex.dtsi
@@ -121,7 +121,7 @@
121 pinctrl-0 = <&pinctrl_i2c1>; 121 pinctrl-0 = <&pinctrl_i2c1>;
122 status = "okay"; 122 status = "okay";
123 123
124 codec: sgtl5000@0a { 124 codec: sgtl5000@a {
125 compatible = "fsl,sgtl5000"; 125 compatible = "fsl,sgtl5000";
126 reg = <0x0a>; 126 reg = <0x0a>;
127 clocks = <&clks IMX6QDL_CLK_CKO>; 127 clocks = <&clks IMX6QDL_CLK_CKO>;
diff --git a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
index 6a7594e5d183..4fa2fac3877b 100644
--- a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
@@ -244,7 +244,7 @@
244 pinctrl-0 = <&pinctrl_i2c2>; 244 pinctrl-0 = <&pinctrl_i2c2>;
245 status = "okay"; 245 status = "okay";
246 246
247 pmic: pfuze100@08 { 247 pmic: pfuze100@8 {
248 compatible = "fsl,pfuze100"; 248 compatible = "fsl,pfuze100";
249 reg = <0x08>; 249 reg = <0x08>;
250 250
diff --git a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
index 756c5054f047..35de7adc997b 100644
--- a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
@@ -221,7 +221,7 @@
221 status = "okay"; 221 status = "okay";
222 }; 222 };
223 223
224 lcd_display: display@di0 { 224 lcd_display: disp0 {
225 compatible = "fsl,imx-parallel-display"; 225 compatible = "fsl,imx-parallel-display";
226 #address-cells = <1>; 226 #address-cells = <1>;
227 #size-cells = <0>; 227 #size-cells = <0>;
@@ -350,7 +350,7 @@
350 pinctrl-0 = <&pinctrl_i2c1>; 350 pinctrl-0 = <&pinctrl_i2c1>;
351 status = "okay"; 351 status = "okay";
352 352
353 codec: sgtl5000@0a { 353 codec: sgtl5000@a {
354 compatible = "fsl,sgtl5000"; 354 compatible = "fsl,sgtl5000";
355 reg = <0x0a>; 355 reg = <0x0a>;
356 clocks = <&clks IMX6QDL_CLK_CKO>; 356 clocks = <&clks IMX6QDL_CLK_CKO>;
diff --git a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
index b72b6fa47580..0a50705b9c18 100644
--- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
@@ -67,7 +67,6 @@
67 regulator-min-microvolt = <3300000>; 67 regulator-min-microvolt = <3300000>;
68 regulator-max-microvolt = <3300000>; 68 regulator-max-microvolt = <3300000>;
69 gpio = <&gpio3 19 0>; 69 gpio = <&gpio3 19 0>;
70 regulator-always-on;
71 enable-active-high; 70 enable-active-high;
72 }; 71 };
73 }; 72 };
@@ -214,6 +213,8 @@
214}; 213};
215 214
216&hdmi { 215&hdmi {
216 pinctrl-names = "default";
217 pinctrl-0 = <&pinctrl_hdmi_cec>;
217 ddc-i2c-bus = <&i2c2>; 218 ddc-i2c-bus = <&i2c2>;
218 status = "okay"; 219 status = "okay";
219}; 220};
@@ -304,7 +305,7 @@
304 }; 305 };
305 }; 306 };
306 307
307 pmic: pfuze100@08 { 308 pmic: pfuze100@8 {
308 compatible = "fsl,pfuze100"; 309 compatible = "fsl,pfuze100";
309 reg = <0x08>; 310 reg = <0x08>;
310 311
@@ -411,7 +412,7 @@
411 pinctrl-0 = <&pinctrl_i2c3>; 412 pinctrl-0 = <&pinctrl_i2c3>;
412 status = "okay"; 413 status = "okay";
413 414
414 egalax_ts@04 { 415 egalax_ts@4 {
415 compatible = "eeti,egalax_ts"; 416 compatible = "eeti,egalax_ts";
416 reg = <0x04>; 417 reg = <0x04>;
417 interrupt-parent = <&gpio6>; 418 interrupt-parent = <&gpio6>;
@@ -486,6 +487,12 @@
486 >; 487 >;
487 }; 488 };
488 489
490 pinctrl_hdmi_cec: hdmicecgrp {
491 fsl,pins = <
492 MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0
493 >;
494 };
495
489 pinctrl_i2c1: i2c1grp { 496 pinctrl_i2c1: i2c1grp {
490 fsl,pins = < 497 fsl,pins = <
491 MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1 498 MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1
@@ -651,6 +658,7 @@
651 pinctrl-names = "default"; 658 pinctrl-names = "default";
652 pinctrl-0 = <&pinctrl_pcie>; 659 pinctrl-0 = <&pinctrl_pcie>;
653 reset-gpio = <&gpio7 12 GPIO_ACTIVE_LOW>; 660 reset-gpio = <&gpio7 12 GPIO_ACTIVE_LOW>;
661 vpcie-supply = <&reg_pcie>;
654 status = "okay"; 662 status = "okay";
655}; 663};
656 664
diff --git a/arch/arm/boot/dts/imx6qdl-tx6-lcd.dtsi b/arch/arm/boot/dts/imx6qdl-tx6-lcd.dtsi
new file mode 100644
index 000000000000..5102fc47380b
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qdl-tx6-lcd.dtsi
@@ -0,0 +1,252 @@
1/*
2 * Copyright 2017 Lothar Waßmann <LW@KARO-electronics.de>
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/ {
43 aliases {
44 display = &display;
45 };
46
47 backlight: backlight {
48 compatible = "pwm-backlight";
49 pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
50 pinctrl-names = "default";
51 pinctrl-0 = <&pinctrl_lcd1_pwr>;
52 enable-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>;
53 power-supply = <&reg_3v3>;
54 turn-on-delay-ms = <35>;
55 /*
56 * a poor man's way to create a 1:1 relationship between
57 * the PWM value and the actual duty cycle
58 */
59 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
60 10 11 12 13 14 15 16 17 18 19
61 20 21 22 23 24 25 26 27 28 29
62 30 31 32 33 34 35 36 37 38 39
63 40 41 42 43 44 45 46 47 48 49
64 50 51 52 53 54 55 56 57 58 59
65 60 61 62 63 64 65 66 67 68 69
66 70 71 72 73 74 75 76 77 78 79
67 80 81 82 83 84 85 86 87 88 89
68 90 91 92 93 94 95 96 97 98 99
69 100>;
70 default-brightness-level = <50>;
71 };
72
73 lcd_panel: lcd-panel {
74 compatible = "edt,etm0700g0dh6";
75 pinctrl-names = "default";
76 pinctrl-0 = <&pinctrl_lcd0_pwr>;
77 enable-gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
78 power-supply = <&reg_3v3>;
79 backlight = <&backlight>;
80 bus-format-override = "rgb24";
81
82 port {
83 lcd_panel_in: endpoint {
84 remote-endpoint = <&lcd_out>;
85 };
86 };
87 };
88
89 display: disp0 {
90 compatible = "fsl,imx-parallel-display";
91 #address-cells = <1>;
92 #size-cells = <0>;
93 pinctrl-names = "default";
94 pinctrl-0 = <&pinctrl_disp0_1>;
95 status = "okay";
96
97 port@0 {
98 reg = <0>;
99
100 lcd_in: endpoint {
101 remote-endpoint = <&ipu1_di0_disp0>;
102 };
103 };
104
105 port@1 {
106 reg = <1>;
107
108 lcd_out: endpoint {
109 remote-endpoint = <&lcd_panel_in>;
110 };
111 };
112
113 display-timings {
114 VGA {
115 clock-frequency = <25200000>;
116 hactive = <640>;
117 vactive = <480>;
118 hback-porch = <48>;
119 hsync-len = <96>;
120 hfront-porch = <16>;
121 vback-porch = <31>;
122 vsync-len = <2>;
123 vfront-porch = <12>;
124 hsync-active = <0>;
125 vsync-active = <0>;
126 de-active = <1>;
127 pixelclk-active = <0>;
128 };
129
130 ETV570 {
131 u-boot,panel-name = "edt,et057090dhu";
132 clock-frequency = <25200000>;
133 hactive = <640>;
134 vactive = <480>;
135 hback-porch = <114>;
136 hsync-len = <30>;
137 hfront-porch = <16>;
138 vback-porch = <32>;
139 vsync-len = <3>;
140 vfront-porch = <10>;
141 hsync-active = <0>;
142 vsync-active = <0>;
143 de-active = <1>;
144 pixelclk-active = <0>;
145 };
146
147 ET0350 {
148 u-boot,panel-name = "edt,et0350g0dh6";
149 clock-frequency = <6413760>;
150 hactive = <320>;
151 vactive = <240>;
152 hback-porch = <34>;
153 hsync-len = <34>;
154 hfront-porch = <20>;
155 vback-porch = <15>;
156 vsync-len = <3>;
157 vfront-porch = <4>;
158 hsync-active = <0>;
159 vsync-active = <0>;
160 de-active = <1>;
161 pixelclk-active = <0>;
162 };
163
164 ET0430 {
165 u-boot,panel-name = "edt,et0430g0dh6";
166 clock-frequency = <9009000>;
167 hactive = <480>;
168 vactive = <272>;
169 hback-porch = <2>;
170 hsync-len = <41>;
171 hfront-porch = <2>;
172 vback-porch = <2>;
173 vsync-len = <10>;
174 vfront-porch = <2>;
175 hsync-active = <0>;
176 vsync-active = <0>;
177 de-active = <1>;
178 pixelclk-active = <1>;
179 };
180
181 ET0500 {
182 clock-frequency = <33264000>;
183 hactive = <800>;
184 vactive = <480>;
185 hback-porch = <88>;
186 hsync-len = <128>;
187 hfront-porch = <40>;
188 vback-porch = <33>;
189 vsync-len = <2>;
190 vfront-porch = <10>;
191 hsync-active = <0>;
192 vsync-active = <0>;
193 de-active = <1>;
194 pixelclk-active = <0>;
195 };
196
197 ET0700 { /* same as ET0500 */
198 u-boot,panel-name = "edt,etm0700g0dh6";
199 clock-frequency = <33264000>;
200 hactive = <800>;
201 vactive = <480>;
202 hback-porch = <88>;
203 hsync-len = <128>;
204 hfront-porch = <40>;
205 vback-porch = <33>;
206 vsync-len = <2>;
207 vfront-porch = <10>;
208 hsync-active = <0>;
209 vsync-active = <0>;
210 de-active = <1>;
211 pixelclk-active = <0>;
212 };
213
214 ETQ570 {
215 clock-frequency = <6596040>;
216 hactive = <320>;
217 vactive = <240>;
218 hback-porch = <38>;
219 hsync-len = <30>;
220 hfront-porch = <30>;
221 vback-porch = <16>;
222 vsync-len = <3>;
223 vfront-porch = <4>;
224 hsync-active = <0>;
225 vsync-active = <0>;
226 de-active = <1>;
227 pixelclk-active = <0>;
228 };
229
230 CoMTFT { /* same as ET0700 but with inverted pixel clock */
231 u-boot,panel-name = "edt,etm0700g0edh6";
232 clock-frequency = <33264000>;
233 hactive = <800>;
234 vactive = <480>;
235 hback-porch = <88>;
236 hsync-len = <128>;
237 hfront-porch = <40>;
238 vback-porch = <33>;
239 vsync-len = <2>;
240 vfront-porch = <10>;
241 hsync-active = <0>;
242 vsync-active = <0>;
243 de-active = <1>;
244 pixelclk-active = <1>;
245 };
246 };
247 };
248};
249
250&ipu1_di0_disp0 {
251 remote-endpoint = <&lcd_in>;
252};
diff --git a/arch/arm/boot/dts/imx6qdl-tx6-lvds.dtsi b/arch/arm/boot/dts/imx6qdl-tx6-lvds.dtsi
new file mode 100644
index 000000000000..2ca2eb37e14f
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qdl-tx6-lvds.dtsi
@@ -0,0 +1,286 @@
1/*
2 * Copyright 2017 Lothar Waßmann <LW@KARO-electronics.de>
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/ {
43 aliases {
44 display = &lvds0;
45 lvds0 = &lvds0;
46 lvds1 = &lvds1;
47 };
48
49 backlight0: backlight0 {
50 compatible = "pwm-backlight";
51 pwms = <&pwm2 0 500000 0>;
52 power-supply = <&reg_lcd0_pwr>;
53 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
54 10 11 12 13 14 15 16 17 18 19
55 20 21 22 23 24 25 26 27 28 29
56 30 31 32 33 34 35 36 37 38 39
57 40 41 42 43 44 45 46 47 48 49
58 50 51 52 53 54 55 56 57 58 59
59 60 61 62 63 64 65 66 67 68 69
60 70 71 72 73 74 75 76 77 78 79
61 80 81 82 83 84 85 86 87 88 89
62 90 91 92 93 94 95 96 97 98 99
63 100>;
64 default-brightness-level = <50>;
65 };
66
67 backlight1: backlight1 {
68 compatible = "pwm-backlight";
69 pwms = <&pwm1 0 500000 0>;
70 power-supply = <&reg_lcd1_pwr>;
71 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
72 10 11 12 13 14 15 16 17 18 19
73 20 21 22 23 24 25 26 27 28 29
74 30 31 32 33 34 35 36 37 38 39
75 40 41 42 43 44 45 46 47 48 49
76 50 51 52 53 54 55 56 57 58 59
77 60 61 62 63 64 65 66 67 68 69
78 70 71 72 73 74 75 76 77 78 79
79 80 81 82 83 84 85 86 87 88 89
80 90 91 92 93 94 95 96 97 98 99
81 100>;
82 default-brightness-level = <50>;
83 };
84
85 lvds0_panel: lvds0-panel {
86 compatible = "nlt,nl12880bc20-spwg-24";
87 backlight = <&backlight0>;
88 power-supply = <&reg_3v3>;
89
90 port {
91 panel_in_lvds0: endpoint {
92 remote-endpoint = <&lvds0_out>;
93 };
94 };
95 };
96
97 lvds1_panel: lvds1-panel {
98 compatible = "nlt,nl12880bc20-spwg-24";
99 backlight = <&backlight1>;
100 power-supply = <&reg_3v3>;
101
102 port {
103 panel_in_lvds1: endpoint {
104 remote-endpoint = <&lvds1_out>;
105 };
106 };
107 };
108};
109
110&kpp {
111 status = "disabled"; /* pad conflict with backlight1 PWM */
112};
113
114&ldb {
115 status = "okay";
116
117 lvds0: lvds-channel@0 {
118 fsl,data-width = <18>;
119 status = "okay";
120
121 port@4 {
122 reg = <4>;
123
124 lvds0_out: endpoint {
125 remote-endpoint = <&panel_in_lvds0>;
126 };
127 };
128
129 display-timings {
130 hsd100pxn1 {
131 u-boot,panel-name = "hannstar,hsd100pxn1";
132 clock-frequency = <65000000>;
133 hactive = <1024>;
134 vactive = <768>;
135 hback-porch = <220>;
136 hfront-porch = <40>;
137 vback-porch = <21>;
138 vfront-porch = <7>;
139 hsync-len = <60>;
140 vsync-len = <10>;
141 de-active = <1>;
142 pixelclk-active = <1>;
143 };
144
145 VGA {
146 clock-frequency = <25200000>;
147 hactive = <640>;
148 vactive = <480>;
149 hback-porch = <48>;
150 hfront-porch = <16>;
151 vback-porch = <31>;
152 vfront-porch = <12>;
153 hsync-len = <96>;
154 vsync-len = <2>;
155 hsync-active = <0>;
156 vsync-active = <0>;
157 de-active = <1>;
158 pixelclk-active = <0>;
159 };
160
161 nl12880bc20 {
162 u-boot,panel-name = "nlt,nl12880bc20-spwg-24";
163 clock-frequency = <71000000>;
164 hactive = <1280>;
165 vactive = <800>;
166 hback-porch = <50>;
167 hfront-porch = <50>;
168 vback-porch = <5>;
169 vfront-porch = <5>;
170 hsync-len = <60>;
171 vsync-len = <13>;
172 hsync-active = <0>;
173 vsync-active = <0>;
174 de-active = <1>;
175 pixelclk-active = <1>;
176 };
177
178 ET0700 {
179 u-boot,panel-name = "edt,etm0700g0dh6";
180 clock-frequency = <33264000>;
181 hactive = <800>;
182 vactive = <480>;
183 hback-porch = <88>;
184 hsync-len = <128>;
185 hfront-porch = <40>;
186 vback-porch = <33>;
187 vsync-len = <2>;
188 vfront-porch = <10>;
189 hsync-active = <0>;
190 vsync-active = <0>;
191 de-active = <1>;
192 pixelclk-active = <0>;
193 };
194
195 ETV570 {
196 u-boot,panel-name = "edt,et057090dhu";
197 clock-frequency = <25200000>;
198 hactive = <640>;
199 vactive = <480>;
200 hback-porch = <114>;
201 hsync-len = <30>;
202 hfront-porch = <16>;
203 vback-porch = <32>;
204 vsync-len = <3>;
205 vfront-porch = <10>;
206 hsync-active = <0>;
207 vsync-active = <0>;
208 de-active = <1>;
209 pixelclk-active = <0>;
210 };
211 };
212 };
213
214 lvds1: lvds-channel@1 {
215 fsl,data-width = <18>;
216 status = "okay";
217
218 port@4 {
219 reg = <4>;
220
221 lvds1_out: endpoint {
222 remote-endpoint = <&panel_in_lvds1>;
223 };
224 };
225
226 display-timings {
227 hsd100pxn1 {
228 clock-frequency = <65000000>;
229 hactive = <1024>;
230 vactive = <768>;
231 hback-porch = <220>;
232 hfront-porch = <40>;
233 vback-porch = <21>;
234 vfront-porch = <7>;
235 hsync-len = <60>;
236 vsync-len = <10>;
237 de-active = <1>;
238 pixelclk-active = <1>;
239 };
240
241 VGA {
242 clock-frequency = <25200000>;
243 hactive = <640>;
244 vactive = <480>;
245 hback-porch = <48>;
246 hfront-porch = <16>;
247 vback-porch = <31>;
248 vfront-porch = <12>;
249 hsync-len = <96>;
250 vsync-len = <2>;
251 hsync-active = <0>;
252 vsync-active = <0>;
253 de-active = <1>;
254 pixelclk-active = <0>;
255 };
256
257 nl12880bc20 {
258 clock-frequency = <71000000>;
259 hactive = <1280>;
260 vactive = <800>;
261 hback-porch = <50>;
262 hfront-porch = <50>;
263 vback-porch = <5>;
264 vfront-porch = <5>;
265 hsync-len = <60>;
266 vsync-len = <13>;
267 hsync-active = <0>;
268 vsync-active = <0>;
269 de-active = <1>;
270 pixelclk-active = <1>;
271 };
272 };
273 };
274};
275
276&pwm1 {
277 status = "okay";
278};
279
280&reg_lcd0_pwr {
281 status = "okay";
282};
283
284&reg_lcd1_pwr {
285 status = "okay";
286};
diff --git a/arch/arm/boot/dts/imx6qdl-tx6-mb7.dtsi b/arch/arm/boot/dts/imx6qdl-tx6-mb7.dtsi
new file mode 100644
index 000000000000..4c4e2e1a931f
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qdl-tx6-mb7.dtsi
@@ -0,0 +1,99 @@
1/*
2 * Copyright 2017 Lothar Waßmann <LW@KARO-electronics.de>
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/ {
43 backlight0 {
44 pwms = <&pwm1 0 500000 PWM_POLARITY_INVERTED>;
45 turn-on-delay-ms = <35>;
46 power-supply = <&reg_lcd1_pwr>;
47 };
48
49 backlight1 {
50 pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
51 turn-on-delay-ms = <35>;
52 power-supply = <&reg_lcd1_pwr>;
53 };
54
55 lcd-panel {
56 compatible = "edt,et057090dhu";
57 bus-format-override = "rgb24";
58 pixelclk-active = <0>;
59 };
60
61 lvds0-panel {
62 compatible = "edt,etml1010g0dka";
63 bus-format-override = "spwg-18";
64 pixelclk-active = <0>;
65 };
66
67 lvds1-panel {
68 compatible = "edt,etml1010g0dka";
69 bus-format-override = "spwg-18";
70 pixelclk-active = <0>;
71 };
72};
73
74&can1 {
75 status = "disabled";
76};
77
78&can2 {
79 xceiver-supply = <&reg_3v3>;
80};
81
82&ds1339 {
83 /*
84 * The backup voltage of the module internal RTC is not wired
85 * by default on the MB7, so disable that RTC chip.
86 */
87 status = "disabled";
88};
89
90&i2c3 {
91 rtc: mcp7940x@6f {
92 compatible = "microchip,mcp7940x";
93 reg = <0x6f>;
94 };
95};
96
97&reg_lcd0_pwr {
98 status = "disabled";
99};
diff --git a/arch/arm/boot/dts/imx6qdl-tx6.dtsi b/arch/arm/boot/dts/imx6qdl-tx6.dtsi
index c6bec97fbeaf..6abb66cd7d4a 100644
--- a/arch/arm/boot/dts/imx6qdl-tx6.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-tx6.dtsi
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright 2014-2016 Lothar Waßmann <LW@KARO-electronics.de> 2 * Copyright 2014-2017 Lothar Waßmann <LW@KARO-electronics.de>
3 * 3 *
4 * This file is dual-licensed: you can use it either under the terms 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 5 * of the GPL or the X11 license, at your option. Note that this dual
@@ -43,6 +43,7 @@
43#include <dt-bindings/input/input.h> 43#include <dt-bindings/input/input.h>
44#include <dt-bindings/interrupt-controller/irq.h> 44#include <dt-bindings/interrupt-controller/irq.h>
45#include <dt-bindings/pwm/pwm.h> 45#include <dt-bindings/pwm/pwm.h>
46#include <dt-bindings/sound/fsl-imx-audmux.h>
46 47
47/ { 48/ {
48 aliases { 49 aliases {
@@ -145,7 +146,7 @@
145 pinctrl-0 = <&pinctrl_lcd0_pwr>; 146 pinctrl-0 = <&pinctrl_lcd0_pwr>;
146 gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>; 147 gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>;
147 enable-active-high; 148 enable-active-high;
148 regulator-boot-on; 149 status = "disabled";
149 }; 150 };
150 151
151 reg_lcd1_pwr: regulator-lcd1-pwr { 152 reg_lcd1_pwr: regulator-lcd1-pwr {
@@ -157,7 +158,7 @@
157 pinctrl-0 = <&pinctrl_lcd1_pwr>; 158 pinctrl-0 = <&pinctrl_lcd1_pwr>;
158 gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>; 159 gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>;
159 enable-active-high; 160 enable-active-high;
160 regulator-boot-on; 161 status = "disabled";
161 }; 162 };
162 163
163 reg_usbh1_vbus: regulator-usbh1-vbus { 164 reg_usbh1_vbus: regulator-usbh1-vbus {
@@ -183,24 +184,56 @@
183 }; 184 };
184 185
185 sound { 186 sound {
186 compatible = "karo,imx6qdl-tx6qdl-sgtl5000", 187 compatible = "karo,imx6qdl-tx6-sgtl5000",
187 "fsl,imx-audio-sgtl5000"; 188 "simple-audio-card";
188 model = "sgtl5000-audio"; 189 simple-audio-card,name = "imx6qdl-tx6-sgtl5000-audio";
189 pinctrl-names = "default"; 190 pinctrl-names = "default";
190 pinctrl-0 = <&pinctrl_audmux>; 191 pinctrl-0 = <&pinctrl_audmux>;
191 ssi-controller = <&ssi1>; 192 simple-audio-card,format = "i2s";
192 audio-codec = <&sgtl5000>; 193 simple-audio-card,bitclock-master = <&codec_dai>;
193 audio-routing = 194 simple-audio-card,frame-master = <&codec_dai>;
195 simple-audio-card,widgets =
196 "Microphone", "Mic Jack",
197 "Line", "Line In",
198 "Line", "Line Out",
199 "Headphone", "Headphone Jack";
200 simple-audio-card,routing =
194 "MIC_IN", "Mic Jack", 201 "MIC_IN", "Mic Jack",
195 "Mic Jack", "Mic Bias", 202 "Mic Jack", "Mic Bias",
196 "Headphone Jack", "HP_OUT"; 203 "Headphone Jack", "HP_OUT";
197 mux-int-port = <1>; 204
198 mux-ext-port = <5>; 205 cpu_dai: simple-audio-card,cpu {
206 sound-dai = <&ssi1>;
207 };
208
209 codec_dai: simple-audio-card,codec {
210 sound-dai = <&sgtl5000>;
211 };
199 }; 212 };
200}; 213};
201 214
202&audmux { 215&audmux {
203 status = "okay"; 216 status = "okay";
217
218 ssi1 {
219 fsl,audmux-port = <0>;
220 fsl,port-config = <
221 (IMX_AUDMUX_V2_PTCR_SYN |
222 IMX_AUDMUX_V2_PTCR_TFSEL(4) |
223 IMX_AUDMUX_V2_PTCR_TCSEL(4) |
224 IMX_AUDMUX_V2_PTCR_TFSDIR |
225 IMX_AUDMUX_V2_PTCR_TCLKDIR)
226 IMX_AUDMUX_V2_PDCR_RXDSEL(4)
227 >;
228 };
229
230 pins5 {
231 fsl,audmux-port = <4>;
232 fsl,port-config = <
233 IMX_AUDMUX_V2_PTCR_SYN
234 IMX_AUDMUX_V2_PDCR_RXDSEL(0)
235 >;
236 };
204}; 237};
205 238
206&can1 { 239&can1 {
@@ -241,7 +274,7 @@
241 274
242&fec { 275&fec {
243 pinctrl-names = "default"; 276 pinctrl-names = "default";
244 pinctrl-0 = <&pinctrl_enet>; 277 pinctrl-0 = <&pinctrl_enet &pinctrl_enet_mdio &pinctrl_etnphy_rst>;
245 clocks = <&clks IMX6QDL_CLK_ENET>, 278 clocks = <&clks IMX6QDL_CLK_ENET>,
246 <&clks IMX6QDL_CLK_ENET>, 279 <&clks IMX6QDL_CLK_ENET>,
247 <&clks IMX6QDL_CLK_ENET_REF>, 280 <&clks IMX6QDL_CLK_ENET_REF>,
@@ -249,6 +282,7 @@
249 clock-names = "ipg", "ahb", "ptp", "enet_out"; 282 clock-names = "ipg", "ahb", "ptp", "enet_out";
250 phy-mode = "rmii"; 283 phy-mode = "rmii";
251 phy-reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>; 284 phy-reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
285 phy-reset-post-delay = <10>;
252 phy-handle = <&etnphy>; 286 phy-handle = <&etnphy>;
253 phy-supply = <&reg_3v3_etn>; 287 phy-supply = <&reg_3v3_etn>;
254 status = "okay"; 288 status = "okay";
@@ -261,8 +295,9 @@
261 compatible = "ethernet-phy-ieee802.3-c22"; 295 compatible = "ethernet-phy-ieee802.3-c22";
262 reg = <0>; 296 reg = <0>;
263 pinctrl-names = "default"; 297 pinctrl-names = "default";
264 pinctrl-0 = <&pinctrl_enet_mdio>; 298 pinctrl-0 = <&pinctrl_etnphy_int>;
265 interrupts-extended = <&gpio7 1 IRQ_TYPE_EDGE_FALLING>; 299 interrupt-parent = <&gpio7>;
300 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
266 }; 301 };
267 }; 302 };
268}; 303};
@@ -276,25 +311,34 @@
276}; 311};
277 312
278&i2c1 { 313&i2c1 {
279 pinctrl-names = "default"; 314 pinctrl-names = "default", "gpio";
280 pinctrl-0 = <&pinctrl_i2c1>; 315 pinctrl-0 = <&pinctrl_i2c1>;
316 pinctrl-1 = <&pinctrl_i2c1_gpio>;
317 scl-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
318 sda-gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
281 clock-frequency = <400000>; 319 clock-frequency = <400000>;
282 status = "okay"; 320 status = "okay";
283 321
284 ds1339: rtc@68 { 322 ds1339: rtc@68 {
285 compatible = "dallas,ds1339"; 323 compatible = "dallas,ds1339";
286 reg = <0x68>; 324 reg = <0x68>;
325 trickle-resistor-ohms = <250>;
326 trickle-diode-disable;
287 }; 327 };
288}; 328};
289 329
290&i2c3 { 330&i2c3 {
291 pinctrl-names = "default"; 331 pinctrl-names = "default", "gpio";
292 pinctrl-0 = <&pinctrl_i2c3>; 332 pinctrl-0 = <&pinctrl_i2c3>;
333 pinctrl-1 = <&pinctrl_i2c3_gpio>;
334 scl-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
335 sda-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
293 clock-frequency = <400000>; 336 clock-frequency = <400000>;
294 status = "okay"; 337 status = "okay";
295 338
296 sgtl5000: sgtl5000@0a { 339 sgtl5000: sgtl5000@a {
297 compatible = "fsl,sgtl5000"; 340 compatible = "fsl,sgtl5000";
341 #sound-dai-cells = <0>;
298 reg = <0x0a>; 342 reg = <0x0a>;
299 VDDA-supply = <&reg_2v5>; 343 VDDA-supply = <&reg_2v5>;
300 VDDIO-supply = <&reg_3v3>; 344 VDDIO-supply = <&reg_3v3>;
@@ -332,8 +376,6 @@
332 376
333 pinctrl_hog: hoggrp { 377 pinctrl_hog: hoggrp {
334 fsl,pins = < 378 fsl,pins = <
335 MX6QDL_PAD_SD3_DAT2__GPIO7_IO06 0x1b0b1 /* ETN PHY RESET */
336 MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x1b0b1 /* ETN PHY INT */
337 MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x1b0b1 /* PWR BTN */ 379 MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x1b0b1 /* PWR BTN */
338 >; 380 >;
339 }; 381 };
@@ -451,12 +493,24 @@
451 >; 493 >;
452 }; 494 };
453 495
496 pinctrl_etnphy_int: etnphy-intgrp {
497 fsl,pins = <
498 MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x1b0b1 /* ETN PHY INT */
499 >;
500 };
501
454 pinctrl_etnphy_power: etnphy-pwrgrp { 502 pinctrl_etnphy_power: etnphy-pwrgrp {
455 fsl,pins = < 503 fsl,pins = <
456 MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x1b0b1 /* ETN PHY POWER */ 504 MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x1b0b1 /* ETN PHY POWER */
457 >; 505 >;
458 }; 506 };
459 507
508 pinctrl_etnphy_rst: etnphy-rstgrp {
509 fsl,pins = <
510 MX6QDL_PAD_SD3_DAT2__GPIO7_IO06 0x1b0b1 /* ETN PHY RESET */
511 >;
512 };
513
460 pinctrl_flexcan1: flexcan1grp { 514 pinctrl_flexcan1: flexcan1grp {
461 fsl,pins = < 515 fsl,pins = <
462 MX6QDL_PAD_GPIO_7__FLEXCAN1_TX 0x1b0b0 516 MX6QDL_PAD_GPIO_7__FLEXCAN1_TX 0x1b0b0
@@ -504,6 +558,13 @@
504 >; 558 >;
505 }; 559 };
506 560
561 pinctrl_i2c1_gpio: i2c1-gpiogrp {
562 fsl,pins = <
563 MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x4001b8b1
564 MX6QDL_PAD_EIM_D28__GPIO3_IO28 0x4001b8b1
565 >;
566 };
567
507 pinctrl_i2c3: i2c3grp { 568 pinctrl_i2c3: i2c3grp {
508 fsl,pins = < 569 fsl,pins = <
509 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1 570 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
@@ -511,6 +572,13 @@
511 >; 572 >;
512 }; 573 };
513 574
575 pinctrl_i2c3_gpio: i2c3-gpiogrp {
576 fsl,pins = <
577 MX6QDL_PAD_GPIO_3__GPIO1_IO03 0x4001b8b1
578 MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x4001b8b1
579 >;
580 };
581
514 pinctrl_kpp: kppgrp { 582 pinctrl_kpp: kppgrp {
515 fsl,pins = < 583 fsl,pins = <
516 MX6QDL_PAD_GPIO_9__KEY_COL6 0x1b0b1 584 MX6QDL_PAD_GPIO_9__KEY_COL6 0x1b0b1
diff --git a/arch/arm/boot/dts/imx6qdl-wandboard-revd1.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard-revd1.dtsi
new file mode 100644
index 000000000000..6d8d9ca96646
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qdl-wandboard-revd1.dtsi
@@ -0,0 +1,196 @@
1/*
2 * Copyright 2013 Freescale Semiconductor, Inc.
3 *
4 * Author: Fabio Estevam <fabio.estevam@freescale.com>
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
12#include "imx6qdl-wandboard.dtsi"
13
14/ {
15 reg_eth_phy: regulator-eth-phy {
16 compatible = "regulator-fixed";
17 regulator-name = "ETH_PHY";
18 regulator-min-microvolt = <3300000>;
19 regulator-max-microvolt = <3300000>;
20 gpio = <&gpio7 13 GPIO_ACTIVE_LOW>;
21 };
22};
23
24&i2c3 {
25 clock-frequency = <100000>;
26 pinctrl-names = "default";
27 pinctrl-0 = <&pinctrl_i2c3>;
28 status = "okay";
29
30 pmic: pfuze100@8 {
31 compatible = "fsl,pfuze100";
32 reg = <0x08>;
33
34 regulators {
35 sw1a_reg: sw1ab {
36 regulator-min-microvolt = <300000>;
37 regulator-max-microvolt = <1875000>;
38 regulator-boot-on;
39 regulator-always-on;
40 regulator-ramp-delay = <6250>;
41 };
42
43 sw1c_reg: sw1c {
44 regulator-min-microvolt = <300000>;
45 regulator-max-microvolt = <1875000>;
46 regulator-boot-on;
47 regulator-always-on;
48 regulator-ramp-delay = <6250>;
49 };
50
51 sw2_reg: sw2 {
52 regulator-min-microvolt = <800000>;
53 regulator-max-microvolt = <3300000>;
54 regulator-boot-on;
55 regulator-always-on;
56 regulator-ramp-delay = <6250>;
57 };
58
59 sw3a_reg: sw3a {
60 regulator-min-microvolt = <400000>;
61 regulator-max-microvolt = <1975000>;
62 regulator-boot-on;
63 regulator-always-on;
64 };
65
66 sw3b_reg: sw3b {
67 regulator-min-microvolt = <400000>;
68 regulator-max-microvolt = <1975000>;
69 regulator-boot-on;
70 regulator-always-on;
71 };
72
73 sw4_reg: sw4 {
74 regulator-min-microvolt = <800000>;
75 regulator-max-microvolt = <3300000>;
76 };
77
78 swbst_reg: swbst {
79 regulator-min-microvolt = <5000000>;
80 regulator-max-microvolt = <5150000>;
81 };
82
83 snvs_reg: vsnvs {
84 regulator-min-microvolt = <1000000>;
85 regulator-max-microvolt = <3000000>;
86 regulator-boot-on;
87 regulator-always-on;
88 };
89
90 vref_reg: vrefddr {
91 regulator-boot-on;
92 regulator-always-on;
93 };
94
95 vgen1_reg: vgen1 {
96 regulator-min-microvolt = <800000>;
97 regulator-max-microvolt = <1550000>;
98 };
99
100 vgen2_reg: vgen2 {
101 regulator-min-microvolt = <1500000>;
102 regulator-max-microvolt = <1500000>;
103 regulator-boot-on;
104 regulator-always-on;
105 };
106
107 vgen3_reg: vgen3 {
108 regulator-min-microvolt = <1800000>;
109 regulator-max-microvolt = <3300000>;
110 regulator-always-on;
111 };
112
113 vgen4_reg: vgen4 {
114 regulator-min-microvolt = <1800000>;
115 regulator-max-microvolt = <3300000>;
116 regulator-always-on;
117 };
118
119 vgen5_reg: vgen5 {
120 regulator-min-microvolt = <1800000>;
121 regulator-max-microvolt = <3300000>;
122 regulator-always-on;
123 };
124
125 vgen6_reg: vgen6 {
126 regulator-min-microvolt = <1800000>;
127 regulator-max-microvolt = <3300000>;
128 regulator-always-on;
129 };
130 };
131 };
132};
133
134&fec {
135 phy-supply = <&reg_eth_phy>;
136 status = "okay";
137};
138
139&iomuxc {
140 pinctrl-0 = <&pinctrl_hog>;
141
142 imx6qdl-wandboard {
143 pinctrl_hog: hoggrp {
144 fsl,pins = <
145 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0
146 MX6QDL_PAD_EIM_D22__USB_OTG_PWR 0x80000000 /* USB Power Enable */
147 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x80000000 /* USDHC1 CD */
148 MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x80000000 /* uSDHC3 CD */
149 MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x1f0b1 /* RGMII PHY reset */
150 >;
151 };
152
153 pinctrl_enet: enetgrp {
154 fsl,pins = <
155 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
156 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
157 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
158 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
159 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
160 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
161 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
162 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
163 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
164 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
165 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030
166 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030
167 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
168 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
169 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
170 MX6QDL_PAD_GPIO_6__ENET_IRQ 0x000b1
171 >;
172 };
173
174 pinctrl_i2c3: i2c3grp {
175 fsl,pins = <
176 MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1
177 MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1
178 >;
179 };
180
181 pinctrl_spdif: spdifgrp {
182 fsl,pins = <
183 MX6QDL_PAD_GPIO_19__SPDIF_OUT 0x1b0b0
184 >;
185 };
186 };
187};
188
189&usdhc2 {
190 pinctrl-names = "default";
191 pinctrl-0 = <&pinctrl_usdhc2>;
192 bus-width = <4>;
193 no-1-8-v;
194 non-removable;
195 status = "okay";
196};
diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
index b4fa7f1d63da..ed96d7b5feab 100644
--- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
@@ -82,7 +82,7 @@
82 pinctrl-0 = <&pinctrl_i2c2>; 82 pinctrl-0 = <&pinctrl_i2c2>;
83 status = "okay"; 83 status = "okay";
84 84
85 codec: sgtl5000@0a { 85 codec: sgtl5000@a {
86 compatible = "fsl,sgtl5000"; 86 compatible = "fsl,sgtl5000";
87 reg = <0x0a>; 87 reg = <0x0a>;
88 clocks = <&clks IMX6QDL_CLK_CKO>; 88 clocks = <&clks IMX6QDL_CLK_CKO>;
diff --git a/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi b/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi
index eeb7679fd348..7812fbac963c 100644
--- a/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi
@@ -390,7 +390,7 @@
390 clock-frequency = <100000>; 390 clock-frequency = <100000>;
391 status = "okay"; 391 status = "okay";
392 392
393 pmic@08 { 393 pmic@8 {
394 compatible = "fsl,pfuze100"; 394 compatible = "fsl,pfuze100";
395 pinctrl-names = "default"; 395 pinctrl-names = "default";
396 pinctrl-0 = <&pinctrl_pfuze100_irq>; 396 pinctrl-0 = <&pinctrl_pfuze100_irq>;
@@ -543,7 +543,7 @@
543 543
544 rmi4-f01@1 { 544 rmi4-f01@1 {
545 reg = <0x1>; 545 reg = <0x1>;
546 syna,nosleep-mode = <1>; 546 syna,nosleep-mode = <2>;
547 }; 547 };
548 548
549 rmi4-f11@11 { 549 rmi4-f11@11 {
@@ -728,6 +728,7 @@
728 728
729&usbh1 { 729&usbh1 {
730 vbus-supply = <&reg_5p0v_main>; 730 vbus-supply = <&reg_5p0v_main>;
731 disable-over-current;
731 status = "okay"; 732 status = "okay";
732}; 733};
733 734
diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
index 8884b4a3cafb..1ce4eabf0590 100644
--- a/arch/arm/boot/dts/imx6qdl.dtsi
+++ b/arch/arm/boot/dts/imx6qdl.dtsi
@@ -87,7 +87,7 @@
87 interrupt-parent = <&gpc>; 87 interrupt-parent = <&gpc>;
88 ranges; 88 ranges;
89 89
90 dma_apbh: dma-apbh@00110000 { 90 dma_apbh: dma-apbh@110000 {
91 compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh"; 91 compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
92 reg = <0x00110000 0x2000>; 92 reg = <0x00110000 0x2000>;
93 interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>, 93 interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>,
@@ -100,7 +100,7 @@
100 clocks = <&clks IMX6QDL_CLK_APBH_DMA>; 100 clocks = <&clks IMX6QDL_CLK_APBH_DMA>;
101 }; 101 };
102 102
103 gpmi: gpmi-nand@00112000 { 103 gpmi: gpmi-nand@112000 {
104 compatible = "fsl,imx6q-gpmi-nand"; 104 compatible = "fsl,imx6q-gpmi-nand";
105 #address-cells = <1>; 105 #address-cells = <1>;
106 #size-cells = <1>; 106 #size-cells = <1>;
@@ -120,7 +120,7 @@
120 status = "disabled"; 120 status = "disabled";
121 }; 121 };
122 122
123 hdmi: hdmi@0120000 { 123 hdmi: hdmi@120000 {
124 #address-cells = <1>; 124 #address-cells = <1>;
125 #size-cells = <0>; 125 #size-cells = <0>;
126 reg = <0x00120000 0x9000>; 126 reg = <0x00120000 0x9000>;
@@ -148,7 +148,7 @@
148 }; 148 };
149 }; 149 };
150 150
151 gpu_3d: gpu@00130000 { 151 gpu_3d: gpu@130000 {
152 compatible = "vivante,gc"; 152 compatible = "vivante,gc";
153 reg = <0x00130000 0x4000>; 153 reg = <0x00130000 0x4000>;
154 interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>; 154 interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
@@ -159,7 +159,7 @@
159 power-domains = <&pd_pu>; 159 power-domains = <&pd_pu>;
160 }; 160 };
161 161
162 gpu_2d: gpu@00134000 { 162 gpu_2d: gpu@134000 {
163 compatible = "vivante,gc"; 163 compatible = "vivante,gc";
164 reg = <0x00134000 0x4000>; 164 reg = <0x00134000 0x4000>;
165 interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>; 165 interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
@@ -169,7 +169,7 @@
169 power-domains = <&pd_pu>; 169 power-domains = <&pd_pu>;
170 }; 170 };
171 171
172 timer@00a00600 { 172 timer@a00600 {
173 compatible = "arm,cortex-a9-twd-timer"; 173 compatible = "arm,cortex-a9-twd-timer";
174 reg = <0x00a00600 0x20>; 174 reg = <0x00a00600 0x20>;
175 interrupts = <1 13 0xf01>; 175 interrupts = <1 13 0xf01>;
@@ -177,7 +177,7 @@
177 clocks = <&clks IMX6QDL_CLK_TWD>; 177 clocks = <&clks IMX6QDL_CLK_TWD>;
178 }; 178 };
179 179
180 intc: interrupt-controller@00a01000 { 180 intc: interrupt-controller@a01000 {
181 compatible = "arm,cortex-a9-gic"; 181 compatible = "arm,cortex-a9-gic";
182 #interrupt-cells = <3>; 182 #interrupt-cells = <3>;
183 interrupt-controller; 183 interrupt-controller;
@@ -186,7 +186,7 @@
186 interrupt-parent = <&intc>; 186 interrupt-parent = <&intc>;
187 }; 187 };
188 188
189 L2: l2-cache@00a02000 { 189 L2: l2-cache@a02000 {
190 compatible = "arm,pl310-cache"; 190 compatible = "arm,pl310-cache";
191 reg = <0x00a02000 0x1000>; 191 reg = <0x00a02000 0x1000>;
192 interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>; 192 interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
@@ -229,21 +229,21 @@
229 interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>; 229 interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
230 }; 230 };
231 231
232 aips-bus@02000000 { /* AIPS1 */ 232 aips-bus@2000000 { /* AIPS1 */
233 compatible = "fsl,aips-bus", "simple-bus"; 233 compatible = "fsl,aips-bus", "simple-bus";
234 #address-cells = <1>; 234 #address-cells = <1>;
235 #size-cells = <1>; 235 #size-cells = <1>;
236 reg = <0x02000000 0x100000>; 236 reg = <0x02000000 0x100000>;
237 ranges; 237 ranges;
238 238
239 spba-bus@02000000 { 239 spba-bus@2000000 {
240 compatible = "fsl,spba-bus", "simple-bus"; 240 compatible = "fsl,spba-bus", "simple-bus";
241 #address-cells = <1>; 241 #address-cells = <1>;
242 #size-cells = <1>; 242 #size-cells = <1>;
243 reg = <0x02000000 0x40000>; 243 reg = <0x02000000 0x40000>;
244 ranges; 244 ranges;
245 245
246 spdif: spdif@02004000 { 246 spdif: spdif@2004000 {
247 compatible = "fsl,imx35-spdif"; 247 compatible = "fsl,imx35-spdif";
248 reg = <0x02004000 0x4000>; 248 reg = <0x02004000 0x4000>;
249 interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>; 249 interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
@@ -263,7 +263,7 @@
263 status = "disabled"; 263 status = "disabled";
264 }; 264 };
265 265
266 ecspi1: ecspi@02008000 { 266 ecspi1: ecspi@2008000 {
267 #address-cells = <1>; 267 #address-cells = <1>;
268 #size-cells = <0>; 268 #size-cells = <0>;
269 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; 269 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
@@ -277,7 +277,7 @@
277 status = "disabled"; 277 status = "disabled";
278 }; 278 };
279 279
280 ecspi2: ecspi@0200c000 { 280 ecspi2: ecspi@200c000 {
281 #address-cells = <1>; 281 #address-cells = <1>;
282 #size-cells = <0>; 282 #size-cells = <0>;
283 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; 283 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
@@ -291,7 +291,7 @@
291 status = "disabled"; 291 status = "disabled";
292 }; 292 };
293 293
294 ecspi3: ecspi@02010000 { 294 ecspi3: ecspi@2010000 {
295 #address-cells = <1>; 295 #address-cells = <1>;
296 #size-cells = <0>; 296 #size-cells = <0>;
297 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; 297 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
@@ -305,7 +305,7 @@
305 status = "disabled"; 305 status = "disabled";
306 }; 306 };
307 307
308 ecspi4: ecspi@02014000 { 308 ecspi4: ecspi@2014000 {
309 #address-cells = <1>; 309 #address-cells = <1>;
310 #size-cells = <0>; 310 #size-cells = <0>;
311 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; 311 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
@@ -319,7 +319,7 @@
319 status = "disabled"; 319 status = "disabled";
320 }; 320 };
321 321
322 uart1: serial@02020000 { 322 uart1: serial@2020000 {
323 compatible = "fsl,imx6q-uart", "fsl,imx21-uart"; 323 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
324 reg = <0x02020000 0x4000>; 324 reg = <0x02020000 0x4000>;
325 interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>; 325 interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>;
@@ -331,7 +331,7 @@
331 status = "disabled"; 331 status = "disabled";
332 }; 332 };
333 333
334 esai: esai@02024000 { 334 esai: esai@2024000 {
335 #sound-dai-cells = <0>; 335 #sound-dai-cells = <0>;
336 compatible = "fsl,imx35-esai"; 336 compatible = "fsl,imx35-esai";
337 reg = <0x02024000 0x4000>; 337 reg = <0x02024000 0x4000>;
@@ -347,7 +347,7 @@
347 status = "disabled"; 347 status = "disabled";
348 }; 348 };
349 349
350 ssi1: ssi@02028000 { 350 ssi1: ssi@2028000 {
351 #sound-dai-cells = <0>; 351 #sound-dai-cells = <0>;
352 compatible = "fsl,imx6q-ssi", 352 compatible = "fsl,imx6q-ssi",
353 "fsl,imx51-ssi"; 353 "fsl,imx51-ssi";
@@ -363,7 +363,7 @@
363 status = "disabled"; 363 status = "disabled";
364 }; 364 };
365 365
366 ssi2: ssi@0202c000 { 366 ssi2: ssi@202c000 {
367 #sound-dai-cells = <0>; 367 #sound-dai-cells = <0>;
368 compatible = "fsl,imx6q-ssi", 368 compatible = "fsl,imx6q-ssi",
369 "fsl,imx51-ssi"; 369 "fsl,imx51-ssi";
@@ -379,7 +379,7 @@
379 status = "disabled"; 379 status = "disabled";
380 }; 380 };
381 381
382 ssi3: ssi@02030000 { 382 ssi3: ssi@2030000 {
383 #sound-dai-cells = <0>; 383 #sound-dai-cells = <0>;
384 compatible = "fsl,imx6q-ssi", 384 compatible = "fsl,imx6q-ssi",
385 "fsl,imx51-ssi"; 385 "fsl,imx51-ssi";
@@ -395,7 +395,7 @@
395 status = "disabled"; 395 status = "disabled";
396 }; 396 };
397 397
398 asrc: asrc@02034000 { 398 asrc: asrc@2034000 {
399 compatible = "fsl,imx53-asrc"; 399 compatible = "fsl,imx53-asrc";
400 reg = <0x02034000 0x4000>; 400 reg = <0x02034000 0x4000>;
401 interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>; 401 interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>;
@@ -420,12 +420,12 @@
420 status = "okay"; 420 status = "okay";
421 }; 421 };
422 422
423 spba@0203c000 { 423 spba@203c000 {
424 reg = <0x0203c000 0x4000>; 424 reg = <0x0203c000 0x4000>;
425 }; 425 };
426 }; 426 };
427 427
428 vpu: vpu@02040000 { 428 vpu: vpu@2040000 {
429 compatible = "cnm,coda960"; 429 compatible = "cnm,coda960";
430 reg = <0x02040000 0x3c000>; 430 reg = <0x02040000 0x3c000>;
431 interrupts = <0 12 IRQ_TYPE_LEVEL_HIGH>, 431 interrupts = <0 12 IRQ_TYPE_LEVEL_HIGH>,
@@ -439,11 +439,11 @@
439 iram = <&ocram>; 439 iram = <&ocram>;
440 }; 440 };
441 441
442 aipstz@0207c000 { /* AIPSTZ1 */ 442 aipstz@207c000 { /* AIPSTZ1 */
443 reg = <0x0207c000 0x4000>; 443 reg = <0x0207c000 0x4000>;
444 }; 444 };
445 445
446 pwm1: pwm@02080000 { 446 pwm1: pwm@2080000 {
447 #pwm-cells = <2>; 447 #pwm-cells = <2>;
448 compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm"; 448 compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
449 reg = <0x02080000 0x4000>; 449 reg = <0x02080000 0x4000>;
@@ -454,7 +454,7 @@
454 status = "disabled"; 454 status = "disabled";
455 }; 455 };
456 456
457 pwm2: pwm@02084000 { 457 pwm2: pwm@2084000 {
458 #pwm-cells = <2>; 458 #pwm-cells = <2>;
459 compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm"; 459 compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
460 reg = <0x02084000 0x4000>; 460 reg = <0x02084000 0x4000>;
@@ -465,7 +465,7 @@
465 status = "disabled"; 465 status = "disabled";
466 }; 466 };
467 467
468 pwm3: pwm@02088000 { 468 pwm3: pwm@2088000 {
469 #pwm-cells = <2>; 469 #pwm-cells = <2>;
470 compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm"; 470 compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
471 reg = <0x02088000 0x4000>; 471 reg = <0x02088000 0x4000>;
@@ -476,7 +476,7 @@
476 status = "disabled"; 476 status = "disabled";
477 }; 477 };
478 478
479 pwm4: pwm@0208c000 { 479 pwm4: pwm@208c000 {
480 #pwm-cells = <2>; 480 #pwm-cells = <2>;
481 compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm"; 481 compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
482 reg = <0x0208c000 0x4000>; 482 reg = <0x0208c000 0x4000>;
@@ -487,7 +487,7 @@
487 status = "disabled"; 487 status = "disabled";
488 }; 488 };
489 489
490 can1: flexcan@02090000 { 490 can1: flexcan@2090000 {
491 compatible = "fsl,imx6q-flexcan"; 491 compatible = "fsl,imx6q-flexcan";
492 reg = <0x02090000 0x4000>; 492 reg = <0x02090000 0x4000>;
493 interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>; 493 interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>;
@@ -497,7 +497,7 @@
497 status = "disabled"; 497 status = "disabled";
498 }; 498 };
499 499
500 can2: flexcan@02094000 { 500 can2: flexcan@2094000 {
501 compatible = "fsl,imx6q-flexcan"; 501 compatible = "fsl,imx6q-flexcan";
502 reg = <0x02094000 0x4000>; 502 reg = <0x02094000 0x4000>;
503 interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>; 503 interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>;
@@ -507,7 +507,7 @@
507 status = "disabled"; 507 status = "disabled";
508 }; 508 };
509 509
510 gpt: gpt@02098000 { 510 gpt: gpt@2098000 {
511 compatible = "fsl,imx6q-gpt", "fsl,imx31-gpt"; 511 compatible = "fsl,imx6q-gpt", "fsl,imx31-gpt";
512 reg = <0x02098000 0x4000>; 512 reg = <0x02098000 0x4000>;
513 interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>; 513 interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
@@ -517,7 +517,7 @@
517 clock-names = "ipg", "per", "osc_per"; 517 clock-names = "ipg", "per", "osc_per";
518 }; 518 };
519 519
520 gpio1: gpio@0209c000 { 520 gpio1: gpio@209c000 {
521 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 521 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
522 reg = <0x0209c000 0x4000>; 522 reg = <0x0209c000 0x4000>;
523 interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>, 523 interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>,
@@ -528,7 +528,7 @@
528 #interrupt-cells = <2>; 528 #interrupt-cells = <2>;
529 }; 529 };
530 530
531 gpio2: gpio@020a0000 { 531 gpio2: gpio@20a0000 {
532 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 532 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
533 reg = <0x020a0000 0x4000>; 533 reg = <0x020a0000 0x4000>;
534 interrupts = <0 68 IRQ_TYPE_LEVEL_HIGH>, 534 interrupts = <0 68 IRQ_TYPE_LEVEL_HIGH>,
@@ -539,7 +539,7 @@
539 #interrupt-cells = <2>; 539 #interrupt-cells = <2>;
540 }; 540 };
541 541
542 gpio3: gpio@020a4000 { 542 gpio3: gpio@20a4000 {
543 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 543 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
544 reg = <0x020a4000 0x4000>; 544 reg = <0x020a4000 0x4000>;
545 interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>, 545 interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>,
@@ -550,7 +550,7 @@
550 #interrupt-cells = <2>; 550 #interrupt-cells = <2>;
551 }; 551 };
552 552
553 gpio4: gpio@020a8000 { 553 gpio4: gpio@20a8000 {
554 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 554 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
555 reg = <0x020a8000 0x4000>; 555 reg = <0x020a8000 0x4000>;
556 interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>, 556 interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>,
@@ -561,7 +561,7 @@
561 #interrupt-cells = <2>; 561 #interrupt-cells = <2>;
562 }; 562 };
563 563
564 gpio5: gpio@020ac000 { 564 gpio5: gpio@20ac000 {
565 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 565 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
566 reg = <0x020ac000 0x4000>; 566 reg = <0x020ac000 0x4000>;
567 interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>, 567 interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>,
@@ -572,7 +572,7 @@
572 #interrupt-cells = <2>; 572 #interrupt-cells = <2>;
573 }; 573 };
574 574
575 gpio6: gpio@020b0000 { 575 gpio6: gpio@20b0000 {
576 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 576 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
577 reg = <0x020b0000 0x4000>; 577 reg = <0x020b0000 0x4000>;
578 interrupts = <0 76 IRQ_TYPE_LEVEL_HIGH>, 578 interrupts = <0 76 IRQ_TYPE_LEVEL_HIGH>,
@@ -583,7 +583,7 @@
583 #interrupt-cells = <2>; 583 #interrupt-cells = <2>;
584 }; 584 };
585 585
586 gpio7: gpio@020b4000 { 586 gpio7: gpio@20b4000 {
587 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 587 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
588 reg = <0x020b4000 0x4000>; 588 reg = <0x020b4000 0x4000>;
589 interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>, 589 interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>,
@@ -594,7 +594,7 @@
594 #interrupt-cells = <2>; 594 #interrupt-cells = <2>;
595 }; 595 };
596 596
597 kpp: kpp@020b8000 { 597 kpp: kpp@20b8000 {
598 compatible = "fsl,imx6q-kpp", "fsl,imx21-kpp"; 598 compatible = "fsl,imx6q-kpp", "fsl,imx21-kpp";
599 reg = <0x020b8000 0x4000>; 599 reg = <0x020b8000 0x4000>;
600 interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>; 600 interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
@@ -602,14 +602,14 @@
602 status = "disabled"; 602 status = "disabled";
603 }; 603 };
604 604
605 wdog1: wdog@020bc000 { 605 wdog1: wdog@20bc000 {
606 compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt"; 606 compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
607 reg = <0x020bc000 0x4000>; 607 reg = <0x020bc000 0x4000>;
608 interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>; 608 interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
609 clocks = <&clks IMX6QDL_CLK_DUMMY>; 609 clocks = <&clks IMX6QDL_CLK_DUMMY>;
610 }; 610 };
611 611
612 wdog2: wdog@020c0000 { 612 wdog2: wdog@20c0000 {
613 compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt"; 613 compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
614 reg = <0x020c0000 0x4000>; 614 reg = <0x020c0000 0x4000>;
615 interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>; 615 interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
@@ -617,7 +617,7 @@
617 status = "disabled"; 617 status = "disabled";
618 }; 618 };
619 619
620 clks: ccm@020c4000 { 620 clks: ccm@20c4000 {
621 compatible = "fsl,imx6q-ccm"; 621 compatible = "fsl,imx6q-ccm";
622 reg = <0x020c4000 0x4000>; 622 reg = <0x020c4000 0x4000>;
623 interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>, 623 interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>,
@@ -625,7 +625,7 @@
625 #clock-cells = <1>; 625 #clock-cells = <1>;
626 }; 626 };
627 627
628 anatop: anatop@020c8000 { 628 anatop: anatop@20c8000 {
629 compatible = "fsl,imx6q-anatop", "syscon", "simple-bus"; 629 compatible = "fsl,imx6q-anatop", "syscon", "simple-bus";
630 reg = <0x020c8000 0x1000>; 630 reg = <0x020c8000 0x1000>;
631 interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>, 631 interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
@@ -737,7 +737,7 @@
737 clocks = <&clks IMX6QDL_CLK_PLL3_USB_OTG>; 737 clocks = <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
738 }; 738 };
739 739
740 usbphy1: usbphy@020c9000 { 740 usbphy1: usbphy@20c9000 {
741 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy"; 741 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
742 reg = <0x020c9000 0x1000>; 742 reg = <0x020c9000 0x1000>;
743 interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>; 743 interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
@@ -745,7 +745,7 @@
745 fsl,anatop = <&anatop>; 745 fsl,anatop = <&anatop>;
746 }; 746 };
747 747
748 usbphy2: usbphy@020ca000 { 748 usbphy2: usbphy@20ca000 {
749 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy"; 749 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
750 reg = <0x020ca000 0x1000>; 750 reg = <0x020ca000 0x1000>;
751 interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>; 751 interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>;
@@ -753,7 +753,7 @@
753 fsl,anatop = <&anatop>; 753 fsl,anatop = <&anatop>;
754 }; 754 };
755 755
756 snvs: snvs@020cc000 { 756 snvs: snvs@20cc000 {
757 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd"; 757 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
758 reg = <0x020cc000 0x4000>; 758 reg = <0x020cc000 0x4000>;
759 759
@@ -775,17 +775,17 @@
775 }; 775 };
776 }; 776 };
777 777
778 epit1: epit@020d0000 { /* EPIT1 */ 778 epit1: epit@20d0000 { /* EPIT1 */
779 reg = <0x020d0000 0x4000>; 779 reg = <0x020d0000 0x4000>;
780 interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>; 780 interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
781 }; 781 };
782 782
783 epit2: epit@020d4000 { /* EPIT2 */ 783 epit2: epit@20d4000 { /* EPIT2 */
784 reg = <0x020d4000 0x4000>; 784 reg = <0x020d4000 0x4000>;
785 interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>; 785 interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
786 }; 786 };
787 787
788 src: src@020d8000 { 788 src: src@20d8000 {
789 compatible = "fsl,imx6q-src", "fsl,imx51-src"; 789 compatible = "fsl,imx6q-src", "fsl,imx51-src";
790 reg = <0x020d8000 0x4000>; 790 reg = <0x020d8000 0x4000>;
791 interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>, 791 interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
@@ -793,7 +793,7 @@
793 #reset-cells = <1>; 793 #reset-cells = <1>;
794 }; 794 };
795 795
796 gpc: gpc@020dc000 { 796 gpc: gpc@20dc000 {
797 compatible = "fsl,imx6q-gpc"; 797 compatible = "fsl,imx6q-gpc";
798 reg = <0x020dc000 0x4000>; 798 reg = <0x020dc000 0x4000>;
799 interrupt-controller; 799 interrupt-controller;
@@ -826,9 +826,9 @@
826 }; 826 };
827 }; 827 };
828 828
829 gpr: iomuxc-gpr@020e0000 { 829 gpr: iomuxc-gpr@20e0000 {
830 compatible = "fsl,imx6q-iomuxc-gpr", "syscon", "simple-mfd"; 830 compatible = "fsl,imx6q-iomuxc-gpr", "syscon", "simple-mfd";
831 reg = <0x020e0000 0x38>; 831 reg = <0x20e0000 0x38>;
832 832
833 mux: mux-controller { 833 mux: mux-controller {
834 compatible = "mmio-mux"; 834 compatible = "mmio-mux";
@@ -836,9 +836,9 @@
836 }; 836 };
837 }; 837 };
838 838
839 iomuxc: iomuxc@020e0000 { 839 iomuxc: iomuxc@20e0000 {
840 compatible = "fsl,imx6dl-iomuxc", "fsl,imx6q-iomuxc"; 840 compatible = "fsl,imx6dl-iomuxc", "fsl,imx6q-iomuxc";
841 reg = <0x020e0000 0x4000>; 841 reg = <0x20e0000 0x4000>;
842 }; 842 };
843 843
844 ldb: ldb { 844 ldb: ldb {
@@ -895,17 +895,17 @@
895 }; 895 };
896 }; 896 };
897 897
898 dcic1: dcic@020e4000 { 898 dcic1: dcic@20e4000 {
899 reg = <0x020e4000 0x4000>; 899 reg = <0x020e4000 0x4000>;
900 interrupts = <0 124 IRQ_TYPE_LEVEL_HIGH>; 900 interrupts = <0 124 IRQ_TYPE_LEVEL_HIGH>;
901 }; 901 };
902 902
903 dcic2: dcic@020e8000 { 903 dcic2: dcic@20e8000 {
904 reg = <0x020e8000 0x4000>; 904 reg = <0x020e8000 0x4000>;
905 interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>; 905 interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>;
906 }; 906 };
907 907
908 sdma: sdma@020ec000 { 908 sdma: sdma@20ec000 {
909 compatible = "fsl,imx6q-sdma", "fsl,imx35-sdma"; 909 compatible = "fsl,imx6q-sdma", "fsl,imx35-sdma";
910 reg = <0x020ec000 0x4000>; 910 reg = <0x020ec000 0x4000>;
911 interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>; 911 interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
@@ -917,7 +917,7 @@
917 }; 917 };
918 }; 918 };
919 919
920 aips-bus@02100000 { /* AIPS2 */ 920 aips-bus@2100000 { /* AIPS2 */
921 compatible = "fsl,aips-bus", "simple-bus"; 921 compatible = "fsl,aips-bus", "simple-bus";
922 #address-cells = <1>; 922 #address-cells = <1>;
923 #size-cells = <1>; 923 #size-cells = <1>;
@@ -950,11 +950,11 @@
950 }; 950 };
951 }; 951 };
952 952
953 aipstz@0217c000 { /* AIPSTZ2 */ 953 aipstz@217c000 { /* AIPSTZ2 */
954 reg = <0x0217c000 0x4000>; 954 reg = <0x0217c000 0x4000>;
955 }; 955 };
956 956
957 usbotg: usb@02184000 { 957 usbotg: usb@2184000 {
958 compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; 958 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
959 reg = <0x02184000 0x200>; 959 reg = <0x02184000 0x200>;
960 interrupts = <0 43 IRQ_TYPE_LEVEL_HIGH>; 960 interrupts = <0 43 IRQ_TYPE_LEVEL_HIGH>;
@@ -967,7 +967,7 @@
967 status = "disabled"; 967 status = "disabled";
968 }; 968 };
969 969
970 usbh1: usb@02184200 { 970 usbh1: usb@2184200 {
971 compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; 971 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
972 reg = <0x02184200 0x200>; 972 reg = <0x02184200 0x200>;
973 interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>; 973 interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>;
@@ -981,7 +981,7 @@
981 status = "disabled"; 981 status = "disabled";
982 }; 982 };
983 983
984 usbh2: usb@02184400 { 984 usbh2: usb@2184400 {
985 compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; 985 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
986 reg = <0x02184400 0x200>; 986 reg = <0x02184400 0x200>;
987 interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>; 987 interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>;
@@ -994,7 +994,7 @@
994 status = "disabled"; 994 status = "disabled";
995 }; 995 };
996 996
997 usbh3: usb@02184600 { 997 usbh3: usb@2184600 {
998 compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; 998 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
999 reg = <0x02184600 0x200>; 999 reg = <0x02184600 0x200>;
1000 interrupts = <0 42 IRQ_TYPE_LEVEL_HIGH>; 1000 interrupts = <0 42 IRQ_TYPE_LEVEL_HIGH>;
@@ -1007,14 +1007,14 @@
1007 status = "disabled"; 1007 status = "disabled";
1008 }; 1008 };
1009 1009
1010 usbmisc: usbmisc@02184800 { 1010 usbmisc: usbmisc@2184800 {
1011 #index-cells = <1>; 1011 #index-cells = <1>;
1012 compatible = "fsl,imx6q-usbmisc"; 1012 compatible = "fsl,imx6q-usbmisc";
1013 reg = <0x02184800 0x200>; 1013 reg = <0x02184800 0x200>;
1014 clocks = <&clks IMX6QDL_CLK_USBOH3>; 1014 clocks = <&clks IMX6QDL_CLK_USBOH3>;
1015 }; 1015 };
1016 1016
1017 fec: ethernet@02188000 { 1017 fec: ethernet@2188000 {
1018 compatible = "fsl,imx6q-fec"; 1018 compatible = "fsl,imx6q-fec";
1019 reg = <0x02188000 0x4000>; 1019 reg = <0x02188000 0x4000>;
1020 interrupts-extended = 1020 interrupts-extended =
@@ -1027,14 +1027,14 @@
1027 status = "disabled"; 1027 status = "disabled";
1028 }; 1028 };
1029 1029
1030 mlb@0218c000 { 1030 mlb@218c000 {
1031 reg = <0x0218c000 0x4000>; 1031 reg = <0x0218c000 0x4000>;
1032 interrupts = <0 53 IRQ_TYPE_LEVEL_HIGH>, 1032 interrupts = <0 53 IRQ_TYPE_LEVEL_HIGH>,
1033 <0 117 IRQ_TYPE_LEVEL_HIGH>, 1033 <0 117 IRQ_TYPE_LEVEL_HIGH>,
1034 <0 126 IRQ_TYPE_LEVEL_HIGH>; 1034 <0 126 IRQ_TYPE_LEVEL_HIGH>;
1035 }; 1035 };
1036 1036
1037 usdhc1: usdhc@02190000 { 1037 usdhc1: usdhc@2190000 {
1038 compatible = "fsl,imx6q-usdhc"; 1038 compatible = "fsl,imx6q-usdhc";
1039 reg = <0x02190000 0x4000>; 1039 reg = <0x02190000 0x4000>;
1040 interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>; 1040 interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
@@ -1046,7 +1046,7 @@
1046 status = "disabled"; 1046 status = "disabled";
1047 }; 1047 };
1048 1048
1049 usdhc2: usdhc@02194000 { 1049 usdhc2: usdhc@2194000 {
1050 compatible = "fsl,imx6q-usdhc"; 1050 compatible = "fsl,imx6q-usdhc";
1051 reg = <0x02194000 0x4000>; 1051 reg = <0x02194000 0x4000>;
1052 interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>; 1052 interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
@@ -1058,7 +1058,7 @@
1058 status = "disabled"; 1058 status = "disabled";
1059 }; 1059 };
1060 1060
1061 usdhc3: usdhc@02198000 { 1061 usdhc3: usdhc@2198000 {
1062 compatible = "fsl,imx6q-usdhc"; 1062 compatible = "fsl,imx6q-usdhc";
1063 reg = <0x02198000 0x4000>; 1063 reg = <0x02198000 0x4000>;
1064 interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>; 1064 interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
@@ -1070,7 +1070,7 @@
1070 status = "disabled"; 1070 status = "disabled";
1071 }; 1071 };
1072 1072
1073 usdhc4: usdhc@0219c000 { 1073 usdhc4: usdhc@219c000 {
1074 compatible = "fsl,imx6q-usdhc"; 1074 compatible = "fsl,imx6q-usdhc";
1075 reg = <0x0219c000 0x4000>; 1075 reg = <0x0219c000 0x4000>;
1076 interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>; 1076 interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
@@ -1082,7 +1082,7 @@
1082 status = "disabled"; 1082 status = "disabled";
1083 }; 1083 };
1084 1084
1085 i2c1: i2c@021a0000 { 1085 i2c1: i2c@21a0000 {
1086 #address-cells = <1>; 1086 #address-cells = <1>;
1087 #size-cells = <0>; 1087 #size-cells = <0>;
1088 compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c"; 1088 compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
@@ -1092,7 +1092,7 @@
1092 status = "disabled"; 1092 status = "disabled";
1093 }; 1093 };
1094 1094
1095 i2c2: i2c@021a4000 { 1095 i2c2: i2c@21a4000 {
1096 #address-cells = <1>; 1096 #address-cells = <1>;
1097 #size-cells = <0>; 1097 #size-cells = <0>;
1098 compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c"; 1098 compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
@@ -1102,7 +1102,7 @@
1102 status = "disabled"; 1102 status = "disabled";
1103 }; 1103 };
1104 1104
1105 i2c3: i2c@021a8000 { 1105 i2c3: i2c@21a8000 {
1106 #address-cells = <1>; 1106 #address-cells = <1>;
1107 #size-cells = <0>; 1107 #size-cells = <0>;
1108 compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c"; 1108 compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
@@ -1112,20 +1112,20 @@
1112 status = "disabled"; 1112 status = "disabled";
1113 }; 1113 };
1114 1114
1115 romcp@021ac000 { 1115 romcp@21ac000 {
1116 reg = <0x021ac000 0x4000>; 1116 reg = <0x021ac000 0x4000>;
1117 }; 1117 };
1118 1118
1119 mmdc0: mmdc@021b0000 { /* MMDC0 */ 1119 mmdc0: mmdc@21b0000 { /* MMDC0 */
1120 compatible = "fsl,imx6q-mmdc"; 1120 compatible = "fsl,imx6q-mmdc";
1121 reg = <0x021b0000 0x4000>; 1121 reg = <0x021b0000 0x4000>;
1122 }; 1122 };
1123 1123
1124 mmdc1: mmdc@021b4000 { /* MMDC1 */ 1124 mmdc1: mmdc@21b4000 { /* MMDC1 */
1125 reg = <0x021b4000 0x4000>; 1125 reg = <0x021b4000 0x4000>;
1126 }; 1126 };
1127 1127
1128 weim: weim@021b8000 { 1128 weim: weim@21b8000 {
1129 #address-cells = <2>; 1129 #address-cells = <2>;
1130 #size-cells = <1>; 1130 #size-cells = <1>;
1131 compatible = "fsl,imx6q-weim"; 1131 compatible = "fsl,imx6q-weim";
@@ -1136,29 +1136,29 @@
1136 status = "disabled"; 1136 status = "disabled";
1137 }; 1137 };
1138 1138
1139 ocotp: ocotp@021bc000 { 1139 ocotp: ocotp@21bc000 {
1140 compatible = "fsl,imx6q-ocotp", "syscon"; 1140 compatible = "fsl,imx6q-ocotp", "syscon";
1141 reg = <0x021bc000 0x4000>; 1141 reg = <0x021bc000 0x4000>;
1142 clocks = <&clks IMX6QDL_CLK_IIM>; 1142 clocks = <&clks IMX6QDL_CLK_IIM>;
1143 }; 1143 };
1144 1144
1145 tzasc@021d0000 { /* TZASC1 */ 1145 tzasc@21d0000 { /* TZASC1 */
1146 reg = <0x021d0000 0x4000>; 1146 reg = <0x021d0000 0x4000>;
1147 interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>; 1147 interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
1148 }; 1148 };
1149 1149
1150 tzasc@021d4000 { /* TZASC2 */ 1150 tzasc@21d4000 { /* TZASC2 */
1151 reg = <0x021d4000 0x4000>; 1151 reg = <0x021d4000 0x4000>;
1152 interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>; 1152 interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
1153 }; 1153 };
1154 1154
1155 audmux: audmux@021d8000 { 1155 audmux: audmux@21d8000 {
1156 compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux"; 1156 compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux";
1157 reg = <0x021d8000 0x4000>; 1157 reg = <0x021d8000 0x4000>;
1158 status = "disabled"; 1158 status = "disabled";
1159 }; 1159 };
1160 1160
1161 mipi_csi: mipi@021dc000 { 1161 mipi_csi: mipi@21dc000 {
1162 compatible = "fsl,imx6-mipi-csi2"; 1162 compatible = "fsl,imx6-mipi-csi2";
1163 reg = <0x021dc000 0x4000>; 1163 reg = <0x021dc000 0x4000>;
1164 #address-cells = <1>; 1164 #address-cells = <1>;
@@ -1171,7 +1171,7 @@
1171 status = "disabled"; 1171 status = "disabled";
1172 }; 1172 };
1173 1173
1174 mipi_dsi: mipi@021e0000 { 1174 mipi_dsi: mipi@21e0000 {
1175 #address-cells = <1>; 1175 #address-cells = <1>;
1176 #size-cells = <0>; 1176 #size-cells = <0>;
1177 reg = <0x021e0000 0x4000>; 1177 reg = <0x021e0000 0x4000>;
@@ -1199,14 +1199,14 @@
1199 }; 1199 };
1200 }; 1200 };
1201 1201
1202 vdoa@021e4000 { 1202 vdoa@21e4000 {
1203 compatible = "fsl,imx6q-vdoa"; 1203 compatible = "fsl,imx6q-vdoa";
1204 reg = <0x021e4000 0x4000>; 1204 reg = <0x021e4000 0x4000>;
1205 interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>; 1205 interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
1206 clocks = <&clks IMX6QDL_CLK_VDOA>; 1206 clocks = <&clks IMX6QDL_CLK_VDOA>;
1207 }; 1207 };
1208 1208
1209 uart2: serial@021e8000 { 1209 uart2: serial@21e8000 {
1210 compatible = "fsl,imx6q-uart", "fsl,imx21-uart"; 1210 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
1211 reg = <0x021e8000 0x4000>; 1211 reg = <0x021e8000 0x4000>;
1212 interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH>; 1212 interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH>;
@@ -1218,7 +1218,7 @@
1218 status = "disabled"; 1218 status = "disabled";
1219 }; 1219 };
1220 1220
1221 uart3: serial@021ec000 { 1221 uart3: serial@21ec000 {
1222 compatible = "fsl,imx6q-uart", "fsl,imx21-uart"; 1222 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
1223 reg = <0x021ec000 0x4000>; 1223 reg = <0x021ec000 0x4000>;
1224 interrupts = <0 28 IRQ_TYPE_LEVEL_HIGH>; 1224 interrupts = <0 28 IRQ_TYPE_LEVEL_HIGH>;
@@ -1230,7 +1230,7 @@
1230 status = "disabled"; 1230 status = "disabled";
1231 }; 1231 };
1232 1232
1233 uart4: serial@021f0000 { 1233 uart4: serial@21f0000 {
1234 compatible = "fsl,imx6q-uart", "fsl,imx21-uart"; 1234 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
1235 reg = <0x021f0000 0x4000>; 1235 reg = <0x021f0000 0x4000>;
1236 interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>; 1236 interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>;
@@ -1242,7 +1242,7 @@
1242 status = "disabled"; 1242 status = "disabled";
1243 }; 1243 };
1244 1244
1245 uart5: serial@021f4000 { 1245 uart5: serial@21f4000 {
1246 compatible = "fsl,imx6q-uart", "fsl,imx21-uart"; 1246 compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
1247 reg = <0x021f4000 0x4000>; 1247 reg = <0x021f4000 0x4000>;
1248 interrupts = <0 30 IRQ_TYPE_LEVEL_HIGH>; 1248 interrupts = <0 30 IRQ_TYPE_LEVEL_HIGH>;
@@ -1255,7 +1255,7 @@
1255 }; 1255 };
1256 }; 1256 };
1257 1257
1258 ipu1: ipu@02400000 { 1258 ipu1: ipu@2400000 {
1259 #address-cells = <1>; 1259 #address-cells = <1>;
1260 #size-cells = <0>; 1260 #size-cells = <0>;
1261 compatible = "fsl,imx6q-ipu"; 1261 compatible = "fsl,imx6q-ipu";
diff --git a/arch/arm/boot/dts/imx6qp-tx6qp-8037-mb7.dts b/arch/arm/boot/dts/imx6qp-tx6qp-8037-mb7.dts
new file mode 100644
index 000000000000..92b38e6699aa
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qp-tx6qp-8037-mb7.dts
@@ -0,0 +1,48 @@
1/*
2 * Copyright 2017 Lothar Waßmann <LW@KARO-electronics.de>
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/dts-v1/;
43#include "imx6qp-tx6qp-8037.dts"
44#include "imx6qdl-tx6-mb7.dtsi"
45
46/ {
47 model = "Ka-Ro electronics TX6Q-8037 Module on MB7 baseboard";
48};
diff --git a/arch/arm/boot/dts/imx6qp-tx6qp-8037.dts b/arch/arm/boot/dts/imx6qp-tx6qp-8037.dts
new file mode 100644
index 000000000000..ffc0f2ee11d2
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qp-tx6qp-8037.dts
@@ -0,0 +1,86 @@
1/*
2 * Copyright 2017 Lothar Waßmann <LW@KARO-electronics.de>
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/dts-v1/;
43#include "imx6qp.dtsi"
44#include "imx6qdl-tx6.dtsi"
45#include "imx6qdl-tx6-lcd.dtsi"
46
47/ {
48 model = "Ka-Ro electronics TX6QP-8037 Module";
49 compatible = "karo,imx6qp-tx6qp", "fsl,imx6qp";
50};
51
52&ds1339 {
53 status = "disabled";
54};
55
56&gpmi {
57 status = "disabled";
58};
59
60&ipu2 {
61 status = "disabled";
62};
63
64&usdhc4 {
65 pinctrl-names = "default";
66 pinctrl-0 = <&pinctrl_usdhc4>;
67 bus-width = <4>;
68 non-removable;
69 no-1-8-v;
70 fsl,wp-controller;
71 status = "okay";
72};
73
74&iomuxc {
75 pinctrl_usdhc4: usdhc4grp {
76 fsl,pins = <
77 MX6QDL_PAD_SD4_CMD__SD4_CMD 0x070b1
78 MX6QDL_PAD_SD4_CLK__SD4_CLK 0x070b1
79 MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x070b1
80 MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x070b1
81 MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x070b1
82 MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x070b1
83 MX6QDL_PAD_NANDF_ALE__SD4_RESET 0x0b0b1
84 >;
85 };
86};
diff --git a/arch/arm/boot/dts/imx6qp-tx6qp-8137-mb7.dts b/arch/arm/boot/dts/imx6qp-tx6qp-8137-mb7.dts
new file mode 100644
index 000000000000..07ad70718aec
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qp-tx6qp-8137-mb7.dts
@@ -0,0 +1,57 @@
1/*
2 * Copyright 2017 Lothar Waßmann <LW@KARO-electronics.de>
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/dts-v1/;
43#include "imx6qp-tx6qp-8137.dts"
44#include "imx6qdl-tx6-mb7.dtsi"
45
46/ {
47 model = "Ka-Ro electronics TX6Q-8137 Module on MB7 baseboard";
48 compatible = "karo,imx6qp-tx6qp", "fsl,imx6qp";
49};
50
51&ipu2 {
52 status = "disabled";
53};
54
55&sata {
56 status = "okay";
57};
diff --git a/arch/arm/boot/dts/imx6qp-tx6qp-8137.dts b/arch/arm/boot/dts/imx6qp-tx6qp-8137.dts
new file mode 100644
index 000000000000..dd494d587014
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qp-tx6qp-8137.dts
@@ -0,0 +1,90 @@
1/*
2 * Copyright 2017 Lothar Waßmann <LW@KARO-electronics.de>
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use,
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/dts-v1/;
43#include "imx6qp.dtsi"
44#include "imx6qdl-tx6.dtsi"
45#include "imx6qdl-tx6-lvds.dtsi"
46
47/ {
48 model = "Ka-Ro electronics TX6QP-8137 Module";
49 compatible = "karo,imx6qp-tx6qp", "fsl,imx6qp";
50};
51
52&ds1339 {
53 status = "disabled";
54};
55
56&gpmi {
57 status = "disabled";
58};
59
60&ipu2 {
61 status = "disabled";
62};
63
64&sata {
65 status = "okay";
66};
67
68&usdhc4 {
69 pinctrl-names = "default";
70 pinctrl-0 = <&pinctrl_usdhc4>;
71 bus-width = <4>;
72 non-removable;
73 no-1-8-v;
74 fsl,wp-controller;
75 status = "okay";
76};
77
78&iomuxc {
79 pinctrl_usdhc4: usdhc4grp {
80 fsl,pins = <
81 MX6QDL_PAD_SD4_CMD__SD4_CMD 0x070b1
82 MX6QDL_PAD_SD4_CLK__SD4_CLK 0x070b1
83 MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x070b1
84 MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x070b1
85 MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x070b1
86 MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x070b1
87 MX6QDL_PAD_NANDF_ALE__SD4_RESET 0x0b0b1
88 >;
89 };
90};
diff --git a/arch/arm/boot/dts/imx6qp-wandboard-revd1.dts b/arch/arm/boot/dts/imx6qp-wandboard-revd1.dts
new file mode 100644
index 000000000000..f7badd82ce8a
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qp-wandboard-revd1.dts
@@ -0,0 +1,26 @@
1/*
2 * Copyright 2013 Freescale Semiconductor, Inc.
3 *
4 * Author: Fabio Estevam <fabio.estevam@freescale.com>
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/dts-v1/;
12#include "imx6qp.dtsi"
13#include "imx6qdl-wandboard-revd1.dtsi"
14
15/ {
16 model = "Wandboard i.MX6 QuadPlus Board revD1";
17 compatible = "wand,imx6qp-wandboard", "fsl,imx6qp";
18
19 memory {
20 reg = <0x10000000 0x80000000>;
21 };
22};
23
24&sata {
25 status = "okay";
26};
diff --git a/arch/arm/boot/dts/imx6qp.dtsi b/arch/arm/boot/dts/imx6qp.dtsi
index 299d863690c5..5f4fdce715c1 100644
--- a/arch/arm/boot/dts/imx6qp.dtsi
+++ b/arch/arm/boot/dts/imx6qp.dtsi
@@ -44,19 +44,19 @@
44 44
45/ { 45/ {
46 soc { 46 soc {
47 ocram2: sram@00940000 { 47 ocram2: sram@940000 {
48 compatible = "mmio-sram"; 48 compatible = "mmio-sram";
49 reg = <0x00940000 0x20000>; 49 reg = <0x00940000 0x20000>;
50 clocks = <&clks IMX6QDL_CLK_OCRAM>; 50 clocks = <&clks IMX6QDL_CLK_OCRAM>;
51 }; 51 };
52 52
53 ocram3: sram@00960000 { 53 ocram3: sram@960000 {
54 compatible = "mmio-sram"; 54 compatible = "mmio-sram";
55 reg = <0x00960000 0x20000>; 55 reg = <0x00960000 0x20000>;
56 clocks = <&clks IMX6QDL_CLK_OCRAM>; 56 clocks = <&clks IMX6QDL_CLK_OCRAM>;
57 }; 57 };
58 58
59 aips-bus@02100000 { 59 aips-bus@2100000 {
60 pre1: pre@21c8000 { 60 pre1: pre@21c8000 {
61 compatible = "fsl,imx6qp-pre"; 61 compatible = "fsl,imx6qp-pre";
62 reg = <0x021c8000 0x1000>; 62 reg = <0x021c8000 0x1000>;
diff --git a/arch/arm/boot/dts/imx6sl-evk.dts b/arch/arm/boot/dts/imx6sl-evk.dts
index 0a90eea17018..60600b4cf5fe 100644
--- a/arch/arm/boot/dts/imx6sl-evk.dts
+++ b/arch/arm/boot/dts/imx6sl-evk.dts
@@ -145,7 +145,7 @@
145 pinctrl-0 = <&pinctrl_i2c1>; 145 pinctrl-0 = <&pinctrl_i2c1>;
146 status = "okay"; 146 status = "okay";
147 147
148 pmic: pfuze100@08 { 148 pmic: pfuze100@8 {
149 compatible = "fsl,pfuze100"; 149 compatible = "fsl,pfuze100";
150 reg = <0x08>; 150 reg = <0x08>;
151 151
diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi
index 3f76f980947e..3ea1a41893c8 100644
--- a/arch/arm/boot/dts/imx6sl.dtsi
+++ b/arch/arm/boot/dts/imx6sl.dtsi
@@ -76,7 +76,7 @@
76 }; 76 };
77 }; 77 };
78 78
79 intc: interrupt-controller@00a01000 { 79 intc: interrupt-controller@a01000 {
80 compatible = "arm,cortex-a9-gic"; 80 compatible = "arm,cortex-a9-gic";
81 #interrupt-cells = <3>; 81 #interrupt-cells = <3>;
82 interrupt-controller; 82 interrupt-controller;
@@ -109,13 +109,13 @@
109 interrupt-parent = <&gpc>; 109 interrupt-parent = <&gpc>;
110 ranges; 110 ranges;
111 111
112 ocram: sram@00900000 { 112 ocram: sram@900000 {
113 compatible = "mmio-sram"; 113 compatible = "mmio-sram";
114 reg = <0x00900000 0x20000>; 114 reg = <0x00900000 0x20000>;
115 clocks = <&clks IMX6SL_CLK_OCRAM>; 115 clocks = <&clks IMX6SL_CLK_OCRAM>;
116 }; 116 };
117 117
118 L2: l2-cache@00a02000 { 118 L2: l2-cache@a02000 {
119 compatible = "arm,pl310-cache"; 119 compatible = "arm,pl310-cache";
120 reg = <0x00a02000 0x1000>; 120 reg = <0x00a02000 0x1000>;
121 interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>; 121 interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
@@ -130,21 +130,21 @@
130 interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>; 130 interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
131 }; 131 };
132 132
133 aips1: aips-bus@02000000 { 133 aips1: aips-bus@2000000 {
134 compatible = "fsl,aips-bus", "simple-bus"; 134 compatible = "fsl,aips-bus", "simple-bus";
135 #address-cells = <1>; 135 #address-cells = <1>;
136 #size-cells = <1>; 136 #size-cells = <1>;
137 reg = <0x02000000 0x100000>; 137 reg = <0x02000000 0x100000>;
138 ranges; 138 ranges;
139 139
140 spba: spba-bus@02000000 { 140 spba: spba-bus@2000000 {
141 compatible = "fsl,spba-bus", "simple-bus"; 141 compatible = "fsl,spba-bus", "simple-bus";
142 #address-cells = <1>; 142 #address-cells = <1>;
143 #size-cells = <1>; 143 #size-cells = <1>;
144 reg = <0x02000000 0x40000>; 144 reg = <0x02000000 0x40000>;
145 ranges; 145 ranges;
146 146
147 spdif: spdif@02004000 { 147 spdif: spdif@2004000 {
148 compatible = "fsl,imx6sl-spdif", 148 compatible = "fsl,imx6sl-spdif",
149 "fsl,imx35-spdif"; 149 "fsl,imx35-spdif";
150 reg = <0x02004000 0x4000>; 150 reg = <0x02004000 0x4000>;
@@ -165,7 +165,7 @@
165 status = "disabled"; 165 status = "disabled";
166 }; 166 };
167 167
168 ecspi1: ecspi@02008000 { 168 ecspi1: ecspi@2008000 {
169 #address-cells = <1>; 169 #address-cells = <1>;
170 #size-cells = <0>; 170 #size-cells = <0>;
171 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi"; 171 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
@@ -177,7 +177,7 @@
177 status = "disabled"; 177 status = "disabled";
178 }; 178 };
179 179
180 ecspi2: ecspi@0200c000 { 180 ecspi2: ecspi@200c000 {
181 #address-cells = <1>; 181 #address-cells = <1>;
182 #size-cells = <0>; 182 #size-cells = <0>;
183 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi"; 183 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
@@ -189,7 +189,7 @@
189 status = "disabled"; 189 status = "disabled";
190 }; 190 };
191 191
192 ecspi3: ecspi@02010000 { 192 ecspi3: ecspi@2010000 {
193 #address-cells = <1>; 193 #address-cells = <1>;
194 #size-cells = <0>; 194 #size-cells = <0>;
195 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi"; 195 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
@@ -201,7 +201,7 @@
201 status = "disabled"; 201 status = "disabled";
202 }; 202 };
203 203
204 ecspi4: ecspi@02014000 { 204 ecspi4: ecspi@2014000 {
205 #address-cells = <1>; 205 #address-cells = <1>;
206 #size-cells = <0>; 206 #size-cells = <0>;
207 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi"; 207 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
@@ -213,7 +213,7 @@
213 status = "disabled"; 213 status = "disabled";
214 }; 214 };
215 215
216 uart5: serial@02018000 { 216 uart5: serial@2018000 {
217 compatible = "fsl,imx6sl-uart", 217 compatible = "fsl,imx6sl-uart",
218 "fsl,imx6q-uart", "fsl,imx21-uart"; 218 "fsl,imx6q-uart", "fsl,imx21-uart";
219 reg = <0x02018000 0x4000>; 219 reg = <0x02018000 0x4000>;
@@ -226,7 +226,7 @@
226 status = "disabled"; 226 status = "disabled";
227 }; 227 };
228 228
229 uart1: serial@02020000 { 229 uart1: serial@2020000 {
230 compatible = "fsl,imx6sl-uart", 230 compatible = "fsl,imx6sl-uart",
231 "fsl,imx6q-uart", "fsl,imx21-uart"; 231 "fsl,imx6q-uart", "fsl,imx21-uart";
232 reg = <0x02020000 0x4000>; 232 reg = <0x02020000 0x4000>;
@@ -239,7 +239,7 @@
239 status = "disabled"; 239 status = "disabled";
240 }; 240 };
241 241
242 uart2: serial@02024000 { 242 uart2: serial@2024000 {
243 compatible = "fsl,imx6sl-uart", 243 compatible = "fsl,imx6sl-uart",
244 "fsl,imx6q-uart", "fsl,imx21-uart"; 244 "fsl,imx6q-uart", "fsl,imx21-uart";
245 reg = <0x02024000 0x4000>; 245 reg = <0x02024000 0x4000>;
@@ -252,7 +252,7 @@
252 status = "disabled"; 252 status = "disabled";
253 }; 253 };
254 254
255 ssi1: ssi@02028000 { 255 ssi1: ssi@2028000 {
256 #sound-dai-cells = <0>; 256 #sound-dai-cells = <0>;
257 compatible = "fsl,imx6sl-ssi", 257 compatible = "fsl,imx6sl-ssi",
258 "fsl,imx51-ssi"; 258 "fsl,imx51-ssi";
@@ -268,7 +268,7 @@
268 status = "disabled"; 268 status = "disabled";
269 }; 269 };
270 270
271 ssi2: ssi@0202c000 { 271 ssi2: ssi@202c000 {
272 #sound-dai-cells = <0>; 272 #sound-dai-cells = <0>;
273 compatible = "fsl,imx6sl-ssi", 273 compatible = "fsl,imx6sl-ssi",
274 "fsl,imx51-ssi"; 274 "fsl,imx51-ssi";
@@ -284,7 +284,7 @@
284 status = "disabled"; 284 status = "disabled";
285 }; 285 };
286 286
287 ssi3: ssi@02030000 { 287 ssi3: ssi@2030000 {
288 #sound-dai-cells = <0>; 288 #sound-dai-cells = <0>;
289 compatible = "fsl,imx6sl-ssi", 289 compatible = "fsl,imx6sl-ssi",
290 "fsl,imx51-ssi"; 290 "fsl,imx51-ssi";
@@ -300,7 +300,7 @@
300 status = "disabled"; 300 status = "disabled";
301 }; 301 };
302 302
303 uart3: serial@02034000 { 303 uart3: serial@2034000 {
304 compatible = "fsl,imx6sl-uart", 304 compatible = "fsl,imx6sl-uart",
305 "fsl,imx6q-uart", "fsl,imx21-uart"; 305 "fsl,imx6q-uart", "fsl,imx21-uart";
306 reg = <0x02034000 0x4000>; 306 reg = <0x02034000 0x4000>;
@@ -313,7 +313,7 @@
313 status = "disabled"; 313 status = "disabled";
314 }; 314 };
315 315
316 uart4: serial@02038000 { 316 uart4: serial@2038000 {
317 compatible = "fsl,imx6sl-uart", 317 compatible = "fsl,imx6sl-uart",
318 "fsl,imx6q-uart", "fsl,imx21-uart"; 318 "fsl,imx6q-uart", "fsl,imx21-uart";
319 reg = <0x02038000 0x4000>; 319 reg = <0x02038000 0x4000>;
@@ -327,7 +327,7 @@
327 }; 327 };
328 }; 328 };
329 329
330 pwm1: pwm@02080000 { 330 pwm1: pwm@2080000 {
331 #pwm-cells = <2>; 331 #pwm-cells = <2>;
332 compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm"; 332 compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
333 reg = <0x02080000 0x4000>; 333 reg = <0x02080000 0x4000>;
@@ -337,7 +337,7 @@
337 clock-names = "ipg", "per"; 337 clock-names = "ipg", "per";
338 }; 338 };
339 339
340 pwm2: pwm@02084000 { 340 pwm2: pwm@2084000 {
341 #pwm-cells = <2>; 341 #pwm-cells = <2>;
342 compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm"; 342 compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
343 reg = <0x02084000 0x4000>; 343 reg = <0x02084000 0x4000>;
@@ -347,7 +347,7 @@
347 clock-names = "ipg", "per"; 347 clock-names = "ipg", "per";
348 }; 348 };
349 349
350 pwm3: pwm@02088000 { 350 pwm3: pwm@2088000 {
351 #pwm-cells = <2>; 351 #pwm-cells = <2>;
352 compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm"; 352 compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
353 reg = <0x02088000 0x4000>; 353 reg = <0x02088000 0x4000>;
@@ -357,7 +357,7 @@
357 clock-names = "ipg", "per"; 357 clock-names = "ipg", "per";
358 }; 358 };
359 359
360 pwm4: pwm@0208c000 { 360 pwm4: pwm@208c000 {
361 #pwm-cells = <2>; 361 #pwm-cells = <2>;
362 compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm"; 362 compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
363 reg = <0x0208c000 0x4000>; 363 reg = <0x0208c000 0x4000>;
@@ -367,7 +367,7 @@
367 clock-names = "ipg", "per"; 367 clock-names = "ipg", "per";
368 }; 368 };
369 369
370 gpt: gpt@02098000 { 370 gpt: gpt@2098000 {
371 compatible = "fsl,imx6sl-gpt"; 371 compatible = "fsl,imx6sl-gpt";
372 reg = <0x02098000 0x4000>; 372 reg = <0x02098000 0x4000>;
373 interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>; 373 interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
@@ -376,7 +376,7 @@
376 clock-names = "ipg", "per"; 376 clock-names = "ipg", "per";
377 }; 377 };
378 378
379 gpio1: gpio@0209c000 { 379 gpio1: gpio@209c000 {
380 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio"; 380 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
381 reg = <0x0209c000 0x4000>; 381 reg = <0x0209c000 0x4000>;
382 interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>, 382 interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>,
@@ -393,7 +393,7 @@
393 <&iomuxc 27 64 4>, <&iomuxc 31 52 1>; 393 <&iomuxc 27 64 4>, <&iomuxc 31 52 1>;
394 }; 394 };
395 395
396 gpio2: gpio@020a0000 { 396 gpio2: gpio@20a0000 {
397 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio"; 397 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
398 reg = <0x020a0000 0x4000>; 398 reg = <0x020a0000 0x4000>;
399 interrupts = <0 68 IRQ_TYPE_LEVEL_HIGH>, 399 interrupts = <0 68 IRQ_TYPE_LEVEL_HIGH>,
@@ -411,7 +411,7 @@
411 <&iomuxc 23 125 7>, <&iomuxc 30 110 2>; 411 <&iomuxc 23 125 7>, <&iomuxc 30 110 2>;
412 }; 412 };
413 413
414 gpio3: gpio@020a4000 { 414 gpio3: gpio@20a4000 {
415 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio"; 415 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
416 reg = <0x020a4000 0x4000>; 416 reg = <0x020a4000 0x4000>;
417 interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>, 417 interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>,
@@ -430,7 +430,7 @@
430 <&iomuxc 31 102 1>; 430 <&iomuxc 31 102 1>;
431 }; 431 };
432 432
433 gpio4: gpio@020a8000 { 433 gpio4: gpio@20a8000 {
434 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio"; 434 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
435 reg = <0x020a8000 0x4000>; 435 reg = <0x020a8000 0x4000>;
436 interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>, 436 interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>,
@@ -456,7 +456,7 @@
456 <&iomuxc 30 152 1>, <&iomuxc 31 156 1>; 456 <&iomuxc 30 152 1>, <&iomuxc 31 156 1>;
457 }; 457 };
458 458
459 gpio5: gpio@020ac000 { 459 gpio5: gpio@20ac000 {
460 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio"; 460 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
461 reg = <0x020ac000 0x4000>; 461 reg = <0x020ac000 0x4000>;
462 interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>, 462 interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>,
@@ -478,7 +478,7 @@
478 <&iomuxc 21 161 1>; 478 <&iomuxc 21 161 1>;
479 }; 479 };
480 480
481 kpp: kpp@020b8000 { 481 kpp: kpp@20b8000 {
482 compatible = "fsl,imx6sl-kpp", "fsl,imx21-kpp"; 482 compatible = "fsl,imx6sl-kpp", "fsl,imx21-kpp";
483 reg = <0x020b8000 0x4000>; 483 reg = <0x020b8000 0x4000>;
484 interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>; 484 interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
@@ -486,14 +486,14 @@
486 status = "disabled"; 486 status = "disabled";
487 }; 487 };
488 488
489 wdog1: wdog@020bc000 { 489 wdog1: wdog@20bc000 {
490 compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt"; 490 compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
491 reg = <0x020bc000 0x4000>; 491 reg = <0x020bc000 0x4000>;
492 interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>; 492 interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
493 clocks = <&clks IMX6SL_CLK_DUMMY>; 493 clocks = <&clks IMX6SL_CLK_DUMMY>;
494 }; 494 };
495 495
496 wdog2: wdog@020c0000 { 496 wdog2: wdog@20c0000 {
497 compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt"; 497 compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
498 reg = <0x020c0000 0x4000>; 498 reg = <0x020c0000 0x4000>;
499 interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>; 499 interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
@@ -501,7 +501,7 @@
501 status = "disabled"; 501 status = "disabled";
502 }; 502 };
503 503
504 clks: ccm@020c4000 { 504 clks: ccm@20c4000 {
505 compatible = "fsl,imx6sl-ccm"; 505 compatible = "fsl,imx6sl-ccm";
506 reg = <0x020c4000 0x4000>; 506 reg = <0x020c4000 0x4000>;
507 interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>, 507 interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>,
@@ -509,7 +509,7 @@
509 #clock-cells = <1>; 509 #clock-cells = <1>;
510 }; 510 };
511 511
512 anatop: anatop@020c8000 { 512 anatop: anatop@20c8000 {
513 compatible = "fsl,imx6sl-anatop", 513 compatible = "fsl,imx6sl-anatop",
514 "fsl,imx6q-anatop", 514 "fsl,imx6q-anatop",
515 "syscon", "simple-bus"; 515 "syscon", "simple-bus";
@@ -623,7 +623,7 @@
623 clocks = <&clks IMX6SL_CLK_PLL3_USB_OTG>; 623 clocks = <&clks IMX6SL_CLK_PLL3_USB_OTG>;
624 }; 624 };
625 625
626 usbphy1: usbphy@020c9000 { 626 usbphy1: usbphy@20c9000 {
627 compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy"; 627 compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy";
628 reg = <0x020c9000 0x1000>; 628 reg = <0x020c9000 0x1000>;
629 interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>; 629 interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
@@ -631,7 +631,7 @@
631 fsl,anatop = <&anatop>; 631 fsl,anatop = <&anatop>;
632 }; 632 };
633 633
634 usbphy2: usbphy@020ca000 { 634 usbphy2: usbphy@20ca000 {
635 compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy"; 635 compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy";
636 reg = <0x020ca000 0x1000>; 636 reg = <0x020ca000 0x1000>;
637 interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>; 637 interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>;
@@ -639,7 +639,7 @@
639 fsl,anatop = <&anatop>; 639 fsl,anatop = <&anatop>;
640 }; 640 };
641 641
642 snvs: snvs@020cc000 { 642 snvs: snvs@20cc000 {
643 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd"; 643 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
644 reg = <0x020cc000 0x4000>; 644 reg = <0x020cc000 0x4000>;
645 645
@@ -661,17 +661,17 @@
661 }; 661 };
662 }; 662 };
663 663
664 epit1: epit@020d0000 { 664 epit1: epit@20d0000 {
665 reg = <0x020d0000 0x4000>; 665 reg = <0x020d0000 0x4000>;
666 interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>; 666 interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
667 }; 667 };
668 668
669 epit2: epit@020d4000 { 669 epit2: epit@20d4000 {
670 reg = <0x020d4000 0x4000>; 670 reg = <0x020d4000 0x4000>;
671 interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>; 671 interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
672 }; 672 };
673 673
674 src: src@020d8000 { 674 src: src@20d8000 {
675 compatible = "fsl,imx6sl-src", "fsl,imx51-src"; 675 compatible = "fsl,imx6sl-src", "fsl,imx51-src";
676 reg = <0x020d8000 0x4000>; 676 reg = <0x020d8000 0x4000>;
677 interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>, 677 interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
@@ -679,7 +679,7 @@
679 #reset-cells = <1>; 679 #reset-cells = <1>;
680 }; 680 };
681 681
682 gpc: gpc@020dc000 { 682 gpc: gpc@20dc000 {
683 compatible = "fsl,imx6sl-gpc", "fsl,imx6q-gpc"; 683 compatible = "fsl,imx6sl-gpc", "fsl,imx6q-gpc";
684 reg = <0x020dc000 0x4000>; 684 reg = <0x020dc000 0x4000>;
685 interrupt-controller; 685 interrupt-controller;
@@ -692,28 +692,28 @@
692 #power-domain-cells = <1>; 692 #power-domain-cells = <1>;
693 }; 693 };
694 694
695 gpr: iomuxc-gpr@020e0000 { 695 gpr: iomuxc-gpr@20e0000 {
696 compatible = "fsl,imx6sl-iomuxc-gpr", 696 compatible = "fsl,imx6sl-iomuxc-gpr",
697 "fsl,imx6q-iomuxc-gpr", "syscon"; 697 "fsl,imx6q-iomuxc-gpr", "syscon";
698 reg = <0x020e0000 0x38>; 698 reg = <0x020e0000 0x38>;
699 }; 699 };
700 700
701 iomuxc: iomuxc@020e0000 { 701 iomuxc: iomuxc@20e0000 {
702 compatible = "fsl,imx6sl-iomuxc"; 702 compatible = "fsl,imx6sl-iomuxc";
703 reg = <0x020e0000 0x4000>; 703 reg = <0x020e0000 0x4000>;
704 }; 704 };
705 705
706 csi: csi@020e4000 { 706 csi: csi@20e4000 {
707 reg = <0x020e4000 0x4000>; 707 reg = <0x020e4000 0x4000>;
708 interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>; 708 interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
709 }; 709 };
710 710
711 spdc: spdc@020e8000 { 711 spdc: spdc@20e8000 {
712 reg = <0x020e8000 0x4000>; 712 reg = <0x020e8000 0x4000>;
713 interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>; 713 interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
714 }; 714 };
715 715
716 sdma: sdma@020ec000 { 716 sdma: sdma@20ec000 {
717 compatible = "fsl,imx6sl-sdma", "fsl,imx6q-sdma"; 717 compatible = "fsl,imx6sl-sdma", "fsl,imx6q-sdma";
718 reg = <0x020ec000 0x4000>; 718 reg = <0x020ec000 0x4000>;
719 interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>; 719 interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
@@ -725,17 +725,17 @@
725 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin"; 725 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
726 }; 726 };
727 727
728 pxp: pxp@020f0000 { 728 pxp: pxp@20f0000 {
729 reg = <0x020f0000 0x4000>; 729 reg = <0x020f0000 0x4000>;
730 interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>; 730 interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
731 }; 731 };
732 732
733 epdc: epdc@020f4000 { 733 epdc: epdc@20f4000 {
734 reg = <0x020f4000 0x4000>; 734 reg = <0x020f4000 0x4000>;
735 interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>; 735 interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>;
736 }; 736 };
737 737
738 lcdif: lcdif@020f8000 { 738 lcdif: lcdif@20f8000 {
739 compatible = "fsl,imx6sl-lcdif", "fsl,imx28-lcdif"; 739 compatible = "fsl,imx6sl-lcdif", "fsl,imx28-lcdif";
740 reg = <0x020f8000 0x4000>; 740 reg = <0x020f8000 0x4000>;
741 interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>; 741 interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
@@ -746,7 +746,7 @@
746 status = "disabled"; 746 status = "disabled";
747 }; 747 };
748 748
749 dcp: dcp@020fc000 { 749 dcp: dcp@20fc000 {
750 compatible = "fsl,imx6sl-dcp", "fsl,imx28-dcp"; 750 compatible = "fsl,imx6sl-dcp", "fsl,imx28-dcp";
751 reg = <0x020fc000 0x4000>; 751 reg = <0x020fc000 0x4000>;
752 interrupts = <0 99 IRQ_TYPE_LEVEL_HIGH>, 752 interrupts = <0 99 IRQ_TYPE_LEVEL_HIGH>,
@@ -755,14 +755,14 @@
755 }; 755 };
756 }; 756 };
757 757
758 aips2: aips-bus@02100000 { 758 aips2: aips-bus@2100000 {
759 compatible = "fsl,aips-bus", "simple-bus"; 759 compatible = "fsl,aips-bus", "simple-bus";
760 #address-cells = <1>; 760 #address-cells = <1>;
761 #size-cells = <1>; 761 #size-cells = <1>;
762 reg = <0x02100000 0x100000>; 762 reg = <0x02100000 0x100000>;
763 ranges; 763 ranges;
764 764
765 usbotg1: usb@02184000 { 765 usbotg1: usb@2184000 {
766 compatible = "fsl,imx6sl-usb", "fsl,imx27-usb"; 766 compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
767 reg = <0x02184000 0x200>; 767 reg = <0x02184000 0x200>;
768 interrupts = <0 43 IRQ_TYPE_LEVEL_HIGH>; 768 interrupts = <0 43 IRQ_TYPE_LEVEL_HIGH>;
@@ -775,7 +775,7 @@
775 status = "disabled"; 775 status = "disabled";
776 }; 776 };
777 777
778 usbotg2: usb@02184200 { 778 usbotg2: usb@2184200 {
779 compatible = "fsl,imx6sl-usb", "fsl,imx27-usb"; 779 compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
780 reg = <0x02184200 0x200>; 780 reg = <0x02184200 0x200>;
781 interrupts = <0 42 IRQ_TYPE_LEVEL_HIGH>; 781 interrupts = <0 42 IRQ_TYPE_LEVEL_HIGH>;
@@ -788,7 +788,7 @@
788 status = "disabled"; 788 status = "disabled";
789 }; 789 };
790 790
791 usbh: usb@02184400 { 791 usbh: usb@2184400 {
792 compatible = "fsl,imx6sl-usb", "fsl,imx27-usb"; 792 compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
793 reg = <0x02184400 0x200>; 793 reg = <0x02184400 0x200>;
794 interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>; 794 interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>;
@@ -801,14 +801,14 @@
801 status = "disabled"; 801 status = "disabled";
802 }; 802 };
803 803
804 usbmisc: usbmisc@02184800 { 804 usbmisc: usbmisc@2184800 {
805 #index-cells = <1>; 805 #index-cells = <1>;
806 compatible = "fsl,imx6sl-usbmisc", "fsl,imx6q-usbmisc"; 806 compatible = "fsl,imx6sl-usbmisc", "fsl,imx6q-usbmisc";
807 reg = <0x02184800 0x200>; 807 reg = <0x02184800 0x200>;
808 clocks = <&clks IMX6SL_CLK_USBOH3>; 808 clocks = <&clks IMX6SL_CLK_USBOH3>;
809 }; 809 };
810 810
811 fec: ethernet@02188000 { 811 fec: ethernet@2188000 {
812 compatible = "fsl,imx6sl-fec", "fsl,imx25-fec"; 812 compatible = "fsl,imx6sl-fec", "fsl,imx25-fec";
813 reg = <0x02188000 0x4000>; 813 reg = <0x02188000 0x4000>;
814 interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>; 814 interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
@@ -818,7 +818,7 @@
818 status = "disabled"; 818 status = "disabled";
819 }; 819 };
820 820
821 usdhc1: usdhc@02190000 { 821 usdhc1: usdhc@2190000 {
822 compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc"; 822 compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
823 reg = <0x02190000 0x4000>; 823 reg = <0x02190000 0x4000>;
824 interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>; 824 interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
@@ -830,7 +830,7 @@
830 status = "disabled"; 830 status = "disabled";
831 }; 831 };
832 832
833 usdhc2: usdhc@02194000 { 833 usdhc2: usdhc@2194000 {
834 compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc"; 834 compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
835 reg = <0x02194000 0x4000>; 835 reg = <0x02194000 0x4000>;
836 interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>; 836 interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
@@ -842,7 +842,7 @@
842 status = "disabled"; 842 status = "disabled";
843 }; 843 };
844 844
845 usdhc3: usdhc@02198000 { 845 usdhc3: usdhc@2198000 {
846 compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc"; 846 compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
847 reg = <0x02198000 0x4000>; 847 reg = <0x02198000 0x4000>;
848 interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>; 848 interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
@@ -854,7 +854,7 @@
854 status = "disabled"; 854 status = "disabled";
855 }; 855 };
856 856
857 usdhc4: usdhc@0219c000 { 857 usdhc4: usdhc@219c000 {
858 compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc"; 858 compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
859 reg = <0x0219c000 0x4000>; 859 reg = <0x0219c000 0x4000>;
860 interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>; 860 interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
@@ -866,7 +866,7 @@
866 status = "disabled"; 866 status = "disabled";
867 }; 867 };
868 868
869 i2c1: i2c@021a0000 { 869 i2c1: i2c@21a0000 {
870 #address-cells = <1>; 870 #address-cells = <1>;
871 #size-cells = <0>; 871 #size-cells = <0>;
872 compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c"; 872 compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
@@ -876,7 +876,7 @@
876 status = "disabled"; 876 status = "disabled";
877 }; 877 };
878 878
879 i2c2: i2c@021a4000 { 879 i2c2: i2c@21a4000 {
880 #address-cells = <1>; 880 #address-cells = <1>;
881 #size-cells = <0>; 881 #size-cells = <0>;
882 compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c"; 882 compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
@@ -886,7 +886,7 @@
886 status = "disabled"; 886 status = "disabled";
887 }; 887 };
888 888
889 i2c3: i2c@021a8000 { 889 i2c3: i2c@21a8000 {
890 #address-cells = <1>; 890 #address-cells = <1>;
891 #size-cells = <0>; 891 #size-cells = <0>;
892 compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c"; 892 compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
@@ -896,17 +896,17 @@
896 status = "disabled"; 896 status = "disabled";
897 }; 897 };
898 898
899 mmdc: mmdc@021b0000 { 899 mmdc: mmdc@21b0000 {
900 compatible = "fsl,imx6sl-mmdc", "fsl,imx6q-mmdc"; 900 compatible = "fsl,imx6sl-mmdc", "fsl,imx6q-mmdc";
901 reg = <0x021b0000 0x4000>; 901 reg = <0x021b0000 0x4000>;
902 }; 902 };
903 903
904 rngb: rngb@021b4000 { 904 rngb: rngb@21b4000 {
905 reg = <0x021b4000 0x4000>; 905 reg = <0x021b4000 0x4000>;
906 interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>; 906 interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
907 }; 907 };
908 908
909 weim: weim@021b8000 { 909 weim: weim@21b8000 {
910 #address-cells = <2>; 910 #address-cells = <2>;
911 #size-cells = <1>; 911 #size-cells = <1>;
912 reg = <0x021b8000 0x4000>; 912 reg = <0x021b8000 0x4000>;
@@ -915,13 +915,13 @@
915 status = "disabled"; 915 status = "disabled";
916 }; 916 };
917 917
918 ocotp: ocotp@021bc000 { 918 ocotp: ocotp@21bc000 {
919 compatible = "fsl,imx6sl-ocotp", "syscon"; 919 compatible = "fsl,imx6sl-ocotp", "syscon";
920 reg = <0x021bc000 0x4000>; 920 reg = <0x021bc000 0x4000>;
921 clocks = <&clks IMX6SL_CLK_OCOTP>; 921 clocks = <&clks IMX6SL_CLK_OCOTP>;
922 }; 922 };
923 923
924 audmux: audmux@021d8000 { 924 audmux: audmux@21d8000 {
925 compatible = "fsl,imx6sl-audmux", "fsl,imx31-audmux"; 925 compatible = "fsl,imx6sl-audmux", "fsl,imx31-audmux";
926 reg = <0x021d8000 0x4000>; 926 reg = <0x021d8000 0x4000>;
927 status = "disabled"; 927 status = "disabled";
diff --git a/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts b/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts
index c5578d1c1ee4..f9d40ee14982 100644
--- a/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts
+++ b/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts
@@ -231,7 +231,7 @@
231 pinctrl-0 = <&pinctrl_i2c1>; 231 pinctrl-0 = <&pinctrl_i2c1>;
232 status = "okay"; 232 status = "okay";
233 233
234 codec: sgtl5000@0a { 234 codec: sgtl5000@a {
235 compatible = "fsl,sgtl5000"; 235 compatible = "fsl,sgtl5000";
236 pinctrl-names = "default"; 236 pinctrl-names = "default";
237 pinctrl-0 = <&pinctrl_sgtl5000>; 237 pinctrl-0 = <&pinctrl_sgtl5000>;
diff --git a/arch/arm/boot/dts/imx6sx-sdb-reva.dts b/arch/arm/boot/dts/imx6sx-sdb-reva.dts
index 71005478cdf0..e3533e74ccc8 100644
--- a/arch/arm/boot/dts/imx6sx-sdb-reva.dts
+++ b/arch/arm/boot/dts/imx6sx-sdb-reva.dts
@@ -18,7 +18,7 @@
18 pinctrl-0 = <&pinctrl_i2c1>; 18 pinctrl-0 = <&pinctrl_i2c1>;
19 status = "okay"; 19 status = "okay";
20 20
21 pmic: pfuze100@08 { 21 pmic: pfuze100@8 {
22 compatible = "fsl,pfuze100"; 22 compatible = "fsl,pfuze100";
23 reg = <0x08>; 23 reg = <0x08>;
24 24
diff --git a/arch/arm/boot/dts/imx6sx-sdb.dts b/arch/arm/boot/dts/imx6sx-sdb.dts
index c0139d7e497a..6dd9bebfe027 100644
--- a/arch/arm/boot/dts/imx6sx-sdb.dts
+++ b/arch/arm/boot/dts/imx6sx-sdb.dts
@@ -18,7 +18,7 @@
18 pinctrl-0 = <&pinctrl_i2c1>; 18 pinctrl-0 = <&pinctrl_i2c1>;
19 status = "okay"; 19 status = "okay";
20 20
21 pmic: pfuze100@08 { 21 pmic: pfuze100@8 {
22 compatible = "fsl,pfuze200"; 22 compatible = "fsl,pfuze200";
23 reg = <0x08>; 23 reg = <0x08>;
24 24
diff --git a/arch/arm/boot/dts/imx6sx-softing-vining-2000.dts b/arch/arm/boot/dts/imx6sx-softing-vining-2000.dts
new file mode 100644
index 000000000000..4d8c6521845f
--- /dev/null
+++ b/arch/arm/boot/dts/imx6sx-softing-vining-2000.dts
@@ -0,0 +1,572 @@
1/*
2 * Copyright (C) 2016 Christoph Fritz <chf.fritz@googlemail.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/dts-v1/;
10
11#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/input/input.h>
13#include "imx6sx.dtsi"
14
15/ {
16 model = "Softing VIN|ING 2000";
17 compatible = "samtec,imx6sx-vining-2000", "fsl,imx6sx";
18
19 chosen {
20 stdout-path = &uart1;
21 };
22
23 memory {
24 reg = <0x80000000 0x40000000>;
25 };
26
27 reg_usb_otg1_vbus: regulator-usb_otg1_vbus {
28 compatible = "regulator-fixed";
29 regulator-name = "usb_otg1_vbus";
30 pinctrl-names = "default";
31 pinctrl-0 = <&pinctrl_usb_otg1>;
32 regulator-min-microvolt = <5000000>;
33 regulator-max-microvolt = <5000000>;
34 gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
35 enable-active-high;
36 };
37
38 reg_peri_3v3: regulator-peri_3v3 {
39 compatible = "regulator-fixed";
40 regulator-name = "peri_3v3";
41 regulator-min-microvolt = <3300000>;
42 regulator-max-microvolt = <3300000>;
43 };
44
45 pwmleds {
46 compatible = "pwm-leds";
47
48 red {
49 label = "red";
50 max-brightness = <255>;
51 pwms = <&pwm6 0 50000>;
52 };
53
54 green {
55 label = "green";
56 max-brightness = <255>;
57 pwms = <&pwm2 0 50000>;
58 };
59
60 blue {
61 label = "blue";
62 max-brightness = <255>;
63 pwms = <&pwm1 0 50000>;
64 };
65 };
66};
67
68&adc1 {
69 vref-supply = <&reg_peri_3v3>;
70 status = "okay";
71};
72
73&cpu0 {
74 /*
75 * This board has a shared rail of reg_arm and reg_soc (supplied by
76 * sw1a_reg) which is modeled below, but still this module behaves
77 * unstable without higher voltages. Hence, set higher voltages here.
78 */
79 operating-points = <
80 /* kHz uV */
81 996000 1250000
82 792000 1175000
83 396000 1175000
84 198000 1175000
85 >;
86 fsl,soc-operating-points = <
87 /* ARM kHz SOC uV */
88 996000 1250000
89 792000 1175000
90 396000 1175000
91 198000 1175000
92 >;
93};
94
95&ecspi4 {
96 pinctrl-names = "default";
97 pinctrl-0 = <&pinctrl_ecspi4>;
98 cs-gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
99 status = "okay";
100};
101
102&fec1 {
103 pinctrl-names = "default";
104 pinctrl-0 = <&pinctrl_enet1>;
105 phy-supply = <&reg_peri_3v3>;
106 phy-reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
107 phy-reset-duration = <5>;
108 phy-mode = "rmii";
109 phy-handle = <&ethphy0>;
110 status = "okay";
111
112 mdio {
113 #address-cells = <1>;
114 #size-cells = <0>;
115
116 ethphy0: ethernet0-phy@0 {
117 reg = <0>;
118 max-speed = <100>;
119 interrupt-parent = <&gpio2>;
120 interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
121 };
122 };
123};
124
125&fec2 {
126 pinctrl-names = "default";
127 pinctrl-0 = <&pinctrl_enet2>;
128 phy-supply = <&reg_peri_3v3>;
129 phy-reset-gpios = <&gpio5 21 GPIO_ACTIVE_LOW>;
130 phy-reset-duration = <5>;
131 phy-mode = "rmii";
132 phy-handle = <&ethphy1>;
133 status = "okay";
134
135 mdio {
136 #address-cells = <1>;
137 #size-cells = <0>;
138
139 ethphy1: ethernet1-phy@0 {
140 reg = <0>;
141 max-speed = <100>;
142 interrupt-parent = <&gpio2>;
143 interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
144 };
145 };
146};
147
148&flexcan1 {
149 pinctrl-names = "default";
150 pinctrl-0 = <&pinctrl_flexcan1>;
151 status = "okay";
152};
153
154&flexcan2 {
155 pinctrl-names = "default";
156 pinctrl-0 = <&pinctrl_flexcan2>;
157 status = "okay";
158};
159
160&i2c1 {
161 clock-frequency = <100000>;
162 pinctrl-names = "default";
163 pinctrl-0 = <&pinctrl_i2c1>;
164 status = "okay";
165
166 proximity: sx9500@28 {
167 compatible = "semtech,sx9500";
168 reg = <0x28>;
169 pinctrl-names = "default";
170 pinctrl-0 = <&pinctrl_sx9500>;
171 interrupt-parent = <&gpio2>;
172 interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
173 reset-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
174 };
175
176 pmic: pfuze100@8 {
177 compatible = "fsl,pfuze200";
178 reg = <0x08>;
179
180 regulators {
181 sw1a_reg: sw1ab {
182 regulator-min-microvolt = <300000>;
183 regulator-max-microvolt = <1875000>;
184 regulator-boot-on;
185 regulator-always-on;
186 regulator-ramp-delay = <6250>;
187 };
188
189 sw2_reg: sw2 {
190 regulator-min-microvolt = <800000>;
191 regulator-max-microvolt = <3300000>;
192 regulator-boot-on;
193 regulator-always-on;
194 };
195
196 sw3a_reg: sw3a {
197 regulator-min-microvolt = <400000>;
198 regulator-max-microvolt = <1975000>;
199 regulator-boot-on;
200 regulator-always-on;
201 };
202
203 sw3b_reg: sw3b {
204 regulator-min-microvolt = <400000>;
205 regulator-max-microvolt = <1975000>;
206 regulator-boot-on;
207 regulator-always-on;
208 };
209
210 snvs_reg: vsnvs {
211 regulator-min-microvolt = <1000000>;
212 regulator-max-microvolt = <3000000>;
213 regulator-boot-on;
214 regulator-always-on;
215 };
216
217 vref_reg: vrefddr {
218 regulator-boot-on;
219 regulator-always-on;
220 };
221
222 vgen1_reg: vgen1 {
223 regulator-min-microvolt = <800000>;
224 regulator-max-microvolt = <1550000>;
225 regulator-always-on;
226 };
227
228 vgen2_reg: vgen2 {
229 regulator-min-microvolt = <800000>;
230 regulator-max-microvolt = <1550000>;
231 };
232
233 vgen3_reg: vgen3 {
234 regulator-min-microvolt = <1800000>;
235 regulator-max-microvolt = <3300000>;
236 regulator-always-on;
237 };
238
239 vgen4_reg: vgen4 {
240 regulator-min-microvolt = <1800000>;
241 regulator-max-microvolt = <3300000>;
242 regulator-always-on;
243 };
244
245 vgen5_reg: vgen5 {
246 regulator-min-microvolt = <1800000>;
247 regulator-max-microvolt = <3300000>;
248 regulator-always-on;
249 };
250
251 vgen6_reg: vgen6 {
252 regulator-min-microvolt = <1800000>;
253 regulator-max-microvolt = <3300000>;
254 regulator-always-on;
255 };
256 };
257 };
258};
259
260&i2c3 {
261 clock-frequency = <100000>;
262 pinctrl-names = "default";
263 pinctrl-0 = <&pinctrl_i2c3>;
264 status = "okay";
265};
266
267&iomuxc {
268 pinctrl-names = "default";
269 pinctrl-0 = <&pinctrl_gpios>;
270
271 pinctrl_ecspi4: ecspi4grp {
272 fsl,pins = <
273 MX6SX_PAD_SD3_CLK__ECSPI4_SCLK 0x130b1
274 MX6SX_PAD_SD3_DATA3__ECSPI4_MISO 0x130b1
275 MX6SX_PAD_SD3_CMD__ECSPI4_MOSI 0x130b1
276 MX6SX_PAD_SD3_DATA2__GPIO7_IO_4 0x30b0
277 >;
278 };
279
280 pinctrl_enet1: enet1grp {
281 fsl,pins = <
282 MX6SX_PAD_RGMII1_RD0__ENET1_RX_DATA_0 0x30c1
283 MX6SX_PAD_RGMII1_RD1__ENET1_RX_DATA_1 0x30c1
284 MX6SX_PAD_RGMII1_TD0__ENET1_TX_DATA_0 0xa0f9
285 MX6SX_PAD_RGMII1_TD1__ENET1_TX_DATA_1 0xa0f9
286 MX6SX_PAD_RGMII1_RX_CTL__ENET1_RX_EN 0x30c1
287 MX6SX_PAD_RGMII1_TX_CTL__ENET1_TX_EN 0xa0f9
288 MX6SX_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4000a038
289 /* LAN8720 PHY Reset */
290 MX6SX_PAD_RGMII1_TD3__GPIO5_IO_9 0x10b0
291 /* MDIO */
292 MX6SX_PAD_ENET1_MDC__ENET1_MDC 0xa0f9
293 MX6SX_PAD_ENET1_MDIO__ENET1_MDIO 0xa0f9
294 /* IRQ from PHY */
295 MX6SX_PAD_KEY_ROW2__GPIO2_IO_17 0x10b0
296 >;
297 };
298
299 pinctrl_enet2: enet2grp {
300 fsl,pins = <
301 MX6SX_PAD_RGMII2_TD0__ENET2_TX_DATA_0 0x1b0b0
302 MX6SX_PAD_RGMII2_TD1__ENET2_TX_DATA_1 0x1b0b0
303 MX6SX_PAD_RGMII2_RD0__ENET2_RX_DATA_0 0x1b0b0
304 MX6SX_PAD_RGMII2_RD1__ENET2_RX_DATA_1 0x1b0b0
305 MX6SX_PAD_RGMII2_RX_CTL__ENET2_RX_EN 0x1b0b0
306 MX6SX_PAD_RGMII2_TX_CTL__ENET2_TX_EN 0x1b0b0
307 MX6SX_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4000a038
308 /* LAN8720 PHY Reset */
309 MX6SX_PAD_RGMII2_TD3__GPIO5_IO_21 0x10b0
310 /* MDIO */
311 MX6SX_PAD_ENET1_COL__ENET2_MDC 0xa0f9
312 MX6SX_PAD_ENET1_CRS__ENET2_MDIO 0xa0f9
313 /* IRQ from PHY */
314 MX6SX_PAD_KEY_ROW4__GPIO2_IO_19 0x10b0
315 >;
316 };
317
318 pinctrl_flexcan1: flexcan1grp {
319 fsl,pins = <
320 MX6SX_PAD_QSPI1B_DQS__CAN1_TX 0x1b0b0
321 MX6SX_PAD_QSPI1A_SS1_B__CAN1_RX 0x1b0b0
322 >;
323 };
324
325 pinctrl_flexcan2: flexcan2grp {
326 fsl,pins = <
327 MX6SX_PAD_QSPI1B_SS1_B__CAN2_RX 0x1b0b0
328 MX6SX_PAD_QSPI1A_DQS__CAN2_TX 0x1b0b0
329 >;
330 };
331
332 pinctrl_gpios: gpiosgrp {
333 fsl,pins = <
334 /* reset external uC */
335 MX6SX_PAD_QSPI1A_DATA3__GPIO4_IO_19 0x10b0
336 /* IRQ from external uC */
337 MX6SX_PAD_KEY_ROW0__GPIO2_IO_15 0x10b0
338 /* overcurrent detection */
339 MX6SX_PAD_GPIO1_IO08__GPIO1_IO_8 0x10b0
340 >;
341 };
342
343 pinctrl_i2c1: i2c1grp {
344 fsl,pins = <
345 MX6SX_PAD_GPIO1_IO01__I2C1_SDA 0x4001b8b1
346 MX6SX_PAD_GPIO1_IO00__I2C1_SCL 0x4001b8b1
347 >;
348 };
349
350 pinctrl_i2c3: i2c3grp {
351 fsl,pins = <
352 MX6SX_PAD_NAND_ALE__I2C3_SDA 0x4001b8b1
353 MX6SX_PAD_NAND_CLE__I2C3_SCL 0x4001b8b1
354 >;
355 };
356
357 pinctrl_pwm1: pwm1grp-1 {
358 fsl,pins = <
359 /* blue LED */
360 MX6SX_PAD_RGMII2_RD3__PWM1_OUT 0x1b0b1
361 >;
362 };
363
364 pinctrl_pwm2: pwm2grp-1 {
365 fsl,pins = <
366 /* green LED */
367 MX6SX_PAD_RGMII2_RD2__PWM2_OUT 0x1b0b1
368 >;
369 };
370
371 pinctrl_pwm6: pwm6grp-1 {
372 fsl,pins = <
373 /* red LED */
374 MX6SX_PAD_RGMII2_TD2__PWM6_OUT 0x1b0b1
375 >;
376 };
377
378 pinctrl_sx9500: sx9500grp {
379 fsl,pins = <
380 /* Reset */
381 MX6SX_PAD_KEY_COL0__GPIO2_IO_10 0x838
382 /* IRQ */
383 MX6SX_PAD_KEY_ROW1__GPIO2_IO_16 0x70e0
384 >;
385 };
386
387 pinctrl_uart1: uart1grp {
388 fsl,pins = <
389 MX6SX_PAD_GPIO1_IO04__UART1_TX 0x1b0b1
390 MX6SX_PAD_GPIO1_IO05__UART1_RX 0x1b0b1
391 >;
392 };
393
394 pinctrl_uart2: uart2grp {
395 fsl,pins = <
396 MX6SX_PAD_GPIO1_IO06__UART2_TX 0x1b0b1
397 MX6SX_PAD_GPIO1_IO07__UART2_RX 0x1b0b1
398 >;
399 };
400
401 pinctrl_usb_otg1: usbotg1grp {
402 fsl,pins = <
403 MX6SX_PAD_GPIO1_IO09__GPIO1_IO_9 0x10b0
404 >;
405 };
406
407 pinctrl_usb_otg1_id: usbotg1idgrp {
408 fsl,pins = <
409 MX6SX_PAD_GPIO1_IO10__ANATOP_OTG1_ID 0x17059
410 >;
411 };
412
413 pinctrl_usdhc2_50mhz: usdhc2grp-50mhz {
414 fsl,pins = <
415 MX6SX_PAD_SD2_CLK__USDHC2_CLK 0x10059
416 MX6SX_PAD_SD2_CMD__USDHC2_CMD 0x17059
417 MX6SX_PAD_SD2_DATA0__USDHC2_DATA0 0x17059
418 MX6SX_PAD_SD2_DATA1__USDHC2_DATA1 0x17059
419 MX6SX_PAD_SD2_DATA2__USDHC2_DATA2 0x17059
420 MX6SX_PAD_SD2_DATA3__USDHC2_DATA3 0x17059
421 MX6SX_PAD_LCD1_VSYNC__GPIO3_IO_28 0x1b000
422 MX6SX_PAD_LCD1_HSYNC__GPIO3_IO_26 0x10b0
423 >;
424 };
425
426 pinctrl_usdhc2_100mhz: usdhc2grp-100mhz {
427 fsl,pins = <
428 MX6SX_PAD_SD2_CLK__USDHC2_CLK 0x100b9
429 MX6SX_PAD_SD2_CMD__USDHC2_CMD 0x170b9
430 MX6SX_PAD_SD2_DATA0__USDHC2_DATA0 0x170b9
431 MX6SX_PAD_SD2_DATA1__USDHC2_DATA1 0x170b9
432 MX6SX_PAD_SD2_DATA2__USDHC2_DATA2 0x170b9
433 MX6SX_PAD_SD2_DATA3__USDHC2_DATA3 0x170b9
434 >;
435 };
436
437 pinctrl_usdhc2_200mhz: usdhc2grp-200mhz {
438 fsl,pins = <
439 MX6SX_PAD_SD2_CLK__USDHC2_CLK 0x100f9
440 MX6SX_PAD_SD2_CMD__USDHC2_CMD 0x170f9
441 MX6SX_PAD_SD2_DATA0__USDHC2_DATA0 0x170f9
442 MX6SX_PAD_SD2_DATA1__USDHC2_DATA1 0x170f9
443 MX6SX_PAD_SD2_DATA2__USDHC2_DATA2 0x170f9
444 MX6SX_PAD_SD2_DATA3__USDHC2_DATA3 0x170f9
445 >;
446 };
447
448 pinctrl_usdhc4_50mhz: usdhc4grp-50mhz {
449 fsl,pins = <
450 MX6SX_PAD_SD4_CLK__USDHC4_CLK 0x10059
451 MX6SX_PAD_SD4_CMD__USDHC4_CMD 0x17059
452 MX6SX_PAD_SD4_DATA0__USDHC4_DATA0 0x17059
453 MX6SX_PAD_SD4_DATA1__USDHC4_DATA1 0x17059
454 MX6SX_PAD_SD4_DATA2__USDHC4_DATA2 0x17059
455 MX6SX_PAD_SD4_DATA3__USDHC4_DATA3 0x17059
456 MX6SX_PAD_SD4_DATA4__USDHC4_DATA4 0x17059
457 MX6SX_PAD_SD4_DATA5__USDHC4_DATA5 0x17059
458 MX6SX_PAD_SD4_DATA6__USDHC4_DATA6 0x17059
459 MX6SX_PAD_SD4_DATA7__USDHC4_DATA7 0x17059
460 MX6SX_PAD_SD4_RESET_B__USDHC4_RESET_B 0x17068
461 >;
462 };
463
464 pinctrl_usdhc4_100mhz: usdhc4-100mhz {
465 fsl,pins = <
466 MX6SX_PAD_SD4_CLK__USDHC4_CLK 0x100b9
467 MX6SX_PAD_SD4_CMD__USDHC4_CMD 0x170b9
468 MX6SX_PAD_SD4_DATA0__USDHC4_DATA0 0x170b9
469 MX6SX_PAD_SD4_DATA1__USDHC4_DATA1 0x170b9
470 MX6SX_PAD_SD4_DATA2__USDHC4_DATA2 0x170b9
471 MX6SX_PAD_SD4_DATA3__USDHC4_DATA3 0x170b9
472 MX6SX_PAD_SD4_DATA4__USDHC4_DATA4 0x170b9
473 MX6SX_PAD_SD4_DATA5__USDHC4_DATA5 0x170b9
474 MX6SX_PAD_SD4_DATA6__USDHC4_DATA6 0x170b9
475 MX6SX_PAD_SD4_DATA7__USDHC4_DATA7 0x170b9
476 >;
477 };
478
479 pinctrl_usdhc4_200mhz: usdhc4-200mhz {
480 fsl,pins = <
481 MX6SX_PAD_SD4_CLK__USDHC4_CLK 0x100f9
482 MX6SX_PAD_SD4_CMD__USDHC4_CMD 0x170f9
483 MX6SX_PAD_SD4_DATA0__USDHC4_DATA0 0x170f9
484 MX6SX_PAD_SD4_DATA1__USDHC4_DATA1 0x170f9
485 MX6SX_PAD_SD4_DATA2__USDHC4_DATA2 0x170f9
486 MX6SX_PAD_SD4_DATA3__USDHC4_DATA3 0x170f9
487 MX6SX_PAD_SD4_DATA4__USDHC4_DATA4 0x170f9
488 MX6SX_PAD_SD4_DATA5__USDHC4_DATA5 0x170f9
489 MX6SX_PAD_SD4_DATA6__USDHC4_DATA6 0x170f9
490 MX6SX_PAD_SD4_DATA7__USDHC4_DATA7 0x170f9
491 >;
492 };
493};
494
495&pwm1 {
496 pinctrl-names = "default";
497 pinctrl-0 = <&pinctrl_pwm1>;
498 status = "okay";
499};
500
501&pwm2 {
502 pinctrl-names = "default";
503 pinctrl-0 = <&pinctrl_pwm2>;
504 status = "okay";
505};
506
507&pwm6 {
508 pinctrl-names = "default";
509 pinctrl-0 = <&pinctrl_pwm6>;
510 status = "okay";
511};
512
513&reg_arm {
514 vin-supply = <&sw1a_reg>;
515};
516
517&reg_soc {
518 vin-supply = <&sw1a_reg>;
519};
520
521&snvs_poweroff {
522 status = "okay";
523};
524
525&uart1 {
526 pinctrl-names = "default";
527 pinctrl-0 = <&pinctrl_uart1>;
528 status = "okay";
529};
530
531&uart2 {
532 pinctrl-names = "default";
533 pinctrl-0 = <&pinctrl_uart2>;
534 status = "okay";
535};
536
537&usbotg1 {
538 vbus-supply = <&reg_usb_otg1_vbus>;
539 pinctrl-names = "default";
540 pinctrl-0 = <&pinctrl_usb_otg1_id>;
541 status = "okay";
542};
543
544&usbotg2 {
545 dr_mode = "host";
546 status = "okay";
547};
548
549&usdhc2 {
550 pinctrl-names = "default", "state_100mhz", "state_200mhz";
551 pinctrl-0 = <&pinctrl_usdhc2_50mhz>;
552 pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
553 pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
554 cd-gpios = <&gpio3 28 GPIO_ACTIVE_LOW>;
555 keep-power-in-suspend;
556 status = "okay";
557};
558
559&usdhc4 {
560 /* hs200-mode is currently unsupported because Vccq is on 3.1V, but
561 * not on necessary 1.8V.
562 */
563 pinctrl-names = "default", "state_100mhz", "state_200mhz";
564 pinctrl-0 = <&pinctrl_usdhc4_50mhz>;
565 pinctrl-1 = <&pinctrl_usdhc4_100mhz>;
566 pinctrl-2 = <&pinctrl_usdhc4_200mhz>;
567 bus-width = <8>;
568 keep-power-in-suspend;
569 non-removable;
570 cap-mmc-hw-reset;
571 status = "okay";
572};
diff --git a/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi b/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi
index dcfc97591433..53b3eac94f0d 100644
--- a/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi
+++ b/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi
@@ -135,7 +135,7 @@
135 clock-frequency = <100000>; 135 clock-frequency = <100000>;
136 status = "okay"; 136 status = "okay";
137 137
138 pmic: pmic@08 { 138 pmic: pmic@8 {
139 compatible = "fsl,pfuze3000"; 139 compatible = "fsl,pfuze3000";
140 reg = <0x08>; 140 reg = <0x08>;
141 141
diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi
index 6c7eb54be9e2..5b03ba3beda9 100644
--- a/arch/arm/boot/dts/imx6sx.dtsi
+++ b/arch/arm/boot/dts/imx6sx.dtsi
@@ -95,7 +95,7 @@
95 }; 95 };
96 }; 96 };
97 97
98 intc: interrupt-controller@00a01000 { 98 intc: interrupt-controller@a01000 {
99 compatible = "arm,cortex-a9-gic"; 99 compatible = "arm,cortex-a9-gic";
100 #interrupt-cells = <3>; 100 #interrupt-cells = <3>;
101 interrupt-controller; 101 interrupt-controller;
@@ -153,13 +153,13 @@
153 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 153 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
154 }; 154 };
155 155
156 ocram: sram@00900000 { 156 ocram: sram@900000 {
157 compatible = "mmio-sram"; 157 compatible = "mmio-sram";
158 reg = <0x00900000 0x20000>; 158 reg = <0x00900000 0x20000>;
159 clocks = <&clks IMX6SX_CLK_OCRAM>; 159 clocks = <&clks IMX6SX_CLK_OCRAM>;
160 }; 160 };
161 161
162 L2: l2-cache@00a02000 { 162 L2: l2-cache@a02000 {
163 compatible = "arm,pl310-cache"; 163 compatible = "arm,pl310-cache";
164 reg = <0x00a02000 0x1000>; 164 reg = <0x00a02000 0x1000>;
165 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 165 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
@@ -169,7 +169,7 @@
169 arm,data-latency = <4 2 3>; 169 arm,data-latency = <4 2 3>;
170 }; 170 };
171 171
172 gpu: gpu@01800000 { 172 gpu: gpu@1800000 {
173 compatible = "vivante,gc"; 173 compatible = "vivante,gc";
174 reg = <0x01800000 0x4000>; 174 reg = <0x01800000 0x4000>;
175 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 175 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
@@ -179,7 +179,7 @@
179 clock-names = "bus", "core", "shader"; 179 clock-names = "bus", "core", "shader";
180 }; 180 };
181 181
182 dma_apbh: dma-apbh@01804000 { 182 dma_apbh: dma-apbh@1804000 {
183 compatible = "fsl,imx6sx-dma-apbh", "fsl,imx28-dma-apbh"; 183 compatible = "fsl,imx6sx-dma-apbh", "fsl,imx28-dma-apbh";
184 reg = <0x01804000 0x2000>; 184 reg = <0x01804000 0x2000>;
185 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, 185 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
@@ -192,7 +192,7 @@
192 clocks = <&clks IMX6SX_CLK_APBH_DMA>; 192 clocks = <&clks IMX6SX_CLK_APBH_DMA>;
193 }; 193 };
194 194
195 gpmi: gpmi-nand@01806000{ 195 gpmi: gpmi-nand@1806000{
196 compatible = "fsl,imx6sx-gpmi-nand"; 196 compatible = "fsl,imx6sx-gpmi-nand";
197 #address-cells = <1>; 197 #address-cells = <1>;
198 #size-cells = <1>; 198 #size-cells = <1>;
@@ -212,21 +212,21 @@
212 status = "disabled"; 212 status = "disabled";
213 }; 213 };
214 214
215 aips1: aips-bus@02000000 { 215 aips1: aips-bus@2000000 {
216 compatible = "fsl,aips-bus", "simple-bus"; 216 compatible = "fsl,aips-bus", "simple-bus";
217 #address-cells = <1>; 217 #address-cells = <1>;
218 #size-cells = <1>; 218 #size-cells = <1>;
219 reg = <0x02000000 0x100000>; 219 reg = <0x02000000 0x100000>;
220 ranges; 220 ranges;
221 221
222 spba-bus@02000000 { 222 spba-bus@2000000 {
223 compatible = "fsl,spba-bus", "simple-bus"; 223 compatible = "fsl,spba-bus", "simple-bus";
224 #address-cells = <1>; 224 #address-cells = <1>;
225 #size-cells = <1>; 225 #size-cells = <1>;
226 reg = <0x02000000 0x40000>; 226 reg = <0x02000000 0x40000>;
227 ranges; 227 ranges;
228 228
229 spdif: spdif@02004000 { 229 spdif: spdif@2004000 {
230 compatible = "fsl,imx6sx-spdif", "fsl,imx35-spdif"; 230 compatible = "fsl,imx6sx-spdif", "fsl,imx35-spdif";
231 reg = <0x02004000 0x4000>; 231 reg = <0x02004000 0x4000>;
232 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 232 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
@@ -248,7 +248,7 @@
248 status = "disabled"; 248 status = "disabled";
249 }; 249 };
250 250
251 ecspi1: ecspi@02008000 { 251 ecspi1: ecspi@2008000 {
252 #address-cells = <1>; 252 #address-cells = <1>;
253 #size-cells = <0>; 253 #size-cells = <0>;
254 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi"; 254 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
@@ -260,7 +260,7 @@
260 status = "disabled"; 260 status = "disabled";
261 }; 261 };
262 262
263 ecspi2: ecspi@0200c000 { 263 ecspi2: ecspi@200c000 {
264 #address-cells = <1>; 264 #address-cells = <1>;
265 #size-cells = <0>; 265 #size-cells = <0>;
266 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi"; 266 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
@@ -272,7 +272,7 @@
272 status = "disabled"; 272 status = "disabled";
273 }; 273 };
274 274
275 ecspi3: ecspi@02010000 { 275 ecspi3: ecspi@2010000 {
276 #address-cells = <1>; 276 #address-cells = <1>;
277 #size-cells = <0>; 277 #size-cells = <0>;
278 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi"; 278 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
@@ -284,7 +284,7 @@
284 status = "disabled"; 284 status = "disabled";
285 }; 285 };
286 286
287 ecspi4: ecspi@02014000 { 287 ecspi4: ecspi@2014000 {
288 #address-cells = <1>; 288 #address-cells = <1>;
289 #size-cells = <0>; 289 #size-cells = <0>;
290 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi"; 290 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
@@ -296,7 +296,7 @@
296 status = "disabled"; 296 status = "disabled";
297 }; 297 };
298 298
299 uart1: serial@02020000 { 299 uart1: serial@2020000 {
300 compatible = "fsl,imx6sx-uart", 300 compatible = "fsl,imx6sx-uart",
301 "fsl,imx6q-uart", "fsl,imx21-uart"; 301 "fsl,imx6q-uart", "fsl,imx21-uart";
302 reg = <0x02020000 0x4000>; 302 reg = <0x02020000 0x4000>;
@@ -309,7 +309,7 @@
309 status = "disabled"; 309 status = "disabled";
310 }; 310 };
311 311
312 esai: esai@02024000 { 312 esai: esai@2024000 {
313 reg = <0x02024000 0x4000>; 313 reg = <0x02024000 0x4000>;
314 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 314 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
315 clocks = <&clks IMX6SX_CLK_ESAI_IPG>, 315 clocks = <&clks IMX6SX_CLK_ESAI_IPG>,
@@ -322,7 +322,7 @@
322 status = "disabled"; 322 status = "disabled";
323 }; 323 };
324 324
325 ssi1: ssi@02028000 { 325 ssi1: ssi@2028000 {
326 #sound-dai-cells = <0>; 326 #sound-dai-cells = <0>;
327 compatible = "fsl,imx6sx-ssi", "fsl,imx51-ssi"; 327 compatible = "fsl,imx6sx-ssi", "fsl,imx51-ssi";
328 reg = <0x02028000 0x4000>; 328 reg = <0x02028000 0x4000>;
@@ -336,7 +336,7 @@
336 status = "disabled"; 336 status = "disabled";
337 }; 337 };
338 338
339 ssi2: ssi@0202c000 { 339 ssi2: ssi@202c000 {
340 #sound-dai-cells = <0>; 340 #sound-dai-cells = <0>;
341 compatible = "fsl,imx6sx-ssi", "fsl,imx51-ssi"; 341 compatible = "fsl,imx6sx-ssi", "fsl,imx51-ssi";
342 reg = <0x0202c000 0x4000>; 342 reg = <0x0202c000 0x4000>;
@@ -350,7 +350,7 @@
350 status = "disabled"; 350 status = "disabled";
351 }; 351 };
352 352
353 ssi3: ssi@02030000 { 353 ssi3: ssi@2030000 {
354 #sound-dai-cells = <0>; 354 #sound-dai-cells = <0>;
355 compatible = "fsl,imx6sx-ssi", "fsl,imx51-ssi"; 355 compatible = "fsl,imx6sx-ssi", "fsl,imx51-ssi";
356 reg = <0x02030000 0x4000>; 356 reg = <0x02030000 0x4000>;
@@ -364,7 +364,7 @@
364 status = "disabled"; 364 status = "disabled";
365 }; 365 };
366 366
367 asrc: asrc@02034000 { 367 asrc: asrc@2034000 {
368 reg = <0x02034000 0x4000>; 368 reg = <0x02034000 0x4000>;
369 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 369 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
370 clocks = <&clks IMX6SX_CLK_ASRC_MEM>, 370 clocks = <&clks IMX6SX_CLK_ASRC_MEM>,
@@ -381,7 +381,7 @@
381 }; 381 };
382 }; 382 };
383 383
384 pwm1: pwm@02080000 { 384 pwm1: pwm@2080000 {
385 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm"; 385 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
386 reg = <0x02080000 0x4000>; 386 reg = <0x02080000 0x4000>;
387 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 387 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
@@ -391,7 +391,7 @@
391 #pwm-cells = <2>; 391 #pwm-cells = <2>;
392 }; 392 };
393 393
394 pwm2: pwm@02084000 { 394 pwm2: pwm@2084000 {
395 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm"; 395 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
396 reg = <0x02084000 0x4000>; 396 reg = <0x02084000 0x4000>;
397 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 397 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
@@ -401,7 +401,7 @@
401 #pwm-cells = <2>; 401 #pwm-cells = <2>;
402 }; 402 };
403 403
404 pwm3: pwm@02088000 { 404 pwm3: pwm@2088000 {
405 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm"; 405 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
406 reg = <0x02088000 0x4000>; 406 reg = <0x02088000 0x4000>;
407 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 407 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
@@ -411,7 +411,7 @@
411 #pwm-cells = <2>; 411 #pwm-cells = <2>;
412 }; 412 };
413 413
414 pwm4: pwm@0208c000 { 414 pwm4: pwm@208c000 {
415 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm"; 415 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
416 reg = <0x0208c000 0x4000>; 416 reg = <0x0208c000 0x4000>;
417 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 417 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
@@ -421,7 +421,7 @@
421 #pwm-cells = <2>; 421 #pwm-cells = <2>;
422 }; 422 };
423 423
424 flexcan1: can@02090000 { 424 flexcan1: can@2090000 {
425 compatible = "fsl,imx6sx-flexcan", "fsl,imx6q-flexcan"; 425 compatible = "fsl,imx6sx-flexcan", "fsl,imx6q-flexcan";
426 reg = <0x02090000 0x4000>; 426 reg = <0x02090000 0x4000>;
427 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 427 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
@@ -431,7 +431,7 @@
431 status = "disabled"; 431 status = "disabled";
432 }; 432 };
433 433
434 flexcan2: can@02094000 { 434 flexcan2: can@2094000 {
435 compatible = "fsl,imx6sx-flexcan", "fsl,imx6q-flexcan"; 435 compatible = "fsl,imx6sx-flexcan", "fsl,imx6q-flexcan";
436 reg = <0x02094000 0x4000>; 436 reg = <0x02094000 0x4000>;
437 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 437 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
@@ -441,7 +441,7 @@
441 status = "disabled"; 441 status = "disabled";
442 }; 442 };
443 443
444 gpt: gpt@02098000 { 444 gpt: gpt@2098000 {
445 compatible = "fsl,imx6sx-gpt", "fsl,imx31-gpt"; 445 compatible = "fsl,imx6sx-gpt", "fsl,imx31-gpt";
446 reg = <0x02098000 0x4000>; 446 reg = <0x02098000 0x4000>;
447 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 447 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
@@ -450,7 +450,7 @@
450 clock-names = "ipg", "per"; 450 clock-names = "ipg", "per";
451 }; 451 };
452 452
453 gpio1: gpio@0209c000 { 453 gpio1: gpio@209c000 {
454 compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio"; 454 compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
455 reg = <0x0209c000 0x4000>; 455 reg = <0x0209c000 0x4000>;
456 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, 456 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
@@ -462,7 +462,7 @@
462 gpio-ranges = <&iomuxc 0 5 26>; 462 gpio-ranges = <&iomuxc 0 5 26>;
463 }; 463 };
464 464
465 gpio2: gpio@020a0000 { 465 gpio2: gpio@20a0000 {
466 compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio"; 466 compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
467 reg = <0x020a0000 0x4000>; 467 reg = <0x020a0000 0x4000>;
468 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 468 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
@@ -474,7 +474,7 @@
474 gpio-ranges = <&iomuxc 0 31 20>; 474 gpio-ranges = <&iomuxc 0 31 20>;
475 }; 475 };
476 476
477 gpio3: gpio@020a4000 { 477 gpio3: gpio@20a4000 {
478 compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio"; 478 compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
479 reg = <0x020a4000 0x4000>; 479 reg = <0x020a4000 0x4000>;
480 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, 480 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
@@ -486,7 +486,7 @@
486 gpio-ranges = <&iomuxc 0 51 29>; 486 gpio-ranges = <&iomuxc 0 51 29>;
487 }; 487 };
488 488
489 gpio4: gpio@020a8000 { 489 gpio4: gpio@20a8000 {
490 compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio"; 490 compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
491 reg = <0x020a8000 0x4000>; 491 reg = <0x020a8000 0x4000>;
492 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 492 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
@@ -498,7 +498,7 @@
498 gpio-ranges = <&iomuxc 0 80 32>; 498 gpio-ranges = <&iomuxc 0 80 32>;
499 }; 499 };
500 500
501 gpio5: gpio@020ac000 { 501 gpio5: gpio@20ac000 {
502 compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio"; 502 compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
503 reg = <0x020ac000 0x4000>; 503 reg = <0x020ac000 0x4000>;
504 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>, 504 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
@@ -510,7 +510,7 @@
510 gpio-ranges = <&iomuxc 0 112 24>; 510 gpio-ranges = <&iomuxc 0 112 24>;
511 }; 511 };
512 512
513 gpio6: gpio@020b0000 { 513 gpio6: gpio@20b0000 {
514 compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio"; 514 compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
515 reg = <0x020b0000 0x4000>; 515 reg = <0x020b0000 0x4000>;
516 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>, 516 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
@@ -522,7 +522,7 @@
522 gpio-ranges = <&iomuxc 0 136 12>, <&iomuxc 12 158 11>; 522 gpio-ranges = <&iomuxc 0 136 12>, <&iomuxc 12 158 11>;
523 }; 523 };
524 524
525 gpio7: gpio@020b4000 { 525 gpio7: gpio@20b4000 {
526 compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio"; 526 compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
527 reg = <0x020b4000 0x4000>; 527 reg = <0x020b4000 0x4000>;
528 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>, 528 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
@@ -534,7 +534,7 @@
534 gpio-ranges = <&iomuxc 0 148 10>, <&iomuxc 10 169 2>; 534 gpio-ranges = <&iomuxc 0 148 10>, <&iomuxc 10 169 2>;
535 }; 535 };
536 536
537 kpp: kpp@020b8000 { 537 kpp: kpp@20b8000 {
538 compatible = "fsl,imx6sx-kpp", "fsl,imx21-kpp"; 538 compatible = "fsl,imx6sx-kpp", "fsl,imx21-kpp";
539 reg = <0x020b8000 0x4000>; 539 reg = <0x020b8000 0x4000>;
540 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 540 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
@@ -542,14 +542,14 @@
542 status = "disabled"; 542 status = "disabled";
543 }; 543 };
544 544
545 wdog1: wdog@020bc000 { 545 wdog1: wdog@20bc000 {
546 compatible = "fsl,imx6sx-wdt", "fsl,imx21-wdt"; 546 compatible = "fsl,imx6sx-wdt", "fsl,imx21-wdt";
547 reg = <0x020bc000 0x4000>; 547 reg = <0x020bc000 0x4000>;
548 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 548 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
549 clocks = <&clks IMX6SX_CLK_DUMMY>; 549 clocks = <&clks IMX6SX_CLK_DUMMY>;
550 }; 550 };
551 551
552 wdog2: wdog@020c0000 { 552 wdog2: wdog@20c0000 {
553 compatible = "fsl,imx6sx-wdt", "fsl,imx21-wdt"; 553 compatible = "fsl,imx6sx-wdt", "fsl,imx21-wdt";
554 reg = <0x020c0000 0x4000>; 554 reg = <0x020c0000 0x4000>;
555 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 555 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
@@ -557,7 +557,7 @@
557 status = "disabled"; 557 status = "disabled";
558 }; 558 };
559 559
560 clks: ccm@020c4000 { 560 clks: ccm@20c4000 {
561 compatible = "fsl,imx6sx-ccm"; 561 compatible = "fsl,imx6sx-ccm";
562 reg = <0x020c4000 0x4000>; 562 reg = <0x020c4000 0x4000>;
563 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, 563 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
@@ -567,7 +567,7 @@
567 clock-names = "ckil", "osc", "ipp_di0", "ipp_di1"; 567 clock-names = "ckil", "osc", "ipp_di0", "ipp_di1";
568 }; 568 };
569 569
570 anatop: anatop@020c8000 { 570 anatop: anatop@20c8000 {
571 compatible = "fsl,imx6sx-anatop", "fsl,imx6q-anatop", 571 compatible = "fsl,imx6sx-anatop", "fsl,imx6q-anatop",
572 "syscon", "simple-bus"; 572 "syscon", "simple-bus";
573 reg = <0x020c8000 0x1000>; 573 reg = <0x020c8000 0x1000>;
@@ -675,11 +675,12 @@
675 compatible = "fsl,imx6sx-tempmon", "fsl,imx6q-tempmon"; 675 compatible = "fsl,imx6sx-tempmon", "fsl,imx6q-tempmon";
676 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 676 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
677 fsl,tempmon = <&anatop>; 677 fsl,tempmon = <&anatop>;
678 fsl,tempmon-data = <&ocotp>; 678 nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
679 nvmem-cell-names = "calib", "temp_grade";
679 clocks = <&clks IMX6SX_CLK_PLL3_USB_OTG>; 680 clocks = <&clks IMX6SX_CLK_PLL3_USB_OTG>;
680 }; 681 };
681 682
682 usbphy1: usbphy@020c9000 { 683 usbphy1: usbphy@20c9000 {
683 compatible = "fsl,imx6sx-usbphy", "fsl,imx23-usbphy"; 684 compatible = "fsl,imx6sx-usbphy", "fsl,imx23-usbphy";
684 reg = <0x020c9000 0x1000>; 685 reg = <0x020c9000 0x1000>;
685 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 686 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
@@ -687,7 +688,7 @@
687 fsl,anatop = <&anatop>; 688 fsl,anatop = <&anatop>;
688 }; 689 };
689 690
690 usbphy2: usbphy@020ca000 { 691 usbphy2: usbphy@20ca000 {
691 compatible = "fsl,imx6sx-usbphy", "fsl,imx23-usbphy"; 692 compatible = "fsl,imx6sx-usbphy", "fsl,imx23-usbphy";
692 reg = <0x020ca000 0x1000>; 693 reg = <0x020ca000 0x1000>;
693 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 694 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
@@ -695,7 +696,7 @@
695 fsl,anatop = <&anatop>; 696 fsl,anatop = <&anatop>;
696 }; 697 };
697 698
698 snvs: snvs@020cc000 { 699 snvs: snvs@20cc000 {
699 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd"; 700 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
700 reg = <0x020cc000 0x4000>; 701 reg = <0x020cc000 0x4000>;
701 702
@@ -724,17 +725,17 @@
724 }; 725 };
725 }; 726 };
726 727
727 epit1: epit@020d0000 { 728 epit1: epit@20d0000 {
728 reg = <0x020d0000 0x4000>; 729 reg = <0x020d0000 0x4000>;
729 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; 730 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
730 }; 731 };
731 732
732 epit2: epit@020d4000 { 733 epit2: epit@20d4000 {
733 reg = <0x020d4000 0x4000>; 734 reg = <0x020d4000 0x4000>;
734 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; 735 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
735 }; 736 };
736 737
737 src: src@020d8000 { 738 src: src@20d8000 {
738 compatible = "fsl,imx6sx-src", "fsl,imx51-src"; 739 compatible = "fsl,imx6sx-src", "fsl,imx51-src";
739 reg = <0x020d8000 0x4000>; 740 reg = <0x020d8000 0x4000>;
740 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>, 741 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
@@ -742,7 +743,7 @@
742 #reset-cells = <1>; 743 #reset-cells = <1>;
743 }; 744 };
744 745
745 gpc: gpc@020dc000 { 746 gpc: gpc@20dc000 {
746 compatible = "fsl,imx6sx-gpc", "fsl,imx6q-gpc"; 747 compatible = "fsl,imx6sx-gpc", "fsl,imx6q-gpc";
747 reg = <0x020dc000 0x4000>; 748 reg = <0x020dc000 0x4000>;
748 interrupt-controller; 749 interrupt-controller;
@@ -751,18 +752,18 @@
751 interrupt-parent = <&intc>; 752 interrupt-parent = <&intc>;
752 }; 753 };
753 754
754 iomuxc: iomuxc@020e0000 { 755 iomuxc: iomuxc@20e0000 {
755 compatible = "fsl,imx6sx-iomuxc"; 756 compatible = "fsl,imx6sx-iomuxc";
756 reg = <0x020e0000 0x4000>; 757 reg = <0x020e0000 0x4000>;
757 }; 758 };
758 759
759 gpr: iomuxc-gpr@020e4000 { 760 gpr: iomuxc-gpr@20e4000 {
760 compatible = "fsl,imx6sx-iomuxc-gpr", 761 compatible = "fsl,imx6sx-iomuxc-gpr",
761 "fsl,imx6q-iomuxc-gpr", "syscon"; 762 "fsl,imx6q-iomuxc-gpr", "syscon";
762 reg = <0x020e4000 0x4000>; 763 reg = <0x020e4000 0x4000>;
763 }; 764 };
764 765
765 sdma: sdma@020ec000 { 766 sdma: sdma@20ec000 {
766 compatible = "fsl,imx6sx-sdma", "fsl,imx6q-sdma"; 767 compatible = "fsl,imx6sx-sdma", "fsl,imx6q-sdma";
767 reg = <0x020ec000 0x4000>; 768 reg = <0x020ec000 0x4000>;
768 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 769 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
@@ -775,7 +776,7 @@
775 }; 776 };
776 }; 777 };
777 778
778 aips2: aips-bus@02100000 { 779 aips2: aips-bus@2100000 {
779 compatible = "fsl,aips-bus", "simple-bus"; 780 compatible = "fsl,aips-bus", "simple-bus";
780 #address-cells = <1>; 781 #address-cells = <1>;
781 #size-cells = <1>; 782 #size-cells = <1>;
@@ -809,7 +810,7 @@
809 }; 810 };
810 }; 811 };
811 812
812 usbotg1: usb@02184000 { 813 usbotg1: usb@2184000 {
813 compatible = "fsl,imx6sx-usb", "fsl,imx27-usb"; 814 compatible = "fsl,imx6sx-usb", "fsl,imx27-usb";
814 reg = <0x02184000 0x200>; 815 reg = <0x02184000 0x200>;
815 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; 816 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
@@ -823,7 +824,7 @@
823 status = "disabled"; 824 status = "disabled";
824 }; 825 };
825 826
826 usbotg2: usb@02184200 { 827 usbotg2: usb@2184200 {
827 compatible = "fsl,imx6sx-usb", "fsl,imx27-usb"; 828 compatible = "fsl,imx6sx-usb", "fsl,imx27-usb";
828 reg = <0x02184200 0x200>; 829 reg = <0x02184200 0x200>;
829 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 830 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
@@ -836,7 +837,7 @@
836 status = "disabled"; 837 status = "disabled";
837 }; 838 };
838 839
839 usbh: usb@02184400 { 840 usbh: usb@2184400 {
840 compatible = "fsl,imx6sx-usb", "fsl,imx27-usb"; 841 compatible = "fsl,imx6sx-usb", "fsl,imx27-usb";
841 reg = <0x02184400 0x200>; 842 reg = <0x02184400 0x200>;
842 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 843 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
@@ -851,14 +852,14 @@
851 status = "disabled"; 852 status = "disabled";
852 }; 853 };
853 854
854 usbmisc: usbmisc@02184800 { 855 usbmisc: usbmisc@2184800 {
855 #index-cells = <1>; 856 #index-cells = <1>;
856 compatible = "fsl,imx6sx-usbmisc", "fsl,imx6q-usbmisc"; 857 compatible = "fsl,imx6sx-usbmisc", "fsl,imx6q-usbmisc";
857 reg = <0x02184800 0x200>; 858 reg = <0x02184800 0x200>;
858 clocks = <&clks IMX6SX_CLK_USBOH3>; 859 clocks = <&clks IMX6SX_CLK_USBOH3>;
859 }; 860 };
860 861
861 fec1: ethernet@02188000 { 862 fec1: ethernet@2188000 {
862 compatible = "fsl,imx6sx-fec", "fsl,imx6q-fec"; 863 compatible = "fsl,imx6sx-fec", "fsl,imx6q-fec";
863 reg = <0x02188000 0x4000>; 864 reg = <0x02188000 0x4000>;
864 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, 865 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
@@ -875,7 +876,7 @@
875 status = "disabled"; 876 status = "disabled";
876 }; 877 };
877 878
878 mlb: mlb@0218c000 { 879 mlb: mlb@218c000 {
879 reg = <0x0218c000 0x4000>; 880 reg = <0x0218c000 0x4000>;
880 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 881 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
881 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, 882 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
@@ -884,7 +885,7 @@
884 status = "disabled"; 885 status = "disabled";
885 }; 886 };
886 887
887 usdhc1: usdhc@02190000 { 888 usdhc1: usdhc@2190000 {
888 compatible = "fsl,imx6sx-usdhc", "fsl,imx6sl-usdhc"; 889 compatible = "fsl,imx6sx-usdhc", "fsl,imx6sl-usdhc";
889 reg = <0x02190000 0x4000>; 890 reg = <0x02190000 0x4000>;
890 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 891 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
@@ -896,7 +897,7 @@
896 status = "disabled"; 897 status = "disabled";
897 }; 898 };
898 899
899 usdhc2: usdhc@02194000 { 900 usdhc2: usdhc@2194000 {
900 compatible = "fsl,imx6sx-usdhc", "fsl,imx6sl-usdhc"; 901 compatible = "fsl,imx6sx-usdhc", "fsl,imx6sl-usdhc";
901 reg = <0x02194000 0x4000>; 902 reg = <0x02194000 0x4000>;
902 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 903 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
@@ -908,7 +909,7 @@
908 status = "disabled"; 909 status = "disabled";
909 }; 910 };
910 911
911 usdhc3: usdhc@02198000 { 912 usdhc3: usdhc@2198000 {
912 compatible = "fsl,imx6sx-usdhc", "fsl,imx6sl-usdhc"; 913 compatible = "fsl,imx6sx-usdhc", "fsl,imx6sl-usdhc";
913 reg = <0x02198000 0x4000>; 914 reg = <0x02198000 0x4000>;
914 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 915 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
@@ -920,7 +921,7 @@
920 status = "disabled"; 921 status = "disabled";
921 }; 922 };
922 923
923 usdhc4: usdhc@0219c000 { 924 usdhc4: usdhc@219c000 {
924 compatible = "fsl,imx6sx-usdhc", "fsl,imx6sl-usdhc"; 925 compatible = "fsl,imx6sx-usdhc", "fsl,imx6sl-usdhc";
925 reg = <0x0219c000 0x4000>; 926 reg = <0x0219c000 0x4000>;
926 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 927 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
@@ -932,7 +933,7 @@
932 status = "disabled"; 933 status = "disabled";
933 }; 934 };
934 935
935 i2c1: i2c@021a0000 { 936 i2c1: i2c@21a0000 {
936 #address-cells = <1>; 937 #address-cells = <1>;
937 #size-cells = <0>; 938 #size-cells = <0>;
938 compatible = "fsl,imx6sx-i2c", "fsl,imx21-i2c"; 939 compatible = "fsl,imx6sx-i2c", "fsl,imx21-i2c";
@@ -942,7 +943,7 @@
942 status = "disabled"; 943 status = "disabled";
943 }; 944 };
944 945
945 i2c2: i2c@021a4000 { 946 i2c2: i2c@21a4000 {
946 #address-cells = <1>; 947 #address-cells = <1>;
947 #size-cells = <0>; 948 #size-cells = <0>;
948 compatible = "fsl,imx6sx-i2c", "fsl,imx21-i2c"; 949 compatible = "fsl,imx6sx-i2c", "fsl,imx21-i2c";
@@ -952,7 +953,7 @@
952 status = "disabled"; 953 status = "disabled";
953 }; 954 };
954 955
955 i2c3: i2c@021a8000 { 956 i2c3: i2c@21a8000 {
956 #address-cells = <1>; 957 #address-cells = <1>;
957 #size-cells = <0>; 958 #size-cells = <0>;
958 compatible = "fsl,imx6sx-i2c", "fsl,imx21-i2c"; 959 compatible = "fsl,imx6sx-i2c", "fsl,imx21-i2c";
@@ -962,12 +963,12 @@
962 status = "disabled"; 963 status = "disabled";
963 }; 964 };
964 965
965 mmdc: mmdc@021b0000 { 966 mmdc: mmdc@21b0000 {
966 compatible = "fsl,imx6sx-mmdc", "fsl,imx6q-mmdc"; 967 compatible = "fsl,imx6sx-mmdc", "fsl,imx6q-mmdc";
967 reg = <0x021b0000 0x4000>; 968 reg = <0x021b0000 0x4000>;
968 }; 969 };
969 970
970 fec2: ethernet@021b4000 { 971 fec2: ethernet@21b4000 {
971 compatible = "fsl,imx6sx-fec", "fsl,imx6q-fec"; 972 compatible = "fsl,imx6sx-fec", "fsl,imx6q-fec";
972 reg = <0x021b4000 0x4000>; 973 reg = <0x021b4000 0x4000>;
973 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, 974 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
@@ -982,7 +983,7 @@
982 status = "disabled"; 983 status = "disabled";
983 }; 984 };
984 985
985 weim: weim@021b8000 { 986 weim: weim@21b8000 {
986 #address-cells = <2>; 987 #address-cells = <2>;
987 #size-cells = <1>; 988 #size-cells = <1>;
988 compatible = "fsl,imx6sx-weim", "fsl,imx6q-weim"; 989 compatible = "fsl,imx6sx-weim", "fsl,imx6q-weim";
@@ -993,13 +994,23 @@
993 status = "disabled"; 994 status = "disabled";
994 }; 995 };
995 996
996 ocotp: ocotp@021bc000 { 997 ocotp: ocotp@21bc000 {
998 #address-cells = <1>;
999 #size-cells = <1>;
997 compatible = "fsl,imx6sx-ocotp", "syscon"; 1000 compatible = "fsl,imx6sx-ocotp", "syscon";
998 reg = <0x021bc000 0x4000>; 1001 reg = <0x021bc000 0x4000>;
999 clocks = <&clks IMX6SX_CLK_OCOTP>; 1002 clocks = <&clks IMX6SX_CLK_OCOTP>;
1003
1004 tempmon_calib: calib@38 {
1005 reg = <0x38 4>;
1006 };
1007
1008 tempmon_temp_grade: temp-grade@20 {
1009 reg = <0x20 4>;
1010 };
1000 }; 1011 };
1001 1012
1002 sai1: sai@021d4000 { 1013 sai1: sai@21d4000 {
1003 compatible = "fsl,imx6sx-sai"; 1014 compatible = "fsl,imx6sx-sai";
1004 reg = <0x021d4000 0x4000>; 1015 reg = <0x021d4000 0x4000>;
1005 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 1016 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
@@ -1012,13 +1023,13 @@
1012 status = "disabled"; 1023 status = "disabled";
1013 }; 1024 };
1014 1025
1015 audmux: audmux@021d8000 { 1026 audmux: audmux@21d8000 {
1016 compatible = "fsl,imx6sx-audmux", "fsl,imx31-audmux"; 1027 compatible = "fsl,imx6sx-audmux", "fsl,imx31-audmux";
1017 reg = <0x021d8000 0x4000>; 1028 reg = <0x021d8000 0x4000>;
1018 status = "disabled"; 1029 status = "disabled";
1019 }; 1030 };
1020 1031
1021 sai2: sai@021dc000 { 1032 sai2: sai@21dc000 {
1022 compatible = "fsl,imx6sx-sai"; 1033 compatible = "fsl,imx6sx-sai";
1023 reg = <0x021dc000 0x4000>; 1034 reg = <0x021dc000 0x4000>;
1024 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 1035 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
@@ -1031,7 +1042,7 @@
1031 status = "disabled"; 1042 status = "disabled";
1032 }; 1043 };
1033 1044
1034 qspi1: qspi@021e0000 { 1045 qspi1: qspi@21e0000 {
1035 #address-cells = <1>; 1046 #address-cells = <1>;
1036 #size-cells = <0>; 1047 #size-cells = <0>;
1037 compatible = "fsl,imx6sx-qspi"; 1048 compatible = "fsl,imx6sx-qspi";
@@ -1044,7 +1055,7 @@
1044 status = "disabled"; 1055 status = "disabled";
1045 }; 1056 };
1046 1057
1047 qspi2: qspi@021e4000 { 1058 qspi2: qspi@21e4000 {
1048 #address-cells = <1>; 1059 #address-cells = <1>;
1049 #size-cells = <0>; 1060 #size-cells = <0>;
1050 compatible = "fsl,imx6sx-qspi"; 1061 compatible = "fsl,imx6sx-qspi";
@@ -1057,7 +1068,7 @@
1057 status = "disabled"; 1068 status = "disabled";
1058 }; 1069 };
1059 1070
1060 uart2: serial@021e8000 { 1071 uart2: serial@21e8000 {
1061 compatible = "fsl,imx6sx-uart", 1072 compatible = "fsl,imx6sx-uart",
1062 "fsl,imx6q-uart", "fsl,imx21-uart"; 1073 "fsl,imx6q-uart", "fsl,imx21-uart";
1063 reg = <0x021e8000 0x4000>; 1074 reg = <0x021e8000 0x4000>;
@@ -1070,7 +1081,7 @@
1070 status = "disabled"; 1081 status = "disabled";
1071 }; 1082 };
1072 1083
1073 uart3: serial@021ec000 { 1084 uart3: serial@21ec000 {
1074 compatible = "fsl,imx6sx-uart", 1085 compatible = "fsl,imx6sx-uart",
1075 "fsl,imx6q-uart", "fsl,imx21-uart"; 1086 "fsl,imx6q-uart", "fsl,imx21-uart";
1076 reg = <0x021ec000 0x4000>; 1087 reg = <0x021ec000 0x4000>;
@@ -1083,7 +1094,7 @@
1083 status = "disabled"; 1094 status = "disabled";
1084 }; 1095 };
1085 1096
1086 uart4: serial@021f0000 { 1097 uart4: serial@21f0000 {
1087 compatible = "fsl,imx6sx-uart", 1098 compatible = "fsl,imx6sx-uart",
1088 "fsl,imx6q-uart", "fsl,imx21-uart"; 1099 "fsl,imx6q-uart", "fsl,imx21-uart";
1089 reg = <0x021f0000 0x4000>; 1100 reg = <0x021f0000 0x4000>;
@@ -1096,7 +1107,7 @@
1096 status = "disabled"; 1107 status = "disabled";
1097 }; 1108 };
1098 1109
1099 uart5: serial@021f4000 { 1110 uart5: serial@21f4000 {
1100 compatible = "fsl,imx6sx-uart", 1111 compatible = "fsl,imx6sx-uart",
1101 "fsl,imx6q-uart", "fsl,imx21-uart"; 1112 "fsl,imx6q-uart", "fsl,imx21-uart";
1102 reg = <0x021f4000 0x4000>; 1113 reg = <0x021f4000 0x4000>;
@@ -1109,7 +1120,7 @@
1109 status = "disabled"; 1120 status = "disabled";
1110 }; 1121 };
1111 1122
1112 i2c4: i2c@021f8000 { 1123 i2c4: i2c@21f8000 {
1113 #address-cells = <1>; 1124 #address-cells = <1>;
1114 #size-cells = <0>; 1125 #size-cells = <0>;
1115 compatible = "fsl,imx6sx-i2c", "fsl,imx21-i2c"; 1126 compatible = "fsl,imx6sx-i2c", "fsl,imx21-i2c";
@@ -1120,21 +1131,21 @@
1120 }; 1131 };
1121 }; 1132 };
1122 1133
1123 aips3: aips-bus@02200000 { 1134 aips3: aips-bus@2200000 {
1124 compatible = "fsl,aips-bus", "simple-bus"; 1135 compatible = "fsl,aips-bus", "simple-bus";
1125 #address-cells = <1>; 1136 #address-cells = <1>;
1126 #size-cells = <1>; 1137 #size-cells = <1>;
1127 reg = <0x02200000 0x100000>; 1138 reg = <0x02200000 0x100000>;
1128 ranges; 1139 ranges;
1129 1140
1130 spba-bus@02200000 { 1141 spba-bus@2200000 {
1131 compatible = "fsl,spba-bus", "simple-bus"; 1142 compatible = "fsl,spba-bus", "simple-bus";
1132 #address-cells = <1>; 1143 #address-cells = <1>;
1133 #size-cells = <1>; 1144 #size-cells = <1>;
1134 reg = <0x02240000 0x40000>; 1145 reg = <0x02240000 0x40000>;
1135 ranges; 1146 ranges;
1136 1147
1137 csi1: csi@02214000 { 1148 csi1: csi@2214000 {
1138 reg = <0x02214000 0x4000>; 1149 reg = <0x02214000 0x4000>;
1139 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 1150 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1140 clocks = <&clks IMX6SX_CLK_DISPLAY_AXI>, 1151 clocks = <&clks IMX6SX_CLK_DISPLAY_AXI>,
@@ -1144,7 +1155,7 @@
1144 status = "disabled"; 1155 status = "disabled";
1145 }; 1156 };
1146 1157
1147 pxp: pxp@02218000 { 1158 pxp: pxp@2218000 {
1148 reg = <0x02218000 0x4000>; 1159 reg = <0x02218000 0x4000>;
1149 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 1160 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
1150 clocks = <&clks IMX6SX_CLK_PXP_AXI>, 1161 clocks = <&clks IMX6SX_CLK_PXP_AXI>,
@@ -1153,7 +1164,7 @@
1153 status = "disabled"; 1164 status = "disabled";
1154 }; 1165 };
1155 1166
1156 csi2: csi@0221c000 { 1167 csi2: csi@221c000 {
1157 reg = <0x0221c000 0x4000>; 1168 reg = <0x0221c000 0x4000>;
1158 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 1169 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
1159 clocks = <&clks IMX6SX_CLK_DISPLAY_AXI>, 1170 clocks = <&clks IMX6SX_CLK_DISPLAY_AXI>,
@@ -1163,7 +1174,7 @@
1163 status = "disabled"; 1174 status = "disabled";
1164 }; 1175 };
1165 1176
1166 lcdif1: lcdif@02220000 { 1177 lcdif1: lcdif@2220000 {
1167 compatible = "fsl,imx6sx-lcdif", "fsl,imx28-lcdif"; 1178 compatible = "fsl,imx6sx-lcdif", "fsl,imx28-lcdif";
1168 reg = <0x02220000 0x4000>; 1179 reg = <0x02220000 0x4000>;
1169 interrupts = <GIC_SPI 5 IRQ_TYPE_EDGE_RISING>; 1180 interrupts = <GIC_SPI 5 IRQ_TYPE_EDGE_RISING>;
@@ -1174,7 +1185,7 @@
1174 status = "disabled"; 1185 status = "disabled";
1175 }; 1186 };
1176 1187
1177 lcdif2: lcdif@02224000 { 1188 lcdif2: lcdif@2224000 {
1178 compatible = "fsl,imx6sx-lcdif", "fsl,imx28-lcdif"; 1189 compatible = "fsl,imx6sx-lcdif", "fsl,imx28-lcdif";
1179 reg = <0x02224000 0x4000>; 1190 reg = <0x02224000 0x4000>;
1180 interrupts = <GIC_SPI 6 IRQ_TYPE_EDGE_RISING>; 1191 interrupts = <GIC_SPI 6 IRQ_TYPE_EDGE_RISING>;
@@ -1185,7 +1196,7 @@
1185 status = "disabled"; 1196 status = "disabled";
1186 }; 1197 };
1187 1198
1188 vadc: vadc@02228000 { 1199 vadc: vadc@2228000 {
1189 reg = <0x02228000 0x4000>, <0x0222c000 0x4000>; 1200 reg = <0x02228000 0x4000>, <0x0222c000 0x4000>;
1190 reg-names = "vadc-vafe", "vadc-vdec"; 1201 reg-names = "vadc-vafe", "vadc-vdec";
1191 clocks = <&clks IMX6SX_CLK_VADC>, 1202 clocks = <&clks IMX6SX_CLK_VADC>,
@@ -1195,7 +1206,7 @@
1195 }; 1206 };
1196 }; 1207 };
1197 1208
1198 adc1: adc@02280000 { 1209 adc1: adc@2280000 {
1199 compatible = "fsl,imx6sx-adc", "fsl,vf610-adc"; 1210 compatible = "fsl,imx6sx-adc", "fsl,vf610-adc";
1200 reg = <0x02280000 0x4000>; 1211 reg = <0x02280000 0x4000>;
1201 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 1212 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
@@ -1206,7 +1217,7 @@
1206 status = "disabled"; 1217 status = "disabled";
1207 }; 1218 };
1208 1219
1209 adc2: adc@02284000 { 1220 adc2: adc@2284000 {
1210 compatible = "fsl,imx6sx-adc", "fsl,vf610-adc"; 1221 compatible = "fsl,imx6sx-adc", "fsl,vf610-adc";
1211 reg = <0x02284000 0x4000>; 1222 reg = <0x02284000 0x4000>;
1212 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 1223 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
@@ -1217,7 +1228,7 @@
1217 status = "disabled"; 1228 status = "disabled";
1218 }; 1229 };
1219 1230
1220 wdog3: wdog@02288000 { 1231 wdog3: wdog@2288000 {
1221 compatible = "fsl,imx6sx-wdt", "fsl,imx21-wdt"; 1232 compatible = "fsl,imx6sx-wdt", "fsl,imx21-wdt";
1222 reg = <0x02288000 0x4000>; 1233 reg = <0x02288000 0x4000>;
1223 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 1234 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
@@ -1225,7 +1236,7 @@
1225 status = "disabled"; 1236 status = "disabled";
1226 }; 1237 };
1227 1238
1228 ecspi5: ecspi@0228c000 { 1239 ecspi5: ecspi@228c000 {
1229 #address-cells = <1>; 1240 #address-cells = <1>;
1230 #size-cells = <0>; 1241 #size-cells = <0>;
1231 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi"; 1242 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
@@ -1237,7 +1248,7 @@
1237 status = "disabled"; 1248 status = "disabled";
1238 }; 1249 };
1239 1250
1240 uart6: serial@022a0000 { 1251 uart6: serial@22a0000 {
1241 compatible = "fsl,imx6sx-uart", 1252 compatible = "fsl,imx6sx-uart",
1242 "fsl,imx6q-uart", "fsl,imx21-uart"; 1253 "fsl,imx6q-uart", "fsl,imx21-uart";
1243 reg = <0x022a0000 0x4000>; 1254 reg = <0x022a0000 0x4000>;
@@ -1250,7 +1261,7 @@
1250 status = "disabled"; 1261 status = "disabled";
1251 }; 1262 };
1252 1263
1253 pwm5: pwm@022a4000 { 1264 pwm5: pwm@22a4000 {
1254 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm"; 1265 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
1255 reg = <0x022a4000 0x4000>; 1266 reg = <0x022a4000 0x4000>;
1256 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 1267 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
@@ -1260,7 +1271,7 @@
1260 #pwm-cells = <2>; 1271 #pwm-cells = <2>;
1261 }; 1272 };
1262 1273
1263 pwm6: pwm@022a8000 { 1274 pwm6: pwm@22a8000 {
1264 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm"; 1275 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
1265 reg = <0x022a8000 0x4000>; 1276 reg = <0x022a8000 0x4000>;
1266 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 1277 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
@@ -1270,7 +1281,7 @@
1270 #pwm-cells = <2>; 1281 #pwm-cells = <2>;
1271 }; 1282 };
1272 1283
1273 pwm7: pwm@022ac000 { 1284 pwm7: pwm@22ac000 {
1274 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm"; 1285 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
1275 reg = <0x022ac000 0x4000>; 1286 reg = <0x022ac000 0x4000>;
1276 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 1287 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
@@ -1280,7 +1291,7 @@
1280 #pwm-cells = <2>; 1291 #pwm-cells = <2>;
1281 }; 1292 };
1282 1293
1283 pwm8: pwm@0022b0000 { 1294 pwm8: pwm@22b0000 {
1284 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm"; 1295 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
1285 reg = <0x0022b0000 0x4000>; 1296 reg = <0x0022b0000 0x4000>;
1286 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 1297 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/imx6ul-14x14-evk.dts b/arch/arm/boot/dts/imx6ul-14x14-evk.dts
index 9c23e017d86a..e5d3ef88be60 100644
--- a/arch/arm/boot/dts/imx6ul-14x14-evk.dts
+++ b/arch/arm/boot/dts/imx6ul-14x14-evk.dts
@@ -147,6 +147,8 @@
147 147
148 148
149&lcdif { 149&lcdif {
150 assigned-clocks = <&clks IMX6UL_CLK_LCDIF_PRE_SEL>;
151 assigned-clock-parents = <&clks IMX6UL_CLK_PLL5_VIDEO_DIV>;
150 pinctrl-names = "default"; 152 pinctrl-names = "default";
151 pinctrl-0 = <&pinctrl_lcdif_dat 153 pinctrl-0 = <&pinctrl_lcdif_dat
152 &pinctrl_lcdif_ctrl>; 154 &pinctrl_lcdif_ctrl>;
diff --git a/arch/arm/boot/dts/imx6ul-pico-hobbit.dts b/arch/arm/boot/dts/imx6ul-pico-hobbit.dts
index 7d7254b12a75..3bf26ebd4df9 100644
--- a/arch/arm/boot/dts/imx6ul-pico-hobbit.dts
+++ b/arch/arm/boot/dts/imx6ul-pico-hobbit.dts
@@ -175,7 +175,7 @@
175 reg = <1>; 175 reg = <1>;
176 max-speed = <100>; 176 max-speed = <100>;
177 interrupt-parent = <&gpio5>; 177 interrupt-parent = <&gpio5>;
178 interrupts = <6 IRQ_TYPE_LEVEL_LOW 0>; 178 interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
179 }; 179 };
180 }; 180 };
181}; 181};
@@ -186,7 +186,7 @@
186 pinctrl-0 = <&pinctrl_i2c1>; 186 pinctrl-0 = <&pinctrl_i2c1>;
187 status = "okay"; 187 status = "okay";
188 188
189 pmic: pfuze3000@08 { 189 pmic: pfuze3000@8 {
190 compatible = "fsl,pfuze3000"; 190 compatible = "fsl,pfuze3000";
191 reg = <0x08>; 191 reg = <0x08>;
192 192
@@ -223,7 +223,7 @@
223 pinctrl-0 = <&pinctrl_i2c2>; 223 pinctrl-0 = <&pinctrl_i2c2>;
224 status = "okay"; 224 status = "okay";
225 225
226 codec: sgtl5000@0a { 226 codec: sgtl5000@a {
227 reg = <0x0a>; 227 reg = <0x0a>;
228 compatible = "fsl,sgtl5000"; 228 compatible = "fsl,sgtl5000";
229 clocks = <&sys_mclk>; 229 clocks = <&sys_mclk>;
diff --git a/arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts b/arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts
index 28d055e3f301..2d80f7b50bc0 100644
--- a/arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts
+++ b/arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts
@@ -116,7 +116,7 @@
116}; 116};
117 117
118&i2c2 { 118&i2c2 {
119 /delete-node/ codec@0a; 119 /delete-node/ codec@a;
120 /delete-node/ touchscreen@48; 120 /delete-node/ touchscreen@48;
121 121
122 rtc: mcp7940x@6f { 122 rtc: mcp7940x@6f {
diff --git a/arch/arm/boot/dts/imx6ul-tx6ul.dtsi b/arch/arm/boot/dts/imx6ul-tx6ul.dtsi
index ec745eb3b6a8..65111f9843f4 100644
--- a/arch/arm/boot/dts/imx6ul-tx6ul.dtsi
+++ b/arch/arm/boot/dts/imx6ul-tx6ul.dtsi
@@ -362,7 +362,7 @@
362 clock-frequency = <400000>; 362 clock-frequency = <400000>;
363 status = "okay"; 363 status = "okay";
364 364
365 sgtl5000: codec@0a { 365 sgtl5000: codec@a {
366 compatible = "fsl,sgtl5000"; 366 compatible = "fsl,sgtl5000";
367 reg = <0x0a>; 367 reg = <0x0a>;
368 #sound-dai-cells = <0>; 368 #sound-dai-cells = <0>;
@@ -424,7 +424,7 @@
424 display = <&display>; 424 display = <&display>;
425 status = "okay"; 425 status = "okay";
426 426
427 display: display@di0 { 427 display: disp0 {
428 bits-per-pixel = <32>; 428 bits-per-pixel = <32>;
429 bus-width = <24>; 429 bus-width = <24>;
430 status = "okay"; 430 status = "okay";
diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi
index f11a241a340d..d5181f85ca9c 100644
--- a/arch/arm/boot/dts/imx6ul.dtsi
+++ b/arch/arm/boot/dts/imx6ul.dtsi
@@ -98,7 +98,7 @@
98 }; 98 };
99 }; 99 };
100 100
101 intc: interrupt-controller@00a01000 { 101 intc: interrupt-controller@a01000 {
102 compatible = "arm,gic-400", "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;
@@ -149,12 +149,12 @@
149 status = "disabled"; 149 status = "disabled";
150 }; 150 };
151 151
152 ocram: sram@00900000 { 152 ocram: sram@900000 {
153 compatible = "mmio-sram"; 153 compatible = "mmio-sram";
154 reg = <0x00900000 0x20000>; 154 reg = <0x00900000 0x20000>;
155 }; 155 };
156 156
157 dma_apbh: dma-apbh@01804000 { 157 dma_apbh: dma-apbh@1804000 {
158 compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh"; 158 compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
159 reg = <0x01804000 0x2000>; 159 reg = <0x01804000 0x2000>;
160 interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>, 160 interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>,
@@ -167,7 +167,7 @@
167 clocks = <&clks IMX6UL_CLK_APBHDMA>; 167 clocks = <&clks IMX6UL_CLK_APBHDMA>;
168 }; 168 };
169 169
170 gpmi: gpmi-nand@01806000 { 170 gpmi: gpmi-nand@1806000 {
171 compatible = "fsl,imx6q-gpmi-nand"; 171 compatible = "fsl,imx6q-gpmi-nand";
172 #address-cells = <1>; 172 #address-cells = <1>;
173 #size-cells = <1>; 173 #size-cells = <1>;
@@ -187,21 +187,21 @@
187 status = "disabled"; 187 status = "disabled";
188 }; 188 };
189 189
190 aips1: aips-bus@02000000 { 190 aips1: aips-bus@2000000 {
191 compatible = "fsl,aips-bus", "simple-bus"; 191 compatible = "fsl,aips-bus", "simple-bus";
192 #address-cells = <1>; 192 #address-cells = <1>;
193 #size-cells = <1>; 193 #size-cells = <1>;
194 reg = <0x02000000 0x100000>; 194 reg = <0x02000000 0x100000>;
195 ranges; 195 ranges;
196 196
197 spba-bus@02000000 { 197 spba-bus@2000000 {
198 compatible = "fsl,spba-bus", "simple-bus"; 198 compatible = "fsl,spba-bus", "simple-bus";
199 #address-cells = <1>; 199 #address-cells = <1>;
200 #size-cells = <1>; 200 #size-cells = <1>;
201 reg = <0x02000000 0x40000>; 201 reg = <0x02000000 0x40000>;
202 ranges; 202 ranges;
203 203
204 ecspi1: ecspi@02008000 { 204 ecspi1: ecspi@2008000 {
205 #address-cells = <1>; 205 #address-cells = <1>;
206 #size-cells = <0>; 206 #size-cells = <0>;
207 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi"; 207 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
@@ -213,7 +213,7 @@
213 status = "disabled"; 213 status = "disabled";
214 }; 214 };
215 215
216 ecspi2: ecspi@0200c000 { 216 ecspi2: ecspi@200c000 {
217 #address-cells = <1>; 217 #address-cells = <1>;
218 #size-cells = <0>; 218 #size-cells = <0>;
219 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi"; 219 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
@@ -225,7 +225,7 @@
225 status = "disabled"; 225 status = "disabled";
226 }; 226 };
227 227
228 ecspi3: ecspi@02010000 { 228 ecspi3: ecspi@2010000 {
229 #address-cells = <1>; 229 #address-cells = <1>;
230 #size-cells = <0>; 230 #size-cells = <0>;
231 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi"; 231 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
@@ -237,7 +237,7 @@
237 status = "disabled"; 237 status = "disabled";
238 }; 238 };
239 239
240 ecspi4: ecspi@02014000 { 240 ecspi4: ecspi@2014000 {
241 #address-cells = <1>; 241 #address-cells = <1>;
242 #size-cells = <0>; 242 #size-cells = <0>;
243 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi"; 243 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
@@ -249,7 +249,7 @@
249 status = "disabled"; 249 status = "disabled";
250 }; 250 };
251 251
252 uart7: serial@02018000 { 252 uart7: serial@2018000 {
253 compatible = "fsl,imx6ul-uart", 253 compatible = "fsl,imx6ul-uart",
254 "fsl,imx6q-uart"; 254 "fsl,imx6q-uart";
255 reg = <0x02018000 0x4000>; 255 reg = <0x02018000 0x4000>;
@@ -260,7 +260,7 @@
260 status = "disabled"; 260 status = "disabled";
261 }; 261 };
262 262
263 uart1: serial@02020000 { 263 uart1: serial@2020000 {
264 compatible = "fsl,imx6ul-uart", 264 compatible = "fsl,imx6ul-uart",
265 "fsl,imx6q-uart"; 265 "fsl,imx6q-uart";
266 reg = <0x02020000 0x4000>; 266 reg = <0x02020000 0x4000>;
@@ -271,7 +271,7 @@
271 status = "disabled"; 271 status = "disabled";
272 }; 272 };
273 273
274 uart8: serial@02024000 { 274 uart8: serial@2024000 {
275 compatible = "fsl,imx6ul-uart", 275 compatible = "fsl,imx6ul-uart",
276 "fsl,imx6q-uart"; 276 "fsl,imx6q-uart";
277 reg = <0x02024000 0x4000>; 277 reg = <0x02024000 0x4000>;
@@ -282,7 +282,7 @@
282 status = "disabled"; 282 status = "disabled";
283 }; 283 };
284 284
285 sai1: sai@02028000 { 285 sai1: sai@2028000 {
286 #sound-dai-cells = <0>; 286 #sound-dai-cells = <0>;
287 compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai"; 287 compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai";
288 reg = <0x02028000 0x4000>; 288 reg = <0x02028000 0x4000>;
@@ -297,7 +297,7 @@
297 status = "disabled"; 297 status = "disabled";
298 }; 298 };
299 299
300 sai2: sai@0202c000 { 300 sai2: sai@202c000 {
301 #sound-dai-cells = <0>; 301 #sound-dai-cells = <0>;
302 compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai"; 302 compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai";
303 reg = <0x0202c000 0x4000>; 303 reg = <0x0202c000 0x4000>;
@@ -312,7 +312,7 @@
312 status = "disabled"; 312 status = "disabled";
313 }; 313 };
314 314
315 sai3: sai@02030000 { 315 sai3: sai@2030000 {
316 #sound-dai-cells = <0>; 316 #sound-dai-cells = <0>;
317 compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai"; 317 compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai";
318 reg = <0x02030000 0x4000>; 318 reg = <0x02030000 0x4000>;
@@ -328,7 +328,7 @@
328 }; 328 };
329 }; 329 };
330 330
331 tsc: tsc@02040000 { 331 tsc: tsc@2040000 {
332 compatible = "fsl,imx6ul-tsc"; 332 compatible = "fsl,imx6ul-tsc";
333 reg = <0x02040000 0x4000>, <0x0219c000 0x4000>; 333 reg = <0x02040000 0x4000>, <0x0219c000 0x4000>;
334 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, 334 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
@@ -339,7 +339,7 @@
339 status = "disabled"; 339 status = "disabled";
340 }; 340 };
341 341
342 pwm1: pwm@02080000 { 342 pwm1: pwm@2080000 {
343 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; 343 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
344 reg = <0x02080000 0x4000>; 344 reg = <0x02080000 0x4000>;
345 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; 345 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
@@ -350,7 +350,7 @@
350 status = "disabled"; 350 status = "disabled";
351 }; 351 };
352 352
353 pwm2: pwm@02084000 { 353 pwm2: pwm@2084000 {
354 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; 354 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
355 reg = <0x02084000 0x4000>; 355 reg = <0x02084000 0x4000>;
356 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; 356 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
@@ -361,7 +361,7 @@
361 status = "disabled"; 361 status = "disabled";
362 }; 362 };
363 363
364 pwm3: pwm@02088000 { 364 pwm3: pwm@2088000 {
365 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; 365 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
366 reg = <0x02088000 0x4000>; 366 reg = <0x02088000 0x4000>;
367 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; 367 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
@@ -372,7 +372,7 @@
372 status = "disabled"; 372 status = "disabled";
373 }; 373 };
374 374
375 pwm4: pwm@0208c000 { 375 pwm4: pwm@208c000 {
376 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; 376 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
377 reg = <0x0208c000 0x4000>; 377 reg = <0x0208c000 0x4000>;
378 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; 378 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
@@ -383,7 +383,7 @@
383 status = "disabled"; 383 status = "disabled";
384 }; 384 };
385 385
386 can1: flexcan@02090000 { 386 can1: flexcan@2090000 {
387 compatible = "fsl,imx6ul-flexcan", "fsl,imx6q-flexcan"; 387 compatible = "fsl,imx6ul-flexcan", "fsl,imx6q-flexcan";
388 reg = <0x02090000 0x4000>; 388 reg = <0x02090000 0x4000>;
389 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 389 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
@@ -393,7 +393,7 @@
393 status = "disabled"; 393 status = "disabled";
394 }; 394 };
395 395
396 can2: flexcan@02094000 { 396 can2: flexcan@2094000 {
397 compatible = "fsl,imx6ul-flexcan", "fsl,imx6q-flexcan"; 397 compatible = "fsl,imx6ul-flexcan", "fsl,imx6q-flexcan";
398 reg = <0x02094000 0x4000>; 398 reg = <0x02094000 0x4000>;
399 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 399 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
@@ -403,7 +403,7 @@
403 status = "disabled"; 403 status = "disabled";
404 }; 404 };
405 405
406 gpt1: gpt@02098000 { 406 gpt1: gpt@2098000 {
407 compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt"; 407 compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt";
408 reg = <0x02098000 0x4000>; 408 reg = <0x02098000 0x4000>;
409 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 409 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
@@ -412,7 +412,7 @@
412 clock-names = "ipg", "per"; 412 clock-names = "ipg", "per";
413 }; 413 };
414 414
415 gpio1: gpio@0209c000 { 415 gpio1: gpio@209c000 {
416 compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio"; 416 compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
417 reg = <0x0209c000 0x4000>; 417 reg = <0x0209c000 0x4000>;
418 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, 418 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
@@ -425,7 +425,7 @@
425 <&iomuxc 16 33 16>; 425 <&iomuxc 16 33 16>;
426 }; 426 };
427 427
428 gpio2: gpio@020a0000 { 428 gpio2: gpio@20a0000 {
429 compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio"; 429 compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
430 reg = <0x020a0000 0x4000>; 430 reg = <0x020a0000 0x4000>;
431 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 431 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
@@ -437,7 +437,7 @@
437 gpio-ranges = <&iomuxc 0 49 16>, <&iomuxc 16 111 6>; 437 gpio-ranges = <&iomuxc 0 49 16>, <&iomuxc 16 111 6>;
438 }; 438 };
439 439
440 gpio3: gpio@020a4000 { 440 gpio3: gpio@20a4000 {
441 compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio"; 441 compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
442 reg = <0x020a4000 0x4000>; 442 reg = <0x020a4000 0x4000>;
443 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, 443 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
@@ -449,7 +449,7 @@
449 gpio-ranges = <&iomuxc 0 65 29>; 449 gpio-ranges = <&iomuxc 0 65 29>;
450 }; 450 };
451 451
452 gpio4: gpio@020a8000 { 452 gpio4: gpio@20a8000 {
453 compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio"; 453 compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
454 reg = <0x020a8000 0x4000>; 454 reg = <0x020a8000 0x4000>;
455 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 455 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
@@ -461,7 +461,7 @@
461 gpio-ranges = <&iomuxc 0 94 17>, <&iomuxc 17 117 12>; 461 gpio-ranges = <&iomuxc 0 94 17>, <&iomuxc 17 117 12>;
462 }; 462 };
463 463
464 gpio5: gpio@020ac000 { 464 gpio5: gpio@20ac000 {
465 compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio"; 465 compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
466 reg = <0x020ac000 0x4000>; 466 reg = <0x020ac000 0x4000>;
467 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>, 467 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
@@ -473,7 +473,7 @@
473 gpio-ranges = <&iomuxc 0 7 10>, <&iomuxc 10 5 2>; 473 gpio-ranges = <&iomuxc 0 7 10>, <&iomuxc 10 5 2>;
474 }; 474 };
475 475
476 fec2: ethernet@020b4000 { 476 fec2: ethernet@20b4000 {
477 compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec"; 477 compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec";
478 reg = <0x020b4000 0x4000>; 478 reg = <0x020b4000 0x4000>;
479 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, 479 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
@@ -490,7 +490,7 @@
490 status = "disabled"; 490 status = "disabled";
491 }; 491 };
492 492
493 kpp: kpp@020b8000 { 493 kpp: kpp@20b8000 {
494 compatible = "fsl,imx6ul-kpp", "fsl,imx6q-kpp", "fsl,imx21-kpp"; 494 compatible = "fsl,imx6ul-kpp", "fsl,imx6q-kpp", "fsl,imx21-kpp";
495 reg = <0x020b8000 0x4000>; 495 reg = <0x020b8000 0x4000>;
496 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 496 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
@@ -498,14 +498,14 @@
498 status = "disabled"; 498 status = "disabled";
499 }; 499 };
500 500
501 wdog1: wdog@020bc000 { 501 wdog1: wdog@20bc000 {
502 compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt"; 502 compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt";
503 reg = <0x020bc000 0x4000>; 503 reg = <0x020bc000 0x4000>;
504 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 504 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
505 clocks = <&clks IMX6UL_CLK_WDOG1>; 505 clocks = <&clks IMX6UL_CLK_WDOG1>;
506 }; 506 };
507 507
508 wdog2: wdog@020c0000 { 508 wdog2: wdog@20c0000 {
509 compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt"; 509 compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt";
510 reg = <0x020c0000 0x4000>; 510 reg = <0x020c0000 0x4000>;
511 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 511 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
@@ -513,7 +513,7 @@
513 status = "disabled"; 513 status = "disabled";
514 }; 514 };
515 515
516 clks: ccm@020c4000 { 516 clks: ccm@20c4000 {
517 compatible = "fsl,imx6ul-ccm"; 517 compatible = "fsl,imx6ul-ccm";
518 reg = <0x020c4000 0x4000>; 518 reg = <0x020c4000 0x4000>;
519 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, 519 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
@@ -523,7 +523,7 @@
523 clock-names = "ckil", "osc", "ipp_di0", "ipp_di1"; 523 clock-names = "ckil", "osc", "ipp_di0", "ipp_di1";
524 }; 524 };
525 525
526 anatop: anatop@020c8000 { 526 anatop: anatop@20c8000 {
527 compatible = "fsl,imx6ul-anatop", "fsl,imx6q-anatop", 527 compatible = "fsl,imx6ul-anatop", "fsl,imx6q-anatop",
528 "syscon", "simple-bus"; 528 "syscon", "simple-bus";
529 reg = <0x020c8000 0x1000>; 529 reg = <0x020c8000 0x1000>;
@@ -580,7 +580,7 @@
580 }; 580 };
581 }; 581 };
582 582
583 usbphy1: usbphy@020c9000 { 583 usbphy1: usbphy@20c9000 {
584 compatible = "fsl,imx6ul-usbphy", "fsl,imx23-usbphy"; 584 compatible = "fsl,imx6ul-usbphy", "fsl,imx23-usbphy";
585 reg = <0x020c9000 0x1000>; 585 reg = <0x020c9000 0x1000>;
586 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 586 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
@@ -589,7 +589,7 @@
589 fsl,anatop = <&anatop>; 589 fsl,anatop = <&anatop>;
590 }; 590 };
591 591
592 usbphy2: usbphy@020ca000 { 592 usbphy2: usbphy@20ca000 {
593 compatible = "fsl,imx6ul-usbphy", "fsl,imx23-usbphy"; 593 compatible = "fsl,imx6ul-usbphy", "fsl,imx23-usbphy";
594 reg = <0x020ca000 0x1000>; 594 reg = <0x020ca000 0x1000>;
595 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 595 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
@@ -598,7 +598,16 @@
598 fsl,anatop = <&anatop>; 598 fsl,anatop = <&anatop>;
599 }; 599 };
600 600
601 snvs: snvs@020cc000 { 601 tempmon: tempmon {
602 compatible = "fsl,imx6ul-tempmon", "fsl,imx6sx-tempmon";
603 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
604 fsl,tempmon = <&anatop>;
605 nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
606 nvmem-cell-names = "calib", "temp_grade";
607 clocks = <&clks IMX6UL_CLK_PLL3_USB_OTG>;
608 };
609
610 snvs: snvs@20cc000 {
602 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd"; 611 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
603 reg = <0x020cc000 0x4000>; 612 reg = <0x020cc000 0x4000>;
604 613
@@ -628,17 +637,17 @@
628 }; 637 };
629 }; 638 };
630 639
631 epit1: epit@020d0000 { 640 epit1: epit@20d0000 {
632 reg = <0x020d0000 0x4000>; 641 reg = <0x020d0000 0x4000>;
633 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; 642 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
634 }; 643 };
635 644
636 epit2: epit@020d4000 { 645 epit2: epit@20d4000 {
637 reg = <0x020d4000 0x4000>; 646 reg = <0x020d4000 0x4000>;
638 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; 647 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
639 }; 648 };
640 649
641 src: src@020d8000 { 650 src: src@20d8000 {
642 compatible = "fsl,imx6ul-src", "fsl,imx51-src"; 651 compatible = "fsl,imx6ul-src", "fsl,imx51-src";
643 reg = <0x020d8000 0x4000>; 652 reg = <0x020d8000 0x4000>;
644 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>, 653 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
@@ -646,7 +655,7 @@
646 #reset-cells = <1>; 655 #reset-cells = <1>;
647 }; 656 };
648 657
649 gpc: gpc@020dc000 { 658 gpc: gpc@20dc000 {
650 compatible = "fsl,imx6ul-gpc", "fsl,imx6q-gpc"; 659 compatible = "fsl,imx6ul-gpc", "fsl,imx6q-gpc";
651 reg = <0x020dc000 0x4000>; 660 reg = <0x020dc000 0x4000>;
652 interrupt-controller; 661 interrupt-controller;
@@ -655,18 +664,18 @@
655 interrupt-parent = <&intc>; 664 interrupt-parent = <&intc>;
656 }; 665 };
657 666
658 iomuxc: iomuxc@020e0000 { 667 iomuxc: iomuxc@20e0000 {
659 compatible = "fsl,imx6ul-iomuxc"; 668 compatible = "fsl,imx6ul-iomuxc";
660 reg = <0x020e0000 0x4000>; 669 reg = <0x020e0000 0x4000>;
661 }; 670 };
662 671
663 gpr: iomuxc-gpr@020e4000 { 672 gpr: iomuxc-gpr@20e4000 {
664 compatible = "fsl,imx6ul-iomuxc-gpr", 673 compatible = "fsl,imx6ul-iomuxc-gpr",
665 "fsl,imx6q-iomuxc-gpr", "syscon"; 674 "fsl,imx6q-iomuxc-gpr", "syscon";
666 reg = <0x020e4000 0x4000>; 675 reg = <0x020e4000 0x4000>;
667 }; 676 };
668 677
669 gpt2: gpt@020e8000 { 678 gpt2: gpt@20e8000 {
670 compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt"; 679 compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt";
671 reg = <0x020e8000 0x4000>; 680 reg = <0x020e8000 0x4000>;
672 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 681 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
@@ -675,7 +684,7 @@
675 clock-names = "ipg", "per"; 684 clock-names = "ipg", "per";
676 }; 685 };
677 686
678 sdma: sdma@020ec000 { 687 sdma: sdma@20ec000 {
679 compatible = "fsl,imx6ul-sdma", "fsl,imx6q-sdma", 688 compatible = "fsl,imx6ul-sdma", "fsl,imx6q-sdma",
680 "fsl,imx35-sdma"; 689 "fsl,imx35-sdma";
681 reg = <0x020ec000 0x4000>; 690 reg = <0x020ec000 0x4000>;
@@ -687,7 +696,7 @@
687 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin"; 696 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
688 }; 697 };
689 698
690 pwm5: pwm@020f0000 { 699 pwm5: pwm@20f0000 {
691 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; 700 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
692 reg = <0x020f0000 0x4000>; 701 reg = <0x020f0000 0x4000>;
693 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; 702 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
@@ -698,7 +707,7 @@
698 status = "disabled"; 707 status = "disabled";
699 }; 708 };
700 709
701 pwm6: pwm@020f4000 { 710 pwm6: pwm@20f4000 {
702 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; 711 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
703 reg = <0x020f4000 0x4000>; 712 reg = <0x020f4000 0x4000>;
704 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; 713 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
@@ -709,7 +718,7 @@
709 status = "disabled"; 718 status = "disabled";
710 }; 719 };
711 720
712 pwm7: pwm@020f8000 { 721 pwm7: pwm@20f8000 {
713 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; 722 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
714 reg = <0x020f8000 0x4000>; 723 reg = <0x020f8000 0x4000>;
715 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; 724 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
@@ -720,7 +729,7 @@
720 status = "disabled"; 729 status = "disabled";
721 }; 730 };
722 731
723 pwm8: pwm@020fc000 { 732 pwm8: pwm@20fc000 {
724 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; 733 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
725 reg = <0x020fc000 0x4000>; 734 reg = <0x020fc000 0x4000>;
726 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; 735 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
@@ -732,14 +741,14 @@
732 }; 741 };
733 }; 742 };
734 743
735 aips2: aips-bus@02100000 { 744 aips2: aips-bus@2100000 {
736 compatible = "fsl,aips-bus", "simple-bus"; 745 compatible = "fsl,aips-bus", "simple-bus";
737 #address-cells = <1>; 746 #address-cells = <1>;
738 #size-cells = <1>; 747 #size-cells = <1>;
739 reg = <0x02100000 0x100000>; 748 reg = <0x02100000 0x100000>;
740 ranges; 749 ranges;
741 750
742 usbotg1: usb@02184000 { 751 usbotg1: usb@2184000 {
743 compatible = "fsl,imx6ul-usb", "fsl,imx27-usb"; 752 compatible = "fsl,imx6ul-usb", "fsl,imx27-usb";
744 reg = <0x02184000 0x200>; 753 reg = <0x02184000 0x200>;
745 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; 754 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
@@ -753,7 +762,7 @@
753 status = "disabled"; 762 status = "disabled";
754 }; 763 };
755 764
756 usbotg2: usb@02184200 { 765 usbotg2: usb@2184200 {
757 compatible = "fsl,imx6ul-usb", "fsl,imx27-usb"; 766 compatible = "fsl,imx6ul-usb", "fsl,imx27-usb";
758 reg = <0x02184200 0x200>; 767 reg = <0x02184200 0x200>;
759 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 768 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
@@ -766,13 +775,13 @@
766 status = "disabled"; 775 status = "disabled";
767 }; 776 };
768 777
769 usbmisc: usbmisc@02184800 { 778 usbmisc: usbmisc@2184800 {
770 #index-cells = <1>; 779 #index-cells = <1>;
771 compatible = "fsl,imx6ul-usbmisc", "fsl,imx6q-usbmisc"; 780 compatible = "fsl,imx6ul-usbmisc", "fsl,imx6q-usbmisc";
772 reg = <0x02184800 0x200>; 781 reg = <0x02184800 0x200>;
773 }; 782 };
774 783
775 fec1: ethernet@02188000 { 784 fec1: ethernet@2188000 {
776 compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec"; 785 compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec";
777 reg = <0x02188000 0x4000>; 786 reg = <0x02188000 0x4000>;
778 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, 787 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
@@ -789,7 +798,7 @@
789 status = "disabled"; 798 status = "disabled";
790 }; 799 };
791 800
792 usdhc1: usdhc@02190000 { 801 usdhc1: usdhc@2190000 {
793 compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc"; 802 compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc";
794 reg = <0x02190000 0x4000>; 803 reg = <0x02190000 0x4000>;
795 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 804 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
@@ -801,7 +810,7 @@
801 status = "disabled"; 810 status = "disabled";
802 }; 811 };
803 812
804 usdhc2: usdhc@02194000 { 813 usdhc2: usdhc@2194000 {
805 compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc"; 814 compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc";
806 reg = <0x02194000 0x4000>; 815 reg = <0x02194000 0x4000>;
807 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 816 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
@@ -813,7 +822,7 @@
813 status = "disabled"; 822 status = "disabled";
814 }; 823 };
815 824
816 adc1: adc@02198000 { 825 adc1: adc@2198000 {
817 compatible = "fsl,imx6ul-adc", "fsl,vf610-adc"; 826 compatible = "fsl,imx6ul-adc", "fsl,vf610-adc";
818 reg = <0x02198000 0x4000>; 827 reg = <0x02198000 0x4000>;
819 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 828 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
@@ -825,7 +834,7 @@
825 status = "disabled"; 834 status = "disabled";
826 }; 835 };
827 836
828 i2c1: i2c@021a0000 { 837 i2c1: i2c@21a0000 {
829 #address-cells = <1>; 838 #address-cells = <1>;
830 #size-cells = <0>; 839 #size-cells = <0>;
831 compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c"; 840 compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
@@ -835,7 +844,7 @@
835 status = "disabled"; 844 status = "disabled";
836 }; 845 };
837 846
838 i2c2: i2c@021a4000 { 847 i2c2: i2c@21a4000 {
839 #address-cells = <1>; 848 #address-cells = <1>;
840 #size-cells = <0>; 849 #size-cells = <0>;
841 compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c"; 850 compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
@@ -845,7 +854,7 @@
845 status = "disabled"; 854 status = "disabled";
846 }; 855 };
847 856
848 i2c3: i2c@021a8000 { 857 i2c3: i2c@21a8000 {
849 #address-cells = <1>; 858 #address-cells = <1>;
850 #size-cells = <0>; 859 #size-cells = <0>;
851 compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c"; 860 compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
@@ -855,18 +864,28 @@
855 status = "disabled"; 864 status = "disabled";
856 }; 865 };
857 866
858 mmdc: mmdc@021b0000 { 867 mmdc: mmdc@21b0000 {
859 compatible = "fsl,imx6ul-mmdc", "fsl,imx6q-mmdc"; 868 compatible = "fsl,imx6ul-mmdc", "fsl,imx6q-mmdc";
860 reg = <0x021b0000 0x4000>; 869 reg = <0x021b0000 0x4000>;
861 }; 870 };
862 871
863 ocotp: ocotp-ctrl@021bc000 { 872 ocotp: ocotp-ctrl@21bc000 {
873 #address-cells = <1>;
874 #size-cells = <1>;
864 compatible = "fsl,imx6ul-ocotp", "syscon"; 875 compatible = "fsl,imx6ul-ocotp", "syscon";
865 reg = <0x021bc000 0x4000>; 876 reg = <0x021bc000 0x4000>;
866 clocks = <&clks IMX6UL_CLK_OCOTP>; 877 clocks = <&clks IMX6UL_CLK_OCOTP>;
878
879 tempmon_calib: calib@38 {
880 reg = <0x38 4>;
881 };
882
883 tempmon_temp_grade: temp-grade@20 {
884 reg = <0x20 4>;
885 };
867 }; 886 };
868 887
869 lcdif: lcdif@021c8000 { 888 lcdif: lcdif@21c8000 {
870 compatible = "fsl,imx6ul-lcdif", "fsl,imx28-lcdif"; 889 compatible = "fsl,imx6ul-lcdif", "fsl,imx28-lcdif";
871 reg = <0x021c8000 0x4000>; 890 reg = <0x021c8000 0x4000>;
872 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 891 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
@@ -877,7 +896,7 @@
877 status = "disabled"; 896 status = "disabled";
878 }; 897 };
879 898
880 qspi: qspi@021e0000 { 899 qspi: qspi@21e0000 {
881 #address-cells = <1>; 900 #address-cells = <1>;
882 #size-cells = <0>; 901 #size-cells = <0>;
883 compatible = "fsl,imx6ul-qspi", "fsl,imx6sx-qspi"; 902 compatible = "fsl,imx6ul-qspi", "fsl,imx6sx-qspi";
@@ -890,7 +909,7 @@
890 status = "disabled"; 909 status = "disabled";
891 }; 910 };
892 911
893 uart2: serial@021e8000 { 912 uart2: serial@21e8000 {
894 compatible = "fsl,imx6ul-uart", 913 compatible = "fsl,imx6ul-uart",
895 "fsl,imx6q-uart"; 914 "fsl,imx6q-uart";
896 reg = <0x021e8000 0x4000>; 915 reg = <0x021e8000 0x4000>;
@@ -901,7 +920,7 @@
901 status = "disabled"; 920 status = "disabled";
902 }; 921 };
903 922
904 uart3: serial@021ec000 { 923 uart3: serial@21ec000 {
905 compatible = "fsl,imx6ul-uart", 924 compatible = "fsl,imx6ul-uart",
906 "fsl,imx6q-uart"; 925 "fsl,imx6q-uart";
907 reg = <0x021ec000 0x4000>; 926 reg = <0x021ec000 0x4000>;
@@ -912,7 +931,7 @@
912 status = "disabled"; 931 status = "disabled";
913 }; 932 };
914 933
915 uart4: serial@021f0000 { 934 uart4: serial@21f0000 {
916 compatible = "fsl,imx6ul-uart", 935 compatible = "fsl,imx6ul-uart",
917 "fsl,imx6q-uart"; 936 "fsl,imx6q-uart";
918 reg = <0x021f0000 0x4000>; 937 reg = <0x021f0000 0x4000>;
@@ -923,7 +942,7 @@
923 status = "disabled"; 942 status = "disabled";
924 }; 943 };
925 944
926 uart5: serial@021f4000 { 945 uart5: serial@21f4000 {
927 compatible = "fsl,imx6ul-uart", 946 compatible = "fsl,imx6ul-uart",
928 "fsl,imx6q-uart"; 947 "fsl,imx6q-uart";
929 reg = <0x021f4000 0x4000>; 948 reg = <0x021f4000 0x4000>;
@@ -934,7 +953,7 @@
934 status = "disabled"; 953 status = "disabled";
935 }; 954 };
936 955
937 i2c4: i2c@021f8000 { 956 i2c4: i2c@21f8000 {
938 #address-cells = <1>; 957 #address-cells = <1>;
939 #size-cells = <0>; 958 #size-cells = <0>;
940 compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c"; 959 compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
@@ -944,7 +963,7 @@
944 status = "disabled"; 963 status = "disabled";
945 }; 964 };
946 965
947 uart6: serial@021fc000 { 966 uart6: serial@21fc000 {
948 compatible = "fsl,imx6ul-uart", 967 compatible = "fsl,imx6ul-uart",
949 "fsl,imx6q-uart"; 968 "fsl,imx6q-uart";
950 reg = <0x021fc000 0x4000>; 969 reg = <0x021fc000 0x4000>;
diff --git a/arch/arm/boot/dts/imx7-colibri.dtsi b/arch/arm/boot/dts/imx7-colibri.dtsi
index 0a3915868aa3..bb5bf94f1a32 100644
--- a/arch/arm/boot/dts/imx7-colibri.dtsi
+++ b/arch/arm/boot/dts/imx7-colibri.dtsi
@@ -121,7 +121,7 @@
121 pinctrl-0 = <&pinctrl_i2c1 &pinctrl_i2c1_int>; 121 pinctrl-0 = <&pinctrl_i2c1 &pinctrl_i2c1_int>;
122 status = "okay"; 122 status = "okay";
123 123
124 codec: sgtl5000@0a { 124 codec: sgtl5000@a {
125 compatible = "fsl,sgtl5000"; 125 compatible = "fsl,sgtl5000";
126 #sound-dai-cells = <0>; 126 #sound-dai-cells = <0>;
127 reg = <0x0a>; 127 reg = <0x0a>;
diff --git a/arch/arm/boot/dts/imx7d-nitrogen7.dts b/arch/arm/boot/dts/imx7d-nitrogen7.dts
index e7998308861f..2b05898bb3f6 100644
--- a/arch/arm/boot/dts/imx7d-nitrogen7.dts
+++ b/arch/arm/boot/dts/imx7d-nitrogen7.dts
@@ -181,7 +181,7 @@
181 pinctrl-0 = <&pinctrl_i2c1>; 181 pinctrl-0 = <&pinctrl_i2c1>;
182 status = "okay"; 182 status = "okay";
183 183
184 pmic: pfuze3000@08 { 184 pmic: pfuze3000@8 {
185 compatible = "fsl,pfuze3000"; 185 compatible = "fsl,pfuze3000";
186 reg = <0x08>; 186 reg = <0x08>;
187 187
diff --git a/arch/arm/boot/dts/imx7d-pico.dts b/arch/arm/boot/dts/imx7d-pico.dts
index e78c2c9cc28a..508328b2a6bf 100644
--- a/arch/arm/boot/dts/imx7d-pico.dts
+++ b/arch/arm/boot/dts/imx7d-pico.dts
@@ -52,6 +52,17 @@
52 reg = <0x80000000 0x80000000>; 52 reg = <0x80000000 0x80000000>;
53 }; 53 };
54 54
55 reg_ap6212: regulator-ap6212 {
56 compatible = "regulator-fixed";
57 pinctrl-names = "default";
58 pinctrl-0 = <&pinctrl_reg_ap6212>;
59 regulator-name = "AP6212";
60 regulator-min-microvolt = <3300000>;
61 regulator-max-microvolt = <3300000>;
62 gpio = <&gpio4 16 GPIO_ACTIVE_HIGH>;
63 enable-active-high;
64 };
65
55 reg_2p5v: regulator-2p5v { 66 reg_2p5v: regulator-2p5v {
56 compatible = "regulator-fixed"; 67 compatible = "regulator-fixed";
57 regulator-name = "2P5V"; 68 regulator-name = "2P5V";
@@ -137,7 +148,7 @@
137 pinctrl-0 = <&pinctrl_i2c1>; 148 pinctrl-0 = <&pinctrl_i2c1>;
138 status = "okay"; 149 status = "okay";
139 150
140 codec: sgtl5000@0a { 151 codec: sgtl5000@a {
141 #sound-dai-cells = <0>; 152 #sound-dai-cells = <0>;
142 reg = <0x0a>; 153 reg = <0x0a>;
143 compatible = "fsl,sgtl5000"; 154 compatible = "fsl,sgtl5000";
@@ -152,7 +163,7 @@
152 pinctrl-0 = <&pinctrl_i2c4>; 163 pinctrl-0 = <&pinctrl_i2c4>;
153 status = "okay"; 164 status = "okay";
154 165
155 pmic: pfuze3000@08 { 166 pmic: pfuze3000@8 {
156 compatible = "fsl,pfuze3000"; 167 compatible = "fsl,pfuze3000";
157 reg = <0x08>; 168 reg = <0x08>;
158 169
@@ -271,6 +282,17 @@
271 status = "okay"; 282 status = "okay";
272}; 283};
273 284
285&usdhc2 { /* Wifi SDIO */
286 pinctrl-names = "default";
287 pinctrl-0 = <&pinctrl_usdhc2>;
288 no-1-8-v;
289 non-removable;
290 keep-power-in-suspend;
291 wakeup-source;
292 vmmc-supply = <&reg_ap6212>;
293 status = "okay";
294};
295
274&usdhc3 { 296&usdhc3 {
275 pinctrl-names = "default", "state_100mhz", "state_200mhz"; 297 pinctrl-names = "default", "state_100mhz", "state_200mhz";
276 pinctrl-0 = <&pinctrl_usdhc3>; 298 pinctrl-0 = <&pinctrl_usdhc3>;
@@ -326,6 +348,12 @@
326 >; 348 >;
327 }; 349 };
328 350
351 pinctrl_reg_ap6212: regap6212grp {
352 fsl,pins = <
353 MX7D_PAD_ECSPI1_SCLK__GPIO4_IO16 0x59
354 >;
355 };
356
329 pinctrl_sai1: sai1grp { 357 pinctrl_sai1: sai1grp {
330 fsl,pins = < 358 fsl,pins = <
331 MX7D_PAD_ENET1_RX_CLK__SAI1_TX_BCLK 0x1f 359 MX7D_PAD_ENET1_RX_CLK__SAI1_TX_BCLK 0x1f
@@ -348,6 +376,17 @@
348 >; 376 >;
349 }; 377 };
350 378
379 pinctrl_usdhc2: usdhc2grp {
380 fsl,pins = <
381 MX7D_PAD_SD2_CMD__SD2_CMD 0x59
382 MX7D_PAD_SD2_CLK__SD2_CLK 0x19
383 MX7D_PAD_SD2_DATA0__SD2_DATA0 0x59
384 MX7D_PAD_SD2_DATA1__SD2_DATA1 0x59
385 MX7D_PAD_SD2_DATA2__SD2_DATA2 0x59
386 MX7D_PAD_SD2_DATA3__SD2_DATA3 0x59
387 >;
388 };
389
351 pinctrl_usdhc3: usdhc3grp { 390 pinctrl_usdhc3: usdhc3grp {
352 fsl,pins = < 391 fsl,pins = <
353 MX7D_PAD_SD3_CMD__SD3_CMD 0x59 392 MX7D_PAD_SD3_CMD__SD3_CMD 0x59
diff --git a/arch/arm/boot/dts/imx7d-sdb.dts b/arch/arm/boot/dts/imx7d-sdb.dts
index 44637cabcc56..a7a5dc7b2700 100644
--- a/arch/arm/boot/dts/imx7d-sdb.dts
+++ b/arch/arm/boot/dts/imx7d-sdb.dts
@@ -241,7 +241,7 @@
241 pinctrl-0 = <&pinctrl_i2c1>; 241 pinctrl-0 = <&pinctrl_i2c1>;
242 status = "okay"; 242 status = "okay";
243 243
244 pmic: pfuze3000@08 { 244 pmic: pfuze3000@8 {
245 compatible = "fsl,pfuze3000"; 245 compatible = "fsl,pfuze3000";
246 reg = <0x08>; 246 reg = <0x08>;
247 247
diff --git a/arch/arm/boot/dts/imx7s-warp.dts b/arch/arm/boot/dts/imx7s-warp.dts
index 07b63f8b7314..9bdf121f7e43 100644
--- a/arch/arm/boot/dts/imx7s-warp.dts
+++ b/arch/arm/boot/dts/imx7s-warp.dts
@@ -122,7 +122,7 @@
122 pinctrl-0 = <&pinctrl_i2c1>; 122 pinctrl-0 = <&pinctrl_i2c1>;
123 status = "okay"; 123 status = "okay";
124 124
125 pmic: pfuze3000@08 { 125 pmic: pfuze3000@8 {
126 compatible = "fsl,pfuze3000"; 126 compatible = "fsl,pfuze3000";
127 reg = <0x08>; 127 reg = <0x08>;
128 128
@@ -226,7 +226,7 @@
226 pinctrl-0 = <&pinctrl_i2c4>; 226 pinctrl-0 = <&pinctrl_i2c4>;
227 status = "okay"; 227 status = "okay";
228 228
229 codec: sgtl5000@0a { 229 codec: sgtl5000@a {
230 #sound-dai-cells = <0>; 230 #sound-dai-cells = <0>;
231 reg = <0x0a>; 231 reg = <0x0a>;
232 compatible = "fsl,sgtl5000"; 232 compatible = "fsl,sgtl5000";
diff --git a/arch/arm/boot/dts/integrator.dtsi b/arch/arm/boot/dts/integrator.dtsi
index 380f9ae60c78..4d58638d104b 100644
--- a/arch/arm/boot/dts/integrator.dtsi
+++ b/arch/arm/boot/dts/integrator.dtsi
@@ -11,7 +11,7 @@
11 reg = <0x10000000 0x200>; 11 reg = <0x10000000 0x200>;
12 12
13 /* Use core module LED to indicate CPU load */ 13 /* Use core module LED to indicate CPU load */
14 led@0c.0 { 14 led@c.0 {
15 compatible = "register-bit-led"; 15 compatible = "register-bit-led";
16 offset = <0x0c>; 16 offset = <0x0c>;
17 mask = <0x01>; 17 mask = <0x01>;
@@ -100,7 +100,7 @@
100 compatible = "syscon", "simple-mfd"; 100 compatible = "syscon", "simple-mfd";
101 reg = <0x1a000000 0x10>; 101 reg = <0x1a000000 0x10>;
102 102
103 led@04.0 { 103 led@4.0 {
104 compatible = "register-bit-led"; 104 compatible = "register-bit-led";
105 offset = <0x04>; 105 offset = <0x04>;
106 mask = <0x01>; 106 mask = <0x01>;
@@ -108,21 +108,21 @@
108 linux,default-trigger = "heartbeat"; 108 linux,default-trigger = "heartbeat";
109 default-state = "on"; 109 default-state = "on";
110 }; 110 };
111 led@04.1 { 111 led@4.1 {
112 compatible = "register-bit-led"; 112 compatible = "register-bit-led";
113 offset = <0x04>; 113 offset = <0x04>;
114 mask = <0x02>; 114 mask = <0x02>;
115 label = "integrator:yellow"; 115 label = "integrator:yellow";
116 default-state = "off"; 116 default-state = "off";
117 }; 117 };
118 led@04.2 { 118 led@4.2 {
119 compatible = "register-bit-led"; 119 compatible = "register-bit-led";
120 offset = <0x04>; 120 offset = <0x04>;
121 mask = <0x04>; 121 mask = <0x04>;
122 label = "integrator:red"; 122 label = "integrator:red";
123 default-state = "off"; 123 default-state = "off";
124 }; 124 };
125 led@04.3 { 125 led@4.3 {
126 compatible = "register-bit-led"; 126 compatible = "register-bit-led";
127 offset = <0x04>; 127 offset = <0x04>;
128 mask = <0x08>; 128 mask = <0x08>;
diff --git a/arch/arm/boot/dts/integratorap.dts b/arch/arm/boot/dts/integratorap.dts
index a5d88a213dcd..94d2ff9836d0 100644
--- a/arch/arm/boot/dts/integratorap.dts
+++ b/arch/arm/boot/dts/integratorap.dts
@@ -154,21 +154,26 @@
154 }; 154 };
155 155
156 pci: pciv3@62000000 { 156 pci: pciv3@62000000 {
157 compatible = "v3,v360epc-pci"; 157 compatible = "arm,integrator-ap-pci", "v3,v360epc-pci";
158 #interrupt-cells = <1>; 158 #interrupt-cells = <1>;
159 #size-cells = <2>; 159 #size-cells = <2>;
160 #address-cells = <3>; 160 #address-cells = <3>;
161 reg = <0x62000000 0x10000>; 161 /* Bridge registers and config access space */
162 reg = <0x62000000 0x10000>, <0x61000000 0x01000000>;
162 interrupt-parent = <&pic>; 163 interrupt-parent = <&pic>;
163 interrupts = <17>; /* Bus error IRQ */ 164 interrupts = <17>; /* Bus error IRQ */
164 ranges = <0x00000000 0 0x61000000 /* config space */ 165 clocks = <&pciclk>;
165 0x61000000 0 0x00100000 /* 16 MiB @ 61000000 */ 166 bus-range = <0x00 0xff>;
166 0x01000000 0 0x0 /* I/O space */ 167 ranges = <0x01000000 0 0x0000000 /* I/O space @00000000 */
167 0x60000000 0 0x00100000 /* 16 MiB @ 60000000 */ 168 0x60000000 0 0x00010000 /* 64 KB @ LB 60000000 */
168 0x02000000 0 0x00000000 /* non-prefectable memory */ 169 0x02000000 0 0x40000000 /* non-prefectable memory @40000000 */
169 0x40000000 0 0x10000000 /* 256 MiB @ 40000000 */ 170 0x40000000 0 0x10000000 /* 256 MiB @ LB 40000000 1:1 */
170 0x42000000 0 0x10000000 /* prefetchable memory */ 171 0x42000000 0 0x50000000 /* prefetchable memory @50000000 */
171 0x50000000 0 0x10000000>; /* 256 MiB @ 50000000 */ 172 0x50000000 0 0x10000000>; /* 256 MiB @ LB 50000000 1:1 */
173 dma-ranges = <0x02000000 0 0x20000000 /* EBI memory space */
174 0x20000000 0 0x20000000 /* 512 MB @ LB 20000000 1:1 */
175 0x02000000 0 0x80000000 /* Core module alias memory */
176 0x80000000 0 0x40000000>; /* 1GB @ LB 80000000 */
172 interrupt-map-mask = <0xf800 0 0 0x7>; 177 interrupt-map-mask = <0xf800 0 0 0x7>;
173 interrupt-map = < 178 interrupt-map = <
174 /* IDSEL 9 */ 179 /* IDSEL 9 */
diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi
new file mode 100644
index 000000000000..efd8af9242d1
--- /dev/null
+++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi
@@ -0,0 +1,152 @@
1/*
2 * Device Tree Source for the iWave-RZ/G1M/G1N Qseven carrier board
3 *
4 * Copyright (C) 2017 Renesas Electronics Corp.
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 */
10
11/ {
12 aliases {
13 serial0 = &scif0;
14 ethernet0 = &avb;
15 };
16
17 chosen {
18 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
19 stdout-path = "serial0:115200n8";
20 };
21
22 vcc_sdhi1: regulator-vcc-sdhi1 {
23 compatible = "regulator-fixed";
24
25 regulator-name = "SDHI1 Vcc";
26 regulator-min-microvolt = <3300000>;
27 regulator-max-microvolt = <3300000>;
28
29 gpio = <&gpio1 16 GPIO_ACTIVE_LOW>;
30 };
31
32 vccq_sdhi1: regulator-vccq-sdhi1 {
33 compatible = "regulator-gpio";
34
35 regulator-name = "SDHI1 VccQ";
36 regulator-min-microvolt = <1800000>;
37 regulator-max-microvolt = <3300000>;
38
39 gpios = <&gpio2 30 GPIO_ACTIVE_LOW>;
40 gpios-states = <1>;
41 states = <3300000 1
42 1800000 0>;
43 };
44};
45
46&avb {
47 pinctrl-0 = <&avb_pins>;
48 pinctrl-names = "default";
49
50 phy-handle = <&phy3>;
51 phy-mode = "gmii";
52 renesas,no-ether-link;
53 status = "okay";
54
55 phy3: ethernet-phy@3 {
56 reg = <3>;
57 micrel,led-mode = <1>;
58 };
59};
60
61&hsusb {
62 status = "okay";
63 pinctrl-0 = <&usb0_pins>;
64 pinctrl-names = "default";
65};
66
67&i2c2 {
68 pinctrl-0 = <&i2c2_pins>;
69 pinctrl-names = "default";
70
71 status = "okay";
72 clock-frequency = <400000>;
73
74 rtc@68 {
75 compatible = "ti,bq32000";
76 reg = <0x68>;
77 };
78};
79
80&pci0 {
81 pinctrl-0 = <&usb0_pins>;
82 pinctrl-names = "default";
83};
84
85&pci1 {
86 status = "okay";
87 pinctrl-0 = <&usb1_pins>;
88 pinctrl-names = "default";
89};
90
91&pfc {
92 avb_pins: avb {
93 groups = "avb_mdio", "avb_gmii";
94 function = "avb";
95 };
96
97 i2c2_pins: i2c2 {
98 groups = "i2c2";
99 function = "i2c2";
100 };
101
102 scif0_pins: scif0 {
103 groups = "scif0_data_d";
104 function = "scif0";
105 };
106
107 sdhi1_pins: sd1 {
108 groups = "sdhi1_data4", "sdhi1_ctrl";
109 function = "sdhi1";
110 power-source = <3300>;
111 };
112
113 sdhi1_pins_uhs: sd1_uhs {
114 groups = "sdhi1_data4", "sdhi1_ctrl";
115 function = "sdhi1";
116 power-source = <1800>;
117 };
118
119 usb0_pins: usb0 {
120 groups = "usb0";
121 function = "usb0";
122 };
123
124 usb1_pins: usb1 {
125 groups = "usb1";
126 function = "usb1";
127 };
128};
129
130&scif0 {
131 pinctrl-0 = <&scif0_pins>;
132 pinctrl-names = "default";
133
134 status = "okay";
135};
136
137&sdhi1 {
138 pinctrl-0 = <&sdhi1_pins>;
139 pinctrl-1 = <&sdhi1_pins_uhs>;
140 pinctrl-names = "default", "state_uhs";
141
142 vmmc-supply = <&vcc_sdhi1>;
143 vqmmc-supply = <&vccq_sdhi1>;
144 cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
145 wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>;
146 sd-uhs-sdr50;
147 status = "okay";
148};
149
150&usbphy {
151 status = "okay";
152};
diff --git a/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi b/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi
new file mode 100644
index 000000000000..31fab5f183a9
--- /dev/null
+++ b/arch/arm/boot/dts/iwg20d-q7-dbcm-ca.dtsi
@@ -0,0 +1,43 @@
1/*
2 * Device Tree Source for the iWave-RZ-G1M/N Daughter Board Camera Module
3 *
4 * Copyright (C) 2017 Renesas Electronics Corp.
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 */
10
11/ {
12 aliases {
13 serial1 = &scif1;
14 serial4 = &hscif1;
15 };
16};
17
18&hscif1 {
19 pinctrl-0 = <&hscif1_pins>;
20 pinctrl-names = "default";
21
22 uart-has-rtscts;
23 status = "okay";
24};
25
26&pfc {
27 hscif1_pins: hscif1 {
28 groups = "hscif1_data_c", "hscif1_ctrl_c";
29 function = "hscif1";
30 };
31
32 scif1_pins: scif1 {
33 groups = "scif1_data_d";
34 function = "scif1";
35 };
36};
37
38&scif1 {
39 pinctrl-0 = <&scif1_pins>;
40 pinctrl-names = "default";
41
42 status = "okay";
43};
diff --git a/arch/arm/boot/dts/keystone-k2e.dtsi b/arch/arm/boot/dts/keystone-k2e.dtsi
index 819ab8345916..6b796b52ff4f 100644
--- a/arch/arm/boot/dts/keystone-k2e.dtsi
+++ b/arch/arm/boot/dts/keystone-k2e.dtsi
@@ -88,7 +88,7 @@
88 }; 88 };
89 }; 89 };
90 90
91 msm_ram: msmram@0c000000 { 91 msm_ram: msmram@c000000 {
92 compatible = "mmio-sram"; 92 compatible = "mmio-sram";
93 reg = <0x0c000000 0x200000>; 93 reg = <0x0c000000 0x200000>;
94 ranges = <0x0 0x0c000000 0x200000>; 94 ranges = <0x0 0x0c000000 0x200000>;
@@ -100,7 +100,7 @@
100 }; 100 };
101 }; 101 };
102 102
103 psc: power-sleep-controller@02350000 { 103 psc: power-sleep-controller@2350000 {
104 pscrst: reset-controller { 104 pscrst: reset-controller {
105 compatible = "ti,k2e-pscrst", "ti,syscon-reset"; 105 compatible = "ti,k2e-pscrst", "ti,syscon-reset";
106 #reset-cells = <1>; 106 #reset-cells = <1>;
@@ -111,7 +111,7 @@
111 }; 111 };
112 }; 112 };
113 113
114 dspgpio0: keystone_dsp_gpio@02620240 { 114 dspgpio0: keystone_dsp_gpio@2620240 {
115 compatible = "ti,keystone-dsp-gpio"; 115 compatible = "ti,keystone-dsp-gpio";
116 gpio-controller; 116 gpio-controller;
117 #gpio-cells = <2>; 117 #gpio-cells = <2>;
diff --git a/arch/arm/boot/dts/keystone-k2g-evm.dts b/arch/arm/boot/dts/keystone-k2g-evm.dts
index f462f1043531..656af194a518 100644
--- a/arch/arm/boot/dts/keystone-k2g-evm.dts
+++ b/arch/arm/boot/dts/keystone-k2g-evm.dts
@@ -45,6 +45,22 @@
45 regulator-max-microvolt = <3300000>; 45 regulator-max-microvolt = <3300000>;
46 regulator-always-on; 46 regulator-always-on;
47 }; 47 };
48
49 ecap0_pins: ecap0_pins {
50 pinctrl-single,pins = <
51 K2G_CORE_IOPAD(0x1374) (BUFFER_CLASS_B | MUX_MODE4) /* pr1_mdio_data.ecap0_in_apwm0_out */
52 >;
53 };
54
55 spi1_pins: pinmux_spi1_pins {
56 pinctrl-single,pins = <
57 K2G_CORE_IOPAD(0x11a4) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* spi1_scs0.spi1_scs0 */
58 K2G_CORE_IOPAD(0x11ac) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* spi1_clk.spi1_clk */
59 K2G_CORE_IOPAD(0x11b0) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* spi1_miso.spi1_miso */
60 K2G_CORE_IOPAD(0x11b4) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* spi1_mosi.spi1_mosi */
61 >;
62 };
63
48}; 64};
49 65
50&k2g_pinctrl { 66&k2g_pinctrl {
@@ -81,6 +97,14 @@
81 K2G_CORE_IOPAD(0x1110) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0) /* mmc1_cmd.mmc1_cmd */ 97 K2G_CORE_IOPAD(0x1110) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0) /* mmc1_cmd.mmc1_cmd */
82 >; 98 >;
83 }; 99 };
100
101 i2c0_pins: pinmux_i2c0_pins {
102 pinctrl-single,pins = <
103 K2G_CORE_IOPAD(0x137c) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */
104 K2G_CORE_IOPAD(0x1380) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */
105 >;
106 };
107
84}; 108};
85 109
86&uart0 { 110&uart0 {
@@ -112,3 +136,72 @@
112 memory-region = <&dsp_common_memory>; 136 memory-region = <&dsp_common_memory>;
113 status = "okay"; 137 status = "okay";
114}; 138};
139
140&i2c0 {
141 pinctrl-names = "default";
142 pinctrl-0 = <&i2c0_pins>;
143 status = "okay";
144
145 eeprom@50 {
146 compatible = "atmel,24c1024";
147 reg = <0x50>;
148 };
149};
150
151&keystone_usb0 {
152 status = "okay";
153};
154
155&usb0_phy {
156 status = "okay";
157};
158
159&usb0 {
160 dr_mode = "host";
161 status = "okay";
162};
163
164&keystone_usb1 {
165 status = "okay";
166};
167
168&usb1_phy {
169 status = "okay";
170};
171
172&usb1 {
173 dr_mode = "peripheral";
174 status = "okay";
175};
176
177&ecap0 {
178 status = "okay";
179 pinctrl-names = "default";
180 pinctrl-0 = <&ecap0_pins>;
181};
182
183&spi1 {
184 pinctrl-names = "default";
185 pinctrl-0 = <&spi1_pins>;
186 status = "okay";
187
188 spi_nor: flash@0 {
189 #address-cells = <1>;
190 #size-cells = <1>;
191 compatible = "jedec,spi-nor";
192 spi-max-frequency = <5000000>;
193 m25p,fast-read;
194 reg = <0>;
195
196 partition@0 {
197 label = "u-boot-spl";
198 reg = <0x0 0x100000>;
199 read-only;
200 };
201
202 partition@1 {
203 label = "misc";
204 reg = <0x100000 0xf00000>;
205 };
206 };
207};
diff --git a/arch/arm/boot/dts/keystone-k2g.dtsi b/arch/arm/boot/dts/keystone-k2g.dtsi
index 826b286665e6..8f313ff406b9 100644
--- a/arch/arm/boot/dts/keystone-k2g.dtsi
+++ b/arch/arm/boot/dts/keystone-k2g.dtsi
@@ -28,6 +28,9 @@
28 28
29 aliases { 29 aliases {
30 serial0 = &uart0; 30 serial0 = &uart0;
31 i2c0 = &i2c0;
32 i2c1 = &i2c1;
33 i2c2 = &i2c2;
31 rproc0 = &dsp0; 34 rproc0 = &dsp0;
32 }; 35 };
33 36
@@ -42,7 +45,7 @@
42 }; 45 };
43 }; 46 };
44 47
45 gic: interrupt-controller@02561000 { 48 gic: interrupt-controller@2561000 {
46 compatible = "arm,gic-400", "arm,cortex-a15-gic"; 49 compatible = "arm,gic-400", "arm,cortex-a15-gic";
47 #interrupt-cells = <3>; 50 #interrupt-cells = <3>;
48 interrupt-controller; 51 interrupt-controller;
@@ -80,7 +83,7 @@
80 ranges = <0x0 0x0 0x0 0xc0000000>; 83 ranges = <0x0 0x0 0x0 0xc0000000>;
81 dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>; 84 dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>;
82 85
83 msm_ram: msmram@0c000000 { 86 msm_ram: msmram@c000000 {
84 compatible = "mmio-sram"; 87 compatible = "mmio-sram";
85 reg = <0x0c000000 0x100000>; 88 reg = <0x0c000000 0x100000>;
86 ranges = <0x0 0x0c000000 0x100000>; 89 ranges = <0x0 0x0c000000 0x100000>;
@@ -92,19 +95,19 @@
92 }; 95 };
93 }; 96 };
94 97
95 k2g_pinctrl: pinmux@02621000 { 98 k2g_pinctrl: pinmux@2621000 {
96 compatible = "pinctrl-single"; 99 compatible = "pinctrl-single";
97 reg = <0x02621000 0x410>; 100 reg = <0x02621000 0x410>;
98 pinctrl-single,register-width = <32>; 101 pinctrl-single,register-width = <32>;
99 pinctrl-single,function-mask = <0x001b0007>; 102 pinctrl-single,function-mask = <0x001b0007>;
100 }; 103 };
101 104
102 devctrl: device-state-control@02620000 { 105 devctrl: device-state-control@2620000 {
103 compatible = "ti,keystone-devctrl", "syscon"; 106 compatible = "ti,keystone-devctrl", "syscon";
104 reg = <0x02620000 0x1000>; 107 reg = <0x02620000 0x1000>;
105 }; 108 };
106 109
107 uart0: serial@02530c00 { 110 uart0: serial@2530c00 {
108 compatible = "ti,da830-uart", "ns16550a"; 111 compatible = "ti,da830-uart", "ns16550a";
109 current-speed = <115200>; 112 current-speed = <115200>;
110 reg-shift = <2>; 113 reg-shift = <2>;
@@ -115,7 +118,7 @@
115 status = "disabled"; 118 status = "disabled";
116 }; 119 };
117 120
118 dcan0: can@0260B200 { 121 dcan0: can@260b200 {
119 compatible = "ti,am4372-d_can", "ti,am3352-d_can"; 122 compatible = "ti,am4372-d_can", "ti,am3352-d_can";
120 reg = <0x0260B200 0x200>; 123 reg = <0x0260B200 0x200>;
121 interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>; 124 interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>;
@@ -124,7 +127,7 @@
124 clocks = <&k2g_clks 0x0008 1>; 127 clocks = <&k2g_clks 0x0008 1>;
125 }; 128 };
126 129
127 dcan1: can@0260B400 { 130 dcan1: can@260b400 {
128 compatible = "ti,am4372-d_can", "ti,am3352-d_can"; 131 compatible = "ti,am4372-d_can", "ti,am3352-d_can";
129 reg = <0x0260B400 0x200>; 132 reg = <0x0260B400 0x200>;
130 interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>; 133 interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
@@ -133,7 +136,40 @@
133 clocks = <&k2g_clks 0x0009 1>; 136 clocks = <&k2g_clks 0x0009 1>;
134 }; 137 };
135 138
136 kirq0: keystone_irq@026202a0 { 139 i2c0: i2c@2530000 {
140 compatible = "ti,keystone-i2c";
141 reg = <0x02530000 0x400>;
142 clocks = <&k2g_clks 0x003a 0>;
143 power-domains = <&k2g_pds 0x003a>;
144 interrupts = <GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
145 #address-cells = <1>;
146 #size-cells = <0>;
147 status = "disabled";
148 };
149
150 i2c1: i2c@2530400 {
151 compatible = "ti,keystone-i2c";
152 reg = <0x02530400 0x400>;
153 clocks = <&k2g_clks 0x003b 0>;
154 power-domains = <&k2g_pds 0x003b>;
155 interrupts = <GIC_SPI 89 IRQ_TYPE_EDGE_RISING>;
156 #address-cells = <1>;
157 #size-cells = <0>;
158 status = "disabled";
159 };
160
161 i2c2: i2c@2530800 {
162 compatible = "ti,keystone-i2c";
163 reg = <0x02530800 0x400>;
164 clocks = <&k2g_clks 0x003c 0>;
165 power-domains = <&k2g_pds 0x003c>;
166 interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
167 #address-cells = <1>;
168 #size-cells = <0>;
169 status = "disabled";
170 };
171
172 kirq0: keystone_irq@26202a0 {
137 compatible = "ti,keystone-irq"; 173 compatible = "ti,keystone-irq";
138 interrupts = <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>; 174 interrupts = <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>;
139 interrupt-controller; 175 interrupt-controller;
@@ -141,7 +177,7 @@
141 ti,syscon-dev = <&devctrl 0x2a0>; 177 ti,syscon-dev = <&devctrl 0x2a0>;
142 }; 178 };
143 179
144 dspgpio0: keystone_dsp_gpio@02620240 { 180 dspgpio0: keystone_dsp_gpio@2620240 {
145 compatible = "ti,keystone-dsp-gpio"; 181 compatible = "ti,keystone-dsp-gpio";
146 gpio-controller; 182 gpio-controller;
147 #gpio-cells = <2>; 183 #gpio-cells = <2>;
@@ -164,7 +200,7 @@
164 status = "disabled"; 200 status = "disabled";
165 }; 201 };
166 202
167 msgmgr: msgmgr@02a00000 { 203 msgmgr: msgmgr@2a00000 {
168 compatible = "ti,k2g-message-manager"; 204 compatible = "ti,k2g-message-manager";
169 #mbox-cells = <2>; 205 #mbox-cells = <2>;
170 reg-names = "queue_proxy_region", 206 reg-names = "queue_proxy_region",
@@ -176,7 +212,7 @@
176 <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>; 212 <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
177 }; 213 };
178 214
179 pmmc: pmmc@02921c00 { 215 pmmc: pmmc@2921c00 {
180 compatible = "ti,k2g-sci"; 216 compatible = "ti,k2g-sci";
181 /* 217 /*
182 * In case of rare platforms that does not use k2g as 218 * In case of rare platforms that does not use k2g as
@@ -246,7 +282,7 @@
246 clock-names = "gpio"; 282 clock-names = "gpio";
247 }; 283 };
248 284
249 edma0: edma@02700000 { 285 edma0: edma@2700000 {
250 compatible = "ti,k2g-edma3-tpcc", "ti,edma3-tpcc"; 286 compatible = "ti,k2g-edma3-tpcc", "ti,edma3-tpcc";
251 reg = <0x02700000 0x8000>; 287 reg = <0x02700000 0x8000>;
252 reg-names = "edma3_cc"; 288 reg-names = "edma3_cc";
@@ -265,19 +301,19 @@
265 power-domains = <&k2g_pds 0x3f>; 301 power-domains = <&k2g_pds 0x3f>;
266 }; 302 };
267 303
268 edma0_tptc0: tptc@02760000 { 304 edma0_tptc0: tptc@2760000 {
269 compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc"; 305 compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc";
270 reg = <0x02760000 0x400>; 306 reg = <0x02760000 0x400>;
271 power-domains = <&k2g_pds 0x3f>; 307 power-domains = <&k2g_pds 0x3f>;
272 }; 308 };
273 309
274 edma0_tptc1: tptc@02768000 { 310 edma0_tptc1: tptc@2768000 {
275 compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc"; 311 compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc";
276 reg = <0x02768000 0x400>; 312 reg = <0x02768000 0x400>;
277 power-domains = <&k2g_pds 0x3f>; 313 power-domains = <&k2g_pds 0x3f>;
278 }; 314 };
279 315
280 edma1: edma@02728000 { 316 edma1: edma@2728000 {
281 compatible = "ti,k2g-edma3-tpcc", "ti,edma3-tpcc"; 317 compatible = "ti,k2g-edma3-tpcc", "ti,edma3-tpcc";
282 reg = <0x02728000 0x8000>; 318 reg = <0x02728000 0x8000>;
283 reg-names = "edma3_cc"; 319 reg-names = "edma3_cc";
@@ -300,13 +336,13 @@
300 power-domains = <&k2g_pds 0x4f>; 336 power-domains = <&k2g_pds 0x4f>;
301 }; 337 };
302 338
303 edma1_tptc0: tptc@027b0000 { 339 edma1_tptc0: tptc@27b0000 {
304 compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc"; 340 compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc";
305 reg = <0x027b0000 0x400>; 341 reg = <0x027b0000 0x400>;
306 power-domains = <&k2g_pds 0x4f>; 342 power-domains = <&k2g_pds 0x4f>;
307 }; 343 };
308 344
309 edma1_tptc1: tptc@027b8000 { 345 edma1_tptc1: tptc@27b8000 {
310 compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc"; 346 compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc";
311 reg = <0x027b8000 0x400>; 347 reg = <0x027b8000 0x400>;
312 power-domains = <&k2g_pds 0x4f>; 348 power-domains = <&k2g_pds 0x4f>;
@@ -343,5 +379,177 @@
343 clock-names = "fck", "mmchsdb_fck"; 379 clock-names = "fck", "mmchsdb_fck";
344 status = "disabled"; 380 status = "disabled";
345 }; 381 };
382
383 mcasp0: mcasp@2340000 {
384 compatible = "ti,am33xx-mcasp-audio";
385 reg = <0x02340000 0x2000>,
386 <0x21804000 0x1000>;
387 reg-names = "mpu","dat";
388 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>,
389 <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
390 interrupt-names = "tx", "rx";
391 dmas = <&edma0 24 1>, <&edma0 25 1>;
392 dma-names = "tx", "rx";
393 power-domains = <&k2g_pds 0x4>;
394 clocks = <&k2g_clks 0x4 0>;
395 clock-names = "fck";
396 status = "disabled";
397 };
398
399 mcasp1: mcasp@2342000 {
400 compatible = "ti,am33xx-mcasp-audio";
401 reg = <0x02342000 0x2000>,
402 <0x21804400 0x1000>;
403 reg-names = "mpu","dat";
404 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>,
405 <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
406 interrupt-names = "tx", "rx";
407 dmas = <&edma1 48 1>, <&edma1 49 1>;
408 dma-names = "tx", "rx";
409 power-domains = <&k2g_pds 0x5>;
410 clocks = <&k2g_clks 0x5 0>;
411 clock-names = "fck";
412 status = "disabled";
413 };
414
415 mcasp2: mcasp@2344000 {
416 compatible = "ti,am33xx-mcasp-audio";
417 reg = <0x02344000 0x2000>,
418 <0x21804800 0x1000>;
419 reg-names = "mpu","dat";
420 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
421 <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
422 interrupt-names = "tx", "rx";
423 dmas = <&edma1 50 1>, <&edma1 51 1>;
424 dma-names = "tx", "rx";
425 power-domains = <&k2g_pds 0x6>;
426 clocks = <&k2g_clks 0x6 0>;
427 clock-names = "fck";
428 status = "disabled";
429 };
430
431 usb0_phy: usb-phy@0 {
432 compatible = "usb-nop-xceiv";
433 status = "disabled";
434 };
435
436 keystone_usb0: keystone-dwc3@2680000 {
437 compatible = "ti,keystone-dwc3";
438 #address-cells = <1>;
439 #size-cells = <1>;
440 reg = <0x2680000 0x10000>;
441 interrupts = <GIC_SPI 128 IRQ_TYPE_EDGE_RISING>;
442 ranges;
443 dma-coherent;
444 dma-ranges;
445 status = "disabled";
446 power-domains = <&k2g_pds 0x0016>;
447
448 usb0: usb@2690000 {
449 compatible = "snps,dwc3";
450 reg = <0x2690000 0x10000>;
451 interrupts = <GIC_SPI 128 IRQ_TYPE_EDGE_RISING>;
452 maximum-speed = "high-speed";
453 dr_mode = "otg";
454 usb-phy = <&usb0_phy>;
455 status = "disabled";
456 };
457 };
458
459 usb1_phy: usb-phy@1 {
460 compatible = "usb-nop-xceiv";
461 status = "disabled";
462 };
463
464 keystone_usb1: keystone-dwc3@2580000 {
465 compatible = "ti,keystone-dwc3";
466 #address-cells = <1>;
467 #size-cells = <1>;
468 reg = <0x2580000 0x10000>;
469 interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
470 ranges;
471 dma-coherent;
472 dma-ranges;
473 status = "disabled";
474 power-domains = <&k2g_pds 0x0017>;
475
476 usb1: usb@2590000 {
477 compatible = "snps,dwc3";
478 reg = <0x2590000 0x10000>;
479 interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
480 maximum-speed = "high-speed";
481 dr_mode = "otg";
482 usb-phy = <&usb1_phy>;
483 status = "disabled";
484 };
485 };
486
487 ecap0: pwm@21d1800 {
488 compatible = "ti,k2g-ecap", "ti,am3352-ecap";
489 #pwm-cells = <3>;
490 reg = <0x021d1800 0x60>;
491 power-domains = <&k2g_pds 0x38>;
492 clocks = <&k2g_clks 0x38 0>;
493 clock-names = "fck";
494 status = "disabled";
495 };
496
497 ecap1: pwm@21d1c00 {
498 compatible = "ti,k2g-ecap", "ti,am3352-ecap";
499 #pwm-cells = <3>;
500 reg = <0x021d1c00 0x60>;
501 power-domains = <&k2g_pds 0x39>;
502 clocks = <&k2g_clks 0x39 0x0>;
503 clock-names = "fck";
504 status = "disabled";
505 };
506
507 spi0: spi@21805400 {
508 compatible = "ti,keystone-spi";
509 reg = <0x21805400 0x200>;
510 num-cs = <4>;
511 ti,davinci-spi-intr-line = <0>;
512 interrupts = <GIC_SPI 64 IRQ_TYPE_EDGE_RISING>;
513 #address-cells = <1>;
514 #size-cells = <0>;
515 power-domains = <&k2g_pds 0x0010>;
516 clocks = <&k2g_clks 0x0010 0>;
517 };
518
519 spi1: spi@21805800 {
520 compatible = "ti,keystone-spi";
521 reg = <0x21805800 0x200>;
522 num-cs = <4>;
523 ti,davinci-spi-intr-line = <0>;
524 interrupts = <GIC_SPI 66 IRQ_TYPE_EDGE_RISING>;
525 #address-cells = <1>;
526 #size-cells = <0>;
527 power-domains = <&k2g_pds 0x0011>;
528 clocks = <&k2g_clks 0x0011 0>;
529 };
530
531 spi2: spi@21805c00 {
532 compatible = "ti,keystone-spi";
533 reg = <0x21805C00 0x200>;
534 num-cs = <4>;
535 ti,davinci-spi-intr-line = <0>;
536 interrupts = <GIC_SPI 68 IRQ_TYPE_EDGE_RISING>;
537 #address-cells = <1>;
538 #size-cells = <0>;
539 power-domains = <&k2g_pds 0x0012>;
540 clocks = <&k2g_clks 0x0012 0>;
541 };
542
543 spi3: spi@21806000 {
544 compatible = "ti,keystone-spi";
545 reg = <0x21806000 0x200>;
546 num-cs = <4>;
547 ti,davinci-spi-intr-line = <0>;
548 interrupts = <GIC_SPI 70 IRQ_TYPE_EDGE_RISING>;
549 #address-cells = <1>;
550 #size-cells = <0>;
551 power-domains = <&k2g_pds 0x0013>;
552 clocks = <&k2g_clks 0x0013 0>;
553 };
346 }; 554 };
347}; 555};
diff --git a/arch/arm/boot/dts/keystone-k2hk.dtsi b/arch/arm/boot/dts/keystone-k2hk.dtsi
index 31dc00e4e5fd..7c486d9dc90e 100644
--- a/arch/arm/boot/dts/keystone-k2hk.dtsi
+++ b/arch/arm/boot/dts/keystone-k2hk.dtsi
@@ -59,7 +59,7 @@
59 soc { 59 soc {
60 /include/ "keystone-k2hk-clocks.dtsi" 60 /include/ "keystone-k2hk-clocks.dtsi"
61 61
62 msm_ram: msmram@0c000000 { 62 msm_ram: msmram@c000000 {
63 compatible = "mmio-sram"; 63 compatible = "mmio-sram";
64 reg = <0x0c000000 0x600000>; 64 reg = <0x0c000000 0x600000>;
65 ranges = <0x0 0x0c000000 0x600000>; 65 ranges = <0x0 0x0c000000 0x600000>;
@@ -71,7 +71,7 @@
71 }; 71 };
72 }; 72 };
73 73
74 psc: power-sleep-controller@02350000 { 74 psc: power-sleep-controller@2350000 {
75 pscrst: reset-controller { 75 pscrst: reset-controller {
76 compatible = "ti,k2hk-pscrst", "ti,syscon-reset"; 76 compatible = "ti,k2hk-pscrst", "ti,syscon-reset";
77 #reset-cells = <1>; 77 #reset-cells = <1>;
@@ -89,7 +89,7 @@
89 }; 89 };
90 }; 90 };
91 91
92 dspgpio0: keystone_dsp_gpio@02620240 { 92 dspgpio0: keystone_dsp_gpio@2620240 {
93 compatible = "ti,keystone-dsp-gpio"; 93 compatible = "ti,keystone-dsp-gpio";
94 gpio-controller; 94 gpio-controller;
95 #gpio-cells = <2>; 95 #gpio-cells = <2>;
@@ -273,7 +273,7 @@
273 status = "disabled"; 273 status = "disabled";
274 }; 274 };
275 275
276 mdio: mdio@02090300 { 276 mdio: mdio@2090300 {
277 compatible = "ti,keystone_mdio", "ti,davinci_mdio"; 277 compatible = "ti,keystone_mdio", "ti,davinci_mdio";
278 #address-cells = <1>; 278 #address-cells = <1>;
279 #size-cells = <0>; 279 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/keystone-k2l.dtsi b/arch/arm/boot/dts/keystone-k2l.dtsi
index 4431310bc922..4370e6513aa4 100644
--- a/arch/arm/boot/dts/keystone-k2l.dtsi
+++ b/arch/arm/boot/dts/keystone-k2l.dtsi
@@ -43,7 +43,7 @@
43 soc { 43 soc {
44 /include/ "keystone-k2l-clocks.dtsi" 44 /include/ "keystone-k2l-clocks.dtsi"
45 45
46 uart2: serial@02348400 { 46 uart2: serial@2348400 {
47 compatible = "ti,da830-uart", "ns16550a"; 47 compatible = "ti,da830-uart", "ns16550a";
48 current-speed = <115200>; 48 current-speed = <115200>;
49 reg-shift = <2>; 49 reg-shift = <2>;
@@ -53,7 +53,7 @@
53 interrupts = <GIC_SPI 432 IRQ_TYPE_EDGE_RISING>; 53 interrupts = <GIC_SPI 432 IRQ_TYPE_EDGE_RISING>;
54 }; 54 };
55 55
56 uart3: serial@02348800 { 56 uart3: serial@2348800 {
57 compatible = "ti,da830-uart", "ns16550a"; 57 compatible = "ti,da830-uart", "ns16550a";
58 current-speed = <115200>; 58 current-speed = <115200>;
59 reg-shift = <2>; 59 reg-shift = <2>;
@@ -63,7 +63,7 @@
63 interrupts = <GIC_SPI 435 IRQ_TYPE_EDGE_RISING>; 63 interrupts = <GIC_SPI 435 IRQ_TYPE_EDGE_RISING>;
64 }; 64 };
65 65
66 k2l_pmx: pinmux@02620690 { 66 k2l_pmx: pinmux@2620690 {
67 compatible = "pinctrl-single"; 67 compatible = "pinctrl-single";
68 reg = <0x02620690 0xc>; 68 reg = <0x02620690 0xc>;
69 #address-cells = <1>; 69 #address-cells = <1>;
@@ -213,7 +213,7 @@
213 }; 213 };
214 }; 214 };
215 215
216 msm_ram: msmram@0c000000 { 216 msm_ram: msmram@c000000 {
217 compatible = "mmio-sram"; 217 compatible = "mmio-sram";
218 reg = <0x0c000000 0x200000>; 218 reg = <0x0c000000 0x200000>;
219 ranges = <0x0 0x0c000000 0x200000>; 219 ranges = <0x0 0x0c000000 0x200000>;
@@ -225,7 +225,7 @@
225 }; 225 };
226 }; 226 };
227 227
228 psc: power-sleep-controller@02350000 { 228 psc: power-sleep-controller@2350000 {
229 pscrst: reset-controller { 229 pscrst: reset-controller {
230 compatible = "ti,k2l-pscrst", "ti,syscon-reset"; 230 compatible = "ti,k2l-pscrst", "ti,syscon-reset";
231 #reset-cells = <1>; 231 #reset-cells = <1>;
@@ -247,7 +247,7 @@
247 clocks = <&clkosr>; 247 clocks = <&clkosr>;
248 }; 248 };
249 249
250 dspgpio0: keystone_dsp_gpio@02620240 { 250 dspgpio0: keystone_dsp_gpio@2620240 {
251 compatible = "ti,keystone-dsp-gpio"; 251 compatible = "ti,keystone-dsp-gpio";
252 gpio-controller; 252 gpio-controller;
253 #gpio-cells = <2>; 253 #gpio-cells = <2>;
diff --git a/arch/arm/boot/dts/keystone.dtsi b/arch/arm/boot/dts/keystone.dtsi
index 8dd74f48a6d3..06e10544f9b1 100644
--- a/arch/arm/boot/dts/keystone.dtsi
+++ b/arch/arm/boot/dts/keystone.dtsi
@@ -78,17 +78,17 @@
78 ranges = <0x0 0x0 0x0 0xc0000000>; 78 ranges = <0x0 0x0 0x0 0xc0000000>;
79 dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>; 79 dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>;
80 80
81 pllctrl: pll-controller@02310000 { 81 pllctrl: pll-controller@2310000 {
82 compatible = "ti,keystone-pllctrl", "syscon"; 82 compatible = "ti,keystone-pllctrl", "syscon";
83 reg = <0x02310000 0x200>; 83 reg = <0x02310000 0x200>;
84 }; 84 };
85 85
86 psc: power-sleep-controller@02350000 { 86 psc: power-sleep-controller@2350000 {
87 compatible = "syscon", "simple-mfd"; 87 compatible = "syscon", "simple-mfd";
88 reg = <0x02350000 0x1000>; 88 reg = <0x02350000 0x1000>;
89 }; 89 };
90 90
91 devctrl: device-state-control@02620000 { 91 devctrl: device-state-control@2620000 {
92 compatible = "ti,keystone-devctrl", "syscon"; 92 compatible = "ti,keystone-devctrl", "syscon";
93 reg = <0x02620000 0x1000>; 93 reg = <0x02620000 0x1000>;
94 }; 94 };
@@ -102,7 +102,7 @@
102 102
103 /include/ "keystone-clocks.dtsi" 103 /include/ "keystone-clocks.dtsi"
104 104
105 uart0: serial@02530c00 { 105 uart0: serial@2530c00 {
106 compatible = "ti,da830-uart", "ns16550a"; 106 compatible = "ti,da830-uart", "ns16550a";
107 current-speed = <115200>; 107 current-speed = <115200>;
108 reg-shift = <2>; 108 reg-shift = <2>;
@@ -112,7 +112,7 @@
112 interrupts = <GIC_SPI 277 IRQ_TYPE_EDGE_RISING>; 112 interrupts = <GIC_SPI 277 IRQ_TYPE_EDGE_RISING>;
113 }; 113 };
114 114
115 uart1: serial@02531000 { 115 uart1: serial@2531000 {
116 compatible = "ti,da830-uart", "ns16550a"; 116 compatible = "ti,da830-uart", "ns16550a";
117 current-speed = <115200>; 117 current-speed = <115200>;
118 reg-shift = <2>; 118 reg-shift = <2>;
@@ -214,7 +214,7 @@
214 }; 214 };
215 }; 215 };
216 216
217 wdt: wdt@022f0080 { 217 wdt: wdt@22f0080 {
218 compatible = "ti,keystone-wdt","ti,davinci-wdt"; 218 compatible = "ti,keystone-wdt","ti,davinci-wdt";
219 reg = <0x022f0080 0x80>; 219 reg = <0x022f0080 0x80>;
220 clocks = <&clkwdtimer0>; 220 clocks = <&clkwdtimer0>;
diff --git a/arch/arm/boot/dts/kirkwood-synology.dtsi b/arch/arm/boot/dts/kirkwood-synology.dtsi
index 65e9524e852a..210d21a65bd1 100644
--- a/arch/arm/boot/dts/kirkwood-synology.dtsi
+++ b/arch/arm/boot/dts/kirkwood-synology.dtsi
@@ -208,32 +208,32 @@
208 spi-max-frequency = <20000000>; 208 spi-max-frequency = <20000000>;
209 mode = <0>; 209 mode = <0>;
210 210
211 partition@00000000 { 211 partition@0 {
212 reg = <0x00000000 0x00080000>; 212 reg = <0x00000000 0x00080000>;
213 label = "RedBoot"; 213 label = "RedBoot";
214 }; 214 };
215 215
216 partition@00080000 { 216 partition@80000 {
217 reg = <0x00080000 0x00200000>; 217 reg = <0x00080000 0x00200000>;
218 label = "zImage"; 218 label = "zImage";
219 }; 219 };
220 220
221 partition@00280000 { 221 partition@280000 {
222 reg = <0x00280000 0x00140000>; 222 reg = <0x00280000 0x00140000>;
223 label = "rd.gz"; 223 label = "rd.gz";
224 }; 224 };
225 225
226 partition@003c0000 { 226 partition@3c0000 {
227 reg = <0x003c0000 0x00010000>; 227 reg = <0x003c0000 0x00010000>;
228 label = "vendor"; 228 label = "vendor";
229 }; 229 };
230 230
231 partition@003d0000 { 231 partition@3d0000 {
232 reg = <0x003d0000 0x00020000>; 232 reg = <0x003d0000 0x00020000>;
233 label = "RedBoot config"; 233 label = "RedBoot config";
234 }; 234 };
235 235
236 partition@003f0000 { 236 partition@3f0000 {
237 reg = <0x003f0000 0x00010000>; 237 reg = <0x003f0000 0x00010000>;
238 label = "FIS directory"; 238 label = "FIS directory";
239 }; 239 };
diff --git a/arch/arm/boot/dts/kirkwood-ts219.dtsi b/arch/arm/boot/dts/kirkwood-ts219.dtsi
index 4faea1d9facf..a88eb22070a1 100644
--- a/arch/arm/boot/dts/kirkwood-ts219.dtsi
+++ b/arch/arm/boot/dts/kirkwood-ts219.dtsi
@@ -45,29 +45,29 @@
45 spi-max-frequency = <20000000>; 45 spi-max-frequency = <20000000>;
46 mode = <0>; 46 mode = <0>;
47 47
48 partition@0000000 { 48 partition@0 {
49 reg = <0x00000000 0x00080000>; 49 reg = <0x00000000 0x00080000>;
50 label = "U-Boot"; 50 label = "U-Boot";
51 }; 51 };
52 52
53 partition@00200000 { 53 partition@200000 {
54 reg = <0x00200000 0x00200000>; 54 reg = <0x00200000 0x00200000>;
55 label = "Kernel"; 55 label = "Kernel";
56 }; 56 };
57 57
58 partition@00400000 { 58 partition@400000 {
59 reg = <0x00400000 0x00900000>; 59 reg = <0x00400000 0x00900000>;
60 label = "RootFS1"; 60 label = "RootFS1";
61 }; 61 };
62 partition@00d00000 { 62 partition@d00000 {
63 reg = <0x00d00000 0x00300000>; 63 reg = <0x00d00000 0x00300000>;
64 label = "RootFS2"; 64 label = "RootFS2";
65 }; 65 };
66 partition@00040000 { 66 partition@40000 {
67 reg = <0x00080000 0x00040000>; 67 reg = <0x00080000 0x00040000>;
68 label = "U-Boot Config"; 68 label = "U-Boot Config";
69 }; 69 };
70 partition@000c0000 { 70 partition@c0000 {
71 reg = <0x000c0000 0x00140000>; 71 reg = <0x000c0000 0x00140000>;
72 label = "NAS Config"; 72 label = "NAS Config";
73 }; 73 };
diff --git a/arch/arm/boot/dts/kirkwood.dtsi b/arch/arm/boot/dts/kirkwood.dtsi
index a70fc7f01fc3..eb2bf7409655 100644
--- a/arch/arm/boot/dts/kirkwood.dtsi
+++ b/arch/arm/boot/dts/kirkwood.dtsi
@@ -41,7 +41,7 @@
41 pcie-mem-aperture = <0xe0000000 0x10000000>; /* 256 MiB memory space */ 41 pcie-mem-aperture = <0xe0000000 0x10000000>; /* 256 MiB memory space */
42 pcie-io-aperture = <0xf2000000 0x100000>; /* 1 MiB I/O space */ 42 pcie-io-aperture = <0xf2000000 0x100000>; /* 1 MiB I/O space */
43 43
44 nand: nand@012f { 44 nand: nand@12f {
45 #address-cells = <1>; 45 #address-cells = <1>;
46 #size-cells = <1>; 46 #size-cells = <1>;
47 cle = <0>; 47 cle = <0>;
@@ -57,7 +57,7 @@
57 status = "disabled"; 57 status = "disabled";
58 }; 58 };
59 59
60 crypto_sram: sa-sram@0301 { 60 crypto_sram: sa-sram@301 {
61 compatible = "mmio-sram"; 61 compatible = "mmio-sram";
62 reg = <MBUS_ID(0x03, 0x01) 0x0 0x800>; 62 reg = <MBUS_ID(0x03, 0x01) 0x0 0x800>;
63 clocks = <&gate_clk 17>; 63 clocks = <&gate_clk 17>;
diff --git a/arch/arm/boot/dts/lpc3250-ea3250.dts b/arch/arm/boot/dts/lpc3250-ea3250.dts
index 52b3ed10283a..c43adb7b4d7c 100644
--- a/arch/arm/boot/dts/lpc3250-ea3250.dts
+++ b/arch/arm/boot/dts/lpc3250-ea3250.dts
@@ -231,24 +231,24 @@
231 #address-cells = <1>; 231 #address-cells = <1>;
232 #size-cells = <1>; 232 #size-cells = <1>;
233 233
234 mtd0@00000000 { 234 mtd0@0 {
235 label = "ea3250-boot"; 235 label = "ea3250-boot";
236 reg = <0x00000000 0x00080000>; 236 reg = <0x00000000 0x00080000>;
237 read-only; 237 read-only;
238 }; 238 };
239 239
240 mtd1@00080000 { 240 mtd1@80000 {
241 label = "ea3250-uboot"; 241 label = "ea3250-uboot";
242 reg = <0x00080000 0x000c0000>; 242 reg = <0x00080000 0x000c0000>;
243 read-only; 243 read-only;
244 }; 244 };
245 245
246 mtd2@00140000 { 246 mtd2@140000 {
247 label = "ea3250-kernel"; 247 label = "ea3250-kernel";
248 reg = <0x00140000 0x00400000>; 248 reg = <0x00140000 0x00400000>;
249 }; 249 };
250 250
251 mtd3@00540000 { 251 mtd3@540000 {
252 label = "ea3250-rootfs"; 252 label = "ea3250-rootfs";
253 reg = <0x00540000 0x07ac0000>; 253 reg = <0x00540000 0x07ac0000>;
254 }; 254 };
diff --git a/arch/arm/boot/dts/lpc3250-phy3250.dts b/arch/arm/boot/dts/lpc3250-phy3250.dts
index fd95e2b10357..c72eb9845603 100644
--- a/arch/arm/boot/dts/lpc3250-phy3250.dts
+++ b/arch/arm/boot/dts/lpc3250-phy3250.dts
@@ -154,29 +154,29 @@
154 #address-cells = <1>; 154 #address-cells = <1>;
155 #size-cells = <1>; 155 #size-cells = <1>;
156 156
157 mtd0@00000000 { 157 mtd0@0 {
158 label = "phy3250-boot"; 158 label = "phy3250-boot";
159 reg = <0x00000000 0x00064000>; 159 reg = <0x00000000 0x00064000>;
160 read-only; 160 read-only;
161 }; 161 };
162 162
163 mtd1@00064000 { 163 mtd1@64000 {
164 label = "phy3250-uboot"; 164 label = "phy3250-uboot";
165 reg = <0x00064000 0x00190000>; 165 reg = <0x00064000 0x00190000>;
166 read-only; 166 read-only;
167 }; 167 };
168 168
169 mtd2@001f4000 { 169 mtd2@1f4000 {
170 label = "phy3250-ubt-prms"; 170 label = "phy3250-ubt-prms";
171 reg = <0x001f4000 0x00010000>; 171 reg = <0x001f4000 0x00010000>;
172 }; 172 };
173 173
174 mtd3@00204000 { 174 mtd3@204000 {
175 label = "phy3250-kernel"; 175 label = "phy3250-kernel";
176 reg = <0x00204000 0x00400000>; 176 reg = <0x00204000 0x00400000>;
177 }; 177 };
178 178
179 mtd4@00604000 { 179 mtd4@604000 {
180 label = "phy3250-rootfs"; 180 label = "phy3250-rootfs";
181 reg = <0x00604000 0x039fc000>; 181 reg = <0x00604000 0x039fc000>;
182 }; 182 };
diff --git a/arch/arm/boot/dts/lpc32xx.dtsi b/arch/arm/boot/dts/lpc32xx.dtsi
index d81fe433e3c8..abff7ef7c9cd 100644
--- a/arch/arm/boot/dts/lpc32xx.dtsi
+++ b/arch/arm/boot/dts/lpc32xx.dtsi
@@ -55,7 +55,7 @@
55 <0x20000000 0x20000000 0x30000000>, 55 <0x20000000 0x20000000 0x30000000>,
56 <0xe0000000 0xe0000000 0x04000000>; 56 <0xe0000000 0xe0000000 0x04000000>;
57 57
58 iram: sram@08000000 { 58 iram: sram@8000000 {
59 compatible = "mmio-sram"; 59 compatible = "mmio-sram";
60 reg = <0x08000000 0x20000>; 60 reg = <0x08000000 0x20000>;
61 61
diff --git a/arch/arm/boot/dts/meson.dtsi b/arch/arm/boot/dts/meson.dtsi
index cd6ad072e72c..4926133077b3 100644
--- a/arch/arm/boot/dts/meson.dtsi
+++ b/arch/arm/boot/dts/meson.dtsi
@@ -80,6 +80,20 @@
80 #size-cells = <1>; 80 #size-cells = <1>;
81 ranges = <0x0 0xc1100000 0x200000>; 81 ranges = <0x0 0xc1100000 0x200000>;
82 82
83 assist: assist@7c00 {
84 compatible = "amlogic,meson-mx-assist", "syscon";
85 reg = <0x7c00 0x200>;
86 };
87
88 gpio_intc: interrupt-controller@9880 {
89 compatible = "amlogic,meson-gpio-intc";
90 reg = <0xc1109880 0x10>;
91 interrupt-controller;
92 #interrupt-cells = <2>;
93 amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
94 status = "disabled";
95 };
96
83 hwrng: rng@8100 { 97 hwrng: rng@8100 {
84 compatible = "amlogic,meson-rng"; 98 compatible = "amlogic,meson-rng";
85 reg = <0x8100 0x8>; 99 reg = <0x8100 0x8>;
@@ -160,6 +174,15 @@
160 status = "disabled"; 174 status = "disabled";
161 }; 175 };
162 176
177 sdio: mmc@8c20 {
178 compatible = "amlogic,meson-mx-sdio";
179 reg = <0x8c20 0x20>;
180 interrupts = <GIC_SPI 28 IRQ_TYPE_EDGE_RISING>;
181 #address-cells = <1>;
182 #size-cells = <0>;
183 status = "disabled";
184 };
185
163 spifc: spi@8c80 { 186 spifc: spi@8c80 {
164 compatible = "amlogic,meson6-spifc"; 187 compatible = "amlogic,meson6-spifc";
165 reg = <0x8c80 0x80>; 188 reg = <0x8c80 0x80>;
@@ -217,7 +240,7 @@
217 #address-cells = <1>; 240 #address-cells = <1>;
218 #size-cells = <0>; 241 #size-cells = <0>;
219 reg = <0xc9040000 0x40000>; 242 reg = <0xc9040000 0x40000>;
220 interrupts = <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>; 243 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
221 phys = <&usb0_phy>; 244 phys = <&usb0_phy>;
222 phy-names = "usb2-phy"; 245 phy-names = "usb2-phy";
223 dr_mode = "host"; 246 dr_mode = "host";
@@ -229,7 +252,7 @@
229 #address-cells = <1>; 252 #address-cells = <1>;
230 #size-cells = <0>; 253 #size-cells = <0>;
231 reg = <0xc90c0000 0x40000>; 254 reg = <0xc90c0000 0x40000>;
232 interrupts = <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>; 255 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
233 phys = <&usb1_phy>; 256 phys = <&usb1_phy>;
234 phy-names = "usb2-phy"; 257 phy-names = "usb2-phy";
235 dr_mode = "host"; 258 dr_mode = "host";
@@ -252,5 +275,25 @@
252 #size-cells = <1>; 275 #size-cells = <1>;
253 ranges = <0 0xd9000000 0x20000>; 276 ranges = <0 0xd9000000 0x20000>;
254 }; 277 };
278
279 bootrom: bootrom@d9040000 {
280 compatible = "amlogic,meson-mx-bootrom", "syscon";
281 reg = <0xd9040000 0x10000>;
282 };
283
284 secbus: secbus@da000000 {
285 compatible = "simple-bus";
286 reg = <0xda000000 0x6000>;
287 #address-cells = <1>;
288 #size-cells = <1>;
289 ranges = <0x0 0xda000000 0x6000>;
290
291 efuse: nvmem@0 {
292 compatible = "amlogic,meson6-efuse";
293 reg = <0x0 0x2000>;
294 #address-cells = <1>;
295 #size-cells = <1>;
296 };
297 };
255 }; 298 };
256}; /* end of / */ 299}; /* end of / */
diff --git a/arch/arm/boot/dts/meson6.dtsi b/arch/arm/boot/dts/meson6.dtsi
index ef281d290052..9b463211339f 100644
--- a/arch/arm/boot/dts/meson6.dtsi
+++ b/arch/arm/boot/dts/meson6.dtsi
@@ -84,6 +84,9 @@
84 }; 84 };
85}; /* end of / */ 85}; /* end of / */
86 86
87&efuse {
88 status = "disabled";
89};
87 90
88&uart_AO { 91&uart_AO {
89 clocks = <&xtal>, <&clk81>, <&clk81>; 92 clocks = <&xtal>, <&clk81>, <&clk81>;
diff --git a/arch/arm/boot/dts/meson8.dtsi b/arch/arm/boot/dts/meson8.dtsi
index b98d44fde6b6..2d7a0752a460 100644
--- a/arch/arm/boot/dts/meson8.dtsi
+++ b/arch/arm/boot/dts/meson8.dtsi
@@ -45,6 +45,7 @@
45 45
46#include <dt-bindings/clock/meson8b-clkc.h> 46#include <dt-bindings/clock/meson8b-clkc.h>
47#include <dt-bindings/gpio/meson8-gpio.h> 47#include <dt-bindings/gpio/meson8-gpio.h>
48#include <dt-bindings/reset/amlogic,meson8b-clkc-reset.h>
48#include "meson.dtsi" 49#include "meson.dtsi"
49 50
50/ { 51/ {
@@ -60,6 +61,8 @@
60 compatible = "arm,cortex-a9"; 61 compatible = "arm,cortex-a9";
61 next-level-cache = <&L2>; 62 next-level-cache = <&L2>;
62 reg = <0x200>; 63 reg = <0x200>;
64 enable-method = "amlogic,meson8-smp";
65 resets = <&clkc CLKC_RESET_CPU0_SOFT_RESET>;
63 }; 66 };
64 67
65 cpu@201 { 68 cpu@201 {
@@ -67,6 +70,8 @@
67 compatible = "arm,cortex-a9"; 70 compatible = "arm,cortex-a9";
68 next-level-cache = <&L2>; 71 next-level-cache = <&L2>;
69 reg = <0x201>; 72 reg = <0x201>;
73 enable-method = "amlogic,meson8-smp";
74 resets = <&clkc CLKC_RESET_CPU1_SOFT_RESET>;
70 }; 75 };
71 76
72 cpu@202 { 77 cpu@202 {
@@ -74,6 +79,8 @@
74 compatible = "arm,cortex-a9"; 79 compatible = "arm,cortex-a9";
75 next-level-cache = <&L2>; 80 next-level-cache = <&L2>;
76 reg = <0x202>; 81 reg = <0x202>;
82 enable-method = "amlogic,meson8-smp";
83 resets = <&clkc CLKC_RESET_CPU2_SOFT_RESET>;
77 }; 84 };
78 85
79 cpu@203 { 86 cpu@203 {
@@ -81,6 +88,8 @@
81 compatible = "arm,cortex-a9"; 88 compatible = "arm,cortex-a9";
82 next-level-cache = <&L2>; 89 next-level-cache = <&L2>;
83 reg = <0x203>; 90 reg = <0x203>;
91 enable-method = "amlogic,meson8-smp";
92 resets = <&clkc CLKC_RESET_CPU3_SOFT_RESET>;
84 }; 93 };
85 }; 94 };
86 95
@@ -118,6 +127,11 @@
118}; /* end of / */ 127}; /* end of / */
119 128
120&aobus { 129&aobus {
130 pmu: pmu@e0 {
131 compatible = "amlogic,meson8-pmu", "syscon";
132 reg = <0xe0 0x8>;
133 };
134
121 pinctrl_aobus: pinctrl@84 { 135 pinctrl_aobus: pinctrl@84 {
122 compatible = "amlogic,meson8-aobus-pinctrl"; 136 compatible = "amlogic,meson8-aobus-pinctrl";
123 reg = <0x84 0xc>; 137 reg = <0x84 0xc>;
@@ -132,7 +146,7 @@
132 reg-names = "mux", "pull", "gpio"; 146 reg-names = "mux", "pull", "gpio";
133 gpio-controller; 147 gpio-controller;
134 #gpio-cells = <2>; 148 #gpio-cells = <2>;
135 gpio-ranges = <&pinctrl_aobus 0 120 16>; 149 gpio-ranges = <&pinctrl_aobus 0 0 16>;
136 }; 150 };
137 151
138 uart_ao_a_pins: uart_ao_a { 152 uart_ao_a_pins: uart_ao_a {
@@ -173,6 +187,11 @@
173 reg = <0x8000 0x4>, <0x4000 0x460>; 187 reg = <0x8000 0x4>, <0x4000 0x460>;
174 }; 188 };
175 189
190 analog_top: analog-top@81a8 {
191 compatible = "amlogic,meson8-analog-top", "syscon";
192 reg = <0x81a8 0x14>;
193 };
194
176 pwm_ef: pwm@86c0 { 195 pwm_ef: pwm@86c0 {
177 compatible = "amlogic,meson8-pwm", "amlogic,meson8b-pwm"; 196 compatible = "amlogic,meson8-pwm", "amlogic,meson8b-pwm";
178 reg = <0x86c0 0x10>; 197 reg = <0x86c0 0x10>;
@@ -249,6 +268,19 @@
249 }; 268 };
250}; 269};
251 270
271&ahb_sram {
272 smp-sram@1ff80 {
273 compatible = "amlogic,meson8-smp-sram";
274 reg = <0x1ff80 0x8>;
275 };
276};
277
278&efuse {
279 compatible = "amlogic,meson8-efuse";
280 clocks = <&clkc CLKID_EFUSE>;
281 clock-names = "core";
282};
283
252&ethmac { 284&ethmac {
253 clocks = <&clkc CLKID_ETH>; 285 clocks = <&clkc CLKID_ETH>;
254 clock-names = "stmmaceth"; 286 clock-names = "stmmaceth";
@@ -294,6 +326,12 @@
294 clock-names = "clkin", "core", "sana"; 326 clock-names = "clkin", "core", "sana";
295}; 327};
296 328
329&sdio {
330 compatible = "amlogic,meson8-sdio", "amlogic,meson-mx-sdio";
331 clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>;
332 clock-names = "core", "clkin";
333};
334
297&spifc { 335&spifc {
298 clocks = <&clkc CLKID_CLK81>; 336 clocks = <&clkc CLKID_CLK81>;
299}; 337};
diff --git a/arch/arm/boot/dts/meson8b-odroidc1.dts b/arch/arm/boot/dts/meson8b-odroidc1.dts
index e50f1a1fdbc7..9ff6ca4e20d0 100644
--- a/arch/arm/boot/dts/meson8b-odroidc1.dts
+++ b/arch/arm/boot/dts/meson8b-odroidc1.dts
@@ -76,3 +76,26 @@
76 pinctrl-0 = <&uart_ao_a_pins>; 76 pinctrl-0 = <&uart_ao_a_pins>;
77 pinctrl-names = "default"; 77 pinctrl-names = "default";
78}; 78};
79
80&gpio_ao {
81 /*
82 * WARNING: The USB Hub on the Odroid-C1/C1+ needs a reset signal
83 * to be turned high in order to be detected by the USB Controller.
84 * This signal should be handled by a USB specific power sequence
85 * in order to reset the Hub when USB bus is powered down.
86 */
87 usb-hub {
88 gpio-hog;
89 gpios = <GPIOAO_4 GPIO_ACTIVE_HIGH>;
90 output-high;
91 line-name = "usb-hub-reset";
92 };
93};
94
95&usb1_phy {
96 status = "okay";
97};
98
99&usb1 {
100 status = "okay";
101};
diff --git a/arch/arm/boot/dts/meson8b.dtsi b/arch/arm/boot/dts/meson8b.dtsi
index bc278da7df0d..d75e0ceda8bb 100644
--- a/arch/arm/boot/dts/meson8b.dtsi
+++ b/arch/arm/boot/dts/meson8b.dtsi
@@ -47,6 +47,7 @@
47#include <dt-bindings/clock/meson8b-clkc.h> 47#include <dt-bindings/clock/meson8b-clkc.h>
48#include <dt-bindings/gpio/meson8b-gpio.h> 48#include <dt-bindings/gpio/meson8b-gpio.h>
49#include <dt-bindings/reset/amlogic,meson8b-reset.h> 49#include <dt-bindings/reset/amlogic,meson8b-reset.h>
50#include <dt-bindings/reset/amlogic,meson8b-clkc-reset.h>
50#include "meson.dtsi" 51#include "meson.dtsi"
51 52
52/ { 53/ {
@@ -59,6 +60,8 @@
59 compatible = "arm,cortex-a5"; 60 compatible = "arm,cortex-a5";
60 next-level-cache = <&L2>; 61 next-level-cache = <&L2>;
61 reg = <0x200>; 62 reg = <0x200>;
63 enable-method = "amlogic,meson8b-smp";
64 resets = <&clkc CLKC_RESET_CPU0_SOFT_RESET>;
62 }; 65 };
63 66
64 cpu@201 { 67 cpu@201 {
@@ -66,6 +69,8 @@
66 compatible = "arm,cortex-a5"; 69 compatible = "arm,cortex-a5";
67 next-level-cache = <&L2>; 70 next-level-cache = <&L2>;
68 reg = <0x201>; 71 reg = <0x201>;
72 enable-method = "amlogic,meson8b-smp";
73 resets = <&clkc CLKC_RESET_CPU1_SOFT_RESET>;
69 }; 74 };
70 75
71 cpu@202 { 76 cpu@202 {
@@ -73,6 +78,8 @@
73 compatible = "arm,cortex-a5"; 78 compatible = "arm,cortex-a5";
74 next-level-cache = <&L2>; 79 next-level-cache = <&L2>;
75 reg = <0x202>; 80 reg = <0x202>;
81 enable-method = "amlogic,meson8b-smp";
82 resets = <&clkc CLKC_RESET_CPU2_SOFT_RESET>;
76 }; 83 };
77 84
78 cpu@203 { 85 cpu@203 {
@@ -80,6 +87,20 @@
80 compatible = "arm,cortex-a5"; 87 compatible = "arm,cortex-a5";
81 next-level-cache = <&L2>; 88 next-level-cache = <&L2>;
82 reg = <0x203>; 89 reg = <0x203>;
90 enable-method = "amlogic,meson8b-smp";
91 resets = <&clkc CLKC_RESET_CPU3_SOFT_RESET>;
92 };
93 };
94
95 reserved-memory {
96 #address-cells = <1>;
97 #size-cells = <1>;
98 ranges;
99
100 /* 2 MiB reserved for Hardware ROM Firmware? */
101 hwrom@0 {
102 reg = <0x0 0x200000>;
103 no-map;
83 }; 104 };
84 }; 105 };
85 106
@@ -90,6 +111,11 @@
90}; /* end of / */ 111}; /* end of / */
91 112
92&aobus { 113&aobus {
114 pmu: pmu@e0 {
115 compatible = "amlogic,meson8b-pmu", "syscon";
116 reg = <0xe0 0x18>;
117 };
118
93 pinctrl_aobus: pinctrl@84 { 119 pinctrl_aobus: pinctrl@84 {
94 compatible = "amlogic,meson8b-aobus-pinctrl"; 120 compatible = "amlogic,meson8b-aobus-pinctrl";
95 reg = <0x84 0xc>; 121 reg = <0x84 0xc>;
@@ -104,7 +130,7 @@
104 reg-names = "mux", "pull", "gpio"; 130 reg-names = "mux", "pull", "gpio";
105 gpio-controller; 131 gpio-controller;
106 #gpio-cells = <2>; 132 #gpio-cells = <2>;
107 gpio-ranges = <&pinctrl_aobus 0 130 16>; 133 gpio-ranges = <&pinctrl_aobus 0 0 16>;
108 }; 134 };
109 135
110 uart_ao_a_pins: uart_ao_a { 136 uart_ao_a_pins: uart_ao_a {
@@ -130,6 +156,11 @@
130 #reset-cells = <1>; 156 #reset-cells = <1>;
131 }; 157 };
132 158
159 analog_top: analog-top@81a8 {
160 compatible = "amlogic,meson8b-analog-top", "syscon";
161 reg = <0x81a8 0x14>;
162 };
163
133 pwm_ef: pwm@86c0 { 164 pwm_ef: pwm@86c0 {
134 compatible = "amlogic,meson8b-pwm"; 165 compatible = "amlogic,meson8b-pwm";
135 reg = <0x86c0 0x10>; 166 reg = <0x86c0 0x10>;
@@ -157,11 +188,31 @@
157 }; 188 };
158}; 189};
159 190
191&ahb_sram {
192 smp-sram@1ff80 {
193 compatible = "amlogic,meson8b-smp-sram";
194 reg = <0x1ff80 0x8>;
195 };
196};
197
198
199&efuse {
200 compatible = "amlogic,meson8b-efuse";
201 clocks = <&clkc CLKID_EFUSE>;
202 clock-names = "core";
203};
204
160&ethmac { 205&ethmac {
161 clocks = <&clkc CLKID_ETH>; 206 clocks = <&clkc CLKID_ETH>;
162 clock-names = "stmmaceth"; 207 clock-names = "stmmaceth";
163}; 208};
164 209
210&gpio_intc {
211 compatible = "amlogic,meson-gpio-intc",
212 "amlogic,meson8b-gpio-intc";
213 status = "okay";
214};
215
165&hwrng { 216&hwrng {
166 compatible = "amlogic,meson8b-rng", "amlogic,meson-rng"; 217 compatible = "amlogic,meson8b-rng", "amlogic,meson-rng";
167 clocks = <&clkc CLKID_RNG0>; 218 clocks = <&clkc CLKID_RNG0>;
@@ -190,6 +241,12 @@
190 clock-names = "clkin", "core", "sana"; 241 clock-names = "clkin", "core", "sana";
191}; 242};
192 243
244&sdio {
245 compatible = "amlogic,meson8b-sdio", "amlogic,meson-mx-sdio";
246 clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>;
247 clock-names = "core", "clkin";
248};
249
193&uart_AO { 250&uart_AO {
194 clocks = <&clkc CLKID_CLK81>; 251 clocks = <&clkc CLKID_CLK81>;
195}; 252};
diff --git a/arch/arm/boot/dts/mpa1600.dts b/arch/arm/boot/dts/mpa1600.dts
index 116ce78bea4f..36cfa215620d 100644
--- a/arch/arm/boot/dts/mpa1600.dts
+++ b/arch/arm/boot/dts/mpa1600.dts
@@ -46,7 +46,7 @@
46 }; 46 };
47 }; 47 };
48 48
49 usb0: ohci@00300000 { 49 usb0: ohci@300000 {
50 num-ports = <1>; 50 num-ports = <1>;
51 status = "okay"; 51 status = "okay";
52 }; 52 };
diff --git a/arch/arm/boot/dts/mt2701-evb.dts b/arch/arm/boot/dts/mt2701-evb.dts
index f48497354221..63af4b13a36f 100644
--- a/arch/arm/boot/dts/mt2701-evb.dts
+++ b/arch/arm/boot/dts/mt2701-evb.dts
@@ -56,12 +56,29 @@
56 bt_sco_codec:bt_sco_codec { 56 bt_sco_codec:bt_sco_codec {
57 compatible = "linux,bt-sco"; 57 compatible = "linux,bt-sco";
58 }; 58 };
59
60 backlight_lcd: backlight_lcd {
61 compatible = "pwm-backlight";
62 pwms = <&bls 0 100000>;
63 brightness-levels = <
64 0 16 32 48 64 80 96 112
65 128 144 160 176 192 208 224 240
66 255
67 >;
68 default-brightness-level = <9>;
69 };
59}; 70};
60 71
61&auxadc { 72&auxadc {
62 status = "okay"; 73 status = "okay";
63}; 74};
64 75
76&bls {
77 status = "okay";
78 pinctrl-names = "default";
79 pinctrl-0 = <&pwm_bls_gpio>;
80};
81
65&i2c0 { 82&i2c0 {
66 pinctrl-names = "default"; 83 pinctrl-names = "default";
67 pinctrl-0 = <&i2c0_pins_a>; 84 pinctrl-0 = <&i2c0_pins_a>;
@@ -111,6 +128,12 @@
111 }; 128 };
112 }; 129 };
113 130
131 pwm_bls_gpio: pwm_bls_gpio {
132 pins_cmd_dat {
133 pinmux = <MT2701_PIN_208_AUD_EXT_CK1__FUNC_DISP_PWM>;
134 };
135 };
136
114 spi_pins_a: spi0@0 { 137 spi_pins_a: spi0@0 {
115 pins_spi { 138 pins_spi {
116 pinmux = <MT2701_PIN_53_SPI0_CSN__FUNC_SPI0_CS>, 139 pinmux = <MT2701_PIN_53_SPI0_CSN__FUNC_SPI0_CS>,
diff --git a/arch/arm/boot/dts/mt2701.dtsi b/arch/arm/boot/dts/mt2701.dtsi
index afe12e5b51f9..965ddfbc9953 100644
--- a/arch/arm/boot/dts/mt2701.dtsi
+++ b/arch/arm/boot/dts/mt2701.dtsi
@@ -430,7 +430,9 @@
430 compatible = "mediatek,mt2701-audio"; 430 compatible = "mediatek,mt2701-audio";
431 reg = <0 0x11220000 0 0x2000>, 431 reg = <0 0x11220000 0 0x2000>,
432 <0 0x112a0000 0 0x20000>; 432 <0 0x112a0000 0 0x20000>;
433 interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>; 433 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>,
434 <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
435 interrupt-names = "afe", "asys";
434 power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>; 436 power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
435 437
436 clocks = <&infracfg CLK_INFRA_AUDIO>, 438 clocks = <&infracfg CLK_INFRA_AUDIO>,
@@ -530,6 +532,15 @@
530 #clock-cells = <1>; 532 #clock-cells = <1>;
531 }; 533 };
532 534
535 bls: pwm@1400a000 {
536 compatible = "mediatek,mt2701-disp-pwm";
537 reg = <0 0x1400a000 0 0x1000>;
538 #pwm-cells = <2>;
539 clocks = <&mmsys CLK_MM_MDP_BLS_26M>, <&mmsys CLK_MM_DISP_BLS>;
540 clock-names = "main", "mm";
541 status = "disabled";
542 };
543
533 larb0: larb@14010000 { 544 larb0: larb@14010000 {
534 compatible = "mediatek,mt2701-smi-larb"; 545 compatible = "mediatek,mt2701-smi-larb";
535 reg = <0 0x14010000 0 0x1000>; 546 reg = <0 0x14010000 0 0x1000>;
diff --git a/arch/arm/boot/dts/mt6589.dtsi b/arch/arm/boot/dts/mt6589.dtsi
index 0d6f60af7640..41df742d7891 100644
--- a/arch/arm/boot/dts/mt6589.dtsi
+++ b/arch/arm/boot/dts/mt6589.dtsi
@@ -139,7 +139,7 @@
139 status = "disabled"; 139 status = "disabled";
140 }; 140 };
141 141
142 wdt: watchdog@010000000 { 142 wdt: watchdog@10000000 {
143 compatible = "mediatek,mt6589-wdt"; 143 compatible = "mediatek,mt6589-wdt";
144 reg = <0x10000000 0x44>; 144 reg = <0x10000000 0x44>;
145 }; 145 };
diff --git a/arch/arm/boot/dts/mt7623.dtsi b/arch/arm/boot/dts/mt7623.dtsi
index ec8a07415cb3..0640fb75bf59 100644
--- a/arch/arm/boot/dts/mt7623.dtsi
+++ b/arch/arm/boot/dts/mt7623.dtsi
@@ -227,8 +227,7 @@
227 }; 227 };
228 228
229 pio: pinctrl@10005000 { 229 pio: pinctrl@10005000 {
230 compatible = "mediatek,mt7623-pinctrl", 230 compatible = "mediatek,mt7623-pinctrl";
231 "mediatek,mt2701-pinctrl";
232 reg = <0 0x1000b000 0 0x1000>; 231 reg = <0 0x1000b000 0 0x1000>;
233 mediatek,pctl-regmap = <&syscfg_pctl_a>; 232 mediatek,pctl-regmap = <&syscfg_pctl_a>;
234 pins-are-numbered; 233 pins-are-numbered;
@@ -544,7 +543,9 @@
544 "mediatek,mt2701-audio"; 543 "mediatek,mt2701-audio";
545 reg = <0 0x11220000 0 0x2000>, 544 reg = <0 0x11220000 0 0x2000>,
546 <0 0x112a0000 0 0x20000>; 545 <0 0x112a0000 0 0x20000>;
547 interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>; 546 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>,
547 <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
548 interrupt-names = "afe", "asys";
548 power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>; 549 power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
549 550
550 clocks = <&infracfg CLK_INFRA_AUDIO>, 551 clocks = <&infracfg CLK_INFRA_AUDIO>,
@@ -678,7 +679,7 @@
678 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_LOW>; 679 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_LOW>;
679 clocks = <&hifsys CLK_HIFSYS_USB0PHY>, 680 clocks = <&hifsys CLK_HIFSYS_USB0PHY>,
680 <&topckgen CLK_TOP_ETHIF_SEL>; 681 <&topckgen CLK_TOP_ETHIF_SEL>;
681 clock-names = "sys_ck", "free_ck"; 682 clock-names = "sys_ck", "ref_ck";
682 power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>; 683 power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
683 phys = <&u2port0 PHY_TYPE_USB2>, <&u3port0 PHY_TYPE_USB3>; 684 phys = <&u2port0 PHY_TYPE_USB2>, <&u3port0 PHY_TYPE_USB3>;
684 status = "disabled"; 685 status = "disabled";
@@ -688,8 +689,6 @@
688 compatible = "mediatek,mt7623-u3phy", 689 compatible = "mediatek,mt7623-u3phy",
689 "mediatek,mt2701-u3phy"; 690 "mediatek,mt2701-u3phy";
690 reg = <0 0x1a1c4000 0 0x0700>; 691 reg = <0 0x1a1c4000 0 0x0700>;
691 clocks = <&clk26m>;
692 clock-names = "u3phya_ref";
693 #address-cells = <2>; 692 #address-cells = <2>;
694 #size-cells = <2>; 693 #size-cells = <2>;
695 ranges; 694 ranges;
@@ -697,12 +696,16 @@
697 696
698 u2port0: usb-phy@1a1c4800 { 697 u2port0: usb-phy@1a1c4800 {
699 reg = <0 0x1a1c4800 0 0x0100>; 698 reg = <0 0x1a1c4800 0 0x0100>;
699 clocks = <&topckgen CLK_TOP_USB_PHY48M>;
700 clock-names = "ref";
700 #phy-cells = <1>; 701 #phy-cells = <1>;
701 status = "okay"; 702 status = "okay";
702 }; 703 };
703 704
704 u3port0: usb-phy@1a1c4900 { 705 u3port0: usb-phy@1a1c4900 {
705 reg = <0 0x1a1c4900 0 0x0700>; 706 reg = <0 0x1a1c4900 0 0x0700>;
707 clocks = <&clk26m>;
708 clock-names = "ref";
706 #phy-cells = <1>; 709 #phy-cells = <1>;
707 status = "okay"; 710 status = "okay";
708 }; 711 };
@@ -717,7 +720,7 @@
717 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_LOW>; 720 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_LOW>;
718 clocks = <&hifsys CLK_HIFSYS_USB1PHY>, 721 clocks = <&hifsys CLK_HIFSYS_USB1PHY>,
719 <&topckgen CLK_TOP_ETHIF_SEL>; 722 <&topckgen CLK_TOP_ETHIF_SEL>;
720 clock-names = "sys_ck", "free_ck"; 723 clock-names = "sys_ck", "ref_ck";
721 power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>; 724 power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
722 phys = <&u2port1 PHY_TYPE_USB2>, <&u3port1 PHY_TYPE_USB3>; 725 phys = <&u2port1 PHY_TYPE_USB2>, <&u3port1 PHY_TYPE_USB3>;
723 status = "disabled"; 726 status = "disabled";
@@ -727,8 +730,6 @@
727 compatible = "mediatek,mt7623-u3phy", 730 compatible = "mediatek,mt7623-u3phy",
728 "mediatek,mt2701-u3phy"; 731 "mediatek,mt2701-u3phy";
729 reg = <0 0x1a244000 0 0x0700>; 732 reg = <0 0x1a244000 0 0x0700>;
730 clocks = <&clk26m>;
731 clock-names = "u3phya_ref";
732 #address-cells = <2>; 733 #address-cells = <2>;
733 #size-cells = <2>; 734 #size-cells = <2>;
734 ranges; 735 ranges;
@@ -736,12 +737,16 @@
736 737
737 u2port1: usb-phy@1a244800 { 738 u2port1: usb-phy@1a244800 {
738 reg = <0 0x1a244800 0 0x0100>; 739 reg = <0 0x1a244800 0 0x0100>;
740 clocks = <&topckgen CLK_TOP_USB_PHY48M>;
741 clock-names = "ref";
739 #phy-cells = <1>; 742 #phy-cells = <1>;
740 status = "okay"; 743 status = "okay";
741 }; 744 };
742 745
743 u3port1: usb-phy@1a244900 { 746 u3port1: usb-phy@1a244900 {
744 reg = <0 0x1a244900 0 0x0700>; 747 reg = <0 0x1a244900 0 0x0700>;
748 clocks = <&clk26m>;
749 clock-names = "ref";
745 #phy-cells = <1>; 750 #phy-cells = <1>;
746 status = "okay"; 751 status = "okay";
747 }; 752 };
@@ -782,16 +787,15 @@
782 }; 787 };
783 788
784 crypto: crypto@1b240000 { 789 crypto: crypto@1b240000 {
785 compatible = "mediatek,mt7623-crypto"; 790 compatible = "mediatek,eip97-crypto";
786 reg = <0 0x1b240000 0 0x20000>; 791 reg = <0 0x1b240000 0 0x20000>;
787 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>, 792 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>,
788 <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>, 793 <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>,
789 <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>, 794 <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>,
790 <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>, 795 <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>,
791 <GIC_SPI 97 IRQ_TYPE_LEVEL_LOW>; 796 <GIC_SPI 97 IRQ_TYPE_LEVEL_LOW>;
792 clocks = <&topckgen CLK_TOP_ETHIF_SEL>, 797 clocks = <&ethsys CLK_ETHSYS_CRYPTO>;
793 <&ethsys CLK_ETHSYS_CRYPTO>; 798 clock-names = "cryp";
794 clock-names = "ethif","cryp";
795 power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>; 799 power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
796 status = "disabled"; 800 status = "disabled";
797 }; 801 };
diff --git a/arch/arm/boot/dts/nspire.dtsi b/arch/arm/boot/dts/nspire.dtsi
index ee5a0bb22354..ec2283b1a638 100644
--- a/arch/arm/boot/dts/nspire.dtsi
+++ b/arch/arm/boot/dts/nspire.dtsi
@@ -20,7 +20,7 @@
20 }; 20 };
21 }; 21 };
22 22
23 bootrom: bootrom@00000000 { 23 bootrom: bootrom@0 {
24 reg = <0x00000000 0x80000>; 24 reg = <0x00000000 0x80000>;
25 }; 25 };
26 26
diff --git a/arch/arm/boot/dts/omap2420-n8x0-common.dtsi b/arch/arm/boot/dts/omap2420-n8x0-common.dtsi
index 1de80c7886ab..1df3ace3af92 100644
--- a/arch/arm/boot/dts/omap2420-n8x0-common.dtsi
+++ b/arch/arm/boot/dts/omap2420-n8x0-common.dtsi
@@ -7,6 +7,10 @@
7 reg = <0x80000000 0x8000000>; /* 128 MB */ 7 reg = <0x80000000 0x8000000>; /* 128 MB */
8 }; 8 };
9 9
10 chosen {
11 stdout-path = &uart3;
12 };
13
10 ocp { 14 ocp {
11 i2c0 { 15 i2c0 {
12 compatible = "i2c-cbus-gpio"; 16 compatible = "i2c-cbus-gpio";
diff --git a/arch/arm/boot/dts/omap3-evm-37xx.dts b/arch/arm/boot/dts/omap3-evm-37xx.dts
index c963b31ec3b3..5a4ba0aea447 100644
--- a/arch/arm/boot/dts/omap3-evm-37xx.dts
+++ b/arch/arm/boot/dts/omap3-evm-37xx.dts
@@ -9,146 +9,11 @@
9 9
10#include "omap36xx.dtsi" 10#include "omap36xx.dtsi"
11#include "omap3-evm-common.dtsi" 11#include "omap3-evm-common.dtsi"
12 12#include "omap3-evm-processor-common.dtsi"
13 13
14/ { 14/ {
15 model = "TI OMAP37XX EVM (TMDSEVM3730)"; 15 model = "TI OMAP37XX EVM (TMDSEVM3730)";
16 compatible = "ti,omap3-evm-37xx", "ti,omap3630", "ti,omap3"; 16 compatible = "ti,omap3-evm-37xx", "ti,omap3630", "ti,omap3";
17
18 memory@80000000 {
19 device_type = "memory";
20 reg = <0x80000000 0x10000000>; /* 256 MB */
21 };
22
23 wl12xx_vmmc: wl12xx_vmmc {
24 pinctrl-names = "default";
25 pinctrl-0 = <&wl12xx_gpio>;
26 };
27};
28
29&dss {
30 pinctrl-names = "default";
31 pinctrl-0 = <
32 &dss_dpi_pins1
33 &dss_dpi_pins2
34 >;
35};
36
37&hsusb2_phy {
38 pinctrl-names = "default";
39 pinctrl-0 = <&ehci_phy_pins>;
40};
41
42&omap3_pmx_core {
43 pinctrl-names = "default";
44 pinctrl-0 = <&on_board_gpio_61 &hsusb2_pins>;
45
46 dss_dpi_pins1: pinmux_dss_dpi_pins2 {
47 pinctrl-single,pins = <
48 OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */
49 OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0) /* dss_hsync.dss_hsync */
50 OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0) /* dss_vsync.dss_vsync */
51 OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0) /* dss_acbias.dss_acbias */
52
53 OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0) /* dss_data6.dss_data6 */
54 OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0) /* dss_data7.dss_data7 */
55 OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0) /* dss_data8.dss_data8 */
56 OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0) /* dss_data9.dss_data9 */
57 OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0) /* dss_data10.dss_data10 */
58 OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0) /* dss_data11.dss_data11 */
59 OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0) /* dss_data12.dss_data12 */
60 OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0) /* dss_data13.dss_data13 */
61 OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0) /* dss_data14.dss_data14 */
62 OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0) /* dss_data15.dss_data15 */
63 OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0) /* dss_data16.dss_data16 */
64 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0) /* dss_data17.dss_data17 */
65
66 OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE3) /* dss_data18.dss_data0 */
67 OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE3) /* dss_data19.dss_data1 */
68 OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE3) /* dss_data20.dss_data2 */
69 OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE3) /* dss_data21.dss_data3 */
70 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE3) /* dss_data22.dss_data4 */
71 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE3) /* dss_data23.dss_data5 */
72 >;
73 };
74
75 mmc1_pins: pinmux_mmc1_pins {
76 pinctrl-single,pins = <
77 OMAP3_CORE1_IOPAD(0x2144, PIN_OUTPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */
78 OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */
79 OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */
80 OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */
81 OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */
82 OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */
83 OMAP3_CORE1_IOPAD(0x2150, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat4.sdmmc1_dat4 */
84 OMAP3_CORE1_IOPAD(0x2152, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat5.sdmmc1_dat5 */
85 OMAP3_CORE1_IOPAD(0x2154, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat6.sdmmc1_dat6 */
86 OMAP3_CORE1_IOPAD(0x2156, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat7.sdmmc1_dat7 */
87 >;
88 };
89
90 /* NOTE: Clocked externally, needs INPUT also for sdmmc2_clk.sdmmc2_clk */
91 mmc2_pins: pinmux_mmc2_pins {
92 pinctrl-single,pins = <
93 OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk.sdmmc2_clk */
94 OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd.sdmmc2_cmd */
95 OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0.sdmmc2_dat0 */
96 OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1.sdmmc2_dat1 */
97 OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2.sdmmc2_dat2 */
98 OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3.sdmmc2_dat3 */
99 >;
100 };
101
102 uart3_pins: pinmux_uart3_pins {
103 pinctrl-single,pins = <
104 OMAP3_CORE1_IOPAD(0x219e, WAKEUP_EN | PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
105 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
106 >;
107 };
108
109 /* Devices are routed with gpmc_nbe1.gpio_61 to on-board devices */
110 on_board_gpio_61: pinmux_ehci_port_select_pins {
111 pinctrl-single,pins = <
112 OMAP3_CORE1_IOPAD(0x20c8, PIN_OUTPUT | MUX_MODE4)
113 >;
114 };
115
116 /* Used by OHCI and EHCI. OHCI won't work without external phy */
117 hsusb2_pins: pinmux_hsusb2_pins {
118 pinctrl-single,pins = <
119
120 /* mcspi1_cs3.hsusb2_data2 */
121 OMAP3_CORE1_IOPAD(0x21d4, PIN_INPUT_PULLDOWN | MUX_MODE3)
122
123 /* mcspi2_clk.hsusb2_data7 */
124 OMAP3_CORE1_IOPAD(0x21d6, PIN_INPUT_PULLDOWN | MUX_MODE3)
125
126 /* mcspi2_simo.hsusb2_data4 */
127 OMAP3_CORE1_IOPAD(0x21d8, PIN_INPUT_PULLDOWN | MUX_MODE3)
128
129 /* mcspi2_somi.hsusb2_data5 */
130 OMAP3_CORE1_IOPAD(0x21da, PIN_INPUT_PULLDOWN | MUX_MODE3)
131
132 /* mcspi2_cs0.hsusb2_data6 */
133 OMAP3_CORE1_IOPAD(0x21dc, PIN_INPUT_PULLDOWN | MUX_MODE3)
134
135 /* mcspi2_cs1.hsusb2_data3 */
136 OMAP3_CORE1_IOPAD(0x21de, PIN_INPUT_PULLDOWN | MUX_MODE3)
137 >;
138 };
139
140 wl12xx_gpio: pinmux_wl12xx_gpio {
141 pinctrl-single,pins = <
142 OMAP3_CORE1_IOPAD(0x2180, PIN_OUTPUT | MUX_MODE4) /* uart1_cts.gpio_150 */
143 OMAP3_CORE1_IOPAD(0x217e, PIN_INPUT | MUX_MODE4) /* uart1_rts.gpio_149 */
144 >;
145 };
146
147 smsc911x_pins: pinmux_smsc911x_pins {
148 pinctrl-single,pins = <
149 OMAP3_CORE1_IOPAD(0x21d2, PIN_INPUT | MUX_MODE4) /* mcspi1_cs2.gpio_176 */
150 >;
151 };
152}; 17};
153 18
154&omap3_pmx_core2 { 19&omap3_pmx_core2 {
@@ -191,74 +56,7 @@
191 }; 56 };
192}; 57};
193 58
194&omap3_pmx_wkup {
195 dss_dpi_pins2: pinmux_dss_dpi_pins1 {
196 pinctrl-single,pins = <
197 OMAP3_WKUP_IOPAD(0x2a0a, PIN_OUTPUT | MUX_MODE3) /* sys_boot0.dss_data18 */
198 OMAP3_WKUP_IOPAD(0x2a0c, PIN_OUTPUT | MUX_MODE3) /* sys_boot1.dss_data19 */
199 OMAP3_WKUP_IOPAD(0x2a10, PIN_OUTPUT | MUX_MODE3) /* sys_boot3.dss_data20 */
200 OMAP3_WKUP_IOPAD(0x2a12, PIN_OUTPUT | MUX_MODE3) /* sys_boot4.dss_data21 */
201 OMAP3_WKUP_IOPAD(0x2a14, PIN_OUTPUT | MUX_MODE3) /* sys_boot5.dss_data22 */
202 OMAP3_WKUP_IOPAD(0x2a16, PIN_OUTPUT | MUX_MODE3) /* sys_boot6.dss_data23 */
203 >;
204 };
205};
206
207&mmc1 {
208 pinctrl-names = "default";
209 pinctrl-0 = <&mmc1_pins>;
210};
211
212&mmc2 {
213 pinctrl-names = "default";
214 pinctrl-0 = <&mmc2_pins>;
215};
216
217&mmc3 {
218 status = "disabled";
219};
220
221&uart1 {
222 interrupts-extended = <&intc 72 &omap3_pmx_core OMAP3_UART1_RX>;
223};
224
225&uart2 {
226 interrupts-extended = <&intc 73 &omap3_pmx_core OMAP3_UART2_RX>;
227};
228
229&uart3 {
230 interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
231 pinctrl-names = "default";
232 pinctrl-0 = <&uart3_pins>;
233};
234
235/*
236 * GPIO_61 (nUSB2_EN_1V8) must be low to enable on-board EHCI USB2 interface
237 * for bus switch SN74CB3Q3384A, level-shifter SN74AVC16T245DGGR, and 1.8V.
238 */
239&gpio2 {
240 en_usb2_port {
241 gpio-hog;
242 gpios = <29 GPIO_ACTIVE_HIGH>; /* gpio_61 */
243 output-low;
244 line-name = "enable usb2 port";
245 };
246};
247
248/* T2_GPIO_2 low to route GPIO_61 to on-board devices */
249&twl_gpio {
250 en_on_board_gpio_61 {
251 gpio-hog;
252 gpios = <2 GPIO_ACTIVE_HIGH>;
253 output-low;
254 line-name = "en_hsusb2_clk";
255 };
256};
257
258&gpmc { 59&gpmc {
259 ranges = <0 0 0x30000000 0x1000000>, /* CS0: 16MB for NAND */
260 <5 0 0x2c000000 0x01000000>;
261
262 nand@0,0 { 60 nand@0,0 {
263 compatible = "ti,omap2-nand"; 61 compatible = "ti,omap2-nand";
264 reg = <0 0 4>; /* CS0, offset 0, IO size 4 */ 62 reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
@@ -309,9 +107,4 @@
309 reg = <0x780000 0x1f880000>; 107 reg = <0x780000 0x1f880000>;
310 }; 108 };
311 }; 109 };
312
313 ethernet@gpmc {
314 pinctrl-names = "default";
315 pinctrl-0 = <&smsc911x_pins>;
316 };
317}; 110};
diff --git a/arch/arm/boot/dts/omap3-evm-processor-common.dtsi b/arch/arm/boot/dts/omap3-evm-processor-common.dtsi
new file mode 100644
index 000000000000..ce7f42f9448c
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-evm-processor-common.dtsi
@@ -0,0 +1,216 @@
1/*
2 * Common support for omap3 EVM 35xx/37xx processor modules
3 */
4
5/ {
6 memory@80000000 {
7 device_type = "memory";
8 reg = <0x80000000 0x10000000>; /* 256 MB */
9 };
10
11 wl12xx_vmmc: wl12xx_vmmc {
12 pinctrl-names = "default";
13 pinctrl-0 = <&wl12xx_gpio>;
14 };
15};
16
17&dss {
18 vdds_dsi-supply = <&vpll2>;
19 vdda_video-supply = <&lcd_3v3>;
20 pinctrl-names = "default";
21 pinctrl-0 = <
22 &dss_dpi_pins1
23 &dss_dpi_pins2
24 >;
25};
26
27&hsusb2_phy {
28 pinctrl-names = "default";
29 pinctrl-0 = <&ehci_phy_pins>;
30};
31
32&omap3_pmx_core {
33 pinctrl-names = "default";
34 pinctrl-0 = <&on_board_gpio_61 &hsusb2_pins>;
35
36 dss_dpi_pins1: pinmux_dss_dpi_pins2 {
37 pinctrl-single,pins = <
38 OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */
39 OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0) /* dss_hsync.dss_hsync */
40 OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0) /* dss_vsync.dss_vsync */
41 OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0) /* dss_acbias.dss_acbias */
42
43 OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0) /* dss_data6.dss_data6 */
44 OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0) /* dss_data7.dss_data7 */
45 OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0) /* dss_data8.dss_data8 */
46 OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0) /* dss_data9.dss_data9 */
47 OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0) /* dss_data10.dss_data10 */
48 OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0) /* dss_data11.dss_data11 */
49 OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0) /* dss_data12.dss_data12 */
50 OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0) /* dss_data13.dss_data13 */
51 OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0) /* dss_data14.dss_data14 */
52 OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0) /* dss_data15.dss_data15 */
53 OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0) /* dss_data16.dss_data16 */
54 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0) /* dss_data17.dss_data17 */
55
56 OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE3) /* dss_data18.dss_data0 */
57 OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE3) /* dss_data19.dss_data1 */
58 OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE3) /* dss_data20.dss_data2 */
59 OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE3) /* dss_data21.dss_data3 */
60 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE3) /* dss_data22.dss_data4 */
61 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE3) /* dss_data23.dss_data5 */
62 >;
63 };
64
65 mmc1_pins: pinmux_mmc1_pins {
66 pinctrl-single,pins = <
67 OMAP3_CORE1_IOPAD(0x2144, PIN_OUTPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */
68 OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */
69 OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */
70 OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */
71 OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */
72 OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */
73 OMAP3_CORE1_IOPAD(0x2150, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat4.sdmmc1_dat4 */
74 OMAP3_CORE1_IOPAD(0x2152, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat5.sdmmc1_dat5 */
75 OMAP3_CORE1_IOPAD(0x2154, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat6.sdmmc1_dat6 */
76 OMAP3_CORE1_IOPAD(0x2156, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat7.sdmmc1_dat7 */
77 >;
78 };
79
80 /* NOTE: Clocked externally, needs INPUT also for sdmmc2_clk.sdmmc2_clk */
81 mmc2_pins: pinmux_mmc2_pins {
82 pinctrl-single,pins = <
83 OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk.sdmmc2_clk */
84 OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd.sdmmc2_cmd */
85 OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0.sdmmc2_dat0 */
86 OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1.sdmmc2_dat1 */
87 OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2.sdmmc2_dat2 */
88 OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3.sdmmc2_dat3 */
89 >;
90 };
91
92 uart3_pins: pinmux_uart3_pins {
93 pinctrl-single,pins = <
94 OMAP3_CORE1_IOPAD(0x219e, WAKEUP_EN | PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
95 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
96 >;
97 };
98
99 /* Devices are routed with gpmc_nbe1.gpio_61 to on-board devices */
100 on_board_gpio_61: pinmux_ehci_port_select_pins {
101 pinctrl-single,pins = <
102 OMAP3_CORE1_IOPAD(0x20c8, PIN_OUTPUT | MUX_MODE4)
103 >;
104 };
105
106 /* Used by OHCI and EHCI. OHCI won't work without external phy */
107 hsusb2_pins: pinmux_hsusb2_pins {
108 pinctrl-single,pins = <
109
110 /* mcspi1_cs3.hsusb2_data2 */
111 OMAP3_CORE1_IOPAD(0x21d4, PIN_INPUT_PULLDOWN | MUX_MODE3)
112
113 /* mcspi2_clk.hsusb2_data7 */
114 OMAP3_CORE1_IOPAD(0x21d6, PIN_INPUT_PULLDOWN | MUX_MODE3)
115
116 /* mcspi2_simo.hsusb2_data4 */
117 OMAP3_CORE1_IOPAD(0x21d8, PIN_INPUT_PULLDOWN | MUX_MODE3)
118
119 /* mcspi2_somi.hsusb2_data5 */
120 OMAP3_CORE1_IOPAD(0x21da, PIN_INPUT_PULLDOWN | MUX_MODE3)
121
122 /* mcspi2_cs0.hsusb2_data6 */
123 OMAP3_CORE1_IOPAD(0x21dc, PIN_INPUT_PULLDOWN | MUX_MODE3)
124
125 /* mcspi2_cs1.hsusb2_data3 */
126 OMAP3_CORE1_IOPAD(0x21de, PIN_INPUT_PULLDOWN | MUX_MODE3)
127 >;
128 };
129
130 wl12xx_gpio: pinmux_wl12xx_gpio {
131 pinctrl-single,pins = <
132 OMAP3_CORE1_IOPAD(0x2180, PIN_OUTPUT | MUX_MODE4) /* uart1_cts.gpio_150 */
133 OMAP3_CORE1_IOPAD(0x217e, PIN_INPUT | MUX_MODE4) /* uart1_rts.gpio_149 */
134 >;
135 };
136
137 smsc911x_pins: pinmux_smsc911x_pins {
138 pinctrl-single,pins = <
139 OMAP3_CORE1_IOPAD(0x21d2, PIN_INPUT | MUX_MODE4) /* mcspi1_cs2.gpio_176 */
140 >;
141 };
142};
143
144&omap3_pmx_wkup {
145 dss_dpi_pins2: pinmux_dss_dpi_pins1 {
146 pinctrl-single,pins = <
147 OMAP3_WKUP_IOPAD(0x2a0a, PIN_OUTPUT | MUX_MODE3) /* sys_boot0.dss_data18 */
148 OMAP3_WKUP_IOPAD(0x2a0c, PIN_OUTPUT | MUX_MODE3) /* sys_boot1.dss_data19 */
149 OMAP3_WKUP_IOPAD(0x2a10, PIN_OUTPUT | MUX_MODE3) /* sys_boot3.dss_data20 */
150 OMAP3_WKUP_IOPAD(0x2a12, PIN_OUTPUT | MUX_MODE3) /* sys_boot4.dss_data21 */
151 OMAP3_WKUP_IOPAD(0x2a14, PIN_OUTPUT | MUX_MODE3) /* sys_boot5.dss_data22 */
152 OMAP3_WKUP_IOPAD(0x2a16, PIN_OUTPUT | MUX_MODE3) /* sys_boot6.dss_data23 */
153 >;
154 };
155};
156
157&mmc1 {
158 pinctrl-names = "default";
159 pinctrl-0 = <&mmc1_pins>;
160};
161
162&mmc2 {
163 pinctrl-names = "default";
164 pinctrl-0 = <&mmc2_pins>;
165};
166
167&mmc3 {
168 status = "disabled";
169};
170
171&uart1 {
172 interrupts-extended = <&intc 72 &omap3_pmx_core OMAP3_UART1_RX>;
173};
174
175&uart2 {
176 interrupts-extended = <&intc 73 &omap3_pmx_core OMAP3_UART2_RX>;
177};
178
179&uart3 {
180 interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
181 pinctrl-names = "default";
182 pinctrl-0 = <&uart3_pins>;
183};
184
185/*
186 * GPIO_61 (nUSB2_EN_1V8) must be low to enable on-board EHCI USB2 interface
187 * for bus switch SN74CB3Q3384A, level-shifter SN74AVC16T245DGGR, and 1.8V.
188 */
189&gpio2 {
190 en_usb2_port {
191 gpio-hog;
192 gpios = <29 GPIO_ACTIVE_HIGH>; /* gpio_61 */
193 output-low;
194 line-name = "enable usb2 port";
195 };
196};
197
198/* T2_GPIO_2 low to route GPIO_61 to on-board devices */
199&twl_gpio {
200 en_on_board_gpio_61 {
201 gpio-hog;
202 gpios = <2 GPIO_ACTIVE_HIGH>;
203 output-low;
204 line-name = "en_hsusb2_clk";
205 };
206};
207
208&gpmc {
209 ranges = <0 0 0x30000000 0x1000000>, /* CS0: 16MB for NAND */
210 <5 0 0x2c000000 0x01000000>; /* CS5: 16MB for LAN9220 */
211
212 ethernet@gpmc {
213 pinctrl-names = "default";
214 pinctrl-0 = <&smsc911x_pins>;
215 };
216};
diff --git a/arch/arm/boot/dts/omap3-evm.dts b/arch/arm/boot/dts/omap3-evm.dts
index 99b2bfcd1059..21a3b88aef0c 100644
--- a/arch/arm/boot/dts/omap3-evm.dts
+++ b/arch/arm/boot/dts/omap3-evm.dts
@@ -9,13 +9,81 @@
9 9
10#include "omap34xx.dtsi" 10#include "omap34xx.dtsi"
11#include "omap3-evm-common.dtsi" 11#include "omap3-evm-common.dtsi"
12#include "omap3-evm-processor-common.dtsi"
12 13
13/ { 14/ {
14 model = "TI OMAP35XX EVM (TMDSEVM3530)"; 15 model = "TI OMAP35XX EVM (TMDSEVM3530)";
15 compatible = "ti,omap3-evm", "ti,omap3"; 16 compatible = "ti,omap3-evm", "ti,omap3430", "ti,omap3";
17};
18
19&omap3_pmx_core2 {
20 pinctrl-names = "default";
21 pinctrl-0 = <&hsusb2_2_pins>;
22
23 ehci_phy_pins: pinmux_ehci_phy_pins {
24 pinctrl-single,pins = <
25
26 /* EHCI PHY reset GPIO etk_d7.gpio_21 */
27 OMAP3430_CORE2_IOPAD(0x25ea, PIN_OUTPUT | MUX_MODE4)
28
29 /* EHCI VBUS etk_d8.gpio_22 */
30 OMAP3430_CORE2_IOPAD(0x25ec, PIN_OUTPUT | MUX_MODE4)
31 >;
32 };
33
34 /* Used by OHCI and EHCI. OHCI won't work without external phy */
35 hsusb2_2_pins: pinmux_hsusb2_2_pins {
36 pinctrl-single,pins = <
37
38 /* etk_d10.hsusb2_clk */
39 OMAP3430_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3)
40
41 /* etk_d11.hsusb2_stp */
42 OMAP3430_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3)
43
44 /* etk_d12.hsusb2_dir */
45 OMAP3430_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3)
46
47 /* etk_d13.hsusb2_nxt */
48 OMAP3430_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3)
49
50 /* etk_d14.hsusb2_data0 */
51 OMAP3430_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3)
52
53 /* etk_d15.hsusb2_data1 */
54 OMAP3430_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3)
55 >;
56 };
57};
58
59&gpmc {
60 nand@0,0 {
61 compatible = "ti,omap2-nand";
62 reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
63 interrupt-parent = <&gpmc>;
64 interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
65 <1 IRQ_TYPE_NONE>; /* termcount */
66 linux,mtd-name= "micron,mt29f2g16abdhc";
67 nand-bus-width = <16>;
68 gpmc,device-width = <2>;
69 ti,nand-ecc-opt = "bch8";
70
71 gpmc,sync-clk-ps = <0>;
72 gpmc,cs-on-ns = <0>;
73 gpmc,cs-rd-off-ns = <44>;
74 gpmc,cs-wr-off-ns = <44>;
75 gpmc,adv-on-ns = <6>;
76 gpmc,adv-rd-off-ns = <34>;
77 gpmc,adv-wr-off-ns = <44>;
78 gpmc,we-off-ns = <40>;
79 gpmc,oe-off-ns = <54>;
80 gpmc,access-ns = <64>;
81 gpmc,rd-cycle-ns = <82>;
82 gpmc,wr-cycle-ns = <82>;
83 gpmc,wr-access-ns = <40>;
84 gpmc,wr-data-mux-bus-ns = <0>;
16 85
17 memory@80000000 { 86 #address-cells = <1>;
18 device_type = "memory"; 87 #size-cells = <1>;
19 reg = <0x80000000 0x10000000>; /* 256 MB */
20 }; 88 };
21}; 89};
diff --git a/arch/arm/boot/dts/omap3-lilly-a83x.dtsi b/arch/arm/boot/dts/omap3-lilly-a83x.dtsi
index fa611a5e4850..343a36d8031d 100644
--- a/arch/arm/boot/dts/omap3-lilly-a83x.dtsi
+++ b/arch/arm/boot/dts/omap3-lilly-a83x.dtsi
@@ -257,7 +257,7 @@
257 pinctrl-names = "default"; 257 pinctrl-names = "default";
258 pinctrl-0 = <&i2c3_pins>; 258 pinctrl-0 = <&i2c3_pins>;
259 gpiom1: gpio@20 { 259 gpiom1: gpio@20 {
260 compatible = "mcp,mcp23017"; 260 compatible = "microchip,mcp23017";
261 gpio-controller; 261 gpio-controller;
262 #gpio-cells = <2>; 262 #gpio-cells = <2>;
263 reg = <0x20>; 263 reg = <0x20>;
diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
index 4acd32a1c4ef..669c51c00c00 100644
--- a/arch/arm/boot/dts/omap3-n900.dts
+++ b/arch/arm/boot/dts/omap3-n900.dts
@@ -791,7 +791,7 @@
791 }; 791 };
792 792
793 /* D/A converter for auto-focus */ 793 /* D/A converter for auto-focus */
794 ad5820: dac@0c { 794 ad5820: dac@c {
795 compatible = "adi,ad5820"; 795 compatible = "adi,ad5820";
796 reg = <0x0c>; 796 reg = <0x0c>;
797 797
diff --git a/arch/arm/boot/dts/omap3-panel-sharp-ls037v7dw01.dtsi b/arch/arm/boot/dts/omap3-panel-sharp-ls037v7dw01.dtsi
index 25e100db7b1a..b8b9fcc41ef1 100644
--- a/arch/arm/boot/dts/omap3-panel-sharp-ls037v7dw01.dtsi
+++ b/arch/arm/boot/dts/omap3-panel-sharp-ls037v7dw01.dtsi
@@ -30,6 +30,7 @@
30 compatible = "sharp,ls037v7dw01"; 30 compatible = "sharp,ls037v7dw01";
31 label = "lcd"; 31 label = "lcd";
32 power-supply = <&lcd_3v3>; 32 power-supply = <&lcd_3v3>;
33 envdd-supply = <&lcd_3v3>;
33 34
34 port { 35 port {
35 lcd_in: endpoint { 36 lcd_in: endpoint {
diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
index 2b48e51c372a..22c1eee9b07a 100644
--- a/arch/arm/boot/dts/omap4-panda-common.dtsi
+++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
@@ -13,6 +13,10 @@
13 reg = <0x80000000 0x40000000>; /* 1 GB */ 13 reg = <0x80000000 0x40000000>; /* 1 GB */
14 }; 14 };
15 15
16 chosen {
17 stdout-path = &uart3;
18 };
19
16 aliases { 20 aliases {
17 display0 = &dvi0; 21 display0 = &dvi0;
18 display1 = &hdmi0; 22 display1 = &hdmi0;
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index f69de916b06a..1dc5a76b3c71 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -828,7 +828,7 @@
828 828
829 /* 829 /*
830 * Child device unsupported by davinci-mcasp. At least 830 * Child device unsupported by davinci-mcasp. At least
831 * TX path is disabled for omap4, and only DIT mode 831 * RX path is disabled for omap4, and only DIT mode
832 * works with no I2S. See also old Android kernel 832 * works with no I2S. See also old Android kernel
833 * omap-mcasp driver for more information. 833 * omap-mcasp driver for more information.
834 */ 834 */
diff --git a/arch/arm/boot/dts/omap5-board-common.dtsi b/arch/arm/boot/dts/omap5-board-common.dtsi
index 7824b2631cb6..575ecffb0e9e 100644
--- a/arch/arm/boot/dts/omap5-board-common.dtsi
+++ b/arch/arm/boot/dts/omap5-board-common.dtsi
@@ -14,6 +14,10 @@
14 display0 = &hdmi0; 14 display0 = &hdmi0;
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/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
index b86ac7df620d..4cd0005e462f 100644
--- a/arch/arm/boot/dts/omap5.dtsi
+++ b/arch/arm/boot/dts/omap5.dtsi
@@ -194,7 +194,7 @@
194 pbias_mmc_reg: pbias_mmc_omap5 { 194 pbias_mmc_reg: pbias_mmc_omap5 {
195 regulator-name = "pbias_mmc_omap5"; 195 regulator-name = "pbias_mmc_omap5";
196 regulator-min-microvolt = <1800000>; 196 regulator-min-microvolt = <1800000>;
197 regulator-max-microvolt = <3000000>; 197 regulator-max-microvolt = <3300000>;
198 }; 198 };
199 }; 199 };
200 }; 200 };
diff --git a/arch/arm/boot/dts/owl-s500-cubieboard6.dts b/arch/arm/boot/dts/owl-s500-cubieboard6.dts
new file mode 100644
index 000000000000..ea4e01bce8d1
--- /dev/null
+++ b/arch/arm/boot/dts/owl-s500-cubieboard6.dts
@@ -0,0 +1,44 @@
1/*
2 * Cubietech CubieBoard6
3 *
4 * Copyright (c) 2017 Andreas Färber
5 *
6 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
7 */
8
9/dts-v1/;
10
11#include "owl-s500.dtsi"
12
13/ {
14 compatible = "cubietech,cubieboard6", "actions,s500";
15 model = "CubieBoard6";
16
17 aliases {
18 serial3 = &uart3;
19 };
20
21 chosen {
22 stdout-path = "serial3:115200n8";
23 };
24
25 memory@0 {
26 device_type = "memory";
27 reg = <0x0 0x80000000>;
28 };
29
30 uart3_clk: uart3-clk {
31 compatible = "fixed-clock";
32 clock-frequency = <921600>;
33 #clock-cells = <0>;
34 };
35};
36
37&timer {
38 clocks = <&hosc>;
39};
40
41&uart3 {
42 status = "okay";
43 clocks = <&uart3_clk>;
44};
diff --git a/arch/arm/boot/dts/owl-s500-guitar-bb-rev-b.dts b/arch/arm/boot/dts/owl-s500-guitar-bb-rev-b.dts
index 521463d4cac6..7be1d2eaf3f0 100644
--- a/arch/arm/boot/dts/owl-s500-guitar-bb-rev-b.dts
+++ b/arch/arm/boot/dts/owl-s500-guitar-bb-rev-b.dts
@@ -19,8 +19,15 @@
19 chosen { 19 chosen {
20 stdout-path = "serial3:115200n8"; 20 stdout-path = "serial3:115200n8";
21 }; 21 };
22
23 uart3_clk: uart3-clk {
24 compatible = "fixed-clock";
25 clock-frequency = <921600>;
26 #clock-cells = <0>;
27 };
22}; 28};
23 29
24&uart3 { 30&uart3 {
25 status = "okay"; 31 status = "okay";
32 clocks = <&uart3_clk>;
26}; 33};
diff --git a/arch/arm/boot/dts/owl-s500.dtsi b/arch/arm/boot/dts/owl-s500.dtsi
index 51a48741d4c0..43c9980a4260 100644
--- a/arch/arm/boot/dts/owl-s500.dtsi
+++ b/arch/arm/boot/dts/owl-s500.dtsi
@@ -7,6 +7,7 @@
7 */ 7 */
8 8
9#include <dt-bindings/interrupt-controller/arm-gic.h> 9#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/power/owl-s500-powergate.h>
10 11
11/ { 12/ {
12 compatible = "actions,s500"; 13 compatible = "actions,s500";
@@ -43,6 +44,7 @@
43 compatible = "arm,cortex-a9"; 44 compatible = "arm,cortex-a9";
44 reg = <0x2>; 45 reg = <0x2>;
45 enable-method = "actions,s500-smp"; 46 enable-method = "actions,s500-smp";
47 power-domains = <&sps S500_PD_CPU2>;
46 }; 48 };
47 49
48 cpu3: cpu@3 { 50 cpu3: cpu@3 {
@@ -50,6 +52,7 @@
50 compatible = "arm,cortex-a9"; 52 compatible = "arm,cortex-a9";
51 reg = <0x3>; 53 reg = <0x3>;
52 enable-method = "actions,s500-smp"; 54 enable-method = "actions,s500-smp";
55 power-domains = <&sps S500_PD_CPU3>;
53 }; 56 };
54 }; 57 };
55 58
diff --git a/arch/arm/boot/dts/ox810se.dtsi b/arch/arm/boot/dts/ox810se.dtsi
index 46aa6db8353a..c2b48a1838eb 100644
--- a/arch/arm/boot/dts/ox810se.dtsi
+++ b/arch/arm/boot/dts/ox810se.dtsi
@@ -207,7 +207,7 @@
207 }; 207 };
208 }; 208 };
209 209
210 gpio0: gpio@000000 { 210 gpio0: gpio@0 {
211 compatible = "oxsemi,ox810se-gpio"; 211 compatible = "oxsemi,ox810se-gpio";
212 reg = <0x000000 0x100000>; 212 reg = <0x000000 0x100000>;
213 interrupts = <21>; 213 interrupts = <21>;
@@ -296,7 +296,7 @@
296 compatible = "simple-bus"; 296 compatible = "simple-bus";
297 ranges = <0 0x45000000 0x1000000>; 297 ranges = <0 0x45000000 0x1000000>;
298 298
299 sys: sys-ctrl@000000 { 299 sys: sys-ctrl@0 {
300 compatible = "oxsemi,ox810se-sys-ctrl", "syscon", "simple-mfd"; 300 compatible = "oxsemi,ox810se-sys-ctrl", "syscon", "simple-mfd";
301 reg = <0x000000 0x100000>; 301 reg = <0x000000 0x100000>;
302 302
diff --git a/arch/arm/boot/dts/ox820.dtsi b/arch/arm/boot/dts/ox820.dtsi
index 459207536a46..085bbd33eadc 100644
--- a/arch/arm/boot/dts/ox820.dtsi
+++ b/arch/arm/boot/dts/ox820.dtsi
@@ -173,7 +173,7 @@
173 }; 173 };
174 }; 174 };
175 175
176 gpio0: gpio@000000 { 176 gpio0: gpio@0 {
177 compatible = "oxsemi,ox820-gpio"; 177 compatible = "oxsemi,ox820-gpio";
178 reg = <0x000000 0x100000>; 178 reg = <0x000000 0x100000>;
179 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 179 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/picoxcell-pc3x2.dtsi b/arch/arm/boot/dts/picoxcell-pc3x2.dtsi
index 533919e96eae..a1266cf8776c 100644
--- a/arch/arm/boot/dts/picoxcell-pc3x2.dtsi
+++ b/arch/arm/boot/dts/picoxcell-pc3x2.dtsi
@@ -124,7 +124,7 @@
124 #size-cells = <1>; 124 #size-cells = <1>;
125 ranges = <0 0x200000 0x80000>; 125 ranges = <0 0x200000 0x80000>;
126 126
127 rtc0: rtc@00000 { 127 rtc0: rtc@0 {
128 compatible = "picochip,pc3x2-rtc"; 128 compatible = "picochip,pc3x2-rtc";
129 clock-freq = <200000000>; 129 clock-freq = <200000000>;
130 reg = <0x00000 0xf>; 130 reg = <0x00000 0xf>;
diff --git a/arch/arm/boot/dts/picoxcell-pc3x3.dtsi b/arch/arm/boot/dts/picoxcell-pc3x3.dtsi
index ab3e80085511..d78cd207eca1 100644
--- a/arch/arm/boot/dts/picoxcell-pc3x3.dtsi
+++ b/arch/arm/boot/dts/picoxcell-pc3x3.dtsi
@@ -223,7 +223,7 @@
223 #size-cells = <1>; 223 #size-cells = <1>;
224 ranges = <0 0x200000 0x80000>; 224 ranges = <0 0x200000 0x80000>;
225 225
226 rtc0: rtc@00000 { 226 rtc0: rtc@0 {
227 compatible = "picochip,pc3x2-rtc"; 227 compatible = "picochip,pc3x2-rtc";
228 clock-freq = <200000000>; 228 clock-freq = <200000000>;
229 reg = <0x00000 0xf>; 229 reg = <0x00000 0xf>;
diff --git a/arch/arm/boot/dts/pm9g45.dts b/arch/arm/boot/dts/pm9g45.dts
index 3139221737ee..be5177221cbb 100644
--- a/arch/arm/boot/dts/pm9g45.dts
+++ b/arch/arm/boot/dts/pm9g45.dts
@@ -127,12 +127,12 @@
127 }; 127 };
128 }; 128 };
129 129
130 usb0: ohci@00700000 { 130 usb0: ohci@700000 {
131 status = "okay"; 131 status = "okay";
132 num-ports = <2>; 132 num-ports = <2>;
133 }; 133 };
134 134
135 usb1: ehci@00800000 { 135 usb1: ehci@800000 {
136 status = "okay"; 136 status = "okay";
137 }; 137 };
138 }; 138 };
diff --git a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
index 9d725f983282..497bb065eb9d 100644
--- a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
+++ b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
@@ -397,23 +397,23 @@
397 xoadc-ref-supply = <&pm8058_l18>; 397 xoadc-ref-supply = <&pm8058_l18>;
398 398
399 /* Board-specific channels */ 399 /* Board-specific channels */
400 mpp5@05 { 400 mpp5@5 {
401 /* Connected to AOUT of ALS sensor */ 401 /* Connected to AOUT of ALS sensor */
402 reg = <0x00 0x05>; 402 reg = <0x00 0x05>;
403 }; 403 };
404 mpp6@06 { 404 mpp6@6 {
405 /* Connected to test point TP43 */ 405 /* Connected to test point TP43 */
406 reg = <0x00 0x06>; 406 reg = <0x00 0x06>;
407 }; 407 };
408 mpp7@07 { 408 mpp7@7 {
409 /* Connected to battery thermistor */ 409 /* Connected to battery thermistor */
410 reg = <0x00 0x07>; 410 reg = <0x00 0x07>;
411 }; 411 };
412 mpp8@08 { 412 mpp8@8 {
413 /* Connected to battery ID detector */ 413 /* Connected to battery ID detector */
414 reg = <0x00 0x08>; 414 reg = <0x00 0x08>;
415 }; 415 };
416 mpp9@09 { 416 mpp9@9 {
417 /* Connected to XO thermistor */ 417 /* Connected to XO thermistor */
418 reg = <0x00 0x09>; 418 reg = <0x00 0x09>;
419 }; 419 };
@@ -512,7 +512,7 @@
512 pinctrl-names = "default"; 512 pinctrl-names = "default";
513 pinctrl-0 = <&dragon_gsbi12_i2c_pins>; 513 pinctrl-0 = <&dragon_gsbi12_i2c_pins>;
514 514
515 ak8975@0c { 515 ak8975@c {
516 compatible = "asahi-kasei,ak8975"; 516 compatible = "asahi-kasei,ak8975";
517 reg = <0x0c>; 517 reg = <0x0c>;
518 /* FIXME: GPIO33 has interrupt 224 on the PM8058 */ 518 /* FIXME: GPIO33 has interrupt 224 on the PM8058 */
diff --git a/arch/arm/boot/dts/qcom-apq8064.dtsi b/arch/arm/boot/dts/qcom-apq8064.dtsi
index 6089c8d56cd5..3ca96e361878 100644
--- a/arch/arm/boot/dts/qcom-apq8064.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8064.dtsi
@@ -591,6 +591,7 @@
591 clocks = <&gcc GSBI6_QUP_CLK>, 591 clocks = <&gcc GSBI6_QUP_CLK>,
592 <&gcc GSBI6_H_CLK>; 592 <&gcc GSBI6_H_CLK>;
593 clock-names = "core", "iface"; 593 clock-names = "core", "iface";
594 status = "disabled";
594 }; 595 };
595 }; 596 };
596 597
@@ -907,11 +908,11 @@
907 usb_hs1_phy: phy { 908 usb_hs1_phy: phy {
908 compatible = "qcom,usb-hs-phy-apq8064", 909 compatible = "qcom,usb-hs-phy-apq8064",
909 "qcom,usb-hs-phy"; 910 "qcom,usb-hs-phy";
910 #phy-cells = <0>;
911 clocks = <&sleep_clk>, <&cxo_board>; 911 clocks = <&sleep_clk>, <&cxo_board>;
912 clock-names = "sleep", "ref"; 912 clock-names = "sleep", "ref";
913 resets = <&usb1 0>; 913 resets = <&usb1 0>;
914 reset-names = "por"; 914 reset-names = "por";
915 #phy-cells = <0>;
915 }; 916 };
916 }; 917 };
917 }; 918 };
@@ -1264,6 +1265,7 @@
1264 dsi0_phy: dsi-phy@4700200 { 1265 dsi0_phy: dsi-phy@4700200 {
1265 compatible = "qcom,dsi-phy-28nm-8960"; 1266 compatible = "qcom,dsi-phy-28nm-8960";
1266 #clock-cells = <1>; 1267 #clock-cells = <1>;
1268 #phy-cells = <0>;
1267 1269
1268 reg = <0x04700200 0x100>, 1270 reg = <0x04700200 0x100>,
1269 <0x04700300 0x200>, 1271 <0x04700300 0x200>,
@@ -1418,6 +1420,7 @@
1418 1420
1419 clocks = <&mmcc HDMI_S_AHB_CLK>; 1421 clocks = <&mmcc HDMI_S_AHB_CLK>;
1420 clock-names = "slave_iface_clk"; 1422 clock-names = "slave_iface_clk";
1423 #phy-cells = <0>;
1421 }; 1424 };
1422 1425
1423 mdp: mdp@5100000 { 1426 mdp: mdp@5100000 {
diff --git a/arch/arm/boot/dts/qcom-msm8660.dtsi b/arch/arm/boot/dts/qcom-msm8660.dtsi
index 221c4584552f..33030f9419fe 100644
--- a/arch/arm/boot/dts/qcom-msm8660.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8660.dtsi
@@ -124,6 +124,73 @@
124 reg = <0x900000 0x4000>; 124 reg = <0x900000 0x4000>;
125 }; 125 };
126 126
127 gsbi6: gsbi@16500000 {
128 compatible = "qcom,gsbi-v1.0.0";
129 cell-index = <12>;
130 reg = <0x16500000 0x100>;
131 clocks = <&gcc GSBI6_H_CLK>;
132 clock-names = "iface";
133 #address-cells = <1>;
134 #size-cells = <1>;
135 ranges;
136
137 syscon-tcsr = <&tcsr>;
138
139 gsbi6_serial: serial@16540000 {
140 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
141 reg = <0x16540000 0x1000>,
142 <0x16500000 0x1000>;
143 interrupts = <GIC_SPI 156 IRQ_TYPE_NONE>;
144 clocks = <&gcc GSBI6_UART_CLK>, <&gcc GSBI6_H_CLK>;
145 clock-names = "core", "iface";
146 status = "disabled";
147 };
148
149 gsbi6_i2c: i2c@16580000 {
150 compatible = "qcom,i2c-qup-v1.1.1";
151 reg = <0x16580000 0x1000>;
152 interrupts = <GIC_SPI 157 IRQ_TYPE_NONE>;
153 clocks = <&gcc GSBI6_QUP_CLK>, <&gcc GSBI6_H_CLK>;
154 clock-names = "core", "iface";
155 #address-cells = <1>;
156 #size-cells = <0>;
157 status = "disabled";
158 };
159 };
160
161 gsbi7: gsbi@16600000 {
162 compatible = "qcom,gsbi-v1.0.0";
163 cell-index = <12>;
164 reg = <0x16600000 0x100>;
165 clocks = <&gcc GSBI7_H_CLK>;
166 clock-names = "iface";
167 #address-cells = <1>;
168 #size-cells = <1>;
169 ranges;
170
171 syscon-tcsr = <&tcsr>;
172
173 gsbi7_serial: serial@16640000 {
174 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
175 reg = <0x16640000 0x1000>,
176 <0x16600000 0x1000>;
177 interrupts = <GIC_SPI 158 IRQ_TYPE_NONE>;
178 clocks = <&gcc GSBI7_UART_CLK>, <&gcc GSBI7_H_CLK>;
179 clock-names = "core", "iface";
180 status = "disabled";
181 };
182
183 gsbi7_i2c: i2c@16680000 {
184 compatible = "qcom,i2c-qup-v1.1.1";
185 reg = <0x16680000 0x1000>;
186 interrupts = <GIC_SPI 159 IRQ_TYPE_NONE>;
187 clocks = <&gcc GSBI7_QUP_CLK>, <&gcc GSBI7_H_CLK>;
188 clock-names = "core", "iface";
189 #address-cells = <1>;
190 #size-cells = <0>;
191 status = "disabled";
192 };
193 };
127 194
128 gsbi8: gsbi@19800000 { 195 gsbi8: gsbi@19800000 {
129 compatible = "qcom,gsbi-v1.0.0"; 196 compatible = "qcom,gsbi-v1.0.0";
@@ -317,37 +384,37 @@
317 #size-cells = <0>; 384 #size-cells = <0>;
318 #io-channel-cells = <2>; 385 #io-channel-cells = <2>;
319 386
320 vcoin: adc-channel@00 { 387 vcoin: adc-channel@0 {
321 reg = <0x00 0x00>; 388 reg = <0x00 0x00>;
322 }; 389 };
323 vbat: adc-channel@01 { 390 vbat: adc-channel@1 {
324 reg = <0x00 0x01>; 391 reg = <0x00 0x01>;
325 }; 392 };
326 dcin: adc-channel@02 { 393 dcin: adc-channel@2 {
327 reg = <0x00 0x02>; 394 reg = <0x00 0x02>;
328 }; 395 };
329 ichg: adc-channel@03 { 396 ichg: adc-channel@3 {
330 reg = <0x00 0x03>; 397 reg = <0x00 0x03>;
331 }; 398 };
332 vph_pwr: adc-channel@04 { 399 vph_pwr: adc-channel@4 {
333 reg = <0x00 0x04>; 400 reg = <0x00 0x04>;
334 }; 401 };
335 usb_vbus: adc-channel@0a { 402 usb_vbus: adc-channel@a {
336 reg = <0x00 0x0a>; 403 reg = <0x00 0x0a>;
337 }; 404 };
338 die_temp: adc-channel@0b { 405 die_temp: adc-channel@b {
339 reg = <0x00 0x0b>; 406 reg = <0x00 0x0b>;
340 }; 407 };
341 ref_625mv: adc-channel@0c { 408 ref_625mv: adc-channel@c {
342 reg = <0x00 0x0c>; 409 reg = <0x00 0x0c>;
343 }; 410 };
344 ref_1250mv: adc-channel@0d { 411 ref_1250mv: adc-channel@d {
345 reg = <0x00 0x0d>; 412 reg = <0x00 0x0d>;
346 }; 413 };
347 ref_325mv: adc-channel@0e { 414 ref_325mv: adc-channel@e {
348 reg = <0x00 0x0e>; 415 reg = <0x00 0x0e>;
349 }; 416 };
350 ref_muxoff: adc-channel@0f { 417 ref_muxoff: adc-channel@f {
351 reg = <0x00 0x0f>; 418 reg = <0x00 0x0f>;
352 }; 419 };
353 }; 420 };
diff --git a/arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dts b/arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dts
new file mode 100644
index 000000000000..d0a5df90b543
--- /dev/null
+++ b/arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dts
@@ -0,0 +1,321 @@
1#include "qcom-msm8974.dtsi"
2#include "qcom-pm8841.dtsi"
3#include "qcom-pm8941.dtsi"
4#include <dt-bindings/gpio/gpio.h>
5#include <dt-bindings/input/input.h>
6#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
7
8
9/ {
10 model = "Fairphone 2";
11 compatible = "fairphone,fp2", "qcom,msm8974";
12
13 aliases {
14 serial0 = &blsp1_uart2;
15 };
16
17 chosen {
18 stdout-path = "serial0:115200n8";
19 };
20
21 gpio-keys {
22 compatible = "gpio-keys";
23 input-name = "gpio-keys";
24
25 pinctrl-names = "default";
26 pinctrl-0 = <&gpio_keys_pin_a>;
27
28 camera-snapshot {
29 label = "camera_snapshot";
30 gpios = <&pm8941_gpios 1 GPIO_ACTIVE_LOW>;
31 linux,code = <KEY_CAMERA>;
32 wakeup-source;
33 debounce-interval = <15>;
34 };
35
36 volume-down {
37 label = "volume_down";
38 gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
39 linux,code = <KEY_VOLUMEDOWN>;
40 wakeup-source;
41 debounce-interval = <15>;
42 };
43
44 volume-up {
45 label = "volume_up";
46 gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
47 linux,code = <KEY_VOLUMEUP>;
48 wakeup-source;
49 debounce-interval = <15>;
50 };
51 };
52
53 smd {
54 rpm {
55 rpm_requests {
56 pm8841-regulators {
57 s1 {
58 regulator-min-microvolt = <675000>;
59 regulator-max-microvolt = <1050000>;
60 };
61
62 s2 {
63 regulator-min-microvolt = <500000>;
64 regulator-max-microvolt = <1050000>;
65 };
66
67 s3 {
68 regulator-min-microvolt = <1050000>;
69 regulator-max-microvolt = <1050000>;
70 };
71 };
72
73 pm8941-regulators {
74 vdd_l1_l3-supply = <&pm8941_s1>;
75 vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
76 vdd_l4_l11-supply = <&pm8941_s1>;
77 vdd_l5_l7-supply = <&pm8941_s2>;
78 vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
79 vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
80 vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
81 vdd_l21-supply = <&vreg_boost>;
82
83 s1 {
84 regulator-min-microvolt = <1300000>;
85 regulator-max-microvolt = <1300000>;
86
87 regulator-always-on;
88 regulator-boot-on;
89 };
90
91 s2 {
92 regulator-min-microvolt = <2150000>;
93 regulator-max-microvolt = <2150000>;
94
95 regulator-boot-on;
96 };
97
98 s3 {
99 regulator-min-microvolt = <1800000>;
100 regulator-max-microvolt = <1800000>;
101
102 regulator-always-on;
103 regulator-boot-on;
104 };
105
106 l1 {
107 regulator-min-microvolt = <1225000>;
108 regulator-max-microvolt = <1225000>;
109
110 regulator-always-on;
111 regulator-boot-on;
112 };
113
114 l2 {
115 regulator-min-microvolt = <1200000>;
116 regulator-max-microvolt = <1200000>;
117 };
118
119 l3 {
120 regulator-min-microvolt = <1225000>;
121 regulator-max-microvolt = <1225000>;
122 };
123
124 l4 {
125 regulator-min-microvolt = <1225000>;
126 regulator-max-microvolt = <1225000>;
127 };
128
129 l5 {
130 regulator-min-microvolt = <1800000>;
131 regulator-max-microvolt = <1800000>;
132 };
133
134 l6 {
135 regulator-min-microvolt = <1800000>;
136 regulator-max-microvolt = <1800000>;
137
138 regulator-boot-on;
139 };
140
141 l7 {
142 regulator-min-microvolt = <1800000>;
143 regulator-max-microvolt = <1800000>;
144
145 regulator-boot-on;
146 };
147
148 l8 {
149 regulator-min-microvolt = <1800000>;
150 regulator-max-microvolt = <1800000>;
151 };
152
153 l9 {
154 regulator-min-microvolt = <1800000>;
155 regulator-max-microvolt = <2950000>;
156 };
157
158 l10 {
159 regulator-min-microvolt = <1800000>;
160 regulator-max-microvolt = <2950000>;
161 };
162
163 l11 {
164 regulator-min-microvolt = <1225000>;
165 regulator-max-microvolt = <1350000>;
166 };
167
168 l12 {
169 regulator-min-microvolt = <1800000>;
170 regulator-max-microvolt = <1800000>;
171
172 regulator-always-on;
173 regulator-boot-on;
174 };
175
176 l13 {
177 regulator-min-microvolt = <1800000>;
178 regulator-max-microvolt = <2950000>;
179
180 regulator-boot-on;
181 };
182
183 l14 {
184 regulator-min-microvolt = <1800000>;
185 regulator-max-microvolt = <1800000>;
186 };
187
188 l15 {
189 regulator-min-microvolt = <2050000>;
190 regulator-max-microvolt = <2050000>;
191 };
192
193 l16 {
194 regulator-min-microvolt = <2700000>;
195 regulator-max-microvolt = <2700000>;
196 };
197
198 l17 {
199 regulator-min-microvolt = <2850000>;
200 regulator-max-microvolt = <2850000>;
201 };
202
203 l18 {
204 regulator-min-microvolt = <2850000>;
205 regulator-max-microvolt = <2850000>;
206 };
207
208 l19 {
209 regulator-min-microvolt = <2900000>;
210 regulator-max-microvolt = <3350000>;
211 };
212
213 l20 {
214 regulator-min-microvolt = <2950000>;
215 regulator-max-microvolt = <2950000>;
216
217 regulator-boot-on;
218 };
219
220 l21 {
221 regulator-min-microvolt = <2950000>;
222 regulator-max-microvolt = <2950000>;
223
224 regulator-boot-on;
225 };
226
227 l22 {
228 regulator-min-microvolt = <3000000>;
229 regulator-max-microvolt = <3300000>;
230 };
231
232 l23 {
233 regulator-min-microvolt = <3000000>;
234 regulator-max-microvolt = <3000000>;
235 };
236
237 l24 {
238 regulator-min-microvolt = <3075000>;
239 regulator-max-microvolt = <3075000>;
240
241 regulator-boot-on;
242 };
243 };
244 };
245 };
246 };
247};
248
249&soc {
250 serial@f991e000 {
251 status = "ok";
252 };
253
254 pinctrl@fd510000 {
255 sdhc1_pin_a: sdhc1-pin-active {
256 clk {
257 pins = "sdc1_clk";
258 drive-strength = <16>;
259 bias-disable;
260 };
261
262 cmd-data {
263 pins = "sdc1_cmd", "sdc1_data";
264 drive-strength = <10>;
265 bias-pull-up;
266 };
267 };
268 };
269
270 sdhci@f9824900 {
271 status = "ok";
272
273 vmmc-supply = <&pm8941_l20>;
274 vqmmc-supply = <&pm8941_s3>;
275
276 bus-width = <8>;
277 non-removable;
278
279 pinctrl-names = "default";
280 pinctrl-0 = <&sdhc1_pin_a>;
281 };
282
283 usb@f9a55000 {
284 status = "ok";
285
286 phys = <&usb_hs1_phy>;
287 phy-select = <&tcsr 0xb000 0>;
288 extcon = <&smbb>, <&usb_id>;
289 vbus-supply = <&chg_otg>;
290
291 hnp-disable;
292 srp-disable;
293 adp-disable;
294
295 ulpi {
296 phy@a {
297 status = "ok";
298
299 v1p8-supply = <&pm8941_l6>;
300 v3p3-supply = <&pm8941_l24>;
301
302 extcon = <&smbb>;
303 qcom,init-seq = /bits/ 8 <0x1 0x64>;
304 };
305 };
306 };
307};
308
309&spmi_bus {
310 pm8941@0 {
311 gpios@c000 {
312 gpio_keys_pin_a: gpio-keys-active {
313 pins = "gpio1", "gpio2", "gpio5";
314 function = "normal";
315
316 bias-pull-up;
317 power-source = <PM8941_GPIO_S3>;
318 };
319 };
320 };
321};
diff --git a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dts b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dts
new file mode 100644
index 000000000000..e87f2c99060d
--- /dev/null
+++ b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dts
@@ -0,0 +1,641 @@
1#include "qcom-msm8974pro.dtsi"
2#include "qcom-pm8841.dtsi"
3#include "qcom-pm8941.dtsi"
4#include <dt-bindings/gpio/gpio.h>
5#include <dt-bindings/input/input.h>
6#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
7
8/ {
9 model = "Sony Xperia Z2 Tablet";
10 compatible = "sony,xperia-castor", "qcom,msm8974";
11
12 aliases {
13 serial0 = &blsp1_uart2;
14 };
15
16 chosen {
17 stdout-path = "serial0:115200n8";
18 };
19
20 gpio-keys {
21 compatible = "gpio-keys";
22 input-name = "gpio-keys";
23
24 pinctrl-names = "default";
25 pinctrl-0 = <&gpio_keys_pin_a>;
26
27 volume-down {
28 label = "volume_down";
29 gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
30 linux,input-type = <1>;
31 linux,code = <KEY_VOLUMEDOWN>;
32 };
33
34 camera-snapshot {
35 label = "camera_snapshot";
36 gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
37 linux,input-type = <1>;
38 linux,code = <KEY_CAMERA>;
39 };
40
41 camera-focus {
42 label = "camera_focus";
43 gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>;
44 linux,input-type = <1>;
45 linux,code = <KEY_CAMERA_FOCUS>;
46 };
47
48 volume-up {
49 label = "volume_up";
50 gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
51 linux,input-type = <1>;
52 linux,code = <KEY_VOLUMEUP>;
53 };
54 };
55
56 smd {
57 rpm {
58 rpm_requests {
59 pm8941-regulators {
60 vdd_l1_l3-supply = <&pm8941_s1>;
61 vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
62 vdd_l4_l11-supply = <&pm8941_s1>;
63 vdd_l5_l7-supply = <&pm8941_s2>;
64 vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
65 vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
66 vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
67 vdd_l21-supply = <&vreg_boost>;
68
69 s1 {
70 regulator-min-microvolt = <1300000>;
71 regulator-max-microvolt = <1300000>;
72 regulator-always-on;
73 regulator-boot-on;
74 };
75
76 s2 {
77 regulator-min-microvolt = <2150000>;
78 regulator-max-microvolt = <2150000>;
79 regulator-boot-on;
80 };
81
82 s3 {
83 regulator-min-microvolt = <1800000>;
84 regulator-max-microvolt = <1800000>;
85 regulator-always-on;
86 regulator-boot-on;
87
88 regulator-system-load = <154000>;
89 };
90
91 s4 {
92 regulator-min-microvolt = <5000000>;
93 regulator-max-microvolt = <5000000>;
94 };
95
96 l1 {
97 regulator-min-microvolt = <1225000>;
98 regulator-max-microvolt = <1225000>;
99
100 regulator-always-on;
101 regulator-boot-on;
102 };
103
104 l2 {
105 regulator-min-microvolt = <1200000>;
106 regulator-max-microvolt = <1200000>;
107 };
108
109 l3 {
110 regulator-min-microvolt = <1200000>;
111 regulator-max-microvolt = <1200000>;
112 };
113
114 l4 {
115 regulator-min-microvolt = <1225000>;
116 regulator-max-microvolt = <1225000>;
117 };
118
119 l5 {
120 regulator-min-microvolt = <1800000>;
121 regulator-max-microvolt = <1800000>;
122 };
123
124 l6 {
125 regulator-min-microvolt = <1800000>;
126 regulator-max-microvolt = <1800000>;
127
128 regulator-boot-on;
129 };
130
131 l7 {
132 regulator-min-microvolt = <1800000>;
133 regulator-max-microvolt = <1800000>;
134
135 regulator-boot-on;
136 };
137
138 l8 {
139 regulator-min-microvolt = <1800000>;
140 regulator-max-microvolt = <1800000>;
141 };
142
143 l9 {
144 regulator-min-microvolt = <1800000>;
145 regulator-max-microvolt = <2950000>;
146 };
147
148 l11 {
149 regulator-min-microvolt = <1300000>;
150 regulator-max-microvolt = <1350000>;
151 };
152
153 l12 {
154 regulator-min-microvolt = <1800000>;
155 regulator-max-microvolt = <1800000>;
156
157 regulator-always-on;
158 regulator-boot-on;
159 };
160
161 l13 {
162 regulator-min-microvolt = <1800000>;
163 regulator-max-microvolt = <2950000>;
164
165 regulator-boot-on;
166 };
167
168 l14 {
169 regulator-min-microvolt = <1800000>;
170 regulator-max-microvolt = <1800000>;
171 };
172
173 l15 {
174 regulator-min-microvolt = <2050000>;
175 regulator-max-microvolt = <2050000>;
176 };
177
178 l16 {
179 regulator-min-microvolt = <2700000>;
180 regulator-max-microvolt = <2700000>;
181 };
182
183 l17 {
184 regulator-min-microvolt = <2700000>;
185 regulator-max-microvolt = <2700000>;
186 };
187
188 l18 {
189 regulator-min-microvolt = <2850000>;
190 regulator-max-microvolt = <2850000>;
191 };
192
193 l19 {
194 regulator-min-microvolt = <2850000>;
195 regulator-max-microvolt = <2850000>;
196 };
197
198 l20 {
199 regulator-min-microvolt = <2950000>;
200 regulator-max-microvolt = <2950000>;
201
202 regulator-allow-set-load;
203 regulator-boot-on;
204 regulator-allow-set-load;
205 regulator-system-load = <500000>;
206 };
207
208 l21 {
209 regulator-min-microvolt = <2950000>;
210 regulator-max-microvolt = <2950000>;
211
212 regulator-boot-on;
213 };
214
215 l22 {
216 regulator-min-microvolt = <3000000>;
217 regulator-max-microvolt = <3000000>;
218 };
219
220 l23 {
221 regulator-min-microvolt = <2800000>;
222 regulator-max-microvolt = <2800000>;
223 };
224
225 l24 {
226 regulator-min-microvolt = <3075000>;
227 regulator-max-microvolt = <3075000>;
228
229 regulator-boot-on;
230 };
231 };
232 };
233 };
234 };
235
236 vreg_bl_vddio: lcd-backlight-vddio {
237 compatible = "regulator-fixed";
238 regulator-name = "vreg_bl_vddio";
239 regulator-min-microvolt = <3150000>;
240 regulator-max-microvolt = <3150000>;
241
242 gpio = <&msmgpio 69 0>;
243 enable-active-high;
244
245 vin-supply = <&pm8941_s3>;
246 startup-delay-us = <70000>;
247
248 pinctrl-names = "default";
249 pinctrl-0 = <&lcd_backlight_en_pin_a>;
250 };
251
252 vreg_vsp: lcd-dcdc-regulator {
253 compatible = "regulator-fixed";
254 regulator-name = "vreg_vsp";
255 regulator-min-microvolt = <5600000>;
256 regulator-max-microvolt = <5600000>;
257
258 gpio = <&pm8941_gpios 20 GPIO_ACTIVE_HIGH>;
259 enable-active-high;
260
261 pinctrl-names = "default";
262 pinctrl-0 = <&lcd_dcdc_en_pin_a>;
263 };
264
265 vreg_wlan: wlan-regulator {
266 compatible = "regulator-fixed";
267
268 regulator-name = "wl-reg";
269 regulator-min-microvolt = <3300000>;
270 regulator-max-microvolt = <3300000>;
271
272 gpio = <&pm8941_gpios 18 GPIO_ACTIVE_HIGH>;
273 enable-active-high;
274
275 pinctrl-names = "default";
276 pinctrl-0 = <&wlan_regulator_pin>;
277 };
278};
279
280&soc {
281 sdhci@f9824900 {
282 status = "ok";
283
284 vmmc-supply = <&pm8941_l20>;
285 vqmmc-supply = <&pm8941_s3>;
286
287 bus-width = <8>;
288 non-removable;
289
290 pinctrl-names = "default";
291 pinctrl-0 = <&sdhc1_pin_a>;
292 };
293
294 sdhci@f9864900 {
295 status = "ok";
296
297 max-frequency = <100000000>;
298 non-removable;
299 vmmc-supply = <&vreg_wlan>;
300
301 pinctrl-names = "default";
302 pinctrl-0 = <&sdhc3_pin_a>;
303
304 #address-cells = <1>;
305 #size-cells = <0>;
306
307 bcrmf@1 {
308 compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac";
309 reg = <1>;
310
311 brcm,drive-strength = <10>;
312
313 pinctrl-names = "default";
314 pinctrl-0 = <&wlan_sleep_clk_pin>;
315 };
316 };
317
318 sdhci@f98a4900 {
319 status = "ok";
320
321 bus-width = <4>;
322
323 vmmc-supply = <&pm8941_l21>;
324 vqmmc-supply = <&pm8941_l13>;
325
326 cd-gpios = <&msmgpio 62 GPIO_ACTIVE_LOW>;
327
328 pinctrl-names = "default";
329 pinctrl-0 = <&sdhc2_pin_a>, <&sdhc2_cd_pin_a>;
330 };
331
332 serial@f991e000 {
333 status = "ok";
334
335 pinctrl-names = "default";
336 pinctrl-0 = <&blsp1_uart2_pin_a>;
337 };
338
339 usb@f9a55000 {
340 status = "ok";
341
342 phys = <&usb_hs1_phy>;
343 phy-select = <&tcsr 0xb000 0>;
344 extcon = <&smbb>, <&usb_id>;
345 vbus-supply = <&chg_otg>;
346
347 hnp-disable;
348 srp-disable;
349 adp-disable;
350
351 ulpi {
352 phy@a {
353 status = "ok";
354
355 v1p8-supply = <&pm8941_l6>;
356 v3p3-supply = <&pm8941_l24>;
357
358 extcon = <&smbb>;
359 qcom,init-seq = /bits/ 8 <0x1 0x64>;
360 };
361 };
362 };
363
364 pinctrl@fd510000 {
365 blsp1_uart2_pin_a: blsp1-uart2-pin-active {
366 rx {
367 pins = "gpio5";
368 function = "blsp_uart2";
369
370 drive-strength = <2>;
371 bias-pull-up;
372 };
373
374 tx {
375 pins = "gpio4";
376 function = "blsp_uart2";
377
378 drive-strength = <4>;
379 bias-disable;
380 };
381 };
382
383 i2c8_pins: i2c8 {
384 mux {
385 pins = "gpio47", "gpio48";
386 function = "blsp_i2c8";
387
388 drive-strength = <2>;
389 bias-disable;
390 };
391 };
392
393 i2c11_pins: i2c11 {
394 mux {
395 pins = "gpio83", "gpio84";
396 function = "blsp_i2c11";
397
398 drive-strength = <2>;
399 bias-disable;
400 };
401 };
402
403 lcd_backlight_en_pin_a: lcd-backlight-vddio {
404 pins = "gpio69";
405 drive-strength = <10>;
406 output-low;
407 bias-disable;
408 };
409
410 sdhc1_pin_a: sdhc1-pin-active {
411 clk {
412 pins = "sdc1_clk";
413 drive-strength = <16>;
414 bias-disable;
415 };
416
417 cmd-data {
418 pins = "sdc1_cmd", "sdc1_data";
419 drive-strength = <10>;
420 bias-pull-up;
421 };
422 };
423
424 sdhc2_cd_pin_a: sdhc2-cd-pin-active {
425 pins = "gpio62";
426 function = "gpio";
427
428 drive-strength = <2>;
429 bias-disable;
430 };
431
432 sdhc2_pin_a: sdhc2-pin-active {
433 clk {
434 pins = "sdc2_clk";
435 drive-strength = <6>;
436 bias-disable;
437 };
438
439 cmd-data {
440 pins = "sdc2_cmd", "sdc2_data";
441 drive-strength = <6>;
442 bias-pull-up;
443 };
444 };
445
446 sdhc3_pin_a: sdhc3-pin-active {
447 clk {
448 pins = "gpio40";
449 function = "sdc3";
450
451 drive-strength = <10>;
452 bias-disable;
453 };
454
455 cmd {
456 pins = "gpio39";
457 function = "sdc3";
458
459 drive-strength = <10>;
460 bias-pull-up;
461 };
462
463 data {
464 pins = "gpio35", "gpio36", "gpio37", "gpio38";
465 function = "sdc3";
466
467 drive-strength = <10>;
468 bias-pull-up;
469 };
470 };
471
472 ts_int_pin: synaptics {
473 pin {
474 pins = "gpio86";
475 function = "gpio";
476
477 drive-strength = <2>;
478 bias-disable;
479 input-enable;
480 };
481 };
482 };
483
484 i2c@f9964000 {
485 status = "ok";
486
487 clock-frequency = <355000>;
488 qcom,src-freq = <50000000>;
489
490 pinctrl-names = "default";
491 pinctrl-0 = <&i2c8_pins>;
492
493 synaptics@2c {
494 compatible = "syna,rmi-i2c";
495 reg = <0x2c>;
496
497 interrupt-parent = <&msmgpio>;
498 interrupts = <86 IRQ_TYPE_EDGE_FALLING>;
499
500 #address-cells = <1>;
501 #size-cells = <0>;
502
503 vdd-supply = <&pm8941_l22>;
504 vio-supply = <&pm8941_lvs3>;
505
506 pinctrl-names = "default";
507 pinctrl-0 = <&ts_int_pin>;
508
509 rmi-f01@1 {
510 reg = <0x1>;
511 syna,nosleep = <1>;
512 };
513
514 rmi-f11@11 {
515 reg = <0x11>;
516 syna,f11-flip-x = <1>;
517 syna,sensor-type = <1>;
518 };
519 };
520 };
521
522 i2c@f9967000 {
523 status = "ok";
524 pinctrl-names = "default";
525 pinctrl-0 = <&i2c11_pins>;
526 clock-frequency = <355000>;
527 qcom,src-freq = <50000000>;
528
529 lp8566_wled: backlight@2c {
530 compatible = "ti,lp8556";
531 reg = <0x2c>;
532 power-supply = <&vreg_bl_vddio>;
533
534 bl-name = "backlight";
535 dev-ctrl = /bits/ 8 <0x05>;
536 init-brt = /bits/ 8 <0x3f>;
537 rom_a0h {
538 rom-addr = /bits/ 8 <0xa0>;
539 rom-val = /bits/ 8 <0xff>;
540 };
541 rom_a1h {
542 rom-addr = /bits/ 8 <0xa1>;
543 rom-val = /bits/ 8 <0x3f>;
544 };
545 rom_a2h {
546 rom-addr = /bits/ 8 <0xa2>;
547 rom-val = /bits/ 8 <0x20>;
548 };
549 rom_a3h {
550 rom-addr = /bits/ 8 <0xa3>;
551 rom-val = /bits/ 8 <0x5e>;
552 };
553 rom_a4h {
554 rom-addr = /bits/ 8 <0xa4>;
555 rom-val = /bits/ 8 <0x02>;
556 };
557 rom_a5h {
558 rom-addr = /bits/ 8 <0xa5>;
559 rom-val = /bits/ 8 <0x04>;
560 };
561 rom_a6h {
562 rom-addr = /bits/ 8 <0xa6>;
563 rom-val = /bits/ 8 <0x80>;
564 };
565 rom_a7h {
566 rom-addr = /bits/ 8 <0xa7>;
567 rom-val = /bits/ 8 <0xf7>;
568 };
569 rom_a9h {
570 rom-addr = /bits/ 8 <0xa9>;
571 rom-val = /bits/ 8 <0x80>;
572 };
573 rom_aah {
574 rom-addr = /bits/ 8 <0xaa>;
575 rom-val = /bits/ 8 <0x0f>;
576 };
577 rom_aeh {
578 rom-addr = /bits/ 8 <0xae>;
579 rom-val = /bits/ 8 <0x0f>;
580 };
581 };
582 };
583};
584
585&spmi_bus {
586 pm8941@0 {
587 charger@1000 {
588 qcom,fast-charge-safe-current = <1500000>;
589 qcom,fast-charge-current-limit = <1500000>;
590 qcom,dc-current-limit = <1800000>;
591 qcom,fast-charge-safe-voltage = <4400000>;
592 qcom,fast-charge-high-threshold-voltage = <4350000>;
593 qcom,fast-charge-low-threshold-voltage = <3400000>;
594 qcom,auto-recharge-threshold-voltage = <4200000>;
595 qcom,minimum-input-voltage = <4300000>;
596 };
597
598 gpios@c000 {
599 gpio_keys_pin_a: gpio-keys-active {
600 pins = "gpio2", "gpio5";
601 function = "normal";
602
603 bias-pull-up;
604 power-source = <PM8941_GPIO_S3>;
605 };
606
607 wlan_sleep_clk_pin: wl-sleep-clk {
608 pins = "gpio17";
609 function = "func2";
610
611 output-high;
612 power-source = <PM8941_GPIO_S3>;
613 };
614
615 wlan_regulator_pin: wl-reg-active {
616 pins = "gpio18";
617 function = "normal";
618
619 bias-disable;
620 power-source = <PM8941_GPIO_S3>;
621 };
622
623 lcd_dcdc_en_pin_a: lcd-dcdc-en-active {
624 pins = "gpio20";
625 function = "normal";
626
627 bias-disable;
628 power-source = <PM8941_GPIO_S3>;
629 input-disable;
630 output-low;
631 };
632
633 };
634
635 coincell@2800 {
636 status = "ok";
637 qcom,rset-ohms = <2100>;
638 qcom,vset-millivolts = <3000>;
639 };
640 };
641};
diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
index 33002fed8cc3..d9019a49b292 100644
--- a/arch/arm/boot/dts/qcom-msm8974.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
@@ -18,27 +18,27 @@
18 #size-cells = <1>; 18 #size-cells = <1>;
19 ranges; 19 ranges;
20 20
21 mpss@08000000 { 21 mpss@8000000 {
22 reg = <0x08000000 0x5100000>; 22 reg = <0x08000000 0x5100000>;
23 no-map; 23 no-map;
24 }; 24 };
25 25
26 mba@00d100000 { 26 mba@d100000 {
27 reg = <0x0d100000 0x100000>; 27 reg = <0x0d100000 0x100000>;
28 no-map; 28 no-map;
29 }; 29 };
30 30
31 reserved@0d200000 { 31 reserved@d200000 {
32 reg = <0x0d200000 0xa00000>; 32 reg = <0x0d200000 0xa00000>;
33 no-map; 33 no-map;
34 }; 34 };
35 35
36 adsp_region: adsp@0dc00000 { 36 adsp_region: adsp@dc00000 {
37 reg = <0x0dc00000 0x1900000>; 37 reg = <0x0dc00000 0x1900000>;
38 no-map; 38 no-map;
39 }; 39 };
40 40
41 venus@0f500000 { 41 venus@f500000 {
42 reg = <0x0f500000 0x500000>; 42 reg = <0x0f500000 0x500000>;
43 no-map; 43 no-map;
44 }; 44 };
@@ -48,17 +48,17 @@
48 no-map; 48 no-map;
49 }; 49 };
50 50
51 tz@0fc00000 { 51 tz@fc00000 {
52 reg = <0x0fc00000 0x160000>; 52 reg = <0x0fc00000 0x160000>;
53 no-map; 53 no-map;
54 }; 54 };
55 55
56 rfsa@0fd60000 { 56 rfsa@fd60000 {
57 reg = <0x0fd60000 0x20000>; 57 reg = <0x0fd60000 0x20000>;
58 no-map; 58 no-map;
59 }; 59 };
60 60
61 rmtfs@0fd80000 { 61 rmtfs@fd80000 {
62 reg = <0x0fd80000 0x180000>; 62 reg = <0x0fd80000 0x180000>;
63 no-map; 63 no-map;
64 }; 64 };
@@ -614,6 +614,20 @@
614 status = "disabled"; 614 status = "disabled";
615 }; 615 };
616 616
617 sdhci@f9864900 {
618 compatible = "qcom,sdhci-msm-v4";
619 reg = <0xf9864900 0x11c>, <0xf9864000 0x800>;
620 reg-names = "hc_mem", "core_mem";
621 interrupts = <GIC_SPI 127 IRQ_TYPE_NONE>,
622 <GIC_SPI 224 IRQ_TYPE_NONE>;
623 interrupt-names = "hc_irq", "pwr_irq";
624 clocks = <&gcc GCC_SDCC3_APPS_CLK>,
625 <&gcc GCC_SDCC3_AHB_CLK>,
626 <&xo_board>;
627 clock-names = "core", "iface", "xo";
628 status = "disabled";
629 };
630
617 sdhci@f98a4900 { 631 sdhci@f98a4900 {
618 compatible = "qcom,sdhci-msm-v4"; 632 compatible = "qcom,sdhci-msm-v4";
619 reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>; 633 reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
diff --git a/arch/arm/boot/dts/qcom-msm8974pro.dtsi b/arch/arm/boot/dts/qcom-msm8974pro.dtsi
new file mode 100644
index 000000000000..6740a4cb7da8
--- /dev/null
+++ b/arch/arm/boot/dts/qcom-msm8974pro.dtsi
@@ -0,0 +1,18 @@
1#include "qcom-msm8974.dtsi"
2
3/ {
4 soc {
5 sdhci@f9824900 {
6 clocks = <&gcc GCC_SDCC1_APPS_CLK>,
7 <&gcc GCC_SDCC1_AHB_CLK>,
8 <&xo_board>,
9 <&gcc GCC_SDCC1_CDCCAL_FF_CLK>,
10 <&gcc GCC_SDCC1_CDCCAL_SLEEP_CLK>;
11 clock-names = "core", "iface", "xo", "cal", "sleep";
12 };
13
14 clock-controller@fc400000 {
15 compatible = "qcom,gcc-msm8974pro";
16 };
17 };
18};
diff --git a/arch/arm/boot/dts/r7s72100-gr-peach.dts b/arch/arm/boot/dts/r7s72100-gr-peach.dts
index a1b2aef984f6..779f724b4531 100644
--- a/arch/arm/boot/dts/r7s72100-gr-peach.dts
+++ b/arch/arm/boot/dts/r7s72100-gr-peach.dts
@@ -11,6 +11,8 @@
11 11
12/dts-v1/; 12/dts-v1/;
13#include "r7s72100.dtsi" 13#include "r7s72100.dtsi"
14#include <dt-bindings/gpio/gpio.h>
15#include <dt-bindings/pinctrl/r7s72100-pinctrl.h>
14 16
15/ { 17/ {
16 model = "GR-Peach"; 18 model = "GR-Peach";
@@ -28,7 +30,6 @@
28 memory@20000000 { 30 memory@20000000 {
29 device_type = "memory"; 31 device_type = "memory";
30 reg = <0x20000000 0x00a00000>; 32 reg = <0x20000000 0x00a00000>;
31
32 }; 33 };
33 34
34 lbsc { 35 lbsc {
@@ -51,6 +52,44 @@
51 reg = <0x00600000 0x00200000>; 52 reg = <0x00600000 0x00200000>;
52 }; 53 };
53 }; 54 };
55
56 leds {
57 status = "okay";
58 compatible = "gpio-leds";
59
60 led1 {
61 gpios = <&port6 12 GPIO_ACTIVE_HIGH>;
62 };
63 };
64};
65
66&pinctrl {
67 scif2_pins: serial2 {
68 /* P6_2 as RxD2; P6_3 as TxD2 */
69 pinmux = <RZA1_PINMUX(6, 2, 7)>, <RZA1_PINMUX(6, 3, 7)>;
70 };
71
72 ether_pins: ether {
73 /* Ethernet on Ports 1,3,5,10 */
74 pinmux = <RZA1_PINMUX(1, 14, 4)>, /* P1_14 = ET_COL */
75 <RZA1_PINMUX(3, 0, 2)>, /* P3_0 = ET_TXCLK */
76 <RZA1_PINMUX(3, 3, 2)>, /* P3_3 = ET_MDIO */
77 <RZA1_PINMUX(3, 4, 2)>, /* P3_4 = ET_RXCLK */
78 <RZA1_PINMUX(3, 5, 2)>, /* P3_5 = ET_RXER */
79 <RZA1_PINMUX(3, 6, 2)>, /* P3_6 = ET_RXDV */
80 <RZA1_PINMUX(5, 9, 2)>, /* P5_9 = ET_MDC */
81 <RZA1_PINMUX(10, 1, 4)>, /* P10_1 = ET_TXER */
82 <RZA1_PINMUX(10, 2, 4)>, /* P10_2 = ET_TXEN */
83 <RZA1_PINMUX(10, 3, 4)>, /* P10_3 = ET_CRS */
84 <RZA1_PINMUX(10, 4, 4)>, /* P10_4 = ET_TXD0 */
85 <RZA1_PINMUX(10, 5, 4)>, /* P10_5 = ET_TXD1 */
86 <RZA1_PINMUX(10, 6, 4)>, /* P10_6 = ET_TXD2 */
87 <RZA1_PINMUX(10, 7, 4)>, /* P10_7 = ET_TXD3 */
88 <RZA1_PINMUX(10, 8, 4)>, /* P10_8 = ET_RXD0 */
89 <RZA1_PINMUX(10, 9, 4)>, /* P10_9 = ET_RXD1 */
90 <RZA1_PINMUX(10, 10, 4)>,/* P10_10 = ET_RXD2 */
91 <RZA1_PINMUX(10, 11, 4)>;/* P10_11 = ET_RXD3 */
92 };
54}; 93};
55 94
56&extal_clk { 95&extal_clk {
@@ -61,6 +100,38 @@
61 clock-frequency = <48000000>; 100 clock-frequency = <48000000>;
62}; 101};
63 102
103&mtu2 {
104 status = "okay";
105};
106
107&ostm0 {
108 status = "okay";
109};
110
111&ostm1 {
112 status = "okay";
113};
114
64&scif2 { 115&scif2 {
116 pinctrl-names = "default";
117 pinctrl-0 = <&scif2_pins>;
118
119 status = "okay";
120};
121
122&ether {
123 pinctrl-names = "default";
124 pinctrl-0 = <&ether_pins>;
125
65 status = "okay"; 126 status = "okay";
127
128 renesas,no-ether-link;
129 phy-handle = <&phy0>;
130
131 phy0: ethernet-phy@0 {
132 reg = <0>;
133
134 reset-gpios = <&port4 2 GPIO_ACTIVE_LOW>;
135 reset-delay-us = <5>;
136 };
66}; 137};
diff --git a/arch/arm/boot/dts/r7s72100.dtsi b/arch/arm/boot/dts/r7s72100.dtsi
index 4ed12a4d9d51..ab9645a42eca 100644
--- a/arch/arm/boot/dts/r7s72100.dtsi
+++ b/arch/arm/boot/dts/r7s72100.dtsi
@@ -203,6 +203,7 @@
203 compatible = "arm,cortex-a9"; 203 compatible = "arm,cortex-a9";
204 reg = <0>; 204 reg = <0>;
205 clock-frequency = <400000000>; 205 clock-frequency = <400000000>;
206 clocks = <&cpg_clocks R7S72100_CLK_I>;
206 next-level-cache = <&L2>; 207 next-level-cache = <&L2>;
207 }; 208 };
208 }; 209 };
diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi
index 310222634570..dd4d09712a2a 100644
--- a/arch/arm/boot/dts/r8a73a4.dtsi
+++ b/arch/arm/boot/dts/r8a73a4.dtsi
@@ -27,6 +27,7 @@
27 device_type = "cpu"; 27 device_type = "cpu";
28 compatible = "arm,cortex-a15"; 28 compatible = "arm,cortex-a15";
29 reg = <0>; 29 reg = <0>;
30 clocks = <&cpg_clocks R8A73A4_CLK_Z>;
30 clock-frequency = <1500000000>; 31 clock-frequency = <1500000000>;
31 power-domains = <&pd_a2sl>; 32 power-domains = <&pd_a2sl>;
32 next-level-cache = <&L2_CA15>; 33 next-level-cache = <&L2_CA15>;
diff --git a/arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts b/arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts
new file mode 100644
index 000000000000..d90eb8464222
--- /dev/null
+++ b/arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts
@@ -0,0 +1,19 @@
1/*
2 * Device Tree Source for the iWave-RZ/G1M Qseven board + camera daughter board
3 *
4 * Copyright (C) 2017 Renesas Electronics Corp.
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 */
10
11/dts-v1/;
12#include "r8a7743-iwg20m.dtsi"
13#include "iwg20d-q7-common.dtsi"
14#include "iwg20d-q7-dbcm-ca.dtsi"
15
16/ {
17 model = "iW-RainboW-G20D-Q7 RZ/G1M based plus camera daughter board";
18 compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743";
19};
diff --git a/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts
index 081af0192851..6aa6b7467704 100644
--- a/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts
+++ b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Device Tree Source for the iWave-RZG1M Qseven carrier board 2 * Device Tree Source for the iWave-RZ/G1M Qseven board
3 * 3 *
4 * Copyright (C) 2017 Renesas Electronics Corp. 4 * Copyright (C) 2017 Renesas Electronics Corp.
5 * 5 *
@@ -10,47 +10,9 @@
10 10
11/dts-v1/; 11/dts-v1/;
12#include "r8a7743-iwg20m.dtsi" 12#include "r8a7743-iwg20m.dtsi"
13#include "iwg20d-q7-common.dtsi"
13 14
14/ { 15/ {
15 model = "iWave Systems RainboW-G20D-Qseven board based on RZ/G1M"; 16 model = "iWave Systems RainboW-G20D-Qseven board based on RZ/G1M";
16 compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743"; 17 compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743";
17
18 aliases {
19 serial0 = &scif0;
20 ethernet0 = &avb;
21 };
22};
23
24&pfc {
25 scif0_pins: scif0 {
26 groups = "scif0_data_d";
27 function = "scif0";
28 };
29
30 avb_pins: avb {
31 groups = "avb_mdio", "avb_gmii";
32 function = "avb";
33 };
34};
35
36&scif0 {
37 pinctrl-0 = <&scif0_pins>;
38 pinctrl-names = "default";
39
40 status = "okay";
41};
42
43&avb {
44 pinctrl-0 = <&avb_pins>;
45 pinctrl-names = "default";
46
47 phy-handle = <&phy3>;
48 phy-mode = "gmii";
49 renesas,no-ether-link;
50 status = "okay";
51
52 phy3: ethernet-phy@3 {
53 reg = <3>;
54 micrel,led-mode = <1>;
55 };
56}; 18};
diff --git a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi
index ff7993818637..75a8ca571846 100644
--- a/arch/arm/boot/dts/r8a7743-iwg20m.dtsi
+++ b/arch/arm/boot/dts/r8a7743-iwg20m.dtsi
@@ -9,6 +9,7 @@
9 */ 9 */
10 10
11#include "r8a7743.dtsi" 11#include "r8a7743.dtsi"
12#include <dt-bindings/gpio/gpio.h>
12 13
13/ { 14/ {
14 compatible = "iwave,g20m", "renesas,r8a7743"; 15 compatible = "iwave,g20m", "renesas,r8a7743";
@@ -42,6 +43,17 @@
42 groups = "mmc_data8_b", "mmc_ctrl"; 43 groups = "mmc_data8_b", "mmc_ctrl";
43 function = "mmc"; 44 function = "mmc";
44 }; 45 };
46
47 qspi_pins: qspi {
48 groups = "qspi_ctrl", "qspi_data2";
49 function = "qspi";
50 };
51
52 sdhi0_pins: sd0 {
53 groups = "sdhi0_data4", "sdhi0_ctrl";
54 function = "sdhi0";
55 power-source = <3300>;
56 };
45}; 57};
46 58
47&mmcif0 { 59&mmcif0 {
@@ -53,3 +65,34 @@
53 non-removable; 65 non-removable;
54 status = "okay"; 66 status = "okay";
55}; 67};
68
69&qspi {
70 pinctrl-0 = <&qspi_pins>;
71 pinctrl-names = "default";
72
73 status = "okay";
74
75 /* WARNING - This device contains the bootloader. Handle with care. */
76 flash: flash@0 {
77 #address-cells = <1>;
78 #size-cells = <1>;
79 compatible = "sst,sst25vf016b", "jedec,spi-nor";
80 reg = <0>;
81 spi-max-frequency = <50000000>;
82 spi-tx-bus-width = <1>;
83 spi-rx-bus-width = <1>;
84 m25p,fast-read;
85 spi-cpol;
86 spi-cpha;
87 };
88};
89
90&sdhi0 {
91 pinctrl-0 = <&sdhi0_pins>;
92 pinctrl-names = "default";
93
94 vmmc-supply = <&reg_3p3v>;
95 vqmmc-supply = <&reg_3p3v>;
96 cd-gpios = <&gpio7 11 GPIO_ACTIVE_LOW>;
97 status = "okay";
98};
diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi
index 14222c72f0e0..7bbba4a36f31 100644
--- a/arch/arm/boot/dts/r8a7743.dtsi
+++ b/arch/arm/boot/dts/r8a7743.dtsi
@@ -25,6 +25,13 @@
25 i2c3 = &i2c3; 25 i2c3 = &i2c3;
26 i2c4 = &i2c4; 26 i2c4 = &i2c4;
27 i2c5 = &i2c5; 27 i2c5 = &i2c5;
28 i2c6 = &iic0;
29 i2c7 = &iic1;
30 i2c8 = &iic3;
31 spi0 = &qspi;
32 spi1 = &msiof0;
33 spi2 = &msiof1;
34 spi3 = &msiof2;
28 }; 35 };
29 36
30 cpus { 37 cpus {
@@ -56,6 +63,7 @@
56 compatible = "arm,cortex-a15"; 63 compatible = "arm,cortex-a15";
57 reg = <1>; 64 reg = <1>;
58 clock-frequency = <1500000000>; 65 clock-frequency = <1500000000>;
66 clocks = <&cpg CPG_CORE R8A7743_CLK_Z>;
59 power-domains = <&sysc R8A7743_PD_CA15_CPU1>; 67 power-domains = <&sysc R8A7743_PD_CA15_CPU1>;
60 next-level-cache = <&L2_CA15>; 68 next-level-cache = <&L2_CA15>;
61 }; 69 };
@@ -101,7 +109,7 @@
101 109
102 gpio0: gpio@e6050000 { 110 gpio0: gpio@e6050000 {
103 compatible = "renesas,gpio-r8a7743", 111 compatible = "renesas,gpio-r8a7743",
104 "renesas,gpio-rcar"; 112 "renesas,rcar-gen2-gpio";
105 reg = <0 0xe6050000 0 0x50>; 113 reg = <0 0xe6050000 0 0x50>;
106 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 114 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
107 #gpio-cells = <2>; 115 #gpio-cells = <2>;
@@ -116,7 +124,7 @@
116 124
117 gpio1: gpio@e6051000 { 125 gpio1: gpio@e6051000 {
118 compatible = "renesas,gpio-r8a7743", 126 compatible = "renesas,gpio-r8a7743",
119 "renesas,gpio-rcar"; 127 "renesas,rcar-gen2-gpio";
120 reg = <0 0xe6051000 0 0x50>; 128 reg = <0 0xe6051000 0 0x50>;
121 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 129 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
122 #gpio-cells = <2>; 130 #gpio-cells = <2>;
@@ -131,7 +139,7 @@
131 139
132 gpio2: gpio@e6052000 { 140 gpio2: gpio@e6052000 {
133 compatible = "renesas,gpio-r8a7743", 141 compatible = "renesas,gpio-r8a7743",
134 "renesas,gpio-rcar"; 142 "renesas,rcar-gen2-gpio";
135 reg = <0 0xe6052000 0 0x50>; 143 reg = <0 0xe6052000 0 0x50>;
136 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 144 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
137 #gpio-cells = <2>; 145 #gpio-cells = <2>;
@@ -146,7 +154,7 @@
146 154
147 gpio3: gpio@e6053000 { 155 gpio3: gpio@e6053000 {
148 compatible = "renesas,gpio-r8a7743", 156 compatible = "renesas,gpio-r8a7743",
149 "renesas,gpio-rcar"; 157 "renesas,rcar-gen2-gpio";
150 reg = <0 0xe6053000 0 0x50>; 158 reg = <0 0xe6053000 0 0x50>;
151 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 159 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
152 #gpio-cells = <2>; 160 #gpio-cells = <2>;
@@ -161,7 +169,7 @@
161 169
162 gpio4: gpio@e6054000 { 170 gpio4: gpio@e6054000 {
163 compatible = "renesas,gpio-r8a7743", 171 compatible = "renesas,gpio-r8a7743",
164 "renesas,gpio-rcar"; 172 "renesas,rcar-gen2-gpio";
165 reg = <0 0xe6054000 0 0x50>; 173 reg = <0 0xe6054000 0 0x50>;
166 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 174 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
167 #gpio-cells = <2>; 175 #gpio-cells = <2>;
@@ -176,7 +184,7 @@
176 184
177 gpio5: gpio@e6055000 { 185 gpio5: gpio@e6055000 {
178 compatible = "renesas,gpio-r8a7743", 186 compatible = "renesas,gpio-r8a7743",
179 "renesas,gpio-rcar"; 187 "renesas,rcar-gen2-gpio";
180 reg = <0 0xe6055000 0 0x50>; 188 reg = <0 0xe6055000 0 0x50>;
181 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 189 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
182 #gpio-cells = <2>; 190 #gpio-cells = <2>;
@@ -191,7 +199,7 @@
191 199
192 gpio6: gpio@e6055400 { 200 gpio6: gpio@e6055400 {
193 compatible = "renesas,gpio-r8a7743", 201 compatible = "renesas,gpio-r8a7743",
194 "renesas,gpio-rcar"; 202 "renesas,rcar-gen2-gpio";
195 reg = <0 0xe6055400 0 0x50>; 203 reg = <0 0xe6055400 0 0x50>;
196 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 204 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
197 #gpio-cells = <2>; 205 #gpio-cells = <2>;
@@ -206,7 +214,7 @@
206 214
207 gpio7: gpio@e6055800 { 215 gpio7: gpio@e6055800 {
208 compatible = "renesas,gpio-r8a7743", 216 compatible = "renesas,gpio-r8a7743",
209 "renesas,gpio-rcar"; 217 "renesas,rcar-gen2-gpio";
210 reg = <0 0xe6055800 0 0x50>; 218 reg = <0 0xe6055800 0 0x50>;
211 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 219 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
212 #gpio-cells = <2>; 220 #gpio-cells = <2>;
@@ -348,6 +356,34 @@
348 dma-channels = <15>; 356 dma-channels = <15>;
349 }; 357 };
350 358
359 usb_dmac0: dma-controller@e65a0000 {
360 compatible = "renesas,r8a7743-usb-dmac",
361 "renesas,usb-dmac";
362 reg = <0 0xe65a0000 0 0x100>;
363 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH
364 GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
365 interrupt-names = "ch0", "ch1";
366 clocks = <&cpg CPG_MOD 330>;
367 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
368 resets = <&cpg 330>;
369 #dma-cells = <1>;
370 dma-channels = <2>;
371 };
372
373 usb_dmac1: dma-controller@e65b0000 {
374 compatible = "renesas,r8a7743-usb-dmac",
375 "renesas,usb-dmac";
376 reg = <0 0xe65b0000 0 0x100>;
377 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH
378 GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
379 interrupt-names = "ch0", "ch1";
380 clocks = <&cpg CPG_MOD 331>;
381 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
382 resets = <&cpg 331>;
383 #dma-cells = <1>;
384 dma-channels = <2>;
385 };
386
351 /* The memory map in the User's Manual maps the cores to bus 387 /* The memory map in the User's Manual maps the cores to bus
352 * numbers 388 * numbers
353 */ 389 */
@@ -436,6 +472,58 @@
436 status = "disabled"; 472 status = "disabled";
437 }; 473 };
438 474
475 iic0: i2c@e6500000 {
476 #address-cells = <1>;
477 #size-cells = <0>;
478 compatible = "renesas,iic-r8a7743",
479 "renesas,rcar-gen2-iic",
480 "renesas,rmobile-iic";
481 reg = <0 0xe6500000 0 0x425>;
482 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
483 clocks = <&cpg CPG_MOD 318>;
484 dmas = <&dmac0 0x61>, <&dmac0 0x62>,
485 <&dmac1 0x61>, <&dmac1 0x62>;
486 dma-names = "tx", "rx", "tx", "rx";
487 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
488 resets = <&cpg 318>;
489 status = "disabled";
490 };
491
492 iic1: i2c@e6510000 {
493 #address-cells = <1>;
494 #size-cells = <0>;
495 compatible = "renesas,iic-r8a7743",
496 "renesas,rcar-gen2-iic",
497 "renesas,rmobile-iic";
498 reg = <0 0xe6510000 0 0x425>;
499 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
500 clocks = <&cpg CPG_MOD 323>;
501 dmas = <&dmac0 0x65>, <&dmac0 0x66>,
502 <&dmac1 0x65>, <&dmac1 0x66>;
503 dma-names = "tx", "rx", "tx", "rx";
504 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
505 resets = <&cpg 323>;
506 status = "disabled";
507 };
508
509 iic3: i2c@e60b0000 {
510 /* doesn't need pinmux */
511 #address-cells = <1>;
512 #size-cells = <0>;
513 compatible = "renesas,iic-r8a7743",
514 "renesas,rcar-gen2-iic",
515 "renesas,rmobile-iic";
516 reg = <0 0xe60b0000 0 0x425>;
517 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
518 clocks = <&cpg CPG_MOD 926>;
519 dmas = <&dmac0 0x77>, <&dmac0 0x78>,
520 <&dmac1 0x77>, <&dmac1 0x78>;
521 dma-names = "tx", "rx", "tx", "rx";
522 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
523 resets = <&cpg 926>;
524 status = "disabled";
525 };
526
439 scifa0: serial@e6c40000 { 527 scifa0: serial@e6c40000 {
440 compatible = "renesas,scifa-r8a7743", 528 compatible = "renesas,scifa-r8a7743",
441 "renesas,rcar-gen2-scifa", "renesas,scifa"; 529 "renesas,rcar-gen2-scifa", "renesas,scifa";
@@ -779,6 +867,241 @@
779 max-frequency = <97500000>; 867 max-frequency = <97500000>;
780 status = "disabled"; 868 status = "disabled";
781 }; 869 };
870
871 qspi: spi@e6b10000 {
872 compatible = "renesas,qspi-r8a7743", "renesas,qspi";
873 reg = <0 0xe6b10000 0 0x2c>;
874 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
875 clocks = <&cpg CPG_MOD 917>;
876 dmas = <&dmac0 0x17>, <&dmac0 0x18>,
877 <&dmac1 0x17>, <&dmac1 0x18>;
878 dma-names = "tx", "rx", "tx", "rx";
879 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
880 num-cs = <1>;
881 #address-cells = <1>;
882 #size-cells = <0>;
883 resets = <&cpg 917>;
884 status = "disabled";
885 };
886
887 msiof0: spi@e6e20000 {
888 compatible = "renesas,msiof-r8a7743",
889 "renesas,rcar-gen2-msiof";
890 reg = <0 0xe6e20000 0 0x0064>;
891 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
892 clocks = <&cpg CPG_MOD 000>;
893 dmas = <&dmac0 0x51>, <&dmac0 0x52>,
894 <&dmac1 0x51>, <&dmac1 0x52>;
895 dma-names = "tx", "rx", "tx", "rx";
896 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
897 #address-cells = <1>;
898 #size-cells = <0>;
899 resets = <&cpg 000>;
900 status = "disabled";
901 };
902
903 msiof1: spi@e6e10000 {
904 compatible = "renesas,msiof-r8a7743",
905 "renesas,rcar-gen2-msiof";
906 reg = <0 0xe6e10000 0 0x0064>;
907 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
908 clocks = <&cpg CPG_MOD 208>;
909 dmas = <&dmac0 0x55>, <&dmac0 0x56>,
910 <&dmac1 0x55>, <&dmac1 0x56>;
911 dma-names = "tx", "rx", "tx", "rx";
912 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
913 #address-cells = <1>;
914 #size-cells = <0>;
915 resets = <&cpg 208>;
916 status = "disabled";
917 };
918
919 msiof2: spi@e6e00000 {
920 compatible = "renesas,msiof-r8a7743",
921 "renesas,rcar-gen2-msiof";
922 reg = <0 0xe6e00000 0 0x0064>;
923 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
924 clocks = <&cpg CPG_MOD 205>;
925 dmas = <&dmac0 0x41>, <&dmac0 0x42>,
926 <&dmac1 0x41>, <&dmac1 0x42>;
927 dma-names = "tx", "rx", "tx", "rx";
928 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
929 #address-cells = <1>;
930 #size-cells = <0>;
931 resets = <&cpg 205>;
932 status = "disabled";
933 };
934
935 /*
936 * pci1 and xhci share the same phy, therefore only one of them
937 * can be active at any one time. If both of them are enabled,
938 * a race condition will determine who'll control the phy.
939 * A firmware file is needed by the xhci driver in order for
940 * USB 3.0 to work properly.
941 */
942 xhci: usb@ee000000 {
943 compatible = "renesas,xhci-r8a7743",
944 "renesas,rcar-gen2-xhci";
945 reg = <0 0xee000000 0 0xc00>;
946 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
947 clocks = <&cpg CPG_MOD 328>;
948 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
949 resets = <&cpg 328>;
950 phys = <&usb2 1>;
951 phy-names = "usb";
952 status = "disabled";
953 };
954
955 sdhi0: sd@ee100000 {
956 compatible = "renesas,sdhi-r8a7743";
957 reg = <0 0xee100000 0 0x328>;
958 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
959 clocks = <&cpg CPG_MOD 314>;
960 dmas = <&dmac0 0xcd>, <&dmac0 0xce>,
961 <&dmac1 0xcd>, <&dmac1 0xce>;
962 dma-names = "tx", "rx", "tx", "rx";
963 max-frequency = <195000000>;
964 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
965 resets = <&cpg 314>;
966 status = "disabled";
967 };
968
969 sdhi1: sd@ee140000 {
970 compatible = "renesas,sdhi-r8a7743";
971 reg = <0 0xee140000 0 0x100>;
972 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
973 clocks = <&cpg CPG_MOD 312>;
974 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>,
975 <&dmac1 0xc1>, <&dmac1 0xc2>;
976 dma-names = "tx", "rx", "tx", "rx";
977 max-frequency = <97500000>;
978 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
979 resets = <&cpg 312>;
980 status = "disabled";
981 };
982
983 sdhi2: sd@ee160000 {
984 compatible = "renesas,sdhi-r8a7743";
985 reg = <0 0xee160000 0 0x100>;
986 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
987 clocks = <&cpg CPG_MOD 311>;
988 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>,
989 <&dmac1 0xd3>, <&dmac1 0xd4>;
990 dma-names = "tx", "rx", "tx", "rx";
991 max-frequency = <97500000>;
992 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
993 resets = <&cpg 311>;
994 status = "disabled";
995 };
996
997 hsusb: usb@e6590000 {
998 compatible = "renesas,usbhs-r8a7743",
999 "renesas,rcar-gen2-usbhs";
1000 reg = <0 0xe6590000 0 0x100>;
1001 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
1002 clocks = <&cpg CPG_MOD 704>;
1003 dmas = <&usb_dmac0 0>, <&usb_dmac0 1>,
1004 <&usb_dmac1 0>, <&usb_dmac1 1>;
1005 dma-names = "ch0", "ch1", "ch2", "ch3";
1006 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
1007 resets = <&cpg 704>;
1008 renesas,buswait = <4>;
1009 phys = <&usb0 1>;
1010 phy-names = "usb";
1011 status = "disabled";
1012 };
1013
1014 usbphy: usb-phy@e6590100 {
1015 compatible = "renesas,usb-phy-r8a7743",
1016 "renesas,rcar-gen2-usb-phy";
1017 reg = <0 0xe6590100 0 0x100>;
1018 #address-cells = <1>;
1019 #size-cells = <0>;
1020 clocks = <&cpg CPG_MOD 704>;
1021 clock-names = "usbhs";
1022 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
1023 resets = <&cpg 704>;
1024 status = "disabled";
1025
1026 usb0: usb-channel@0 {
1027 reg = <0>;
1028 #phy-cells = <1>;
1029 };
1030 usb2: usb-channel@2 {
1031 reg = <2>;
1032 #phy-cells = <1>;
1033 };
1034 };
1035
1036 pci0: pci@ee090000 {
1037 compatible = "renesas,pci-r8a7743",
1038 "renesas,pci-rcar-gen2";
1039 device_type = "pci";
1040 reg = <0 0xee090000 0 0xc00>,
1041 <0 0xee080000 0 0x1100>;
1042 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1043 clocks = <&cpg CPG_MOD 703>;
1044 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
1045 resets = <&cpg 703>;
1046 status = "disabled";
1047
1048 bus-range = <0 0>;
1049 #address-cells = <3>;
1050 #size-cells = <2>;
1051 #interrupt-cells = <1>;
1052 ranges = <0x02000000 0 0xee080000 0 0xee080000 0 0x00010000>;
1053 interrupt-map-mask = <0xff00 0 0 0x7>;
1054 interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH
1055 0x0800 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH
1056 0x1000 0 0 2 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1057
1058 usb@1,0 {
1059 reg = <0x800 0 0 0 0>;
1060 phys = <&usb0 0>;
1061 phy-names = "usb";
1062 };
1063
1064 usb@2,0 {
1065 reg = <0x1000 0 0 0 0>;
1066 phys = <&usb0 0>;
1067 phy-names = "usb";
1068 };
1069 };
1070
1071 pci1: pci@ee0d0000 {
1072 compatible = "renesas,pci-r8a7743",
1073 "renesas,pci-rcar-gen2";
1074 device_type = "pci";
1075 reg = <0 0xee0d0000 0 0xc00>,
1076 <0 0xee0c0000 0 0x1100>;
1077 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
1078 clocks = <&cpg CPG_MOD 703>;
1079 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
1080 resets = <&cpg 703>;
1081 status = "disabled";
1082
1083 bus-range = <1 1>;
1084 #address-cells = <3>;
1085 #size-cells = <2>;
1086 #interrupt-cells = <1>;
1087 ranges = <0x02000000 0 0xee0c0000 0 0xee0c0000 0 0x00010000>;
1088 interrupt-map-mask = <0xff00 0 0 0x7>;
1089 interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH
1090 0x0800 0 0 1 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH
1091 0x1000 0 0 2 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
1092
1093 usb@1,0 {
1094 reg = <0x10800 0 0 0 0>;
1095 phys = <&usb2 0>;
1096 phy-names = "usb";
1097 };
1098
1099 usb@2,0 {
1100 reg = <0x11000 0 0 0 0>;
1101 phys = <&usb2 0>;
1102 phy-names = "usb";
1103 };
1104 };
782 }; 1105 };
783 1106
784 /* External root clock */ 1107 /* External root clock */
diff --git a/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts
new file mode 100644
index 000000000000..52153ec3638c
--- /dev/null
+++ b/arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts
@@ -0,0 +1,109 @@
1/*
2 * Device Tree Source for the iWave-RZG1E SODIMM carrier board
3 *
4 * Copyright (C) 2017 Renesas Electronics Corp.
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 */
10
11/dts-v1/;
12#include "r8a7745-iwg22m.dtsi"
13
14/ {
15 model = "iWave Systems RainboW-G22D-SODIMM board based on RZ/G1E";
16 compatible = "iwave,g22d", "iwave,g22m", "renesas,r8a7745";
17
18 aliases {
19 serial0 = &scif4;
20 ethernet0 = &avb;
21 };
22
23 chosen {
24 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
25 stdout-path = "serial0:115200n8";
26 };
27
28 vccq_sdhi0: regulator-vccq-sdhi0 {
29 compatible = "regulator-gpio";
30
31 regulator-name = "SDHI0 VccQ";
32 regulator-min-microvolt = <1800000>;
33 regulator-max-microvolt = <3300000>;
34
35 gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
36 gpios-states = <1>;
37 states = <3300000 1
38 1800000 0>;
39 };
40};
41
42&pfc {
43 scif4_pins: scif4 {
44 groups = "scif4_data_b";
45 function = "scif4";
46 };
47
48 avb_pins: avb {
49 groups = "avb_mdio", "avb_gmii";
50 function = "avb";
51 };
52
53 sdhi0_pins: sd0 {
54 groups = "sdhi0_data4", "sdhi0_ctrl";
55 function = "sdhi0";
56 power-source = <3300>;
57 };
58
59 usb1_pins: usb1 {
60 groups = "usb1";
61 function = "usb1";
62 };
63};
64
65&scif4 {
66 pinctrl-0 = <&scif4_pins>;
67 pinctrl-names = "default";
68
69 status = "okay";
70};
71
72&avb {
73 pinctrl-0 = <&avb_pins>;
74 pinctrl-names = "default";
75
76 phy-handle = <&phy3>;
77 phy-mode = "gmii";
78 renesas,no-ether-link;
79 status = "okay";
80
81 phy3: ethernet-phy@3 {
82 /*
83 * On some older versions of the platform (before R4.0) the phy address
84 * may be 1 or 3. The address is fixed to 3 for R4.0 onwards.
85 */
86 reg = <3>;
87 micrel,led-mode = <1>;
88 };
89};
90
91&sdhi0 {
92 pinctrl-0 = <&sdhi0_pins>;
93 pinctrl-names = "default";
94
95 vmmc-supply = <&reg_3p3v>;
96 vqmmc-supply = <&vccq_sdhi0>;
97 cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
98 status = "okay";
99};
100
101&pci1 {
102 status = "okay";
103 pinctrl-0 = <&usb1_pins>;
104 pinctrl-names = "default";
105};
106
107&usbphy {
108 status = "okay";
109};
diff --git a/arch/arm/boot/dts/r8a7745-iwg22m.dtsi b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi
new file mode 100644
index 000000000000..ed9a8cf3fe36
--- /dev/null
+++ b/arch/arm/boot/dts/r8a7745-iwg22m.dtsi
@@ -0,0 +1,111 @@
1/*
2 * Device Tree Source for the iWave-RZG1E-G22M SODIMM SOM
3 *
4 * Copyright (C) 2017 Renesas Electronics Corp.
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 */
10
11#include "r8a7745.dtsi"
12#include <dt-bindings/gpio/gpio.h>
13
14/ {
15 compatible = "iwave,g22m", "renesas,r8a7745";
16
17 memory@40000000 {
18 device_type = "memory";
19 reg = <0 0x40000000 0 0x20000000>;
20 };
21
22 reg_3p3v: 3p3v {
23 compatible = "regulator-fixed";
24 regulator-name = "3P3V";
25 regulator-min-microvolt = <3300000>;
26 regulator-max-microvolt = <3300000>;
27 regulator-always-on;
28 regulator-boot-on;
29 };
30};
31
32&extal_clk {
33 clock-frequency = <20000000>;
34};
35
36&pfc {
37 mmcif0_pins: mmc {
38 groups = "mmc_data8", "mmc_ctrl";
39 function = "mmc";
40 };
41
42 qspi_pins: qspi {
43 groups = "qspi_ctrl", "qspi_data2";
44 function = "qspi";
45 };
46
47 sdhi1_pins: sd1 {
48 groups = "sdhi1_data4", "sdhi1_ctrl";
49 function = "sdhi1";
50 power-source = <3300>;
51 };
52
53 i2c3_pins: i2c3 {
54 groups = "i2c3_b";
55 function = "i2c3";
56 };
57};
58
59&mmcif0 {
60 pinctrl-0 = <&mmcif0_pins>;
61 pinctrl-names = "default";
62
63 vmmc-supply = <&reg_3p3v>;
64 bus-width = <8>;
65 non-removable;
66 status = "okay";
67};
68
69&qspi {
70 pinctrl-0 = <&qspi_pins>;
71 pinctrl-names = "default";
72
73 status = "okay";
74
75 /* WARNING - This device contains the bootloader. Handle with care. */
76 flash: flash@0 {
77 #address-cells = <1>;
78 #size-cells = <1>;
79 compatible = "sst,sst25vf016b", "jedec,spi-nor";
80 reg = <0>;
81 spi-max-frequency = <50000000>;
82 spi-tx-bus-width = <1>;
83 spi-rx-bus-width = <1>;
84 m25p,fast-read;
85 spi-cpol;
86 spi-cpha;
87 };
88};
89
90&sdhi1 {
91 pinctrl-0 = <&sdhi1_pins>;
92 pinctrl-names = "default";
93
94 vmmc-supply = <&reg_3p3v>;
95 vqmmc-supply = <&reg_3p3v>;
96 cd-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>;
97 status = "okay";
98};
99
100&i2c3 {
101 pinctrl-0 = <&i2c3_pins>;
102 pinctrl-names = "default";
103
104 status = "okay";
105 clock-frequency = <400000>;
106
107 rtc@68 {
108 compatible = "ti,bq32000";
109 reg = <0x68>;
110 };
111};
diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi
index aff90dfb8b32..3a50f703601c 100644
--- a/arch/arm/boot/dts/r8a7745.dtsi
+++ b/arch/arm/boot/dts/r8a7745.dtsi
@@ -18,6 +18,19 @@
18 #address-cells = <2>; 18 #address-cells = <2>;
19 #size-cells = <2>; 19 #size-cells = <2>;
20 20
21 aliases {
22 i2c0 = &i2c0;
23 i2c1 = &i2c1;
24 i2c2 = &i2c2;
25 i2c3 = &i2c3;
26 i2c4 = &i2c4;
27 i2c5 = &i2c5;
28 spi0 = &qspi;
29 spi1 = &msiof0;
30 spi2 = &msiof1;
31 spi3 = &msiof2;
32 };
33
21 cpus { 34 cpus {
22 #address-cells = <1>; 35 #address-cells = <1>;
23 #size-cells = <0>; 36 #size-cells = <0>;
@@ -65,6 +78,111 @@
65 resets = <&cpg 408>; 78 resets = <&cpg 408>;
66 }; 79 };
67 80
81 gpio0: gpio@e6050000 {
82 compatible = "renesas,gpio-r8a7745",
83 "renesas,rcar-gen2-gpio";
84 reg = <0 0xe6050000 0 0x50>;
85 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
86 #gpio-cells = <2>;
87 gpio-controller;
88 gpio-ranges = <&pfc 0 0 32>;
89 #interrupt-cells = <2>;
90 interrupt-controller;
91 clocks = <&cpg CPG_MOD 912>;
92 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
93 resets = <&cpg 912>;
94 };
95
96 gpio1: gpio@e6051000 {
97 compatible = "renesas,gpio-r8a7745",
98 "renesas,rcar-gen2-gpio";
99 reg = <0 0xe6051000 0 0x50>;
100 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
101 #gpio-cells = <2>;
102 gpio-controller;
103 gpio-ranges = <&pfc 0 32 26>;
104 #interrupt-cells = <2>;
105 interrupt-controller;
106 clocks = <&cpg CPG_MOD 911>;
107 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
108 resets = <&cpg 911>;
109 };
110
111 gpio2: gpio@e6052000 {
112 compatible = "renesas,gpio-r8a7745",
113 "renesas,rcar-gen2-gpio";
114 reg = <0 0xe6052000 0 0x50>;
115 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
116 #gpio-cells = <2>;
117 gpio-controller;
118 gpio-ranges = <&pfc 0 64 32>;
119 #interrupt-cells = <2>;
120 interrupt-controller;
121 clocks = <&cpg CPG_MOD 910>;
122 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
123 resets = <&cpg 910>;
124 };
125
126 gpio3: gpio@e6053000 {
127 compatible = "renesas,gpio-r8a7745",
128 "renesas,rcar-gen2-gpio";
129 reg = <0 0xe6053000 0 0x50>;
130 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
131 #gpio-cells = <2>;
132 gpio-controller;
133 gpio-ranges = <&pfc 0 96 32>;
134 #interrupt-cells = <2>;
135 interrupt-controller;
136 clocks = <&cpg CPG_MOD 909>;
137 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
138 resets = <&cpg 909>;
139 };
140
141 gpio4: gpio@e6054000 {
142 compatible = "renesas,gpio-r8a7745",
143 "renesas,rcar-gen2-gpio";
144 reg = <0 0xe6054000 0 0x50>;
145 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
146 #gpio-cells = <2>;
147 gpio-controller;
148 gpio-ranges = <&pfc 0 128 32>;
149 #interrupt-cells = <2>;
150 interrupt-controller;
151 clocks = <&cpg CPG_MOD 908>;
152 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
153 resets = <&cpg 908>;
154 };
155
156 gpio5: gpio@e6055000 {
157 compatible = "renesas,gpio-r8a7745",
158 "renesas,rcar-gen2-gpio";
159 reg = <0 0xe6055000 0 0x50>;
160 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
161 #gpio-cells = <2>;
162 gpio-controller;
163 gpio-ranges = <&pfc 0 160 28>;
164 #interrupt-cells = <2>;
165 interrupt-controller;
166 clocks = <&cpg CPG_MOD 907>;
167 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
168 resets = <&cpg 907>;
169 };
170
171 gpio6: gpio@e6055400 {
172 compatible = "renesas,gpio-r8a7745",
173 "renesas,rcar-gen2-gpio";
174 reg = <0 0xe6055400 0 0x50>;
175 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
176 #gpio-cells = <2>;
177 gpio-controller;
178 gpio-ranges = <&pfc 0 192 26>;
179 #interrupt-cells = <2>;
180 interrupt-controller;
181 clocks = <&cpg CPG_MOD 905>;
182 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
183 resets = <&cpg 905>;
184 };
185
68 irqc: interrupt-controller@e61c0000 { 186 irqc: interrupt-controller@e61c0000 {
69 compatible = "renesas,irqc-r8a7745", "renesas,irqc"; 187 compatible = "renesas,irqc-r8a7745", "renesas,irqc";
70 #interrupt-cells = <2>; 188 #interrupt-cells = <2>;
@@ -508,6 +626,317 @@
508 #size-cells = <0>; 626 #size-cells = <0>;
509 status = "disabled"; 627 status = "disabled";
510 }; 628 };
629
630 avb: ethernet@e6800000 {
631 compatible = "renesas,etheravb-r8a7745",
632 "renesas,etheravb-rcar-gen2";
633 reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>;
634 interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
635 clocks = <&cpg CPG_MOD 812>;
636 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
637 resets = <&cpg 812>;
638 #address-cells = <1>;
639 #size-cells = <0>;
640 status = "disabled";
641 };
642
643 i2c0: i2c@e6508000 {
644 #address-cells = <1>;
645 #size-cells = <0>;
646 compatible = "renesas,i2c-r8a7745",
647 "renesas,rcar-gen2-i2c";
648 reg = <0 0xe6508000 0 0x40>;
649 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
650 clocks = <&cpg CPG_MOD 931>;
651 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
652 resets = <&cpg 931>;
653 i2c-scl-internal-delay-ns = <6>;
654 status = "disabled";
655 };
656
657 i2c1: i2c@e6518000 {
658 #address-cells = <1>;
659 #size-cells = <0>;
660 compatible = "renesas,i2c-r8a7745",
661 "renesas,rcar-gen2-i2c";
662 reg = <0 0xe6518000 0 0x40>;
663 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
664 clocks = <&cpg CPG_MOD 930>;
665 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
666 resets = <&cpg 930>;
667 i2c-scl-internal-delay-ns = <6>;
668 status = "disabled";
669 };
670
671 i2c2: i2c@e6530000 {
672 #address-cells = <1>;
673 #size-cells = <0>;
674 compatible = "renesas,i2c-r8a7745",
675 "renesas,rcar-gen2-i2c";
676 reg = <0 0xe6530000 0 0x40>;
677 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
678 clocks = <&cpg CPG_MOD 929>;
679 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
680 resets = <&cpg 929>;
681 i2c-scl-internal-delay-ns = <6>;
682 status = "disabled";
683 };
684
685 i2c3: i2c@e6540000 {
686 #address-cells = <1>;
687 #size-cells = <0>;
688 compatible = "renesas,i2c-r8a7745",
689 "renesas,rcar-gen2-i2c";
690 reg = <0 0xe6540000 0 0x40>;
691 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
692 clocks = <&cpg CPG_MOD 928>;
693 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
694 resets = <&cpg 928>;
695 i2c-scl-internal-delay-ns = <6>;
696 status = "disabled";
697 };
698
699 i2c4: i2c@e6520000 {
700 #address-cells = <1>;
701 #size-cells = <0>;
702 compatible = "renesas,i2c-r8a7745",
703 "renesas,rcar-gen2-i2c";
704 reg = <0 0xe6520000 0 0x40>;
705 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
706 clocks = <&cpg CPG_MOD 927>;
707 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
708 resets = <&cpg 927>;
709 i2c-scl-internal-delay-ns = <6>;
710 status = "disabled";
711 };
712
713 i2c5: i2c@e6528000 {
714 #address-cells = <1>;
715 #size-cells = <0>;
716 compatible = "renesas,i2c-r8a7745",
717 "renesas,rcar-gen2-i2c";
718 reg = <0 0xe6528000 0 0x40>;
719 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
720 clocks = <&cpg CPG_MOD 925>;
721 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
722 resets = <&cpg 925>;
723 i2c-scl-internal-delay-ns = <6>;
724 status = "disabled";
725 };
726
727 mmcif0: mmc@ee200000 {
728 compatible = "renesas,mmcif-r8a7745",
729 "renesas,sh-mmcif";
730 reg = <0 0xee200000 0 0x80>;
731 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
732 clocks = <&cpg CPG_MOD 315>;
733 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>,
734 <&dmac1 0xd1>, <&dmac1 0xd2>;
735 dma-names = "tx", "rx", "tx", "rx";
736 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
737 resets = <&cpg 315>;
738 reg-io-width = <4>;
739 max-frequency = <97500000>;
740 status = "disabled";
741 };
742
743 qspi: spi@e6b10000 {
744 compatible = "renesas,qspi-r8a7745", "renesas,qspi";
745 reg = <0 0xe6b10000 0 0x2c>;
746 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
747 clocks = <&cpg CPG_MOD 917>;
748 dmas = <&dmac0 0x17>, <&dmac0 0x18>,
749 <&dmac1 0x17>, <&dmac1 0x18>;
750 dma-names = "tx", "rx", "tx", "rx";
751 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
752 num-cs = <1>;
753 #address-cells = <1>;
754 #size-cells = <0>;
755 resets = <&cpg 917>;
756 status = "disabled";
757 };
758
759 msiof0: spi@e6e20000 {
760 compatible = "renesas,msiof-r8a7745",
761 "renesas,rcar-gen2-msiof";
762 reg = <0 0xe6e20000 0 0x0064>;
763 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
764 clocks = <&cpg CPG_MOD 000>;
765 dmas = <&dmac0 0x51>, <&dmac0 0x52>,
766 <&dmac1 0x51>, <&dmac1 0x52>;
767 dma-names = "tx", "rx", "tx", "rx";
768 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
769 #address-cells = <1>;
770 #size-cells = <0>;
771 resets = <&cpg 000>;
772 status = "disabled";
773 };
774
775 msiof1: spi@e6e10000 {
776 compatible = "renesas,msiof-r8a7745",
777 "renesas,rcar-gen2-msiof";
778 reg = <0 0xe6e10000 0 0x0064>;
779 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
780 clocks = <&cpg CPG_MOD 208>;
781 dmas = <&dmac0 0x55>, <&dmac0 0x56>,
782 <&dmac1 0x55>, <&dmac1 0x56>;
783 dma-names = "tx", "rx", "tx", "rx";
784 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
785 #address-cells = <1>;
786 #size-cells = <0>;
787 resets = <&cpg 208>;
788 status = "disabled";
789 };
790
791 msiof2: spi@e6e00000 {
792 compatible = "renesas,msiof-r8a7745",
793 "renesas,rcar-gen2-msiof";
794 reg = <0 0xe6e00000 0 0x0064>;
795 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
796 clocks = <&cpg CPG_MOD 205>;
797 dmas = <&dmac0 0x41>, <&dmac0 0x42>,
798 <&dmac1 0x41>, <&dmac1 0x42>;
799 dma-names = "tx", "rx", "tx", "rx";
800 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
801 #address-cells = <1>;
802 #size-cells = <0>;
803 resets = <&cpg 205>;
804 status = "disabled";
805 };
806
807 sdhi0: sd@ee100000 {
808 compatible = "renesas,sdhi-r8a7745";
809 reg = <0 0xee100000 0 0x328>;
810 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
811 clocks = <&cpg CPG_MOD 314>;
812 dmas = <&dmac0 0xcd>, <&dmac0 0xce>,
813 <&dmac1 0xcd>, <&dmac1 0xce>;
814 dma-names = "tx", "rx", "tx", "rx";
815 max-frequency = <195000000>;
816 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
817 resets = <&cpg 314>;
818 status = "disabled";
819 };
820
821 sdhi1: sd@ee140000 {
822 compatible = "renesas,sdhi-r8a7745";
823 reg = <0 0xee140000 0 0x100>;
824 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
825 clocks = <&cpg CPG_MOD 312>;
826 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>,
827 <&dmac1 0xc1>, <&dmac1 0xc2>;
828 dma-names = "tx", "rx", "tx", "rx";
829 max-frequency = <97500000>;
830 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
831 resets = <&cpg 312>;
832 status = "disabled";
833 };
834
835 sdhi2: sd@ee160000 {
836 compatible = "renesas,sdhi-r8a7745";
837 reg = <0 0xee160000 0 0x100>;
838 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
839 clocks = <&cpg CPG_MOD 311>;
840 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>,
841 <&dmac1 0xd3>, <&dmac1 0xd4>;
842 dma-names = "tx", "rx", "tx", "rx";
843 max-frequency = <97500000>;
844 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
845 resets = <&cpg 311>;
846 status = "disabled";
847 };
848
849 pci0: pci@ee090000 {
850 compatible = "renesas,pci-r8a7745",
851 "renesas,pci-rcar-gen2";
852 device_type = "pci";
853 reg = <0 0xee090000 0 0xc00>,
854 <0 0xee080000 0 0x1100>;
855 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
856 clocks = <&cpg CPG_MOD 703>;
857 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
858 resets = <&cpg 703>;
859 status = "disabled";
860
861 bus-range = <0 0>;
862 #address-cells = <3>;
863 #size-cells = <2>;
864 #interrupt-cells = <1>;
865 ranges = <0x02000000 0 0xee080000 0 0xee080000 0 0x00010000>;
866 interrupt-map-mask = <0xff00 0 0 0x7>;
867 interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH
868 0x0800 0 0 1 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH
869 0x1000 0 0 2 &gic GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
870
871 usb@1,0 {
872 reg = <0x800 0 0 0 0>;
873 phys = <&usb0 0>;
874 phy-names = "usb";
875 };
876
877 usb@2,0 {
878 reg = <0x1000 0 0 0 0>;
879 phys = <&usb0 0>;
880 phy-names = "usb";
881 };
882 };
883
884 pci1: pci@ee0d0000 {
885 compatible = "renesas,pci-r8a7745",
886 "renesas,pci-rcar-gen2";
887 device_type = "pci";
888 reg = <0 0xee0d0000 0 0xc00>,
889 <0 0xee0c0000 0 0x1100>;
890 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
891 clocks = <&cpg CPG_MOD 703>;
892 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
893 resets = <&cpg 703>;
894 status = "disabled";
895
896 bus-range = <1 1>;
897 #address-cells = <3>;
898 #size-cells = <2>;
899 #interrupt-cells = <1>;
900 ranges = <0x02000000 0 0xee0c0000 0 0xee0c0000 0 0x00010000>;
901 interrupt-map-mask = <0xff00 0 0 0x7>;
902 interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH
903 0x0800 0 0 1 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH
904 0x1000 0 0 2 &gic GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
905
906 usb@1,0 {
907 reg = <0x10800 0 0 0 0>;
908 phys = <&usb2 0>;
909 phy-names = "usb";
910 };
911
912 usb@2,0 {
913 reg = <0x11000 0 0 0 0>;
914 phys = <&usb2 0>;
915 phy-names = "usb";
916 };
917 };
918
919 usbphy: usb-phy@e6590100 {
920 compatible = "renesas,usb-phy-r8a7745",
921 "renesas,rcar-gen2-usb-phy";
922 reg = <0 0xe6590100 0 0x100>;
923 #address-cells = <1>;
924 #size-cells = <0>;
925 clocks = <&cpg CPG_MOD 704>;
926 clock-names = "usbhs";
927 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
928 resets = <&cpg 704>;
929 status = "disabled";
930
931 usb0: usb-channel@0 {
932 reg = <0>;
933 #phy-cells = <1>;
934 };
935 usb2: usb-channel@2 {
936 reg = <2>;
937 #phy-cells = <1>;
938 };
939 };
511 }; 940 };
512 941
513 /* External root clock */ 942 /* External root clock */
diff --git a/arch/arm/boot/dts/r8a7778.dtsi b/arch/arm/boot/dts/r8a7778.dtsi
index 8f3156c0e575..a39472aab867 100644
--- a/arch/arm/boot/dts/r8a7778.dtsi
+++ b/arch/arm/boot/dts/r8a7778.dtsi
@@ -33,6 +33,7 @@
33 compatible = "arm,cortex-a9"; 33 compatible = "arm,cortex-a9";
34 reg = <0>; 34 reg = <0>;
35 clock-frequency = <800000000>; 35 clock-frequency = <800000000>;
36 clocks = <&z_clk>;
36 }; 37 };
37 }; 38 };
38 39
@@ -88,7 +89,7 @@
88 }; 89 };
89 90
90 gpio0: gpio@ffc40000 { 91 gpio0: gpio@ffc40000 {
91 compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; 92 compatible = "renesas,gpio-r8a7778", "renesas,rcar-gen1-gpio";
92 reg = <0xffc40000 0x2c>; 93 reg = <0xffc40000 0x2c>;
93 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 94 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
94 #gpio-cells = <2>; 95 #gpio-cells = <2>;
@@ -99,7 +100,7 @@
99 }; 100 };
100 101
101 gpio1: gpio@ffc41000 { 102 gpio1: gpio@ffc41000 {
102 compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; 103 compatible = "renesas,gpio-r8a7778", "renesas,rcar-gen1-gpio";
103 reg = <0xffc41000 0x2c>; 104 reg = <0xffc41000 0x2c>;
104 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 105 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
105 #gpio-cells = <2>; 106 #gpio-cells = <2>;
@@ -110,7 +111,7 @@
110 }; 111 };
111 112
112 gpio2: gpio@ffc42000 { 113 gpio2: gpio@ffc42000 {
113 compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; 114 compatible = "renesas,gpio-r8a7778", "renesas,rcar-gen1-gpio";
114 reg = <0xffc42000 0x2c>; 115 reg = <0xffc42000 0x2c>;
115 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 116 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
116 #gpio-cells = <2>; 117 #gpio-cells = <2>;
@@ -121,7 +122,7 @@
121 }; 122 };
122 123
123 gpio3: gpio@ffc43000 { 124 gpio3: gpio@ffc43000 {
124 compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; 125 compatible = "renesas,gpio-r8a7778", "renesas,rcar-gen1-gpio";
125 reg = <0xffc43000 0x2c>; 126 reg = <0xffc43000 0x2c>;
126 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 127 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
127 #gpio-cells = <2>; 128 #gpio-cells = <2>;
@@ -132,7 +133,7 @@
132 }; 133 };
133 134
134 gpio4: gpio@ffc44000 { 135 gpio4: gpio@ffc44000 {
135 compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; 136 compatible = "renesas,gpio-r8a7778", "renesas,rcar-gen1-gpio";
136 reg = <0xffc44000 0x2c>; 137 reg = <0xffc44000 0x2c>;
137 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 138 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
138 #gpio-cells = <2>; 139 #gpio-cells = <2>;
diff --git a/arch/arm/boot/dts/r8a7779.dtsi b/arch/arm/boot/dts/r8a7779.dtsi
index 8ee0b2ca5d39..e8eb94748b27 100644
--- a/arch/arm/boot/dts/r8a7779.dtsi
+++ b/arch/arm/boot/dts/r8a7779.dtsi
@@ -29,12 +29,14 @@
29 compatible = "arm,cortex-a9"; 29 compatible = "arm,cortex-a9";
30 reg = <0>; 30 reg = <0>;
31 clock-frequency = <1000000000>; 31 clock-frequency = <1000000000>;
32 clocks = <&cpg_clocks R8A7779_CLK_Z>;
32 }; 33 };
33 cpu@1 { 34 cpu@1 {
34 device_type = "cpu"; 35 device_type = "cpu";
35 compatible = "arm,cortex-a9"; 36 compatible = "arm,cortex-a9";
36 reg = <1>; 37 reg = <1>;
37 clock-frequency = <1000000000>; 38 clock-frequency = <1000000000>;
39 clocks = <&cpg_clocks R8A7779_CLK_Z>;
38 power-domains = <&sysc R8A7779_PD_ARM1>; 40 power-domains = <&sysc R8A7779_PD_ARM1>;
39 }; 41 };
40 cpu@2 { 42 cpu@2 {
@@ -42,6 +44,7 @@
42 compatible = "arm,cortex-a9"; 44 compatible = "arm,cortex-a9";
43 reg = <2>; 45 reg = <2>;
44 clock-frequency = <1000000000>; 46 clock-frequency = <1000000000>;
47 clocks = <&cpg_clocks R8A7779_CLK_Z>;
45 power-domains = <&sysc R8A7779_PD_ARM2>; 48 power-domains = <&sysc R8A7779_PD_ARM2>;
46 }; 49 };
47 cpu@3 { 50 cpu@3 {
@@ -49,6 +52,7 @@
49 compatible = "arm,cortex-a9"; 52 compatible = "arm,cortex-a9";
50 reg = <3>; 53 reg = <3>;
51 clock-frequency = <1000000000>; 54 clock-frequency = <1000000000>;
55 clocks = <&cpg_clocks R8A7779_CLK_Z>;
52 power-domains = <&sysc R8A7779_PD_ARM3>; 56 power-domains = <&sysc R8A7779_PD_ARM3>;
53 }; 57 };
54 }; 58 };
@@ -76,7 +80,7 @@
76 }; 80 };
77 81
78 gpio0: gpio@ffc40000 { 82 gpio0: gpio@ffc40000 {
79 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; 83 compatible = "renesas,gpio-r8a7779", "renesas,rcar-gen1-gpio";
80 reg = <0xffc40000 0x2c>; 84 reg = <0xffc40000 0x2c>;
81 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>; 85 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
82 #gpio-cells = <2>; 86 #gpio-cells = <2>;
@@ -87,7 +91,7 @@
87 }; 91 };
88 92
89 gpio1: gpio@ffc41000 { 93 gpio1: gpio@ffc41000 {
90 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; 94 compatible = "renesas,gpio-r8a7779", "renesas,rcar-gen1-gpio";
91 reg = <0xffc41000 0x2c>; 95 reg = <0xffc41000 0x2c>;
92 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>; 96 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
93 #gpio-cells = <2>; 97 #gpio-cells = <2>;
@@ -98,7 +102,7 @@
98 }; 102 };
99 103
100 gpio2: gpio@ffc42000 { 104 gpio2: gpio@ffc42000 {
101 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; 105 compatible = "renesas,gpio-r8a7779", "renesas,rcar-gen1-gpio";
102 reg = <0xffc42000 0x2c>; 106 reg = <0xffc42000 0x2c>;
103 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; 107 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
104 #gpio-cells = <2>; 108 #gpio-cells = <2>;
@@ -109,7 +113,7 @@
109 }; 113 };
110 114
111 gpio3: gpio@ffc43000 { 115 gpio3: gpio@ffc43000 {
112 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; 116 compatible = "renesas,gpio-r8a7779", "renesas,rcar-gen1-gpio";
113 reg = <0xffc43000 0x2c>; 117 reg = <0xffc43000 0x2c>;
114 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; 118 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
115 #gpio-cells = <2>; 119 #gpio-cells = <2>;
@@ -120,7 +124,7 @@
120 }; 124 };
121 125
122 gpio4: gpio@ffc44000 { 126 gpio4: gpio@ffc44000 {
123 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; 127 compatible = "renesas,gpio-r8a7779", "renesas,rcar-gen1-gpio";
124 reg = <0xffc44000 0x2c>; 128 reg = <0xffc44000 0x2c>;
125 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; 129 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
126 #gpio-cells = <2>; 130 #gpio-cells = <2>;
@@ -131,7 +135,7 @@
131 }; 135 };
132 136
133 gpio5: gpio@ffc45000 { 137 gpio5: gpio@ffc45000 {
134 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; 138 compatible = "renesas,gpio-r8a7779", "renesas,rcar-gen1-gpio";
135 reg = <0xffc45000 0x2c>; 139 reg = <0xffc45000 0x2c>;
136 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; 140 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
137 #gpio-cells = <2>; 141 #gpio-cells = <2>;
@@ -142,7 +146,7 @@
142 }; 146 };
143 147
144 gpio6: gpio@ffc46000 { 148 gpio6: gpio@ffc46000 {
145 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; 149 compatible = "renesas,gpio-r8a7779", "renesas,rcar-gen1-gpio";
146 reg = <0xffc46000 0x2c>; 150 reg = <0xffc46000 0x2c>;
147 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; 151 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
148 #gpio-cells = <2>; 152 #gpio-cells = <2>;
diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts
index ba100a6f67ca..e3d27783b6b5 100644
--- a/arch/arm/boot/dts/r8a7790-lager.dts
+++ b/arch/arm/boot/dts/r8a7790-lager.dts
@@ -316,11 +316,8 @@
316 pinctrl-names = "default"; 316 pinctrl-names = "default";
317 status = "okay"; 317 status = "okay";
318 318
319 clocks = <&mstp7_clks R8A7790_CLK_DU0>, 319 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 722>,
320 <&mstp7_clks R8A7790_CLK_DU1>, 320 <&cpg CPG_MOD 726>, <&cpg CPG_MOD 725>,
321 <&mstp7_clks R8A7790_CLK_DU2>,
322 <&mstp7_clks R8A7790_CLK_LVDS0>,
323 <&mstp7_clks R8A7790_CLK_LVDS1>,
324 <&x13_clk>, <&x2_clk>; 321 <&x13_clk>, <&x2_clk>;
325 clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1", 322 clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1",
326 "dclkin.0", "dclkin.1"; 323 "dclkin.0", "dclkin.1";
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi
index 16358bf8d1db..2f017fee4009 100644
--- a/arch/arm/boot/dts/r8a7790.dtsi
+++ b/arch/arm/boot/dts/r8a7790.dtsi
@@ -10,7 +10,7 @@
10 * kind, whether express or implied. 10 * kind, whether express or implied.
11 */ 11 */
12 12
13#include <dt-bindings/clock/r8a7790-clock.h> 13#include <dt-bindings/clock/r8a7790-cpg-mssr.h>
14#include <dt-bindings/interrupt-controller/arm-gic.h> 14#include <dt-bindings/interrupt-controller/arm-gic.h>
15#include <dt-bindings/interrupt-controller/irq.h> 15#include <dt-bindings/interrupt-controller/irq.h>
16#include <dt-bindings/power/r8a7790-sysc.h> 16#include <dt-bindings/power/r8a7790-sysc.h>
@@ -52,10 +52,11 @@
52 reg = <0>; 52 reg = <0>;
53 clock-frequency = <1300000000>; 53 clock-frequency = <1300000000>;
54 voltage-tolerance = <1>; /* 1% */ 54 voltage-tolerance = <1>; /* 1% */
55 clocks = <&cpg_clocks R8A7790_CLK_Z>; 55 clocks = <&cpg CPG_CORE R8A7790_CLK_Z>;
56 clock-latency = <300000>; /* 300 us */ 56 clock-latency = <300000>; /* 300 us */
57 power-domains = <&sysc R8A7790_PD_CA15_CPU0>; 57 power-domains = <&sysc R8A7790_PD_CA15_CPU0>;
58 next-level-cache = <&L2_CA15>; 58 next-level-cache = <&L2_CA15>;
59 capacity-dmips-mhz = <1024>;
59 60
60 /* kHz - uV - OPPs unknown yet */ 61 /* kHz - uV - OPPs unknown yet */
61 operating-points = <1400000 1000000>, 62 operating-points = <1400000 1000000>,
@@ -71,8 +72,10 @@
71 compatible = "arm,cortex-a15"; 72 compatible = "arm,cortex-a15";
72 reg = <1>; 73 reg = <1>;
73 clock-frequency = <1300000000>; 74 clock-frequency = <1300000000>;
75 clocks = <&cpg CPG_CORE R8A7790_CLK_Z>;
74 power-domains = <&sysc R8A7790_PD_CA15_CPU1>; 76 power-domains = <&sysc R8A7790_PD_CA15_CPU1>;
75 next-level-cache = <&L2_CA15>; 77 next-level-cache = <&L2_CA15>;
78 capacity-dmips-mhz = <1024>;
76 }; 79 };
77 80
78 cpu2: cpu@2 { 81 cpu2: cpu@2 {
@@ -80,8 +83,10 @@
80 compatible = "arm,cortex-a15"; 83 compatible = "arm,cortex-a15";
81 reg = <2>; 84 reg = <2>;
82 clock-frequency = <1300000000>; 85 clock-frequency = <1300000000>;
86 clocks = <&cpg CPG_CORE R8A7790_CLK_Z>;
83 power-domains = <&sysc R8A7790_PD_CA15_CPU2>; 87 power-domains = <&sysc R8A7790_PD_CA15_CPU2>;
84 next-level-cache = <&L2_CA15>; 88 next-level-cache = <&L2_CA15>;
89 capacity-dmips-mhz = <1024>;
85 }; 90 };
86 91
87 cpu3: cpu@3 { 92 cpu3: cpu@3 {
@@ -89,8 +94,10 @@
89 compatible = "arm,cortex-a15"; 94 compatible = "arm,cortex-a15";
90 reg = <3>; 95 reg = <3>;
91 clock-frequency = <1300000000>; 96 clock-frequency = <1300000000>;
97 clocks = <&cpg CPG_CORE R8A7790_CLK_Z>;
92 power-domains = <&sysc R8A7790_PD_CA15_CPU3>; 98 power-domains = <&sysc R8A7790_PD_CA15_CPU3>;
93 next-level-cache = <&L2_CA15>; 99 next-level-cache = <&L2_CA15>;
100 capacity-dmips-mhz = <1024>;
94 }; 101 };
95 102
96 cpu4: cpu@100 { 103 cpu4: cpu@100 {
@@ -98,8 +105,10 @@
98 compatible = "arm,cortex-a7"; 105 compatible = "arm,cortex-a7";
99 reg = <0x100>; 106 reg = <0x100>;
100 clock-frequency = <780000000>; 107 clock-frequency = <780000000>;
108 clocks = <&cpg CPG_CORE R8A7790_CLK_Z2>;
101 power-domains = <&sysc R8A7790_PD_CA7_CPU0>; 109 power-domains = <&sysc R8A7790_PD_CA7_CPU0>;
102 next-level-cache = <&L2_CA7>; 110 next-level-cache = <&L2_CA7>;
111 capacity-dmips-mhz = <539>;
103 }; 112 };
104 113
105 cpu5: cpu@101 { 114 cpu5: cpu@101 {
@@ -107,8 +116,10 @@
107 compatible = "arm,cortex-a7"; 116 compatible = "arm,cortex-a7";
108 reg = <0x101>; 117 reg = <0x101>;
109 clock-frequency = <780000000>; 118 clock-frequency = <780000000>;
119 clocks = <&cpg CPG_CORE R8A7790_CLK_Z2>;
110 power-domains = <&sysc R8A7790_PD_CA7_CPU1>; 120 power-domains = <&sysc R8A7790_PD_CA7_CPU1>;
111 next-level-cache = <&L2_CA7>; 121 next-level-cache = <&L2_CA7>;
122 capacity-dmips-mhz = <539>;
112 }; 123 };
113 124
114 cpu6: cpu@102 { 125 cpu6: cpu@102 {
@@ -116,8 +127,10 @@
116 compatible = "arm,cortex-a7"; 127 compatible = "arm,cortex-a7";
117 reg = <0x102>; 128 reg = <0x102>;
118 clock-frequency = <780000000>; 129 clock-frequency = <780000000>;
130 clocks = <&cpg CPG_CORE R8A7790_CLK_Z2>;
119 power-domains = <&sysc R8A7790_PD_CA7_CPU2>; 131 power-domains = <&sysc R8A7790_PD_CA7_CPU2>;
120 next-level-cache = <&L2_CA7>; 132 next-level-cache = <&L2_CA7>;
133 capacity-dmips-mhz = <539>;
121 }; 134 };
122 135
123 cpu7: cpu@103 { 136 cpu7: cpu@103 {
@@ -125,8 +138,10 @@
125 compatible = "arm,cortex-a7"; 138 compatible = "arm,cortex-a7";
126 reg = <0x103>; 139 reg = <0x103>;
127 clock-frequency = <780000000>; 140 clock-frequency = <780000000>;
141 clocks = <&cpg CPG_CORE R8A7790_CLK_Z2>;
128 power-domains = <&sysc R8A7790_PD_CA7_CPU3>; 142 power-domains = <&sysc R8A7790_PD_CA7_CPU3>;
129 next-level-cache = <&L2_CA7>; 143 next-level-cache = <&L2_CA7>;
144 capacity-dmips-mhz = <539>;
130 }; 145 };
131 146
132 L2_CA15: cache-controller-0 { 147 L2_CA15: cache-controller-0 {
@@ -185,13 +200,14 @@
185 <0 0xf1004000 0 0x2000>, 200 <0 0xf1004000 0 0x2000>,
186 <0 0xf1006000 0 0x2000>; 201 <0 0xf1006000 0 0x2000>;
187 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 202 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
188 clocks = <&mstp4_clks R8A7790_CLK_INTC_SYS>; 203 clocks = <&cpg CPG_MOD 408>;
189 clock-names = "clk"; 204 clock-names = "clk";
190 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 205 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
206 resets = <&cpg 408>;
191 }; 207 };
192 208
193 gpio0: gpio@e6050000 { 209 gpio0: gpio@e6050000 {
194 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; 210 compatible = "renesas,gpio-r8a7790", "renesas,rcar-gen2-gpio";
195 reg = <0 0xe6050000 0 0x50>; 211 reg = <0 0xe6050000 0 0x50>;
196 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 212 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
197 #gpio-cells = <2>; 213 #gpio-cells = <2>;
@@ -199,12 +215,13 @@
199 gpio-ranges = <&pfc 0 0 32>; 215 gpio-ranges = <&pfc 0 0 32>;
200 #interrupt-cells = <2>; 216 #interrupt-cells = <2>;
201 interrupt-controller; 217 interrupt-controller;
202 clocks = <&mstp9_clks R8A7790_CLK_GPIO0>; 218 clocks = <&cpg CPG_MOD 912>;
203 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 219 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
220 resets = <&cpg 912>;
204 }; 221 };
205 222
206 gpio1: gpio@e6051000 { 223 gpio1: gpio@e6051000 {
207 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; 224 compatible = "renesas,gpio-r8a7790", "renesas,rcar-gen2-gpio";
208 reg = <0 0xe6051000 0 0x50>; 225 reg = <0 0xe6051000 0 0x50>;
209 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 226 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
210 #gpio-cells = <2>; 227 #gpio-cells = <2>;
@@ -212,12 +229,13 @@
212 gpio-ranges = <&pfc 0 32 30>; 229 gpio-ranges = <&pfc 0 32 30>;
213 #interrupt-cells = <2>; 230 #interrupt-cells = <2>;
214 interrupt-controller; 231 interrupt-controller;
215 clocks = <&mstp9_clks R8A7790_CLK_GPIO1>; 232 clocks = <&cpg CPG_MOD 911>;
216 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 233 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
234 resets = <&cpg 911>;
217 }; 235 };
218 236
219 gpio2: gpio@e6052000 { 237 gpio2: gpio@e6052000 {
220 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; 238 compatible = "renesas,gpio-r8a7790", "renesas,rcar-gen2-gpio";
221 reg = <0 0xe6052000 0 0x50>; 239 reg = <0 0xe6052000 0 0x50>;
222 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 240 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
223 #gpio-cells = <2>; 241 #gpio-cells = <2>;
@@ -225,12 +243,13 @@
225 gpio-ranges = <&pfc 0 64 30>; 243 gpio-ranges = <&pfc 0 64 30>;
226 #interrupt-cells = <2>; 244 #interrupt-cells = <2>;
227 interrupt-controller; 245 interrupt-controller;
228 clocks = <&mstp9_clks R8A7790_CLK_GPIO2>; 246 clocks = <&cpg CPG_MOD 910>;
229 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 247 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
248 resets = <&cpg 910>;
230 }; 249 };
231 250
232 gpio3: gpio@e6053000 { 251 gpio3: gpio@e6053000 {
233 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; 252 compatible = "renesas,gpio-r8a7790", "renesas,rcar-gen2-gpio";
234 reg = <0 0xe6053000 0 0x50>; 253 reg = <0 0xe6053000 0 0x50>;
235 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 254 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
236 #gpio-cells = <2>; 255 #gpio-cells = <2>;
@@ -238,12 +257,13 @@
238 gpio-ranges = <&pfc 0 96 32>; 257 gpio-ranges = <&pfc 0 96 32>;
239 #interrupt-cells = <2>; 258 #interrupt-cells = <2>;
240 interrupt-controller; 259 interrupt-controller;
241 clocks = <&mstp9_clks R8A7790_CLK_GPIO3>; 260 clocks = <&cpg CPG_MOD 909>;
242 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 261 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
262 resets = <&cpg 909>;
243 }; 263 };
244 264
245 gpio4: gpio@e6054000 { 265 gpio4: gpio@e6054000 {
246 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; 266 compatible = "renesas,gpio-r8a7790", "renesas,rcar-gen2-gpio";
247 reg = <0 0xe6054000 0 0x50>; 267 reg = <0 0xe6054000 0 0x50>;
248 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 268 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
249 #gpio-cells = <2>; 269 #gpio-cells = <2>;
@@ -251,12 +271,13 @@
251 gpio-ranges = <&pfc 0 128 32>; 271 gpio-ranges = <&pfc 0 128 32>;
252 #interrupt-cells = <2>; 272 #interrupt-cells = <2>;
253 interrupt-controller; 273 interrupt-controller;
254 clocks = <&mstp9_clks R8A7790_CLK_GPIO4>; 274 clocks = <&cpg CPG_MOD 908>;
255 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 275 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
276 resets = <&cpg 908>;
256 }; 277 };
257 278
258 gpio5: gpio@e6055000 { 279 gpio5: gpio@e6055000 {
259 compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; 280 compatible = "renesas,gpio-r8a7790", "renesas,rcar-gen2-gpio";
260 reg = <0 0xe6055000 0 0x50>; 281 reg = <0 0xe6055000 0 0x50>;
261 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 282 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
262 #gpio-cells = <2>; 283 #gpio-cells = <2>;
@@ -264,8 +285,9 @@
264 gpio-ranges = <&pfc 0 160 32>; 285 gpio-ranges = <&pfc 0 160 32>;
265 #interrupt-cells = <2>; 286 #interrupt-cells = <2>;
266 interrupt-controller; 287 interrupt-controller;
267 clocks = <&mstp9_clks R8A7790_CLK_GPIO5>; 288 clocks = <&cpg CPG_MOD 907>;
268 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 289 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
290 resets = <&cpg 907>;
269 }; 291 };
270 292
271 thermal: thermal@e61f0000 { 293 thermal: thermal@e61f0000 {
@@ -274,8 +296,9 @@
274 "renesas,rcar-thermal"; 296 "renesas,rcar-thermal";
275 reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>; 297 reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>;
276 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 298 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
277 clocks = <&mstp5_clks R8A7790_CLK_THERMAL>; 299 clocks = <&cpg CPG_MOD 522>;
278 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 300 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
301 resets = <&cpg 522>;
279 #thermal-sensor-cells = <0>; 302 #thermal-sensor-cells = <0>;
280 }; 303 };
281 304
@@ -292,9 +315,10 @@
292 reg = <0 0xffca0000 0 0x1004>; 315 reg = <0 0xffca0000 0 0x1004>;
293 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, 316 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
294 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; 317 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
295 clocks = <&mstp1_clks R8A7790_CLK_CMT0>; 318 clocks = <&cpg CPG_MOD 124>;
296 clock-names = "fck"; 319 clock-names = "fck";
297 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 320 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
321 resets = <&cpg 124>;
298 322
299 renesas,channels-mask = <0x60>; 323 renesas,channels-mask = <0x60>;
300 324
@@ -312,9 +336,10 @@
312 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 336 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
313 <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>, 337 <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
314 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; 338 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
315 clocks = <&mstp3_clks R8A7790_CLK_CMT1>; 339 clocks = <&cpg CPG_MOD 329>;
316 clock-names = "fck"; 340 clock-names = "fck";
317 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 341 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
342 resets = <&cpg 329>;
318 343
319 renesas,channels-mask = <0xff>; 344 renesas,channels-mask = <0xff>;
320 345
@@ -330,8 +355,9 @@
330 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, 355 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
331 <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, 356 <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
332 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 357 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
333 clocks = <&mstp4_clks R8A7790_CLK_IRQC>; 358 clocks = <&cpg CPG_MOD 407>;
334 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 359 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
360 resets = <&cpg 407>;
335 }; 361 };
336 362
337 dmac0: dma-controller@e6700000 { 363 dmac0: dma-controller@e6700000 {
@@ -358,9 +384,10 @@
358 "ch4", "ch5", "ch6", "ch7", 384 "ch4", "ch5", "ch6", "ch7",
359 "ch8", "ch9", "ch10", "ch11", 385 "ch8", "ch9", "ch10", "ch11",
360 "ch12", "ch13", "ch14"; 386 "ch12", "ch13", "ch14";
361 clocks = <&mstp2_clks R8A7790_CLK_SYS_DMAC0>; 387 clocks = <&cpg CPG_MOD 219>;
362 clock-names = "fck"; 388 clock-names = "fck";
363 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 389 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
390 resets = <&cpg 219>;
364 #dma-cells = <1>; 391 #dma-cells = <1>;
365 dma-channels = <15>; 392 dma-channels = <15>;
366 }; 393 };
@@ -389,9 +416,10 @@
389 "ch4", "ch5", "ch6", "ch7", 416 "ch4", "ch5", "ch6", "ch7",
390 "ch8", "ch9", "ch10", "ch11", 417 "ch8", "ch9", "ch10", "ch11",
391 "ch12", "ch13", "ch14"; 418 "ch12", "ch13", "ch14";
392 clocks = <&mstp2_clks R8A7790_CLK_SYS_DMAC1>; 419 clocks = <&cpg CPG_MOD 218>;
393 clock-names = "fck"; 420 clock-names = "fck";
394 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 421 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
422 resets = <&cpg 218>;
395 #dma-cells = <1>; 423 #dma-cells = <1>;
396 dma-channels = <15>; 424 dma-channels = <15>;
397 }; 425 };
@@ -418,9 +446,10 @@
418 "ch4", "ch5", "ch6", "ch7", 446 "ch4", "ch5", "ch6", "ch7",
419 "ch8", "ch9", "ch10", "ch11", 447 "ch8", "ch9", "ch10", "ch11",
420 "ch12"; 448 "ch12";
421 clocks = <&mstp5_clks R8A7790_CLK_AUDIO_DMAC0>; 449 clocks = <&cpg CPG_MOD 502>;
422 clock-names = "fck"; 450 clock-names = "fck";
423 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 451 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
452 resets = <&cpg 502>;
424 #dma-cells = <1>; 453 #dma-cells = <1>;
425 dma-channels = <13>; 454 dma-channels = <13>;
426 }; 455 };
@@ -447,9 +476,10 @@
447 "ch4", "ch5", "ch6", "ch7", 476 "ch4", "ch5", "ch6", "ch7",
448 "ch8", "ch9", "ch10", "ch11", 477 "ch8", "ch9", "ch10", "ch11",
449 "ch12"; 478 "ch12";
450 clocks = <&mstp5_clks R8A7790_CLK_AUDIO_DMAC1>; 479 clocks = <&cpg CPG_MOD 501>;
451 clock-names = "fck"; 480 clock-names = "fck";
452 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 481 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
482 resets = <&cpg 501>;
453 #dma-cells = <1>; 483 #dma-cells = <1>;
454 dma-channels = <13>; 484 dma-channels = <13>;
455 }; 485 };
@@ -460,8 +490,9 @@
460 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 490 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH
461 GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 491 GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
462 interrupt-names = "ch0", "ch1"; 492 interrupt-names = "ch0", "ch1";
463 clocks = <&mstp3_clks R8A7790_CLK_USBDMAC0>; 493 clocks = <&cpg CPG_MOD 330>;
464 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 494 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
495 resets = <&cpg 330>;
465 #dma-cells = <1>; 496 #dma-cells = <1>;
466 dma-channels = <2>; 497 dma-channels = <2>;
467 }; 498 };
@@ -472,8 +503,9 @@
472 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 503 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH
473 GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 504 GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
474 interrupt-names = "ch0", "ch1"; 505 interrupt-names = "ch0", "ch1";
475 clocks = <&mstp3_clks R8A7790_CLK_USBDMAC1>; 506 clocks = <&cpg CPG_MOD 331>;
476 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 507 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
508 resets = <&cpg 331>;
477 #dma-cells = <1>; 509 #dma-cells = <1>;
478 dma-channels = <2>; 510 dma-channels = <2>;
479 }; 511 };
@@ -484,8 +516,9 @@
484 compatible = "renesas,i2c-r8a7790", "renesas,rcar-gen2-i2c"; 516 compatible = "renesas,i2c-r8a7790", "renesas,rcar-gen2-i2c";
485 reg = <0 0xe6508000 0 0x40>; 517 reg = <0 0xe6508000 0 0x40>;
486 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 518 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
487 clocks = <&mstp9_clks R8A7790_CLK_I2C0>; 519 clocks = <&cpg CPG_MOD 931>;
488 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 520 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
521 resets = <&cpg 931>;
489 i2c-scl-internal-delay-ns = <110>; 522 i2c-scl-internal-delay-ns = <110>;
490 status = "disabled"; 523 status = "disabled";
491 }; 524 };
@@ -496,8 +529,9 @@
496 compatible = "renesas,i2c-r8a7790", "renesas,rcar-gen2-i2c"; 529 compatible = "renesas,i2c-r8a7790", "renesas,rcar-gen2-i2c";
497 reg = <0 0xe6518000 0 0x40>; 530 reg = <0 0xe6518000 0 0x40>;
498 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; 531 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
499 clocks = <&mstp9_clks R8A7790_CLK_I2C1>; 532 clocks = <&cpg CPG_MOD 930>;
500 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 533 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
534 resets = <&cpg 930>;
501 i2c-scl-internal-delay-ns = <6>; 535 i2c-scl-internal-delay-ns = <6>;
502 status = "disabled"; 536 status = "disabled";
503 }; 537 };
@@ -508,8 +542,9 @@
508 compatible = "renesas,i2c-r8a7790", "renesas,rcar-gen2-i2c"; 542 compatible = "renesas,i2c-r8a7790", "renesas,rcar-gen2-i2c";
509 reg = <0 0xe6530000 0 0x40>; 543 reg = <0 0xe6530000 0 0x40>;
510 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; 544 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
511 clocks = <&mstp9_clks R8A7790_CLK_I2C2>; 545 clocks = <&cpg CPG_MOD 929>;
512 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 546 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
547 resets = <&cpg 929>;
513 i2c-scl-internal-delay-ns = <6>; 548 i2c-scl-internal-delay-ns = <6>;
514 status = "disabled"; 549 status = "disabled";
515 }; 550 };
@@ -520,8 +555,9 @@
520 compatible = "renesas,i2c-r8a7790", "renesas,rcar-gen2-i2c"; 555 compatible = "renesas,i2c-r8a7790", "renesas,rcar-gen2-i2c";
521 reg = <0 0xe6540000 0 0x40>; 556 reg = <0 0xe6540000 0 0x40>;
522 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; 557 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
523 clocks = <&mstp9_clks R8A7790_CLK_I2C3>; 558 clocks = <&cpg CPG_MOD 928>;
524 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 559 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
560 resets = <&cpg 928>;
525 i2c-scl-internal-delay-ns = <110>; 561 i2c-scl-internal-delay-ns = <110>;
526 status = "disabled"; 562 status = "disabled";
527 }; 563 };
@@ -533,11 +569,12 @@
533 "renesas,rmobile-iic"; 569 "renesas,rmobile-iic";
534 reg = <0 0xe6500000 0 0x425>; 570 reg = <0 0xe6500000 0 0x425>;
535 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 571 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
536 clocks = <&mstp3_clks R8A7790_CLK_IIC0>; 572 clocks = <&cpg CPG_MOD 318>;
537 dmas = <&dmac0 0x61>, <&dmac0 0x62>, 573 dmas = <&dmac0 0x61>, <&dmac0 0x62>,
538 <&dmac1 0x61>, <&dmac1 0x62>; 574 <&dmac1 0x61>, <&dmac1 0x62>;
539 dma-names = "tx", "rx", "tx", "rx"; 575 dma-names = "tx", "rx", "tx", "rx";
540 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 576 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
577 resets = <&cpg 318>;
541 status = "disabled"; 578 status = "disabled";
542 }; 579 };
543 580
@@ -548,11 +585,12 @@
548 "renesas,rmobile-iic"; 585 "renesas,rmobile-iic";
549 reg = <0 0xe6510000 0 0x425>; 586 reg = <0 0xe6510000 0 0x425>;
550 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 587 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
551 clocks = <&mstp3_clks R8A7790_CLK_IIC1>; 588 clocks = <&cpg CPG_MOD 323>;
552 dmas = <&dmac0 0x65>, <&dmac0 0x66>, 589 dmas = <&dmac0 0x65>, <&dmac0 0x66>,
553 <&dmac1 0x65>, <&dmac1 0x66>; 590 <&dmac1 0x65>, <&dmac1 0x66>;
554 dma-names = "tx", "rx", "tx", "rx"; 591 dma-names = "tx", "rx", "tx", "rx";
555 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 592 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
593 resets = <&cpg 323>;
556 status = "disabled"; 594 status = "disabled";
557 }; 595 };
558 596
@@ -563,11 +601,12 @@
563 "renesas,rmobile-iic"; 601 "renesas,rmobile-iic";
564 reg = <0 0xe6520000 0 0x425>; 602 reg = <0 0xe6520000 0 0x425>;
565 interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; 603 interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
566 clocks = <&mstp3_clks R8A7790_CLK_IIC2>; 604 clocks = <&cpg CPG_MOD 300>;
567 dmas = <&dmac0 0x69>, <&dmac0 0x6a>, 605 dmas = <&dmac0 0x69>, <&dmac0 0x6a>,
568 <&dmac1 0x69>, <&dmac1 0x6a>; 606 <&dmac1 0x69>, <&dmac1 0x6a>;
569 dma-names = "tx", "rx", "tx", "rx"; 607 dma-names = "tx", "rx", "tx", "rx";
570 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 608 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
609 resets = <&cpg 300>;
571 status = "disabled"; 610 status = "disabled";
572 }; 611 };
573 612
@@ -578,11 +617,12 @@
578 "renesas,rmobile-iic"; 617 "renesas,rmobile-iic";
579 reg = <0 0xe60b0000 0 0x425>; 618 reg = <0 0xe60b0000 0 0x425>;
580 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 619 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
581 clocks = <&mstp9_clks R8A7790_CLK_IICDVFS>; 620 clocks = <&cpg CPG_MOD 926>;
582 dmas = <&dmac0 0x77>, <&dmac0 0x78>, 621 dmas = <&dmac0 0x77>, <&dmac0 0x78>,
583 <&dmac1 0x77>, <&dmac1 0x78>; 622 <&dmac1 0x77>, <&dmac1 0x78>;
584 dma-names = "tx", "rx", "tx", "rx"; 623 dma-names = "tx", "rx", "tx", "rx";
585 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 624 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
625 resets = <&cpg 926>;
586 status = "disabled"; 626 status = "disabled";
587 }; 627 };
588 628
@@ -590,11 +630,12 @@
590 compatible = "renesas,mmcif-r8a7790", "renesas,sh-mmcif"; 630 compatible = "renesas,mmcif-r8a7790", "renesas,sh-mmcif";
591 reg = <0 0xee200000 0 0x80>; 631 reg = <0 0xee200000 0 0x80>;
592 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; 632 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
593 clocks = <&mstp3_clks R8A7790_CLK_MMCIF0>; 633 clocks = <&cpg CPG_MOD 315>;
594 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>, 634 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>,
595 <&dmac1 0xd1>, <&dmac1 0xd2>; 635 <&dmac1 0xd1>, <&dmac1 0xd2>;
596 dma-names = "tx", "rx", "tx", "rx"; 636 dma-names = "tx", "rx", "tx", "rx";
597 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 637 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
638 resets = <&cpg 315>;
598 reg-io-width = <4>; 639 reg-io-width = <4>;
599 status = "disabled"; 640 status = "disabled";
600 max-frequency = <97500000>; 641 max-frequency = <97500000>;
@@ -604,11 +645,12 @@
604 compatible = "renesas,mmcif-r8a7790", "renesas,sh-mmcif"; 645 compatible = "renesas,mmcif-r8a7790", "renesas,sh-mmcif";
605 reg = <0 0xee220000 0 0x80>; 646 reg = <0 0xee220000 0 0x80>;
606 interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>; 647 interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
607 clocks = <&mstp3_clks R8A7790_CLK_MMCIF1>; 648 clocks = <&cpg CPG_MOD 305>;
608 dmas = <&dmac0 0xe1>, <&dmac0 0xe2>, 649 dmas = <&dmac0 0xe1>, <&dmac0 0xe2>,
609 <&dmac1 0xe1>, <&dmac1 0xe2>; 650 <&dmac1 0xe1>, <&dmac1 0xe2>;
610 dma-names = "tx", "rx", "tx", "rx"; 651 dma-names = "tx", "rx", "tx", "rx";
611 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 652 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
653 resets = <&cpg 305>;
612 reg-io-width = <4>; 654 reg-io-width = <4>;
613 status = "disabled"; 655 status = "disabled";
614 max-frequency = <97500000>; 656 max-frequency = <97500000>;
@@ -623,12 +665,13 @@
623 compatible = "renesas,sdhi-r8a7790"; 665 compatible = "renesas,sdhi-r8a7790";
624 reg = <0 0xee100000 0 0x328>; 666 reg = <0 0xee100000 0 0x328>;
625 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; 667 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
626 clocks = <&mstp3_clks R8A7790_CLK_SDHI0>; 668 clocks = <&cpg CPG_MOD 314>;
627 dmas = <&dmac0 0xcd>, <&dmac0 0xce>, 669 dmas = <&dmac0 0xcd>, <&dmac0 0xce>,
628 <&dmac1 0xcd>, <&dmac1 0xce>; 670 <&dmac1 0xcd>, <&dmac1 0xce>;
629 dma-names = "tx", "rx", "tx", "rx"; 671 dma-names = "tx", "rx", "tx", "rx";
630 max-frequency = <195000000>; 672 max-frequency = <195000000>;
631 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 673 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
674 resets = <&cpg 314>;
632 status = "disabled"; 675 status = "disabled";
633 }; 676 };
634 677
@@ -636,12 +679,13 @@
636 compatible = "renesas,sdhi-r8a7790"; 679 compatible = "renesas,sdhi-r8a7790";
637 reg = <0 0xee120000 0 0x328>; 680 reg = <0 0xee120000 0 0x328>;
638 interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; 681 interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
639 clocks = <&mstp3_clks R8A7790_CLK_SDHI1>; 682 clocks = <&cpg CPG_MOD 313>;
640 dmas = <&dmac0 0xc9>, <&dmac0 0xca>, 683 dmas = <&dmac0 0xc9>, <&dmac0 0xca>,
641 <&dmac1 0xc9>, <&dmac1 0xca>; 684 <&dmac1 0xc9>, <&dmac1 0xca>;
642 dma-names = "tx", "rx", "tx", "rx"; 685 dma-names = "tx", "rx", "tx", "rx";
643 max-frequency = <195000000>; 686 max-frequency = <195000000>;
644 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 687 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
688 resets = <&cpg 313>;
645 status = "disabled"; 689 status = "disabled";
646 }; 690 };
647 691
@@ -649,12 +693,13 @@
649 compatible = "renesas,sdhi-r8a7790"; 693 compatible = "renesas,sdhi-r8a7790";
650 reg = <0 0xee140000 0 0x100>; 694 reg = <0 0xee140000 0 0x100>;
651 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; 695 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
652 clocks = <&mstp3_clks R8A7790_CLK_SDHI2>; 696 clocks = <&cpg CPG_MOD 312>;
653 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>, 697 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>,
654 <&dmac1 0xc1>, <&dmac1 0xc2>; 698 <&dmac1 0xc1>, <&dmac1 0xc2>;
655 dma-names = "tx", "rx", "tx", "rx"; 699 dma-names = "tx", "rx", "tx", "rx";
656 max-frequency = <97500000>; 700 max-frequency = <97500000>;
657 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 701 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
702 resets = <&cpg 312>;
658 status = "disabled"; 703 status = "disabled";
659 }; 704 };
660 705
@@ -662,12 +707,13 @@
662 compatible = "renesas,sdhi-r8a7790"; 707 compatible = "renesas,sdhi-r8a7790";
663 reg = <0 0xee160000 0 0x100>; 708 reg = <0 0xee160000 0 0x100>;
664 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 709 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
665 clocks = <&mstp3_clks R8A7790_CLK_SDHI3>; 710 clocks = <&cpg CPG_MOD 311>;
666 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>, 711 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>,
667 <&dmac1 0xd3>, <&dmac1 0xd4>; 712 <&dmac1 0xd3>, <&dmac1 0xd4>;
668 dma-names = "tx", "rx", "tx", "rx"; 713 dma-names = "tx", "rx", "tx", "rx";
669 max-frequency = <97500000>; 714 max-frequency = <97500000>;
670 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 715 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
716 resets = <&cpg 311>;
671 status = "disabled"; 717 status = "disabled";
672 }; 718 };
673 719
@@ -676,12 +722,13 @@
676 "renesas,rcar-gen2-scifa", "renesas,scifa"; 722 "renesas,rcar-gen2-scifa", "renesas,scifa";
677 reg = <0 0xe6c40000 0 64>; 723 reg = <0 0xe6c40000 0 64>;
678 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; 724 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
679 clocks = <&mstp2_clks R8A7790_CLK_SCIFA0>; 725 clocks = <&cpg CPG_MOD 204>;
680 clock-names = "fck"; 726 clock-names = "fck";
681 dmas = <&dmac0 0x21>, <&dmac0 0x22>, 727 dmas = <&dmac0 0x21>, <&dmac0 0x22>,
682 <&dmac1 0x21>, <&dmac1 0x22>; 728 <&dmac1 0x21>, <&dmac1 0x22>;
683 dma-names = "tx", "rx", "tx", "rx"; 729 dma-names = "tx", "rx", "tx", "rx";
684 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 730 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
731 resets = <&cpg 204>;
685 status = "disabled"; 732 status = "disabled";
686 }; 733 };
687 734
@@ -690,12 +737,13 @@
690 "renesas,rcar-gen2-scifa", "renesas,scifa"; 737 "renesas,rcar-gen2-scifa", "renesas,scifa";
691 reg = <0 0xe6c50000 0 64>; 738 reg = <0 0xe6c50000 0 64>;
692 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; 739 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
693 clocks = <&mstp2_clks R8A7790_CLK_SCIFA1>; 740 clocks = <&cpg CPG_MOD 203>;
694 clock-names = "fck"; 741 clock-names = "fck";
695 dmas = <&dmac0 0x25>, <&dmac0 0x26>, 742 dmas = <&dmac0 0x25>, <&dmac0 0x26>,
696 <&dmac1 0x25>, <&dmac1 0x26>; 743 <&dmac1 0x25>, <&dmac1 0x26>;
697 dma-names = "tx", "rx", "tx", "rx"; 744 dma-names = "tx", "rx", "tx", "rx";
698 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 745 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
746 resets = <&cpg 203>;
699 status = "disabled"; 747 status = "disabled";
700 }; 748 };
701 749
@@ -704,12 +752,13 @@
704 "renesas,rcar-gen2-scifa", "renesas,scifa"; 752 "renesas,rcar-gen2-scifa", "renesas,scifa";
705 reg = <0 0xe6c60000 0 64>; 753 reg = <0 0xe6c60000 0 64>;
706 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>; 754 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
707 clocks = <&mstp2_clks R8A7790_CLK_SCIFA2>; 755 clocks = <&cpg CPG_MOD 202>;
708 clock-names = "fck"; 756 clock-names = "fck";
709 dmas = <&dmac0 0x27>, <&dmac0 0x28>, 757 dmas = <&dmac0 0x27>, <&dmac0 0x28>,
710 <&dmac1 0x27>, <&dmac1 0x28>; 758 <&dmac1 0x27>, <&dmac1 0x28>;
711 dma-names = "tx", "rx", "tx", "rx"; 759 dma-names = "tx", "rx", "tx", "rx";
712 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 760 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
761 resets = <&cpg 202>;
713 status = "disabled"; 762 status = "disabled";
714 }; 763 };
715 764
@@ -718,12 +767,13 @@
718 "renesas,rcar-gen2-scifb", "renesas,scifb"; 767 "renesas,rcar-gen2-scifb", "renesas,scifb";
719 reg = <0 0xe6c20000 0 0x100>; 768 reg = <0 0xe6c20000 0 0x100>;
720 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 769 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
721 clocks = <&mstp2_clks R8A7790_CLK_SCIFB0>; 770 clocks = <&cpg CPG_MOD 206>;
722 clock-names = "fck"; 771 clock-names = "fck";
723 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>, 772 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>,
724 <&dmac1 0x3d>, <&dmac1 0x3e>; 773 <&dmac1 0x3d>, <&dmac1 0x3e>;
725 dma-names = "tx", "rx", "tx", "rx"; 774 dma-names = "tx", "rx", "tx", "rx";
726 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 775 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
776 resets = <&cpg 206>;
727 status = "disabled"; 777 status = "disabled";
728 }; 778 };
729 779
@@ -732,12 +782,13 @@
732 "renesas,rcar-gen2-scifb", "renesas,scifb"; 782 "renesas,rcar-gen2-scifb", "renesas,scifb";
733 reg = <0 0xe6c30000 0 0x100>; 783 reg = <0 0xe6c30000 0 0x100>;
734 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 784 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
735 clocks = <&mstp2_clks R8A7790_CLK_SCIFB1>; 785 clocks = <&cpg CPG_MOD 207>;
736 clock-names = "fck"; 786 clock-names = "fck";
737 dmas = <&dmac0 0x19>, <&dmac0 0x1a>, 787 dmas = <&dmac0 0x19>, <&dmac0 0x1a>,
738 <&dmac1 0x19>, <&dmac1 0x1a>; 788 <&dmac1 0x19>, <&dmac1 0x1a>;
739 dma-names = "tx", "rx", "tx", "rx"; 789 dma-names = "tx", "rx", "tx", "rx";
740 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 790 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
791 resets = <&cpg 207>;
741 status = "disabled"; 792 status = "disabled";
742 }; 793 };
743 794
@@ -746,12 +797,13 @@
746 "renesas,rcar-gen2-scifb", "renesas,scifb"; 797 "renesas,rcar-gen2-scifb", "renesas,scifb";
747 reg = <0 0xe6ce0000 0 0x100>; 798 reg = <0 0xe6ce0000 0 0x100>;
748 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>; 799 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
749 clocks = <&mstp2_clks R8A7790_CLK_SCIFB2>; 800 clocks = <&cpg CPG_MOD 216>;
750 clock-names = "fck"; 801 clock-names = "fck";
751 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>, 802 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>,
752 <&dmac1 0x1d>, <&dmac1 0x1e>; 803 <&dmac1 0x1d>, <&dmac1 0x1e>;
753 dma-names = "tx", "rx", "tx", "rx"; 804 dma-names = "tx", "rx", "tx", "rx";
754 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 805 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
806 resets = <&cpg 216>;
755 status = "disabled"; 807 status = "disabled";
756 }; 808 };
757 809
@@ -760,13 +812,14 @@
760 "renesas,scif"; 812 "renesas,scif";
761 reg = <0 0xe6e60000 0 64>; 813 reg = <0 0xe6e60000 0 64>;
762 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; 814 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
763 clocks = <&mstp7_clks R8A7790_CLK_SCIF0>, <&zs_clk>, 815 clocks = <&cpg CPG_MOD 721>, <&cpg CPG_CORE R8A7790_CLK_ZS>,
764 <&scif_clk>; 816 <&scif_clk>;
765 clock-names = "fck", "brg_int", "scif_clk"; 817 clock-names = "fck", "brg_int", "scif_clk";
766 dmas = <&dmac0 0x29>, <&dmac0 0x2a>, 818 dmas = <&dmac0 0x29>, <&dmac0 0x2a>,
767 <&dmac1 0x29>, <&dmac1 0x2a>; 819 <&dmac1 0x29>, <&dmac1 0x2a>;
768 dma-names = "tx", "rx", "tx", "rx"; 820 dma-names = "tx", "rx", "tx", "rx";
769 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 821 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
822 resets = <&cpg 721>;
770 status = "disabled"; 823 status = "disabled";
771 }; 824 };
772 825
@@ -775,13 +828,14 @@
775 "renesas,scif"; 828 "renesas,scif";
776 reg = <0 0xe6e68000 0 64>; 829 reg = <0 0xe6e68000 0 64>;
777 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; 830 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
778 clocks = <&mstp7_clks R8A7790_CLK_SCIF1>, <&zs_clk>, 831 clocks = <&cpg CPG_MOD 720>, <&cpg CPG_CORE R8A7790_CLK_ZS>,
779 <&scif_clk>; 832 <&scif_clk>;
780 clock-names = "fck", "brg_int", "scif_clk"; 833 clock-names = "fck", "brg_int", "scif_clk";
781 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>, 834 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>,
782 <&dmac1 0x2d>, <&dmac1 0x2e>; 835 <&dmac1 0x2d>, <&dmac1 0x2e>;
783 dma-names = "tx", "rx", "tx", "rx"; 836 dma-names = "tx", "rx", "tx", "rx";
784 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 837 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
838 resets = <&cpg 720>;
785 status = "disabled"; 839 status = "disabled";
786 }; 840 };
787 841
@@ -790,13 +844,14 @@
790 "renesas,scif"; 844 "renesas,scif";
791 reg = <0 0xe6e56000 0 64>; 845 reg = <0 0xe6e56000 0 64>;
792 interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; 846 interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
793 clocks = <&mstp3_clks R8A7790_CLK_SCIF2>, <&zs_clk>, 847 clocks = <&cpg CPG_MOD 310>, <&cpg CPG_CORE R8A7790_CLK_ZS>,
794 <&scif_clk>; 848 <&scif_clk>;
795 clock-names = "fck", "brg_int", "scif_clk"; 849 clock-names = "fck", "brg_int", "scif_clk";
796 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>, 850 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>,
797 <&dmac1 0x2b>, <&dmac1 0x2c>; 851 <&dmac1 0x2b>, <&dmac1 0x2c>;
798 dma-names = "tx", "rx", "tx", "rx"; 852 dma-names = "tx", "rx", "tx", "rx";
799 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 853 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
854 resets = <&cpg 310>;
800 status = "disabled"; 855 status = "disabled";
801 }; 856 };
802 857
@@ -805,13 +860,14 @@
805 "renesas,rcar-gen2-hscif", "renesas,hscif"; 860 "renesas,rcar-gen2-hscif", "renesas,hscif";
806 reg = <0 0xe62c0000 0 96>; 861 reg = <0 0xe62c0000 0 96>;
807 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 862 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
808 clocks = <&mstp7_clks R8A7790_CLK_HSCIF0>, <&zs_clk>, 863 clocks = <&cpg CPG_MOD 717>, <&cpg CPG_CORE R8A7790_CLK_ZS>,
809 <&scif_clk>; 864 <&scif_clk>;
810 clock-names = "fck", "brg_int", "scif_clk"; 865 clock-names = "fck", "brg_int", "scif_clk";
811 dmas = <&dmac0 0x39>, <&dmac0 0x3a>, 866 dmas = <&dmac0 0x39>, <&dmac0 0x3a>,
812 <&dmac1 0x39>, <&dmac1 0x3a>; 867 <&dmac1 0x39>, <&dmac1 0x3a>;
813 dma-names = "tx", "rx", "tx", "rx"; 868 dma-names = "tx", "rx", "tx", "rx";
814 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 869 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
870 resets = <&cpg 717>;
815 status = "disabled"; 871 status = "disabled";
816 }; 872 };
817 873
@@ -820,13 +876,14 @@
820 "renesas,rcar-gen2-hscif", "renesas,hscif"; 876 "renesas,rcar-gen2-hscif", "renesas,hscif";
821 reg = <0 0xe62c8000 0 96>; 877 reg = <0 0xe62c8000 0 96>;
822 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; 878 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
823 clocks = <&mstp7_clks R8A7790_CLK_HSCIF1>, <&zs_clk>, 879 clocks = <&cpg CPG_MOD 716>, <&cpg CPG_CORE R8A7790_CLK_ZS>,
824 <&scif_clk>; 880 <&scif_clk>;
825 clock-names = "fck", "brg_int", "scif_clk"; 881 clock-names = "fck", "brg_int", "scif_clk";
826 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>, 882 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>,
827 <&dmac1 0x4d>, <&dmac1 0x4e>; 883 <&dmac1 0x4d>, <&dmac1 0x4e>;
828 dma-names = "tx", "rx", "tx", "rx"; 884 dma-names = "tx", "rx", "tx", "rx";
829 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 885 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
886 resets = <&cpg 716>;
830 status = "disabled"; 887 status = "disabled";
831 }; 888 };
832 889
@@ -852,8 +909,9 @@
852 compatible = "renesas,ether-r8a7790"; 909 compatible = "renesas,ether-r8a7790";
853 reg = <0 0xee700000 0 0x400>; 910 reg = <0 0xee700000 0 0x400>;
854 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>; 911 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
855 clocks = <&mstp8_clks R8A7790_CLK_ETHER>; 912 clocks = <&cpg CPG_MOD 813>;
856 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 913 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
914 resets = <&cpg 813>;
857 phy-mode = "rmii"; 915 phy-mode = "rmii";
858 #address-cells = <1>; 916 #address-cells = <1>;
859 #size-cells = <0>; 917 #size-cells = <0>;
@@ -865,8 +923,9 @@
865 "renesas,etheravb-rcar-gen2"; 923 "renesas,etheravb-rcar-gen2";
866 reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>; 924 reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>;
867 interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>; 925 interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
868 clocks = <&mstp8_clks R8A7790_CLK_ETHERAVB>; 926 clocks = <&cpg CPG_MOD 812>;
869 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 927 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
928 resets = <&cpg 812>;
870 #address-cells = <1>; 929 #address-cells = <1>;
871 #size-cells = <0>; 930 #size-cells = <0>;
872 status = "disabled"; 931 status = "disabled";
@@ -876,8 +935,9 @@
876 compatible = "renesas,sata-r8a7790", "renesas,rcar-gen2-sata"; 935 compatible = "renesas,sata-r8a7790", "renesas,rcar-gen2-sata";
877 reg = <0 0xee300000 0 0x2000>; 936 reg = <0 0xee300000 0 0x2000>;
878 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 937 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
879 clocks = <&mstp8_clks R8A7790_CLK_SATA0>; 938 clocks = <&cpg CPG_MOD 815>;
880 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 939 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
940 resets = <&cpg 815>;
881 status = "disabled"; 941 status = "disabled";
882 }; 942 };
883 943
@@ -885,8 +945,9 @@
885 compatible = "renesas,sata-r8a7790", "renesas,rcar-gen2-sata"; 945 compatible = "renesas,sata-r8a7790", "renesas,rcar-gen2-sata";
886 reg = <0 0xee500000 0 0x2000>; 946 reg = <0 0xee500000 0 0x2000>;
887 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; 947 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
888 clocks = <&mstp8_clks R8A7790_CLK_SATA1>; 948 clocks = <&cpg CPG_MOD 814>;
889 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 949 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
950 resets = <&cpg 814>;
890 status = "disabled"; 951 status = "disabled";
891 }; 952 };
892 953
@@ -894,11 +955,12 @@
894 compatible = "renesas,usbhs-r8a7790", "renesas,rcar-gen2-usbhs"; 955 compatible = "renesas,usbhs-r8a7790", "renesas,rcar-gen2-usbhs";
895 reg = <0 0xe6590000 0 0x100>; 956 reg = <0 0xe6590000 0 0x100>;
896 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 957 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
897 clocks = <&mstp7_clks R8A7790_CLK_HSUSB>; 958 clocks = <&cpg CPG_MOD 704>;
898 dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, 959 dmas = <&usb_dmac0 0>, <&usb_dmac0 1>,
899 <&usb_dmac1 0>, <&usb_dmac1 1>; 960 <&usb_dmac1 0>, <&usb_dmac1 1>;
900 dma-names = "ch0", "ch1", "ch2", "ch3"; 961 dma-names = "ch0", "ch1", "ch2", "ch3";
901 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 962 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
963 resets = <&cpg 704>;
902 renesas,buswait = <4>; 964 renesas,buswait = <4>;
903 phys = <&usb0 1>; 965 phys = <&usb0 1>;
904 phy-names = "usb"; 966 phy-names = "usb";
@@ -911,9 +973,10 @@
911 reg = <0 0xe6590100 0 0x100>; 973 reg = <0 0xe6590100 0 0x100>;
912 #address-cells = <1>; 974 #address-cells = <1>;
913 #size-cells = <0>; 975 #size-cells = <0>;
914 clocks = <&mstp7_clks R8A7790_CLK_HSUSB>; 976 clocks = <&cpg CPG_MOD 704>;
915 clock-names = "usbhs"; 977 clock-names = "usbhs";
916 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 978 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
979 resets = <&cpg 704>;
917 status = "disabled"; 980 status = "disabled";
918 981
919 usb0: usb-channel@0 { 982 usb0: usb-channel@0 {
@@ -930,8 +993,9 @@
930 compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin"; 993 compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin";
931 reg = <0 0xe6ef0000 0 0x1000>; 994 reg = <0 0xe6ef0000 0 0x1000>;
932 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 995 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
933 clocks = <&mstp8_clks R8A7790_CLK_VIN0>; 996 clocks = <&cpg CPG_MOD 811>;
934 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 997 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
998 resets = <&cpg 811>;
935 status = "disabled"; 999 status = "disabled";
936 }; 1000 };
937 1001
@@ -939,8 +1003,9 @@
939 compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin"; 1003 compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin";
940 reg = <0 0xe6ef1000 0 0x1000>; 1004 reg = <0 0xe6ef1000 0 0x1000>;
941 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; 1005 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
942 clocks = <&mstp8_clks R8A7790_CLK_VIN1>; 1006 clocks = <&cpg CPG_MOD 810>;
943 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1007 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1008 resets = <&cpg 810>;
944 status = "disabled"; 1009 status = "disabled";
945 }; 1010 };
946 1011
@@ -948,8 +1013,9 @@
948 compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin"; 1013 compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin";
949 reg = <0 0xe6ef2000 0 0x1000>; 1014 reg = <0 0xe6ef2000 0 0x1000>;
950 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; 1015 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
951 clocks = <&mstp8_clks R8A7790_CLK_VIN2>; 1016 clocks = <&cpg CPG_MOD 809>;
952 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1017 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1018 resets = <&cpg 809>;
953 status = "disabled"; 1019 status = "disabled";
954 }; 1020 };
955 1021
@@ -957,41 +1023,46 @@
957 compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin"; 1023 compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin";
958 reg = <0 0xe6ef3000 0 0x1000>; 1024 reg = <0 0xe6ef3000 0 0x1000>;
959 interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; 1025 interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
960 clocks = <&mstp8_clks R8A7790_CLK_VIN3>; 1026 clocks = <&cpg CPG_MOD 808>;
961 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1027 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1028 resets = <&cpg 808>;
962 status = "disabled"; 1029 status = "disabled";
963 }; 1030 };
964 1031
965 vsp1@fe920000 { 1032 vsp@fe920000 {
966 compatible = "renesas,vsp1"; 1033 compatible = "renesas,vsp1";
967 reg = <0 0xfe920000 0 0x8000>; 1034 reg = <0 0xfe920000 0 0x8000>;
968 interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>; 1035 interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
969 clocks = <&mstp1_clks R8A7790_CLK_VSP1_R>; 1036 clocks = <&cpg CPG_MOD 130>;
970 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1037 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1038 resets = <&cpg 130>;
971 }; 1039 };
972 1040
973 vsp1@fe928000 { 1041 vsp@fe928000 {
974 compatible = "renesas,vsp1"; 1042 compatible = "renesas,vsp1";
975 reg = <0 0xfe928000 0 0x8000>; 1043 reg = <0 0xfe928000 0 0x8000>;
976 interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>; 1044 interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>;
977 clocks = <&mstp1_clks R8A7790_CLK_VSP1_S>; 1045 clocks = <&cpg CPG_MOD 131>;
978 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1046 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1047 resets = <&cpg 131>;
979 }; 1048 };
980 1049
981 vsp1@fe930000 { 1050 vsp@fe930000 {
982 compatible = "renesas,vsp1"; 1051 compatible = "renesas,vsp1";
983 reg = <0 0xfe930000 0 0x8000>; 1052 reg = <0 0xfe930000 0 0x8000>;
984 interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; 1053 interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
985 clocks = <&mstp1_clks R8A7790_CLK_VSP1_DU0>; 1054 clocks = <&cpg CPG_MOD 128>;
986 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1055 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1056 resets = <&cpg 128>;
987 }; 1057 };
988 1058
989 vsp1@fe938000 { 1059 vsp@fe938000 {
990 compatible = "renesas,vsp1"; 1060 compatible = "renesas,vsp1";
991 reg = <0 0xfe938000 0 0x8000>; 1061 reg = <0 0xfe938000 0 0x8000>;
992 interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>; 1062 interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>;
993 clocks = <&mstp1_clks R8A7790_CLK_VSP1_DU1>; 1063 clocks = <&cpg CPG_MOD 127>;
994 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1064 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1065 resets = <&cpg 127>;
995 }; 1066 };
996 1067
997 du: display@feb00000 { 1068 du: display@feb00000 {
@@ -1003,11 +1074,9 @@
1003 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, 1074 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
1004 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>, 1075 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
1005 <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>; 1076 <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>;
1006 clocks = <&mstp7_clks R8A7790_CLK_DU0>, 1077 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>,
1007 <&mstp7_clks R8A7790_CLK_DU1>, 1078 <&cpg CPG_MOD 722>, <&cpg CPG_MOD 726>,
1008 <&mstp7_clks R8A7790_CLK_DU2>, 1079 <&cpg CPG_MOD 725>;
1009 <&mstp7_clks R8A7790_CLK_LVDS0>,
1010 <&mstp7_clks R8A7790_CLK_LVDS1>;
1011 clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1"; 1080 clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1";
1012 status = "disabled"; 1081 status = "disabled";
1013 1082
@@ -1037,10 +1106,11 @@
1037 compatible = "renesas,can-r8a7790", "renesas,rcar-gen2-can"; 1106 compatible = "renesas,can-r8a7790", "renesas,rcar-gen2-can";
1038 reg = <0 0xe6e80000 0 0x1000>; 1107 reg = <0 0xe6e80000 0 0x1000>;
1039 interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>; 1108 interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
1040 clocks = <&mstp9_clks R8A7790_CLK_RCAN0>, 1109 clocks = <&cpg CPG_MOD 916>, <&cpg CPG_CORE R8A7790_CLK_RCAN>,
1041 <&cpg_clocks R8A7790_CLK_RCAN>, <&can_clk>; 1110 <&can_clk>;
1042 clock-names = "clkp1", "clkp2", "can_clk"; 1111 clock-names = "clkp1", "clkp2", "can_clk";
1043 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1112 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1113 resets = <&cpg 916>;
1044 status = "disabled"; 1114 status = "disabled";
1045 }; 1115 };
1046 1116
@@ -1048,10 +1118,11 @@
1048 compatible = "renesas,can-r8a7790", "renesas,rcar-gen2-can"; 1118 compatible = "renesas,can-r8a7790", "renesas,rcar-gen2-can";
1049 reg = <0 0xe6e88000 0 0x1000>; 1119 reg = <0 0xe6e88000 0 0x1000>;
1050 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; 1120 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
1051 clocks = <&mstp9_clks R8A7790_CLK_RCAN1>, 1121 clocks = <&cpg CPG_MOD 915>, <&cpg CPG_CORE R8A7790_CLK_RCAN>,
1052 <&cpg_clocks R8A7790_CLK_RCAN>, <&can_clk>; 1122 <&can_clk>;
1053 clock-names = "clkp1", "clkp2", "can_clk"; 1123 clock-names = "clkp1", "clkp2", "can_clk";
1054 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1124 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1125 resets = <&cpg 915>;
1055 status = "disabled"; 1126 status = "disabled";
1056 }; 1127 };
1057 1128
@@ -1059,443 +1130,77 @@
1059 compatible = "renesas,jpu-r8a7790", "renesas,rcar-gen2-jpu"; 1130 compatible = "renesas,jpu-r8a7790", "renesas,rcar-gen2-jpu";
1060 reg = <0 0xfe980000 0 0x10300>; 1131 reg = <0 0xfe980000 0 0x10300>;
1061 interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>; 1132 interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
1062 clocks = <&mstp1_clks R8A7790_CLK_JPU>; 1133 clocks = <&cpg CPG_MOD 106>;
1063 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1134 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1135 resets = <&cpg 106>;
1064 }; 1136 };
1065 1137
1066 clocks { 1138 /* External root clock */
1067 #address-cells = <2>; 1139 extal_clk: extal {
1068 #size-cells = <2>; 1140 compatible = "fixed-clock";
1069 ranges; 1141 #clock-cells = <0>;
1070 1142 /* This value must be overridden by the board. */
1071 /* External root clock */ 1143 clock-frequency = <0>;
1072 extal_clk: extal { 1144 };
1073 compatible = "fixed-clock";
1074 #clock-cells = <0>;
1075 /* This value must be overriden by the board. */
1076 clock-frequency = <0>;
1077 };
1078
1079 /* External PCIe clock - can be overridden by the board */
1080 pcie_bus_clk: pcie_bus {
1081 compatible = "fixed-clock";
1082 #clock-cells = <0>;
1083 clock-frequency = <0>;
1084 };
1085
1086 /*
1087 * The external audio clocks are configured as 0 Hz fixed frequency clocks by
1088 * default. Boards that provide audio clocks should override them.
1089 */
1090 audio_clk_a: audio_clk_a {
1091 compatible = "fixed-clock";
1092 #clock-cells = <0>;
1093 clock-frequency = <0>;
1094 };
1095 audio_clk_b: audio_clk_b {
1096 compatible = "fixed-clock";
1097 #clock-cells = <0>;
1098 clock-frequency = <0>;
1099 };
1100 audio_clk_c: audio_clk_c {
1101 compatible = "fixed-clock";
1102 #clock-cells = <0>;
1103 clock-frequency = <0>;
1104 };
1105
1106 /* External SCIF clock */
1107 scif_clk: scif {
1108 compatible = "fixed-clock";
1109 #clock-cells = <0>;
1110 /* This value must be overridden by the board. */
1111 clock-frequency = <0>;
1112 };
1113 1145
1114 /* External USB clock - can be overridden by the board */ 1146 /* External PCIe clock - can be overridden by the board */
1115 usb_extal_clk: usb_extal { 1147 pcie_bus_clk: pcie_bus {
1116 compatible = "fixed-clock"; 1148 compatible = "fixed-clock";
1117 #clock-cells = <0>; 1149 #clock-cells = <0>;
1118 clock-frequency = <48000000>; 1150 clock-frequency = <0>;
1119 }; 1151 };
1120 1152
1121 /* External CAN clock */ 1153 /*
1122 can_clk: can { 1154 * The external audio clocks are configured as 0 Hz fixed frequency
1123 compatible = "fixed-clock"; 1155 * clocks by default.
1124 #clock-cells = <0>; 1156 * Boards that provide audio clocks should override them.
1125 /* This value must be overridden by the board. */ 1157 */
1126 clock-frequency = <0>; 1158 audio_clk_a: audio_clk_a {
1127 }; 1159 compatible = "fixed-clock";
1160 #clock-cells = <0>;
1161 clock-frequency = <0>;
1162 };
1163 audio_clk_b: audio_clk_b {
1164 compatible = "fixed-clock";
1165 #clock-cells = <0>;
1166 clock-frequency = <0>;
1167 };
1168 audio_clk_c: audio_clk_c {
1169 compatible = "fixed-clock";
1170 #clock-cells = <0>;
1171 clock-frequency = <0>;
1172 };
1128 1173
1129 /* Special CPG clocks */ 1174 /* External SCIF clock */
1130 cpg_clocks: cpg_clocks@e6150000 { 1175 scif_clk: scif {
1131 compatible = "renesas,r8a7790-cpg-clocks", 1176 compatible = "fixed-clock";
1132 "renesas,rcar-gen2-cpg-clocks"; 1177 #clock-cells = <0>;
1133 reg = <0 0xe6150000 0 0x1000>; 1178 /* This value must be overridden by the board. */
1134 clocks = <&extal_clk &usb_extal_clk>; 1179 clock-frequency = <0>;
1135 #clock-cells = <1>; 1180 };
1136 clock-output-names = "main", "pll0", "pll1", "pll3",
1137 "lb", "qspi", "sdh", "sd0", "sd1",
1138 "z", "rcan", "adsp";
1139 #power-domain-cells = <0>;
1140 };
1141 1181
1142 /* Variable factor clocks */ 1182 /* External USB clock - can be overridden by the board */
1143 sd2_clk: sd2@e6150078 { 1183 usb_extal_clk: usb_extal {
1144 compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock"; 1184 compatible = "fixed-clock";
1145 reg = <0 0xe6150078 0 4>; 1185 #clock-cells = <0>;
1146 clocks = <&pll1_div2_clk>; 1186 clock-frequency = <48000000>;
1147 #clock-cells = <0>; 1187 };
1148 };
1149 sd3_clk: sd3@e615026c {
1150 compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock";
1151 reg = <0 0xe615026c 0 4>;
1152 clocks = <&pll1_div2_clk>;
1153 #clock-cells = <0>;
1154 };
1155 mmc0_clk: mmc0@e6150240 {
1156 compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock";
1157 reg = <0 0xe6150240 0 4>;
1158 clocks = <&pll1_div2_clk>;
1159 #clock-cells = <0>;
1160 };
1161 mmc1_clk: mmc1@e6150244 {
1162 compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock";
1163 reg = <0 0xe6150244 0 4>;
1164 clocks = <&pll1_div2_clk>;
1165 #clock-cells = <0>;
1166 };
1167 ssp_clk: ssp@e6150248 {
1168 compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock";
1169 reg = <0 0xe6150248 0 4>;
1170 clocks = <&pll1_div2_clk>;
1171 #clock-cells = <0>;
1172 };
1173 ssprs_clk: ssprs@e615024c {
1174 compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock";
1175 reg = <0 0xe615024c 0 4>;
1176 clocks = <&pll1_div2_clk>;
1177 #clock-cells = <0>;
1178 };
1179 1188
1180 /* Fixed factor clocks */ 1189 /* External CAN clock */
1181 pll1_div2_clk: pll1_div2 { 1190 can_clk: can {
1182 compatible = "fixed-factor-clock"; 1191 compatible = "fixed-clock";
1183 clocks = <&cpg_clocks R8A7790_CLK_PLL1>; 1192 #clock-cells = <0>;
1184 #clock-cells = <0>; 1193 /* This value must be overridden by the board. */
1185 clock-div = <2>; 1194 clock-frequency = <0>;
1186 clock-mult = <1>; 1195 };
1187 };
1188 z2_clk: z2 {
1189 compatible = "fixed-factor-clock";
1190 clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
1191 #clock-cells = <0>;
1192 clock-div = <2>;
1193 clock-mult = <1>;
1194 };
1195 zg_clk: zg {
1196 compatible = "fixed-factor-clock";
1197 clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
1198 #clock-cells = <0>;
1199 clock-div = <3>;
1200 clock-mult = <1>;
1201 };
1202 zx_clk: zx {
1203 compatible = "fixed-factor-clock";
1204 clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
1205 #clock-cells = <0>;
1206 clock-div = <3>;
1207 clock-mult = <1>;
1208 };
1209 zs_clk: zs {
1210 compatible = "fixed-factor-clock";
1211 clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
1212 #clock-cells = <0>;
1213 clock-div = <6>;
1214 clock-mult = <1>;
1215 };
1216 hp_clk: hp {
1217 compatible = "fixed-factor-clock";
1218 clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
1219 #clock-cells = <0>;
1220 clock-div = <12>;
1221 clock-mult = <1>;
1222 };
1223 i_clk: i {
1224 compatible = "fixed-factor-clock";
1225 clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
1226 #clock-cells = <0>;
1227 clock-div = <2>;
1228 clock-mult = <1>;
1229 };
1230 b_clk: b {
1231 compatible = "fixed-factor-clock";
1232 clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
1233 #clock-cells = <0>;
1234 clock-div = <12>;
1235 clock-mult = <1>;
1236 };
1237 p_clk: p {
1238 compatible = "fixed-factor-clock";
1239 clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
1240 #clock-cells = <0>;
1241 clock-div = <24>;
1242 clock-mult = <1>;
1243 };
1244 cl_clk: cl {
1245 compatible = "fixed-factor-clock";
1246 clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
1247 #clock-cells = <0>;
1248 clock-div = <48>;
1249 clock-mult = <1>;
1250 };
1251 m2_clk: m2 {
1252 compatible = "fixed-factor-clock";
1253 clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
1254 #clock-cells = <0>;
1255 clock-div = <8>;
1256 clock-mult = <1>;
1257 };
1258 imp_clk: imp {
1259 compatible = "fixed-factor-clock";
1260 clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
1261 #clock-cells = <0>;
1262 clock-div = <4>;
1263 clock-mult = <1>;
1264 };
1265 rclk_clk: rclk {
1266 compatible = "fixed-factor-clock";
1267 clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
1268 #clock-cells = <0>;
1269 clock-div = <(48 * 1024)>;
1270 clock-mult = <1>;
1271 };
1272 oscclk_clk: oscclk {
1273 compatible = "fixed-factor-clock";
1274 clocks = <&cpg_clocks R8A7790_CLK_PLL1>;
1275 #clock-cells = <0>;
1276 clock-div = <(12 * 1024)>;
1277 clock-mult = <1>;
1278 };
1279 zb3_clk: zb3 {
1280 compatible = "fixed-factor-clock";
1281 clocks = <&cpg_clocks R8A7790_CLK_PLL3>;
1282 #clock-cells = <0>;
1283 clock-div = <4>;
1284 clock-mult = <1>;
1285 };
1286 zb3d2_clk: zb3d2 {
1287 compatible = "fixed-factor-clock";
1288 clocks = <&cpg_clocks R8A7790_CLK_PLL3>;
1289 #clock-cells = <0>;
1290 clock-div = <8>;
1291 clock-mult = <1>;
1292 };
1293 ddr_clk: ddr {
1294 compatible = "fixed-factor-clock";
1295 clocks = <&cpg_clocks R8A7790_CLK_PLL3>;
1296 #clock-cells = <0>;
1297 clock-div = <8>;
1298 clock-mult = <1>;
1299 };
1300 mp_clk: mp {
1301 compatible = "fixed-factor-clock";
1302 clocks = <&pll1_div2_clk>;
1303 #clock-cells = <0>;
1304 clock-div = <15>;
1305 clock-mult = <1>;
1306 };
1307 cp_clk: cp {
1308 compatible = "fixed-factor-clock";
1309 clocks = <&extal_clk>;
1310 #clock-cells = <0>;
1311 clock-div = <2>;
1312 clock-mult = <1>;
1313 };
1314 1196
1315 /* Gate clocks */ 1197 cpg: clock-controller@e6150000 {
1316 mstp0_clks: mstp0_clks@e6150130 { 1198 compatible = "renesas,r8a7790-cpg-mssr";
1317 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; 1199 reg = <0 0xe6150000 0 0x1000>;
1318 reg = <0 0xe6150130 0 4>, <0 0xe6150030 0 4>; 1200 clocks = <&extal_clk>, <&usb_extal_clk>;
1319 clocks = <&mp_clk>; 1201 clock-names = "extal", "usb_extal";
1320 #clock-cells = <1>; 1202 #clock-cells = <2>;
1321 clock-indices = <R8A7790_CLK_MSIOF0>; 1203 #power-domain-cells = <0>;
1322 clock-output-names = "msiof0";
1323 };
1324 mstp1_clks: mstp1_clks@e6150134 {
1325 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
1326 reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>;
1327 clocks = <&zs_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>, <&m2_clk>,
1328 <&zs_clk>, <&p_clk>, <&zg_clk>, <&zs_clk>, <&zs_clk>,
1329 <&zs_clk>, <&zs_clk>, <&p_clk>, <&p_clk>, <&rclk_clk>,
1330 <&cp_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>;
1331 #clock-cells = <1>;
1332 clock-indices = <
1333 R8A7790_CLK_VCP1 R8A7790_CLK_VCP0 R8A7790_CLK_VPC1
1334 R8A7790_CLK_VPC0 R8A7790_CLK_JPU R8A7790_CLK_SSP1
1335 R8A7790_CLK_TMU1 R8A7790_CLK_3DG R8A7790_CLK_2DDMAC
1336 R8A7790_CLK_FDP1_2 R8A7790_CLK_FDP1_1 R8A7790_CLK_FDP1_0
1337 R8A7790_CLK_TMU3 R8A7790_CLK_TMU2 R8A7790_CLK_CMT0
1338 R8A7790_CLK_TMU0 R8A7790_CLK_VSP1_DU1 R8A7790_CLK_VSP1_DU0
1339 R8A7790_CLK_VSP1_R R8A7790_CLK_VSP1_S
1340 >;
1341 clock-output-names =
1342 "vcp1", "vcp0", "vpc1", "vpc0", "jpu", "ssp1",
1343 "tmu1", "3dg", "2ddmac", "fdp1-2", "fdp1-1",
1344 "fdp1-0", "tmu3", "tmu2", "cmt0", "tmu0",
1345 "vsp1-du1", "vsp1-du0", "vsp1-rt", "vsp1-sy";
1346 };
1347 mstp2_clks: mstp2_clks@e6150138 {
1348 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
1349 reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>;
1350 clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>,
1351 <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, <&zs_clk>,
1352 <&zs_clk>;
1353 #clock-cells = <1>;
1354 clock-indices = <
1355 R8A7790_CLK_SCIFA2 R8A7790_CLK_SCIFA1 R8A7790_CLK_SCIFA0
1356 R8A7790_CLK_MSIOF2 R8A7790_CLK_SCIFB0 R8A7790_CLK_SCIFB1
1357 R8A7790_CLK_MSIOF1 R8A7790_CLK_MSIOF3 R8A7790_CLK_SCIFB2
1358 R8A7790_CLK_SYS_DMAC1 R8A7790_CLK_SYS_DMAC0
1359 >;
1360 clock-output-names =
1361 "scifa2", "scifa1", "scifa0", "msiof2", "scifb0",
1362 "scifb1", "msiof1", "msiof3", "scifb2",
1363 "sys-dmac1", "sys-dmac0";
1364 };
1365 mstp3_clks: mstp3_clks@e615013c {
1366 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
1367 reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>;
1368 clocks = <&hp_clk>, <&cp_clk>, <&mmc1_clk>, <&p_clk>, <&sd3_clk>,
1369 <&sd2_clk>, <&cpg_clocks R8A7790_CLK_SD1>, <&cpg_clocks R8A7790_CLK_SD0>, <&mmc0_clk>,
1370 <&hp_clk>, <&mp_clk>, <&hp_clk>, <&mp_clk>, <&rclk_clk>,
1371 <&hp_clk>, <&hp_clk>;
1372 #clock-cells = <1>;
1373 clock-indices = <
1374 R8A7790_CLK_IIC2 R8A7790_CLK_TPU0 R8A7790_CLK_MMCIF1 R8A7790_CLK_SCIF2 R8A7790_CLK_SDHI3
1375 R8A7790_CLK_SDHI2 R8A7790_CLK_SDHI1 R8A7790_CLK_SDHI0 R8A7790_CLK_MMCIF0
1376 R8A7790_CLK_IIC0 R8A7790_CLK_PCIEC R8A7790_CLK_IIC1 R8A7790_CLK_SSUSB R8A7790_CLK_CMT1
1377 R8A7790_CLK_USBDMAC0 R8A7790_CLK_USBDMAC1
1378 >;
1379 clock-output-names =
1380 "iic2", "tpu0", "mmcif1", "scif2", "sdhi3",
1381 "sdhi2", "sdhi1", "sdhi0", "mmcif0",
1382 "iic0", "pciec", "iic1", "ssusb", "cmt1",
1383 "usbdmac0", "usbdmac1";
1384 };
1385 mstp4_clks: mstp4_clks@e6150140 {
1386 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
1387 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>;
1388 clocks = <&cp_clk>, <&zs_clk>;
1389 #clock-cells = <1>;
1390 clock-indices = <R8A7790_CLK_IRQC R8A7790_CLK_INTC_SYS>;
1391 clock-output-names = "irqc", "intc-sys";
1392 };
1393 mstp5_clks: mstp5_clks@e6150144 {
1394 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
1395 reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>;
1396 clocks = <&hp_clk>, <&hp_clk>, <&cpg_clocks R8A7790_CLK_ADSP>,
1397 <&extal_clk>, <&p_clk>;
1398 #clock-cells = <1>;
1399 clock-indices = <
1400 R8A7790_CLK_AUDIO_DMAC0 R8A7790_CLK_AUDIO_DMAC1
1401 R8A7790_CLK_ADSP_MOD R8A7790_CLK_THERMAL
1402 R8A7790_CLK_PWM
1403 >;
1404 clock-output-names = "audmac0", "audmac1", "adsp_mod",
1405 "thermal", "pwm";
1406 };
1407 mstp7_clks: mstp7_clks@e615014c {
1408 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
1409 reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>;
1410 clocks = <&mp_clk>, <&hp_clk>, <&zs_clk>, <&zs_clk>, <&p_clk>,
1411 <&p_clk>, <&zx_clk>, <&zx_clk>, <&zx_clk>, <&zx_clk>,
1412 <&zx_clk>;
1413 #clock-cells = <1>;
1414 clock-indices = <
1415 R8A7790_CLK_EHCI R8A7790_CLK_HSUSB R8A7790_CLK_HSCIF1
1416 R8A7790_CLK_HSCIF0 R8A7790_CLK_SCIF1 R8A7790_CLK_SCIF0
1417 R8A7790_CLK_DU2 R8A7790_CLK_DU1 R8A7790_CLK_DU0
1418 R8A7790_CLK_LVDS1 R8A7790_CLK_LVDS0
1419 >;
1420 clock-output-names =
1421 "ehci", "hsusb", "hscif1", "hscif0", "scif1",
1422 "scif0", "du2", "du1", "du0", "lvds1", "lvds0";
1423 };
1424 mstp8_clks: mstp8_clks@e6150990 {
1425 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
1426 reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>;
1427 clocks = <&hp_clk>, <&zg_clk>, <&zg_clk>, <&zg_clk>,
1428 <&zg_clk>, <&hp_clk>, <&p_clk>, <&zs_clk>,
1429 <&zs_clk>;
1430 #clock-cells = <1>;
1431 clock-indices = <
1432 R8A7790_CLK_MLB R8A7790_CLK_VIN3 R8A7790_CLK_VIN2
1433 R8A7790_CLK_VIN1 R8A7790_CLK_VIN0
1434 R8A7790_CLK_ETHERAVB R8A7790_CLK_ETHER
1435 R8A7790_CLK_SATA1 R8A7790_CLK_SATA0
1436 >;
1437 clock-output-names =
1438 "mlb", "vin3", "vin2", "vin1", "vin0",
1439 "etheravb", "ether", "sata1", "sata0";
1440 };
1441 mstp9_clks: mstp9_clks@e6150994 {
1442 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
1443 reg = <0 0xe6150994 0 4>, <0 0xe61509a4 0 4>;
1444 clocks = <&cp_clk>, <&cp_clk>, <&cp_clk>,
1445 <&cp_clk>, <&cp_clk>, <&cp_clk>,
1446 <&p_clk>, <&p_clk>, <&cpg_clocks R8A7790_CLK_QSPI>, <&cp_clk>,
1447 <&hp_clk>, <&hp_clk>, <&hp_clk>, <&hp_clk>;
1448 #clock-cells = <1>;
1449 clock-indices = <
1450 R8A7790_CLK_GPIO5 R8A7790_CLK_GPIO4 R8A7790_CLK_GPIO3
1451 R8A7790_CLK_GPIO2 R8A7790_CLK_GPIO1 R8A7790_CLK_GPIO0
1452 R8A7790_CLK_RCAN1 R8A7790_CLK_RCAN0 R8A7790_CLK_QSPI_MOD R8A7790_CLK_IICDVFS
1453 R8A7790_CLK_I2C3 R8A7790_CLK_I2C2 R8A7790_CLK_I2C1 R8A7790_CLK_I2C0
1454 >;
1455 clock-output-names =
1456 "gpio5", "gpio4", "gpio3", "gpio2", "gpio1", "gpio0",
1457 "rcan1", "rcan0", "qspi_mod", "iic3",
1458 "i2c3", "i2c2", "i2c1", "i2c0";
1459 };
1460 mstp10_clks: mstp10_clks@e6150998 {
1461 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
1462 reg = <0 0xe6150998 0 4>, <0 0xe61509a8 0 4>;
1463 clocks = <&p_clk>,
1464 <&mstp10_clks R8A7790_CLK_SSI_ALL>, <&mstp10_clks R8A7790_CLK_SSI_ALL>,
1465 <&mstp10_clks R8A7790_CLK_SSI_ALL>, <&mstp10_clks R8A7790_CLK_SSI_ALL>,
1466 <&mstp10_clks R8A7790_CLK_SSI_ALL>, <&mstp10_clks R8A7790_CLK_SSI_ALL>,
1467 <&mstp10_clks R8A7790_CLK_SSI_ALL>, <&mstp10_clks R8A7790_CLK_SSI_ALL>,
1468 <&mstp10_clks R8A7790_CLK_SSI_ALL>, <&mstp10_clks R8A7790_CLK_SSI_ALL>,
1469 <&p_clk>,
1470 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
1471 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
1472 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
1473 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
1474 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
1475 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
1476 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>;
1477
1478 #clock-cells = <1>;
1479 clock-indices = <
1480 R8A7790_CLK_SSI_ALL
1481 R8A7790_CLK_SSI9 R8A7790_CLK_SSI8 R8A7790_CLK_SSI7 R8A7790_CLK_SSI6 R8A7790_CLK_SSI5
1482 R8A7790_CLK_SSI4 R8A7790_CLK_SSI3 R8A7790_CLK_SSI2 R8A7790_CLK_SSI1 R8A7790_CLK_SSI0
1483 R8A7790_CLK_SCU_ALL
1484 R8A7790_CLK_SCU_DVC1 R8A7790_CLK_SCU_DVC0
1485 R8A7790_CLK_SCU_CTU1_MIX1 R8A7790_CLK_SCU_CTU0_MIX0
1486 R8A7790_CLK_SCU_SRC9 R8A7790_CLK_SCU_SRC8 R8A7790_CLK_SCU_SRC7 R8A7790_CLK_SCU_SRC6 R8A7790_CLK_SCU_SRC5
1487 R8A7790_CLK_SCU_SRC4 R8A7790_CLK_SCU_SRC3 R8A7790_CLK_SCU_SRC2 R8A7790_CLK_SCU_SRC1 R8A7790_CLK_SCU_SRC0
1488 >;
1489 clock-output-names =
1490 "ssi-all",
1491 "ssi9", "ssi8", "ssi7", "ssi6", "ssi5",
1492 "ssi4", "ssi3", "ssi2", "ssi1", "ssi0",
1493 "scu-all",
1494 "scu-dvc1", "scu-dvc0",
1495 "scu-ctu1-mix1", "scu-ctu0-mix0",
1496 "scu-src9", "scu-src8", "scu-src7", "scu-src6", "scu-src5",
1497 "scu-src4", "scu-src3", "scu-src2", "scu-src1", "scu-src0";
1498 };
1499 }; 1204 };
1500 1205
1501 prr: chipid@ff000044 { 1206 prr: chipid@ff000044 {
@@ -1518,11 +1223,12 @@
1518 compatible = "renesas,qspi-r8a7790", "renesas,qspi"; 1223 compatible = "renesas,qspi-r8a7790", "renesas,qspi";
1519 reg = <0 0xe6b10000 0 0x2c>; 1224 reg = <0 0xe6b10000 0 0x2c>;
1520 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 1225 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
1521 clocks = <&mstp9_clks R8A7790_CLK_QSPI_MOD>; 1226 clocks = <&cpg CPG_MOD 917>;
1522 dmas = <&dmac0 0x17>, <&dmac0 0x18>, 1227 dmas = <&dmac0 0x17>, <&dmac0 0x18>,
1523 <&dmac1 0x17>, <&dmac1 0x18>; 1228 <&dmac1 0x17>, <&dmac1 0x18>;
1524 dma-names = "tx", "rx", "tx", "rx"; 1229 dma-names = "tx", "rx", "tx", "rx";
1525 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1230 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1231 resets = <&cpg 917>;
1526 num-cs = <1>; 1232 num-cs = <1>;
1527 #address-cells = <1>; 1233 #address-cells = <1>;
1528 #size-cells = <0>; 1234 #size-cells = <0>;
@@ -1534,11 +1240,12 @@
1534 "renesas,rcar-gen2-msiof"; 1240 "renesas,rcar-gen2-msiof";
1535 reg = <0 0xe6e20000 0 0x0064>; 1241 reg = <0 0xe6e20000 0 0x0064>;
1536 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 1242 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
1537 clocks = <&mstp0_clks R8A7790_CLK_MSIOF0>; 1243 clocks = <&cpg CPG_MOD 0>;
1538 dmas = <&dmac0 0x51>, <&dmac0 0x52>, 1244 dmas = <&dmac0 0x51>, <&dmac0 0x52>,
1539 <&dmac1 0x51>, <&dmac1 0x52>; 1245 <&dmac1 0x51>, <&dmac1 0x52>;
1540 dma-names = "tx", "rx", "tx", "rx"; 1246 dma-names = "tx", "rx", "tx", "rx";
1541 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1247 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1248 resets = <&cpg 0>;
1542 #address-cells = <1>; 1249 #address-cells = <1>;
1543 #size-cells = <0>; 1250 #size-cells = <0>;
1544 status = "disabled"; 1251 status = "disabled";
@@ -1549,11 +1256,12 @@
1549 "renesas,rcar-gen2-msiof"; 1256 "renesas,rcar-gen2-msiof";
1550 reg = <0 0xe6e10000 0 0x0064>; 1257 reg = <0 0xe6e10000 0 0x0064>;
1551 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; 1258 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
1552 clocks = <&mstp2_clks R8A7790_CLK_MSIOF1>; 1259 clocks = <&cpg CPG_MOD 208>;
1553 dmas = <&dmac0 0x55>, <&dmac0 0x56>, 1260 dmas = <&dmac0 0x55>, <&dmac0 0x56>,
1554 <&dmac1 0x55>, <&dmac1 0x56>; 1261 <&dmac1 0x55>, <&dmac1 0x56>;
1555 dma-names = "tx", "rx", "tx", "rx"; 1262 dma-names = "tx", "rx", "tx", "rx";
1556 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1263 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1264 resets = <&cpg 208>;
1557 #address-cells = <1>; 1265 #address-cells = <1>;
1558 #size-cells = <0>; 1266 #size-cells = <0>;
1559 status = "disabled"; 1267 status = "disabled";
@@ -1564,11 +1272,12 @@
1564 "renesas,rcar-gen2-msiof"; 1272 "renesas,rcar-gen2-msiof";
1565 reg = <0 0xe6e00000 0 0x0064>; 1273 reg = <0 0xe6e00000 0 0x0064>;
1566 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 1274 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
1567 clocks = <&mstp2_clks R8A7790_CLK_MSIOF2>; 1275 clocks = <&cpg CPG_MOD 205>;
1568 dmas = <&dmac0 0x41>, <&dmac0 0x42>, 1276 dmas = <&dmac0 0x41>, <&dmac0 0x42>,
1569 <&dmac1 0x41>, <&dmac1 0x42>; 1277 <&dmac1 0x41>, <&dmac1 0x42>;
1570 dma-names = "tx", "rx", "tx", "rx"; 1278 dma-names = "tx", "rx", "tx", "rx";
1571 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1279 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1280 resets = <&cpg 205>;
1572 #address-cells = <1>; 1281 #address-cells = <1>;
1573 #size-cells = <0>; 1282 #size-cells = <0>;
1574 status = "disabled"; 1283 status = "disabled";
@@ -1579,11 +1288,12 @@
1579 "renesas,rcar-gen2-msiof"; 1288 "renesas,rcar-gen2-msiof";
1580 reg = <0 0xe6c90000 0 0x0064>; 1289 reg = <0 0xe6c90000 0 0x0064>;
1581 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>; 1290 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
1582 clocks = <&mstp2_clks R8A7790_CLK_MSIOF3>; 1291 clocks = <&cpg CPG_MOD 215>;
1583 dmas = <&dmac0 0x45>, <&dmac0 0x46>, 1292 dmas = <&dmac0 0x45>, <&dmac0 0x46>,
1584 <&dmac1 0x45>, <&dmac1 0x46>; 1293 <&dmac1 0x45>, <&dmac1 0x46>;
1585 dma-names = "tx", "rx", "tx", "rx"; 1294 dma-names = "tx", "rx", "tx", "rx";
1586 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1295 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1296 resets = <&cpg 215>;
1587 #address-cells = <1>; 1297 #address-cells = <1>;
1588 #size-cells = <0>; 1298 #size-cells = <0>;
1589 status = "disabled"; 1299 status = "disabled";
@@ -1593,8 +1303,9 @@
1593 compatible = "renesas,xhci-r8a7790", "renesas,rcar-gen2-xhci"; 1303 compatible = "renesas,xhci-r8a7790", "renesas,rcar-gen2-xhci";
1594 reg = <0 0xee000000 0 0xc00>; 1304 reg = <0 0xee000000 0 0xc00>;
1595 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 1305 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
1596 clocks = <&mstp3_clks R8A7790_CLK_SSUSB>; 1306 clocks = <&cpg CPG_MOD 328>;
1597 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1307 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1308 resets = <&cpg 328>;
1598 phys = <&usb2 1>; 1309 phys = <&usb2 1>;
1599 phy-names = "usb"; 1310 phy-names = "usb";
1600 status = "disabled"; 1311 status = "disabled";
@@ -1606,8 +1317,9 @@
1606 reg = <0 0xee090000 0 0xc00>, 1317 reg = <0 0xee090000 0 0xc00>,
1607 <0 0xee080000 0 0x1100>; 1318 <0 0xee080000 0 0x1100>;
1608 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 1319 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1609 clocks = <&mstp7_clks R8A7790_CLK_EHCI>; 1320 clocks = <&cpg CPG_MOD 703>;
1610 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1321 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1322 resets = <&cpg 703>;
1611 status = "disabled"; 1323 status = "disabled";
1612 1324
1613 bus-range = <0 0>; 1325 bus-range = <0 0>;
@@ -1639,8 +1351,9 @@
1639 reg = <0 0xee0b0000 0 0xc00>, 1351 reg = <0 0xee0b0000 0 0xc00>,
1640 <0 0xee0a0000 0 0x1100>; 1352 <0 0xee0a0000 0 0x1100>;
1641 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 1353 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
1642 clocks = <&mstp7_clks R8A7790_CLK_EHCI>; 1354 clocks = <&cpg CPG_MOD 703>;
1643 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1355 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1356 resets = <&cpg 703>;
1644 status = "disabled"; 1357 status = "disabled";
1645 1358
1646 bus-range = <1 1>; 1359 bus-range = <1 1>;
@@ -1657,8 +1370,9 @@
1657 pci2: pci@ee0d0000 { 1370 pci2: pci@ee0d0000 {
1658 compatible = "renesas,pci-r8a7790", "renesas,pci-rcar-gen2"; 1371 compatible = "renesas,pci-r8a7790", "renesas,pci-rcar-gen2";
1659 device_type = "pci"; 1372 device_type = "pci";
1660 clocks = <&mstp7_clks R8A7790_CLK_EHCI>; 1373 clocks = <&cpg CPG_MOD 703>;
1661 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1374 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1375 resets = <&cpg 703>;
1662 reg = <0 0xee0d0000 0 0xc00>, 1376 reg = <0 0xee0d0000 0 0xc00>,
1663 <0 0xee0c0000 0 0x1100>; 1377 <0 0xee0c0000 0 0x1100>;
1664 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; 1378 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
@@ -1707,9 +1421,10 @@
1707 #interrupt-cells = <1>; 1421 #interrupt-cells = <1>;
1708 interrupt-map-mask = <0 0 0 0>; 1422 interrupt-map-mask = <0 0 0 0>;
1709 interrupt-map = <0 0 0 0 &gic GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; 1423 interrupt-map = <0 0 0 0 &gic GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
1710 clocks = <&mstp3_clks R8A7790_CLK_PCIEC>, <&pcie_bus_clk>; 1424 clocks = <&cpg CPG_MOD 319>, <&pcie_bus_clk>;
1711 clock-names = "pcie", "pcie_bus"; 1425 clock-names = "pcie", "pcie_bus";
1712 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1426 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1427 resets = <&cpg 319>;
1713 status = "disabled"; 1428 status = "disabled";
1714 }; 1429 };
1715 1430
@@ -1728,21 +1443,22 @@
1728 <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ 1443 <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/
1729 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; 1444 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
1730 1445
1731 clocks = <&mstp10_clks R8A7790_CLK_SSI_ALL>, 1446 clocks = <&cpg CPG_MOD 1005>,
1732 <&mstp10_clks R8A7790_CLK_SSI9>, <&mstp10_clks R8A7790_CLK_SSI8>, 1447 <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>,
1733 <&mstp10_clks R8A7790_CLK_SSI7>, <&mstp10_clks R8A7790_CLK_SSI6>, 1448 <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>,
1734 <&mstp10_clks R8A7790_CLK_SSI5>, <&mstp10_clks R8A7790_CLK_SSI4>, 1449 <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>,
1735 <&mstp10_clks R8A7790_CLK_SSI3>, <&mstp10_clks R8A7790_CLK_SSI2>, 1450 <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>,
1736 <&mstp10_clks R8A7790_CLK_SSI1>, <&mstp10_clks R8A7790_CLK_SSI0>, 1451 <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>,
1737 <&mstp10_clks R8A7790_CLK_SCU_SRC9>, <&mstp10_clks R8A7790_CLK_SCU_SRC8>, 1452 <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>,
1738 <&mstp10_clks R8A7790_CLK_SCU_SRC7>, <&mstp10_clks R8A7790_CLK_SCU_SRC6>, 1453 <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>,
1739 <&mstp10_clks R8A7790_CLK_SCU_SRC5>, <&mstp10_clks R8A7790_CLK_SCU_SRC4>, 1454 <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>,
1740 <&mstp10_clks R8A7790_CLK_SCU_SRC3>, <&mstp10_clks R8A7790_CLK_SCU_SRC2>, 1455 <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>,
1741 <&mstp10_clks R8A7790_CLK_SCU_SRC1>, <&mstp10_clks R8A7790_CLK_SCU_SRC0>, 1456 <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>,
1742 <&mstp10_clks R8A7790_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7790_CLK_SCU_CTU1_MIX1>, 1457 <&cpg CPG_MOD 1021>, <&cpg CPG_MOD 1020>,
1743 <&mstp10_clks R8A7790_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7790_CLK_SCU_CTU1_MIX1>, 1458 <&cpg CPG_MOD 1021>, <&cpg CPG_MOD 1020>,
1744 <&mstp10_clks R8A7790_CLK_SCU_DVC0>, <&mstp10_clks R8A7790_CLK_SCU_DVC1>, 1459 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>,
1745 <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>; 1460 <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>,
1461 <&cpg CPG_CORE R8A7790_CLK_M2>;
1746 clock-names = "ssi-all", 1462 clock-names = "ssi-all",
1747 "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", 1463 "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
1748 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0", 1464 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0",
@@ -1753,6 +1469,13 @@
1753 "dvc.0", "dvc.1", 1469 "dvc.0", "dvc.1",
1754 "clk_a", "clk_b", "clk_c", "clk_i"; 1470 "clk_a", "clk_b", "clk_c", "clk_i";
1755 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1471 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1472 resets = <&cpg 1005>,
1473 <&cpg 1006>, <&cpg 1007>, <&cpg 1008>, <&cpg 1009>,
1474 <&cpg 1010>, <&cpg 1011>, <&cpg 1012>, <&cpg 1013>,
1475 <&cpg 1014>, <&cpg 1015>;
1476 reset-names = "ssi-all",
1477 "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
1478 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0";
1756 1479
1757 status = "disabled"; 1480 status = "disabled";
1758 1481
diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts b/arch/arm/boot/dts/r8a7791-koelsch.dts
index 0ce0b278e1cb..e164eda69baf 100644
--- a/arch/arm/boot/dts/r8a7791-koelsch.dts
+++ b/arch/arm/boot/dts/r8a7791-koelsch.dts
@@ -330,9 +330,7 @@
330 pinctrl-names = "default"; 330 pinctrl-names = "default";
331 status = "okay"; 331 status = "okay";
332 332
333 clocks = <&mstp7_clks R8A7791_CLK_DU0>, 333 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 726>,
334 <&mstp7_clks R8A7791_CLK_DU1>,
335 <&mstp7_clks R8A7791_CLK_LVDS0>,
336 <&x13_clk>, <&x2_clk>; 334 <&x13_clk>, <&x2_clk>;
337 clock-names = "du.0", "du.1", "lvds.0", 335 clock-names = "du.0", "du.1", "lvds.0",
338 "dclkin.0", "dclkin.1"; 336 "dclkin.0", "dclkin.1";
diff --git a/arch/arm/boot/dts/r8a7791-porter.dts b/arch/arm/boot/dts/r8a7791-porter.dts
index 95da5cb9d37a..eb374956294f 100644
--- a/arch/arm/boot/dts/r8a7791-porter.dts
+++ b/arch/arm/boot/dts/r8a7791-porter.dts
@@ -419,9 +419,7 @@
419 pinctrl-names = "default"; 419 pinctrl-names = "default";
420 status = "okay"; 420 status = "okay";
421 421
422 clocks = <&mstp7_clks R8A7791_CLK_DU0>, 422 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 726>,
423 <&mstp7_clks R8A7791_CLK_DU1>,
424 <&mstp7_clks R8A7791_CLK_LVDS0>,
425 <&x3_clk>, <&x16_clk>; 423 <&x3_clk>, <&x16_clk>;
426 clock-names = "du.0", "du.1", "lvds.0", 424 clock-names = "du.0", "du.1", "lvds.0",
427 "dclkin.0", "dclkin.1"; 425 "dclkin.0", "dclkin.1";
diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
index f1d1a9772153..67831d0405f3 100644
--- a/arch/arm/boot/dts/r8a7791.dtsi
+++ b/arch/arm/boot/dts/r8a7791.dtsi
@@ -10,7 +10,7 @@
10 * kind, whether express or implied. 10 * kind, whether express or implied.
11 */ 11 */
12 12
13#include <dt-bindings/clock/r8a7791-clock.h> 13#include <dt-bindings/clock/r8a7791-cpg-mssr.h>
14#include <dt-bindings/interrupt-controller/arm-gic.h> 14#include <dt-bindings/interrupt-controller/arm-gic.h>
15#include <dt-bindings/interrupt-controller/irq.h> 15#include <dt-bindings/interrupt-controller/irq.h>
16#include <dt-bindings/power/r8a7791-sysc.h> 16#include <dt-bindings/power/r8a7791-sysc.h>
@@ -51,7 +51,7 @@
51 reg = <0>; 51 reg = <0>;
52 clock-frequency = <1500000000>; 52 clock-frequency = <1500000000>;
53 voltage-tolerance = <1>; /* 1% */ 53 voltage-tolerance = <1>; /* 1% */
54 clocks = <&cpg_clocks R8A7791_CLK_Z>; 54 clocks = <&cpg CPG_CORE R8A7791_CLK_Z>;
55 clock-latency = <300000>; /* 300 us */ 55 clock-latency = <300000>; /* 300 us */
56 power-domains = <&sysc R8A7791_PD_CA15_CPU0>; 56 power-domains = <&sysc R8A7791_PD_CA15_CPU0>;
57 next-level-cache = <&L2_CA15>; 57 next-level-cache = <&L2_CA15>;
@@ -70,6 +70,7 @@
70 compatible = "arm,cortex-a15"; 70 compatible = "arm,cortex-a15";
71 reg = <1>; 71 reg = <1>;
72 clock-frequency = <1500000000>; 72 clock-frequency = <1500000000>;
73 clocks = <&cpg CPG_CORE R8A7791_CLK_Z>;
73 power-domains = <&sysc R8A7791_PD_CA15_CPU1>; 74 power-domains = <&sysc R8A7791_PD_CA15_CPU1>;
74 next-level-cache = <&L2_CA15>; 75 next-level-cache = <&L2_CA15>;
75 }; 76 };
@@ -117,13 +118,14 @@
117 <0 0xf1004000 0 0x2000>, 118 <0 0xf1004000 0 0x2000>,
118 <0 0xf1006000 0 0x2000>; 119 <0 0xf1006000 0 0x2000>;
119 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)>;
120 clocks = <&mstp4_clks R8A7791_CLK_INTC_SYS>; 121 clocks = <&cpg CPG_MOD 408>;
121 clock-names = "clk"; 122 clock-names = "clk";
122 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 123 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
124 resets = <&cpg 408>;
123 }; 125 };
124 126
125 gpio0: gpio@e6050000 { 127 gpio0: gpio@e6050000 {
126 compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar"; 128 compatible = "renesas,gpio-r8a7791", "renesas,rcar-gen2-gpio";
127 reg = <0 0xe6050000 0 0x50>; 129 reg = <0 0xe6050000 0 0x50>;
128 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 130 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
129 #gpio-cells = <2>; 131 #gpio-cells = <2>;
@@ -131,12 +133,13 @@
131 gpio-ranges = <&pfc 0 0 32>; 133 gpio-ranges = <&pfc 0 0 32>;
132 #interrupt-cells = <2>; 134 #interrupt-cells = <2>;
133 interrupt-controller; 135 interrupt-controller;
134 clocks = <&mstp9_clks R8A7791_CLK_GPIO0>; 136 clocks = <&cpg CPG_MOD 912>;
135 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 137 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
138 resets = <&cpg 912>;
136 }; 139 };
137 140
138 gpio1: gpio@e6051000 { 141 gpio1: gpio@e6051000 {
139 compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar"; 142 compatible = "renesas,gpio-r8a7791", "renesas,rcar-gen2-gpio";
140 reg = <0 0xe6051000 0 0x50>; 143 reg = <0 0xe6051000 0 0x50>;
141 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 144 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
142 #gpio-cells = <2>; 145 #gpio-cells = <2>;
@@ -144,12 +147,13 @@
144 gpio-ranges = <&pfc 0 32 26>; 147 gpio-ranges = <&pfc 0 32 26>;
145 #interrupt-cells = <2>; 148 #interrupt-cells = <2>;
146 interrupt-controller; 149 interrupt-controller;
147 clocks = <&mstp9_clks R8A7791_CLK_GPIO1>; 150 clocks = <&cpg CPG_MOD 911>;
148 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 151 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
152 resets = <&cpg 911>;
149 }; 153 };
150 154
151 gpio2: gpio@e6052000 { 155 gpio2: gpio@e6052000 {
152 compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar"; 156 compatible = "renesas,gpio-r8a7791", "renesas,rcar-gen2-gpio";
153 reg = <0 0xe6052000 0 0x50>; 157 reg = <0 0xe6052000 0 0x50>;
154 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 158 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
155 #gpio-cells = <2>; 159 #gpio-cells = <2>;
@@ -157,12 +161,13 @@
157 gpio-ranges = <&pfc 0 64 32>; 161 gpio-ranges = <&pfc 0 64 32>;
158 #interrupt-cells = <2>; 162 #interrupt-cells = <2>;
159 interrupt-controller; 163 interrupt-controller;
160 clocks = <&mstp9_clks R8A7791_CLK_GPIO2>; 164 clocks = <&cpg CPG_MOD 910>;
161 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 165 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
166 resets = <&cpg 910>;
162 }; 167 };
163 168
164 gpio3: gpio@e6053000 { 169 gpio3: gpio@e6053000 {
165 compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar"; 170 compatible = "renesas,gpio-r8a7791", "renesas,rcar-gen2-gpio";
166 reg = <0 0xe6053000 0 0x50>; 171 reg = <0 0xe6053000 0 0x50>;
167 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 172 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
168 #gpio-cells = <2>; 173 #gpio-cells = <2>;
@@ -170,12 +175,13 @@
170 gpio-ranges = <&pfc 0 96 32>; 175 gpio-ranges = <&pfc 0 96 32>;
171 #interrupt-cells = <2>; 176 #interrupt-cells = <2>;
172 interrupt-controller; 177 interrupt-controller;
173 clocks = <&mstp9_clks R8A7791_CLK_GPIO3>; 178 clocks = <&cpg CPG_MOD 909>;
174 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 179 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
180 resets = <&cpg 909>;
175 }; 181 };
176 182
177 gpio4: gpio@e6054000 { 183 gpio4: gpio@e6054000 {
178 compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar"; 184 compatible = "renesas,gpio-r8a7791", "renesas,rcar-gen2-gpio";
179 reg = <0 0xe6054000 0 0x50>; 185 reg = <0 0xe6054000 0 0x50>;
180 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 186 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
181 #gpio-cells = <2>; 187 #gpio-cells = <2>;
@@ -183,12 +189,13 @@
183 gpio-ranges = <&pfc 0 128 32>; 189 gpio-ranges = <&pfc 0 128 32>;
184 #interrupt-cells = <2>; 190 #interrupt-cells = <2>;
185 interrupt-controller; 191 interrupt-controller;
186 clocks = <&mstp9_clks R8A7791_CLK_GPIO4>; 192 clocks = <&cpg CPG_MOD 908>;
187 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 193 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
194 resets = <&cpg 908>;
188 }; 195 };
189 196
190 gpio5: gpio@e6055000 { 197 gpio5: gpio@e6055000 {
191 compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar"; 198 compatible = "renesas,gpio-r8a7791", "renesas,rcar-gen2-gpio";
192 reg = <0 0xe6055000 0 0x50>; 199 reg = <0 0xe6055000 0 0x50>;
193 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 200 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
194 #gpio-cells = <2>; 201 #gpio-cells = <2>;
@@ -196,12 +203,13 @@
196 gpio-ranges = <&pfc 0 160 32>; 203 gpio-ranges = <&pfc 0 160 32>;
197 #interrupt-cells = <2>; 204 #interrupt-cells = <2>;
198 interrupt-controller; 205 interrupt-controller;
199 clocks = <&mstp9_clks R8A7791_CLK_GPIO5>; 206 clocks = <&cpg CPG_MOD 907>;
200 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 207 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
208 resets = <&cpg 907>;
201 }; 209 };
202 210
203 gpio6: gpio@e6055400 { 211 gpio6: gpio@e6055400 {
204 compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar"; 212 compatible = "renesas,gpio-r8a7791", "renesas,rcar-gen2-gpio";
205 reg = <0 0xe6055400 0 0x50>; 213 reg = <0 0xe6055400 0 0x50>;
206 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 214 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
207 #gpio-cells = <2>; 215 #gpio-cells = <2>;
@@ -209,12 +217,13 @@
209 gpio-ranges = <&pfc 0 192 32>; 217 gpio-ranges = <&pfc 0 192 32>;
210 #interrupt-cells = <2>; 218 #interrupt-cells = <2>;
211 interrupt-controller; 219 interrupt-controller;
212 clocks = <&mstp9_clks R8A7791_CLK_GPIO6>; 220 clocks = <&cpg CPG_MOD 905>;
213 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 221 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
222 resets = <&cpg 905>;
214 }; 223 };
215 224
216 gpio7: gpio@e6055800 { 225 gpio7: gpio@e6055800 {
217 compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar"; 226 compatible = "renesas,gpio-r8a7791", "renesas,rcar-gen2-gpio";
218 reg = <0 0xe6055800 0 0x50>; 227 reg = <0 0xe6055800 0 0x50>;
219 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 228 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
220 #gpio-cells = <2>; 229 #gpio-cells = <2>;
@@ -222,8 +231,9 @@
222 gpio-ranges = <&pfc 0 224 26>; 231 gpio-ranges = <&pfc 0 224 26>;
223 #interrupt-cells = <2>; 232 #interrupt-cells = <2>;
224 interrupt-controller; 233 interrupt-controller;
225 clocks = <&mstp9_clks R8A7791_CLK_GPIO7>; 234 clocks = <&cpg CPG_MOD 904>;
226 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 235 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
236 resets = <&cpg 904>;
227 }; 237 };
228 238
229 thermal: thermal@e61f0000 { 239 thermal: thermal@e61f0000 {
@@ -232,8 +242,9 @@
232 "renesas,rcar-thermal"; 242 "renesas,rcar-thermal";
233 reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>; 243 reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>;
234 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 244 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
235 clocks = <&mstp5_clks R8A7791_CLK_THERMAL>; 245 clocks = <&cpg CPG_MOD 522>;
236 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 246 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
247 resets = <&cpg 522>;
237 #thermal-sensor-cells = <0>; 248 #thermal-sensor-cells = <0>;
238 }; 249 };
239 250
@@ -250,9 +261,10 @@
250 reg = <0 0xffca0000 0 0x1004>; 261 reg = <0 0xffca0000 0 0x1004>;
251 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, 262 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
252 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; 263 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
253 clocks = <&mstp1_clks R8A7791_CLK_CMT0>; 264 clocks = <&cpg CPG_MOD 124>;
254 clock-names = "fck"; 265 clock-names = "fck";
255 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 266 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
267 resets = <&cpg 124>;
256 268
257 renesas,channels-mask = <0x60>; 269 renesas,channels-mask = <0x60>;
258 270
@@ -270,9 +282,10 @@
270 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 282 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
271 <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>, 283 <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
272 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; 284 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
273 clocks = <&mstp3_clks R8A7791_CLK_CMT1>; 285 clocks = <&cpg CPG_MOD 329>;
274 clock-names = "fck"; 286 clock-names = "fck";
275 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 287 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
288 resets = <&cpg 329>;
276 289
277 renesas,channels-mask = <0xff>; 290 renesas,channels-mask = <0xff>;
278 291
@@ -294,8 +307,9 @@
294 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 307 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
295 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 308 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
296 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 309 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
297 clocks = <&mstp4_clks R8A7791_CLK_IRQC>; 310 clocks = <&cpg CPG_MOD 407>;
298 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 311 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
312 resets = <&cpg 407>;
299 }; 313 };
300 314
301 dmac0: dma-controller@e6700000 { 315 dmac0: dma-controller@e6700000 {
@@ -322,9 +336,10 @@
322 "ch4", "ch5", "ch6", "ch7", 336 "ch4", "ch5", "ch6", "ch7",
323 "ch8", "ch9", "ch10", "ch11", 337 "ch8", "ch9", "ch10", "ch11",
324 "ch12", "ch13", "ch14"; 338 "ch12", "ch13", "ch14";
325 clocks = <&mstp2_clks R8A7791_CLK_SYS_DMAC0>; 339 clocks = <&cpg CPG_MOD 219>;
326 clock-names = "fck"; 340 clock-names = "fck";
327 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 341 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
342 resets = <&cpg 219>;
328 #dma-cells = <1>; 343 #dma-cells = <1>;
329 dma-channels = <15>; 344 dma-channels = <15>;
330 }; 345 };
@@ -353,9 +368,10 @@
353 "ch4", "ch5", "ch6", "ch7", 368 "ch4", "ch5", "ch6", "ch7",
354 "ch8", "ch9", "ch10", "ch11", 369 "ch8", "ch9", "ch10", "ch11",
355 "ch12", "ch13", "ch14"; 370 "ch12", "ch13", "ch14";
356 clocks = <&mstp2_clks R8A7791_CLK_SYS_DMAC1>; 371 clocks = <&cpg CPG_MOD 218>;
357 clock-names = "fck"; 372 clock-names = "fck";
358 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 373 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
374 resets = <&cpg 218>;
359 #dma-cells = <1>; 375 #dma-cells = <1>;
360 dma-channels = <15>; 376 dma-channels = <15>;
361 }; 377 };
@@ -382,9 +398,10 @@
382 "ch4", "ch5", "ch6", "ch7", 398 "ch4", "ch5", "ch6", "ch7",
383 "ch8", "ch9", "ch10", "ch11", 399 "ch8", "ch9", "ch10", "ch11",
384 "ch12"; 400 "ch12";
385 clocks = <&mstp5_clks R8A7791_CLK_AUDIO_DMAC0>; 401 clocks = <&cpg CPG_MOD 502>;
386 clock-names = "fck"; 402 clock-names = "fck";
387 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 403 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
404 resets = <&cpg 502>;
388 #dma-cells = <1>; 405 #dma-cells = <1>;
389 dma-channels = <13>; 406 dma-channels = <13>;
390 }; 407 };
@@ -411,9 +428,10 @@
411 "ch4", "ch5", "ch6", "ch7", 428 "ch4", "ch5", "ch6", "ch7",
412 "ch8", "ch9", "ch10", "ch11", 429 "ch8", "ch9", "ch10", "ch11",
413 "ch12"; 430 "ch12";
414 clocks = <&mstp5_clks R8A7791_CLK_AUDIO_DMAC1>; 431 clocks = <&cpg CPG_MOD 501>;
415 clock-names = "fck"; 432 clock-names = "fck";
416 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 433 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
434 resets = <&cpg 501>;
417 #dma-cells = <1>; 435 #dma-cells = <1>;
418 dma-channels = <13>; 436 dma-channels = <13>;
419 }; 437 };
@@ -424,8 +442,9 @@
424 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 442 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH
425 GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 443 GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
426 interrupt-names = "ch0", "ch1"; 444 interrupt-names = "ch0", "ch1";
427 clocks = <&mstp3_clks R8A7791_CLK_USBDMAC0>; 445 clocks = <&cpg CPG_MOD 330>;
428 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 446 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
447 resets = <&cpg 330>;
429 #dma-cells = <1>; 448 #dma-cells = <1>;
430 dma-channels = <2>; 449 dma-channels = <2>;
431 }; 450 };
@@ -436,8 +455,9 @@
436 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 455 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH
437 GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 456 GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
438 interrupt-names = "ch0", "ch1"; 457 interrupt-names = "ch0", "ch1";
439 clocks = <&mstp3_clks R8A7791_CLK_USBDMAC1>; 458 clocks = <&cpg CPG_MOD 331>;
440 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 459 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
460 resets = <&cpg 331>;
441 #dma-cells = <1>; 461 #dma-cells = <1>;
442 dma-channels = <2>; 462 dma-channels = <2>;
443 }; 463 };
@@ -449,8 +469,9 @@
449 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c"; 469 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
450 reg = <0 0xe6508000 0 0x40>; 470 reg = <0 0xe6508000 0 0x40>;
451 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 471 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
452 clocks = <&mstp9_clks R8A7791_CLK_I2C0>; 472 clocks = <&cpg CPG_MOD 931>;
453 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 473 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
474 resets = <&cpg 931>;
454 i2c-scl-internal-delay-ns = <6>; 475 i2c-scl-internal-delay-ns = <6>;
455 status = "disabled"; 476 status = "disabled";
456 }; 477 };
@@ -461,8 +482,9 @@
461 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c"; 482 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
462 reg = <0 0xe6518000 0 0x40>; 483 reg = <0 0xe6518000 0 0x40>;
463 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; 484 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
464 clocks = <&mstp9_clks R8A7791_CLK_I2C1>; 485 clocks = <&cpg CPG_MOD 930>;
465 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 486 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
487 resets = <&cpg 930>;
466 i2c-scl-internal-delay-ns = <6>; 488 i2c-scl-internal-delay-ns = <6>;
467 status = "disabled"; 489 status = "disabled";
468 }; 490 };
@@ -473,8 +495,9 @@
473 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c"; 495 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
474 reg = <0 0xe6530000 0 0x40>; 496 reg = <0 0xe6530000 0 0x40>;
475 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; 497 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
476 clocks = <&mstp9_clks R8A7791_CLK_I2C2>; 498 clocks = <&cpg CPG_MOD 929>;
477 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 499 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
500 resets = <&cpg 929>;
478 i2c-scl-internal-delay-ns = <6>; 501 i2c-scl-internal-delay-ns = <6>;
479 status = "disabled"; 502 status = "disabled";
480 }; 503 };
@@ -485,8 +508,9 @@
485 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c"; 508 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
486 reg = <0 0xe6540000 0 0x40>; 509 reg = <0 0xe6540000 0 0x40>;
487 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; 510 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
488 clocks = <&mstp9_clks R8A7791_CLK_I2C3>; 511 clocks = <&cpg CPG_MOD 928>;
489 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 512 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
513 resets = <&cpg 928>;
490 i2c-scl-internal-delay-ns = <6>; 514 i2c-scl-internal-delay-ns = <6>;
491 status = "disabled"; 515 status = "disabled";
492 }; 516 };
@@ -497,8 +521,9 @@
497 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c"; 521 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
498 reg = <0 0xe6520000 0 0x40>; 522 reg = <0 0xe6520000 0 0x40>;
499 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 523 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
500 clocks = <&mstp9_clks R8A7791_CLK_I2C4>; 524 clocks = <&cpg CPG_MOD 927>;
501 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 525 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
526 resets = <&cpg 927>;
502 i2c-scl-internal-delay-ns = <6>; 527 i2c-scl-internal-delay-ns = <6>;
503 status = "disabled"; 528 status = "disabled";
504 }; 529 };
@@ -510,8 +535,9 @@
510 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c"; 535 compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
511 reg = <0 0xe6528000 0 0x40>; 536 reg = <0 0xe6528000 0 0x40>;
512 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 537 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
513 clocks = <&mstp9_clks R8A7791_CLK_I2C5>; 538 clocks = <&cpg CPG_MOD 925>;
514 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 539 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
540 resets = <&cpg 925>;
515 i2c-scl-internal-delay-ns = <110>; 541 i2c-scl-internal-delay-ns = <110>;
516 status = "disabled"; 542 status = "disabled";
517 }; 543 };
@@ -524,11 +550,12 @@
524 "renesas,rmobile-iic"; 550 "renesas,rmobile-iic";
525 reg = <0 0xe60b0000 0 0x425>; 551 reg = <0 0xe60b0000 0 0x425>;
526 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 552 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
527 clocks = <&mstp9_clks R8A7791_CLK_IICDVFS>; 553 clocks = <&cpg CPG_MOD 926>;
528 dmas = <&dmac0 0x77>, <&dmac0 0x78>, 554 dmas = <&dmac0 0x77>, <&dmac0 0x78>,
529 <&dmac1 0x77>, <&dmac1 0x78>; 555 <&dmac1 0x77>, <&dmac1 0x78>;
530 dma-names = "tx", "rx", "tx", "rx"; 556 dma-names = "tx", "rx", "tx", "rx";
531 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 557 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
558 resets = <&cpg 926>;
532 status = "disabled"; 559 status = "disabled";
533 }; 560 };
534 561
@@ -539,11 +566,12 @@
539 "renesas,rmobile-iic"; 566 "renesas,rmobile-iic";
540 reg = <0 0xe6500000 0 0x425>; 567 reg = <0 0xe6500000 0 0x425>;
541 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 568 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
542 clocks = <&mstp3_clks R8A7791_CLK_IIC0>; 569 clocks = <&cpg CPG_MOD 318>;
543 dmas = <&dmac0 0x61>, <&dmac0 0x62>, 570 dmas = <&dmac0 0x61>, <&dmac0 0x62>,
544 <&dmac1 0x61>, <&dmac1 0x62>; 571 <&dmac1 0x61>, <&dmac1 0x62>;
545 dma-names = "tx", "rx", "tx", "rx"; 572 dma-names = "tx", "rx", "tx", "rx";
546 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 573 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
574 resets = <&cpg 318>;
547 status = "disabled"; 575 status = "disabled";
548 }; 576 };
549 577
@@ -554,11 +582,12 @@
554 "renesas,rmobile-iic"; 582 "renesas,rmobile-iic";
555 reg = <0 0xe6510000 0 0x425>; 583 reg = <0 0xe6510000 0 0x425>;
556 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 584 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
557 clocks = <&mstp3_clks R8A7791_CLK_IIC1>; 585 clocks = <&cpg CPG_MOD 323>;
558 dmas = <&dmac0 0x65>, <&dmac0 0x66>, 586 dmas = <&dmac0 0x65>, <&dmac0 0x66>,
559 <&dmac1 0x65>, <&dmac1 0x66>; 587 <&dmac1 0x65>, <&dmac1 0x66>;
560 dma-names = "tx", "rx", "tx", "rx"; 588 dma-names = "tx", "rx", "tx", "rx";
561 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 589 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
590 resets = <&cpg 323>;
562 status = "disabled"; 591 status = "disabled";
563 }; 592 };
564 593
@@ -571,11 +600,12 @@
571 compatible = "renesas,mmcif-r8a7791", "renesas,sh-mmcif"; 600 compatible = "renesas,mmcif-r8a7791", "renesas,sh-mmcif";
572 reg = <0 0xee200000 0 0x80>; 601 reg = <0 0xee200000 0 0x80>;
573 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; 602 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
574 clocks = <&mstp3_clks R8A7791_CLK_MMCIF0>; 603 clocks = <&cpg CPG_MOD 315>;
575 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>, 604 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>,
576 <&dmac1 0xd1>, <&dmac1 0xd2>; 605 <&dmac1 0xd1>, <&dmac1 0xd2>;
577 dma-names = "tx", "rx", "tx", "rx"; 606 dma-names = "tx", "rx", "tx", "rx";
578 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 607 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
608 resets = <&cpg 315>;
579 reg-io-width = <4>; 609 reg-io-width = <4>;
580 status = "disabled"; 610 status = "disabled";
581 max-frequency = <97500000>; 611 max-frequency = <97500000>;
@@ -585,12 +615,13 @@
585 compatible = "renesas,sdhi-r8a7791"; 615 compatible = "renesas,sdhi-r8a7791";
586 reg = <0 0xee100000 0 0x328>; 616 reg = <0 0xee100000 0 0x328>;
587 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; 617 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
588 clocks = <&mstp3_clks R8A7791_CLK_SDHI0>; 618 clocks = <&cpg CPG_MOD 314>;
589 dmas = <&dmac0 0xcd>, <&dmac0 0xce>, 619 dmas = <&dmac0 0xcd>, <&dmac0 0xce>,
590 <&dmac1 0xcd>, <&dmac1 0xce>; 620 <&dmac1 0xcd>, <&dmac1 0xce>;
591 dma-names = "tx", "rx", "tx", "rx"; 621 dma-names = "tx", "rx", "tx", "rx";
592 max-frequency = <195000000>; 622 max-frequency = <195000000>;
593 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 623 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
624 resets = <&cpg 314>;
594 status = "disabled"; 625 status = "disabled";
595 }; 626 };
596 627
@@ -598,12 +629,13 @@
598 compatible = "renesas,sdhi-r8a7791"; 629 compatible = "renesas,sdhi-r8a7791";
599 reg = <0 0xee140000 0 0x100>; 630 reg = <0 0xee140000 0 0x100>;
600 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; 631 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
601 clocks = <&mstp3_clks R8A7791_CLK_SDHI1>; 632 clocks = <&cpg CPG_MOD 312>;
602 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>, 633 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>,
603 <&dmac1 0xc1>, <&dmac1 0xc2>; 634 <&dmac1 0xc1>, <&dmac1 0xc2>;
604 dma-names = "tx", "rx", "tx", "rx"; 635 dma-names = "tx", "rx", "tx", "rx";
605 max-frequency = <97500000>; 636 max-frequency = <97500000>;
606 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 637 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
638 resets = <&cpg 312>;
607 status = "disabled"; 639 status = "disabled";
608 }; 640 };
609 641
@@ -611,12 +643,13 @@
611 compatible = "renesas,sdhi-r8a7791"; 643 compatible = "renesas,sdhi-r8a7791";
612 reg = <0 0xee160000 0 0x100>; 644 reg = <0 0xee160000 0 0x100>;
613 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 645 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
614 clocks = <&mstp3_clks R8A7791_CLK_SDHI2>; 646 clocks = <&cpg CPG_MOD 311>;
615 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>, 647 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>,
616 <&dmac1 0xd3>, <&dmac1 0xd4>; 648 <&dmac1 0xd3>, <&dmac1 0xd4>;
617 dma-names = "tx", "rx", "tx", "rx"; 649 dma-names = "tx", "rx", "tx", "rx";
618 max-frequency = <97500000>; 650 max-frequency = <97500000>;
619 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 651 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
652 resets = <&cpg 311>;
620 status = "disabled"; 653 status = "disabled";
621 }; 654 };
622 655
@@ -625,12 +658,13 @@
625 "renesas,rcar-gen2-scifa", "renesas,scifa"; 658 "renesas,rcar-gen2-scifa", "renesas,scifa";
626 reg = <0 0xe6c40000 0 64>; 659 reg = <0 0xe6c40000 0 64>;
627 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; 660 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
628 clocks = <&mstp2_clks R8A7791_CLK_SCIFA0>; 661 clocks = <&cpg CPG_MOD 204>;
629 clock-names = "fck"; 662 clock-names = "fck";
630 dmas = <&dmac0 0x21>, <&dmac0 0x22>, 663 dmas = <&dmac0 0x21>, <&dmac0 0x22>,
631 <&dmac1 0x21>, <&dmac1 0x22>; 664 <&dmac1 0x21>, <&dmac1 0x22>;
632 dma-names = "tx", "rx", "tx", "rx"; 665 dma-names = "tx", "rx", "tx", "rx";
633 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 666 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
667 resets = <&cpg 204>;
634 status = "disabled"; 668 status = "disabled";
635 }; 669 };
636 670
@@ -639,12 +673,13 @@
639 "renesas,rcar-gen2-scifa", "renesas,scifa"; 673 "renesas,rcar-gen2-scifa", "renesas,scifa";
640 reg = <0 0xe6c50000 0 64>; 674 reg = <0 0xe6c50000 0 64>;
641 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; 675 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
642 clocks = <&mstp2_clks R8A7791_CLK_SCIFA1>; 676 clocks = <&cpg CPG_MOD 203>;
643 clock-names = "fck"; 677 clock-names = "fck";
644 dmas = <&dmac0 0x25>, <&dmac0 0x26>, 678 dmas = <&dmac0 0x25>, <&dmac0 0x26>,
645 <&dmac1 0x25>, <&dmac1 0x26>; 679 <&dmac1 0x25>, <&dmac1 0x26>;
646 dma-names = "tx", "rx", "tx", "rx"; 680 dma-names = "tx", "rx", "tx", "rx";
647 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 681 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
682 resets = <&cpg 203>;
648 status = "disabled"; 683 status = "disabled";
649 }; 684 };
650 685
@@ -653,12 +688,13 @@
653 "renesas,rcar-gen2-scifa", "renesas,scifa"; 688 "renesas,rcar-gen2-scifa", "renesas,scifa";
654 reg = <0 0xe6c60000 0 64>; 689 reg = <0 0xe6c60000 0 64>;
655 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>; 690 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
656 clocks = <&mstp2_clks R8A7791_CLK_SCIFA2>; 691 clocks = <&cpg CPG_MOD 202>;
657 clock-names = "fck"; 692 clock-names = "fck";
658 dmas = <&dmac0 0x27>, <&dmac0 0x28>, 693 dmas = <&dmac0 0x27>, <&dmac0 0x28>,
659 <&dmac1 0x27>, <&dmac1 0x28>; 694 <&dmac1 0x27>, <&dmac1 0x28>;
660 dma-names = "tx", "rx", "tx", "rx"; 695 dma-names = "tx", "rx", "tx", "rx";
661 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 696 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
697 resets = <&cpg 202>;
662 status = "disabled"; 698 status = "disabled";
663 }; 699 };
664 700
@@ -667,12 +703,13 @@
667 "renesas,rcar-gen2-scifa", "renesas,scifa"; 703 "renesas,rcar-gen2-scifa", "renesas,scifa";
668 reg = <0 0xe6c70000 0 64>; 704 reg = <0 0xe6c70000 0 64>;
669 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 705 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
670 clocks = <&mstp11_clks R8A7791_CLK_SCIFA3>; 706 clocks = <&cpg CPG_MOD 1106>;
671 clock-names = "fck"; 707 clock-names = "fck";
672 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>, 708 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>,
673 <&dmac1 0x1b>, <&dmac1 0x1c>; 709 <&dmac1 0x1b>, <&dmac1 0x1c>;
674 dma-names = "tx", "rx", "tx", "rx"; 710 dma-names = "tx", "rx", "tx", "rx";
675 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 711 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
712 resets = <&cpg 1106>;
676 status = "disabled"; 713 status = "disabled";
677 }; 714 };
678 715
@@ -681,12 +718,13 @@
681 "renesas,rcar-gen2-scifa", "renesas,scifa"; 718 "renesas,rcar-gen2-scifa", "renesas,scifa";
682 reg = <0 0xe6c78000 0 64>; 719 reg = <0 0xe6c78000 0 64>;
683 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 720 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
684 clocks = <&mstp11_clks R8A7791_CLK_SCIFA4>; 721 clocks = <&cpg CPG_MOD 1107>;
685 clock-names = "fck"; 722 clock-names = "fck";
686 dmas = <&dmac0 0x1f>, <&dmac0 0x20>, 723 dmas = <&dmac0 0x1f>, <&dmac0 0x20>,
687 <&dmac1 0x1f>, <&dmac1 0x20>; 724 <&dmac1 0x1f>, <&dmac1 0x20>;
688 dma-names = "tx", "rx", "tx", "rx"; 725 dma-names = "tx", "rx", "tx", "rx";
689 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 726 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
727 resets = <&cpg 1107>;
690 status = "disabled"; 728 status = "disabled";
691 }; 729 };
692 730
@@ -695,12 +733,13 @@
695 "renesas,rcar-gen2-scifa", "renesas,scifa"; 733 "renesas,rcar-gen2-scifa", "renesas,scifa";
696 reg = <0 0xe6c80000 0 64>; 734 reg = <0 0xe6c80000 0 64>;
697 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 735 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
698 clocks = <&mstp11_clks R8A7791_CLK_SCIFA5>; 736 clocks = <&cpg CPG_MOD 1108>;
699 clock-names = "fck"; 737 clock-names = "fck";
700 dmas = <&dmac0 0x23>, <&dmac0 0x24>, 738 dmas = <&dmac0 0x23>, <&dmac0 0x24>,
701 <&dmac1 0x23>, <&dmac1 0x24>; 739 <&dmac1 0x23>, <&dmac1 0x24>;
702 dma-names = "tx", "rx", "tx", "rx"; 740 dma-names = "tx", "rx", "tx", "rx";
703 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 741 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
742 resets = <&cpg 1108>;
704 status = "disabled"; 743 status = "disabled";
705 }; 744 };
706 745
@@ -709,12 +748,13 @@
709 "renesas,rcar-gen2-scifb", "renesas,scifb"; 748 "renesas,rcar-gen2-scifb", "renesas,scifb";
710 reg = <0 0xe6c20000 0 0x100>; 749 reg = <0 0xe6c20000 0 0x100>;
711 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 750 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
712 clocks = <&mstp2_clks R8A7791_CLK_SCIFB0>; 751 clocks = <&cpg CPG_MOD 206>;
713 clock-names = "fck"; 752 clock-names = "fck";
714 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>, 753 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>,
715 <&dmac1 0x3d>, <&dmac1 0x3e>; 754 <&dmac1 0x3d>, <&dmac1 0x3e>;
716 dma-names = "tx", "rx", "tx", "rx"; 755 dma-names = "tx", "rx", "tx", "rx";
717 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 756 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
757 resets = <&cpg 206>;
718 status = "disabled"; 758 status = "disabled";
719 }; 759 };
720 760
@@ -723,12 +763,13 @@
723 "renesas,rcar-gen2-scifb", "renesas,scifb"; 763 "renesas,rcar-gen2-scifb", "renesas,scifb";
724 reg = <0 0xe6c30000 0 0x100>; 764 reg = <0 0xe6c30000 0 0x100>;
725 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 765 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
726 clocks = <&mstp2_clks R8A7791_CLK_SCIFB1>; 766 clocks = <&cpg CPG_MOD 207>;
727 clock-names = "fck"; 767 clock-names = "fck";
728 dmas = <&dmac0 0x19>, <&dmac0 0x1a>, 768 dmas = <&dmac0 0x19>, <&dmac0 0x1a>,
729 <&dmac1 0x19>, <&dmac1 0x1a>; 769 <&dmac1 0x19>, <&dmac1 0x1a>;
730 dma-names = "tx", "rx", "tx", "rx"; 770 dma-names = "tx", "rx", "tx", "rx";
731 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 771 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
772 resets = <&cpg 207>;
732 status = "disabled"; 773 status = "disabled";
733 }; 774 };
734 775
@@ -737,12 +778,13 @@
737 "renesas,rcar-gen2-scifb", "renesas,scifb"; 778 "renesas,rcar-gen2-scifb", "renesas,scifb";
738 reg = <0 0xe6ce0000 0 0x100>; 779 reg = <0 0xe6ce0000 0 0x100>;
739 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>; 780 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
740 clocks = <&mstp2_clks R8A7791_CLK_SCIFB2>; 781 clocks = <&cpg CPG_MOD 216>;
741 clock-names = "fck"; 782 clock-names = "fck";
742 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>, 783 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>,
743 <&dmac1 0x1d>, <&dmac1 0x1e>; 784 <&dmac1 0x1d>, <&dmac1 0x1e>;
744 dma-names = "tx", "rx", "tx", "rx"; 785 dma-names = "tx", "rx", "tx", "rx";
745 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 786 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
787 resets = <&cpg 216>;
746 status = "disabled"; 788 status = "disabled";
747 }; 789 };
748 790
@@ -751,13 +793,14 @@
751 "renesas,scif"; 793 "renesas,scif";
752 reg = <0 0xe6e60000 0 64>; 794 reg = <0 0xe6e60000 0 64>;
753 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; 795 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
754 clocks = <&mstp7_clks R8A7791_CLK_SCIF0>, <&zs_clk>, 796 clocks = <&cpg CPG_MOD 721>, <&cpg CPG_CORE R8A7791_CLK_ZS>,
755 <&scif_clk>; 797 <&scif_clk>;
756 clock-names = "fck", "brg_int", "scif_clk"; 798 clock-names = "fck", "brg_int", "scif_clk";
757 dmas = <&dmac0 0x29>, <&dmac0 0x2a>, 799 dmas = <&dmac0 0x29>, <&dmac0 0x2a>,
758 <&dmac1 0x29>, <&dmac1 0x2a>; 800 <&dmac1 0x29>, <&dmac1 0x2a>;
759 dma-names = "tx", "rx", "tx", "rx"; 801 dma-names = "tx", "rx", "tx", "rx";
760 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 802 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
803 resets = <&cpg 721>;
761 status = "disabled"; 804 status = "disabled";
762 }; 805 };
763 806
@@ -766,22 +809,24 @@
766 "renesas,scif"; 809 "renesas,scif";
767 reg = <0 0xe6e68000 0 64>; 810 reg = <0 0xe6e68000 0 64>;
768 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; 811 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
769 clocks = <&mstp7_clks R8A7791_CLK_SCIF1>, <&zs_clk>, 812 clocks = <&cpg CPG_MOD 720>, <&cpg CPG_CORE R8A7791_CLK_ZS>,
770 <&scif_clk>; 813 <&scif_clk>;
771 clock-names = "fck", "brg_int", "scif_clk"; 814 clock-names = "fck", "brg_int", "scif_clk";
772 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>, 815 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>,
773 <&dmac1 0x2d>, <&dmac1 0x2e>; 816 <&dmac1 0x2d>, <&dmac1 0x2e>;
774 dma-names = "tx", "rx", "tx", "rx"; 817 dma-names = "tx", "rx", "tx", "rx";
775 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 818 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
819 resets = <&cpg 720>;
776 status = "disabled"; 820 status = "disabled";
777 }; 821 };
778 822
779 adc: adc@e6e54000 { 823 adc: adc@e6e54000 {
780 compatible = "renesas,r8a7791-gyroadc", "renesas,rcar-gyroadc"; 824 compatible = "renesas,r8a7791-gyroadc", "renesas,rcar-gyroadc";
781 reg = <0 0xe6e54000 0 64>; 825 reg = <0 0xe6e54000 0 64>;
782 clocks = <&mstp9_clks R8A7791_CLK_GYROADC>; 826 clocks = <&cpg CPG_MOD 901>;
783 clock-names = "fck"; 827 clock-names = "fck";
784 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 828 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
829 resets = <&cpg 901>;
785 status = "disabled"; 830 status = "disabled";
786 }; 831 };
787 832
@@ -790,13 +835,14 @@
790 "renesas,scif"; 835 "renesas,scif";
791 reg = <0 0xe6e58000 0 64>; 836 reg = <0 0xe6e58000 0 64>;
792 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 837 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
793 clocks = <&mstp7_clks R8A7791_CLK_SCIF2>, <&zs_clk>, 838 clocks = <&cpg CPG_MOD 719>, <&cpg CPG_CORE R8A7791_CLK_ZS>,
794 <&scif_clk>; 839 <&scif_clk>;
795 clock-names = "fck", "brg_int", "scif_clk"; 840 clock-names = "fck", "brg_int", "scif_clk";
796 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>, 841 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>,
797 <&dmac1 0x2b>, <&dmac1 0x2c>; 842 <&dmac1 0x2b>, <&dmac1 0x2c>;
798 dma-names = "tx", "rx", "tx", "rx"; 843 dma-names = "tx", "rx", "tx", "rx";
799 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 844 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
845 resets = <&cpg 719>;
800 status = "disabled"; 846 status = "disabled";
801 }; 847 };
802 848
@@ -805,13 +851,14 @@
805 "renesas,scif"; 851 "renesas,scif";
806 reg = <0 0xe6ea8000 0 64>; 852 reg = <0 0xe6ea8000 0 64>;
807 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 853 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
808 clocks = <&mstp7_clks R8A7791_CLK_SCIF3>, <&zs_clk>, 854 clocks = <&cpg CPG_MOD 718>, <&cpg CPG_CORE R8A7791_CLK_ZS>,
809 <&scif_clk>; 855 <&scif_clk>;
810 clock-names = "fck", "brg_int", "scif_clk"; 856 clock-names = "fck", "brg_int", "scif_clk";
811 dmas = <&dmac0 0x2f>, <&dmac0 0x30>, 857 dmas = <&dmac0 0x2f>, <&dmac0 0x30>,
812 <&dmac1 0x2f>, <&dmac1 0x30>; 858 <&dmac1 0x2f>, <&dmac1 0x30>;
813 dma-names = "tx", "rx", "tx", "rx"; 859 dma-names = "tx", "rx", "tx", "rx";
814 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 860 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
861 resets = <&cpg 718>;
815 status = "disabled"; 862 status = "disabled";
816 }; 863 };
817 864
@@ -820,13 +867,14 @@
820 "renesas,scif"; 867 "renesas,scif";
821 reg = <0 0xe6ee0000 0 64>; 868 reg = <0 0xe6ee0000 0 64>;
822 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 869 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
823 clocks = <&mstp7_clks R8A7791_CLK_SCIF4>, <&zs_clk>, 870 clocks = <&cpg CPG_MOD 715>, <&cpg CPG_CORE R8A7791_CLK_ZS>,
824 <&scif_clk>; 871 <&scif_clk>;
825 clock-names = "fck", "brg_int", "scif_clk"; 872 clock-names = "fck", "brg_int", "scif_clk";
826 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>, 873 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>,
827 <&dmac1 0xfb>, <&dmac1 0xfc>; 874 <&dmac1 0xfb>, <&dmac1 0xfc>;
828 dma-names = "tx", "rx", "tx", "rx"; 875 dma-names = "tx", "rx", "tx", "rx";
829 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 876 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
877 resets = <&cpg 715>;
830 status = "disabled"; 878 status = "disabled";
831 }; 879 };
832 880
@@ -835,13 +883,14 @@
835 "renesas,scif"; 883 "renesas,scif";
836 reg = <0 0xe6ee8000 0 64>; 884 reg = <0 0xe6ee8000 0 64>;
837 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 885 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
838 clocks = <&mstp7_clks R8A7791_CLK_SCIF5>, <&zs_clk>, 886 clocks = <&cpg CPG_MOD 714>, <&cpg CPG_CORE R8A7791_CLK_ZS>,
839 <&scif_clk>; 887 <&scif_clk>;
840 clock-names = "fck", "brg_int", "scif_clk"; 888 clock-names = "fck", "brg_int", "scif_clk";
841 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>, 889 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>,
842 <&dmac1 0xfd>, <&dmac1 0xfe>; 890 <&dmac1 0xfd>, <&dmac1 0xfe>;
843 dma-names = "tx", "rx", "tx", "rx"; 891 dma-names = "tx", "rx", "tx", "rx";
844 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 892 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
893 resets = <&cpg 714>;
845 status = "disabled"; 894 status = "disabled";
846 }; 895 };
847 896
@@ -850,13 +899,14 @@
850 "renesas,rcar-gen2-hscif", "renesas,hscif"; 899 "renesas,rcar-gen2-hscif", "renesas,hscif";
851 reg = <0 0xe62c0000 0 96>; 900 reg = <0 0xe62c0000 0 96>;
852 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 901 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
853 clocks = <&mstp7_clks R8A7791_CLK_HSCIF0>, <&zs_clk>, 902 clocks = <&cpg CPG_MOD 717>, <&cpg CPG_CORE R8A7791_CLK_ZS>,
854 <&scif_clk>; 903 <&scif_clk>;
855 clock-names = "fck", "brg_int", "scif_clk"; 904 clock-names = "fck", "brg_int", "scif_clk";
856 dmas = <&dmac0 0x39>, <&dmac0 0x3a>, 905 dmas = <&dmac0 0x39>, <&dmac0 0x3a>,
857 <&dmac1 0x39>, <&dmac1 0x3a>; 906 <&dmac1 0x39>, <&dmac1 0x3a>;
858 dma-names = "tx", "rx", "tx", "rx"; 907 dma-names = "tx", "rx", "tx", "rx";
859 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 908 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
909 resets = <&cpg 717>;
860 status = "disabled"; 910 status = "disabled";
861 }; 911 };
862 912
@@ -865,13 +915,14 @@
865 "renesas,rcar-gen2-hscif", "renesas,hscif"; 915 "renesas,rcar-gen2-hscif", "renesas,hscif";
866 reg = <0 0xe62c8000 0 96>; 916 reg = <0 0xe62c8000 0 96>;
867 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; 917 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
868 clocks = <&mstp7_clks R8A7791_CLK_HSCIF1>, <&zs_clk>, 918 clocks = <&cpg CPG_MOD 716>, <&cpg CPG_CORE R8A7791_CLK_ZS>,
869 <&scif_clk>; 919 <&scif_clk>;
870 clock-names = "fck", "brg_int", "scif_clk"; 920 clock-names = "fck", "brg_int", "scif_clk";
871 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>, 921 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>,
872 <&dmac1 0x4d>, <&dmac1 0x4e>; 922 <&dmac1 0x4d>, <&dmac1 0x4e>;
873 dma-names = "tx", "rx", "tx", "rx"; 923 dma-names = "tx", "rx", "tx", "rx";
874 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 924 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
925 resets = <&cpg 716>;
875 status = "disabled"; 926 status = "disabled";
876 }; 927 };
877 928
@@ -880,13 +931,14 @@
880 "renesas,rcar-gen2-hscif", "renesas,hscif"; 931 "renesas,rcar-gen2-hscif", "renesas,hscif";
881 reg = <0 0xe62d0000 0 96>; 932 reg = <0 0xe62d0000 0 96>;
882 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 933 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
883 clocks = <&mstp7_clks R8A7791_CLK_HSCIF2>, <&zs_clk>, 934 clocks = <&cpg CPG_MOD 713>, <&cpg CPG_CORE R8A7791_CLK_ZS>,
884 <&scif_clk>; 935 <&scif_clk>;
885 clock-names = "fck", "brg_int", "scif_clk"; 936 clock-names = "fck", "brg_int", "scif_clk";
886 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>, 937 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>,
887 <&dmac1 0x3b>, <&dmac1 0x3c>; 938 <&dmac1 0x3b>, <&dmac1 0x3c>;
888 dma-names = "tx", "rx", "tx", "rx"; 939 dma-names = "tx", "rx", "tx", "rx";
889 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 940 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
941 resets = <&cpg 713>;
890 status = "disabled"; 942 status = "disabled";
891 }; 943 };
892 944
@@ -912,8 +964,9 @@
912 compatible = "renesas,ether-r8a7791"; 964 compatible = "renesas,ether-r8a7791";
913 reg = <0 0xee700000 0 0x400>; 965 reg = <0 0xee700000 0 0x400>;
914 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>; 966 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
915 clocks = <&mstp8_clks R8A7791_CLK_ETHER>; 967 clocks = <&cpg CPG_MOD 813>;
916 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 968 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
969 resets = <&cpg 813>;
917 phy-mode = "rmii"; 970 phy-mode = "rmii";
918 #address-cells = <1>; 971 #address-cells = <1>;
919 #size-cells = <0>; 972 #size-cells = <0>;
@@ -925,8 +978,9 @@
925 "renesas,etheravb-rcar-gen2"; 978 "renesas,etheravb-rcar-gen2";
926 reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>; 979 reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>;
927 interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>; 980 interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
928 clocks = <&mstp8_clks R8A7791_CLK_ETHERAVB>; 981 clocks = <&cpg CPG_MOD 812>;
929 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 982 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
983 resets = <&cpg 812>;
930 #address-cells = <1>; 984 #address-cells = <1>;
931 #size-cells = <0>; 985 #size-cells = <0>;
932 status = "disabled"; 986 status = "disabled";
@@ -936,8 +990,9 @@
936 compatible = "renesas,sata-r8a7791", "renesas,rcar-gen2-sata"; 990 compatible = "renesas,sata-r8a7791", "renesas,rcar-gen2-sata";
937 reg = <0 0xee300000 0 0x2000>; 991 reg = <0 0xee300000 0 0x2000>;
938 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 992 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
939 clocks = <&mstp8_clks R8A7791_CLK_SATA0>; 993 clocks = <&cpg CPG_MOD 815>;
940 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 994 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
995 resets = <&cpg 815>;
941 status = "disabled"; 996 status = "disabled";
942 }; 997 };
943 998
@@ -945,8 +1000,9 @@
945 compatible = "renesas,sata-r8a7791", "renesas,rcar-gen2-sata"; 1000 compatible = "renesas,sata-r8a7791", "renesas,rcar-gen2-sata";
946 reg = <0 0xee500000 0 0x2000>; 1001 reg = <0 0xee500000 0 0x2000>;
947 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; 1002 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
948 clocks = <&mstp8_clks R8A7791_CLK_SATA1>; 1003 clocks = <&cpg CPG_MOD 814>;
949 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1004 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1005 resets = <&cpg 814>;
950 status = "disabled"; 1006 status = "disabled";
951 }; 1007 };
952 1008
@@ -954,11 +1010,12 @@
954 compatible = "renesas,usbhs-r8a7791", "renesas,rcar-gen2-usbhs"; 1010 compatible = "renesas,usbhs-r8a7791", "renesas,rcar-gen2-usbhs";
955 reg = <0 0xe6590000 0 0x100>; 1011 reg = <0 0xe6590000 0 0x100>;
956 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 1012 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
957 clocks = <&mstp7_clks R8A7791_CLK_HSUSB>; 1013 clocks = <&cpg CPG_MOD 704>;
958 dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, 1014 dmas = <&usb_dmac0 0>, <&usb_dmac0 1>,
959 <&usb_dmac1 0>, <&usb_dmac1 1>; 1015 <&usb_dmac1 0>, <&usb_dmac1 1>;
960 dma-names = "ch0", "ch1", "ch2", "ch3"; 1016 dma-names = "ch0", "ch1", "ch2", "ch3";
961 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1017 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1018 resets = <&cpg 704>;
962 renesas,buswait = <4>; 1019 renesas,buswait = <4>;
963 phys = <&usb0 1>; 1020 phys = <&usb0 1>;
964 phy-names = "usb"; 1021 phy-names = "usb";
@@ -971,9 +1028,10 @@
971 reg = <0 0xe6590100 0 0x100>; 1028 reg = <0 0xe6590100 0 0x100>;
972 #address-cells = <1>; 1029 #address-cells = <1>;
973 #size-cells = <0>; 1030 #size-cells = <0>;
974 clocks = <&mstp7_clks R8A7791_CLK_HSUSB>; 1031 clocks = <&cpg CPG_MOD 704>;
975 clock-names = "usbhs"; 1032 clock-names = "usbhs";
976 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1033 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1034 resets = <&cpg 704>;
977 status = "disabled"; 1035 status = "disabled";
978 1036
979 usb0: usb-channel@0 { 1037 usb0: usb-channel@0 {
@@ -990,8 +1048,9 @@
990 compatible = "renesas,vin-r8a7791", "renesas,rcar-gen2-vin"; 1048 compatible = "renesas,vin-r8a7791", "renesas,rcar-gen2-vin";
991 reg = <0 0xe6ef0000 0 0x1000>; 1049 reg = <0 0xe6ef0000 0 0x1000>;
992 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 1050 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
993 clocks = <&mstp8_clks R8A7791_CLK_VIN0>; 1051 clocks = <&cpg CPG_MOD 811>;
994 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1052 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1053 resets = <&cpg 811>;
995 status = "disabled"; 1054 status = "disabled";
996 }; 1055 };
997 1056
@@ -999,8 +1058,9 @@
999 compatible = "renesas,vin-r8a7791", "renesas,rcar-gen2-vin"; 1058 compatible = "renesas,vin-r8a7791", "renesas,rcar-gen2-vin";
1000 reg = <0 0xe6ef1000 0 0x1000>; 1059 reg = <0 0xe6ef1000 0 0x1000>;
1001 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; 1060 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
1002 clocks = <&mstp8_clks R8A7791_CLK_VIN1>; 1061 clocks = <&cpg CPG_MOD 810>;
1003 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1062 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1063 resets = <&cpg 810>;
1004 status = "disabled"; 1064 status = "disabled";
1005 }; 1065 };
1006 1066
@@ -1008,33 +1068,37 @@
1008 compatible = "renesas,vin-r8a7791", "renesas,rcar-gen2-vin"; 1068 compatible = "renesas,vin-r8a7791", "renesas,rcar-gen2-vin";
1009 reg = <0 0xe6ef2000 0 0x1000>; 1069 reg = <0 0xe6ef2000 0 0x1000>;
1010 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; 1070 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
1011 clocks = <&mstp8_clks R8A7791_CLK_VIN2>; 1071 clocks = <&cpg CPG_MOD 809>;
1012 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1072 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1073 resets = <&cpg 809>;
1013 status = "disabled"; 1074 status = "disabled";
1014 }; 1075 };
1015 1076
1016 vsp1@fe928000 { 1077 vsp@fe928000 {
1017 compatible = "renesas,vsp1"; 1078 compatible = "renesas,vsp1";
1018 reg = <0 0xfe928000 0 0x8000>; 1079 reg = <0 0xfe928000 0 0x8000>;
1019 interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>; 1080 interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>;
1020 clocks = <&mstp1_clks R8A7791_CLK_VSP1_S>; 1081 clocks = <&cpg CPG_MOD 131>;
1021 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1082 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1083 resets = <&cpg 131>;
1022 }; 1084 };
1023 1085
1024 vsp1@fe930000 { 1086 vsp@fe930000 {
1025 compatible = "renesas,vsp1"; 1087 compatible = "renesas,vsp1";
1026 reg = <0 0xfe930000 0 0x8000>; 1088 reg = <0 0xfe930000 0 0x8000>;
1027 interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; 1089 interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
1028 clocks = <&mstp1_clks R8A7791_CLK_VSP1_DU0>; 1090 clocks = <&cpg CPG_MOD 128>;
1029 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1091 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1092 resets = <&cpg 128>;
1030 }; 1093 };
1031 1094
1032 vsp1@fe938000 { 1095 vsp@fe938000 {
1033 compatible = "renesas,vsp1"; 1096 compatible = "renesas,vsp1";
1034 reg = <0 0xfe938000 0 0x8000>; 1097 reg = <0 0xfe938000 0 0x8000>;
1035 interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>; 1098 interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>;
1036 clocks = <&mstp1_clks R8A7791_CLK_VSP1_DU1>; 1099 clocks = <&cpg CPG_MOD 127>;
1037 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1100 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1101 resets = <&cpg 127>;
1038 }; 1102 };
1039 1103
1040 du: display@feb00000 { 1104 du: display@feb00000 {
@@ -1044,9 +1108,9 @@
1044 reg-names = "du", "lvds.0"; 1108 reg-names = "du", "lvds.0";
1045 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, 1109 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
1046 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; 1110 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
1047 clocks = <&mstp7_clks R8A7791_CLK_DU0>, 1111 clocks = <&cpg CPG_MOD 724>,
1048 <&mstp7_clks R8A7791_CLK_DU1>, 1112 <&cpg CPG_MOD 723>,
1049 <&mstp7_clks R8A7791_CLK_LVDS0>; 1113 <&cpg CPG_MOD 726>;
1050 clock-names = "du.0", "du.1", "lvds.0"; 1114 clock-names = "du.0", "du.1", "lvds.0";
1051 status = "disabled"; 1115 status = "disabled";
1052 1116
@@ -1071,10 +1135,11 @@
1071 compatible = "renesas,can-r8a7791", "renesas,rcar-gen2-can"; 1135 compatible = "renesas,can-r8a7791", "renesas,rcar-gen2-can";
1072 reg = <0 0xe6e80000 0 0x1000>; 1136 reg = <0 0xe6e80000 0 0x1000>;
1073 interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>; 1137 interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
1074 clocks = <&mstp9_clks R8A7791_CLK_RCAN0>, 1138 clocks = <&cpg CPG_MOD 916>, <&cpg CPG_CORE R8A7791_CLK_RCAN>,
1075 <&cpg_clocks R8A7791_CLK_RCAN>, <&can_clk>; 1139 <&can_clk>;
1076 clock-names = "clkp1", "clkp2", "can_clk"; 1140 clock-names = "clkp1", "clkp2", "can_clk";
1077 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1141 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1142 resets = <&cpg 916>;
1078 status = "disabled"; 1143 status = "disabled";
1079 }; 1144 };
1080 1145
@@ -1082,10 +1147,11 @@
1082 compatible = "renesas,can-r8a7791", "renesas,rcar-gen2-can"; 1147 compatible = "renesas,can-r8a7791", "renesas,rcar-gen2-can";
1083 reg = <0 0xe6e88000 0 0x1000>; 1148 reg = <0 0xe6e88000 0 0x1000>;
1084 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; 1149 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
1085 clocks = <&mstp9_clks R8A7791_CLK_RCAN1>, 1150 clocks = <&cpg CPG_MOD 915>, <&cpg CPG_CORE R8A7791_CLK_RCAN>,
1086 <&cpg_clocks R8A7791_CLK_RCAN>, <&can_clk>; 1151 <&can_clk>;
1087 clock-names = "clkp1", "clkp2", "can_clk"; 1152 clock-names = "clkp1", "clkp2", "can_clk";
1088 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1153 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1154 resets = <&cpg 915>;
1089 status = "disabled"; 1155 status = "disabled";
1090 }; 1156 };
1091 1157
@@ -1093,435 +1159,78 @@
1093 compatible = "renesas,jpu-r8a7791", "renesas,rcar-gen2-jpu"; 1159 compatible = "renesas,jpu-r8a7791", "renesas,rcar-gen2-jpu";
1094 reg = <0 0xfe980000 0 0x10300>; 1160 reg = <0 0xfe980000 0 0x10300>;
1095 interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>; 1161 interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
1096 clocks = <&mstp1_clks R8A7791_CLK_JPU>; 1162 clocks = <&cpg CPG_MOD 106>;
1097 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1163 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1164 resets = <&cpg 106>;
1098 }; 1165 };
1099 1166
1100 clocks { 1167 /* External root clock */
1101 #address-cells = <2>; 1168 extal_clk: extal {
1102 #size-cells = <2>; 1169 compatible = "fixed-clock";
1103 ranges; 1170 #clock-cells = <0>;
1104 1171 /* This value must be overridden by the board. */
1105 /* External root clock */ 1172 clock-frequency = <0>;
1106 extal_clk: extal { 1173 };
1107 compatible = "fixed-clock";
1108 #clock-cells = <0>;
1109 /* This value must be overriden by the board. */
1110 clock-frequency = <0>;
1111 };
1112
1113 /*
1114 * The external audio clocks are configured as 0 Hz fixed frequency clocks by
1115 * default. Boards that provide audio clocks should override them.
1116 */
1117 audio_clk_a: audio_clk_a {
1118 compatible = "fixed-clock";
1119 #clock-cells = <0>;
1120 clock-frequency = <0>;
1121 };
1122 audio_clk_b: audio_clk_b {
1123 compatible = "fixed-clock";
1124 #clock-cells = <0>;
1125 clock-frequency = <0>;
1126 };
1127 audio_clk_c: audio_clk_c {
1128 compatible = "fixed-clock";
1129 #clock-cells = <0>;
1130 clock-frequency = <0>;
1131 };
1132
1133 /* External PCIe clock - can be overridden by the board */
1134 pcie_bus_clk: pcie_bus {
1135 compatible = "fixed-clock";
1136 #clock-cells = <0>;
1137 clock-frequency = <0>;
1138 };
1139
1140 /* External SCIF clock */
1141 scif_clk: scif {
1142 compatible = "fixed-clock";
1143 #clock-cells = <0>;
1144 /* This value must be overridden by the board. */
1145 clock-frequency = <0>;
1146 };
1147 1174
1148 /* External USB clock - can be overridden by the board */ 1175 /*
1149 usb_extal_clk: usb_extal { 1176 * The external audio clocks are configured as 0 Hz fixed frequency
1150 compatible = "fixed-clock"; 1177 * clocks by default.
1151 #clock-cells = <0>; 1178 * Boards that provide audio clocks should override them.
1152 clock-frequency = <48000000>; 1179 */
1153 }; 1180 audio_clk_a: audio_clk_a {
1181 compatible = "fixed-clock";
1182 #clock-cells = <0>;
1183 clock-frequency = <0>;
1184 };
1185 audio_clk_b: audio_clk_b {
1186 compatible = "fixed-clock";
1187 #clock-cells = <0>;
1188 clock-frequency = <0>;
1189 };
1190 audio_clk_c: audio_clk_c {
1191 compatible = "fixed-clock";
1192 #clock-cells = <0>;
1193 clock-frequency = <0>;
1194 };
1154 1195
1155 /* External CAN clock */ 1196 /* External PCIe clock - can be overridden by the board */
1156 can_clk: can { 1197 pcie_bus_clk: pcie_bus {
1157 compatible = "fixed-clock"; 1198 compatible = "fixed-clock";
1158 #clock-cells = <0>; 1199 #clock-cells = <0>;
1159 /* This value must be overridden by the board. */ 1200 clock-frequency = <0>;
1160 clock-frequency = <0>; 1201 };
1161 };
1162 1202
1163 /* Special CPG clocks */ 1203 /* External SCIF clock */
1164 cpg_clocks: cpg_clocks@e6150000 { 1204 scif_clk: scif {
1165 compatible = "renesas,r8a7791-cpg-clocks", 1205 compatible = "fixed-clock";
1166 "renesas,rcar-gen2-cpg-clocks"; 1206 #clock-cells = <0>;
1167 reg = <0 0xe6150000 0 0x1000>; 1207 /* This value must be overridden by the board. */
1168 clocks = <&extal_clk &usb_extal_clk>; 1208 clock-frequency = <0>;
1169 #clock-cells = <1>; 1209 };
1170 clock-output-names = "main", "pll0", "pll1", "pll3",
1171 "lb", "qspi", "sdh", "sd0", "z",
1172 "rcan", "adsp";
1173 #power-domain-cells = <0>;
1174 };
1175 1210
1176 /* Variable factor clocks */ 1211 /* External USB clock - can be overridden by the board */
1177 sd2_clk: sd2@e6150078 { 1212 usb_extal_clk: usb_extal {
1178 compatible = "renesas,r8a7791-div6-clock", "renesas,cpg-div6-clock"; 1213 compatible = "fixed-clock";
1179 reg = <0 0xe6150078 0 4>; 1214 #clock-cells = <0>;
1180 clocks = <&pll1_div2_clk>; 1215 clock-frequency = <48000000>;
1181 #clock-cells = <0>; 1216 };
1182 };
1183 sd3_clk: sd3@e615026c {
1184 compatible = "renesas,r8a7791-div6-clock", "renesas,cpg-div6-clock";
1185 reg = <0 0xe615026c 0 4>;
1186 clocks = <&pll1_div2_clk>;
1187 #clock-cells = <0>;
1188 };
1189 mmc0_clk: mmc0@e6150240 {
1190 compatible = "renesas,r8a7791-div6-clock", "renesas,cpg-div6-clock";
1191 reg = <0 0xe6150240 0 4>;
1192 clocks = <&pll1_div2_clk>;
1193 #clock-cells = <0>;
1194 };
1195 ssp_clk: ssp@e6150248 {
1196 compatible = "renesas,r8a7791-div6-clock", "renesas,cpg-div6-clock";
1197 reg = <0 0xe6150248 0 4>;
1198 clocks = <&pll1_div2_clk>;
1199 #clock-cells = <0>;
1200 };
1201 ssprs_clk: ssprs@e615024c {
1202 compatible = "renesas,r8a7791-div6-clock", "renesas,cpg-div6-clock";
1203 reg = <0 0xe615024c 0 4>;
1204 clocks = <&pll1_div2_clk>;
1205 #clock-cells = <0>;
1206 };
1207 1217
1208 /* Fixed factor clocks */ 1218 /* External CAN clock */
1209 pll1_div2_clk: pll1_div2 { 1219 can_clk: can {
1210 compatible = "fixed-factor-clock"; 1220 compatible = "fixed-clock";
1211 clocks = <&cpg_clocks R8A7791_CLK_PLL1>; 1221 #clock-cells = <0>;
1212 #clock-cells = <0>; 1222 /* This value must be overridden by the board. */
1213 clock-div = <2>; 1223 clock-frequency = <0>;
1214 clock-mult = <1>; 1224 };
1215 };
1216 zg_clk: zg {
1217 compatible = "fixed-factor-clock";
1218 clocks = <&cpg_clocks R8A7791_CLK_PLL1>;
1219 #clock-cells = <0>;
1220 clock-div = <3>;
1221 clock-mult = <1>;
1222 };
1223 zx_clk: zx {
1224 compatible = "fixed-factor-clock";
1225 clocks = <&cpg_clocks R8A7791_CLK_PLL1>;
1226 #clock-cells = <0>;
1227 clock-div = <3>;
1228 clock-mult = <1>;
1229 };
1230 zs_clk: zs {
1231 compatible = "fixed-factor-clock";
1232 clocks = <&cpg_clocks R8A7791_CLK_PLL1>;
1233 #clock-cells = <0>;
1234 clock-div = <6>;
1235 clock-mult = <1>;
1236 };
1237 hp_clk: hp {
1238 compatible = "fixed-factor-clock";
1239 clocks = <&cpg_clocks R8A7791_CLK_PLL1>;
1240 #clock-cells = <0>;
1241 clock-div = <12>;
1242 clock-mult = <1>;
1243 };
1244 i_clk: i {
1245 compatible = "fixed-factor-clock";
1246 clocks = <&cpg_clocks R8A7791_CLK_PLL1>;
1247 #clock-cells = <0>;
1248 clock-div = <2>;
1249 clock-mult = <1>;
1250 };
1251 b_clk: b {
1252 compatible = "fixed-factor-clock";
1253 clocks = <&cpg_clocks R8A7791_CLK_PLL1>;
1254 #clock-cells = <0>;
1255 clock-div = <12>;
1256 clock-mult = <1>;
1257 };
1258 p_clk: p {
1259 compatible = "fixed-factor-clock";
1260 clocks = <&cpg_clocks R8A7791_CLK_PLL1>;
1261 #clock-cells = <0>;
1262 clock-div = <24>;
1263 clock-mult = <1>;
1264 };
1265 cl_clk: cl {
1266 compatible = "fixed-factor-clock";
1267 clocks = <&cpg_clocks R8A7791_CLK_PLL1>;
1268 #clock-cells = <0>;
1269 clock-div = <48>;
1270 clock-mult = <1>;
1271 };
1272 m2_clk: m2 {
1273 compatible = "fixed-factor-clock";
1274 clocks = <&cpg_clocks R8A7791_CLK_PLL1>;
1275 #clock-cells = <0>;
1276 clock-div = <8>;
1277 clock-mult = <1>;
1278 };
1279 rclk_clk: rclk {
1280 compatible = "fixed-factor-clock";
1281 clocks = <&cpg_clocks R8A7791_CLK_PLL1>;
1282 #clock-cells = <0>;
1283 clock-div = <(48 * 1024)>;
1284 clock-mult = <1>;
1285 };
1286 oscclk_clk: oscclk {
1287 compatible = "fixed-factor-clock";
1288 clocks = <&cpg_clocks R8A7791_CLK_PLL1>;
1289 #clock-cells = <0>;
1290 clock-div = <(12 * 1024)>;
1291 clock-mult = <1>;
1292 };
1293 zb3_clk: zb3 {
1294 compatible = "fixed-factor-clock";
1295 clocks = <&cpg_clocks R8A7791_CLK_PLL3>;
1296 #clock-cells = <0>;
1297 clock-div = <4>;
1298 clock-mult = <1>;
1299 };
1300 zb3d2_clk: zb3d2 {
1301 compatible = "fixed-factor-clock";
1302 clocks = <&cpg_clocks R8A7791_CLK_PLL3>;
1303 #clock-cells = <0>;
1304 clock-div = <8>;
1305 clock-mult = <1>;
1306 };
1307 ddr_clk: ddr {
1308 compatible = "fixed-factor-clock";
1309 clocks = <&cpg_clocks R8A7791_CLK_PLL3>;
1310 #clock-cells = <0>;
1311 clock-div = <8>;
1312 clock-mult = <1>;
1313 };
1314 mp_clk: mp {
1315 compatible = "fixed-factor-clock";
1316 clocks = <&pll1_div2_clk>;
1317 #clock-cells = <0>;
1318 clock-div = <15>;
1319 clock-mult = <1>;
1320 };
1321 cp_clk: cp {
1322 compatible = "fixed-factor-clock";
1323 clocks = <&extal_clk>;
1324 #clock-cells = <0>;
1325 clock-div = <2>;
1326 clock-mult = <1>;
1327 };
1328 1225
1329 /* Gate clocks */ 1226 cpg: clock-controller@e6150000 {
1330 mstp0_clks: mstp0_clks@e6150130 { 1227 compatible = "renesas,r8a7791-cpg-mssr";
1331 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; 1228 reg = <0 0xe6150000 0 0x1000>;
1332 reg = <0 0xe6150130 0 4>, <0 0xe6150030 0 4>; 1229 clocks = <&extal_clk>, <&usb_extal_clk>;
1333 clocks = <&mp_clk>; 1230 clock-names = "extal", "usb_extal";
1334 #clock-cells = <1>; 1231 #clock-cells = <2>;
1335 clock-indices = <R8A7791_CLK_MSIOF0>; 1232 #power-domain-cells = <0>;
1336 clock-output-names = "msiof0"; 1233 #reset-cells = <1>;
1337 };
1338 mstp1_clks: mstp1_clks@e6150134 {
1339 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
1340 reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>;
1341 clocks = <&zs_clk>, <&zs_clk>, <&m2_clk>, <&zs_clk>, <&p_clk>,
1342 <&zg_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>, <&p_clk>,
1343 <&p_clk>, <&rclk_clk>, <&cp_clk>, <&zs_clk>, <&zs_clk>,
1344 <&zs_clk>;
1345 #clock-cells = <1>;
1346 clock-indices = <
1347 R8A7791_CLK_VCP0 R8A7791_CLK_VPC0 R8A7791_CLK_JPU
1348 R8A7791_CLK_SSP1 R8A7791_CLK_TMU1 R8A7791_CLK_3DG
1349 R8A7791_CLK_2DDMAC R8A7791_CLK_FDP1_1 R8A7791_CLK_FDP1_0
1350 R8A7791_CLK_TMU3 R8A7791_CLK_TMU2 R8A7791_CLK_CMT0
1351 R8A7791_CLK_TMU0 R8A7791_CLK_VSP1_DU1 R8A7791_CLK_VSP1_DU0
1352 R8A7791_CLK_VSP1_S
1353 >;
1354 clock-output-names =
1355 "vcp0", "vpc0", "jpu", "ssp1", "tmu1", "3dg",
1356 "2ddmac", "fdp1-1", "fdp1-0", "tmu3", "tmu2", "cmt0",
1357 "tmu0", "vsp1-du1", "vsp1-du0", "vsp1-sy";
1358 };
1359 mstp2_clks: mstp2_clks@e6150138 {
1360 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
1361 reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>;
1362 clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>,
1363 <&mp_clk>, <&mp_clk>, <&mp_clk>,
1364 <&zs_clk>, <&zs_clk>;
1365 #clock-cells = <1>;
1366 clock-indices = <
1367 R8A7791_CLK_SCIFA2 R8A7791_CLK_SCIFA1 R8A7791_CLK_SCIFA0
1368 R8A7791_CLK_MSIOF2 R8A7791_CLK_SCIFB0 R8A7791_CLK_SCIFB1
1369 R8A7791_CLK_MSIOF1 R8A7791_CLK_SCIFB2
1370 R8A7791_CLK_SYS_DMAC1 R8A7791_CLK_SYS_DMAC0
1371 >;
1372 clock-output-names =
1373 "scifa2", "scifa1", "scifa0", "msiof2", "scifb0",
1374 "scifb1", "msiof1", "scifb2",
1375 "sys-dmac1", "sys-dmac0";
1376 };
1377 mstp3_clks: mstp3_clks@e615013c {
1378 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
1379 reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>;
1380 clocks = <&cp_clk>, <&sd3_clk>, <&sd2_clk>, <&cpg_clocks R8A7791_CLK_SD0>,
1381 <&mmc0_clk>, <&hp_clk>, <&mp_clk>, <&hp_clk>, <&mp_clk>, <&rclk_clk>,
1382 <&hp_clk>, <&hp_clk>;
1383 #clock-cells = <1>;
1384 clock-indices = <
1385 R8A7791_CLK_TPU0 R8A7791_CLK_SDHI2 R8A7791_CLK_SDHI1 R8A7791_CLK_SDHI0
1386 R8A7791_CLK_MMCIF0 R8A7791_CLK_IIC0 R8A7791_CLK_PCIEC R8A7791_CLK_IIC1
1387 R8A7791_CLK_SSUSB R8A7791_CLK_CMT1
1388 R8A7791_CLK_USBDMAC0 R8A7791_CLK_USBDMAC1
1389 >;
1390 clock-output-names =
1391 "tpu0", "sdhi2", "sdhi1", "sdhi0",
1392 "mmcif0", "i2c7", "pciec", "i2c8", "ssusb", "cmt1",
1393 "usbdmac0", "usbdmac1";
1394 };
1395 mstp4_clks: mstp4_clks@e6150140 {
1396 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
1397 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>;
1398 clocks = <&cp_clk>, <&zs_clk>;
1399 #clock-cells = <1>;
1400 clock-indices = <R8A7791_CLK_IRQC R8A7791_CLK_INTC_SYS>;
1401 clock-output-names = "irqc", "intc-sys";
1402 };
1403 mstp5_clks: mstp5_clks@e6150144 {
1404 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
1405 reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>;
1406 clocks = <&hp_clk>, <&hp_clk>, <&cpg_clocks R8A7791_CLK_ADSP>,
1407 <&extal_clk>, <&p_clk>;
1408 #clock-cells = <1>;
1409 clock-indices = <
1410 R8A7791_CLK_AUDIO_DMAC0 R8A7791_CLK_AUDIO_DMAC1
1411 R8A7791_CLK_ADSP_MOD R8A7791_CLK_THERMAL
1412 R8A7791_CLK_PWM
1413 >;
1414 clock-output-names = "audmac0", "audmac1", "adsp_mod",
1415 "thermal", "pwm";
1416 };
1417 mstp7_clks: mstp7_clks@e615014c {
1418 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
1419 reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>;
1420 clocks = <&mp_clk>, <&hp_clk>, <&zs_clk>, <&p_clk>, <&p_clk>, <&zs_clk>,
1421 <&zs_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>,
1422 <&zx_clk>, <&zx_clk>, <&zx_clk>;
1423 #clock-cells = <1>;
1424 clock-indices = <
1425 R8A7791_CLK_EHCI R8A7791_CLK_HSUSB R8A7791_CLK_HSCIF2 R8A7791_CLK_SCIF5
1426 R8A7791_CLK_SCIF4 R8A7791_CLK_HSCIF1 R8A7791_CLK_HSCIF0
1427 R8A7791_CLK_SCIF3 R8A7791_CLK_SCIF2 R8A7791_CLK_SCIF1
1428 R8A7791_CLK_SCIF0 R8A7791_CLK_DU1 R8A7791_CLK_DU0
1429 R8A7791_CLK_LVDS0
1430 >;
1431 clock-output-names =
1432 "ehci", "hsusb", "hscif2", "scif5", "scif4", "hscif1", "hscif0",
1433 "scif3", "scif2", "scif1", "scif0", "du1", "du0", "lvds0";
1434 };
1435 mstp8_clks: mstp8_clks@e6150990 {
1436 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
1437 reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>;
1438 clocks = <&zx_clk>, <&hp_clk>, <&zg_clk>, <&zg_clk>,
1439 <&zg_clk>, <&hp_clk>, <&p_clk>, <&zs_clk>,
1440 <&zs_clk>;
1441 #clock-cells = <1>;
1442 clock-indices = <
1443 R8A7791_CLK_IPMMU_SGX R8A7791_CLK_MLB
1444 R8A7791_CLK_VIN2 R8A7791_CLK_VIN1 R8A7791_CLK_VIN0
1445 R8A7791_CLK_ETHERAVB R8A7791_CLK_ETHER
1446 R8A7791_CLK_SATA1 R8A7791_CLK_SATA0
1447 >;
1448 clock-output-names =
1449 "ipmmu_sgx", "mlb", "vin2", "vin1", "vin0",
1450 "etheravb", "ether", "sata1", "sata0";
1451 };
1452 mstp9_clks: mstp9_clks@e6150994 {
1453 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
1454 reg = <0 0xe6150994 0 4>, <0 0xe61509a4 0 4>;
1455 clocks = <&p_clk>,
1456 <&cp_clk>, <&cp_clk>, <&cp_clk>, <&cp_clk>,
1457 <&cp_clk>, <&cp_clk>, <&cp_clk>, <&cp_clk>,
1458 <&p_clk>, <&p_clk>, <&cpg_clocks R8A7791_CLK_QSPI>, <&hp_clk>,
1459 <&cp_clk>, <&hp_clk>, <&hp_clk>, <&hp_clk>,
1460 <&hp_clk>, <&hp_clk>;
1461 #clock-cells = <1>;
1462 clock-indices = <
1463 R8A7791_CLK_GYROADC
1464 R8A7791_CLK_GPIO7 R8A7791_CLK_GPIO6 R8A7791_CLK_GPIO5 R8A7791_CLK_GPIO4
1465 R8A7791_CLK_GPIO3 R8A7791_CLK_GPIO2 R8A7791_CLK_GPIO1 R8A7791_CLK_GPIO0
1466 R8A7791_CLK_RCAN1 R8A7791_CLK_RCAN0 R8A7791_CLK_QSPI_MOD R8A7791_CLK_I2C5
1467 R8A7791_CLK_IICDVFS R8A7791_CLK_I2C4 R8A7791_CLK_I2C3 R8A7791_CLK_I2C2
1468 R8A7791_CLK_I2C1 R8A7791_CLK_I2C0
1469 >;
1470 clock-output-names =
1471 "gyroadc",
1472 "gpio7", "gpio6", "gpio5", "gpio4", "gpio3", "gpio2", "gpio1", "gpio0",
1473 "rcan1", "rcan0", "qspi_mod", "i2c5", "i2c6", "i2c4", "i2c3", "i2c2",
1474 "i2c1", "i2c0";
1475 };
1476 mstp10_clks: mstp10_clks@e6150998 {
1477 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
1478 reg = <0 0xe6150998 0 4>, <0 0xe61509a8 0 4>;
1479 clocks = <&p_clk>,
1480 <&mstp10_clks R8A7791_CLK_SSI_ALL>, <&mstp10_clks R8A7791_CLK_SSI_ALL>,
1481 <&mstp10_clks R8A7791_CLK_SSI_ALL>, <&mstp10_clks R8A7791_CLK_SSI_ALL>,
1482 <&mstp10_clks R8A7791_CLK_SSI_ALL>, <&mstp10_clks R8A7791_CLK_SSI_ALL>,
1483 <&mstp10_clks R8A7791_CLK_SSI_ALL>, <&mstp10_clks R8A7791_CLK_SSI_ALL>,
1484 <&mstp10_clks R8A7791_CLK_SSI_ALL>, <&mstp10_clks R8A7791_CLK_SSI_ALL>,
1485 <&p_clk>,
1486 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>,
1487 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>,
1488 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>,
1489 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>,
1490 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>,
1491 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>,
1492 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>;
1493
1494 #clock-cells = <1>;
1495 clock-indices = <
1496 R8A7791_CLK_SSI_ALL
1497 R8A7791_CLK_SSI9 R8A7791_CLK_SSI8 R8A7791_CLK_SSI7 R8A7791_CLK_SSI6 R8A7791_CLK_SSI5
1498 R8A7791_CLK_SSI4 R8A7791_CLK_SSI3 R8A7791_CLK_SSI2 R8A7791_CLK_SSI1 R8A7791_CLK_SSI0
1499 R8A7791_CLK_SCU_ALL
1500 R8A7791_CLK_SCU_DVC1 R8A7791_CLK_SCU_DVC0
1501 R8A7791_CLK_SCU_CTU1_MIX1 R8A7791_CLK_SCU_CTU0_MIX0
1502 R8A7791_CLK_SCU_SRC9 R8A7791_CLK_SCU_SRC8 R8A7791_CLK_SCU_SRC7 R8A7791_CLK_SCU_SRC6 R8A7791_CLK_SCU_SRC5
1503 R8A7791_CLK_SCU_SRC4 R8A7791_CLK_SCU_SRC3 R8A7791_CLK_SCU_SRC2 R8A7791_CLK_SCU_SRC1 R8A7791_CLK_SCU_SRC0
1504 >;
1505 clock-output-names =
1506 "ssi-all",
1507 "ssi9", "ssi8", "ssi7", "ssi6", "ssi5",
1508 "ssi4", "ssi3", "ssi2", "ssi1", "ssi0",
1509 "scu-all",
1510 "scu-dvc1", "scu-dvc0",
1511 "scu-ctu1-mix1", "scu-ctu0-mix0",
1512 "scu-src9", "scu-src8", "scu-src7", "scu-src6", "scu-src5",
1513 "scu-src4", "scu-src3", "scu-src2", "scu-src1", "scu-src0";
1514 };
1515 mstp11_clks: mstp11_clks@e615099c {
1516 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
1517 reg = <0 0xe615099c 0 4>, <0 0xe61509ac 0 4>;
1518 clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>;
1519 #clock-cells = <1>;
1520 clock-indices = <
1521 R8A7791_CLK_SCIFA3 R8A7791_CLK_SCIFA4 R8A7791_CLK_SCIFA5
1522 >;
1523 clock-output-names = "scifa3", "scifa4", "scifa5";
1524 };
1525 }; 1234 };
1526 1235
1527 rst: reset-controller@e6160000 { 1236 rst: reset-controller@e6160000 {
@@ -1544,11 +1253,12 @@
1544 compatible = "renesas,qspi-r8a7791", "renesas,qspi"; 1253 compatible = "renesas,qspi-r8a7791", "renesas,qspi";
1545 reg = <0 0xe6b10000 0 0x2c>; 1254 reg = <0 0xe6b10000 0 0x2c>;
1546 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 1255 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
1547 clocks = <&mstp9_clks R8A7791_CLK_QSPI_MOD>; 1256 clocks = <&cpg CPG_MOD 917>;
1548 dmas = <&dmac0 0x17>, <&dmac0 0x18>, 1257 dmas = <&dmac0 0x17>, <&dmac0 0x18>,
1549 <&dmac1 0x17>, <&dmac1 0x18>; 1258 <&dmac1 0x17>, <&dmac1 0x18>;
1550 dma-names = "tx", "rx", "tx", "rx"; 1259 dma-names = "tx", "rx", "tx", "rx";
1551 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1260 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1261 resets = <&cpg 917>;
1552 num-cs = <1>; 1262 num-cs = <1>;
1553 #address-cells = <1>; 1263 #address-cells = <1>;
1554 #size-cells = <0>; 1264 #size-cells = <0>;
@@ -1560,11 +1270,12 @@
1560 "renesas,rcar-gen2-msiof"; 1270 "renesas,rcar-gen2-msiof";
1561 reg = <0 0xe6e20000 0 0x0064>; 1271 reg = <0 0xe6e20000 0 0x0064>;
1562 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 1272 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
1563 clocks = <&mstp0_clks R8A7791_CLK_MSIOF0>; 1273 clocks = <&cpg CPG_MOD 000>;
1564 dmas = <&dmac0 0x51>, <&dmac0 0x52>, 1274 dmas = <&dmac0 0x51>, <&dmac0 0x52>,
1565 <&dmac1 0x51>, <&dmac1 0x52>; 1275 <&dmac1 0x51>, <&dmac1 0x52>;
1566 dma-names = "tx", "rx", "tx", "rx"; 1276 dma-names = "tx", "rx", "tx", "rx";
1567 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1277 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1278 resets = <&cpg 0>;
1568 #address-cells = <1>; 1279 #address-cells = <1>;
1569 #size-cells = <0>; 1280 #size-cells = <0>;
1570 status = "disabled"; 1281 status = "disabled";
@@ -1575,11 +1286,12 @@
1575 "renesas,rcar-gen2-msiof"; 1286 "renesas,rcar-gen2-msiof";
1576 reg = <0 0xe6e10000 0 0x0064>; 1287 reg = <0 0xe6e10000 0 0x0064>;
1577 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; 1288 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
1578 clocks = <&mstp2_clks R8A7791_CLK_MSIOF1>; 1289 clocks = <&cpg CPG_MOD 208>;
1579 dmas = <&dmac0 0x55>, <&dmac0 0x56>, 1290 dmas = <&dmac0 0x55>, <&dmac0 0x56>,
1580 <&dmac1 0x55>, <&dmac1 0x56>; 1291 <&dmac1 0x55>, <&dmac1 0x56>;
1581 dma-names = "tx", "rx", "tx", "rx"; 1292 dma-names = "tx", "rx", "tx", "rx";
1582 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1293 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1294 resets = <&cpg 208>;
1583 #address-cells = <1>; 1295 #address-cells = <1>;
1584 #size-cells = <0>; 1296 #size-cells = <0>;
1585 status = "disabled"; 1297 status = "disabled";
@@ -1590,11 +1302,12 @@
1590 "renesas,rcar-gen2-msiof"; 1302 "renesas,rcar-gen2-msiof";
1591 reg = <0 0xe6e00000 0 0x0064>; 1303 reg = <0 0xe6e00000 0 0x0064>;
1592 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 1304 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
1593 clocks = <&mstp2_clks R8A7791_CLK_MSIOF2>; 1305 clocks = <&cpg CPG_MOD 205>;
1594 dmas = <&dmac0 0x41>, <&dmac0 0x42>, 1306 dmas = <&dmac0 0x41>, <&dmac0 0x42>,
1595 <&dmac1 0x41>, <&dmac1 0x42>; 1307 <&dmac1 0x41>, <&dmac1 0x42>;
1596 dma-names = "tx", "rx", "tx", "rx"; 1308 dma-names = "tx", "rx", "tx", "rx";
1597 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1309 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1310 resets = <&cpg 205>;
1598 #address-cells = <1>; 1311 #address-cells = <1>;
1599 #size-cells = <0>; 1312 #size-cells = <0>;
1600 status = "disabled"; 1313 status = "disabled";
@@ -1604,8 +1317,9 @@
1604 compatible = "renesas,xhci-r8a7791", "renesas,rcar-gen2-xhci"; 1317 compatible = "renesas,xhci-r8a7791", "renesas,rcar-gen2-xhci";
1605 reg = <0 0xee000000 0 0xc00>; 1318 reg = <0 0xee000000 0 0xc00>;
1606 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 1319 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
1607 clocks = <&mstp3_clks R8A7791_CLK_SSUSB>; 1320 clocks = <&cpg CPG_MOD 328>;
1608 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1321 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1322 resets = <&cpg 328>;
1609 phys = <&usb2 1>; 1323 phys = <&usb2 1>;
1610 phy-names = "usb"; 1324 phy-names = "usb";
1611 status = "disabled"; 1325 status = "disabled";
@@ -1617,8 +1331,9 @@
1617 reg = <0 0xee090000 0 0xc00>, 1331 reg = <0 0xee090000 0 0xc00>,
1618 <0 0xee080000 0 0x1100>; 1332 <0 0xee080000 0 0x1100>;
1619 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 1333 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1620 clocks = <&mstp7_clks R8A7791_CLK_EHCI>; 1334 clocks = <&cpg CPG_MOD 703>;
1621 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1335 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1336 resets = <&cpg 703>;
1622 status = "disabled"; 1337 status = "disabled";
1623 1338
1624 bus-range = <0 0>; 1339 bus-range = <0 0>;
@@ -1650,8 +1365,9 @@
1650 reg = <0 0xee0d0000 0 0xc00>, 1365 reg = <0 0xee0d0000 0 0xc00>,
1651 <0 0xee0c0000 0 0x1100>; 1366 <0 0xee0c0000 0 0x1100>;
1652 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; 1367 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
1653 clocks = <&mstp7_clks R8A7791_CLK_EHCI>; 1368 clocks = <&cpg CPG_MOD 703>;
1654 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1369 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1370 resets = <&cpg 703>;
1655 status = "disabled"; 1371 status = "disabled";
1656 1372
1657 bus-range = <1 1>; 1373 bus-range = <1 1>;
@@ -1697,9 +1413,10 @@
1697 #interrupt-cells = <1>; 1413 #interrupt-cells = <1>;
1698 interrupt-map-mask = <0 0 0 0>; 1414 interrupt-map-mask = <0 0 0 0>;
1699 interrupt-map = <0 0 0 0 &gic GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; 1415 interrupt-map = <0 0 0 0 &gic GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
1700 clocks = <&mstp3_clks R8A7791_CLK_PCIEC>, <&pcie_bus_clk>; 1416 clocks = <&cpg CPG_MOD 319>, <&pcie_bus_clk>;
1701 clock-names = "pcie", "pcie_bus"; 1417 clock-names = "pcie", "pcie_bus";
1702 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1418 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1419 resets = <&cpg 319>;
1703 status = "disabled"; 1420 status = "disabled";
1704 }; 1421 };
1705 1422
@@ -1778,21 +1495,22 @@
1778 <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ 1495 <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/
1779 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; 1496 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
1780 1497
1781 clocks = <&mstp10_clks R8A7791_CLK_SSI_ALL>, 1498 clocks = <&cpg CPG_MOD 1005>,
1782 <&mstp10_clks R8A7791_CLK_SSI9>, <&mstp10_clks R8A7791_CLK_SSI8>, 1499 <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>,
1783 <&mstp10_clks R8A7791_CLK_SSI7>, <&mstp10_clks R8A7791_CLK_SSI6>, 1500 <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>,
1784 <&mstp10_clks R8A7791_CLK_SSI5>, <&mstp10_clks R8A7791_CLK_SSI4>, 1501 <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>,
1785 <&mstp10_clks R8A7791_CLK_SSI3>, <&mstp10_clks R8A7791_CLK_SSI2>, 1502 <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>,
1786 <&mstp10_clks R8A7791_CLK_SSI1>, <&mstp10_clks R8A7791_CLK_SSI0>, 1503 <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>,
1787 <&mstp10_clks R8A7791_CLK_SCU_SRC9>, <&mstp10_clks R8A7791_CLK_SCU_SRC8>, 1504 <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>,
1788 <&mstp10_clks R8A7791_CLK_SCU_SRC7>, <&mstp10_clks R8A7791_CLK_SCU_SRC6>, 1505 <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>,
1789 <&mstp10_clks R8A7791_CLK_SCU_SRC5>, <&mstp10_clks R8A7791_CLK_SCU_SRC4>, 1506 <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>,
1790 <&mstp10_clks R8A7791_CLK_SCU_SRC3>, <&mstp10_clks R8A7791_CLK_SCU_SRC2>, 1507 <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>,
1791 <&mstp10_clks R8A7791_CLK_SCU_SRC1>, <&mstp10_clks R8A7791_CLK_SCU_SRC0>, 1508 <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>,
1792 <&mstp10_clks R8A7791_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7791_CLK_SCU_CTU1_MIX1>, 1509 <&cpg CPG_MOD 1021>, <&cpg CPG_MOD 1020>,
1793 <&mstp10_clks R8A7791_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7791_CLK_SCU_CTU1_MIX1>, 1510 <&cpg CPG_MOD 1021>, <&cpg CPG_MOD 1020>,
1794 <&mstp10_clks R8A7791_CLK_SCU_DVC0>, <&mstp10_clks R8A7791_CLK_SCU_DVC1>, 1511 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>,
1795 <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>; 1512 <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>,
1513 <&cpg CPG_CORE R8A7791_CLK_M2>;
1796 clock-names = "ssi-all", 1514 clock-names = "ssi-all",
1797 "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", 1515 "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
1798 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0", 1516 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0",
@@ -1803,6 +1521,13 @@
1803 "dvc.0", "dvc.1", 1521 "dvc.0", "dvc.1",
1804 "clk_a", "clk_b", "clk_c", "clk_i"; 1522 "clk_a", "clk_b", "clk_c", "clk_i";
1805 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1523 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1524 resets = <&cpg 1005>,
1525 <&cpg 1006>, <&cpg 1007>, <&cpg 1008>, <&cpg 1009>,
1526 <&cpg 1010>, <&cpg 1011>, <&cpg 1012>, <&cpg 1013>,
1527 <&cpg 1014>, <&cpg 1015>;
1528 reset-names = "ssi-all",
1529 "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
1530 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0";
1806 1531
1807 status = "disabled"; 1532 status = "disabled";
1808 1533
diff --git a/arch/arm/boot/dts/r8a7792-blanche.dts b/arch/arm/boot/dts/r8a7792-blanche.dts
index f3ea43b7b724..9b67dca6c9ef 100644
--- a/arch/arm/boot/dts/r8a7792-blanche.dts
+++ b/arch/arm/boot/dts/r8a7792-blanche.dts
@@ -310,8 +310,7 @@
310 pinctrl-0 = <&du0_pins &du1_pins>; 310 pinctrl-0 = <&du0_pins &du1_pins>;
311 pinctrl-names = "default"; 311 pinctrl-names = "default";
312 312
313 clocks = <&mstp7_clks R8A7792_CLK_DU0>, <&mstp7_clks R8A7792_CLK_DU1>, 313 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&x1_clk>, <&x2_clk>;
314 <&x1_clk>, <&x2_clk>;
315 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1"; 314 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
316 status = "okay"; 315 status = "okay";
317 316
diff --git a/arch/arm/boot/dts/r8a7792-wheat.dts b/arch/arm/boot/dts/r8a7792-wheat.dts
index c24f26fdab1f..b9471b67b728 100644
--- a/arch/arm/boot/dts/r8a7792-wheat.dts
+++ b/arch/arm/boot/dts/r8a7792-wheat.dts
@@ -305,8 +305,7 @@
305 pinctrl-0 = <&du0_pins &du1_pins>; 305 pinctrl-0 = <&du0_pins &du1_pins>;
306 pinctrl-names = "default"; 306 pinctrl-names = "default";
307 307
308 clocks = <&mstp7_clks R8A7792_CLK_DU0>, <&mstp7_clks R8A7792_CLK_DU1>, 308 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&osc2_clk>;
309 <&osc2_clk>;
310 clock-names = "du.0", "du.1", "dclkin.0"; 309 clock-names = "du.0", "du.1", "dclkin.0";
311 status = "okay"; 310 status = "okay";
312 311
diff --git a/arch/arm/boot/dts/r8a7792.dtsi b/arch/arm/boot/dts/r8a7792.dtsi
index 2623f39bed2b..131f65b0426e 100644
--- a/arch/arm/boot/dts/r8a7792.dtsi
+++ b/arch/arm/boot/dts/r8a7792.dtsi
@@ -8,7 +8,7 @@
8 * kind, whether express or implied. 8 * kind, whether express or implied.
9 */ 9 */
10 10
11#include <dt-bindings/clock/r8a7792-clock.h> 11#include <dt-bindings/clock/r8a7792-cpg-mssr.h>
12#include <dt-bindings/interrupt-controller/irq.h> 12#include <dt-bindings/interrupt-controller/irq.h>
13#include <dt-bindings/interrupt-controller/arm-gic.h> 13#include <dt-bindings/interrupt-controller/arm-gic.h>
14#include <dt-bindings/power/r8a7792-sysc.h> 14#include <dt-bindings/power/r8a7792-sysc.h>
@@ -46,7 +46,7 @@
46 compatible = "arm,cortex-a15"; 46 compatible = "arm,cortex-a15";
47 reg = <0>; 47 reg = <0>;
48 clock-frequency = <1000000000>; 48 clock-frequency = <1000000000>;
49 clocks = <&z_clk>; 49 clocks = <&cpg CPG_CORE R8A7792_CLK_Z>;
50 power-domains = <&sysc R8A7792_PD_CA15_CPU0>; 50 power-domains = <&sysc R8A7792_PD_CA15_CPU0>;
51 next-level-cache = <&L2_CA15>; 51 next-level-cache = <&L2_CA15>;
52 }; 52 };
@@ -56,6 +56,7 @@
56 compatible = "arm,cortex-a15"; 56 compatible = "arm,cortex-a15";
57 reg = <1>; 57 reg = <1>;
58 clock-frequency = <1000000000>; 58 clock-frequency = <1000000000>;
59 clocks = <&cpg CPG_CORE R8A7792_CLK_Z>;
59 power-domains = <&sysc R8A7792_PD_CA15_CPU1>; 60 power-domains = <&sysc R8A7792_PD_CA15_CPU1>;
60 next-level-cache = <&L2_CA15>; 61 next-level-cache = <&L2_CA15>;
61 }; 62 };
@@ -92,9 +93,10 @@
92 <0 0xf1006000 0 0x2000>; 93 <0 0xf1006000 0 0x2000>;
93 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | 94 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) |
94 IRQ_TYPE_LEVEL_HIGH)>; 95 IRQ_TYPE_LEVEL_HIGH)>;
95 clocks = <&mstp4_clks R8A7792_CLK_INTC_SYS>; 96 clocks = <&cpg CPG_MOD 408>;
96 clock-names = "clk"; 97 clock-names = "clk";
97 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 98 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
99 resets = <&cpg 408>;
98 }; 100 };
99 101
100 irqc: interrupt-controller@e61c0000 { 102 irqc: interrupt-controller@e61c0000 {
@@ -106,8 +108,9 @@
106 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, 108 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
107 <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, 109 <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
108 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 110 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
109 clocks = <&mstp4_clks R8A7792_CLK_IRQC>; 111 clocks = <&cpg CPG_MOD 407>;
110 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 112 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
113 resets = <&cpg 407>;
111 }; 114 };
112 115
113 timer { 116 timer {
@@ -145,7 +148,7 @@
145 148
146 gpio0: gpio@e6050000 { 149 gpio0: gpio@e6050000 {
147 compatible = "renesas,gpio-r8a7792", 150 compatible = "renesas,gpio-r8a7792",
148 "renesas,gpio-rcar"; 151 "renesas,rcar-gen2-gpio";
149 reg = <0 0xe6050000 0 0x50>; 152 reg = <0 0xe6050000 0 0x50>;
150 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 153 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
151 #gpio-cells = <2>; 154 #gpio-cells = <2>;
@@ -153,13 +156,14 @@
153 gpio-ranges = <&pfc 0 0 29>; 156 gpio-ranges = <&pfc 0 0 29>;
154 #interrupt-cells = <2>; 157 #interrupt-cells = <2>;
155 interrupt-controller; 158 interrupt-controller;
156 clocks = <&mstp9_clks R8A7792_CLK_GPIO0>; 159 clocks = <&cpg CPG_MOD 912>;
157 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 160 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
161 resets = <&cpg 912>;
158 }; 162 };
159 163
160 gpio1: gpio@e6051000 { 164 gpio1: gpio@e6051000 {
161 compatible = "renesas,gpio-r8a7792", 165 compatible = "renesas,gpio-r8a7792",
162 "renesas,gpio-rcar"; 166 "renesas,rcar-gen2-gpio";
163 reg = <0 0xe6051000 0 0x50>; 167 reg = <0 0xe6051000 0 0x50>;
164 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 168 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
165 #gpio-cells = <2>; 169 #gpio-cells = <2>;
@@ -167,13 +171,14 @@
167 gpio-ranges = <&pfc 0 32 23>; 171 gpio-ranges = <&pfc 0 32 23>;
168 #interrupt-cells = <2>; 172 #interrupt-cells = <2>;
169 interrupt-controller; 173 interrupt-controller;
170 clocks = <&mstp9_clks R8A7792_CLK_GPIO1>; 174 clocks = <&cpg CPG_MOD 911>;
171 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 175 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
176 resets = <&cpg 911>;
172 }; 177 };
173 178
174 gpio2: gpio@e6052000 { 179 gpio2: gpio@e6052000 {
175 compatible = "renesas,gpio-r8a7792", 180 compatible = "renesas,gpio-r8a7792",
176 "renesas,gpio-rcar"; 181 "renesas,rcar-gen2-gpio";
177 reg = <0 0xe6052000 0 0x50>; 182 reg = <0 0xe6052000 0 0x50>;
178 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 183 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
179 #gpio-cells = <2>; 184 #gpio-cells = <2>;
@@ -181,13 +186,14 @@
181 gpio-ranges = <&pfc 0 64 32>; 186 gpio-ranges = <&pfc 0 64 32>;
182 #interrupt-cells = <2>; 187 #interrupt-cells = <2>;
183 interrupt-controller; 188 interrupt-controller;
184 clocks = <&mstp9_clks R8A7792_CLK_GPIO2>; 189 clocks = <&cpg CPG_MOD 910>;
185 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 190 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
191 resets = <&cpg 910>;
186 }; 192 };
187 193
188 gpio3: gpio@e6053000 { 194 gpio3: gpio@e6053000 {
189 compatible = "renesas,gpio-r8a7792", 195 compatible = "renesas,gpio-r8a7792",
190 "renesas,gpio-rcar"; 196 "renesas,rcar-gen2-gpio";
191 reg = <0 0xe6053000 0 0x50>; 197 reg = <0 0xe6053000 0 0x50>;
192 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 198 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
193 #gpio-cells = <2>; 199 #gpio-cells = <2>;
@@ -195,13 +201,14 @@
195 gpio-ranges = <&pfc 0 96 28>; 201 gpio-ranges = <&pfc 0 96 28>;
196 #interrupt-cells = <2>; 202 #interrupt-cells = <2>;
197 interrupt-controller; 203 interrupt-controller;
198 clocks = <&mstp9_clks R8A7792_CLK_GPIO3>; 204 clocks = <&cpg CPG_MOD 909>;
199 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 205 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
206 resets = <&cpg 909>;
200 }; 207 };
201 208
202 gpio4: gpio@e6054000 { 209 gpio4: gpio@e6054000 {
203 compatible = "renesas,gpio-r8a7792", 210 compatible = "renesas,gpio-r8a7792",
204 "renesas,gpio-rcar"; 211 "renesas,rcar-gen2-gpio";
205 reg = <0 0xe6054000 0 0x50>; 212 reg = <0 0xe6054000 0 0x50>;
206 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 213 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
207 #gpio-cells = <2>; 214 #gpio-cells = <2>;
@@ -209,13 +216,14 @@
209 gpio-ranges = <&pfc 0 128 17>; 216 gpio-ranges = <&pfc 0 128 17>;
210 #interrupt-cells = <2>; 217 #interrupt-cells = <2>;
211 interrupt-controller; 218 interrupt-controller;
212 clocks = <&mstp9_clks R8A7792_CLK_GPIO4>; 219 clocks = <&cpg CPG_MOD 908>;
213 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 220 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
221 resets = <&cpg 908>;
214 }; 222 };
215 223
216 gpio5: gpio@e6055000 { 224 gpio5: gpio@e6055000 {
217 compatible = "renesas,gpio-r8a7792", 225 compatible = "renesas,gpio-r8a7792",
218 "renesas,gpio-rcar"; 226 "renesas,rcar-gen2-gpio";
219 reg = <0 0xe6055000 0 0x50>; 227 reg = <0 0xe6055000 0 0x50>;
220 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 228 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
221 #gpio-cells = <2>; 229 #gpio-cells = <2>;
@@ -223,13 +231,14 @@
223 gpio-ranges = <&pfc 0 160 17>; 231 gpio-ranges = <&pfc 0 160 17>;
224 #interrupt-cells = <2>; 232 #interrupt-cells = <2>;
225 interrupt-controller; 233 interrupt-controller;
226 clocks = <&mstp9_clks R8A7792_CLK_GPIO5>; 234 clocks = <&cpg CPG_MOD 907>;
227 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 235 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
236 resets = <&cpg 907>;
228 }; 237 };
229 238
230 gpio6: gpio@e6055100 { 239 gpio6: gpio@e6055100 {
231 compatible = "renesas,gpio-r8a7792", 240 compatible = "renesas,gpio-r8a7792",
232 "renesas,gpio-rcar"; 241 "renesas,rcar-gen2-gpio";
233 reg = <0 0xe6055100 0 0x50>; 242 reg = <0 0xe6055100 0 0x50>;
234 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 243 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
235 #gpio-cells = <2>; 244 #gpio-cells = <2>;
@@ -237,13 +246,14 @@
237 gpio-ranges = <&pfc 0 192 17>; 246 gpio-ranges = <&pfc 0 192 17>;
238 #interrupt-cells = <2>; 247 #interrupt-cells = <2>;
239 interrupt-controller; 248 interrupt-controller;
240 clocks = <&mstp9_clks R8A7792_CLK_GPIO6>; 249 clocks = <&cpg CPG_MOD 905>;
241 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 250 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
251 resets = <&cpg 905>;
242 }; 252 };
243 253
244 gpio7: gpio@e6055200 { 254 gpio7: gpio@e6055200 {
245 compatible = "renesas,gpio-r8a7792", 255 compatible = "renesas,gpio-r8a7792",
246 "renesas,gpio-rcar"; 256 "renesas,rcar-gen2-gpio";
247 reg = <0 0xe6055200 0 0x50>; 257 reg = <0 0xe6055200 0 0x50>;
248 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 258 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
249 #gpio-cells = <2>; 259 #gpio-cells = <2>;
@@ -251,13 +261,14 @@
251 gpio-ranges = <&pfc 0 224 17>; 261 gpio-ranges = <&pfc 0 224 17>;
252 #interrupt-cells = <2>; 262 #interrupt-cells = <2>;
253 interrupt-controller; 263 interrupt-controller;
254 clocks = <&mstp9_clks R8A7792_CLK_GPIO7>; 264 clocks = <&cpg CPG_MOD 904>;
255 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 265 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
266 resets = <&cpg 904>;
256 }; 267 };
257 268
258 gpio8: gpio@e6055300 { 269 gpio8: gpio@e6055300 {
259 compatible = "renesas,gpio-r8a7792", 270 compatible = "renesas,gpio-r8a7792",
260 "renesas,gpio-rcar"; 271 "renesas,rcar-gen2-gpio";
261 reg = <0 0xe6055300 0 0x50>; 272 reg = <0 0xe6055300 0 0x50>;
262 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 273 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
263 #gpio-cells = <2>; 274 #gpio-cells = <2>;
@@ -265,13 +276,14 @@
265 gpio-ranges = <&pfc 0 256 17>; 276 gpio-ranges = <&pfc 0 256 17>;
266 #interrupt-cells = <2>; 277 #interrupt-cells = <2>;
267 interrupt-controller; 278 interrupt-controller;
268 clocks = <&mstp9_clks R8A7792_CLK_GPIO8>; 279 clocks = <&cpg CPG_MOD 921>;
269 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 280 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
281 resets = <&cpg 921>;
270 }; 282 };
271 283
272 gpio9: gpio@e6055400 { 284 gpio9: gpio@e6055400 {
273 compatible = "renesas,gpio-r8a7792", 285 compatible = "renesas,gpio-r8a7792",
274 "renesas,gpio-rcar"; 286 "renesas,rcar-gen2-gpio";
275 reg = <0 0xe6055400 0 0x50>; 287 reg = <0 0xe6055400 0 0x50>;
276 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 288 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
277 #gpio-cells = <2>; 289 #gpio-cells = <2>;
@@ -279,13 +291,14 @@
279 gpio-ranges = <&pfc 0 288 17>; 291 gpio-ranges = <&pfc 0 288 17>;
280 #interrupt-cells = <2>; 292 #interrupt-cells = <2>;
281 interrupt-controller; 293 interrupt-controller;
282 clocks = <&mstp9_clks R8A7792_CLK_GPIO9>; 294 clocks = <&cpg CPG_MOD 919>;
283 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 295 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
296 resets = <&cpg 919>;
284 }; 297 };
285 298
286 gpio10: gpio@e6055500 { 299 gpio10: gpio@e6055500 {
287 compatible = "renesas,gpio-r8a7792", 300 compatible = "renesas,gpio-r8a7792",
288 "renesas,gpio-rcar"; 301 "renesas,rcar-gen2-gpio";
289 reg = <0 0xe6055500 0 0x50>; 302 reg = <0 0xe6055500 0 0x50>;
290 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 303 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
291 #gpio-cells = <2>; 304 #gpio-cells = <2>;
@@ -293,13 +306,14 @@
293 gpio-ranges = <&pfc 0 320 32>; 306 gpio-ranges = <&pfc 0 320 32>;
294 #interrupt-cells = <2>; 307 #interrupt-cells = <2>;
295 interrupt-controller; 308 interrupt-controller;
296 clocks = <&mstp9_clks R8A7792_CLK_GPIO10>; 309 clocks = <&cpg CPG_MOD 914>;
297 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 310 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
311 resets = <&cpg 914>;
298 }; 312 };
299 313
300 gpio11: gpio@e6055600 { 314 gpio11: gpio@e6055600 {
301 compatible = "renesas,gpio-r8a7792", 315 compatible = "renesas,gpio-r8a7792",
302 "renesas,gpio-rcar"; 316 "renesas,rcar-gen2-gpio";
303 reg = <0 0xe6055600 0 0x50>; 317 reg = <0 0xe6055600 0 0x50>;
304 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 318 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
305 #gpio-cells = <2>; 319 #gpio-cells = <2>;
@@ -307,8 +321,9 @@
307 gpio-ranges = <&pfc 0 352 30>; 321 gpio-ranges = <&pfc 0 352 30>;
308 #interrupt-cells = <2>; 322 #interrupt-cells = <2>;
309 interrupt-controller; 323 interrupt-controller;
310 clocks = <&mstp9_clks R8A7792_CLK_GPIO11>; 324 clocks = <&cpg CPG_MOD 913>;
311 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 325 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
326 resets = <&cpg 913>;
312 }; 327 };
313 328
314 dmac0: dma-controller@e6700000 { 329 dmac0: dma-controller@e6700000 {
@@ -336,9 +351,10 @@
336 "ch4", "ch5", "ch6", "ch7", 351 "ch4", "ch5", "ch6", "ch7",
337 "ch8", "ch9", "ch10", "ch11", 352 "ch8", "ch9", "ch10", "ch11",
338 "ch12", "ch13", "ch14"; 353 "ch12", "ch13", "ch14";
339 clocks = <&mstp2_clks R8A7792_CLK_SYS_DMAC0>; 354 clocks = <&cpg CPG_MOD 219>;
340 clock-names = "fck"; 355 clock-names = "fck";
341 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 356 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
357 resets = <&cpg 219>;
342 #dma-cells = <1>; 358 #dma-cells = <1>;
343 dma-channels = <15>; 359 dma-channels = <15>;
344 }; 360 };
@@ -368,9 +384,10 @@
368 "ch4", "ch5", "ch6", "ch7", 384 "ch4", "ch5", "ch6", "ch7",
369 "ch8", "ch9", "ch10", "ch11", 385 "ch8", "ch9", "ch10", "ch11",
370 "ch12", "ch13", "ch14"; 386 "ch12", "ch13", "ch14";
371 clocks = <&mstp2_clks R8A7792_CLK_SYS_DMAC1>; 387 clocks = <&cpg CPG_MOD 218>;
372 clock-names = "fck"; 388 clock-names = "fck";
373 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 389 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
390 resets = <&cpg 218>;
374 #dma-cells = <1>; 391 #dma-cells = <1>;
375 dma-channels = <15>; 392 dma-channels = <15>;
376 }; 393 };
@@ -380,13 +397,14 @@
380 "renesas,rcar-gen2-scif", "renesas,scif"; 397 "renesas,rcar-gen2-scif", "renesas,scif";
381 reg = <0 0xe6e60000 0 64>; 398 reg = <0 0xe6e60000 0 64>;
382 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; 399 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
383 clocks = <&mstp7_clks R8A7792_CLK_SCIF0>, <&zs_clk>, 400 clocks = <&cpg CPG_MOD 721>,
384 <&scif_clk>; 401 <&cpg CPG_CORE R8A7792_CLK_ZS>, <&scif_clk>;
385 clock-names = "fck", "brg_int", "scif_clk"; 402 clock-names = "fck", "brg_int", "scif_clk";
386 dmas = <&dmac0 0x29>, <&dmac0 0x2a>, 403 dmas = <&dmac0 0x29>, <&dmac0 0x2a>,
387 <&dmac1 0x29>, <&dmac1 0x2a>; 404 <&dmac1 0x29>, <&dmac1 0x2a>;
388 dma-names = "tx", "rx", "tx", "rx"; 405 dma-names = "tx", "rx", "tx", "rx";
389 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 406 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
407 resets = <&cpg 721>;
390 status = "disabled"; 408 status = "disabled";
391 }; 409 };
392 410
@@ -395,13 +413,14 @@
395 "renesas,rcar-gen2-scif", "renesas,scif"; 413 "renesas,rcar-gen2-scif", "renesas,scif";
396 reg = <0 0xe6e68000 0 64>; 414 reg = <0 0xe6e68000 0 64>;
397 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; 415 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
398 clocks = <&mstp7_clks R8A7792_CLK_SCIF1>, <&zs_clk>, 416 clocks = <&cpg CPG_MOD 720>,
399 <&scif_clk>; 417 <&cpg CPG_CORE R8A7792_CLK_ZS>, <&scif_clk>;
400 clock-names = "fck", "brg_int", "scif_clk"; 418 clock-names = "fck", "brg_int", "scif_clk";
401 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>, 419 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>,
402 <&dmac1 0x2d>, <&dmac1 0x2e>; 420 <&dmac1 0x2d>, <&dmac1 0x2e>;
403 dma-names = "tx", "rx", "tx", "rx"; 421 dma-names = "tx", "rx", "tx", "rx";
404 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 422 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
423 resets = <&cpg 720>;
405 status = "disabled"; 424 status = "disabled";
406 }; 425 };
407 426
@@ -410,13 +429,14 @@
410 "renesas,rcar-gen2-scif", "renesas,scif"; 429 "renesas,rcar-gen2-scif", "renesas,scif";
411 reg = <0 0xe6e58000 0 64>; 430 reg = <0 0xe6e58000 0 64>;
412 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 431 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
413 clocks = <&mstp7_clks R8A7792_CLK_SCIF2>, <&zs_clk>, 432 clocks = <&cpg CPG_MOD 719>,
414 <&scif_clk>; 433 <&cpg CPG_CORE R8A7792_CLK_ZS>, <&scif_clk>;
415 clock-names = "fck", "brg_int", "scif_clk"; 434 clock-names = "fck", "brg_int", "scif_clk";
416 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>, 435 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>,
417 <&dmac1 0x2b>, <&dmac1 0x2c>; 436 <&dmac1 0x2b>, <&dmac1 0x2c>;
418 dma-names = "tx", "rx", "tx", "rx"; 437 dma-names = "tx", "rx", "tx", "rx";
419 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 438 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
439 resets = <&cpg 719>;
420 status = "disabled"; 440 status = "disabled";
421 }; 441 };
422 442
@@ -425,13 +445,14 @@
425 "renesas,rcar-gen2-scif", "renesas,scif"; 445 "renesas,rcar-gen2-scif", "renesas,scif";
426 reg = <0 0xe6ea8000 0 64>; 446 reg = <0 0xe6ea8000 0 64>;
427 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 447 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
428 clocks = <&mstp7_clks R8A7792_CLK_SCIF3>, <&zs_clk>, 448 clocks = <&cpg CPG_MOD 718>,
429 <&scif_clk>; 449 <&cpg CPG_CORE R8A7792_CLK_ZS>, <&scif_clk>;
430 clock-names = "fck", "brg_int", "scif_clk"; 450 clock-names = "fck", "brg_int", "scif_clk";
431 dmas = <&dmac0 0x2f>, <&dmac0 0x30>, 451 dmas = <&dmac0 0x2f>, <&dmac0 0x30>,
432 <&dmac1 0x2f>, <&dmac1 0x30>; 452 <&dmac1 0x2f>, <&dmac1 0x30>;
433 dma-names = "tx", "rx", "tx", "rx"; 453 dma-names = "tx", "rx", "tx", "rx";
434 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 454 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
455 resets = <&cpg 718>;
435 status = "disabled"; 456 status = "disabled";
436 }; 457 };
437 458
@@ -440,13 +461,14 @@
440 "renesas,rcar-gen2-hscif", "renesas,hscif"; 461 "renesas,rcar-gen2-hscif", "renesas,hscif";
441 reg = <0 0xe62c0000 0 96>; 462 reg = <0 0xe62c0000 0 96>;
442 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 463 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
443 clocks = <&mstp7_clks R8A7792_CLK_HSCIF0>, <&zs_clk>, 464 clocks = <&cpg CPG_MOD 717>,
444 <&scif_clk>; 465 <&cpg CPG_CORE R8A7792_CLK_ZS>, <&scif_clk>;
445 clock-names = "fck", "brg_int", "scif_clk"; 466 clock-names = "fck", "brg_int", "scif_clk";
446 dmas = <&dmac0 0x39>, <&dmac0 0x3a>, 467 dmas = <&dmac0 0x39>, <&dmac0 0x3a>,
447 <&dmac1 0x39>, <&dmac1 0x3a>; 468 <&dmac1 0x39>, <&dmac1 0x3a>;
448 dma-names = "tx", "rx", "tx", "rx"; 469 dma-names = "tx", "rx", "tx", "rx";
449 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 470 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
471 resets = <&cpg 717>;
450 status = "disabled"; 472 status = "disabled";
451 }; 473 };
452 474
@@ -455,13 +477,14 @@
455 "renesas,rcar-gen2-hscif", "renesas,hscif"; 477 "renesas,rcar-gen2-hscif", "renesas,hscif";
456 reg = <0 0xe62c8000 0 96>; 478 reg = <0 0xe62c8000 0 96>;
457 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; 479 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
458 clocks = <&mstp7_clks R8A7792_CLK_HSCIF1>, <&zs_clk>, 480 clocks = <&cpg CPG_MOD 716>,
459 <&scif_clk>; 481 <&cpg CPG_CORE R8A7792_CLK_ZS>, <&scif_clk>;
460 clock-names = "fck", "brg_int", "scif_clk"; 482 clock-names = "fck", "brg_int", "scif_clk";
461 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>, 483 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>,
462 <&dmac1 0x4d>, <&dmac1 0x4e>; 484 <&dmac1 0x4d>, <&dmac1 0x4e>;
463 dma-names = "tx", "rx", "tx", "rx"; 485 dma-names = "tx", "rx", "tx", "rx";
464 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 486 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
487 resets = <&cpg 716>;
465 status = "disabled"; 488 status = "disabled";
466 }; 489 };
467 490
@@ -490,8 +513,9 @@
490 dmas = <&dmac0 0xcd>, <&dmac0 0xce>, 513 dmas = <&dmac0 0xcd>, <&dmac0 0xce>,
491 <&dmac1 0xcd>, <&dmac1 0xce>; 514 <&dmac1 0xcd>, <&dmac1 0xce>;
492 dma-names = "tx", "rx", "tx", "rx"; 515 dma-names = "tx", "rx", "tx", "rx";
493 clocks = <&mstp3_clks R8A7792_CLK_SDHI0>; 516 clocks = <&cpg CPG_MOD 314>;
494 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 517 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
518 resets = <&cpg 314>;
495 status = "disabled"; 519 status = "disabled";
496 }; 520 };
497 521
@@ -500,8 +524,9 @@
500 "renesas,rcar-gen2-jpu"; 524 "renesas,rcar-gen2-jpu";
501 reg = <0 0xfe980000 0 0x10300>; 525 reg = <0 0xfe980000 0 0x10300>;
502 interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>; 526 interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
503 clocks = <&mstp1_clks R8A7792_CLK_JPU>; 527 clocks = <&cpg CPG_MOD 106>;
504 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 528 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
529 resets = <&cpg 106>;
505 }; 530 };
506 531
507 avb: ethernet@e6800000 { 532 avb: ethernet@e6800000 {
@@ -509,8 +534,9 @@
509 "renesas,etheravb-rcar-gen2"; 534 "renesas,etheravb-rcar-gen2";
510 reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>; 535 reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>;
511 interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>; 536 interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
512 clocks = <&mstp8_clks R8A7792_CLK_ETHERAVB>; 537 clocks = <&cpg CPG_MOD 812>;
513 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 538 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
539 resets = <&cpg 812>;
514 #address-cells = <1>; 540 #address-cells = <1>;
515 #size-cells = <0>; 541 #size-cells = <0>;
516 status = "disabled"; 542 status = "disabled";
@@ -522,8 +548,9 @@
522 "renesas,rcar-gen2-i2c"; 548 "renesas,rcar-gen2-i2c";
523 reg = <0 0xe6508000 0 0x40>; 549 reg = <0 0xe6508000 0 0x40>;
524 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 550 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
525 clocks = <&mstp9_clks R8A7792_CLK_I2C0>; 551 clocks = <&cpg CPG_MOD 931>;
526 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 552 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
553 resets = <&cpg 931>;
527 i2c-scl-internal-delay-ns = <6>; 554 i2c-scl-internal-delay-ns = <6>;
528 #address-cells = <1>; 555 #address-cells = <1>;
529 #size-cells = <0>; 556 #size-cells = <0>;
@@ -535,8 +562,9 @@
535 "renesas,rcar-gen2-i2c"; 562 "renesas,rcar-gen2-i2c";
536 reg = <0 0xe6518000 0 0x40>; 563 reg = <0 0xe6518000 0 0x40>;
537 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; 564 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
538 clocks = <&mstp9_clks R8A7792_CLK_I2C1>; 565 clocks = <&cpg CPG_MOD 930>;
539 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 566 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
567 resets = <&cpg 930>;
540 i2c-scl-internal-delay-ns = <6>; 568 i2c-scl-internal-delay-ns = <6>;
541 #address-cells = <1>; 569 #address-cells = <1>;
542 #size-cells = <0>; 570 #size-cells = <0>;
@@ -548,8 +576,9 @@
548 "renesas,rcar-gen2-i2c"; 576 "renesas,rcar-gen2-i2c";
549 reg = <0 0xe6530000 0 0x40>; 577 reg = <0 0xe6530000 0 0x40>;
550 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; 578 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
551 clocks = <&mstp9_clks R8A7792_CLK_I2C2>; 579 clocks = <&cpg CPG_MOD 929>;
552 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 580 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
581 resets = <&cpg 929>;
553 i2c-scl-internal-delay-ns = <6>; 582 i2c-scl-internal-delay-ns = <6>;
554 #address-cells = <1>; 583 #address-cells = <1>;
555 #size-cells = <0>; 584 #size-cells = <0>;
@@ -561,8 +590,9 @@
561 "renesas,rcar-gen2-i2c"; 590 "renesas,rcar-gen2-i2c";
562 reg = <0 0xe6540000 0 0x40>; 591 reg = <0 0xe6540000 0 0x40>;
563 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; 592 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
564 clocks = <&mstp9_clks R8A7792_CLK_I2C3>; 593 clocks = <&cpg CPG_MOD 928>;
565 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 594 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
595 resets = <&cpg 928>;
566 i2c-scl-internal-delay-ns = <6>; 596 i2c-scl-internal-delay-ns = <6>;
567 #address-cells = <1>; 597 #address-cells = <1>;
568 #size-cells = <0>; 598 #size-cells = <0>;
@@ -574,8 +604,9 @@
574 "renesas,rcar-gen2-i2c"; 604 "renesas,rcar-gen2-i2c";
575 reg = <0 0xe6520000 0 0x40>; 605 reg = <0 0xe6520000 0 0x40>;
576 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 606 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
577 clocks = <&mstp9_clks R8A7792_CLK_I2C4>; 607 clocks = <&cpg CPG_MOD 927>;
578 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 608 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
609 resets = <&cpg 927>;
579 i2c-scl-internal-delay-ns = <6>; 610 i2c-scl-internal-delay-ns = <6>;
580 #address-cells = <1>; 611 #address-cells = <1>;
581 #size-cells = <0>; 612 #size-cells = <0>;
@@ -587,8 +618,9 @@
587 "renesas,rcar-gen2-i2c"; 618 "renesas,rcar-gen2-i2c";
588 reg = <0 0xe6528000 0 0x40>; 619 reg = <0 0xe6528000 0 0x40>;
589 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 620 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
590 clocks = <&mstp9_clks R8A7792_CLK_I2C5>; 621 clocks = <&cpg CPG_MOD 925>;
591 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 622 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
623 resets = <&cpg 925>;
592 i2c-scl-internal-delay-ns = <110>; 624 i2c-scl-internal-delay-ns = <110>;
593 #address-cells = <1>; 625 #address-cells = <1>;
594 #size-cells = <0>; 626 #size-cells = <0>;
@@ -599,11 +631,12 @@
599 compatible = "renesas,qspi-r8a7792", "renesas,qspi"; 631 compatible = "renesas,qspi-r8a7792", "renesas,qspi";
600 reg = <0 0xe6b10000 0 0x2c>; 632 reg = <0 0xe6b10000 0 0x2c>;
601 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 633 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
602 clocks = <&mstp9_clks R8A7792_CLK_QSPI_MOD>; 634 clocks = <&cpg CPG_MOD 917>;
603 dmas = <&dmac0 0x17>, <&dmac0 0x18>, 635 dmas = <&dmac0 0x17>, <&dmac0 0x18>,
604 <&dmac1 0x17>, <&dmac1 0x18>; 636 <&dmac1 0x17>, <&dmac1 0x18>;
605 dma-names = "tx", "rx", "tx", "rx"; 637 dma-names = "tx", "rx", "tx", "rx";
606 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 638 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
639 resets = <&cpg 917>;
607 num-cs = <1>; 640 num-cs = <1>;
608 #address-cells = <1>; 641 #address-cells = <1>;
609 #size-cells = <0>; 642 #size-cells = <0>;
@@ -615,11 +648,12 @@
615 "renesas,rcar-gen2-msiof"; 648 "renesas,rcar-gen2-msiof";
616 reg = <0 0xe6e20000 0 0x0064>; 649 reg = <0 0xe6e20000 0 0x0064>;
617 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 650 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
618 clocks = <&mstp0_clks R8A7792_CLK_MSIOF0>; 651 clocks = <&cpg CPG_MOD 000>;
619 dmas = <&dmac0 0x51>, <&dmac0 0x52>, 652 dmas = <&dmac0 0x51>, <&dmac0 0x52>,
620 <&dmac1 0x51>, <&dmac1 0x52>; 653 <&dmac1 0x51>, <&dmac1 0x52>;
621 dma-names = "tx", "rx", "tx", "rx"; 654 dma-names = "tx", "rx", "tx", "rx";
622 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 655 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
656 resets = <&cpg 000>;
623 #address-cells = <1>; 657 #address-cells = <1>;
624 #size-cells = <0>; 658 #size-cells = <0>;
625 status = "disabled"; 659 status = "disabled";
@@ -630,11 +664,12 @@
630 "renesas,rcar-gen2-msiof"; 664 "renesas,rcar-gen2-msiof";
631 reg = <0 0xe6e10000 0 0x0064>; 665 reg = <0 0xe6e10000 0 0x0064>;
632 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; 666 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
633 clocks = <&mstp2_clks R8A7792_CLK_MSIOF1>; 667 clocks = <&cpg CPG_MOD 208>;
634 dmas = <&dmac0 0x55>, <&dmac0 0x56>, 668 dmas = <&dmac0 0x55>, <&dmac0 0x56>,
635 <&dmac1 0x55>, <&dmac1 0x56>; 669 <&dmac1 0x55>, <&dmac1 0x56>;
636 dma-names = "tx", "rx", "tx", "rx"; 670 dma-names = "tx", "rx", "tx", "rx";
637 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 671 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
672 resets = <&cpg 208>;
638 #address-cells = <1>; 673 #address-cells = <1>;
639 #size-cells = <0>; 674 #size-cells = <0>;
640 status = "disabled"; 675 status = "disabled";
@@ -646,8 +681,8 @@
646 reg-names = "du"; 681 reg-names = "du";
647 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, 682 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
648 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; 683 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
649 clocks = <&mstp7_clks R8A7792_CLK_DU0>, 684 clocks = <&cpg CPG_MOD 724>,
650 <&mstp7_clks R8A7792_CLK_DU1>; 685 <&cpg CPG_MOD 723>;
651 clock-names = "du.0", "du.1"; 686 clock-names = "du.0", "du.1";
652 status = "disabled"; 687 status = "disabled";
653 688
@@ -673,10 +708,11 @@
673 "renesas,rcar-gen2-can"; 708 "renesas,rcar-gen2-can";
674 reg = <0 0xe6e80000 0 0x1000>; 709 reg = <0 0xe6e80000 0 0x1000>;
675 interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>; 710 interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
676 clocks = <&mstp9_clks R8A7792_CLK_CAN0>, 711 clocks = <&cpg CPG_MOD 916>,
677 <&rcan_clk>, <&can_clk>; 712 <&cpg CPG_CORE R8A7792_CLK_RCAN>, <&can_clk>;
678 clock-names = "clkp1", "clkp2", "can_clk"; 713 clock-names = "clkp1", "clkp2", "can_clk";
679 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 714 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
715 resets = <&cpg 916>;
680 status = "disabled"; 716 status = "disabled";
681 }; 717 };
682 718
@@ -685,10 +721,11 @@
685 "renesas,rcar-gen2-can"; 721 "renesas,rcar-gen2-can";
686 reg = <0 0xe6e88000 0 0x1000>; 722 reg = <0 0xe6e88000 0 0x1000>;
687 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; 723 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
688 clocks = <&mstp9_clks R8A7792_CLK_CAN1>, 724 clocks = <&cpg CPG_MOD 915>,
689 <&rcan_clk>, <&can_clk>; 725 <&cpg CPG_CORE R8A7792_CLK_RCAN>, <&can_clk>;
690 clock-names = "clkp1", "clkp2", "can_clk"; 726 clock-names = "clkp1", "clkp2", "can_clk";
691 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 727 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
728 resets = <&cpg 915>;
692 status = "disabled"; 729 status = "disabled";
693 }; 730 };
694 731
@@ -697,8 +734,9 @@
697 "renesas,rcar-gen2-vin"; 734 "renesas,rcar-gen2-vin";
698 reg = <0 0xe6ef0000 0 0x1000>; 735 reg = <0 0xe6ef0000 0 0x1000>;
699 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 736 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
700 clocks = <&mstp8_clks R8A7792_CLK_VIN0>; 737 clocks = <&cpg CPG_MOD 811>;
701 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 738 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
739 resets = <&cpg 811>;
702 status = "disabled"; 740 status = "disabled";
703 }; 741 };
704 742
@@ -707,8 +745,9 @@
707 "renesas,rcar-gen2-vin"; 745 "renesas,rcar-gen2-vin";
708 reg = <0 0xe6ef1000 0 0x1000>; 746 reg = <0 0xe6ef1000 0 0x1000>;
709 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; 747 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
710 clocks = <&mstp8_clks R8A7792_CLK_VIN1>; 748 clocks = <&cpg CPG_MOD 810>;
711 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 749 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
750 resets = <&cpg 810>;
712 status = "disabled"; 751 status = "disabled";
713 }; 752 };
714 753
@@ -717,8 +756,9 @@
717 "renesas,rcar-gen2-vin"; 756 "renesas,rcar-gen2-vin";
718 reg = <0 0xe6ef2000 0 0x1000>; 757 reg = <0 0xe6ef2000 0 0x1000>;
719 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; 758 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
720 clocks = <&mstp8_clks R8A7792_CLK_VIN2>; 759 clocks = <&cpg CPG_MOD 809>;
721 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 760 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
761 resets = <&cpg 809>;
722 status = "disabled"; 762 status = "disabled";
723 }; 763 };
724 764
@@ -727,8 +767,9 @@
727 "renesas,rcar-gen2-vin"; 767 "renesas,rcar-gen2-vin";
728 reg = <0 0xe6ef3000 0 0x1000>; 768 reg = <0 0xe6ef3000 0 0x1000>;
729 interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; 769 interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
730 clocks = <&mstp8_clks R8A7792_CLK_VIN3>; 770 clocks = <&cpg CPG_MOD 808>;
731 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 771 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
772 resets = <&cpg 808>;
732 status = "disabled"; 773 status = "disabled";
733 }; 774 };
734 775
@@ -737,8 +778,9 @@
737 "renesas,rcar-gen2-vin"; 778 "renesas,rcar-gen2-vin";
738 reg = <0 0xe6ef4000 0 0x1000>; 779 reg = <0 0xe6ef4000 0 0x1000>;
739 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; 780 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
740 clocks = <&mstp8_clks R8A7792_CLK_VIN4>; 781 clocks = <&cpg CPG_MOD 805>;
741 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 782 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
783 resets = <&cpg 805>;
742 status = "disabled"; 784 status = "disabled";
743 }; 785 };
744 786
@@ -747,254 +789,47 @@
747 "renesas,rcar-gen2-vin"; 789 "renesas,rcar-gen2-vin";
748 reg = <0 0xe6ef5000 0 0x1000>; 790 reg = <0 0xe6ef5000 0 0x1000>;
749 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; 791 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
750 clocks = <&mstp8_clks R8A7792_CLK_VIN5>; 792 clocks = <&cpg CPG_MOD 804>;
751 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 793 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
794 resets = <&cpg 804>;
752 status = "disabled"; 795 status = "disabled";
753 }; 796 };
754 797
755 vsp1@fe928000 { 798 vsp@fe928000 {
756 compatible = "renesas,vsp1"; 799 compatible = "renesas,vsp1";
757 reg = <0 0xfe928000 0 0x8000>; 800 reg = <0 0xfe928000 0 0x8000>;
758 interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>; 801 interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>;
759 clocks = <&mstp1_clks R8A7792_CLK_VSP1_SY>; 802 clocks = <&cpg CPG_MOD 131>;
760 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 803 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
804 resets = <&cpg 131>;
761 }; 805 };
762 806
763 vsp1@fe930000 { 807 vsp@fe930000 {
764 compatible = "renesas,vsp1"; 808 compatible = "renesas,vsp1";
765 reg = <0 0xfe930000 0 0x8000>; 809 reg = <0 0xfe930000 0 0x8000>;
766 interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; 810 interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
767 clocks = <&mstp1_clks R8A7792_CLK_VSP1DU0>; 811 clocks = <&cpg CPG_MOD 128>;
768 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 812 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
813 resets = <&cpg 128>;
769 }; 814 };
770 815
771 vsp1@fe938000 { 816 vsp@fe938000 {
772 compatible = "renesas,vsp1"; 817 compatible = "renesas,vsp1";
773 reg = <0 0xfe938000 0 0x8000>; 818 reg = <0 0xfe938000 0 0x8000>;
774 interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>; 819 interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>;
775 clocks = <&mstp1_clks R8A7792_CLK_VSP1DU1>; 820 clocks = <&cpg CPG_MOD 127>;
776 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>; 821 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
822 resets = <&cpg 127>;
777 }; 823 };
778 824
779 /* Special CPG clocks */ 825 cpg: clock-controller@e6150000 {
780 cpg_clocks: cpg_clocks@e6150000 { 826 compatible = "renesas,r8a7792-cpg-mssr";
781 compatible = "renesas,r8a7792-cpg-clocks",
782 "renesas,rcar-gen2-cpg-clocks";
783 reg = <0 0xe6150000 0 0x1000>; 827 reg = <0 0xe6150000 0 0x1000>;
784 clocks = <&extal_clk>; 828 clocks = <&extal_clk>;
785 #clock-cells = <1>; 829 clock-names = "extal";
786 clock-output-names = "main", "pll0", "pll1", "pll3", 830 #clock-cells = <2>;
787 "lb", "qspi";
788 #power-domain-cells = <0>; 831 #power-domain-cells = <0>;
789 }; 832 };
790
791 /* Fixed factor clocks */
792 pll1_div2_clk: pll1_div2 {
793 compatible = "fixed-factor-clock";
794 clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
795 #clock-cells = <0>;
796 clock-div = <2>;
797 clock-mult = <1>;
798 };
799 z_clk: z {
800 compatible = "fixed-factor-clock";
801 clocks = <&cpg_clocks R8A7792_CLK_PLL0>;
802 #clock-cells = <0>;
803 clock-div = <1>;
804 clock-mult = <1>;
805 };
806 zx_clk: zx {
807 compatible = "fixed-factor-clock";
808 clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
809 #clock-cells = <0>;
810 clock-div = <3>;
811 clock-mult = <1>;
812 };
813 zs_clk: zs {
814 compatible = "fixed-factor-clock";
815 clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
816 #clock-cells = <0>;
817 clock-div = <6>;
818 clock-mult = <1>;
819 };
820 hp_clk: hp {
821 compatible = "fixed-factor-clock";
822 clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
823 #clock-cells = <0>;
824 clock-div = <12>;
825 clock-mult = <1>;
826 };
827 p_clk: p {
828 compatible = "fixed-factor-clock";
829 clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
830 #clock-cells = <0>;
831 clock-div = <24>;
832 clock-mult = <1>;
833 };
834 cp_clk: cp {
835 compatible = "fixed-factor-clock";
836 clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
837 #clock-cells = <0>;
838 clock-div = <48>;
839 clock-mult = <1>;
840 };
841 mp_clk: mp {
842 compatible = "fixed-factor-clock";
843 clocks = <&pll1_div2_clk>;
844 #clock-cells = <0>;
845 clock-div = <15>;
846 clock-mult = <1>;
847 };
848 m2_clk: m2 {
849 compatible = "fixed-factor-clock";
850 clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
851 #clock-cells = <0>;
852 clock-div = <8>;
853 clock-mult = <1>;
854 };
855 sd_clk: sd {
856 compatible = "fixed-factor-clock";
857 clocks = <&pll1_div2_clk>;
858 #clock-cells = <0>;
859 clock-div = <8>;
860 clock-mult = <1>;
861 };
862 rcan_clk: rcan {
863 compatible = "fixed-factor-clock";
864 clocks = <&pll1_div2_clk>;
865 #clock-cells = <0>;
866 clock-div = <49>;
867 clock-mult = <1>;
868 };
869 zg_clk: zg {
870 compatible = "fixed-factor-clock";
871 clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
872 #clock-cells = <0>;
873 clock-div = <5>;
874 clock-mult = <1>;
875 };
876
877 /* Gate clocks */
878 mstp0_clks: mstp0_clks@e6150130 {
879 compatible = "renesas,r8a7792-mstp-clocks",
880 "renesas,cpg-mstp-clocks";
881 reg = <0 0xe6150130 0 4>, <0 0xe6150030 0 4>;
882 clocks = <&mp_clk>;
883 #clock-cells = <1>;
884 clock-indices = <R8A7792_CLK_MSIOF0>;
885 clock-output-names = "msiof0";
886 };
887 mstp1_clks: mstp1_clks@e6150134 {
888 compatible = "renesas,r8a7792-mstp-clocks",
889 "renesas,cpg-mstp-clocks";
890 reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>;
891 clocks = <&m2_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>;
892 #clock-cells = <1>;
893 clock-indices = <
894 R8A7792_CLK_JPU
895 R8A7792_CLK_VSP1DU1 R8A7792_CLK_VSP1DU0
896 R8A7792_CLK_VSP1_SY
897 >;
898 clock-output-names = "jpu", "vsp1du1", "vsp1du0",
899 "vsp1-sy";
900 };
901 mstp2_clks: mstp2_clks@e6150138 {
902 compatible = "renesas,r8a7792-mstp-clocks",
903 "renesas,cpg-mstp-clocks";
904 reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>;
905 clocks = <&mp_clk>, <&zs_clk>, <&zs_clk>;
906 #clock-cells = <1>;
907 clock-indices = <
908 R8A7792_CLK_MSIOF1
909 R8A7792_CLK_SYS_DMAC1 R8A7792_CLK_SYS_DMAC0
910 >;
911 clock-output-names = "msiof1", "sys-dmac1", "sys-dmac0";
912 };
913 mstp3_clks: mstp3_clks@e615013c {
914 compatible = "renesas,r8a7792-mstp-clocks",
915 "renesas,cpg-mstp-clocks";
916 reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>;
917 clocks = <&sd_clk>;
918 #clock-cells = <1>;
919 renesas,clock-indices = <R8A7792_CLK_SDHI0>;
920 clock-output-names = "sdhi0";
921 };
922 mstp4_clks: mstp4_clks@e6150140 {
923 compatible = "renesas,r8a7792-mstp-clocks",
924 "renesas,cpg-mstp-clocks";
925 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>;
926 clocks = <&cp_clk>, <&zs_clk>;
927 #clock-cells = <1>;
928 clock-indices = <
929 R8A7792_CLK_IRQC R8A7792_CLK_INTC_SYS
930 >;
931 clock-output-names = "irqc", "intc-sys";
932 };
933 mstp7_clks: mstp7_clks@e615014c {
934 compatible = "renesas,r8a7792-mstp-clocks",
935 "renesas,cpg-mstp-clocks";
936 reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>;
937 clocks = <&zs_clk>, <&zs_clk>, <&p_clk>, <&p_clk>,
938 <&p_clk>, <&p_clk>, <&zx_clk>, <&zx_clk>;
939 #clock-cells = <1>;
940 clock-indices = <
941 R8A7792_CLK_HSCIF1 R8A7792_CLK_HSCIF0
942 R8A7792_CLK_SCIF3 R8A7792_CLK_SCIF2
943 R8A7792_CLK_SCIF1 R8A7792_CLK_SCIF0
944 R8A7792_CLK_DU1 R8A7792_CLK_DU0
945 >;
946 clock-output-names = "hscif1", "hscif0", "scif3",
947 "scif2", "scif1", "scif0",
948 "du1", "du0";
949 };
950 mstp8_clks: mstp8_clks@e6150990 {
951 compatible = "renesas,r8a7792-mstp-clocks",
952 "renesas,cpg-mstp-clocks";
953 reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>;
954 clocks = <&zg_clk>, <&zg_clk>, <&zg_clk>, <&zg_clk>,
955 <&zg_clk>, <&zg_clk>, <&hp_clk>;
956 #clock-cells = <1>;
957 clock-indices = <
958 R8A7792_CLK_VIN5 R8A7792_CLK_VIN4
959 R8A7792_CLK_VIN3 R8A7792_CLK_VIN2
960 R8A7792_CLK_VIN1 R8A7792_CLK_VIN0
961 R8A7792_CLK_ETHERAVB
962 >;
963 clock-output-names = "vin5", "vin4", "vin3", "vin2",
964 "vin1", "vin0", "etheravb";
965 };
966 mstp9_clks: mstp9_clks@e6150994 {
967 compatible = "renesas,r8a7792-mstp-clocks",
968 "renesas,cpg-mstp-clocks";
969 reg = <0 0xe6150994 0 4>, <0 0xe61509a4 0 4>;
970 clocks = <&cp_clk>, <&cp_clk>, <&cp_clk>, <&cp_clk>,
971 <&cp_clk>, <&cp_clk>, <&cp_clk>, <&cp_clk>,
972 <&cp_clk>, <&cp_clk>, <&p_clk>, <&p_clk>,
973 <&cpg_clocks R8A7792_CLK_QSPI>,
974 <&cp_clk>, <&cp_clk>, <&hp_clk>, <&hp_clk>,
975 <&hp_clk>, <&hp_clk>, <&hp_clk>, <&hp_clk>;
976 #clock-cells = <1>;
977 clock-indices = <
978 R8A7792_CLK_GPIO7 R8A7792_CLK_GPIO6
979 R8A7792_CLK_GPIO5 R8A7792_CLK_GPIO4
980 R8A7792_CLK_GPIO3 R8A7792_CLK_GPIO2
981 R8A7792_CLK_GPIO1 R8A7792_CLK_GPIO0
982 R8A7792_CLK_GPIO11 R8A7792_CLK_GPIO10
983 R8A7792_CLK_CAN1 R8A7792_CLK_CAN0
984 R8A7792_CLK_QSPI_MOD
985 R8A7792_CLK_GPIO9 R8A7792_CLK_GPIO8
986 R8A7792_CLK_I2C5 R8A7792_CLK_I2C4
987 R8A7792_CLK_I2C3 R8A7792_CLK_I2C2
988 R8A7792_CLK_I2C1 R8A7792_CLK_I2C0
989 >;
990 clock-output-names =
991 "gpio7", "gpio6", "gpio5", "gpio4",
992 "gpio3", "gpio2", "gpio1", "gpio0",
993 "gpio11", "gpio10", "can1", "can0",
994 "qspi_mod", "gpio9", "gpio8",
995 "i2c5", "i2c4", "i2c3", "i2c2",
996 "i2c1", "i2c0";
997 };
998 }; 833 };
999 834
1000 /* External root clock */ 835 /* External root clock */
diff --git a/arch/arm/boot/dts/r8a7793-gose.dts b/arch/arm/boot/dts/r8a7793-gose.dts
index 76e3aca2029e..51b3ffac8efa 100644
--- a/arch/arm/boot/dts/r8a7793-gose.dts
+++ b/arch/arm/boot/dts/r8a7793-gose.dts
@@ -303,9 +303,7 @@
303 pinctrl-names = "default"; 303 pinctrl-names = "default";
304 status = "okay"; 304 status = "okay";
305 305
306 clocks = <&mstp7_clks R8A7793_CLK_DU0>, 306 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 726>,
307 <&mstp7_clks R8A7793_CLK_DU1>,
308 <&mstp7_clks R8A7793_CLK_LVDS0>,
309 <&x13_clk>, <&x2_clk>; 307 <&x13_clk>, <&x2_clk>;
310 clock-names = "du.0", "du.1", "lvds.0", 308 clock-names = "du.0", "du.1", "lvds.0",
311 "dclkin.0", "dclkin.1"; 309 "dclkin.0", "dclkin.1";
diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi
index 497716b6fbe2..58eae569b4e0 100644
--- a/arch/arm/boot/dts/r8a7793.dtsi
+++ b/arch/arm/boot/dts/r8a7793.dtsi
@@ -8,7 +8,7 @@
8 * kind, whether express or implied. 8 * kind, whether express or implied.
9 */ 9 */
10 10
11#include <dt-bindings/clock/r8a7793-clock.h> 11#include <dt-bindings/clock/r8a7793-cpg-mssr.h>
12#include <dt-bindings/interrupt-controller/arm-gic.h> 12#include <dt-bindings/interrupt-controller/arm-gic.h>
13#include <dt-bindings/interrupt-controller/irq.h> 13#include <dt-bindings/interrupt-controller/irq.h>
14#include <dt-bindings/power/r8a7793-sysc.h> 14#include <dt-bindings/power/r8a7793-sysc.h>
@@ -43,7 +43,7 @@
43 reg = <0>; 43 reg = <0>;
44 clock-frequency = <1500000000>; 44 clock-frequency = <1500000000>;
45 voltage-tolerance = <1>; /* 1% */ 45 voltage-tolerance = <1>; /* 1% */
46 clocks = <&cpg_clocks R8A7793_CLK_Z>; 46 clocks = <&cpg CPG_CORE R8A7793_CLK_Z>;
47 clock-latency = <300000>; /* 300 us */ 47 clock-latency = <300000>; /* 300 us */
48 power-domains = <&sysc R8A7793_PD_CA15_CPU0>; 48 power-domains = <&sysc R8A7793_PD_CA15_CPU0>;
49 49
@@ -62,6 +62,7 @@
62 compatible = "arm,cortex-a15"; 62 compatible = "arm,cortex-a15";
63 reg = <1>; 63 reg = <1>;
64 clock-frequency = <1500000000>; 64 clock-frequency = <1500000000>;
65 clocks = <&cpg CPG_CORE R8A7793_CLK_Z>;
65 power-domains = <&sysc R8A7793_PD_CA15_CPU1>; 66 power-domains = <&sysc R8A7793_PD_CA15_CPU1>;
66 }; 67 };
67 68
@@ -108,13 +109,14 @@
108 <0 0xf1004000 0 0x2000>, 109 <0 0xf1004000 0 0x2000>,
109 <0 0xf1006000 0 0x2000>; 110 <0 0xf1006000 0 0x2000>;
110 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)>;
111 clocks = <&mstp4_clks R8A7793_CLK_INTC_SYS>; 112 clocks = <&cpg CPG_MOD 408>;
112 clock-names = "clk"; 113 clock-names = "clk";
113 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 114 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
115 resets = <&cpg 408>;
114 }; 116 };
115 117
116 gpio0: gpio@e6050000 { 118 gpio0: gpio@e6050000 {
117 compatible = "renesas,gpio-r8a7793", "renesas,gpio-rcar"; 119 compatible = "renesas,gpio-r8a7793", "renesas,rcar-gen2-gpio";
118 reg = <0 0xe6050000 0 0x50>; 120 reg = <0 0xe6050000 0 0x50>;
119 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 121 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
120 #gpio-cells = <2>; 122 #gpio-cells = <2>;
@@ -122,12 +124,13 @@
122 gpio-ranges = <&pfc 0 0 32>; 124 gpio-ranges = <&pfc 0 0 32>;
123 #interrupt-cells = <2>; 125 #interrupt-cells = <2>;
124 interrupt-controller; 126 interrupt-controller;
125 clocks = <&mstp9_clks R8A7793_CLK_GPIO0>; 127 clocks = <&cpg CPG_MOD 912>;
126 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 128 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
129 resets = <&cpg 912>;
127 }; 130 };
128 131
129 gpio1: gpio@e6051000 { 132 gpio1: gpio@e6051000 {
130 compatible = "renesas,gpio-r8a7793", "renesas,gpio-rcar"; 133 compatible = "renesas,gpio-r8a7793", "renesas,rcar-gen2-gpio";
131 reg = <0 0xe6051000 0 0x50>; 134 reg = <0 0xe6051000 0 0x50>;
132 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 135 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
133 #gpio-cells = <2>; 136 #gpio-cells = <2>;
@@ -135,12 +138,13 @@
135 gpio-ranges = <&pfc 0 32 26>; 138 gpio-ranges = <&pfc 0 32 26>;
136 #interrupt-cells = <2>; 139 #interrupt-cells = <2>;
137 interrupt-controller; 140 interrupt-controller;
138 clocks = <&mstp9_clks R8A7793_CLK_GPIO1>; 141 clocks = <&cpg CPG_MOD 911>;
139 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 142 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
143 resets = <&cpg 911>;
140 }; 144 };
141 145
142 gpio2: gpio@e6052000 { 146 gpio2: gpio@e6052000 {
143 compatible = "renesas,gpio-r8a7793", "renesas,gpio-rcar"; 147 compatible = "renesas,gpio-r8a7793", "renesas,rcar-gen2-gpio";
144 reg = <0 0xe6052000 0 0x50>; 148 reg = <0 0xe6052000 0 0x50>;
145 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 149 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
146 #gpio-cells = <2>; 150 #gpio-cells = <2>;
@@ -148,12 +152,13 @@
148 gpio-ranges = <&pfc 0 64 32>; 152 gpio-ranges = <&pfc 0 64 32>;
149 #interrupt-cells = <2>; 153 #interrupt-cells = <2>;
150 interrupt-controller; 154 interrupt-controller;
151 clocks = <&mstp9_clks R8A7793_CLK_GPIO2>; 155 clocks = <&cpg CPG_MOD 910>;
152 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 156 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
157 resets = <&cpg 910>;
153 }; 158 };
154 159
155 gpio3: gpio@e6053000 { 160 gpio3: gpio@e6053000 {
156 compatible = "renesas,gpio-r8a7793", "renesas,gpio-rcar"; 161 compatible = "renesas,gpio-r8a7793", "renesas,rcar-gen2-gpio";
157 reg = <0 0xe6053000 0 0x50>; 162 reg = <0 0xe6053000 0 0x50>;
158 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 163 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
159 #gpio-cells = <2>; 164 #gpio-cells = <2>;
@@ -161,12 +166,13 @@
161 gpio-ranges = <&pfc 0 96 32>; 166 gpio-ranges = <&pfc 0 96 32>;
162 #interrupt-cells = <2>; 167 #interrupt-cells = <2>;
163 interrupt-controller; 168 interrupt-controller;
164 clocks = <&mstp9_clks R8A7793_CLK_GPIO3>; 169 clocks = <&cpg CPG_MOD 909>;
165 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 170 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
171 resets = <&cpg 909>;
166 }; 172 };
167 173
168 gpio4: gpio@e6054000 { 174 gpio4: gpio@e6054000 {
169 compatible = "renesas,gpio-r8a7793", "renesas,gpio-rcar"; 175 compatible = "renesas,gpio-r8a7793", "renesas,rcar-gen2-gpio";
170 reg = <0 0xe6054000 0 0x50>; 176 reg = <0 0xe6054000 0 0x50>;
171 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 177 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
172 #gpio-cells = <2>; 178 #gpio-cells = <2>;
@@ -174,12 +180,13 @@
174 gpio-ranges = <&pfc 0 128 32>; 180 gpio-ranges = <&pfc 0 128 32>;
175 #interrupt-cells = <2>; 181 #interrupt-cells = <2>;
176 interrupt-controller; 182 interrupt-controller;
177 clocks = <&mstp9_clks R8A7793_CLK_GPIO4>; 183 clocks = <&cpg CPG_MOD 908>;
178 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 184 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
185 resets = <&cpg 908>;
179 }; 186 };
180 187
181 gpio5: gpio@e6055000 { 188 gpio5: gpio@e6055000 {
182 compatible = "renesas,gpio-r8a7793", "renesas,gpio-rcar"; 189 compatible = "renesas,gpio-r8a7793", "renesas,rcar-gen2-gpio";
183 reg = <0 0xe6055000 0 0x50>; 190 reg = <0 0xe6055000 0 0x50>;
184 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 191 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
185 #gpio-cells = <2>; 192 #gpio-cells = <2>;
@@ -187,12 +194,13 @@
187 gpio-ranges = <&pfc 0 160 32>; 194 gpio-ranges = <&pfc 0 160 32>;
188 #interrupt-cells = <2>; 195 #interrupt-cells = <2>;
189 interrupt-controller; 196 interrupt-controller;
190 clocks = <&mstp9_clks R8A7793_CLK_GPIO5>; 197 clocks = <&cpg CPG_MOD 907>;
191 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 198 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
199 resets = <&cpg 907>;
192 }; 200 };
193 201
194 gpio6: gpio@e6055400 { 202 gpio6: gpio@e6055400 {
195 compatible = "renesas,gpio-r8a7793", "renesas,gpio-rcar"; 203 compatible = "renesas,gpio-r8a7793", "renesas,rcar-gen2-gpio";
196 reg = <0 0xe6055400 0 0x50>; 204 reg = <0 0xe6055400 0 0x50>;
197 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 205 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
198 #gpio-cells = <2>; 206 #gpio-cells = <2>;
@@ -200,12 +208,13 @@
200 gpio-ranges = <&pfc 0 192 32>; 208 gpio-ranges = <&pfc 0 192 32>;
201 #interrupt-cells = <2>; 209 #interrupt-cells = <2>;
202 interrupt-controller; 210 interrupt-controller;
203 clocks = <&mstp9_clks R8A7793_CLK_GPIO6>; 211 clocks = <&cpg CPG_MOD 905>;
204 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 212 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
213 resets = <&cpg 905>;
205 }; 214 };
206 215
207 gpio7: gpio@e6055800 { 216 gpio7: gpio@e6055800 {
208 compatible = "renesas,gpio-r8a7793", "renesas,gpio-rcar"; 217 compatible = "renesas,gpio-r8a7793", "renesas,rcar-gen2-gpio";
209 reg = <0 0xe6055800 0 0x50>; 218 reg = <0 0xe6055800 0 0x50>;
210 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 219 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
211 #gpio-cells = <2>; 220 #gpio-cells = <2>;
@@ -213,8 +222,9 @@
213 gpio-ranges = <&pfc 0 224 26>; 222 gpio-ranges = <&pfc 0 224 26>;
214 #interrupt-cells = <2>; 223 #interrupt-cells = <2>;
215 interrupt-controller; 224 interrupt-controller;
216 clocks = <&mstp9_clks R8A7793_CLK_GPIO7>; 225 clocks = <&cpg CPG_MOD 904>;
217 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 226 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
227 resets = <&cpg 904>;
218 }; 228 };
219 229
220 thermal: thermal@e61f0000 { 230 thermal: thermal@e61f0000 {
@@ -223,8 +233,9 @@
223 "renesas,rcar-thermal"; 233 "renesas,rcar-thermal";
224 reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>; 234 reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>;
225 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 235 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
226 clocks = <&mstp5_clks R8A7793_CLK_THERMAL>; 236 clocks = <&cpg CPG_MOD 522>;
227 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 237 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
238 resets = <&cpg 522>;
228 #thermal-sensor-cells = <0>; 239 #thermal-sensor-cells = <0>;
229 }; 240 };
230 241
@@ -241,9 +252,10 @@
241 reg = <0 0xffca0000 0 0x1004>; 252 reg = <0 0xffca0000 0 0x1004>;
242 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, 253 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
243 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; 254 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
244 clocks = <&mstp1_clks R8A7793_CLK_CMT0>; 255 clocks = <&cpg CPG_MOD 124>;
245 clock-names = "fck"; 256 clock-names = "fck";
246 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 257 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
258 resets = <&cpg 124>;
247 259
248 renesas,channels-mask = <0x60>; 260 renesas,channels-mask = <0x60>;
249 261
@@ -261,9 +273,10 @@
261 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 273 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
262 <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>, 274 <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
263 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; 275 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
264 clocks = <&mstp3_clks R8A7793_CLK_CMT1>; 276 clocks = <&cpg CPG_MOD 329>;
265 clock-names = "fck"; 277 clock-names = "fck";
266 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 278 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
279 resets = <&cpg 329>;
267 280
268 renesas,channels-mask = <0xff>; 281 renesas,channels-mask = <0xff>;
269 282
@@ -285,8 +298,9 @@
285 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 298 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
286 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 299 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
287 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 300 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
288 clocks = <&mstp4_clks R8A7793_CLK_IRQC>; 301 clocks = <&cpg CPG_MOD 407>;
289 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 302 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
303 resets = <&cpg 407>;
290 }; 304 };
291 305
292 dmac0: dma-controller@e6700000 { 306 dmac0: dma-controller@e6700000 {
@@ -313,9 +327,10 @@
313 "ch4", "ch5", "ch6", "ch7", 327 "ch4", "ch5", "ch6", "ch7",
314 "ch8", "ch9", "ch10", "ch11", 328 "ch8", "ch9", "ch10", "ch11",
315 "ch12", "ch13", "ch14"; 329 "ch12", "ch13", "ch14";
316 clocks = <&mstp2_clks R8A7793_CLK_SYS_DMAC0>; 330 clocks = <&cpg CPG_MOD 219>;
317 clock-names = "fck"; 331 clock-names = "fck";
318 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 332 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
333 resets = <&cpg 219>;
319 #dma-cells = <1>; 334 #dma-cells = <1>;
320 dma-channels = <15>; 335 dma-channels = <15>;
321 }; 336 };
@@ -344,9 +359,10 @@
344 "ch4", "ch5", "ch6", "ch7", 359 "ch4", "ch5", "ch6", "ch7",
345 "ch8", "ch9", "ch10", "ch11", 360 "ch8", "ch9", "ch10", "ch11",
346 "ch12", "ch13", "ch14"; 361 "ch12", "ch13", "ch14";
347 clocks = <&mstp2_clks R8A7793_CLK_SYS_DMAC1>; 362 clocks = <&cpg CPG_MOD 218>;
348 clock-names = "fck"; 363 clock-names = "fck";
349 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 364 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
365 resets = <&cpg 218>;
350 #dma-cells = <1>; 366 #dma-cells = <1>;
351 dma-channels = <15>; 367 dma-channels = <15>;
352 }; 368 };
@@ -373,9 +389,10 @@
373 "ch4", "ch5", "ch6", "ch7", 389 "ch4", "ch5", "ch6", "ch7",
374 "ch8", "ch9", "ch10", "ch11", 390 "ch8", "ch9", "ch10", "ch11",
375 "ch12"; 391 "ch12";
376 clocks = <&mstp5_clks R8A7793_CLK_AUDIO_DMAC0>; 392 clocks = <&cpg CPG_MOD 502>;
377 clock-names = "fck"; 393 clock-names = "fck";
378 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 394 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
395 resets = <&cpg 502>;
379 #dma-cells = <1>; 396 #dma-cells = <1>;
380 dma-channels = <13>; 397 dma-channels = <13>;
381 }; 398 };
@@ -402,9 +419,10 @@
402 "ch4", "ch5", "ch6", "ch7", 419 "ch4", "ch5", "ch6", "ch7",
403 "ch8", "ch9", "ch10", "ch11", 420 "ch8", "ch9", "ch10", "ch11",
404 "ch12"; 421 "ch12";
405 clocks = <&mstp5_clks R8A7793_CLK_AUDIO_DMAC1>; 422 clocks = <&cpg CPG_MOD 501>;
406 clock-names = "fck"; 423 clock-names = "fck";
407 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 424 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
425 resets = <&cpg 501>;
408 #dma-cells = <1>; 426 #dma-cells = <1>;
409 dma-channels = <13>; 427 dma-channels = <13>;
410 }; 428 };
@@ -416,8 +434,9 @@
416 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c"; 434 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
417 reg = <0 0xe6508000 0 0x40>; 435 reg = <0 0xe6508000 0 0x40>;
418 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 436 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
419 clocks = <&mstp9_clks R8A7793_CLK_I2C0>; 437 clocks = <&cpg CPG_MOD 931>;
420 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 438 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
439 resets = <&cpg 931>;
421 i2c-scl-internal-delay-ns = <6>; 440 i2c-scl-internal-delay-ns = <6>;
422 status = "disabled"; 441 status = "disabled";
423 }; 442 };
@@ -428,8 +447,9 @@
428 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c"; 447 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
429 reg = <0 0xe6518000 0 0x40>; 448 reg = <0 0xe6518000 0 0x40>;
430 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; 449 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
431 clocks = <&mstp9_clks R8A7793_CLK_I2C1>; 450 clocks = <&cpg CPG_MOD 930>;
432 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 451 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
452 resets = <&cpg 930>;
433 i2c-scl-internal-delay-ns = <6>; 453 i2c-scl-internal-delay-ns = <6>;
434 status = "disabled"; 454 status = "disabled";
435 }; 455 };
@@ -440,8 +460,9 @@
440 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c"; 460 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
441 reg = <0 0xe6530000 0 0x40>; 461 reg = <0 0xe6530000 0 0x40>;
442 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; 462 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
443 clocks = <&mstp9_clks R8A7793_CLK_I2C2>; 463 clocks = <&cpg CPG_MOD 929>;
444 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 464 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
465 resets = <&cpg 929>;
445 i2c-scl-internal-delay-ns = <6>; 466 i2c-scl-internal-delay-ns = <6>;
446 status = "disabled"; 467 status = "disabled";
447 }; 468 };
@@ -452,8 +473,9 @@
452 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c"; 473 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
453 reg = <0 0xe6540000 0 0x40>; 474 reg = <0 0xe6540000 0 0x40>;
454 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; 475 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
455 clocks = <&mstp9_clks R8A7793_CLK_I2C3>; 476 clocks = <&cpg CPG_MOD 928>;
456 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 477 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
478 resets = <&cpg 928>;
457 i2c-scl-internal-delay-ns = <6>; 479 i2c-scl-internal-delay-ns = <6>;
458 status = "disabled"; 480 status = "disabled";
459 }; 481 };
@@ -464,8 +486,9 @@
464 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c"; 486 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
465 reg = <0 0xe6520000 0 0x40>; 487 reg = <0 0xe6520000 0 0x40>;
466 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 488 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
467 clocks = <&mstp9_clks R8A7793_CLK_I2C4>; 489 clocks = <&cpg CPG_MOD 927>;
468 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 490 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
491 resets = <&cpg 927>;
469 i2c-scl-internal-delay-ns = <6>; 492 i2c-scl-internal-delay-ns = <6>;
470 status = "disabled"; 493 status = "disabled";
471 }; 494 };
@@ -477,8 +500,9 @@
477 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c"; 500 compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
478 reg = <0 0xe6528000 0 0x40>; 501 reg = <0 0xe6528000 0 0x40>;
479 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 502 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
480 clocks = <&mstp9_clks R8A7793_CLK_I2C5>; 503 clocks = <&cpg CPG_MOD 925>;
481 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 504 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
505 resets = <&cpg 925>;
482 i2c-scl-internal-delay-ns = <110>; 506 i2c-scl-internal-delay-ns = <110>;
483 status = "disabled"; 507 status = "disabled";
484 }; 508 };
@@ -491,11 +515,12 @@
491 "renesas,rmobile-iic"; 515 "renesas,rmobile-iic";
492 reg = <0 0xe60b0000 0 0x425>; 516 reg = <0 0xe60b0000 0 0x425>;
493 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 517 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
494 clocks = <&mstp9_clks R8A7793_CLK_IICDVFS>; 518 clocks = <&cpg CPG_MOD 926>;
495 dmas = <&dmac0 0x77>, <&dmac0 0x78>, 519 dmas = <&dmac0 0x77>, <&dmac0 0x78>,
496 <&dmac1 0x77>, <&dmac1 0x78>; 520 <&dmac1 0x77>, <&dmac1 0x78>;
497 dma-names = "tx", "rx", "tx", "rx"; 521 dma-names = "tx", "rx", "tx", "rx";
498 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 522 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
523 resets = <&cpg 926>;
499 status = "disabled"; 524 status = "disabled";
500 }; 525 };
501 526
@@ -506,11 +531,12 @@
506 "renesas,rmobile-iic"; 531 "renesas,rmobile-iic";
507 reg = <0 0xe6500000 0 0x425>; 532 reg = <0 0xe6500000 0 0x425>;
508 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 533 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
509 clocks = <&mstp3_clks R8A7793_CLK_IIC0>; 534 clocks = <&cpg CPG_MOD 318>;
510 dmas = <&dmac0 0x61>, <&dmac0 0x62>, 535 dmas = <&dmac0 0x61>, <&dmac0 0x62>,
511 <&dmac1 0x61>, <&dmac1 0x62>; 536 <&dmac1 0x61>, <&dmac1 0x62>;
512 dma-names = "tx", "rx", "tx", "rx"; 537 dma-names = "tx", "rx", "tx", "rx";
513 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 538 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
539 resets = <&cpg 318>;
514 status = "disabled"; 540 status = "disabled";
515 }; 541 };
516 542
@@ -521,11 +547,12 @@
521 "renesas,rmobile-iic"; 547 "renesas,rmobile-iic";
522 reg = <0 0xe6510000 0 0x425>; 548 reg = <0 0xe6510000 0 0x425>;
523 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 549 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
524 clocks = <&mstp3_clks R8A7793_CLK_IIC1>; 550 clocks = <&cpg CPG_MOD 323>;
525 dmas = <&dmac0 0x65>, <&dmac0 0x66>, 551 dmas = <&dmac0 0x65>, <&dmac0 0x66>,
526 <&dmac1 0x65>, <&dmac1 0x66>; 552 <&dmac1 0x65>, <&dmac1 0x66>;
527 dma-names = "tx", "rx", "tx", "rx"; 553 dma-names = "tx", "rx", "tx", "rx";
528 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 554 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
555 resets = <&cpg 323>;
529 status = "disabled"; 556 status = "disabled";
530 }; 557 };
531 558
@@ -538,12 +565,13 @@
538 compatible = "renesas,sdhi-r8a7793"; 565 compatible = "renesas,sdhi-r8a7793";
539 reg = <0 0xee100000 0 0x328>; 566 reg = <0 0xee100000 0 0x328>;
540 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; 567 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
541 clocks = <&mstp3_clks R8A7793_CLK_SDHI0>; 568 clocks = <&cpg CPG_MOD 314>;
542 dmas = <&dmac0 0xcd>, <&dmac0 0xce>, 569 dmas = <&dmac0 0xcd>, <&dmac0 0xce>,
543 <&dmac1 0xcd>, <&dmac1 0xce>; 570 <&dmac1 0xcd>, <&dmac1 0xce>;
544 dma-names = "tx", "rx", "tx", "rx"; 571 dma-names = "tx", "rx", "tx", "rx";
545 max-frequency = <195000000>; 572 max-frequency = <195000000>;
546 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 573 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
574 resets = <&cpg 314>;
547 status = "disabled"; 575 status = "disabled";
548 }; 576 };
549 577
@@ -551,12 +579,13 @@
551 compatible = "renesas,sdhi-r8a7793"; 579 compatible = "renesas,sdhi-r8a7793";
552 reg = <0 0xee140000 0 0x100>; 580 reg = <0 0xee140000 0 0x100>;
553 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; 581 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
554 clocks = <&mstp3_clks R8A7793_CLK_SDHI1>; 582 clocks = <&cpg CPG_MOD 312>;
555 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>, 583 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>,
556 <&dmac1 0xc1>, <&dmac1 0xc2>; 584 <&dmac1 0xc1>, <&dmac1 0xc2>;
557 dma-names = "tx", "rx", "tx", "rx"; 585 dma-names = "tx", "rx", "tx", "rx";
558 max-frequency = <97500000>; 586 max-frequency = <97500000>;
559 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 587 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
588 resets = <&cpg 312>;
560 status = "disabled"; 589 status = "disabled";
561 }; 590 };
562 591
@@ -564,12 +593,13 @@
564 compatible = "renesas,sdhi-r8a7793"; 593 compatible = "renesas,sdhi-r8a7793";
565 reg = <0 0xee160000 0 0x100>; 594 reg = <0 0xee160000 0 0x100>;
566 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 595 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
567 clocks = <&mstp3_clks R8A7793_CLK_SDHI2>; 596 clocks = <&cpg CPG_MOD 311>;
568 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>, 597 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>,
569 <&dmac1 0xd3>, <&dmac1 0xd4>; 598 <&dmac1 0xd3>, <&dmac1 0xd4>;
570 dma-names = "tx", "rx", "tx", "rx"; 599 dma-names = "tx", "rx", "tx", "rx";
571 max-frequency = <97500000>; 600 max-frequency = <97500000>;
572 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 601 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
602 resets = <&cpg 311>;
573 status = "disabled"; 603 status = "disabled";
574 }; 604 };
575 605
@@ -577,11 +607,12 @@
577 compatible = "renesas,mmcif-r8a7793", "renesas,sh-mmcif"; 607 compatible = "renesas,mmcif-r8a7793", "renesas,sh-mmcif";
578 reg = <0 0xee200000 0 0x80>; 608 reg = <0 0xee200000 0 0x80>;
579 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; 609 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
580 clocks = <&mstp3_clks R8A7793_CLK_MMCIF0>; 610 clocks = <&cpg CPG_MOD 315>;
581 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>, 611 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>,
582 <&dmac1 0xd1>, <&dmac1 0xd2>; 612 <&dmac1 0xd1>, <&dmac1 0xd2>;
583 dma-names = "tx", "rx", "tx", "rx"; 613 dma-names = "tx", "rx", "tx", "rx";
584 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 614 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
615 resets = <&cpg 315>;
585 reg-io-width = <4>; 616 reg-io-width = <4>;
586 status = "disabled"; 617 status = "disabled";
587 max-frequency = <97500000>; 618 max-frequency = <97500000>;
@@ -592,12 +623,13 @@
592 "renesas,rcar-gen2-scifa", "renesas,scifa"; 623 "renesas,rcar-gen2-scifa", "renesas,scifa";
593 reg = <0 0xe6c40000 0 64>; 624 reg = <0 0xe6c40000 0 64>;
594 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; 625 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
595 clocks = <&mstp2_clks R8A7793_CLK_SCIFA0>; 626 clocks = <&cpg CPG_MOD 204>;
596 clock-names = "fck"; 627 clock-names = "fck";
597 dmas = <&dmac0 0x21>, <&dmac0 0x22>, 628 dmas = <&dmac0 0x21>, <&dmac0 0x22>,
598 <&dmac1 0x21>, <&dmac1 0x22>; 629 <&dmac1 0x21>, <&dmac1 0x22>;
599 dma-names = "tx", "rx", "tx", "rx"; 630 dma-names = "tx", "rx", "tx", "rx";
600 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 631 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
632 resets = <&cpg 204>;
601 status = "disabled"; 633 status = "disabled";
602 }; 634 };
603 635
@@ -606,12 +638,13 @@
606 "renesas,rcar-gen2-scifa", "renesas,scifa"; 638 "renesas,rcar-gen2-scifa", "renesas,scifa";
607 reg = <0 0xe6c50000 0 64>; 639 reg = <0 0xe6c50000 0 64>;
608 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; 640 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
609 clocks = <&mstp2_clks R8A7793_CLK_SCIFA1>; 641 clocks = <&cpg CPG_MOD 203>;
610 clock-names = "fck"; 642 clock-names = "fck";
611 dmas = <&dmac0 0x25>, <&dmac0 0x26>, 643 dmas = <&dmac0 0x25>, <&dmac0 0x26>,
612 <&dmac1 0x25>, <&dmac1 0x26>; 644 <&dmac1 0x25>, <&dmac1 0x26>;
613 dma-names = "tx", "rx", "tx", "rx"; 645 dma-names = "tx", "rx", "tx", "rx";
614 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 646 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
647 resets = <&cpg 203>;
615 status = "disabled"; 648 status = "disabled";
616 }; 649 };
617 650
@@ -620,12 +653,13 @@
620 "renesas,rcar-gen2-scifa", "renesas,scifa"; 653 "renesas,rcar-gen2-scifa", "renesas,scifa";
621 reg = <0 0xe6c60000 0 64>; 654 reg = <0 0xe6c60000 0 64>;
622 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>; 655 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
623 clocks = <&mstp2_clks R8A7793_CLK_SCIFA2>; 656 clocks = <&cpg CPG_MOD 202>;
624 clock-names = "fck"; 657 clock-names = "fck";
625 dmas = <&dmac0 0x27>, <&dmac0 0x28>, 658 dmas = <&dmac0 0x27>, <&dmac0 0x28>,
626 <&dmac1 0x27>, <&dmac1 0x28>; 659 <&dmac1 0x27>, <&dmac1 0x28>;
627 dma-names = "tx", "rx", "tx", "rx"; 660 dma-names = "tx", "rx", "tx", "rx";
628 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 661 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
662 resets = <&cpg 202>;
629 status = "disabled"; 663 status = "disabled";
630 }; 664 };
631 665
@@ -634,12 +668,13 @@
634 "renesas,rcar-gen2-scifa", "renesas,scifa"; 668 "renesas,rcar-gen2-scifa", "renesas,scifa";
635 reg = <0 0xe6c70000 0 64>; 669 reg = <0 0xe6c70000 0 64>;
636 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 670 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
637 clocks = <&mstp11_clks R8A7793_CLK_SCIFA3>; 671 clocks = <&cpg CPG_MOD 1106>;
638 clock-names = "fck"; 672 clock-names = "fck";
639 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>, 673 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>,
640 <&dmac1 0x1b>, <&dmac1 0x1c>; 674 <&dmac1 0x1b>, <&dmac1 0x1c>;
641 dma-names = "tx", "rx", "tx", "rx"; 675 dma-names = "tx", "rx", "tx", "rx";
642 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 676 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
677 resets = <&cpg 1106>;
643 status = "disabled"; 678 status = "disabled";
644 }; 679 };
645 680
@@ -648,12 +683,13 @@
648 "renesas,rcar-gen2-scifa", "renesas,scifa"; 683 "renesas,rcar-gen2-scifa", "renesas,scifa";
649 reg = <0 0xe6c78000 0 64>; 684 reg = <0 0xe6c78000 0 64>;
650 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 685 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
651 clocks = <&mstp11_clks R8A7793_CLK_SCIFA4>; 686 clocks = <&cpg CPG_MOD 1107>;
652 clock-names = "fck"; 687 clock-names = "fck";
653 dmas = <&dmac0 0x1f>, <&dmac0 0x20>, 688 dmas = <&dmac0 0x1f>, <&dmac0 0x20>,
654 <&dmac1 0x1f>, <&dmac1 0x20>; 689 <&dmac1 0x1f>, <&dmac1 0x20>;
655 dma-names = "tx", "rx", "tx", "rx"; 690 dma-names = "tx", "rx", "tx", "rx";
656 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 691 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
692 resets = <&cpg 1107>;
657 status = "disabled"; 693 status = "disabled";
658 }; 694 };
659 695
@@ -662,12 +698,13 @@
662 "renesas,rcar-gen2-scifa", "renesas,scifa"; 698 "renesas,rcar-gen2-scifa", "renesas,scifa";
663 reg = <0 0xe6c80000 0 64>; 699 reg = <0 0xe6c80000 0 64>;
664 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 700 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
665 clocks = <&mstp11_clks R8A7793_CLK_SCIFA5>; 701 clocks = <&cpg CPG_MOD 1108>;
666 clock-names = "fck"; 702 clock-names = "fck";
667 dmas = <&dmac0 0x23>, <&dmac0 0x24>, 703 dmas = <&dmac0 0x23>, <&dmac0 0x24>,
668 <&dmac1 0x23>, <&dmac1 0x24>; 704 <&dmac1 0x23>, <&dmac1 0x24>;
669 dma-names = "tx", "rx", "tx", "rx"; 705 dma-names = "tx", "rx", "tx", "rx";
670 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 706 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
707 resets = <&cpg 1108>;
671 status = "disabled"; 708 status = "disabled";
672 }; 709 };
673 710
@@ -676,12 +713,13 @@
676 "renesas,rcar-gen2-scifb", "renesas,scifb"; 713 "renesas,rcar-gen2-scifb", "renesas,scifb";
677 reg = <0 0xe6c20000 0 0x100>; 714 reg = <0 0xe6c20000 0 0x100>;
678 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 715 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
679 clocks = <&mstp2_clks R8A7793_CLK_SCIFB0>; 716 clocks = <&cpg CPG_MOD 206>;
680 clock-names = "fck"; 717 clock-names = "fck";
681 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>, 718 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>,
682 <&dmac1 0x3d>, <&dmac1 0x3e>; 719 <&dmac1 0x3d>, <&dmac1 0x3e>;
683 dma-names = "tx", "rx", "tx", "rx"; 720 dma-names = "tx", "rx", "tx", "rx";
684 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 721 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
722 resets = <&cpg 206>;
685 status = "disabled"; 723 status = "disabled";
686 }; 724 };
687 725
@@ -690,12 +728,13 @@
690 "renesas,rcar-gen2-scifb", "renesas,scifb"; 728 "renesas,rcar-gen2-scifb", "renesas,scifb";
691 reg = <0 0xe6c30000 0 0x100>; 729 reg = <0 0xe6c30000 0 0x100>;
692 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 730 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
693 clocks = <&mstp2_clks R8A7793_CLK_SCIFB1>; 731 clocks = <&cpg CPG_MOD 207>;
694 clock-names = "fck"; 732 clock-names = "fck";
695 dmas = <&dmac0 0x19>, <&dmac0 0x1a>, 733 dmas = <&dmac0 0x19>, <&dmac0 0x1a>,
696 <&dmac1 0x19>, <&dmac1 0x1a>; 734 <&dmac1 0x19>, <&dmac1 0x1a>;
697 dma-names = "tx", "rx", "tx", "rx"; 735 dma-names = "tx", "rx", "tx", "rx";
698 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 736 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
737 resets = <&cpg 207>;
699 status = "disabled"; 738 status = "disabled";
700 }; 739 };
701 740
@@ -704,12 +743,13 @@
704 "renesas,rcar-gen2-scifb", "renesas,scifb"; 743 "renesas,rcar-gen2-scifb", "renesas,scifb";
705 reg = <0 0xe6ce0000 0 0x100>; 744 reg = <0 0xe6ce0000 0 0x100>;
706 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>; 745 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
707 clocks = <&mstp2_clks R8A7793_CLK_SCIFB2>; 746 clocks = <&cpg CPG_MOD 216>;
708 clock-names = "fck"; 747 clock-names = "fck";
709 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>, 748 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>,
710 <&dmac1 0x1d>, <&dmac1 0x1e>; 749 <&dmac1 0x1d>, <&dmac1 0x1e>;
711 dma-names = "tx", "rx", "tx", "rx"; 750 dma-names = "tx", "rx", "tx", "rx";
712 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 751 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
752 resets = <&cpg 216>;
713 status = "disabled"; 753 status = "disabled";
714 }; 754 };
715 755
@@ -718,13 +758,14 @@
718 "renesas,scif"; 758 "renesas,scif";
719 reg = <0 0xe6e60000 0 64>; 759 reg = <0 0xe6e60000 0 64>;
720 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; 760 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
721 clocks = <&mstp7_clks R8A7793_CLK_SCIF0>, <&zs_clk>, 761 clocks = <&cpg CPG_MOD 721>, <&cpg CPG_CORE R8A7793_CLK_ZS>,
722 <&scif_clk>; 762 <&scif_clk>;
723 clock-names = "fck", "brg_int", "scif_clk"; 763 clock-names = "fck", "brg_int", "scif_clk";
724 dmas = <&dmac0 0x29>, <&dmac0 0x2a>, 764 dmas = <&dmac0 0x29>, <&dmac0 0x2a>,
725 <&dmac1 0x29>, <&dmac1 0x2a>; 765 <&dmac1 0x29>, <&dmac1 0x2a>;
726 dma-names = "tx", "rx", "tx", "rx"; 766 dma-names = "tx", "rx", "tx", "rx";
727 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 767 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
768 resets = <&cpg 721>;
728 status = "disabled"; 769 status = "disabled";
729 }; 770 };
730 771
@@ -733,13 +774,14 @@
733 "renesas,scif"; 774 "renesas,scif";
734 reg = <0 0xe6e68000 0 64>; 775 reg = <0 0xe6e68000 0 64>;
735 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; 776 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
736 clocks = <&mstp7_clks R8A7793_CLK_SCIF1>, <&zs_clk>, 777 clocks = <&cpg CPG_MOD 720>, <&cpg CPG_CORE R8A7793_CLK_ZS>,
737 <&scif_clk>; 778 <&scif_clk>;
738 clock-names = "fck", "brg_int", "scif_clk"; 779 clock-names = "fck", "brg_int", "scif_clk";
739 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>, 780 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>,
740 <&dmac1 0x2d>, <&dmac1 0x2e>; 781 <&dmac1 0x2d>, <&dmac1 0x2e>;
741 dma-names = "tx", "rx", "tx", "rx"; 782 dma-names = "tx", "rx", "tx", "rx";
742 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 783 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
784 resets = <&cpg 720>;
743 status = "disabled"; 785 status = "disabled";
744 }; 786 };
745 787
@@ -748,13 +790,14 @@
748 "renesas,scif"; 790 "renesas,scif";
749 reg = <0 0xe6e58000 0 64>; 791 reg = <0 0xe6e58000 0 64>;
750 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 792 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
751 clocks = <&mstp7_clks R8A7793_CLK_SCIF2>, <&zs_clk>, 793 clocks = <&cpg CPG_MOD 719>, <&cpg CPG_CORE R8A7793_CLK_ZS>,
752 <&scif_clk>; 794 <&scif_clk>;
753 clock-names = "fck", "brg_int", "scif_clk"; 795 clock-names = "fck", "brg_int", "scif_clk";
754 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>, 796 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>,
755 <&dmac1 0x2b>, <&dmac1 0x2c>; 797 <&dmac1 0x2b>, <&dmac1 0x2c>;
756 dma-names = "tx", "rx", "tx", "rx"; 798 dma-names = "tx", "rx", "tx", "rx";
757 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 799 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
800 resets = <&cpg 719>;
758 status = "disabled"; 801 status = "disabled";
759 }; 802 };
760 803
@@ -763,13 +806,14 @@
763 "renesas,scif"; 806 "renesas,scif";
764 reg = <0 0xe6ea8000 0 64>; 807 reg = <0 0xe6ea8000 0 64>;
765 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 808 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
766 clocks = <&mstp7_clks R8A7793_CLK_SCIF3>, <&zs_clk>, 809 clocks = <&cpg CPG_MOD 718>, <&cpg CPG_CORE R8A7793_CLK_ZS>,
767 <&scif_clk>; 810 <&scif_clk>;
768 clock-names = "fck", "brg_int", "scif_clk"; 811 clock-names = "fck", "brg_int", "scif_clk";
769 dmas = <&dmac0 0x2f>, <&dmac0 0x30>, 812 dmas = <&dmac0 0x2f>, <&dmac0 0x30>,
770 <&dmac1 0x2f>, <&dmac1 0x30>; 813 <&dmac1 0x2f>, <&dmac1 0x30>;
771 dma-names = "tx", "rx", "tx", "rx"; 814 dma-names = "tx", "rx", "tx", "rx";
772 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 815 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
816 resets = <&cpg 718>;
773 status = "disabled"; 817 status = "disabled";
774 }; 818 };
775 819
@@ -778,13 +822,14 @@
778 "renesas,scif"; 822 "renesas,scif";
779 reg = <0 0xe6ee0000 0 64>; 823 reg = <0 0xe6ee0000 0 64>;
780 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 824 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
781 clocks = <&mstp7_clks R8A7793_CLK_SCIF4>, <&zs_clk>, 825 clocks = <&cpg CPG_MOD 715>, <&cpg CPG_CORE R8A7793_CLK_ZS>,
782 <&scif_clk>; 826 <&scif_clk>;
783 clock-names = "fck", "brg_int", "scif_clk"; 827 clock-names = "fck", "brg_int", "scif_clk";
784 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>, 828 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>,
785 <&dmac1 0xfb>, <&dmac1 0xfc>; 829 <&dmac1 0xfb>, <&dmac1 0xfc>;
786 dma-names = "tx", "rx", "tx", "rx"; 830 dma-names = "tx", "rx", "tx", "rx";
787 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 831 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
832 resets = <&cpg 715>;
788 status = "disabled"; 833 status = "disabled";
789 }; 834 };
790 835
@@ -793,13 +838,14 @@
793 "renesas,scif"; 838 "renesas,scif";
794 reg = <0 0xe6ee8000 0 64>; 839 reg = <0 0xe6ee8000 0 64>;
795 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 840 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
796 clocks = <&mstp7_clks R8A7793_CLK_SCIF5>, <&zs_clk>, 841 clocks = <&cpg CPG_MOD 714>, <&cpg CPG_CORE R8A7793_CLK_ZS>,
797 <&scif_clk>; 842 <&scif_clk>;
798 clock-names = "fck", "brg_int", "scif_clk"; 843 clock-names = "fck", "brg_int", "scif_clk";
799 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>, 844 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>,
800 <&dmac1 0xfd>, <&dmac1 0xfe>; 845 <&dmac1 0xfd>, <&dmac1 0xfe>;
801 dma-names = "tx", "rx", "tx", "rx"; 846 dma-names = "tx", "rx", "tx", "rx";
802 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 847 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
848 resets = <&cpg 714>;
803 status = "disabled"; 849 status = "disabled";
804 }; 850 };
805 851
@@ -808,13 +854,14 @@
808 "renesas,rcar-gen2-hscif", "renesas,hscif"; 854 "renesas,rcar-gen2-hscif", "renesas,hscif";
809 reg = <0 0xe62c0000 0 96>; 855 reg = <0 0xe62c0000 0 96>;
810 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 856 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
811 clocks = <&mstp7_clks R8A7793_CLK_HSCIF0>, <&zs_clk>, 857 clocks = <&cpg CPG_MOD 717>, <&cpg CPG_CORE R8A7793_CLK_ZS>,
812 <&scif_clk>; 858 <&scif_clk>;
813 clock-names = "fck", "brg_int", "scif_clk"; 859 clock-names = "fck", "brg_int", "scif_clk";
814 dmas = <&dmac0 0x39>, <&dmac0 0x3a>, 860 dmas = <&dmac0 0x39>, <&dmac0 0x3a>,
815 <&dmac1 0x39>, <&dmac1 0x3a>; 861 <&dmac1 0x39>, <&dmac1 0x3a>;
816 dma-names = "tx", "rx", "tx", "rx"; 862 dma-names = "tx", "rx", "tx", "rx";
817 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 863 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
864 resets = <&cpg 717>;
818 status = "disabled"; 865 status = "disabled";
819 }; 866 };
820 867
@@ -823,13 +870,14 @@
823 "renesas,rcar-gen2-hscif", "renesas,hscif"; 870 "renesas,rcar-gen2-hscif", "renesas,hscif";
824 reg = <0 0xe62c8000 0 96>; 871 reg = <0 0xe62c8000 0 96>;
825 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; 872 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
826 clocks = <&mstp7_clks R8A7793_CLK_HSCIF1>, <&zs_clk>, 873 clocks = <&cpg CPG_MOD 716>, <&cpg CPG_CORE R8A7793_CLK_ZS>,
827 <&scif_clk>; 874 <&scif_clk>;
828 clock-names = "fck", "brg_int", "scif_clk"; 875 clock-names = "fck", "brg_int", "scif_clk";
829 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>, 876 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>,
830 <&dmac1 0x4d>, <&dmac1 0x4e>; 877 <&dmac1 0x4d>, <&dmac1 0x4e>;
831 dma-names = "tx", "rx", "tx", "rx"; 878 dma-names = "tx", "rx", "tx", "rx";
832 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 879 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
880 resets = <&cpg 716>;
833 status = "disabled"; 881 status = "disabled";
834 }; 882 };
835 883
@@ -838,13 +886,14 @@
838 "renesas,rcar-gen2-hscif", "renesas,hscif"; 886 "renesas,rcar-gen2-hscif", "renesas,hscif";
839 reg = <0 0xe62d0000 0 96>; 887 reg = <0 0xe62d0000 0 96>;
840 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 888 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
841 clocks = <&mstp7_clks R8A7793_CLK_HSCIF2>, <&zs_clk>, 889 clocks = <&cpg CPG_MOD 713>, <&cpg CPG_CORE R8A7793_CLK_ZS>,
842 <&scif_clk>; 890 <&scif_clk>;
843 clock-names = "fck", "brg_int", "scif_clk"; 891 clock-names = "fck", "brg_int", "scif_clk";
844 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>, 892 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>,
845 <&dmac1 0x3b>, <&dmac1 0x3c>; 893 <&dmac1 0x3b>, <&dmac1 0x3c>;
846 dma-names = "tx", "rx", "tx", "rx"; 894 dma-names = "tx", "rx", "tx", "rx";
847 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 895 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
896 resets = <&cpg 713>;
848 status = "disabled"; 897 status = "disabled";
849 }; 898 };
850 899
@@ -870,8 +919,9 @@
870 compatible = "renesas,ether-r8a7793"; 919 compatible = "renesas,ether-r8a7793";
871 reg = <0 0xee700000 0 0x400>; 920 reg = <0 0xee700000 0 0x400>;
872 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>; 921 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
873 clocks = <&mstp8_clks R8A7793_CLK_ETHER>; 922 clocks = <&cpg CPG_MOD 813>;
874 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 923 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
924 resets = <&cpg 813>;
875 phy-mode = "rmii"; 925 phy-mode = "rmii";
876 #address-cells = <1>; 926 #address-cells = <1>;
877 #size-cells = <0>; 927 #size-cells = <0>;
@@ -882,8 +932,9 @@
882 compatible = "renesas,vin-r8a7793", "renesas,rcar-gen2-vin"; 932 compatible = "renesas,vin-r8a7793", "renesas,rcar-gen2-vin";
883 reg = <0 0xe6ef0000 0 0x1000>; 933 reg = <0 0xe6ef0000 0 0x1000>;
884 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 934 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
885 clocks = <&mstp8_clks R8A7793_CLK_VIN0>; 935 clocks = <&cpg CPG_MOD 811>;
886 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 936 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
937 resets = <&cpg 811>;
887 status = "disabled"; 938 status = "disabled";
888 }; 939 };
889 940
@@ -891,8 +942,9 @@
891 compatible = "renesas,vin-r8a7793", "renesas,rcar-gen2-vin"; 942 compatible = "renesas,vin-r8a7793", "renesas,rcar-gen2-vin";
892 reg = <0 0xe6ef1000 0 0x1000>; 943 reg = <0 0xe6ef1000 0 0x1000>;
893 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; 944 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
894 clocks = <&mstp8_clks R8A7793_CLK_VIN1>; 945 clocks = <&cpg CPG_MOD 810>;
895 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 946 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
947 resets = <&cpg 810>;
896 status = "disabled"; 948 status = "disabled";
897 }; 949 };
898 950
@@ -900,8 +952,9 @@
900 compatible = "renesas,vin-r8a7793", "renesas,rcar-gen2-vin"; 952 compatible = "renesas,vin-r8a7793", "renesas,rcar-gen2-vin";
901 reg = <0 0xe6ef2000 0 0x1000>; 953 reg = <0 0xe6ef2000 0 0x1000>;
902 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; 954 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
903 clocks = <&mstp8_clks R8A7793_CLK_VIN2>; 955 clocks = <&cpg CPG_MOD 809>;
904 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 956 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
957 resets = <&cpg 809>;
905 status = "disabled"; 958 status = "disabled";
906 }; 959 };
907 960
@@ -909,11 +962,12 @@
909 compatible = "renesas,qspi-r8a7793", "renesas,qspi"; 962 compatible = "renesas,qspi-r8a7793", "renesas,qspi";
910 reg = <0 0xe6b10000 0 0x2c>; 963 reg = <0 0xe6b10000 0 0x2c>;
911 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 964 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
912 clocks = <&mstp9_clks R8A7793_CLK_QSPI_MOD>; 965 clocks = <&cpg CPG_MOD 917>;
913 dmas = <&dmac0 0x17>, <&dmac0 0x18>, 966 dmas = <&dmac0 0x17>, <&dmac0 0x18>,
914 <&dmac1 0x17>, <&dmac1 0x18>; 967 <&dmac1 0x17>, <&dmac1 0x18>;
915 dma-names = "tx", "rx", "tx", "rx"; 968 dma-names = "tx", "rx", "tx", "rx";
916 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 969 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
970 resets = <&cpg 917>;
917 num-cs = <1>; 971 num-cs = <1>;
918 #address-cells = <1>; 972 #address-cells = <1>;
919 #size-cells = <0>; 973 #size-cells = <0>;
@@ -927,9 +981,9 @@
927 reg-names = "du", "lvds.0"; 981 reg-names = "du", "lvds.0";
928 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, 982 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
929 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; 983 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
930 clocks = <&mstp7_clks R8A7793_CLK_DU0>, 984 clocks = <&cpg CPG_MOD 724>,
931 <&mstp7_clks R8A7793_CLK_DU1>, 985 <&cpg CPG_MOD 723>,
932 <&mstp7_clks R8A7793_CLK_LVDS0>; 986 <&cpg CPG_MOD 726>;
933 clock-names = "du.0", "du.1", "lvds.0"; 987 clock-names = "du.0", "du.1", "lvds.0";
934 status = "disabled"; 988 status = "disabled";
935 989
@@ -954,10 +1008,11 @@
954 compatible = "renesas,can-r8a7793", "renesas,rcar-gen2-can"; 1008 compatible = "renesas,can-r8a7793", "renesas,rcar-gen2-can";
955 reg = <0 0xe6e80000 0 0x1000>; 1009 reg = <0 0xe6e80000 0 0x1000>;
956 interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>; 1010 interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
957 clocks = <&mstp9_clks R8A7793_CLK_RCAN0>, 1011 clocks = <&cpg CPG_MOD 916>, <&cpg CPG_CORE R8A7793_CLK_RCAN>,
958 <&cpg_clocks R8A7793_CLK_RCAN>, <&can_clk>; 1012 <&can_clk>;
959 clock-names = "clkp1", "clkp2", "can_clk"; 1013 clock-names = "clkp1", "clkp2", "can_clk";
960 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 1014 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
1015 resets = <&cpg 916>;
961 status = "disabled"; 1016 status = "disabled";
962 }; 1017 };
963 1018
@@ -965,376 +1020,74 @@
965 compatible = "renesas,can-r8a7793", "renesas,rcar-gen2-can"; 1020 compatible = "renesas,can-r8a7793", "renesas,rcar-gen2-can";
966 reg = <0 0xe6e88000 0 0x1000>; 1021 reg = <0 0xe6e88000 0 0x1000>;
967 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; 1022 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
968 clocks = <&mstp9_clks R8A7793_CLK_RCAN1>, 1023 clocks = <&cpg CPG_MOD 915>, <&cpg CPG_CORE R8A7793_CLK_RCAN>,
969 <&cpg_clocks R8A7793_CLK_RCAN>, <&can_clk>; 1024 <&can_clk>;
970 clock-names = "clkp1", "clkp2", "can_clk"; 1025 clock-names = "clkp1", "clkp2", "can_clk";
971 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 1026 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
1027 resets = <&cpg 915>;
972 status = "disabled"; 1028 status = "disabled";
973 }; 1029 };
974 1030
975 clocks { 1031 /* External root clock */
976 #address-cells = <2>; 1032 extal_clk: extal {
977 #size-cells = <2>; 1033 compatible = "fixed-clock";
978 ranges; 1034 #clock-cells = <0>;
979 1035 /* This value must be overridden by the board. */
980 /* External root clock */ 1036 clock-frequency = <0>;
981 extal_clk: extal { 1037 };
982 compatible = "fixed-clock";
983 #clock-cells = <0>;
984 /* This value must be overridden by the board. */
985 clock-frequency = <0>;
986 };
987
988 /*
989 * The external audio clocks are configured as 0 Hz fixed frequency clocks by
990 * default. Boards that provide audio clocks should override them.
991 */
992 audio_clk_a: audio_clk_a {
993 compatible = "fixed-clock";
994 #clock-cells = <0>;
995 clock-frequency = <0>;
996 };
997 audio_clk_b: audio_clk_b {
998 compatible = "fixed-clock";
999 #clock-cells = <0>;
1000 clock-frequency = <0>;
1001 };
1002 audio_clk_c: audio_clk_c {
1003 compatible = "fixed-clock";
1004 #clock-cells = <0>;
1005 clock-frequency = <0>;
1006 };
1007
1008 /* External USB clock - can be overridden by the board */
1009 usb_extal_clk: usb_extal {
1010 compatible = "fixed-clock";
1011 #clock-cells = <0>;
1012 clock-frequency = <48000000>;
1013 };
1014
1015 /* External CAN clock */
1016 can_clk: can {
1017 compatible = "fixed-clock";
1018 #clock-cells = <0>;
1019 /* This value must be overridden by the board. */
1020 clock-frequency = <0>;
1021 };
1022 1038
1023 /* External SCIF clock */ 1039 /*
1024 scif_clk: scif { 1040 * The external audio clocks are configured as 0 Hz fixed frequency
1025 compatible = "fixed-clock"; 1041 * clocks by default.
1026 #clock-cells = <0>; 1042 * Boards that provide audio clocks should override them.
1027 /* This value must be overridden by the board. */ 1043 */
1028 clock-frequency = <0>; 1044 audio_clk_a: audio_clk_a {
1029 }; 1045 compatible = "fixed-clock";
1046 #clock-cells = <0>;
1047 clock-frequency = <0>;
1048 };
1049 audio_clk_b: audio_clk_b {
1050 compatible = "fixed-clock";
1051 #clock-cells = <0>;
1052 clock-frequency = <0>;
1053 };
1054 audio_clk_c: audio_clk_c {
1055 compatible = "fixed-clock";
1056 #clock-cells = <0>;
1057 clock-frequency = <0>;
1058 };
1030 1059
1031 /* Special CPG clocks */ 1060 /* External USB clock - can be overridden by the board */
1032 cpg_clocks: cpg_clocks@e6150000 { 1061 usb_extal_clk: usb_extal {
1033 compatible = "renesas,r8a7793-cpg-clocks", 1062 compatible = "fixed-clock";
1034 "renesas,rcar-gen2-cpg-clocks"; 1063 #clock-cells = <0>;
1035 reg = <0 0xe6150000 0 0x1000>; 1064 clock-frequency = <48000000>;
1036 clocks = <&extal_clk &usb_extal_clk>; 1065 };
1037 #clock-cells = <1>;
1038 clock-output-names = "main", "pll0", "pll1", "pll3",
1039 "lb", "qspi", "sdh", "sd0", "z",
1040 "rcan", "adsp";
1041 #power-domain-cells = <0>;
1042 };
1043 1066
1044 /* Variable factor clocks */ 1067 /* External CAN clock */
1045 sd2_clk: sd2@e6150078 { 1068 can_clk: can {
1046 compatible = "renesas,r8a7793-div6-clock", 1069 compatible = "fixed-clock";
1047 "renesas,cpg-div6-clock"; 1070 #clock-cells = <0>;
1048 reg = <0 0xe6150078 0 4>; 1071 /* This value must be overridden by the board. */
1049 clocks = <&pll1_div2_clk>; 1072 clock-frequency = <0>;
1050 #clock-cells = <0>; 1073 };
1051 };
1052 sd3_clk: sd3@e615026c {
1053 compatible = "renesas,r8a7793-div6-clock",
1054 "renesas,cpg-div6-clock";
1055 reg = <0 0xe615026c 0 4>;
1056 clocks = <&pll1_div2_clk>;
1057 #clock-cells = <0>;
1058 };
1059 mmc0_clk: mmc0@e6150240 {
1060 compatible = "renesas,r8a7793-div6-clock",
1061 "renesas,cpg-div6-clock";
1062 reg = <0 0xe6150240 0 4>;
1063 clocks = <&pll1_div2_clk>;
1064 #clock-cells = <0>;
1065 };
1066 1074
1067 /* Fixed factor clocks */ 1075 /* External SCIF clock */
1068 pll1_div2_clk: pll1_div2 { 1076 scif_clk: scif {
1069 compatible = "fixed-factor-clock"; 1077 compatible = "fixed-clock";
1070 clocks = <&cpg_clocks R8A7793_CLK_PLL1>; 1078 #clock-cells = <0>;
1071 #clock-cells = <0>; 1079 /* This value must be overridden by the board. */
1072 clock-div = <2>; 1080 clock-frequency = <0>;
1073 clock-mult = <1>; 1081 };
1074 };
1075 zg_clk: zg {
1076 compatible = "fixed-factor-clock";
1077 clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
1078 #clock-cells = <0>;
1079 clock-div = <5>;
1080 clock-mult = <1>;
1081 };
1082 zx_clk: zx {
1083 compatible = "fixed-factor-clock";
1084 clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
1085 #clock-cells = <0>;
1086 clock-div = <3>;
1087 clock-mult = <1>;
1088 };
1089 zs_clk: zs {
1090 compatible = "fixed-factor-clock";
1091 clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
1092 #clock-cells = <0>;
1093 clock-div = <6>;
1094 clock-mult = <1>;
1095 };
1096 hp_clk: hp {
1097 compatible = "fixed-factor-clock";
1098 clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
1099 #clock-cells = <0>;
1100 clock-div = <12>;
1101 clock-mult = <1>;
1102 };
1103 p_clk: p {
1104 compatible = "fixed-factor-clock";
1105 clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
1106 #clock-cells = <0>;
1107 clock-div = <24>;
1108 clock-mult = <1>;
1109 };
1110 m2_clk: m2 {
1111 compatible = "fixed-factor-clock";
1112 clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
1113 #clock-cells = <0>;
1114 clock-div = <8>;
1115 clock-mult = <1>;
1116 };
1117 rclk_clk: rclk {
1118 compatible = "fixed-factor-clock";
1119 clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
1120 #clock-cells = <0>;
1121 clock-div = <(48 * 1024)>;
1122 clock-mult = <1>;
1123 };
1124 mp_clk: mp {
1125 compatible = "fixed-factor-clock";
1126 clocks = <&pll1_div2_clk>;
1127 #clock-cells = <0>;
1128 clock-div = <15>;
1129 clock-mult = <1>;
1130 };
1131 cp_clk: cp {
1132 compatible = "fixed-factor-clock";
1133 clocks = <&extal_clk>;
1134 #clock-cells = <0>;
1135 clock-div = <2>;
1136 clock-mult = <1>;
1137 };
1138 1082
1139 /* Gate clocks */ 1083 /* Special CPG clocks */
1140 mstp1_clks: mstp1_clks@e6150134 { 1084 cpg: clock-controller@e6150000 {
1141 compatible = "renesas,r8a7793-mstp-clocks", 1085 compatible = "renesas,r8a7793-cpg-mssr";
1142 "renesas,cpg-mstp-clocks"; 1086 reg = <0 0xe6150000 0 0x1000>;
1143 reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>; 1087 clocks = <&extal_clk>, <&usb_extal_clk>;
1144 clocks = <&zs_clk>, <&zs_clk>, <&zs_clk>, <&p_clk>, 1088 clock-names = "extal", "usb_extal";
1145 <&zg_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>, 1089 #clock-cells = <2>;
1146 <&p_clk>, <&p_clk>, <&rclk_clk>, <&cp_clk>, 1090 #power-domain-cells = <0>;
1147 <&zs_clk>, <&zs_clk>, <&zs_clk>;
1148 #clock-cells = <1>;
1149 clock-indices = <
1150 R8A7793_CLK_VCP0 R8A7793_CLK_VPC0
1151 R8A7793_CLK_SSP1 R8A7793_CLK_TMU1
1152 R8A7793_CLK_3DG R8A7793_CLK_2DDMAC
1153 R8A7793_CLK_FDP1_1 R8A7793_CLK_FDP1_0
1154 R8A7793_CLK_TMU3 R8A7793_CLK_TMU2
1155 R8A7793_CLK_CMT0 R8A7793_CLK_TMU0
1156 R8A7793_CLK_VSP1_DU1 R8A7793_CLK_VSP1_DU0
1157 R8A7793_CLK_VSP1_S
1158 >;
1159 clock-output-names =
1160 "vcp0", "vpc0", "ssp_dev", "tmu1",
1161 "pvrsrvkm", "tddmac", "fdp1", "fdp0",
1162 "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1",
1163 "vsp1-du0", "vsps";
1164 };
1165 mstp2_clks: mstp2_clks@e6150138 {
1166 compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks";
1167 reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>;
1168 clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>,
1169 <&mp_clk>, <&mp_clk>, <&zs_clk>, <&zs_clk>;
1170 #clock-cells = <1>;
1171 clock-indices = <
1172 R8A7793_CLK_SCIFA2 R8A7793_CLK_SCIFA1 R8A7793_CLK_SCIFA0
1173 R8A7793_CLK_SCIFB0 R8A7793_CLK_SCIFB1 R8A7793_CLK_SCIFB2
1174 R8A7793_CLK_SYS_DMAC1 R8A7793_CLK_SYS_DMAC0
1175 >;
1176 clock-output-names =
1177 "scifa2", "scifa1", "scifa0", "scifb0",
1178 "scifb1", "scifb2", "sys-dmac1", "sys-dmac0";
1179 };
1180 mstp3_clks: mstp3_clks@e615013c {
1181 compatible = "renesas,r8a7793-mstp-clocks",
1182 "renesas,cpg-mstp-clocks";
1183 reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>;
1184 clocks = <&cp_clk>, <&sd3_clk>, <&sd2_clk>,
1185 <&cpg_clocks R8A7793_CLK_SD0>, <&mmc0_clk>,
1186 <&hp_clk>, <&mp_clk>, <&hp_clk>, <&mp_clk>,
1187 <&rclk_clk>, <&hp_clk>, <&hp_clk>;
1188 #clock-cells = <1>;
1189 clock-indices = <
1190 R8A7793_CLK_TPU0 R8A7793_CLK_SDHI2
1191 R8A7793_CLK_SDHI1 R8A7793_CLK_SDHI0
1192 R8A7793_CLK_MMCIF0 R8A7793_CLK_IIC0
1193 R8A7793_CLK_PCIEC R8A7793_CLK_IIC1
1194 R8A7793_CLK_SSUSB R8A7793_CLK_CMT1
1195 R8A7793_CLK_USBDMAC0 R8A7793_CLK_USBDMAC1
1196 >;
1197 clock-output-names =
1198 "tpu0", "sdhi2", "sdhi1", "sdhi0", "mmcif0",
1199 "i2c7", "pciec", "i2c8", "ssusb", "cmt1",
1200 "usbdmac0", "usbdmac1";
1201 };
1202 mstp4_clks: mstp4_clks@e6150140 {
1203 compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks";
1204 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>;
1205 clocks = <&cp_clk>, <&zs_clk>;
1206 #clock-cells = <1>;
1207 clock-indices = <
1208 R8A7793_CLK_IRQC R8A7793_CLK_INTC_SYS
1209 >;
1210 clock-output-names = "irqc", "intc-sys";
1211 };
1212 mstp5_clks: mstp5_clks@e6150144 {
1213 compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks";
1214 reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>;
1215 clocks = <&hp_clk>, <&hp_clk>, <&extal_clk>;
1216 #clock-cells = <1>;
1217 clock-indices = <R8A7793_CLK_AUDIO_DMAC0 R8A7793_CLK_AUDIO_DMAC1
1218 R8A7793_CLK_THERMAL>;
1219 clock-output-names = "audmac0", "audmac1", "thermal";
1220 };
1221 mstp7_clks: mstp7_clks@e615014c {
1222 compatible = "renesas,r8a7793-mstp-clocks",
1223 "renesas,cpg-mstp-clocks";
1224 reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>;
1225 clocks = <&mp_clk>, <&hp_clk>, <&zs_clk>, <&p_clk>,
1226 <&p_clk>, <&zs_clk>, <&zs_clk>, <&p_clk>,
1227 <&p_clk>, <&p_clk>, <&p_clk>, <&zx_clk>,
1228 <&zx_clk>, <&zx_clk>;
1229 #clock-cells = <1>;
1230 clock-indices = <
1231 R8A7793_CLK_EHCI R8A7793_CLK_HSUSB
1232 R8A7793_CLK_HSCIF2 R8A7793_CLK_SCIF5
1233 R8A7793_CLK_SCIF4 R8A7793_CLK_HSCIF1
1234 R8A7793_CLK_HSCIF0 R8A7793_CLK_SCIF3
1235 R8A7793_CLK_SCIF2 R8A7793_CLK_SCIF1
1236 R8A7793_CLK_SCIF0 R8A7793_CLK_DU1
1237 R8A7793_CLK_DU0 R8A7793_CLK_LVDS0
1238 >;
1239 clock-output-names =
1240 "ehci", "hsusb", "hscif2", "scif5", "scif4",
1241 "hscif1", "hscif0", "scif3", "scif2",
1242 "scif1", "scif0", "du1", "du0", "lvds0";
1243 };
1244 mstp8_clks: mstp8_clks@e6150990 {
1245 compatible = "renesas,r8a7793-mstp-clocks",
1246 "renesas,cpg-mstp-clocks";
1247 reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>;
1248 clocks = <&zx_clk>, <&zg_clk>, <&zg_clk>, <&zg_clk>,
1249 <&p_clk>, <&zs_clk>, <&zs_clk>;
1250 #clock-cells = <1>;
1251 clock-indices = <
1252 R8A7793_CLK_IPMMU_SGX R8A7793_CLK_VIN2
1253 R8A7793_CLK_VIN1 R8A7793_CLK_VIN0
1254 R8A7793_CLK_ETHER R8A7793_CLK_SATA1
1255 R8A7793_CLK_SATA0
1256 >;
1257 clock-output-names =
1258 "ipmmu_sgx", "vin2", "vin1", "vin0", "ether",
1259 "sata1", "sata0";
1260 };
1261 mstp9_clks: mstp9_clks@e6150994 {
1262 compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks";
1263 reg = <0 0xe6150994 0 4>, <0 0xe61509a4 0 4>;
1264 clocks = <&cp_clk>, <&cp_clk>, <&cp_clk>, <&cp_clk>,
1265 <&cp_clk>, <&cp_clk>, <&cp_clk>, <&cp_clk>,
1266 <&p_clk>, <&p_clk>,
1267 <&cpg_clocks R8A7793_CLK_QSPI>, <&hp_clk>,
1268 <&cp_clk>, <&hp_clk>, <&hp_clk>, <&hp_clk>,
1269 <&hp_clk>, <&hp_clk>;
1270 #clock-cells = <1>;
1271 clock-indices = <
1272 R8A7793_CLK_GPIO7 R8A7793_CLK_GPIO6
1273 R8A7793_CLK_GPIO5 R8A7793_CLK_GPIO4
1274 R8A7793_CLK_GPIO3 R8A7793_CLK_GPIO2
1275 R8A7793_CLK_GPIO1 R8A7793_CLK_GPIO0
1276 R8A7793_CLK_QSPI_MOD R8A7793_CLK_RCAN1
1277 R8A7793_CLK_RCAN0 R8A7793_CLK_I2C5
1278 R8A7793_CLK_IICDVFS R8A7793_CLK_I2C4
1279 R8A7793_CLK_I2C3 R8A7793_CLK_I2C2
1280 R8A7793_CLK_I2C1 R8A7793_CLK_I2C0
1281 >;
1282 clock-output-names =
1283 "gpio7", "gpio6", "gpio5", "gpio4",
1284 "gpio3", "gpio2", "gpio1", "gpio0",
1285 "rcan1", "rcan0", "qspi_mod", "i2c5",
1286 "i2c6", "i2c4", "i2c3", "i2c2", "i2c1",
1287 "i2c0";
1288 };
1289 mstp10_clks: mstp10_clks@e6150998 {
1290 compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks";
1291 reg = <0 0xe6150998 0 4>, <0 0xe61509a8 0 4>;
1292 clocks = <&p_clk>,
1293 <&mstp10_clks R8A7793_CLK_SSI_ALL>, <&mstp10_clks R8A7793_CLK_SSI_ALL>,
1294 <&mstp10_clks R8A7793_CLK_SSI_ALL>, <&mstp10_clks R8A7793_CLK_SSI_ALL>,
1295 <&mstp10_clks R8A7793_CLK_SSI_ALL>, <&mstp10_clks R8A7793_CLK_SSI_ALL>,
1296 <&mstp10_clks R8A7793_CLK_SSI_ALL>, <&mstp10_clks R8A7793_CLK_SSI_ALL>,
1297 <&mstp10_clks R8A7793_CLK_SSI_ALL>, <&mstp10_clks R8A7793_CLK_SSI_ALL>,
1298 <&p_clk>,
1299 <&mstp10_clks R8A7793_CLK_SCU_ALL>, <&mstp10_clks R8A7793_CLK_SCU_ALL>,
1300 <&mstp10_clks R8A7793_CLK_SCU_ALL>, <&mstp10_clks R8A7793_CLK_SCU_ALL>,
1301 <&mstp10_clks R8A7793_CLK_SCU_ALL>, <&mstp10_clks R8A7793_CLK_SCU_ALL>,
1302 <&mstp10_clks R8A7793_CLK_SCU_ALL>, <&mstp10_clks R8A7793_CLK_SCU_ALL>,
1303 <&mstp10_clks R8A7793_CLK_SCU_ALL>, <&mstp10_clks R8A7793_CLK_SCU_ALL>,
1304 <&mstp10_clks R8A7793_CLK_SCU_ALL>, <&mstp10_clks R8A7793_CLK_SCU_ALL>,
1305 <&mstp10_clks R8A7793_CLK_SCU_ALL>, <&mstp10_clks R8A7793_CLK_SCU_ALL>;
1306
1307 #clock-cells = <1>;
1308 clock-indices = <
1309 R8A7793_CLK_SSI_ALL
1310 R8A7793_CLK_SSI9 R8A7793_CLK_SSI8 R8A7793_CLK_SSI7 R8A7793_CLK_SSI6 R8A7793_CLK_SSI5
1311 R8A7793_CLK_SSI4 R8A7793_CLK_SSI3 R8A7793_CLK_SSI2 R8A7793_CLK_SSI1 R8A7793_CLK_SSI0
1312 R8A7793_CLK_SCU_ALL
1313 R8A7793_CLK_SCU_DVC1 R8A7793_CLK_SCU_DVC0
1314 R8A7793_CLK_SCU_CTU1_MIX1 R8A7793_CLK_SCU_CTU0_MIX0
1315 R8A7793_CLK_SCU_SRC9 R8A7793_CLK_SCU_SRC8 R8A7793_CLK_SCU_SRC7 R8A7793_CLK_SCU_SRC6 R8A7793_CLK_SCU_SRC5
1316 R8A7793_CLK_SCU_SRC4 R8A7793_CLK_SCU_SRC3 R8A7793_CLK_SCU_SRC2 R8A7793_CLK_SCU_SRC1 R8A7793_CLK_SCU_SRC0
1317 >;
1318 clock-output-names =
1319 "ssi-all",
1320 "ssi9", "ssi8", "ssi7", "ssi6", "ssi5",
1321 "ssi4", "ssi3", "ssi2", "ssi1", "ssi0",
1322 "scu-all",
1323 "scu-dvc1", "scu-dvc0",
1324 "scu-ctu1-mix1", "scu-ctu0-mix0",
1325 "scu-src9", "scu-src8", "scu-src7", "scu-src6", "scu-src5",
1326 "scu-src4", "scu-src3", "scu-src2", "scu-src1", "scu-src0";
1327 };
1328 mstp11_clks: mstp11_clks@e615099c {
1329 compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks";
1330 reg = <0 0xe615099c 0 4>, <0 0xe61509ac 0 4>;
1331 clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>;
1332 #clock-cells = <1>;
1333 clock-indices = <
1334 R8A7793_CLK_SCIFA3 R8A7793_CLK_SCIFA4 R8A7793_CLK_SCIFA5
1335 >;
1336 clock-output-names = "scifa3", "scifa4", "scifa5";
1337 };
1338 }; 1091 };
1339 1092
1340 rst: reset-controller@e6160000 { 1093 rst: reset-controller@e6160000 {
@@ -1428,19 +1181,20 @@
1428 <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ 1181 <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/
1429 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; 1182 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
1430 1183
1431 clocks = <&mstp10_clks R8A7793_CLK_SSI_ALL>, 1184 clocks = <&cpg CPG_MOD 1005>,
1432 <&mstp10_clks R8A7793_CLK_SSI9>, <&mstp10_clks R8A7793_CLK_SSI8>, 1185 <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>,
1433 <&mstp10_clks R8A7793_CLK_SSI7>, <&mstp10_clks R8A7793_CLK_SSI6>, 1186 <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>,
1434 <&mstp10_clks R8A7793_CLK_SSI5>, <&mstp10_clks R8A7793_CLK_SSI4>, 1187 <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>,
1435 <&mstp10_clks R8A7793_CLK_SSI3>, <&mstp10_clks R8A7793_CLK_SSI2>, 1188 <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>,
1436 <&mstp10_clks R8A7793_CLK_SSI1>, <&mstp10_clks R8A7793_CLK_SSI0>, 1189 <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>,
1437 <&mstp10_clks R8A7793_CLK_SCU_SRC9>, <&mstp10_clks R8A7793_CLK_SCU_SRC8>, 1190 <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>,
1438 <&mstp10_clks R8A7793_CLK_SCU_SRC7>, <&mstp10_clks R8A7793_CLK_SCU_SRC6>, 1191 <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>,
1439 <&mstp10_clks R8A7793_CLK_SCU_SRC5>, <&mstp10_clks R8A7793_CLK_SCU_SRC4>, 1192 <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>,
1440 <&mstp10_clks R8A7793_CLK_SCU_SRC3>, <&mstp10_clks R8A7793_CLK_SCU_SRC2>, 1193 <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>,
1441 <&mstp10_clks R8A7793_CLK_SCU_SRC1>, <&mstp10_clks R8A7793_CLK_SCU_SRC0>, 1194 <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>,
1442 <&mstp10_clks R8A7793_CLK_SCU_DVC0>, <&mstp10_clks R8A7793_CLK_SCU_DVC1>, 1195 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>,
1443 <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>; 1196 <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>,
1197 <&cpg CPG_CORE R8A7793_CLK_M2>;
1444 clock-names = "ssi-all", 1198 clock-names = "ssi-all",
1445 "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", 1199 "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
1446 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0", 1200 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0",
@@ -1449,6 +1203,13 @@
1449 "dvc.0", "dvc.1", 1203 "dvc.0", "dvc.1",
1450 "clk_a", "clk_b", "clk_c", "clk_i"; 1204 "clk_a", "clk_b", "clk_c", "clk_i";
1451 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 1205 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
1206 resets = <&cpg 1005>,
1207 <&cpg 1006>, <&cpg 1007>, <&cpg 1008>, <&cpg 1009>,
1208 <&cpg 1010>, <&cpg 1011>, <&cpg 1012>, <&cpg 1013>,
1209 <&cpg 1014>, <&cpg 1015>;
1210 reset-names = "ssi-all",
1211 "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
1212 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0";
1452 1213
1453 status = "disabled"; 1214 status = "disabled";
1454 1215
diff --git a/arch/arm/boot/dts/r8a7794-alt.dts b/arch/arm/boot/dts/r8a7794-alt.dts
index f1eea13cdf44..bd98790d964e 100644
--- a/arch/arm/boot/dts/r8a7794-alt.dts
+++ b/arch/arm/boot/dts/r8a7794-alt.dts
@@ -167,8 +167,7 @@
167 pinctrl-names = "default"; 167 pinctrl-names = "default";
168 status = "okay"; 168 status = "okay";
169 169
170 clocks = <&mstp7_clks R8A7794_CLK_DU0>, 170 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>,
171 <&mstp7_clks R8A7794_CLK_DU1>,
172 <&x13_clk>, <&x2_clk>; 171 <&x13_clk>, <&x2_clk>;
173 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1"; 172 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
174 173
@@ -305,7 +304,7 @@
305 vmmc-supply = <&vcc_sdhi0>; 304 vmmc-supply = <&vcc_sdhi0>;
306 vqmmc-supply = <&vccq_sdhi0>; 305 vqmmc-supply = <&vccq_sdhi0>;
307 cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>; 306 cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
308 wp-gpios = <&gpio6 7 GPIO_ACTIVE_LOW>; 307 wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
309 sd-uhs-sdr50; 308 sd-uhs-sdr50;
310 sd-uhs-sdr104; 309 sd-uhs-sdr104;
311 status = "okay"; 310 status = "okay";
@@ -319,7 +318,7 @@
319 vmmc-supply = <&vcc_sdhi1>; 318 vmmc-supply = <&vcc_sdhi1>;
320 vqmmc-supply = <&vccq_sdhi1>; 319 vqmmc-supply = <&vccq_sdhi1>;
321 cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>; 320 cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
322 wp-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>; 321 wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>;
323 sd-uhs-sdr50; 322 sd-uhs-sdr50;
324 status = "okay"; 323 status = "okay";
325}; 324};
diff --git a/arch/arm/boot/dts/r8a7794-silk.dts b/arch/arm/boot/dts/r8a7794-silk.dts
index 4cb5278d104d..edfad0e5ac53 100644
--- a/arch/arm/boot/dts/r8a7794-silk.dts
+++ b/arch/arm/boot/dts/r8a7794-silk.dts
@@ -423,8 +423,7 @@
423 pinctrl-names = "default"; 423 pinctrl-names = "default";
424 status = "okay"; 424 status = "okay";
425 425
426 clocks = <&mstp7_clks R8A7794_CLK_DU0>, 426 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>,
427 <&mstp7_clks R8A7794_CLK_DU1>,
428 <&x2_clk>, <&x3_clk>; 427 <&x2_clk>, <&x3_clk>;
429 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1"; 428 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
430 429
diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi
index 26535414203a..905e50c9b524 100644
--- a/arch/arm/boot/dts/r8a7794.dtsi
+++ b/arch/arm/boot/dts/r8a7794.dtsi
@@ -9,7 +9,7 @@
9 * kind, whether express or implied. 9 * kind, whether express or implied.
10 */ 10 */
11 11
12#include <dt-bindings/clock/r8a7794-clock.h> 12#include <dt-bindings/clock/r8a7794-cpg-mssr.h>
13#include <dt-bindings/interrupt-controller/arm-gic.h> 13#include <dt-bindings/interrupt-controller/arm-gic.h>
14#include <dt-bindings/interrupt-controller/irq.h> 14#include <dt-bindings/interrupt-controller/irq.h>
15#include <dt-bindings/power/r8a7794-sysc.h> 15#include <dt-bindings/power/r8a7794-sysc.h>
@@ -43,7 +43,7 @@
43 compatible = "arm,cortex-a7"; 43 compatible = "arm,cortex-a7";
44 reg = <0>; 44 reg = <0>;
45 clock-frequency = <1000000000>; 45 clock-frequency = <1000000000>;
46 clocks = <&z2_clk>; 46 clocks = <&cpg CPG_CORE R8A7794_CLK_Z2>;
47 power-domains = <&sysc R8A7794_PD_CA7_CPU0>; 47 power-domains = <&sysc R8A7794_PD_CA7_CPU0>;
48 next-level-cache = <&L2_CA7>; 48 next-level-cache = <&L2_CA7>;
49 }; 49 };
@@ -53,6 +53,7 @@
53 compatible = "arm,cortex-a7"; 53 compatible = "arm,cortex-a7";
54 reg = <1>; 54 reg = <1>;
55 clock-frequency = <1000000000>; 55 clock-frequency = <1000000000>;
56 clocks = <&cpg CPG_CORE R8A7794_CLK_Z2>;
56 power-domains = <&sysc R8A7794_PD_CA7_CPU1>; 57 power-domains = <&sysc R8A7794_PD_CA7_CPU1>;
57 next-level-cache = <&L2_CA7>; 58 next-level-cache = <&L2_CA7>;
58 }; 59 };
@@ -75,13 +76,14 @@
75 <0 0xf1004000 0 0x2000>, 76 <0 0xf1004000 0 0x2000>,
76 <0 0xf1006000 0 0x2000>; 77 <0 0xf1006000 0 0x2000>;
77 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 78 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
78 clocks = <&mstp4_clks R8A7794_CLK_INTC_SYS>; 79 clocks = <&cpg CPG_MOD 408>;
79 clock-names = "clk"; 80 clock-names = "clk";
80 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 81 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
82 resets = <&cpg 408>;
81 }; 83 };
82 84
83 gpio0: gpio@e6050000 { 85 gpio0: gpio@e6050000 {
84 compatible = "renesas,gpio-r8a7794", "renesas,gpio-rcar"; 86 compatible = "renesas,gpio-r8a7794", "renesas,rcar-gen2-gpio";
85 reg = <0 0xe6050000 0 0x50>; 87 reg = <0 0xe6050000 0 0x50>;
86 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 88 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
87 #gpio-cells = <2>; 89 #gpio-cells = <2>;
@@ -89,12 +91,13 @@
89 gpio-ranges = <&pfc 0 0 32>; 91 gpio-ranges = <&pfc 0 0 32>;
90 #interrupt-cells = <2>; 92 #interrupt-cells = <2>;
91 interrupt-controller; 93 interrupt-controller;
92 clocks = <&mstp9_clks R8A7794_CLK_GPIO0>; 94 clocks = <&cpg CPG_MOD 912>;
93 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 95 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
96 resets = <&cpg 912>;
94 }; 97 };
95 98
96 gpio1: gpio@e6051000 { 99 gpio1: gpio@e6051000 {
97 compatible = "renesas,gpio-r8a7794", "renesas,gpio-rcar"; 100 compatible = "renesas,gpio-r8a7794", "renesas,rcar-gen2-gpio";
98 reg = <0 0xe6051000 0 0x50>; 101 reg = <0 0xe6051000 0 0x50>;
99 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 102 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
100 #gpio-cells = <2>; 103 #gpio-cells = <2>;
@@ -102,12 +105,13 @@
102 gpio-ranges = <&pfc 0 32 26>; 105 gpio-ranges = <&pfc 0 32 26>;
103 #interrupt-cells = <2>; 106 #interrupt-cells = <2>;
104 interrupt-controller; 107 interrupt-controller;
105 clocks = <&mstp9_clks R8A7794_CLK_GPIO1>; 108 clocks = <&cpg CPG_MOD 911>;
106 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 109 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
110 resets = <&cpg 911>;
107 }; 111 };
108 112
109 gpio2: gpio@e6052000 { 113 gpio2: gpio@e6052000 {
110 compatible = "renesas,gpio-r8a7794", "renesas,gpio-rcar"; 114 compatible = "renesas,gpio-r8a7794", "renesas,rcar-gen2-gpio";
111 reg = <0 0xe6052000 0 0x50>; 115 reg = <0 0xe6052000 0 0x50>;
112 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 116 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
113 #gpio-cells = <2>; 117 #gpio-cells = <2>;
@@ -115,12 +119,13 @@
115 gpio-ranges = <&pfc 0 64 32>; 119 gpio-ranges = <&pfc 0 64 32>;
116 #interrupt-cells = <2>; 120 #interrupt-cells = <2>;
117 interrupt-controller; 121 interrupt-controller;
118 clocks = <&mstp9_clks R8A7794_CLK_GPIO2>; 122 clocks = <&cpg CPG_MOD 910>;
119 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 123 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
124 resets = <&cpg 910>;
120 }; 125 };
121 126
122 gpio3: gpio@e6053000 { 127 gpio3: gpio@e6053000 {
123 compatible = "renesas,gpio-r8a7794", "renesas,gpio-rcar"; 128 compatible = "renesas,gpio-r8a7794", "renesas,rcar-gen2-gpio";
124 reg = <0 0xe6053000 0 0x50>; 129 reg = <0 0xe6053000 0 0x50>;
125 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 130 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
126 #gpio-cells = <2>; 131 #gpio-cells = <2>;
@@ -128,12 +133,13 @@
128 gpio-ranges = <&pfc 0 96 32>; 133 gpio-ranges = <&pfc 0 96 32>;
129 #interrupt-cells = <2>; 134 #interrupt-cells = <2>;
130 interrupt-controller; 135 interrupt-controller;
131 clocks = <&mstp9_clks R8A7794_CLK_GPIO3>; 136 clocks = <&cpg CPG_MOD 909>;
132 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 137 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
138 resets = <&cpg 909>;
133 }; 139 };
134 140
135 gpio4: gpio@e6054000 { 141 gpio4: gpio@e6054000 {
136 compatible = "renesas,gpio-r8a7794", "renesas,gpio-rcar"; 142 compatible = "renesas,gpio-r8a7794", "renesas,rcar-gen2-gpio";
137 reg = <0 0xe6054000 0 0x50>; 143 reg = <0 0xe6054000 0 0x50>;
138 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 144 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
139 #gpio-cells = <2>; 145 #gpio-cells = <2>;
@@ -141,12 +147,13 @@
141 gpio-ranges = <&pfc 0 128 32>; 147 gpio-ranges = <&pfc 0 128 32>;
142 #interrupt-cells = <2>; 148 #interrupt-cells = <2>;
143 interrupt-controller; 149 interrupt-controller;
144 clocks = <&mstp9_clks R8A7794_CLK_GPIO4>; 150 clocks = <&cpg CPG_MOD 908>;
145 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 151 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
152 resets = <&cpg 908>;
146 }; 153 };
147 154
148 gpio5: gpio@e6055000 { 155 gpio5: gpio@e6055000 {
149 compatible = "renesas,gpio-r8a7794", "renesas,gpio-rcar"; 156 compatible = "renesas,gpio-r8a7794", "renesas,rcar-gen2-gpio";
150 reg = <0 0xe6055000 0 0x50>; 157 reg = <0 0xe6055000 0 0x50>;
151 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 158 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
152 #gpio-cells = <2>; 159 #gpio-cells = <2>;
@@ -154,12 +161,13 @@
154 gpio-ranges = <&pfc 0 160 28>; 161 gpio-ranges = <&pfc 0 160 28>;
155 #interrupt-cells = <2>; 162 #interrupt-cells = <2>;
156 interrupt-controller; 163 interrupt-controller;
157 clocks = <&mstp9_clks R8A7794_CLK_GPIO5>; 164 clocks = <&cpg CPG_MOD 907>;
158 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 165 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
166 resets = <&cpg 907>;
159 }; 167 };
160 168
161 gpio6: gpio@e6055400 { 169 gpio6: gpio@e6055400 {
162 compatible = "renesas,gpio-r8a7794", "renesas,gpio-rcar"; 170 compatible = "renesas,gpio-r8a7794", "renesas,rcar-gen2-gpio";
163 reg = <0 0xe6055400 0 0x50>; 171 reg = <0 0xe6055400 0 0x50>;
164 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 172 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
165 #gpio-cells = <2>; 173 #gpio-cells = <2>;
@@ -167,8 +175,9 @@
167 gpio-ranges = <&pfc 0 192 26>; 175 gpio-ranges = <&pfc 0 192 26>;
168 #interrupt-cells = <2>; 176 #interrupt-cells = <2>;
169 interrupt-controller; 177 interrupt-controller;
170 clocks = <&mstp9_clks R8A7794_CLK_GPIO6>; 178 clocks = <&cpg CPG_MOD 905>;
171 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 179 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
180 resets = <&cpg 905>;
172 }; 181 };
173 182
174 cmt0: timer@ffca0000 { 183 cmt0: timer@ffca0000 {
@@ -176,9 +185,10 @@
176 reg = <0 0xffca0000 0 0x1004>; 185 reg = <0 0xffca0000 0 0x1004>;
177 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, 186 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
178 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; 187 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
179 clocks = <&mstp1_clks R8A7794_CLK_CMT0>; 188 clocks = <&cpg CPG_MOD 124>;
180 clock-names = "fck"; 189 clock-names = "fck";
181 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 190 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
191 resets = <&cpg 124>;
182 192
183 renesas,channels-mask = <0x60>; 193 renesas,channels-mask = <0x60>;
184 194
@@ -196,9 +206,10 @@
196 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 206 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
197 <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>, 207 <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
198 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; 208 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
199 clocks = <&mstp3_clks R8A7794_CLK_CMT1>; 209 clocks = <&cpg CPG_MOD 329>;
200 clock-names = "fck"; 210 clock-names = "fck";
201 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 211 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
212 resets = <&cpg 329>;
202 213
203 renesas,channels-mask = <0xff>; 214 renesas,channels-mask = <0xff>;
204 215
@@ -228,8 +239,9 @@
228 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 239 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
229 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 240 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
230 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 241 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
231 clocks = <&mstp4_clks R8A7794_CLK_IRQC>; 242 clocks = <&cpg CPG_MOD 407>;
232 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 243 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
244 resets = <&cpg 407>;
233 }; 245 };
234 246
235 pfc: pin-controller@e6060000 { 247 pfc: pin-controller@e6060000 {
@@ -261,9 +273,10 @@
261 "ch4", "ch5", "ch6", "ch7", 273 "ch4", "ch5", "ch6", "ch7",
262 "ch8", "ch9", "ch10", "ch11", 274 "ch8", "ch9", "ch10", "ch11",
263 "ch12", "ch13", "ch14"; 275 "ch12", "ch13", "ch14";
264 clocks = <&mstp2_clks R8A7794_CLK_SYS_DMAC0>; 276 clocks = <&cpg CPG_MOD 219>;
265 clock-names = "fck"; 277 clock-names = "fck";
266 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 278 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
279 resets = <&cpg 219>;
267 #dma-cells = <1>; 280 #dma-cells = <1>;
268 dma-channels = <15>; 281 dma-channels = <15>;
269 }; 282 };
@@ -292,9 +305,10 @@
292 "ch4", "ch5", "ch6", "ch7", 305 "ch4", "ch5", "ch6", "ch7",
293 "ch8", "ch9", "ch10", "ch11", 306 "ch8", "ch9", "ch10", "ch11",
294 "ch12", "ch13", "ch14"; 307 "ch12", "ch13", "ch14";
295 clocks = <&mstp2_clks R8A7794_CLK_SYS_DMAC1>; 308 clocks = <&cpg CPG_MOD 218>;
296 clock-names = "fck"; 309 clock-names = "fck";
297 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 310 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
311 resets = <&cpg 218>;
298 #dma-cells = <1>; 312 #dma-cells = <1>;
299 dma-channels = <15>; 313 dma-channels = <15>;
300 }; 314 };
@@ -320,9 +334,10 @@
320 "ch0", "ch1", "ch2", "ch3", "ch4", "ch5", 334 "ch0", "ch1", "ch2", "ch3", "ch4", "ch5",
321 "ch6", "ch7", "ch8", "ch9", "ch10", "ch11", 335 "ch6", "ch7", "ch8", "ch9", "ch10", "ch11",
322 "ch12"; 336 "ch12";
323 clocks = <&mstp5_clks R8A7794_CLK_AUDIO_DMAC0>; 337 clocks = <&cpg CPG_MOD 502>;
324 clock-names = "fck"; 338 clock-names = "fck";
325 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 339 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
340 resets = <&cpg 502>;
326 #dma-cells = <1>; 341 #dma-cells = <1>;
327 dma-channels = <13>; 342 dma-channels = <13>;
328 }; 343 };
@@ -332,12 +347,13 @@
332 "renesas,rcar-gen2-scifa", "renesas,scifa"; 347 "renesas,rcar-gen2-scifa", "renesas,scifa";
333 reg = <0 0xe6c40000 0 64>; 348 reg = <0 0xe6c40000 0 64>;
334 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; 349 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
335 clocks = <&mstp2_clks R8A7794_CLK_SCIFA0>; 350 clocks = <&cpg CPG_MOD 204>;
336 clock-names = "fck"; 351 clock-names = "fck";
337 dmas = <&dmac0 0x21>, <&dmac0 0x22>, 352 dmas = <&dmac0 0x21>, <&dmac0 0x22>,
338 <&dmac1 0x21>, <&dmac1 0x22>; 353 <&dmac1 0x21>, <&dmac1 0x22>;
339 dma-names = "tx", "rx", "tx", "rx"; 354 dma-names = "tx", "rx", "tx", "rx";
340 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 355 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
356 resets = <&cpg 204>;
341 status = "disabled"; 357 status = "disabled";
342 }; 358 };
343 359
@@ -346,12 +362,13 @@
346 "renesas,rcar-gen2-scifa", "renesas,scifa"; 362 "renesas,rcar-gen2-scifa", "renesas,scifa";
347 reg = <0 0xe6c50000 0 64>; 363 reg = <0 0xe6c50000 0 64>;
348 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; 364 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
349 clocks = <&mstp2_clks R8A7794_CLK_SCIFA1>; 365 clocks = <&cpg CPG_MOD 203>;
350 clock-names = "fck"; 366 clock-names = "fck";
351 dmas = <&dmac0 0x25>, <&dmac0 0x26>, 367 dmas = <&dmac0 0x25>, <&dmac0 0x26>,
352 <&dmac1 0x25>, <&dmac1 0x26>; 368 <&dmac1 0x25>, <&dmac1 0x26>;
353 dma-names = "tx", "rx", "tx", "rx"; 369 dma-names = "tx", "rx", "tx", "rx";
354 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 370 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
371 resets = <&cpg 203>;
355 status = "disabled"; 372 status = "disabled";
356 }; 373 };
357 374
@@ -360,12 +377,13 @@
360 "renesas,rcar-gen2-scifa", "renesas,scifa"; 377 "renesas,rcar-gen2-scifa", "renesas,scifa";
361 reg = <0 0xe6c60000 0 64>; 378 reg = <0 0xe6c60000 0 64>;
362 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>; 379 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
363 clocks = <&mstp2_clks R8A7794_CLK_SCIFA2>; 380 clocks = <&cpg CPG_MOD 202>;
364 clock-names = "fck"; 381 clock-names = "fck";
365 dmas = <&dmac0 0x27>, <&dmac0 0x28>, 382 dmas = <&dmac0 0x27>, <&dmac0 0x28>,
366 <&dmac1 0x27>, <&dmac1 0x28>; 383 <&dmac1 0x27>, <&dmac1 0x28>;
367 dma-names = "tx", "rx", "tx", "rx"; 384 dma-names = "tx", "rx", "tx", "rx";
368 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 385 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
386 resets = <&cpg 202>;
369 status = "disabled"; 387 status = "disabled";
370 }; 388 };
371 389
@@ -374,12 +392,13 @@
374 "renesas,rcar-gen2-scifa", "renesas,scifa"; 392 "renesas,rcar-gen2-scifa", "renesas,scifa";
375 reg = <0 0xe6c70000 0 64>; 393 reg = <0 0xe6c70000 0 64>;
376 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 394 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
377 clocks = <&mstp11_clks R8A7794_CLK_SCIFA3>; 395 clocks = <&cpg CPG_MOD 1106>;
378 clock-names = "fck"; 396 clock-names = "fck";
379 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>, 397 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>,
380 <&dmac1 0x1b>, <&dmac1 0x1c>; 398 <&dmac1 0x1b>, <&dmac1 0x1c>;
381 dma-names = "tx", "rx", "tx", "rx"; 399 dma-names = "tx", "rx", "tx", "rx";
382 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 400 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
401 resets = <&cpg 1106>;
383 status = "disabled"; 402 status = "disabled";
384 }; 403 };
385 404
@@ -388,12 +407,13 @@
388 "renesas,rcar-gen2-scifa", "renesas,scifa"; 407 "renesas,rcar-gen2-scifa", "renesas,scifa";
389 reg = <0 0xe6c78000 0 64>; 408 reg = <0 0xe6c78000 0 64>;
390 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 409 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
391 clocks = <&mstp11_clks R8A7794_CLK_SCIFA4>; 410 clocks = <&cpg CPG_MOD 1107>;
392 clock-names = "fck"; 411 clock-names = "fck";
393 dmas = <&dmac0 0x1f>, <&dmac0 0x20>, 412 dmas = <&dmac0 0x1f>, <&dmac0 0x20>,
394 <&dmac1 0x1f>, <&dmac1 0x20>; 413 <&dmac1 0x1f>, <&dmac1 0x20>;
395 dma-names = "tx", "rx", "tx", "rx"; 414 dma-names = "tx", "rx", "tx", "rx";
396 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 415 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
416 resets = <&cpg 1107>;
397 status = "disabled"; 417 status = "disabled";
398 }; 418 };
399 419
@@ -402,12 +422,13 @@
402 "renesas,rcar-gen2-scifa", "renesas,scifa"; 422 "renesas,rcar-gen2-scifa", "renesas,scifa";
403 reg = <0 0xe6c80000 0 64>; 423 reg = <0 0xe6c80000 0 64>;
404 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 424 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
405 clocks = <&mstp11_clks R8A7794_CLK_SCIFA5>; 425 clocks = <&cpg CPG_MOD 1108>;
406 clock-names = "fck"; 426 clock-names = "fck";
407 dmas = <&dmac0 0x23>, <&dmac0 0x24>, 427 dmas = <&dmac0 0x23>, <&dmac0 0x24>,
408 <&dmac1 0x23>, <&dmac1 0x24>; 428 <&dmac1 0x23>, <&dmac1 0x24>;
409 dma-names = "tx", "rx", "tx", "rx"; 429 dma-names = "tx", "rx", "tx", "rx";
410 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 430 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
431 resets = <&cpg 1108>;
411 status = "disabled"; 432 status = "disabled";
412 }; 433 };
413 434
@@ -416,12 +437,13 @@
416 "renesas,rcar-gen2-scifb", "renesas,scifb"; 437 "renesas,rcar-gen2-scifb", "renesas,scifb";
417 reg = <0 0xe6c20000 0 0x100>; 438 reg = <0 0xe6c20000 0 0x100>;
418 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 439 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
419 clocks = <&mstp2_clks R8A7794_CLK_SCIFB0>; 440 clocks = <&cpg CPG_MOD 206>;
420 clock-names = "fck"; 441 clock-names = "fck";
421 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>, 442 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>,
422 <&dmac1 0x3d>, <&dmac1 0x3e>; 443 <&dmac1 0x3d>, <&dmac1 0x3e>;
423 dma-names = "tx", "rx", "tx", "rx"; 444 dma-names = "tx", "rx", "tx", "rx";
424 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 445 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
446 resets = <&cpg 206>;
425 status = "disabled"; 447 status = "disabled";
426 }; 448 };
427 449
@@ -430,12 +452,13 @@
430 "renesas,rcar-gen2-scifb", "renesas,scifb"; 452 "renesas,rcar-gen2-scifb", "renesas,scifb";
431 reg = <0 0xe6c30000 0 0x100>; 453 reg = <0 0xe6c30000 0 0x100>;
432 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 454 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
433 clocks = <&mstp2_clks R8A7794_CLK_SCIFB1>; 455 clocks = <&cpg CPG_MOD 207>;
434 clock-names = "fck"; 456 clock-names = "fck";
435 dmas = <&dmac0 0x19>, <&dmac0 0x1a>, 457 dmas = <&dmac0 0x19>, <&dmac0 0x1a>,
436 <&dmac1 0x19>, <&dmac1 0x1a>; 458 <&dmac1 0x19>, <&dmac1 0x1a>;
437 dma-names = "tx", "rx", "tx", "rx"; 459 dma-names = "tx", "rx", "tx", "rx";
438 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 460 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
461 resets = <&cpg 207>;
439 status = "disabled"; 462 status = "disabled";
440 }; 463 };
441 464
@@ -444,12 +467,13 @@
444 "renesas,rcar-gen2-scifb", "renesas,scifb"; 467 "renesas,rcar-gen2-scifb", "renesas,scifb";
445 reg = <0 0xe6ce0000 0 0x100>; 468 reg = <0 0xe6ce0000 0 0x100>;
446 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>; 469 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
447 clocks = <&mstp2_clks R8A7794_CLK_SCIFB2>; 470 clocks = <&cpg CPG_MOD 216>;
448 clock-names = "fck"; 471 clock-names = "fck";
449 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>, 472 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>,
450 <&dmac1 0x1d>, <&dmac1 0x1e>; 473 <&dmac1 0x1d>, <&dmac1 0x1e>;
451 dma-names = "tx", "rx", "tx", "rx"; 474 dma-names = "tx", "rx", "tx", "rx";
452 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 475 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
476 resets = <&cpg 216>;
453 status = "disabled"; 477 status = "disabled";
454 }; 478 };
455 479
@@ -458,13 +482,14 @@
458 "renesas,scif"; 482 "renesas,scif";
459 reg = <0 0xe6e60000 0 64>; 483 reg = <0 0xe6e60000 0 64>;
460 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; 484 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
461 clocks = <&mstp7_clks R8A7794_CLK_SCIF0>, <&zs_clk>, 485 clocks = <&cpg CPG_MOD 721>, <&cpg CPG_CORE R8A7794_CLK_ZS>,
462 <&scif_clk>; 486 <&scif_clk>;
463 clock-names = "fck", "brg_int", "scif_clk"; 487 clock-names = "fck", "brg_int", "scif_clk";
464 dmas = <&dmac0 0x29>, <&dmac0 0x2a>, 488 dmas = <&dmac0 0x29>, <&dmac0 0x2a>,
465 <&dmac1 0x29>, <&dmac1 0x2a>; 489 <&dmac1 0x29>, <&dmac1 0x2a>;
466 dma-names = "tx", "rx", "tx", "rx"; 490 dma-names = "tx", "rx", "tx", "rx";
467 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 491 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
492 resets = <&cpg 721>;
468 status = "disabled"; 493 status = "disabled";
469 }; 494 };
470 495
@@ -473,13 +498,14 @@
473 "renesas,scif"; 498 "renesas,scif";
474 reg = <0 0xe6e68000 0 64>; 499 reg = <0 0xe6e68000 0 64>;
475 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; 500 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
476 clocks = <&mstp7_clks R8A7794_CLK_SCIF1>, <&zs_clk>, 501 clocks = <&cpg CPG_MOD 720>, <&cpg CPG_CORE R8A7794_CLK_ZS>,
477 <&scif_clk>; 502 <&scif_clk>;
478 clock-names = "fck", "brg_int", "scif_clk"; 503 clock-names = "fck", "brg_int", "scif_clk";
479 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>, 504 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>,
480 <&dmac1 0x2d>, <&dmac1 0x2e>; 505 <&dmac1 0x2d>, <&dmac1 0x2e>;
481 dma-names = "tx", "rx", "tx", "rx"; 506 dma-names = "tx", "rx", "tx", "rx";
482 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 507 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
508 resets = <&cpg 720>;
483 status = "disabled"; 509 status = "disabled";
484 }; 510 };
485 511
@@ -488,13 +514,14 @@
488 "renesas,scif"; 514 "renesas,scif";
489 reg = <0 0xe6e58000 0 64>; 515 reg = <0 0xe6e58000 0 64>;
490 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 516 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
491 clocks = <&mstp7_clks R8A7794_CLK_SCIF2>, <&zs_clk>, 517 clocks = <&cpg CPG_MOD 719>, <&cpg CPG_CORE R8A7794_CLK_ZS>,
492 <&scif_clk>; 518 <&scif_clk>;
493 clock-names = "fck", "brg_int", "scif_clk"; 519 clock-names = "fck", "brg_int", "scif_clk";
494 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>, 520 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>,
495 <&dmac1 0x2b>, <&dmac1 0x2c>; 521 <&dmac1 0x2b>, <&dmac1 0x2c>;
496 dma-names = "tx", "rx", "tx", "rx"; 522 dma-names = "tx", "rx", "tx", "rx";
497 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 523 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
524 resets = <&cpg 719>;
498 status = "disabled"; 525 status = "disabled";
499 }; 526 };
500 527
@@ -503,13 +530,14 @@
503 "renesas,scif"; 530 "renesas,scif";
504 reg = <0 0xe6ea8000 0 64>; 531 reg = <0 0xe6ea8000 0 64>;
505 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 532 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
506 clocks = <&mstp7_clks R8A7794_CLK_SCIF3>, <&zs_clk>, 533 clocks = <&cpg CPG_MOD 718>, <&cpg CPG_CORE R8A7794_CLK_ZS>,
507 <&scif_clk>; 534 <&scif_clk>;
508 clock-names = "fck", "brg_int", "scif_clk"; 535 clock-names = "fck", "brg_int", "scif_clk";
509 dmas = <&dmac0 0x2f>, <&dmac0 0x30>, 536 dmas = <&dmac0 0x2f>, <&dmac0 0x30>,
510 <&dmac1 0x2f>, <&dmac1 0x30>; 537 <&dmac1 0x2f>, <&dmac1 0x30>;
511 dma-names = "tx", "rx", "tx", "rx"; 538 dma-names = "tx", "rx", "tx", "rx";
512 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 539 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
540 resets = <&cpg 718>;
513 status = "disabled"; 541 status = "disabled";
514 }; 542 };
515 543
@@ -518,13 +546,14 @@
518 "renesas,scif"; 546 "renesas,scif";
519 reg = <0 0xe6ee0000 0 64>; 547 reg = <0 0xe6ee0000 0 64>;
520 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 548 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
521 clocks = <&mstp7_clks R8A7794_CLK_SCIF4>, <&zs_clk>, 549 clocks = <&cpg CPG_MOD 715>, <&cpg CPG_CORE R8A7794_CLK_ZS>,
522 <&scif_clk>; 550 <&scif_clk>;
523 clock-names = "fck", "brg_int", "scif_clk"; 551 clock-names = "fck", "brg_int", "scif_clk";
524 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>, 552 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>,
525 <&dmac1 0xfb>, <&dmac1 0xfc>; 553 <&dmac1 0xfb>, <&dmac1 0xfc>;
526 dma-names = "tx", "rx", "tx", "rx"; 554 dma-names = "tx", "rx", "tx", "rx";
527 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 555 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
556 resets = <&cpg 715>;
528 status = "disabled"; 557 status = "disabled";
529 }; 558 };
530 559
@@ -533,13 +562,14 @@
533 "renesas,scif"; 562 "renesas,scif";
534 reg = <0 0xe6ee8000 0 64>; 563 reg = <0 0xe6ee8000 0 64>;
535 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 564 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
536 clocks = <&mstp7_clks R8A7794_CLK_SCIF5>, <&zs_clk>, 565 clocks = <&cpg CPG_MOD 714>, <&cpg CPG_CORE R8A7794_CLK_ZS>,
537 <&scif_clk>; 566 <&scif_clk>;
538 clock-names = "fck", "brg_int", "scif_clk"; 567 clock-names = "fck", "brg_int", "scif_clk";
539 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>, 568 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>,
540 <&dmac1 0xfd>, <&dmac1 0xfe>; 569 <&dmac1 0xfd>, <&dmac1 0xfe>;
541 dma-names = "tx", "rx", "tx", "rx"; 570 dma-names = "tx", "rx", "tx", "rx";
542 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 571 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
572 resets = <&cpg 714>;
543 status = "disabled"; 573 status = "disabled";
544 }; 574 };
545 575
@@ -548,13 +578,14 @@
548 "renesas,rcar-gen2-hscif", "renesas,hscif"; 578 "renesas,rcar-gen2-hscif", "renesas,hscif";
549 reg = <0 0xe62c0000 0 96>; 579 reg = <0 0xe62c0000 0 96>;
550 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 580 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
551 clocks = <&mstp7_clks R8A7794_CLK_HSCIF0>, <&zs_clk>, 581 clocks = <&cpg CPG_MOD 717>, <&cpg CPG_CORE R8A7794_CLK_ZS>,
552 <&scif_clk>; 582 <&scif_clk>;
553 clock-names = "fck", "brg_int", "scif_clk"; 583 clock-names = "fck", "brg_int", "scif_clk";
554 dmas = <&dmac0 0x39>, <&dmac0 0x3a>, 584 dmas = <&dmac0 0x39>, <&dmac0 0x3a>,
555 <&dmac1 0x39>, <&dmac1 0x3a>; 585 <&dmac1 0x39>, <&dmac1 0x3a>;
556 dma-names = "tx", "rx", "tx", "rx"; 586 dma-names = "tx", "rx", "tx", "rx";
557 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 587 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
588 resets = <&cpg 717>;
558 status = "disabled"; 589 status = "disabled";
559 }; 590 };
560 591
@@ -563,13 +594,14 @@
563 "renesas,rcar-gen2-hscif", "renesas,hscif"; 594 "renesas,rcar-gen2-hscif", "renesas,hscif";
564 reg = <0 0xe62c8000 0 96>; 595 reg = <0 0xe62c8000 0 96>;
565 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; 596 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
566 clocks = <&mstp7_clks R8A7794_CLK_HSCIF1>, <&zs_clk>, 597 clocks = <&cpg CPG_MOD 716>, <&cpg CPG_CORE R8A7794_CLK_ZS>,
567 <&scif_clk>; 598 <&scif_clk>;
568 clock-names = "fck", "brg_int", "scif_clk"; 599 clock-names = "fck", "brg_int", "scif_clk";
569 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>, 600 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>,
570 <&dmac1 0x4d>, <&dmac1 0x4e>; 601 <&dmac1 0x4d>, <&dmac1 0x4e>;
571 dma-names = "tx", "rx", "tx", "rx"; 602 dma-names = "tx", "rx", "tx", "rx";
572 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 603 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
604 resets = <&cpg 716>;
573 status = "disabled"; 605 status = "disabled";
574 }; 606 };
575 607
@@ -578,13 +610,14 @@
578 "renesas,rcar-gen2-hscif", "renesas,hscif"; 610 "renesas,rcar-gen2-hscif", "renesas,hscif";
579 reg = <0 0xe62d0000 0 96>; 611 reg = <0 0xe62d0000 0 96>;
580 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 612 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
581 clocks = <&mstp7_clks R8A7794_CLK_HSCIF2>, <&zs_clk>, 613 clocks = <&cpg CPG_MOD 713>, <&cpg CPG_CORE R8A7794_CLK_ZS>,
582 <&scif_clk>; 614 <&scif_clk>;
583 clock-names = "fck", "brg_int", "scif_clk"; 615 clock-names = "fck", "brg_int", "scif_clk";
584 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>, 616 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>,
585 <&dmac1 0x3b>, <&dmac1 0x3c>; 617 <&dmac1 0x3b>, <&dmac1 0x3c>;
586 dma-names = "tx", "rx", "tx", "rx"; 618 dma-names = "tx", "rx", "tx", "rx";
587 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 619 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
620 resets = <&cpg 713>;
588 status = "disabled"; 621 status = "disabled";
589 }; 622 };
590 623
@@ -610,8 +643,9 @@
610 compatible = "renesas,ether-r8a7794"; 643 compatible = "renesas,ether-r8a7794";
611 reg = <0 0xee700000 0 0x400>; 644 reg = <0 0xee700000 0 0x400>;
612 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>; 645 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
613 clocks = <&mstp8_clks R8A7794_CLK_ETHER>; 646 clocks = <&cpg CPG_MOD 813>;
614 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 647 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
648 resets = <&cpg 813>;
615 phy-mode = "rmii"; 649 phy-mode = "rmii";
616 #address-cells = <1>; 650 #address-cells = <1>;
617 #size-cells = <0>; 651 #size-cells = <0>;
@@ -623,8 +657,9 @@
623 "renesas,etheravb-rcar-gen2"; 657 "renesas,etheravb-rcar-gen2";
624 reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>; 658 reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>;
625 interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>; 659 interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
626 clocks = <&mstp8_clks R8A7794_CLK_ETHERAVB>; 660 clocks = <&cpg CPG_MOD 812>;
627 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 661 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
662 resets = <&cpg 812>;
628 #address-cells = <1>; 663 #address-cells = <1>;
629 #size-cells = <0>; 664 #size-cells = <0>;
630 status = "disabled"; 665 status = "disabled";
@@ -635,8 +670,9 @@
635 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c"; 670 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
636 reg = <0 0xe6508000 0 0x40>; 671 reg = <0 0xe6508000 0 0x40>;
637 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 672 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
638 clocks = <&mstp9_clks R8A7794_CLK_I2C0>; 673 clocks = <&cpg CPG_MOD 931>;
639 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 674 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
675 resets = <&cpg 931>;
640 #address-cells = <1>; 676 #address-cells = <1>;
641 #size-cells = <0>; 677 #size-cells = <0>;
642 i2c-scl-internal-delay-ns = <6>; 678 i2c-scl-internal-delay-ns = <6>;
@@ -647,8 +683,9 @@
647 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c"; 683 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
648 reg = <0 0xe6518000 0 0x40>; 684 reg = <0 0xe6518000 0 0x40>;
649 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; 685 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
650 clocks = <&mstp9_clks R8A7794_CLK_I2C1>; 686 clocks = <&cpg CPG_MOD 930>;
651 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 687 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
688 resets = <&cpg 930>;
652 #address-cells = <1>; 689 #address-cells = <1>;
653 #size-cells = <0>; 690 #size-cells = <0>;
654 i2c-scl-internal-delay-ns = <6>; 691 i2c-scl-internal-delay-ns = <6>;
@@ -659,8 +696,9 @@
659 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c"; 696 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
660 reg = <0 0xe6530000 0 0x40>; 697 reg = <0 0xe6530000 0 0x40>;
661 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; 698 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
662 clocks = <&mstp9_clks R8A7794_CLK_I2C2>; 699 clocks = <&cpg CPG_MOD 929>;
663 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 700 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
701 resets = <&cpg 929>;
664 #address-cells = <1>; 702 #address-cells = <1>;
665 #size-cells = <0>; 703 #size-cells = <0>;
666 i2c-scl-internal-delay-ns = <6>; 704 i2c-scl-internal-delay-ns = <6>;
@@ -671,8 +709,9 @@
671 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c"; 709 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
672 reg = <0 0xe6540000 0 0x40>; 710 reg = <0 0xe6540000 0 0x40>;
673 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; 711 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
674 clocks = <&mstp9_clks R8A7794_CLK_I2C3>; 712 clocks = <&cpg CPG_MOD 928>;
675 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 713 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
714 resets = <&cpg 928>;
676 #address-cells = <1>; 715 #address-cells = <1>;
677 #size-cells = <0>; 716 #size-cells = <0>;
678 i2c-scl-internal-delay-ns = <6>; 717 i2c-scl-internal-delay-ns = <6>;
@@ -683,8 +722,9 @@
683 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c"; 722 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
684 reg = <0 0xe6520000 0 0x40>; 723 reg = <0 0xe6520000 0 0x40>;
685 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 724 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
686 clocks = <&mstp9_clks R8A7794_CLK_I2C4>; 725 clocks = <&cpg CPG_MOD 927>;
687 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 726 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
727 resets = <&cpg 927>;
688 #address-cells = <1>; 728 #address-cells = <1>;
689 #size-cells = <0>; 729 #size-cells = <0>;
690 i2c-scl-internal-delay-ns = <6>; 730 i2c-scl-internal-delay-ns = <6>;
@@ -695,8 +735,9 @@
695 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c"; 735 compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
696 reg = <0 0xe6528000 0 0x40>; 736 reg = <0 0xe6528000 0 0x40>;
697 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 737 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
698 clocks = <&mstp9_clks R8A7794_CLK_I2C5>; 738 clocks = <&cpg CPG_MOD 925>;
699 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 739 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
740 resets = <&cpg 925>;
700 #address-cells = <1>; 741 #address-cells = <1>;
701 #size-cells = <0>; 742 #size-cells = <0>;
702 i2c-scl-internal-delay-ns = <6>; 743 i2c-scl-internal-delay-ns = <6>;
@@ -708,11 +749,12 @@
708 "renesas,rmobile-iic"; 749 "renesas,rmobile-iic";
709 reg = <0 0xe6500000 0 0x425>; 750 reg = <0 0xe6500000 0 0x425>;
710 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 751 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
711 clocks = <&mstp3_clks R8A7794_CLK_IIC0>; 752 clocks = <&cpg CPG_MOD 318>;
712 dmas = <&dmac0 0x61>, <&dmac0 0x62>, 753 dmas = <&dmac0 0x61>, <&dmac0 0x62>,
713 <&dmac1 0x61>, <&dmac1 0x62>; 754 <&dmac1 0x61>, <&dmac1 0x62>;
714 dma-names = "tx", "rx", "tx", "rx"; 755 dma-names = "tx", "rx", "tx", "rx";
715 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 756 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
757 resets = <&cpg 318>;
716 #address-cells = <1>; 758 #address-cells = <1>;
717 #size-cells = <0>; 759 #size-cells = <0>;
718 status = "disabled"; 760 status = "disabled";
@@ -723,11 +765,12 @@
723 "renesas,rmobile-iic"; 765 "renesas,rmobile-iic";
724 reg = <0 0xe6510000 0 0x425>; 766 reg = <0 0xe6510000 0 0x425>;
725 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 767 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
726 clocks = <&mstp3_clks R8A7794_CLK_IIC1>; 768 clocks = <&cpg CPG_MOD 323>;
727 dmas = <&dmac0 0x65>, <&dmac0 0x66>, 769 dmas = <&dmac0 0x65>, <&dmac0 0x66>,
728 <&dmac1 0x65>, <&dmac1 0x66>; 770 <&dmac1 0x65>, <&dmac1 0x66>;
729 dma-names = "tx", "rx", "tx", "rx"; 771 dma-names = "tx", "rx", "tx", "rx";
730 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 772 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
773 resets = <&cpg 323>;
731 #address-cells = <1>; 774 #address-cells = <1>;
732 #size-cells = <0>; 775 #size-cells = <0>;
733 status = "disabled"; 776 status = "disabled";
@@ -737,11 +780,12 @@
737 compatible = "renesas,mmcif-r8a7794", "renesas,sh-mmcif"; 780 compatible = "renesas,mmcif-r8a7794", "renesas,sh-mmcif";
738 reg = <0 0xee200000 0 0x80>; 781 reg = <0 0xee200000 0 0x80>;
739 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; 782 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
740 clocks = <&mstp3_clks R8A7794_CLK_MMCIF0>; 783 clocks = <&cpg CPG_MOD 315>;
741 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>, 784 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>,
742 <&dmac1 0xd1>, <&dmac1 0xd2>; 785 <&dmac1 0xd1>, <&dmac1 0xd2>;
743 dma-names = "tx", "rx", "tx", "rx"; 786 dma-names = "tx", "rx", "tx", "rx";
744 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 787 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
788 resets = <&cpg 315>;
745 reg-io-width = <4>; 789 reg-io-width = <4>;
746 status = "disabled"; 790 status = "disabled";
747 }; 791 };
@@ -750,12 +794,13 @@
750 compatible = "renesas,sdhi-r8a7794"; 794 compatible = "renesas,sdhi-r8a7794";
751 reg = <0 0xee100000 0 0x328>; 795 reg = <0 0xee100000 0 0x328>;
752 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; 796 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
753 clocks = <&mstp3_clks R8A7794_CLK_SDHI0>; 797 clocks = <&cpg CPG_MOD 314>;
754 dmas = <&dmac0 0xcd>, <&dmac0 0xce>, 798 dmas = <&dmac0 0xcd>, <&dmac0 0xce>,
755 <&dmac1 0xcd>, <&dmac1 0xce>; 799 <&dmac1 0xcd>, <&dmac1 0xce>;
756 dma-names = "tx", "rx", "tx", "rx"; 800 dma-names = "tx", "rx", "tx", "rx";
757 max-frequency = <195000000>; 801 max-frequency = <195000000>;
758 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 802 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
803 resets = <&cpg 314>;
759 status = "disabled"; 804 status = "disabled";
760 }; 805 };
761 806
@@ -763,12 +808,13 @@
763 compatible = "renesas,sdhi-r8a7794"; 808 compatible = "renesas,sdhi-r8a7794";
764 reg = <0 0xee140000 0 0x100>; 809 reg = <0 0xee140000 0 0x100>;
765 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; 810 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
766 clocks = <&mstp3_clks R8A7794_CLK_SDHI1>; 811 clocks = <&cpg CPG_MOD 312>;
767 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>, 812 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>,
768 <&dmac1 0xc1>, <&dmac1 0xc2>; 813 <&dmac1 0xc1>, <&dmac1 0xc2>;
769 dma-names = "tx", "rx", "tx", "rx"; 814 dma-names = "tx", "rx", "tx", "rx";
770 max-frequency = <97500000>; 815 max-frequency = <97500000>;
771 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 816 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
817 resets = <&cpg 312>;
772 status = "disabled"; 818 status = "disabled";
773 }; 819 };
774 820
@@ -776,12 +822,13 @@
776 compatible = "renesas,sdhi-r8a7794"; 822 compatible = "renesas,sdhi-r8a7794";
777 reg = <0 0xee160000 0 0x100>; 823 reg = <0 0xee160000 0 0x100>;
778 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 824 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
779 clocks = <&mstp3_clks R8A7794_CLK_SDHI2>; 825 clocks = <&cpg CPG_MOD 311>;
780 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>, 826 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>,
781 <&dmac1 0xd3>, <&dmac1 0xd4>; 827 <&dmac1 0xd3>, <&dmac1 0xd4>;
782 dma-names = "tx", "rx", "tx", "rx"; 828 dma-names = "tx", "rx", "tx", "rx";
783 max-frequency = <97500000>; 829 max-frequency = <97500000>;
784 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 830 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
831 resets = <&cpg 311>;
785 status = "disabled"; 832 status = "disabled";
786 }; 833 };
787 834
@@ -789,11 +836,12 @@
789 compatible = "renesas,qspi-r8a7794", "renesas,qspi"; 836 compatible = "renesas,qspi-r8a7794", "renesas,qspi";
790 reg = <0 0xe6b10000 0 0x2c>; 837 reg = <0 0xe6b10000 0 0x2c>;
791 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 838 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
792 clocks = <&mstp9_clks R8A7794_CLK_QSPI_MOD>; 839 clocks = <&cpg CPG_MOD 917>;
793 dmas = <&dmac0 0x17>, <&dmac0 0x18>, 840 dmas = <&dmac0 0x17>, <&dmac0 0x18>,
794 <&dmac1 0x17>, <&dmac1 0x18>; 841 <&dmac1 0x17>, <&dmac1 0x18>;
795 dma-names = "tx", "rx", "tx", "rx"; 842 dma-names = "tx", "rx", "tx", "rx";
796 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 843 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
844 resets = <&cpg 917>;
797 num-cs = <1>; 845 num-cs = <1>;
798 #address-cells = <1>; 846 #address-cells = <1>;
799 #size-cells = <0>; 847 #size-cells = <0>;
@@ -804,8 +852,9 @@
804 compatible = "renesas,vin-r8a7794", "renesas,rcar-gen2-vin"; 852 compatible = "renesas,vin-r8a7794", "renesas,rcar-gen2-vin";
805 reg = <0 0xe6ef0000 0 0x1000>; 853 reg = <0 0xe6ef0000 0 0x1000>;
806 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 854 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
807 clocks = <&mstp8_clks R8A7794_CLK_VIN0>; 855 clocks = <&cpg CPG_MOD 811>;
808 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 856 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
857 resets = <&cpg 811>;
809 status = "disabled"; 858 status = "disabled";
810 }; 859 };
811 860
@@ -813,8 +862,9 @@
813 compatible = "renesas,vin-r8a7794", "renesas,rcar-gen2-vin"; 862 compatible = "renesas,vin-r8a7794", "renesas,rcar-gen2-vin";
814 reg = <0 0xe6ef1000 0 0x1000>; 863 reg = <0 0xe6ef1000 0 0x1000>;
815 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; 864 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
816 clocks = <&mstp8_clks R8A7794_CLK_VIN1>; 865 clocks = <&cpg CPG_MOD 810>;
817 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 866 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
867 resets = <&cpg 810>;
818 status = "disabled"; 868 status = "disabled";
819 }; 869 };
820 870
@@ -824,8 +874,9 @@
824 reg = <0 0xee090000 0 0xc00>, 874 reg = <0 0xee090000 0 0xc00>,
825 <0 0xee080000 0 0x1100>; 875 <0 0xee080000 0 0x1100>;
826 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 876 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
827 clocks = <&mstp7_clks R8A7794_CLK_EHCI>; 877 clocks = <&cpg CPG_MOD 703>;
828 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 878 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
879 resets = <&cpg 703>;
829 status = "disabled"; 880 status = "disabled";
830 881
831 bus-range = <0 0>; 882 bus-range = <0 0>;
@@ -857,8 +908,9 @@
857 reg = <0 0xee0d0000 0 0xc00>, 908 reg = <0 0xee0d0000 0 0xc00>,
858 <0 0xee0c0000 0 0x1100>; 909 <0 0xee0c0000 0 0x1100>;
859 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; 910 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
860 clocks = <&mstp7_clks R8A7794_CLK_EHCI>; 911 clocks = <&cpg CPG_MOD 703>;
861 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 912 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
913 resets = <&cpg 703>;
862 status = "disabled"; 914 status = "disabled";
863 915
864 bus-range = <1 1>; 916 bus-range = <1 1>;
@@ -888,8 +940,9 @@
888 compatible = "renesas,usbhs-r8a7794", "renesas,rcar-gen2-usbhs"; 940 compatible = "renesas,usbhs-r8a7794", "renesas,rcar-gen2-usbhs";
889 reg = <0 0xe6590000 0 0x100>; 941 reg = <0 0xe6590000 0 0x100>;
890 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 942 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
891 clocks = <&mstp7_clks R8A7794_CLK_HSUSB>; 943 clocks = <&cpg CPG_MOD 704>;
892 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 944 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
945 resets = <&cpg 704>;
893 renesas,buswait = <4>; 946 renesas,buswait = <4>;
894 phys = <&usb0 1>; 947 phys = <&usb0 1>;
895 phy-names = "usb"; 948 phy-names = "usb";
@@ -902,9 +955,10 @@
902 reg = <0 0xe6590100 0 0x100>; 955 reg = <0 0xe6590100 0 0x100>;
903 #address-cells = <1>; 956 #address-cells = <1>;
904 #size-cells = <0>; 957 #size-cells = <0>;
905 clocks = <&mstp7_clks R8A7794_CLK_HSUSB>; 958 clocks = <&cpg CPG_MOD 704>;
906 clock-names = "usbhs"; 959 clock-names = "usbhs";
907 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 960 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
961 resets = <&cpg 704>;
908 status = "disabled"; 962 status = "disabled";
909 963
910 usb0: usb-channel@0 { 964 usb0: usb-channel@0 {
@@ -917,20 +971,22 @@
917 }; 971 };
918 }; 972 };
919 973
920 vsp1@fe928000 { 974 vsp@fe928000 {
921 compatible = "renesas,vsp1"; 975 compatible = "renesas,vsp1";
922 reg = <0 0xfe928000 0 0x8000>; 976 reg = <0 0xfe928000 0 0x8000>;
923 interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>; 977 interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>;
924 clocks = <&mstp1_clks R8A7794_CLK_VSP1_S>; 978 clocks = <&cpg CPG_MOD 131>;
925 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 979 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
980 resets = <&cpg 131>;
926 }; 981 };
927 982
928 vsp1@fe930000 { 983 vsp@fe930000 {
929 compatible = "renesas,vsp1"; 984 compatible = "renesas,vsp1";
930 reg = <0 0xfe930000 0 0x8000>; 985 reg = <0 0xfe930000 0 0x8000>;
931 interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; 986 interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
932 clocks = <&mstp1_clks R8A7794_CLK_VSP1_DU0>; 987 clocks = <&cpg CPG_MOD 128>;
933 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 988 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
989 resets = <&cpg 128>;
934 }; 990 };
935 991
936 du: display@feb00000 { 992 du: display@feb00000 {
@@ -939,8 +995,7 @@
939 reg-names = "du"; 995 reg-names = "du";
940 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, 996 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
941 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; 997 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
942 clocks = <&mstp7_clks R8A7794_CLK_DU0>, 998 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>;
943 <&mstp7_clks R8A7794_CLK_DU1>;
944 clock-names = "du.0", "du.1"; 999 clock-names = "du.0", "du.1";
945 status = "disabled"; 1000 status = "disabled";
946 1001
@@ -965,10 +1020,11 @@
965 compatible = "renesas,can-r8a7794", "renesas,rcar-gen2-can"; 1020 compatible = "renesas,can-r8a7794", "renesas,rcar-gen2-can";
966 reg = <0 0xe6e80000 0 0x1000>; 1021 reg = <0 0xe6e80000 0 0x1000>;
967 interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>; 1022 interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
968 clocks = <&mstp9_clks R8A7794_CLK_RCAN0>, 1023 clocks = <&cpg CPG_MOD 916>, <&cpg CPG_CORE R8A7794_CLK_RCAN>,
969 <&cpg_clocks R8A7794_CLK_RCAN>, <&can_clk>; 1024 <&can_clk>;
970 clock-names = "clkp1", "clkp2", "can_clk"; 1025 clock-names = "clkp1", "clkp2", "can_clk";
971 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 1026 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
1027 resets = <&cpg 916>;
972 status = "disabled"; 1028 status = "disabled";
973 }; 1029 };
974 1030
@@ -976,434 +1032,73 @@
976 compatible = "renesas,can-r8a7794", "renesas,rcar-gen2-can"; 1032 compatible = "renesas,can-r8a7794", "renesas,rcar-gen2-can";
977 reg = <0 0xe6e88000 0 0x1000>; 1033 reg = <0 0xe6e88000 0 0x1000>;
978 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; 1034 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
979 clocks = <&mstp9_clks R8A7794_CLK_RCAN1>, 1035 clocks = <&cpg CPG_MOD 915>, <&cpg CPG_CORE R8A7794_CLK_RCAN>,
980 <&cpg_clocks R8A7794_CLK_RCAN>, <&can_clk>; 1036 <&can_clk>;
981 clock-names = "clkp1", "clkp2", "can_clk"; 1037 clock-names = "clkp1", "clkp2", "can_clk";
982 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 1038 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
1039 resets = <&cpg 915>;
983 status = "disabled"; 1040 status = "disabled";
984 }; 1041 };
985 1042
986 clocks { 1043 /* External root clock */
987 #address-cells = <2>; 1044 extal_clk: extal {
988 #size-cells = <2>; 1045 compatible = "fixed-clock";
989 ranges; 1046 #clock-cells = <0>;
990 1047 /* This value must be overridden by the board. */
991 /* External root clock */ 1048 clock-frequency = <0>;
992 extal_clk: extal { 1049 };
993 compatible = "fixed-clock";
994 #clock-cells = <0>;
995 /* This value must be overriden by the board. */
996 clock-frequency = <0>;
997 };
998
999 /* External USB clock - can be overridden by the board */
1000 usb_extal_clk: usb_extal {
1001 compatible = "fixed-clock";
1002 #clock-cells = <0>;
1003 clock-frequency = <48000000>;
1004 };
1005
1006 /* External CAN clock */
1007 can_clk: can {
1008 compatible = "fixed-clock";
1009 #clock-cells = <0>;
1010 /* This value must be overridden by the board. */
1011 clock-frequency = <0>;
1012 };
1013
1014 /* External SCIF clock */
1015 scif_clk: scif {
1016 compatible = "fixed-clock";
1017 #clock-cells = <0>;
1018 /* This value must be overridden by the board. */
1019 clock-frequency = <0>;
1020 };
1021 1050
1022 /* 1051 /* External USB clock - can be overridden by the board */
1023 * The external audio clocks are configured as 0 Hz fixed 1052 usb_extal_clk: usb_extal {
1024 * frequency clocks by default. Boards that provide audio 1053 compatible = "fixed-clock";
1025 * clocks should override them. 1054 #clock-cells = <0>;
1026 */ 1055 clock-frequency = <48000000>;
1027 audio_clka: audio_clka { 1056 };
1028 compatible = "fixed-clock";
1029 #clock-cells = <0>;
1030 clock-frequency = <0>;
1031 };
1032 audio_clkb: audio_clkb {
1033 compatible = "fixed-clock";
1034 #clock-cells = <0>;
1035 clock-frequency = <0>;
1036 };
1037 audio_clkc: audio_clkc {
1038 compatible = "fixed-clock";
1039 #clock-cells = <0>;
1040 clock-frequency = <0>;
1041 };
1042 1057
1043 /* Special CPG clocks */ 1058 /* External CAN clock */
1044 cpg_clocks: cpg_clocks@e6150000 { 1059 can_clk: can {
1045 compatible = "renesas,r8a7794-cpg-clocks", 1060 compatible = "fixed-clock";
1046 "renesas,rcar-gen2-cpg-clocks"; 1061 #clock-cells = <0>;
1047 reg = <0 0xe6150000 0 0x1000>; 1062 /* This value must be overridden by the board. */
1048 clocks = <&extal_clk &usb_extal_clk>; 1063 clock-frequency = <0>;
1049 #clock-cells = <1>; 1064 };
1050 clock-output-names = "main", "pll0", "pll1", "pll3",
1051 "lb", "qspi", "sdh", "sd0", "rcan";
1052 #power-domain-cells = <0>;
1053 };
1054 /* Variable factor clocks */
1055 sd2_clk: sd2@e6150078 {
1056 compatible = "renesas,r8a7794-div6-clock", "renesas,cpg-div6-clock";
1057 reg = <0 0xe6150078 0 4>;
1058 clocks = <&pll1_div2_clk>;
1059 #clock-cells = <0>;
1060 };
1061 sd3_clk: sd3@e615026c {
1062 compatible = "renesas,r8a7794-div6-clock", "renesas,cpg-div6-clock";
1063 reg = <0 0xe615026c 0 4>;
1064 clocks = <&pll1_div2_clk>;
1065 #clock-cells = <0>;
1066 };
1067 mmc0_clk: mmc0@e6150240 {
1068 compatible = "renesas,r8a7794-div6-clock", "renesas,cpg-div6-clock";
1069 reg = <0 0xe6150240 0 4>;
1070 clocks = <&pll1_div2_clk>;
1071 #clock-cells = <0>;
1072 };
1073 1065
1074 /* Fixed factor clocks */ 1066 /* External SCIF clock */
1075 pll1_div2_clk: pll1_div2 { 1067 scif_clk: scif {
1076 compatible = "fixed-factor-clock"; 1068 compatible = "fixed-clock";
1077 clocks = <&cpg_clocks R8A7794_CLK_PLL1>; 1069 #clock-cells = <0>;
1078 #clock-cells = <0>; 1070 /* This value must be overridden by the board. */
1079 clock-div = <2>; 1071 clock-frequency = <0>;
1080 clock-mult = <1>; 1072 };
1081 };
1082 z2_clk: z2 {
1083 compatible = "fixed-factor-clock";
1084 clocks = <&cpg_clocks R8A7794_CLK_PLL0>;
1085 #clock-cells = <0>;
1086 clock-div = <1>;
1087 clock-mult = <1>;
1088 };
1089 zg_clk: zg {
1090 compatible = "fixed-factor-clock";
1091 clocks = <&cpg_clocks R8A7794_CLK_PLL1>;
1092 #clock-cells = <0>;
1093 clock-div = <6>;
1094 clock-mult = <1>;
1095 };
1096 zx_clk: zx {
1097 compatible = "fixed-factor-clock";
1098 clocks = <&cpg_clocks R8A7794_CLK_PLL1>;
1099 #clock-cells = <0>;
1100 clock-div = <3>;
1101 clock-mult = <1>;
1102 };
1103 zs_clk: zs {
1104 compatible = "fixed-factor-clock";
1105 clocks = <&cpg_clocks R8A7794_CLK_PLL1>;
1106 #clock-cells = <0>;
1107 clock-div = <6>;
1108 clock-mult = <1>;
1109 };
1110 hp_clk: hp {
1111 compatible = "fixed-factor-clock";
1112 clocks = <&cpg_clocks R8A7794_CLK_PLL1>;
1113 #clock-cells = <0>;
1114 clock-div = <12>;
1115 clock-mult = <1>;
1116 };
1117 i_clk: i {
1118 compatible = "fixed-factor-clock";
1119 clocks = <&cpg_clocks R8A7794_CLK_PLL1>;
1120 #clock-cells = <0>;
1121 clock-div = <2>;
1122 clock-mult = <1>;
1123 };
1124 b_clk: b {
1125 compatible = "fixed-factor-clock";
1126 clocks = <&cpg_clocks R8A7794_CLK_PLL1>;
1127 #clock-cells = <0>;
1128 clock-div = <12>;
1129 clock-mult = <1>;
1130 };
1131 p_clk: p {
1132 compatible = "fixed-factor-clock";
1133 clocks = <&cpg_clocks R8A7794_CLK_PLL1>;
1134 #clock-cells = <0>;
1135 clock-div = <24>;
1136 clock-mult = <1>;
1137 };
1138 cl_clk: cl {
1139 compatible = "fixed-factor-clock";
1140 clocks = <&cpg_clocks R8A7794_CLK_PLL1>;
1141 #clock-cells = <0>;
1142 clock-div = <48>;
1143 clock-mult = <1>;
1144 };
1145 m2_clk: m2 {
1146 compatible = "fixed-factor-clock";
1147 clocks = <&cpg_clocks R8A7794_CLK_PLL1>;
1148 #clock-cells = <0>;
1149 clock-div = <8>;
1150 clock-mult = <1>;
1151 };
1152 rclk_clk: rclk {
1153 compatible = "fixed-factor-clock";
1154 clocks = <&cpg_clocks R8A7794_CLK_PLL1>;
1155 #clock-cells = <0>;
1156 clock-div = <(48 * 1024)>;
1157 clock-mult = <1>;
1158 };
1159 oscclk_clk: oscclk {
1160 compatible = "fixed-factor-clock";
1161 clocks = <&cpg_clocks R8A7794_CLK_PLL1>;
1162 #clock-cells = <0>;
1163 clock-div = <(12 * 1024)>;
1164 clock-mult = <1>;
1165 };
1166 zb3_clk: zb3 {
1167 compatible = "fixed-factor-clock";
1168 clocks = <&cpg_clocks R8A7794_CLK_PLL3>;
1169 #clock-cells = <0>;
1170 clock-div = <4>;
1171 clock-mult = <1>;
1172 };
1173 zb3d2_clk: zb3d2 {
1174 compatible = "fixed-factor-clock";
1175 clocks = <&cpg_clocks R8A7794_CLK_PLL3>;
1176 #clock-cells = <0>;
1177 clock-div = <8>;
1178 clock-mult = <1>;
1179 };
1180 ddr_clk: ddr {
1181 compatible = "fixed-factor-clock";
1182 clocks = <&cpg_clocks R8A7794_CLK_PLL3>;
1183 #clock-cells = <0>;
1184 clock-div = <8>;
1185 clock-mult = <1>;
1186 };
1187 mp_clk: mp {
1188 compatible = "fixed-factor-clock";
1189 clocks = <&pll1_div2_clk>;
1190 #clock-cells = <0>;
1191 clock-div = <15>;
1192 clock-mult = <1>;
1193 };
1194 cp_clk: cp {
1195 compatible = "fixed-factor-clock";
1196 clocks = <&cpg_clocks R8A7794_CLK_PLL1>;
1197 #clock-cells = <0>;
1198 clock-div = <48>;
1199 clock-mult = <1>;
1200 };
1201 1073
1202 acp_clk: acp { 1074 /*
1203 compatible = "fixed-factor-clock"; 1075 * The external audio clocks are configured as 0 Hz fixed
1204 clocks = <&extal_clk>; 1076 * frequency clocks by default. Boards that provide audio
1205 #clock-cells = <0>; 1077 * clocks should override them.
1206 clock-div = <2>; 1078 */
1207 clock-mult = <1>; 1079 audio_clka: audio_clka {
1208 }; 1080 compatible = "fixed-clock";
1081 #clock-cells = <0>;
1082 clock-frequency = <0>;
1083 };
1084 audio_clkb: audio_clkb {
1085 compatible = "fixed-clock";
1086 #clock-cells = <0>;
1087 clock-frequency = <0>;
1088 };
1089 audio_clkc: audio_clkc {
1090 compatible = "fixed-clock";
1091 #clock-cells = <0>;
1092 clock-frequency = <0>;
1093 };
1209 1094
1210 /* Gate clocks */ 1095 cpg: clock-controller@e6150000 {
1211 mstp0_clks: mstp0_clks@e6150130 { 1096 compatible = "renesas,r8a7794-cpg-mssr";
1212 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks"; 1097 reg = <0 0xe6150000 0 0x1000>;
1213 reg = <0 0xe6150130 0 4>, <0 0xe6150030 0 4>; 1098 clocks = <&extal_clk>, <&usb_extal_clk>;
1214 clocks = <&mp_clk>; 1099 clock-names = "extal", "usb_extal";
1215 #clock-cells = <1>; 1100 #clock-cells = <2>;
1216 clock-indices = <R8A7794_CLK_MSIOF0>; 1101 #power-domain-cells = <0>;
1217 clock-output-names = "msiof0";
1218 };
1219 mstp1_clks: mstp1_clks@e6150134 {
1220 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
1221 reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>;
1222 clocks = <&zs_clk>, <&zs_clk>, <&p_clk>, <&zg_clk>, <&zs_clk>,
1223 <&zs_clk>, <&p_clk>, <&p_clk>, <&rclk_clk>, <&cp_clk>,
1224 <&zs_clk>, <&zs_clk>;
1225 #clock-cells = <1>;
1226 clock-indices = <
1227 R8A7794_CLK_VCP0 R8A7794_CLK_VPC0 R8A7794_CLK_TMU1
1228 R8A7794_CLK_3DG R8A7794_CLK_2DDMAC R8A7794_CLK_FDP1_0
1229 R8A7794_CLK_TMU3 R8A7794_CLK_TMU2 R8A7794_CLK_CMT0
1230 R8A7794_CLK_TMU0 R8A7794_CLK_VSP1_DU0 R8A7794_CLK_VSP1_S
1231 >;
1232 clock-output-names =
1233 "vcp0", "vpc0", "tmu1", "3dg", "2ddmac", "fdp1-0",
1234 "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du0", "vsps";
1235 };
1236 mstp2_clks: mstp2_clks@e6150138 {
1237 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
1238 reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>;
1239 clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>,
1240 <&mp_clk>, <&mp_clk>, <&mp_clk>,
1241 <&zs_clk>, <&zs_clk>;
1242 #clock-cells = <1>;
1243 clock-indices = <
1244 R8A7794_CLK_SCIFA2 R8A7794_CLK_SCIFA1 R8A7794_CLK_SCIFA0
1245 R8A7794_CLK_MSIOF2 R8A7794_CLK_SCIFB0 R8A7794_CLK_SCIFB1
1246 R8A7794_CLK_MSIOF1 R8A7794_CLK_SCIFB2
1247 R8A7794_CLK_SYS_DMAC1 R8A7794_CLK_SYS_DMAC0
1248 >;
1249 clock-output-names =
1250 "scifa2", "scifa1", "scifa0", "msiof2", "scifb0",
1251 "scifb1", "msiof1", "scifb2",
1252 "sys-dmac1", "sys-dmac0";
1253 };
1254 mstp3_clks: mstp3_clks@e615013c {
1255 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
1256 reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>;
1257 clocks = <&sd3_clk>, <&sd2_clk>, <&cpg_clocks R8A7794_CLK_SD0>,
1258 <&mmc0_clk>, <&hp_clk>, <&hp_clk>, <&rclk_clk>,
1259 <&hp_clk>, <&hp_clk>;
1260 #clock-cells = <1>;
1261 clock-indices = <
1262 R8A7794_CLK_SDHI2 R8A7794_CLK_SDHI1 R8A7794_CLK_SDHI0
1263 R8A7794_CLK_MMCIF0 R8A7794_CLK_IIC0
1264 R8A7794_CLK_IIC1 R8A7794_CLK_CMT1
1265 R8A7794_CLK_USBDMAC0 R8A7794_CLK_USBDMAC1
1266 >;
1267 clock-output-names =
1268 "sdhi2", "sdhi1", "sdhi0",
1269 "mmcif0", "i2c6", "i2c7",
1270 "cmt1", "usbdmac0", "usbdmac1";
1271 };
1272 mstp4_clks: mstp4_clks@e6150140 {
1273 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
1274 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>;
1275 clocks = <&cp_clk>, <&zs_clk>;
1276 #clock-cells = <1>;
1277 clock-indices = <R8A7794_CLK_IRQC R8A7794_CLK_INTC_SYS>;
1278 clock-output-names = "irqc", "intc-sys";
1279 };
1280 mstp5_clks: mstp5_clks@e6150144 {
1281 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
1282 reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>;
1283 clocks = <&hp_clk>, <&p_clk>;
1284 #clock-cells = <1>;
1285 clock-indices = <R8A7794_CLK_AUDIO_DMAC0
1286 R8A7794_CLK_PWM>;
1287 clock-output-names = "audmac0", "pwm";
1288 };
1289 mstp7_clks: mstp7_clks@e615014c {
1290 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
1291 reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>;
1292 clocks = <&mp_clk>, <&hp_clk>,
1293 <&zs_clk>, <&p_clk>, <&p_clk>, <&zs_clk>,
1294 <&zs_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>,
1295 <&zx_clk>, <&zx_clk>;
1296 #clock-cells = <1>;
1297 clock-indices = <
1298 R8A7794_CLK_EHCI R8A7794_CLK_HSUSB
1299 R8A7794_CLK_HSCIF2 R8A7794_CLK_SCIF5
1300 R8A7794_CLK_SCIF4 R8A7794_CLK_HSCIF1 R8A7794_CLK_HSCIF0
1301 R8A7794_CLK_SCIF3 R8A7794_CLK_SCIF2 R8A7794_CLK_SCIF1
1302 R8A7794_CLK_SCIF0
1303 R8A7794_CLK_DU1 R8A7794_CLK_DU0
1304 >;
1305 clock-output-names =
1306 "ehci", "hsusb",
1307 "hscif2", "scif5", "scif4", "hscif1", "hscif0",
1308 "scif3", "scif2", "scif1", "scif0",
1309 "du1", "du0";
1310 };
1311 mstp8_clks: mstp8_clks@e6150990 {
1312 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
1313 reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>;
1314 clocks = <&zg_clk>, <&zg_clk>, <&hp_clk>, <&p_clk>;
1315 #clock-cells = <1>;
1316 clock-indices = <
1317 R8A7794_CLK_VIN1 R8A7794_CLK_VIN0
1318 R8A7794_CLK_ETHERAVB R8A7794_CLK_ETHER
1319 >;
1320 clock-output-names =
1321 "vin1", "vin0", "etheravb", "ether";
1322 };
1323 mstp9_clks: mstp9_clks@e6150994 {
1324 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
1325 reg = <0 0xe6150994 0 4>, <0 0xe61509a4 0 4>;
1326 clocks = <&cp_clk>, <&cp_clk>, <&cp_clk>, <&cp_clk>,
1327 <&cp_clk>, <&cp_clk>, <&cp_clk>, <&p_clk>,
1328 <&p_clk>, <&cpg_clocks R8A7794_CLK_QSPI>,
1329 <&hp_clk>, <&hp_clk>, <&hp_clk>, <&hp_clk>,
1330 <&hp_clk>, <&hp_clk>;
1331 #clock-cells = <1>;
1332 clock-indices = <R8A7794_CLK_GPIO6 R8A7794_CLK_GPIO5
1333 R8A7794_CLK_GPIO4 R8A7794_CLK_GPIO3
1334 R8A7794_CLK_GPIO2 R8A7794_CLK_GPIO1
1335 R8A7794_CLK_GPIO0 R8A7794_CLK_RCAN1
1336 R8A7794_CLK_RCAN0 R8A7794_CLK_QSPI_MOD
1337 R8A7794_CLK_I2C5 R8A7794_CLK_I2C4
1338 R8A7794_CLK_I2C3 R8A7794_CLK_I2C2
1339 R8A7794_CLK_I2C1 R8A7794_CLK_I2C0>;
1340 clock-output-names =
1341 "gpio6", "gpio5", "gpio4", "gpio3", "gpio2",
1342 "gpio1", "gpio0", "rcan1", "rcan0", "qspi_mod",
1343 "i2c5", "i2c4", "i2c3", "i2c2", "i2c1", "i2c0";
1344 };
1345 mstp10_clks: mstp10_clks@e6150998 {
1346 compatible = "renesas,r8a7794-mstp-clocks",
1347 "renesas,cpg-mstp-clocks";
1348 reg = <0 0xe6150998 0 4>, <0 0xe61509a8 0 4>;
1349 clocks = <&p_clk>,
1350 <&mstp10_clks R8A7794_CLK_SSI_ALL>,
1351 <&mstp10_clks R8A7794_CLK_SSI_ALL>,
1352 <&mstp10_clks R8A7794_CLK_SSI_ALL>,
1353 <&mstp10_clks R8A7794_CLK_SSI_ALL>,
1354 <&mstp10_clks R8A7794_CLK_SSI_ALL>,
1355 <&mstp10_clks R8A7794_CLK_SSI_ALL>,
1356 <&mstp10_clks R8A7794_CLK_SSI_ALL>,
1357 <&mstp10_clks R8A7794_CLK_SSI_ALL>,
1358 <&mstp10_clks R8A7794_CLK_SSI_ALL>,
1359 <&mstp10_clks R8A7794_CLK_SSI_ALL>,
1360 <&p_clk>,
1361 <&mstp10_clks R8A7794_CLK_SCU_ALL>,
1362 <&mstp10_clks R8A7794_CLK_SCU_ALL>,
1363 <&mstp10_clks R8A7794_CLK_SCU_ALL>,
1364 <&mstp10_clks R8A7794_CLK_SCU_ALL>,
1365 <&mstp10_clks R8A7794_CLK_SCU_ALL>,
1366 <&mstp10_clks R8A7794_CLK_SCU_ALL>,
1367 <&mstp10_clks R8A7794_CLK_SCU_ALL>,
1368 <&mstp10_clks R8A7794_CLK_SCU_ALL>,
1369 <&mstp10_clks R8A7794_CLK_SCU_ALL>,
1370 <&mstp10_clks R8A7794_CLK_SCU_ALL>;
1371 #clock-cells = <1>;
1372 clock-indices = <R8A7794_CLK_SSI_ALL
1373 R8A7794_CLK_SSI9 R8A7794_CLK_SSI8
1374 R8A7794_CLK_SSI7 R8A7794_CLK_SSI6
1375 R8A7794_CLK_SSI5 R8A7794_CLK_SSI4
1376 R8A7794_CLK_SSI3 R8A7794_CLK_SSI2
1377 R8A7794_CLK_SSI1 R8A7794_CLK_SSI0
1378 R8A7794_CLK_SCU_ALL
1379 R8A7794_CLK_SCU_DVC1
1380 R8A7794_CLK_SCU_DVC0
1381 R8A7794_CLK_SCU_CTU1_MIX1
1382 R8A7794_CLK_SCU_CTU0_MIX0
1383 R8A7794_CLK_SCU_SRC6
1384 R8A7794_CLK_SCU_SRC5
1385 R8A7794_CLK_SCU_SRC4
1386 R8A7794_CLK_SCU_SRC3
1387 R8A7794_CLK_SCU_SRC2
1388 R8A7794_CLK_SCU_SRC1>;
1389 clock-output-names = "ssi-all", "ssi9", "ssi8", "ssi7",
1390 "ssi6", "ssi5", "ssi4", "ssi3",
1391 "ssi2", "ssi1", "ssi0",
1392 "scu-all", "scu-dvc1", "scu-dvc0",
1393 "scu-ctu1-mix1", "scu-ctu0-mix0",
1394 "scu-src6", "scu-src5", "scu-src4",
1395 "scu-src3", "scu-src2", "scu-src1";
1396 };
1397 mstp11_clks: mstp11_clks@e615099c {
1398 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
1399 reg = <0 0xe615099c 0 4>, <0 0xe61509ac 0 4>;
1400 clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>;
1401 #clock-cells = <1>;
1402 clock-indices = <
1403 R8A7794_CLK_SCIFA3 R8A7794_CLK_SCIFA4 R8A7794_CLK_SCIFA5
1404 >;
1405 clock-output-names = "scifa3", "scifa4", "scifa5";
1406 };
1407 }; 1102 };
1408 1103
1409 rst: reset-controller@e6160000 { 1104 rst: reset-controller@e6160000 {
@@ -1490,31 +1185,20 @@
1490 <0 0xec740000 0 0x200>; /* Audio DMAC peri peri */ 1185 <0 0xec740000 0 0x200>; /* Audio DMAC peri peri */
1491 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; 1186 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
1492 1187
1493 clocks = <&mstp10_clks R8A7794_CLK_SSI_ALL>, 1188 clocks = <&cpg CPG_MOD 1005>,
1494 <&mstp10_clks R8A7794_CLK_SSI9>, 1189 <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>,
1495 <&mstp10_clks R8A7794_CLK_SSI8>, 1190 <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>,
1496 <&mstp10_clks R8A7794_CLK_SSI7>, 1191 <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>,
1497 <&mstp10_clks R8A7794_CLK_SSI6>, 1192 <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>,
1498 <&mstp10_clks R8A7794_CLK_SSI5>, 1193 <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>,
1499 <&mstp10_clks R8A7794_CLK_SSI4>, 1194 <&cpg CPG_MOD 1025>, <&cpg CPG_MOD 1026>,
1500 <&mstp10_clks R8A7794_CLK_SSI3>, 1195 <&cpg CPG_MOD 1027>, <&cpg CPG_MOD 1028>,
1501 <&mstp10_clks R8A7794_CLK_SSI2>, 1196 <&cpg CPG_MOD 1029>, <&cpg CPG_MOD 1030>,
1502 <&mstp10_clks R8A7794_CLK_SSI1>, 1197 <&cpg CPG_MOD 1021>, <&cpg CPG_MOD 1020>,
1503 <&mstp10_clks R8A7794_CLK_SSI0>, 1198 <&cpg CPG_MOD 1021>, <&cpg CPG_MOD 1020>,
1504 <&mstp10_clks R8A7794_CLK_SCU_SRC6>, 1199 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>,
1505 <&mstp10_clks R8A7794_CLK_SCU_SRC5>,
1506 <&mstp10_clks R8A7794_CLK_SCU_SRC4>,
1507 <&mstp10_clks R8A7794_CLK_SCU_SRC3>,
1508 <&mstp10_clks R8A7794_CLK_SCU_SRC2>,
1509 <&mstp10_clks R8A7794_CLK_SCU_SRC1>,
1510 <&mstp10_clks R8A7794_CLK_SCU_CTU0_MIX0>,
1511 <&mstp10_clks R8A7794_CLK_SCU_CTU1_MIX1>,
1512 <&mstp10_clks R8A7794_CLK_SCU_CTU0_MIX0>,
1513 <&mstp10_clks R8A7794_CLK_SCU_CTU1_MIX1>,
1514 <&mstp10_clks R8A7794_CLK_SCU_DVC0>,
1515 <&mstp10_clks R8A7794_CLK_SCU_DVC1>,
1516 <&audio_clka>, <&audio_clkb>, <&audio_clkc>, 1200 <&audio_clka>, <&audio_clkb>, <&audio_clkc>,
1517 <&m2_clk>; 1201 <&cpg CPG_CORE R8A7794_CLK_M2>;
1518 clock-names = "ssi-all", 1202 clock-names = "ssi-all",
1519 "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", 1203 "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
1520 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0", 1204 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0",
@@ -1525,6 +1209,13 @@
1525 "dvc.0", "dvc.1", 1209 "dvc.0", "dvc.1",
1526 "clk_a", "clk_b", "clk_c", "clk_i"; 1210 "clk_a", "clk_b", "clk_c", "clk_i";
1527 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 1211 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
1212 resets = <&cpg 1005>,
1213 <&cpg 1006>, <&cpg 1007>, <&cpg 1008>, <&cpg 1009>,
1214 <&cpg 1010>, <&cpg 1011>, <&cpg 1012>, <&cpg 1013>,
1215 <&cpg 1014>, <&cpg 1015>;
1216 reset-names = "ssi-all",
1217 "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
1218 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0";
1528 1219
1529 status = "disabled"; 1220 status = "disabled";
1530 1221
diff --git a/arch/arm/boot/dts/rk3036-kylin.dts b/arch/arm/boot/dts/rk3036-kylin.dts
index fdb1570bc7d3..e2a0f576946f 100644
--- a/arch/arm/boot/dts/rk3036-kylin.dts
+++ b/arch/arm/boot/dts/rk3036-kylin.dts
@@ -135,6 +135,11 @@
135 status = "okay"; 135 status = "okay";
136}; 136};
137 137
138&gpu {
139 mali-supply = <&vdd_gpu>;
140 status = "okay";
141};
142
138&hdmi { 143&hdmi {
139 status = "okay"; 144 status = "okay";
140}; 145};
diff --git a/arch/arm/boot/dts/rk3036.dtsi b/arch/arm/boot/dts/rk3036.dtsi
index 4916c65e0ace..3b704cfed69a 100644
--- a/arch/arm/boot/dts/rk3036.dtsi
+++ b/arch/arm/boot/dts/rk3036.dtsi
@@ -152,6 +152,25 @@
152 }; 152 };
153 }; 153 };
154 154
155 gpu: gpu@10090000 {
156 compatible = "rockchip,rk3036-mali", "arm,mali-400";
157 reg = <0x10090000 0x10000>;
158 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
159 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
160 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
161 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
162 interrupt-names = "gp",
163 "gpmmu",
164 "pp0",
165 "ppmmu0";
166 assigned-clocks = <&cru SCLK_GPU>;
167 assigned-clock-rates = <100000000>;
168 clocks = <&cru SCLK_GPU>, <&cru SCLK_GPU>;
169 clock-names = "core", "bus";
170 resets = <&cru SRST_GPU>;
171 status = "disabled";
172 };
173
155 vop: vop@10118000 { 174 vop: vop@10118000 {
156 compatible = "rockchip,rk3036-vop"; 175 compatible = "rockchip,rk3036-vop";
157 reg = <0x10118000 0x19c>; 176 reg = <0x10118000 0x19c>;
diff --git a/arch/arm/boot/dts/rk3066a-rayeager.dts b/arch/arm/boot/dts/rk3066a-rayeager.dts
index 400cbf9609e3..cdf301f5778b 100644
--- a/arch/arm/boot/dts/rk3066a-rayeager.dts
+++ b/arch/arm/boot/dts/rk3066a-rayeager.dts
@@ -196,7 +196,7 @@
196 clock-frequency = <400000>; 196 clock-frequency = <400000>;
197 status = "okay"; 197 status = "okay";
198 198
199 ak8963: ak8963@0d { 199 ak8963: ak8963@d {
200 compatible = "asahi-kasei,ak8975"; 200 compatible = "asahi-kasei,ak8975";
201 reg = <0x0d>; 201 reg = <0x0d>;
202 interrupt-parent = <&gpio4>; 202 interrupt-parent = <&gpio4>;
diff --git a/arch/arm/boot/dts/rk3066a.dtsi b/arch/arm/boot/dts/rk3066a.dtsi
index f50481fd8e5c..06523caca27d 100644
--- a/arch/arm/boot/dts/rk3066a.dtsi
+++ b/arch/arm/boot/dts/rk3066a.dtsi
@@ -610,6 +610,30 @@
610 }; 610 };
611}; 611};
612 612
613&gpu {
614 compatible = "rockchip,rk3066-mali", "arm,mali-400";
615 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
616 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
617 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
618 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
619 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
620 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
621 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
622 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
623 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
624 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
625 interrupt-names = "gp",
626 "gpmmu",
627 "pp0",
628 "ppmmu0",
629 "pp1",
630 "ppmmu1",
631 "pp2",
632 "ppmmu2",
633 "pp3",
634 "ppmmu3";
635};
636
613&i2c0 { 637&i2c0 {
614 pinctrl-names = "default"; 638 pinctrl-names = "default";
615 pinctrl-0 = <&i2c0_xfer>; 639 pinctrl-0 = <&i2c0_xfer>;
diff --git a/arch/arm/boot/dts/rk3188-radxarock.dts b/arch/arm/boot/dts/rk3188-radxarock.dts
index 53d6fc2fdbce..00e05a6662ac 100644
--- a/arch/arm/boot/dts/rk3188-radxarock.dts
+++ b/arch/arm/boot/dts/rk3188-radxarock.dts
@@ -176,6 +176,10 @@
176 cpu0-supply = <&vdd_arm>; 176 cpu0-supply = <&vdd_arm>;
177}; 177};
178 178
179&gpu {
180 status = "okay";
181};
182
179&i2c1 { 183&i2c1 {
180 status = "okay"; 184 status = "okay";
181 clock-frequency = <400000>; 185 clock-frequency = <400000>;
diff --git a/arch/arm/boot/dts/rk3188.dtsi b/arch/arm/boot/dts/rk3188.dtsi
index 1399bc04ea77..aa10caae51c3 100644
--- a/arch/arm/boot/dts/rk3188.dtsi
+++ b/arch/arm/boot/dts/rk3188.dtsi
@@ -553,6 +553,30 @@
553 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; 553 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
554}; 554};
555 555
556&gpu {
557 compatible = "rockchip,rk3188-mali", "arm,mali-400";
558 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
559 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
560 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
561 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
562 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
563 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
564 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
565 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
566 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
567 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
568 interrupt-names = "gp",
569 "gpmmu",
570 "pp0",
571 "ppmmu0",
572 "pp1",
573 "ppmmu1",
574 "pp2",
575 "ppmmu2",
576 "pp3",
577 "ppmmu3";
578};
579
556&i2c0 { 580&i2c0 {
557 compatible = "rockchip,rk3188-i2c"; 581 compatible = "rockchip,rk3188-i2c";
558 pinctrl-names = "default"; 582 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/rk322x.dtsi b/arch/arm/boot/dts/rk322x.dtsi
index 06814421eed2..780ec3a99b21 100644
--- a/arch/arm/boot/dts/rk322x.dtsi
+++ b/arch/arm/boot/dts/rk322x.dtsi
@@ -558,6 +558,27 @@
558 status = "disabled"; 558 status = "disabled";
559 }; 559 };
560 560
561 gpu: gpu@20000000 {
562 compatible = "rockchip,rk3228-mali", "arm,mali-400";
563 reg = <0x20000000 0x10000>;
564 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
565 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
566 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
567 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
568 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
569 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
570 interrupt-names = "gp",
571 "gpmmu",
572 "pp0",
573 "ppmmu0",
574 "pp1",
575 "ppmmu1";
576 clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
577 clock-names = "core", "bus";
578 resets = <&cru SRST_GPU_A>;
579 status = "disabled";
580 };
581
561 vpu_mmu: iommu@20020800 { 582 vpu_mmu: iommu@20020800 {
562 compatible = "rockchip,iommu"; 583 compatible = "rockchip,iommu";
563 reg = <0x20020800 0x100>; 584 reg = <0x20020800 0x100>;
diff --git a/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi b/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi
index 5f05815f47e0..5f1e336dbaac 100644
--- a/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi
+++ b/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi
@@ -184,6 +184,7 @@
184 regulator-name = "vdd10_lcd"; 184 regulator-name = "vdd10_lcd";
185 regulator-min-microvolt = <1000000>; 185 regulator-min-microvolt = <1000000>;
186 regulator-max-microvolt = <1000000>; 186 regulator-max-microvolt = <1000000>;
187 regulator-always-on;
187 }; 188 };
188 189
189 vcca_18: REG7 { 190 vcca_18: REG7 {
@@ -223,6 +224,7 @@
223 regulator-name = "vcc18_lcd"; 224 regulator-name = "vcc18_lcd";
224 regulator-min-microvolt = <1800000>; 225 regulator-min-microvolt = <1800000>;
225 regulator-max-microvolt = <1800000>; 226 regulator-max-microvolt = <1800000>;
227 regulator-always-on;
226 }; 228 };
227 }; 229 };
228 }; 230 };
diff --git a/arch/arm/boot/dts/rk3288-firefly-reload.dts b/arch/arm/boot/dts/rk3288-firefly-reload.dts
index 7da0947ababb..eab176e3dfc3 100644
--- a/arch/arm/boot/dts/rk3288-firefly-reload.dts
+++ b/arch/arm/boot/dts/rk3288-firefly-reload.dts
@@ -226,6 +226,13 @@
226 }; 226 };
227}; 227};
228 228
229&hdmi {
230 ddc-i2c-bus = <&i2c5>;
231 pinctrl-names = "default";
232 pinctrl-0 = <&hdmi_cec_c0>;
233 status = "okay";
234};
235
229&i2c0 { 236&i2c0 {
230 hym8563: hym8563@51 { 237 hym8563: hym8563@51 {
231 compatible = "haoyu,hym8563"; 238 compatible = "haoyu,hym8563";
@@ -255,6 +262,10 @@
255 }; 262 };
256}; 263};
257 264
265&i2c5 {
266 status = "okay";
267};
268
258&i2s { 269&i2s {
259 status = "okay"; 270 status = "okay";
260}; 271};
diff --git a/arch/arm/boot/dts/rk3288-popmetal.dts b/arch/arm/boot/dts/rk3288-popmetal.dts
index f084e0c8dcb3..c06d0f4ceb81 100644
--- a/arch/arm/boot/dts/rk3288-popmetal.dts
+++ b/arch/arm/boot/dts/rk3288-popmetal.dts
@@ -384,7 +384,7 @@
384 status = "okay"; 384 status = "okay";
385 clock-frequency = <400000>; 385 clock-frequency = <400000>;
386 386
387 ak8963: ak8963@0d { 387 ak8963: ak8963@d {
388 compatible = "asahi-kasei,ak8975"; 388 compatible = "asahi-kasei,ak8975";
389 reg = <0x0d>; 389 reg = <0x0d>;
390 interrupt-parent = <&gpio8>; 390 interrupt-parent = <&gpio8>;
diff --git a/arch/arm/boot/dts/rk3288-vyasa.dts b/arch/arm/boot/dts/rk3288-vyasa.dts
new file mode 100644
index 000000000000..9842a006e823
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-vyasa.dts
@@ -0,0 +1,498 @@
1/*
2 * Copyright (C) 2017 Jagan Teki <jagan@amarulasolutions.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 "rk3288.dtsi"
45
46/ {
47 model = "Amarula Vyasa-RK3288";
48 compatible = "amarula,vyasa-rk3288", "rockchip,rk3288";
49
50 chosen {
51 stdout-path = &uart2;
52 };
53
54 memory {
55 reg = <0x0 0x0 0x0 0x80000000>;
56 device_type = "memory";
57 };
58
59 dc12_vbat: dc12-vbat {
60 compatible = "regulator-fixed";
61 regulator-name = "dc12_vbat";
62 regulator-min-microvolt = <12000000>;
63 regulator-max-microvolt = <12000000>;
64 regulator-always-on;
65 regulator-boot-on;
66 };
67
68 vboot_3v3: vboot-3v3 {
69 compatible = "regulator-fixed";
70 regulator-name = "vboot_3v3";
71 regulator-min-microvolt = <3300000>;
72 regulator-max-microvolt = <3300000>;
73 regulator-always-on;
74 regulator-boot-on;
75 vin-supply = <&dc12_vbat>;
76 };
77
78 vcc_sys: vsys-regulator {
79 compatible = "regulator-fixed";
80 regulator-name = "vcc_sys";
81 regulator-min-microvolt = <3700000>;
82 regulator-max-microvolt = <3700000>;
83 regulator-always-on;
84 regulator-boot-on;
85 vin-supply = <&dc12_vbat>;
86 };
87
88 vboot_5v: vboot-5v {
89 compatible = "regulator-fixed";
90 regulator-name = "vboot_sv";
91 regulator-min-microvolt = <5000000>;
92 regulator-max-microvolt = <5000000>;
93 regulator-always-on;
94 regulator-boot-on;
95 vin-supply = <&dc12_vbat>;
96 };
97
98 v3g_3v3: v3g-3v3 {
99 compatible = "regulator-fixed";
100 regulator-name = "v3g_3v3";
101 regulator-min-microvolt = <3300000>;
102 regulator-max-microvolt = <3300000>;
103 regulator-always-on;
104 regulator-boot-on;
105 vin-supply = <&dc12_vbat>;
106 };
107
108 vsus_5v: vsus-5v {
109 compatible = "regulator-fixed";
110 regulator-name = "vsus_5v";
111 regulator-min-microvolt = <5000000>;
112 regulator-max-microvolt = <5000000>;
113 regulator-always-on;
114 regulator-boot-on;
115 vin-supply = <&vcc_io>;
116 };
117
118 vusb1_5v: vusb1-5v {
119 compatible = "regulator-fixed";
120 regulator-name = "vusb1_5v";
121 enable-active-high;
122 gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; /* OTG_VBUS_DRV */
123 pinctrl-names = "default";
124 pinctrl-0 = <&otg_vbus_drv>;
125 regulator-min-microvolt = <5000000>;
126 regulator-max-microvolt = <5000000>;
127 regulator-always-on;
128 regulator-boot-on;
129 vin-supply = <&vsus_5v>;
130 };
131
132 vusb2_5v: vusb2-5v {
133 compatible = "regulator-fixed";
134 regulator-name = "vusb2_5v";
135 enable-active-high;
136 gpio = <&gpio8 RK_PB1 GPIO_ACTIVE_HIGH>; /* USB2_PWR_EN */
137 pinctrl-names = "default";
138 pinctrl-0 = <&usb2_pwr_en>;
139 regulator-min-microvolt = <5000000>;
140 regulator-max-microvolt = <5000000>;
141 regulator-always-on;
142 regulator-boot-on;
143 vin-supply = <&vsus_5v>;
144 };
145
146 ext_gmac: external-gmac-clock {
147 compatible = "fixed-clock";
148 #clock-cells = <0>;
149 clock-frequency = <125000000>;
150 clock-output-names = "ext_gmac";
151 };
152};
153
154&cpu0 {
155 cpu0-supply = <&vdd_cpu>;
156};
157
158&gmac {
159 assigned-clocks = <&cru SCLK_MAC>;
160 assigned-clock-parents = <&ext_gmac>;
161 clock_in_out = "input";
162 pinctrl-names = "default";
163 pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>;
164 phy-supply = <&vcc_lan>;
165 phy-mode = "rgmii";
166 snps,reset-active-low;
167 snps,reset-delays-us = <0 10000 1000000>;
168 snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
169 tx_delay = <0x30>;
170 rx_delay = <0x10>;
171 status = "okay";
172};
173
174&gpu {
175 mali-supply = <&vdd_gpu>;
176 status = "okay";
177};
178
179&hdmi {
180 ddc-i2c-bus = <&i2c2>;
181 status = "okay";
182};
183
184&i2c0 {
185 clock-frequency = <400000>;
186 status = "okay";
187
188 rk808: pmic@1b {
189 compatible = "rockchip,rk808";
190 reg = <0x1b>;
191 interrupt-parent = <&gpio0>;
192 interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
193 #clock-cells = <1>;
194 clock-output-names = "xin32k", "rk808-clkout2";
195 pinctrl-names = "default";
196 pinctrl-0 = <&pmic_int &global_pwroff>;
197 rockchip,system-power-controller;
198 wakeup-source;
199
200 vcc1-supply = <&vcc_sys>;
201 vcc2-supply = <&vcc_sys>;
202 vcc3-supply = <&vcc_sys>;
203 vcc4-supply = <&vcc_sys>;
204 vcc6-supply = <&vcc_sys>;
205 vcc7-supply = <&vcc_sys>;
206 vcc8-supply = <&vcc_io>;
207 vcc9-supply = <&vcc_sys>;
208 vcc10-supply = <&vcc_sys>;
209 vcc11-supply = <&vcc_sys>;
210 vcc12-supply = <&vcc_io>;
211
212 regulators {
213 vdd_cpu: DCDC_REG1 {
214 regulator-name = "vdd_arm";
215 regulator-min-microvolt = <750000>;
216 regulator-max-microvolt = <1350000>;
217 regulator-always-on;
218 regulator-boot-on;
219 regulator-state-mem {
220 regulator-off-in-suspend;
221 };
222 };
223
224 vdd_gpu: DCDC_REG2 {
225 regulator-name = "vdd_gpu";
226 regulator-min-microvolt = <850000>;
227 regulator-max-microvolt = <1250000>;
228 regulator-always-on;
229 regulator-boot-on;
230 regulator-state-mem {
231 regulator-on-in-suspend;
232 regulator-suspend-microvolt = <1000000>;
233 };
234 };
235
236 vcc_ddr: DCDC_REG3 {
237 regulator-name = "vcc_ddr";
238 regulator-always-on;
239 regulator-boot-on;
240 regulator-state-mem {
241 regulator-on-in-suspend;
242 };
243 };
244
245 vcc_io: DCDC_REG4 {
246 regulator-name = "vcc_io";
247 regulator-min-microvolt = <3300000>;
248 regulator-max-microvolt = <3300000>;
249 regulator-always-on;
250 regulator-boot-on;
251 regulator-state-mem {
252 regulator-on-in-suspend;
253 regulator-suspend-microvolt = <3300000>;
254 };
255 };
256
257 vcca_tp: LDO_REG1 {
258 regulator-name = "vcc_tp";
259 regulator-min-microvolt = <3300000>;
260 regulator-max-microvolt = <3300000>;
261 regulator-always-on;
262 regulator-boot-on;
263 regulator-state-mem {
264 regulator-on-in-suspend;
265 regulator-suspend-microvolt = <3300000>;
266 };
267 };
268
269 vcc_codec: LDO_REG2 {
270 regulator-name = "vcc_codec";
271 regulator-min-microvolt = <3300000>;
272 regulator-max-microvolt = <3300000>;
273 regulator-always-on;
274 regulator-boot-on;
275 regulator-state-mem {
276 regulator-off-in-suspend;
277 };
278 };
279
280 vdd_10: LDO_REG3 {
281 regulator-name = "vdd_10";
282 regulator-min-microvolt = <1000000>;
283 regulator-max-microvolt = <1000000>;
284 regulator-always-on;
285 regulator-boot-on;
286 regulator-state-mem {
287 regulator-on-in-suspend;
288 regulator-suspend-microvolt = <1000000>;
289 };
290 };
291
292 vcc_gps: LDO_REG4 {
293 regulator-name = "vcc_gps";
294 regulator-min-microvolt = <1800000>;
295 regulator-max-microvolt = <1800000>;
296 regulator-always-on;
297 regulator-boot-on;
298 regulator-state-mem {
299 regulator-on-in-suspend;
300 regulator-suspend-microvolt = <1800000>;
301 };
302 };
303
304 vccio_sd: LDO_REG5 {
305 regulator-name = "vccio_sd";
306 regulator-min-microvolt = <1800000>;
307 regulator-max-microvolt = <3300000>;
308 regulator-always-on;
309 regulator-boot-on;
310 regulator-state-mem {
311 regulator-on-in-suspend;
312 regulator-suspend-microvolt = <3300000>;
313 };
314 };
315
316 vcc10_lcd: LDO_REG6 {
317 regulator-name = "vcc10_lcd";
318 regulator-min-microvolt = <1000000>;
319 regulator-max-microvolt = <1000000>;
320 regulator-always-on;
321 regulator-boot-on;
322 regulator-state-mem {
323 regulator-on-in-suspend;
324 regulator-suspend-microvolt = <1800000>;
325 };
326 };
327
328 vcc_18: LDO_REG7 {
329 regulator-name = "vcc_18";
330 regulator-min-microvolt = <1800000>;
331 regulator-max-microvolt = <1800000>;
332 regulator-always-on;
333 regulator-boot-on;
334 regulator-state-mem {
335 regulator-on-in-suspend;
336 regulator-suspend-microvolt = <1800000>;
337 };
338 };
339
340 vcc18_lcd: LDO_REG8 {
341 regulator-name = "vcc18_lcd";
342 regulator-min-microvolt = <1800000>;
343 regulator-max-microvolt = <1800000>;
344 regulator-always-on;
345 regulator-boot-on;
346 regulator-state-mem {
347 regulator-on-in-suspend;
348 regulator-suspend-microvolt = <1800000>;
349 };
350 };
351
352 vcc_sd: SWITCH_REG1 {
353 regulator-name = "vcc_sd";
354 regulator-min-microvolt = <3300000>;
355 regulator-max-microvolt = <3300000>;
356 regulator-always-on;
357 regulator-boot-on;
358 regulator-state-mem {
359 regulator-on-in-suspend;
360 };
361 };
362
363 vcc_lan: SWITCH_REG2 {
364 regulator-name = "vcc_lan";
365 regulator-min-microvolt = <3300000>;
366 regulator-max-microvolt = <3300000>;
367 regulator-always-on;
368 regulator-boot-on;
369 regulator-state-mem {
370 regulator-on-in-suspend;
371 };
372 };
373 };
374 };
375};
376
377&i2c2 {
378 status = "okay";
379};
380
381&io_domains {
382 status = "okay";
383
384 audio-supply = <&vcc_18>;
385 bb-supply = <&vcc_io>;
386 dvp-supply = <&vcc_io>;
387 flash0-suuply = <&vcc_18>;
388 flash1-supply = <&vcc_lan>;
389 gpio30-supply = <&vcc_io>;
390 gpio1830 = <&vcc_io>;
391 lcdc-supply = <&vcc_io>;
392 sdcard-supply = <&vccio_sd>;
393 wifi-supply = <&vcc_18>;
394};
395
396&sdmmc {
397 bus-width = <4>;
398 cap-mmc-highspeed;
399 cap-sd-highspeed;
400 card-detect-delay = <200>;
401 disable-wp;
402 pinctrl-names = "default";
403 pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
404 vmmc-supply = <&vcc_sd>;
405 vqmmc-supply = <&vccio_sd>;
406 status = "okay";
407};
408
409&tsadc {
410 rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
411 rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
412 status = "okay";
413};
414
415&uart2 {
416 status = "okay";
417};
418
419&usbphy {
420 status = "okay";
421};
422
423&usb_host0_ehci {
424 status = "okay";
425};
426
427&usb_host1 {
428 pinctrl-names = "default";
429 pinctrl-0 = <&phy_pwr_en>;
430 status = "okay";
431};
432
433&usb_otg {
434 status = "okay";
435};
436
437&vopb {
438 status = "okay";
439};
440
441&vopb_mmu {
442 status = "okay";
443};
444
445&vopl {
446 status = "okay";
447};
448
449&vopl_mmu {
450 status = "okay";
451};
452
453&wdt {
454 status = "okay";
455};
456
457&pinctrl {
458 pcfg_output_high: pcfg-output-high {
459 output-high;
460 };
461
462 gmac {
463 phy_int: phy-int {
464 rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
465 };
466
467 phy_pmeb: phy-pmeb {
468 rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
469 };
470
471 phy_rst: phy-rst {
472 rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>;
473 };
474 };
475
476 pmic {
477 pmic_int: pmic-int {
478 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
479 };
480 };
481
482 usb_host {
483 phy_pwr_en: phy-pwr-en {
484 rockchip,pins = <RK_GPIO2 RK_PB1 RK_FUNC_GPIO &pcfg_output_high>;
485 };
486
487 usb2_pwr_en: usb2-pwr-en {
488 rockchip,pins = <8 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
489 };
490 };
491
492 usb_otg {
493 otg_vbus_drv: otg-vbus-drv {
494 rockchip,pins = <RK_GPIO0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
495
496 };
497 };
498};
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index 356ed1e62452..cd24894ee5c6 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -972,6 +972,17 @@
972 status = "disabled"; 972 status = "disabled";
973 }; 973 };
974 974
975 rga: rga@ff920000 {
976 compatible = "rockchip,rk3288-rga";
977 reg = <0x0 0xff920000 0x0 0x180>;
978 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
979 clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru SCLK_RGA>;
980 clock-names = "aclk", "hclk", "sclk";
981 power-domains = <&power RK3288_PD_VIO>;
982 resets = <&cru SRST_RGA_CORE>, <&cru SRST_RGA_AXI>, <&cru SRST_RGA_AHB>;
983 reset-names = "core", "axi", "ahb";
984 };
985
975 vopb: vop@ff930000 { 986 vopb: vop@ff930000 {
976 compatible = "rockchip,rk3288-vop"; 987 compatible = "rockchip,rk3288-vop";
977 reg = <0x0 0xff930000 0x0 0x19c>; 988 reg = <0x0 0xff930000 0x0 0x19c>;
@@ -1002,6 +1013,11 @@
1002 reg = <2>; 1013 reg = <2>;
1003 remote-endpoint = <&mipi_in_vopb>; 1014 remote-endpoint = <&mipi_in_vopb>;
1004 }; 1015 };
1016
1017 vopb_out_lvds: endpoint@3 {
1018 reg = <3>;
1019 remote-endpoint = <&lvds_in_vopb>;
1020 };
1005 }; 1021 };
1006 }; 1022 };
1007 1023
@@ -1045,6 +1061,11 @@
1045 reg = <2>; 1061 reg = <2>;
1046 remote-endpoint = <&mipi_in_vopl>; 1062 remote-endpoint = <&mipi_in_vopl>;
1047 }; 1063 };
1064
1065 vopl_out_lvds: endpoint@3 {
1066 reg = <3>;
1067 remote-endpoint = <&lvds_in_vopl>;
1068 };
1048 }; 1069 };
1049 }; 1070 };
1050 1071
@@ -1086,6 +1107,39 @@
1086 }; 1107 };
1087 }; 1108 };
1088 1109
1110 lvds: lvds@ff96c000 {
1111 compatible = "rockchip,rk3288-lvds";
1112 reg = <0x0 0xff96c000 0x0 0x4000>;
1113 clocks = <&cru PCLK_LVDS_PHY>;
1114 clock-names = "pclk_lvds";
1115 pinctrl-names = "lcdc";
1116 pinctrl-0 = <&lcdc_ctl>;
1117 power-domains = <&power RK3288_PD_VIO>;
1118 rockchip,grf = <&grf>;
1119 status = "disabled";
1120
1121 ports {
1122 #address-cells = <1>;
1123 #size-cells = <0>;
1124
1125 lvds_in: port@0 {
1126 reg = <0>;
1127
1128 #address-cells = <1>;
1129 #size-cells = <0>;
1130
1131 lvds_in_vopb: endpoint@0 {
1132 reg = <0>;
1133 remote-endpoint = <&vopb_out_lvds>;
1134 };
1135 lvds_in_vopl: endpoint@1 {
1136 reg = <1>;
1137 remote-endpoint = <&vopl_out_lvds>;
1138 };
1139 };
1140 };
1141 };
1142
1089 edp: dp@ff970000 { 1143 edp: dp@ff970000 {
1090 compatible = "rockchip,rk3288-dp"; 1144 compatible = "rockchip,rk3288-dp";
1091 reg = <0x0 0xff970000 0x0 0x4000>; 1145 reg = <0x0 0xff970000 0x0 0x4000>;
@@ -1124,8 +1178,8 @@
1124 reg-io-width = <4>; 1178 reg-io-width = <4>;
1125 rockchip,grf = <&grf>; 1179 rockchip,grf = <&grf>;
1126 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 1180 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
1127 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>; 1181 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>, <&cru SCLK_HDMI_CEC>;
1128 clock-names = "iahb", "isfr"; 1182 clock-names = "iahb", "isfr", "cec";
1129 power-domains = <&power RK3288_PD_VIO>; 1183 power-domains = <&power RK3288_PD_VIO>;
1130 status = "disabled"; 1184 status = "disabled";
1131 1185
@@ -1427,6 +1481,14 @@
1427 }; 1481 };
1428 1482
1429 hdmi { 1483 hdmi {
1484 hdmi_cec_c0: hdmi-cec-c0 {
1485 rockchip,pins = <7 RK_PC0 RK_FUNC_2 &pcfg_pull_none>;
1486 };
1487
1488 hdmi_cec_c7: hdmi-cec-c7 {
1489 rockchip,pins = <7 RK_PC7 RK_FUNC_4 &pcfg_pull_none>;
1490 };
1491
1430 hdmi_ddc: hdmi-ddc { 1492 hdmi_ddc: hdmi-ddc {
1431 rockchip,pins = <7 19 RK_FUNC_2 &pcfg_pull_none>, 1493 rockchip,pins = <7 19 RK_FUNC_2 &pcfg_pull_none>,
1432 <7 20 RK_FUNC_2 &pcfg_pull_none>; 1494 <7 20 RK_FUNC_2 &pcfg_pull_none>;
@@ -1527,6 +1589,15 @@
1527 }; 1589 };
1528 }; 1590 };
1529 1591
1592 lcdc {
1593 lcdc_ctl: lcdc-ctl {
1594 rockchip,pins = <1 24 RK_FUNC_1 &pcfg_pull_none>,
1595 <1 25 RK_FUNC_1 &pcfg_pull_none>,
1596 <1 26 RK_FUNC_1 &pcfg_pull_none>,
1597 <1 27 RK_FUNC_1 &pcfg_pull_none>;
1598 };
1599 };
1600
1530 sdmmc { 1601 sdmmc {
1531 sdmmc_clk: sdmmc-clk { 1602 sdmmc_clk: sdmmc-clk {
1532 rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>; 1603 rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>;
diff --git a/arch/arm/boot/dts/rk3xxx.dtsi b/arch/arm/boot/dts/rk3xxx.dtsi
index 4aa6f60d6a22..49584b6a4195 100644
--- a/arch/arm/boot/dts/rk3xxx.dtsi
+++ b/arch/arm/boot/dts/rk3xxx.dtsi
@@ -117,6 +117,17 @@
117 clock-output-names = "xin24m"; 117 clock-output-names = "xin24m";
118 }; 118 };
119 119
120 gpu: gpu@10090000 {
121 compatible = "arm,mali-400";
122 reg = <0x10090000 0x10000>;
123 clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
124 clock-names = "core", "bus";
125 assigned-clocks = <&cru ACLK_GPU>;
126 assigned-clock-rates = <100000000>;
127 resets = <&cru SRST_GPU>;
128 status = "disabled";
129 };
130
120 L2: l2-cache-controller@10138000 { 131 L2: l2-cache-controller@10138000 {
121 compatible = "arm,pl310-cache"; 132 compatible = "arm,pl310-cache";
122 reg = <0x10138000 0x1000>; 133 reg = <0x10138000 0x1000>;
diff --git a/arch/arm/boot/dts/rv1108-evb.dts b/arch/arm/boot/dts/rv1108-evb.dts
index 86a57f823616..70f0106d1252 100644
--- a/arch/arm/boot/dts/rv1108-evb.dts
+++ b/arch/arm/boot/dts/rv1108-evb.dts
@@ -222,6 +222,10 @@
222 status = "okay"; 222 status = "okay";
223}; 223};
224 224
225&tsadc {
226 status = "okay";
227};
228
225&u2phy { 229&u2phy {
226 status = "okay"; 230 status = "okay";
227 231
diff --git a/arch/arm/boot/dts/rv1108.dtsi b/arch/arm/boot/dts/rv1108.dtsi
index e7cd1315db1b..76ea24636feb 100644
--- a/arch/arm/boot/dts/rv1108.dtsi
+++ b/arch/arm/boot/dts/rv1108.dtsi
@@ -43,6 +43,7 @@
43#include <dt-bindings/interrupt-controller/arm-gic.h> 43#include <dt-bindings/interrupt-controller/arm-gic.h>
44#include <dt-bindings/clock/rv1108-cru.h> 44#include <dt-bindings/clock/rv1108-cru.h>
45#include <dt-bindings/pinctrl/rockchip.h> 45#include <dt-bindings/pinctrl/rockchip.h>
46#include <dt-bindings/thermal/thermal.h>
46/ { 47/ {
47 #address-cells = <1>; 48 #address-cells = <1>;
48 #size-cells = <1>; 49 #size-cells = <1>;
@@ -70,6 +71,8 @@
70 compatible = "arm,cortex-a7"; 71 compatible = "arm,cortex-a7";
71 reg = <0xf00>; 72 reg = <0xf00>;
72 clocks = <&cru ARMCLK>; 73 clocks = <&cru ARMCLK>;
74 #cooling-cells = <2>; /* min followed by max */
75 dynamic-power-coefficient = <75>;
73 operating-points-v2 = <&cpu_opp_table>; 76 operating-points-v2 = <&cpu_opp_table>;
74 }; 77 };
75 }; 78 };
@@ -329,6 +332,60 @@
329 status = "disabled"; 332 status = "disabled";
330 }; 333 };
331 334
335 thermal-zones {
336 soc_thermal: soc-thermal {
337 polling-delay-passive = <20>;
338 polling-delay = <1000>;
339 sustainable-power = <50>;
340 thermal-sensors = <&tsadc 0>;
341
342 trips {
343 threshold: trip-point0 {
344 temperature = <70000>;
345 hysteresis = <2000>;
346 type = "passive";
347 };
348 target: trip-point1 {
349 temperature = <85000>;
350 hysteresis = <2000>;
351 type = "passive";
352 };
353 soc_crit: soc-crit {
354 temperature = <95000>;
355 hysteresis = <2000>;
356 type = "critical";
357 };
358 };
359
360 cooling-maps {
361 map0 {
362 trip = <&target>;
363 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
364 contribution = <4096>;
365 };
366 };
367 };
368 };
369
370 tsadc: tsadc@10370000 {
371 compatible = "rockchip,rv1108-tsadc";
372 reg = <0x10370000 0x100>;
373 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
374 assigned-clocks = <&cru SCLK_TSADC>;
375 assigned-clock-rates = <750000>;
376 clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
377 clock-names = "tsadc", "apb_pclk";
378 pinctrl-names = "init", "default", "sleep";
379 pinctrl-0 = <&otp_gpio>;
380 pinctrl-1 = <&otp_out>;
381 pinctrl-2 = <&otp_gpio>;
382 resets = <&cru SRST_TSADC>;
383 reset-names = "tsadc-apb";
384 rockchip,hw-tshut-temp = <120000>;
385 #thermal-sensor-cells = <1>;
386 status = "disabled";
387 };
388
332 adc: adc@1038c000 { 389 adc: adc@1038c000 {
333 compatible = "rockchip,rv1108-saradc", "rockchip,rk3399-saradc"; 390 compatible = "rockchip,rv1108-saradc", "rockchip,rk3399-saradc";
334 reg = <0x1038c000 0x100>; 391 reg = <0x1038c000 0x100>;
@@ -740,6 +797,16 @@
740 }; 797 };
741 }; 798 };
742 799
800 tsadc {
801 otp_out: otp-out {
802 rockchip,pins = <0 RK_PB7 RK_FUNC_1 &pcfg_pull_none>;
803 };
804
805 otp_gpio: otp-gpio {
806 rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
807 };
808 };
809
743 uart0 { 810 uart0 {
744 uart0_xfer: uart0-xfer { 811 uart0_xfer: uart0-xfer {
745 rockchip,pins = <3 RK_PA6 RK_FUNC_1 &pcfg_pull_up>, 812 rockchip,pins = <3 RK_PA6 RK_FUNC_1 &pcfg_pull_up>,
diff --git a/arch/arm/boot/dts/sama5d2.dtsi b/arch/arm/boot/dts/sama5d2.dtsi
index b1a26b42d190..b44e63995583 100644
--- a/arch/arm/boot/dts/sama5d2.dtsi
+++ b/arch/arm/boot/dts/sama5d2.dtsi
@@ -124,7 +124,7 @@
124 }; 124 };
125 }; 125 };
126 126
127 ns_sram: sram@00200000 { 127 ns_sram: sram@200000 {
128 compatible = "mmio-sram"; 128 compatible = "mmio-sram";
129 reg = <0x00200000 0x20000>; 129 reg = <0x00200000 0x20000>;
130 }; 130 };
@@ -135,13 +135,13 @@
135 #size-cells = <1>; 135 #size-cells = <1>;
136 ranges; 136 ranges;
137 137
138 nfc_sram: sram@00100000 { 138 nfc_sram: sram@100000 {
139 compatible = "mmio-sram"; 139 compatible = "mmio-sram";
140 no-memory-wc; 140 no-memory-wc;
141 reg = <0x00100000 0x2400>; 141 reg = <0x00100000 0x2400>;
142 }; 142 };
143 143
144 usb0: gadget@00300000 { 144 usb0: gadget@300000 {
145 #address-cells = <1>; 145 #address-cells = <1>;
146 #size-cells = <0>; 146 #size-cells = <0>;
147 compatible = "atmel,sama5d3-udc"; 147 compatible = "atmel,sama5d3-udc";
@@ -271,7 +271,7 @@
271 }; 271 };
272 }; 272 };
273 273
274 usb1: ohci@00400000 { 274 usb1: ohci@400000 {
275 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 275 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
276 reg = <0x00400000 0x100000>; 276 reg = <0x00400000 0x100000>;
277 interrupts = <41 IRQ_TYPE_LEVEL_HIGH 2>; 277 interrupts = <41 IRQ_TYPE_LEVEL_HIGH 2>;
@@ -280,7 +280,7 @@
280 status = "disabled"; 280 status = "disabled";
281 }; 281 };
282 282
283 usb2: ehci@00500000 { 283 usb2: ehci@500000 {
284 compatible = "atmel,at91sam9g45-ehci", "usb-ehci"; 284 compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
285 reg = <0x00500000 0x100000>; 285 reg = <0x00500000 0x100000>;
286 interrupts = <41 IRQ_TYPE_LEVEL_HIGH 2>; 286 interrupts = <41 IRQ_TYPE_LEVEL_HIGH 2>;
@@ -289,7 +289,7 @@
289 status = "disabled"; 289 status = "disabled";
290 }; 290 };
291 291
292 L2: cache-controller@00a00000 { 292 L2: cache-controller@a00000 {
293 compatible = "arm,pl310-cache"; 293 compatible = "arm,pl310-cache";
294 reg = <0x00a00000 0x1000>; 294 reg = <0x00a00000 0x1000>;
295 interrupts = <63 IRQ_TYPE_LEVEL_HIGH 4>; 295 interrupts = <63 IRQ_TYPE_LEVEL_HIGH 4>;
diff --git a/arch/arm/boot/dts/sama5d3.dtsi b/arch/arm/boot/dts/sama5d3.dtsi
index 554d0bdedc7a..1889b4dea066 100644
--- a/arch/arm/boot/dts/sama5d3.dtsi
+++ b/arch/arm/boot/dts/sama5d3.dtsi
@@ -79,7 +79,7 @@
79 }; 79 };
80 }; 80 };
81 81
82 sram: sram@00300000 { 82 sram: sram@300000 {
83 compatible = "mmio-sram"; 83 compatible = "mmio-sram";
84 reg = <0x00300000 0x20000>; 84 reg = <0x00300000 0x20000>;
85 }; 85 };
@@ -1408,7 +1408,7 @@
1408 reg = <0x200000 0x2400>; 1408 reg = <0x200000 0x2400>;
1409 }; 1409 };
1410 1410
1411 usb0: gadget@00500000 { 1411 usb0: gadget@500000 {
1412 #address-cells = <1>; 1412 #address-cells = <1>;
1413 #size-cells = <0>; 1413 #size-cells = <0>;
1414 compatible = "atmel,sama5d3-udc"; 1414 compatible = "atmel,sama5d3-udc";
@@ -1525,7 +1525,7 @@
1525 }; 1525 };
1526 }; 1526 };
1527 1527
1528 usb1: ohci@00600000 { 1528 usb1: ohci@600000 {
1529 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 1529 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
1530 reg = <0x00600000 0x100000>; 1530 reg = <0x00600000 0x100000>;
1531 interrupts = <32 IRQ_TYPE_LEVEL_HIGH 2>; 1531 interrupts = <32 IRQ_TYPE_LEVEL_HIGH 2>;
@@ -1534,7 +1534,7 @@
1534 status = "disabled"; 1534 status = "disabled";
1535 }; 1535 };
1536 1536
1537 usb2: ehci@00700000 { 1537 usb2: ehci@700000 {
1538 compatible = "atmel,at91sam9g45-ehci", "usb-ehci"; 1538 compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
1539 reg = <0x00700000 0x100000>; 1539 reg = <0x00700000 0x100000>;
1540 interrupts = <32 IRQ_TYPE_LEVEL_HIGH 2>; 1540 interrupts = <32 IRQ_TYPE_LEVEL_HIGH 2>;
diff --git a/arch/arm/boot/dts/sama5d3xmb.dtsi b/arch/arm/boot/dts/sama5d3xmb.dtsi
index 6d252ad050f6..7f55050dd405 100644
--- a/arch/arm/boot/dts/sama5d3xmb.dtsi
+++ b/arch/arm/boot/dts/sama5d3xmb.dtsi
@@ -166,14 +166,14 @@
166 }; 166 };
167 }; 167 };
168 168
169 usb0: gadget@00500000 { 169 usb0: gadget@500000 {
170 atmel,vbus-gpio = <&pioD 29 GPIO_ACTIVE_HIGH>; 170 atmel,vbus-gpio = <&pioD 29 GPIO_ACTIVE_HIGH>;
171 pinctrl-names = "default"; 171 pinctrl-names = "default";
172 pinctrl-0 = <&pinctrl_usba_vbus>; 172 pinctrl-0 = <&pinctrl_usba_vbus>;
173 status = "okay"; 173 status = "okay";
174 }; 174 };
175 175
176 usb1: ohci@00600000 { 176 usb1: ohci@600000 {
177 num-ports = <3>; 177 num-ports = <3>;
178 atmel,vbus-gpio = <&pioD 25 GPIO_ACTIVE_HIGH 178 atmel,vbus-gpio = <&pioD 25 GPIO_ACTIVE_HIGH
179 &pioD 26 GPIO_ACTIVE_LOW 179 &pioD 26 GPIO_ACTIVE_LOW
@@ -182,7 +182,7 @@
182 status = "okay"; 182 status = "okay";
183 }; 183 };
184 184
185 usb2: ehci@00700000 { 185 usb2: ehci@700000 {
186 status = "okay"; 186 status = "okay";
187 }; 187 };
188 }; 188 };
diff --git a/arch/arm/boot/dts/sama5d3xmb_cmp.dtsi b/arch/arm/boot/dts/sama5d3xmb_cmp.dtsi
index 252e0d35f846..83e3d3e08fd4 100644
--- a/arch/arm/boot/dts/sama5d3xmb_cmp.dtsi
+++ b/arch/arm/boot/dts/sama5d3xmb_cmp.dtsi
@@ -253,7 +253,7 @@
253 }; 253 };
254 }; 254 };
255 255
256 usb0: gadget@00500000 { 256 usb0: gadget@500000 {
257 atmel,vbus-gpio = <&pioD 29 GPIO_ACTIVE_HIGH>; 257 atmel,vbus-gpio = <&pioD 29 GPIO_ACTIVE_HIGH>;
258 pinctrl-names = "default"; 258 pinctrl-names = "default";
259 pinctrl-0 = <&pinctrl_usba_vbus>; 259 pinctrl-0 = <&pinctrl_usba_vbus>;
diff --git a/arch/arm/boot/dts/sama5d4.dtsi b/arch/arm/boot/dts/sama5d4.dtsi
index 2fa36c525957..b069644ed238 100644
--- a/arch/arm/boot/dts/sama5d4.dtsi
+++ b/arch/arm/boot/dts/sama5d4.dtsi
@@ -113,7 +113,7 @@
113 }; 113 };
114 }; 114 };
115 115
116 ns_sram: sram@00210000 { 116 ns_sram: sram@210000 {
117 compatible = "mmio-sram"; 117 compatible = "mmio-sram";
118 reg = <0x00210000 0x10000>; 118 reg = <0x00210000 0x10000>;
119 }; 119 };
@@ -130,7 +130,7 @@
130 reg = <0x100000 0x2400>; 130 reg = <0x100000 0x2400>;
131 }; 131 };
132 132
133 usb0: gadget@00400000 { 133 usb0: gadget@400000 {
134 #address-cells = <1>; 134 #address-cells = <1>;
135 #size-cells = <0>; 135 #size-cells = <0>;
136 compatible = "atmel,sama5d3-udc"; 136 compatible = "atmel,sama5d3-udc";
@@ -260,7 +260,7 @@
260 }; 260 };
261 }; 261 };
262 262
263 usb1: ohci@00500000 { 263 usb1: ohci@500000 {
264 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 264 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
265 reg = <0x00500000 0x100000>; 265 reg = <0x00500000 0x100000>;
266 interrupts = <46 IRQ_TYPE_LEVEL_HIGH 2>; 266 interrupts = <46 IRQ_TYPE_LEVEL_HIGH 2>;
@@ -269,7 +269,7 @@
269 status = "disabled"; 269 status = "disabled";
270 }; 270 };
271 271
272 usb2: ehci@00600000 { 272 usb2: ehci@600000 {
273 compatible = "atmel,at91sam9g45-ehci", "usb-ehci"; 273 compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
274 reg = <0x00600000 0x100000>; 274 reg = <0x00600000 0x100000>;
275 interrupts = <46 IRQ_TYPE_LEVEL_HIGH 2>; 275 interrupts = <46 IRQ_TYPE_LEVEL_HIGH 2>;
@@ -278,7 +278,7 @@
278 status = "disabled"; 278 status = "disabled";
279 }; 279 };
280 280
281 L2: cache-controller@00a00000 { 281 L2: cache-controller@a00000 {
282 compatible = "arm,pl310-cache"; 282 compatible = "arm,pl310-cache";
283 reg = <0x00a00000 0x1000>; 283 reg = <0x00a00000 0x1000>;
284 interrupts = <67 IRQ_TYPE_LEVEL_HIGH 4>; 284 interrupts = <67 IRQ_TYPE_LEVEL_HIGH 4>;
diff --git a/arch/arm/boot/dts/sh73a0.dtsi b/arch/arm/boot/dts/sh73a0.dtsi
index 4ea5c5a16c57..88d7e5631d34 100644
--- a/arch/arm/boot/dts/sh73a0.dtsi
+++ b/arch/arm/boot/dts/sh73a0.dtsi
@@ -27,6 +27,7 @@
27 compatible = "arm,cortex-a9"; 27 compatible = "arm,cortex-a9";
28 reg = <0>; 28 reg = <0>;
29 clock-frequency = <1196000000>; 29 clock-frequency = <1196000000>;
30 clocks = <&cpg_clocks SH73A0_CLK_Z>;
30 power-domains = <&pd_a2sl>; 31 power-domains = <&pd_a2sl>;
31 next-level-cache = <&L2>; 32 next-level-cache = <&L2>;
32 }; 33 };
@@ -35,6 +36,7 @@
35 compatible = "arm,cortex-a9"; 36 compatible = "arm,cortex-a9";
36 reg = <1>; 37 reg = <1>;
37 clock-frequency = <1196000000>; 38 clock-frequency = <1196000000>;
39 clocks = <&cpg_clocks SH73A0_CLK_Z>;
38 power-domains = <&pd_a2sl>; 40 power-domains = <&pd_a2sl>;
39 next-level-cache = <&L2>; 41 next-level-cache = <&L2>;
40 }; 42 };
diff --git a/arch/arm/boot/dts/ste-href-stuib.dtsi b/arch/arm/boot/dts/ste-href-stuib.dtsi
index 6f720756057d..35e944d8b5c4 100644
--- a/arch/arm/boot/dts/ste-href-stuib.dtsi
+++ b/arch/arm/boot/dts/ste-href-stuib.dtsi
@@ -92,7 +92,7 @@
92 interrupts = <18 IRQ_TYPE_EDGE_RISING>, 92 interrupts = <18 IRQ_TYPE_EDGE_RISING>,
93 <19 IRQ_TYPE_EDGE_RISING>; 93 <19 IRQ_TYPE_EDGE_RISING>;
94 }; 94 };
95 ak8974@0f { 95 ak8974@f {
96 /* Magnetometer */ 96 /* Magnetometer */
97 compatible = "asahi-kasei,ak8974"; 97 compatible = "asahi-kasei,ak8974";
98 reg = <0x0f>; 98 reg = <0x0f>;
diff --git a/arch/arm/boot/dts/ste-href-tvk1281618.dtsi b/arch/arm/boot/dts/ste-href-tvk1281618.dtsi
index 3c9f2f068c2f..0e7d77d719d7 100644
--- a/arch/arm/boot/dts/ste-href-tvk1281618.dtsi
+++ b/arch/arm/boot/dts/ste-href-tvk1281618.dtsi
@@ -143,7 +143,7 @@
143 interrupts = <18 IRQ_TYPE_EDGE_RISING>, 143 interrupts = <18 IRQ_TYPE_EDGE_RISING>,
144 <19 IRQ_TYPE_EDGE_RISING>; 144 <19 IRQ_TYPE_EDGE_RISING>;
145 }; 145 };
146 ak8974@0f { 146 ak8974@f {
147 /* Magnetometer */ 147 /* Magnetometer */
148 compatible = "asahi-kasei,ak8974"; 148 compatible = "asahi-kasei,ak8974";
149 reg = <0x0f>; 149 reg = <0x0f>;
diff --git a/arch/arm/boot/dts/stih407-clock.dtsi b/arch/arm/boot/dts/stih407-clock.dtsi
index 34c119a66f14..d0a24d9e517a 100644
--- a/arch/arm/boot/dts/stih407-clock.dtsi
+++ b/arch/arm/boot/dts/stih407-clock.dtsi
@@ -90,7 +90,7 @@
90 clock-output-names = "clk-s-icn-reg-0"; 90 clock-output-names = "clk-s-icn-reg-0";
91 }; 91 };
92 92
93 clockgen-a@090ff000 { 93 clockgen-a@90ff000 {
94 compatible = "st,clkgen-c32"; 94 compatible = "st,clkgen-c32";
95 reg = <0x90ff000 0x1000>; 95 reg = <0x90ff000 0x1000>;
96 96
@@ -131,7 +131,7 @@
131 clock-critical = <0>; /* clk-s-c0-fs0-ch0 */ 131 clock-critical = <0>; /* clk-s-c0-fs0-ch0 */
132 }; 132 };
133 133
134 clk_s_c0: clockgen-c@09103000 { 134 clk_s_c0: clockgen-c@9103000 {
135 compatible = "st,clkgen-c32"; 135 compatible = "st,clkgen-c32";
136 reg = <0x9103000 0x1000>; 136 reg = <0x9103000 0x1000>;
137 137
@@ -220,7 +220,7 @@
220 "clk-s-d0-fs0-ch3"; 220 "clk-s-d0-fs0-ch3";
221 }; 221 };
222 222
223 clockgen-d0@09104000 { 223 clockgen-d0@9104000 {
224 compatible = "st,clkgen-c32"; 224 compatible = "st,clkgen-c32";
225 reg = <0x9104000 0x1000>; 225 reg = <0x9104000 0x1000>;
226 226
diff --git a/arch/arm/boot/dts/stih407-family.dtsi b/arch/arm/boot/dts/stih407-family.dtsi
index 12c0757594d7..cf3756976c39 100644
--- a/arch/arm/boot/dts/stih407-family.dtsi
+++ b/arch/arm/boot/dts/stih407-family.dtsi
@@ -72,19 +72,19 @@
72 }; 72 };
73 }; 73 };
74 74
75 intc: interrupt-controller@08761000 { 75 intc: interrupt-controller@8761000 {
76 compatible = "arm,cortex-a9-gic"; 76 compatible = "arm,cortex-a9-gic";
77 #interrupt-cells = <3>; 77 #interrupt-cells = <3>;
78 interrupt-controller; 78 interrupt-controller;
79 reg = <0x08761000 0x1000>, <0x08760100 0x100>; 79 reg = <0x08761000 0x1000>, <0x08760100 0x100>;
80 }; 80 };
81 81
82 scu@08760000 { 82 scu@8760000 {
83 compatible = "arm,cortex-a9-scu"; 83 compatible = "arm,cortex-a9-scu";
84 reg = <0x08760000 0x1000>; 84 reg = <0x08760000 0x1000>;
85 }; 85 };
86 86
87 timer@08760200 { 87 timer@8760200 {
88 interrupt-parent = <&intc>; 88 interrupt-parent = <&intc>;
89 compatible = "arm,cortex-a9-global-timer"; 89 compatible = "arm,cortex-a9-global-timer";
90 reg = <0x08760200 0x100>; 90 reg = <0x08760200 0x100>;
@@ -555,7 +555,7 @@
555 status = "disabled"; 555 status = "disabled";
556 }; 556 };
557 557
558 mmc0: sdhci@09060000 { 558 mmc0: sdhci@9060000 {
559 compatible = "st,sdhci-stih407", "st,sdhci"; 559 compatible = "st,sdhci-stih407", "st,sdhci";
560 status = "disabled"; 560 status = "disabled";
561 reg = <0x09060000 0x7ff>, <0x9061008 0x20>; 561 reg = <0x09060000 0x7ff>, <0x9061008 0x20>;
@@ -570,7 +570,7 @@
570 bus-width = <8>; 570 bus-width = <8>;
571 }; 571 };
572 572
573 mmc1: sdhci@09080000 { 573 mmc1: sdhci@9080000 {
574 compatible = "st,sdhci-stih407", "st,sdhci"; 574 compatible = "st,sdhci-stih407", "st,sdhci";
575 status = "disabled"; 575 status = "disabled";
576 reg = <0x09080000 0x7ff>; 576 reg = <0x09080000 0x7ff>;
@@ -715,14 +715,14 @@
715 status = "disabled"; 715 status = "disabled";
716 }; 716 };
717 717
718 rng10: rng@08a89000 { 718 rng10: rng@8a89000 {
719 compatible = "st,rng"; 719 compatible = "st,rng";
720 reg = <0x08a89000 0x1000>; 720 reg = <0x08a89000 0x1000>;
721 clocks = <&clk_sysin>; 721 clocks = <&clk_sysin>;
722 status = "okay"; 722 status = "okay";
723 }; 723 };
724 724
725 rng11: rng@08a8a000 { 725 rng11: rng@8a8a000 {
726 compatible = "st,rng"; 726 compatible = "st,rng";
727 reg = <0x08a8a000 0x1000>; 727 reg = <0x08a8a000 0x1000>;
728 clocks = <&clk_sysin>; 728 clocks = <&clk_sysin>;
@@ -756,14 +756,14 @@
756 <&clk_s_c0_flexgen CLK_ETH_PHY>; 756 <&clk_s_c0_flexgen CLK_ETH_PHY>;
757 }; 757 };
758 758
759 rng10: rng@08a89000 { 759 rng10: rng@8a89000 {
760 compatible = "st,rng"; 760 compatible = "st,rng";
761 reg = <0x08a89000 0x1000>; 761 reg = <0x08a89000 0x1000>;
762 clocks = <&clk_sysin>; 762 clocks = <&clk_sysin>;
763 status = "okay"; 763 status = "okay";
764 }; 764 };
765 765
766 rng11: rng@08a8a000 { 766 rng11: rng@8a8a000 {
767 compatible = "st,rng"; 767 compatible = "st,rng";
768 reg = <0x08a8a000 0x1000>; 768 reg = <0x08a8a000 0x1000>;
769 clocks = <&clk_sysin>; 769 clocks = <&clk_sysin>;
diff --git a/arch/arm/boot/dts/stih407-pinctrl.dtsi b/arch/arm/boot/dts/stih407-pinctrl.dtsi
index bd1a82e8fffe..a29090077fdf 100644
--- a/arch/arm/boot/dts/stih407-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stih407-pinctrl.dtsi
@@ -56,7 +56,7 @@
56 interrupt-names = "irqmux"; 56 interrupt-names = "irqmux";
57 ranges = <0 0x09610000 0x6000>; 57 ranges = <0 0x09610000 0x6000>;
58 58
59 pio0: gpio@09610000 { 59 pio0: gpio@9610000 {
60 gpio-controller; 60 gpio-controller;
61 #gpio-cells = <2>; 61 #gpio-cells = <2>;
62 interrupt-controller; 62 interrupt-controller;
@@ -64,7 +64,7 @@
64 reg = <0x0 0x100>; 64 reg = <0x0 0x100>;
65 st,bank-name = "PIO0"; 65 st,bank-name = "PIO0";
66 }; 66 };
67 pio1: gpio@09611000 { 67 pio1: gpio@9611000 {
68 gpio-controller; 68 gpio-controller;
69 #gpio-cells = <2>; 69 #gpio-cells = <2>;
70 interrupt-controller; 70 interrupt-controller;
@@ -72,7 +72,7 @@
72 reg = <0x1000 0x100>; 72 reg = <0x1000 0x100>;
73 st,bank-name = "PIO1"; 73 st,bank-name = "PIO1";
74 }; 74 };
75 pio2: gpio@09612000 { 75 pio2: gpio@9612000 {
76 gpio-controller; 76 gpio-controller;
77 #gpio-cells = <2>; 77 #gpio-cells = <2>;
78 interrupt-controller; 78 interrupt-controller;
@@ -80,7 +80,7 @@
80 reg = <0x2000 0x100>; 80 reg = <0x2000 0x100>;
81 st,bank-name = "PIO2"; 81 st,bank-name = "PIO2";
82 }; 82 };
83 pio3: gpio@09613000 { 83 pio3: gpio@9613000 {
84 gpio-controller; 84 gpio-controller;
85 #gpio-cells = <2>; 85 #gpio-cells = <2>;
86 interrupt-controller; 86 interrupt-controller;
@@ -88,7 +88,7 @@
88 reg = <0x3000 0x100>; 88 reg = <0x3000 0x100>;
89 st,bank-name = "PIO3"; 89 st,bank-name = "PIO3";
90 }; 90 };
91 pio4: gpio@09614000 { 91 pio4: gpio@9614000 {
92 gpio-controller; 92 gpio-controller;
93 #gpio-cells = <2>; 93 #gpio-cells = <2>;
94 interrupt-controller; 94 interrupt-controller;
@@ -97,7 +97,7 @@
97 st,bank-name = "PIO4"; 97 st,bank-name = "PIO4";
98 }; 98 };
99 99
100 pio5: gpio@09615000 { 100 pio5: gpio@9615000 {
101 gpio-controller; 101 gpio-controller;
102 #gpio-cells = <2>; 102 #gpio-cells = <2>;
103 interrupt-controller; 103 interrupt-controller;
@@ -380,7 +380,7 @@
380 interrupt-names = "irqmux"; 380 interrupt-names = "irqmux";
381 ranges = <0 0x09200000 0x10000>; 381 ranges = <0 0x09200000 0x10000>;
382 382
383 pio10: pio@09200000 { 383 pio10: pio@9200000 {
384 gpio-controller; 384 gpio-controller;
385 #gpio-cells = <2>; 385 #gpio-cells = <2>;
386 interrupt-controller; 386 interrupt-controller;
@@ -388,7 +388,7 @@
388 reg = <0x0 0x100>; 388 reg = <0x0 0x100>;
389 st,bank-name = "PIO10"; 389 st,bank-name = "PIO10";
390 }; 390 };
391 pio11: pio@09201000 { 391 pio11: pio@9201000 {
392 gpio-controller; 392 gpio-controller;
393 #gpio-cells = <2>; 393 #gpio-cells = <2>;
394 interrupt-controller; 394 interrupt-controller;
@@ -396,7 +396,7 @@
396 reg = <0x1000 0x100>; 396 reg = <0x1000 0x100>;
397 st,bank-name = "PIO11"; 397 st,bank-name = "PIO11";
398 }; 398 };
399 pio12: pio@09202000 { 399 pio12: pio@9202000 {
400 gpio-controller; 400 gpio-controller;
401 #gpio-cells = <2>; 401 #gpio-cells = <2>;
402 interrupt-controller; 402 interrupt-controller;
@@ -404,7 +404,7 @@
404 reg = <0x2000 0x100>; 404 reg = <0x2000 0x100>;
405 st,bank-name = "PIO12"; 405 st,bank-name = "PIO12";
406 }; 406 };
407 pio13: pio@09203000 { 407 pio13: pio@9203000 {
408 gpio-controller; 408 gpio-controller;
409 #gpio-cells = <2>; 409 #gpio-cells = <2>;
410 interrupt-controller; 410 interrupt-controller;
@@ -412,7 +412,7 @@
412 reg = <0x3000 0x100>; 412 reg = <0x3000 0x100>;
413 st,bank-name = "PIO13"; 413 st,bank-name = "PIO13";
414 }; 414 };
415 pio14: pio@09204000 { 415 pio14: pio@9204000 {
416 gpio-controller; 416 gpio-controller;
417 #gpio-cells = <2>; 417 #gpio-cells = <2>;
418 interrupt-controller; 418 interrupt-controller;
@@ -420,7 +420,7 @@
420 reg = <0x4000 0x100>; 420 reg = <0x4000 0x100>;
421 st,bank-name = "PIO14"; 421 st,bank-name = "PIO14";
422 }; 422 };
423 pio15: pio@09205000 { 423 pio15: pio@9205000 {
424 gpio-controller; 424 gpio-controller;
425 #gpio-cells = <2>; 425 #gpio-cells = <2>;
426 interrupt-controller; 426 interrupt-controller;
@@ -428,7 +428,7 @@
428 reg = <0x5000 0x100>; 428 reg = <0x5000 0x100>;
429 st,bank-name = "PIO15"; 429 st,bank-name = "PIO15";
430 }; 430 };
431 pio16: pio@09206000 { 431 pio16: pio@9206000 {
432 gpio-controller; 432 gpio-controller;
433 #gpio-cells = <2>; 433 #gpio-cells = <2>;
434 interrupt-controller; 434 interrupt-controller;
@@ -436,7 +436,7 @@
436 reg = <0x6000 0x100>; 436 reg = <0x6000 0x100>;
437 st,bank-name = "PIO16"; 437 st,bank-name = "PIO16";
438 }; 438 };
439 pio17: pio@09207000 { 439 pio17: pio@9207000 {
440 gpio-controller; 440 gpio-controller;
441 #gpio-cells = <2>; 441 #gpio-cells = <2>;
442 interrupt-controller; 442 interrupt-controller;
@@ -444,7 +444,7 @@
444 reg = <0x7000 0x100>; 444 reg = <0x7000 0x100>;
445 st,bank-name = "PIO17"; 445 st,bank-name = "PIO17";
446 }; 446 };
447 pio18: pio@09208000 { 447 pio18: pio@9208000 {
448 gpio-controller; 448 gpio-controller;
449 #gpio-cells = <2>; 449 #gpio-cells = <2>;
450 interrupt-controller; 450 interrupt-controller;
@@ -452,7 +452,7 @@
452 reg = <0x8000 0x100>; 452 reg = <0x8000 0x100>;
453 st,bank-name = "PIO18"; 453 st,bank-name = "PIO18";
454 }; 454 };
455 pio19: pio@09209000 { 455 pio19: pio@9209000 {
456 gpio-controller; 456 gpio-controller;
457 #gpio-cells = <2>; 457 #gpio-cells = <2>;
458 interrupt-controller; 458 interrupt-controller;
@@ -940,7 +940,7 @@
940 interrupt-names = "irqmux"; 940 interrupt-names = "irqmux";
941 ranges = <0 0x09210000 0x10000>; 941 ranges = <0 0x09210000 0x10000>;
942 942
943 pio20: pio@09210000 { 943 pio20: pio@9210000 {
944 gpio-controller; 944 gpio-controller;
945 #gpio-cells = <2>; 945 #gpio-cells = <2>;
946 interrupt-controller; 946 interrupt-controller;
@@ -973,7 +973,7 @@
973 interrupt-names = "irqmux"; 973 interrupt-names = "irqmux";
974 ranges = <0 0x09220000 0x6000>; 974 ranges = <0 0x09220000 0x6000>;
975 975
976 pio30: gpio@09220000 { 976 pio30: gpio@9220000 {
977 gpio-controller; 977 gpio-controller;
978 #gpio-cells = <2>; 978 #gpio-cells = <2>;
979 interrupt-controller; 979 interrupt-controller;
@@ -981,7 +981,7 @@
981 reg = <0x0 0x100>; 981 reg = <0x0 0x100>;
982 st,bank-name = "PIO30"; 982 st,bank-name = "PIO30";
983 }; 983 };
984 pio31: gpio@09221000 { 984 pio31: gpio@9221000 {
985 gpio-controller; 985 gpio-controller;
986 #gpio-cells = <2>; 986 #gpio-cells = <2>;
987 interrupt-controller; 987 interrupt-controller;
@@ -989,7 +989,7 @@
989 reg = <0x1000 0x100>; 989 reg = <0x1000 0x100>;
990 st,bank-name = "PIO31"; 990 st,bank-name = "PIO31";
991 }; 991 };
992 pio32: gpio@09222000 { 992 pio32: gpio@9222000 {
993 gpio-controller; 993 gpio-controller;
994 #gpio-cells = <2>; 994 #gpio-cells = <2>;
995 interrupt-controller; 995 interrupt-controller;
@@ -997,7 +997,7 @@
997 reg = <0x2000 0x100>; 997 reg = <0x2000 0x100>;
998 st,bank-name = "PIO32"; 998 st,bank-name = "PIO32";
999 }; 999 };
1000 pio33: gpio@09223000 { 1000 pio33: gpio@9223000 {
1001 gpio-controller; 1001 gpio-controller;
1002 #gpio-cells = <2>; 1002 #gpio-cells = <2>;
1003 interrupt-controller; 1003 interrupt-controller;
@@ -1005,7 +1005,7 @@
1005 reg = <0x3000 0x100>; 1005 reg = <0x3000 0x100>;
1006 st,bank-name = "PIO33"; 1006 st,bank-name = "PIO33";
1007 }; 1007 };
1008 pio34: gpio@09224000 { 1008 pio34: gpio@9224000 {
1009 gpio-controller; 1009 gpio-controller;
1010 #gpio-cells = <2>; 1010 #gpio-cells = <2>;
1011 interrupt-controller; 1011 interrupt-controller;
@@ -1013,7 +1013,7 @@
1013 reg = <0x4000 0x100>; 1013 reg = <0x4000 0x100>;
1014 st,bank-name = "PIO34"; 1014 st,bank-name = "PIO34";
1015 }; 1015 };
1016 pio35: gpio@09225000 { 1016 pio35: gpio@9225000 {
1017 gpio-controller; 1017 gpio-controller;
1018 #gpio-cells = <2>; 1018 #gpio-cells = <2>;
1019 interrupt-controller; 1019 interrupt-controller;
@@ -1168,7 +1168,7 @@
1168 interrupt-names = "irqmux"; 1168 interrupt-names = "irqmux";
1169 ranges = <0 0x09230000 0x3000>; 1169 ranges = <0 0x09230000 0x3000>;
1170 1170
1171 pio40: gpio@09230000 { 1171 pio40: gpio@9230000 {
1172 gpio-controller; 1172 gpio-controller;
1173 #gpio-cells = <2>; 1173 #gpio-cells = <2>;
1174 interrupt-controller; 1174 interrupt-controller;
@@ -1176,7 +1176,7 @@
1176 reg = <0 0x100>; 1176 reg = <0 0x100>;
1177 st,bank-name = "PIO40"; 1177 st,bank-name = "PIO40";
1178 }; 1178 };
1179 pio41: gpio@09231000 { 1179 pio41: gpio@9231000 {
1180 gpio-controller; 1180 gpio-controller;
1181 #gpio-cells = <2>; 1181 #gpio-cells = <2>;
1182 interrupt-controller; 1182 interrupt-controller;
@@ -1184,7 +1184,7 @@
1184 reg = <0x1000 0x100>; 1184 reg = <0x1000 0x100>;
1185 st,bank-name = "PIO41"; 1185 st,bank-name = "PIO41";
1186 }; 1186 };
1187 pio42: gpio@09232000 { 1187 pio42: gpio@9232000 {
1188 gpio-controller; 1188 gpio-controller;
1189 #gpio-cells = <2>; 1189 #gpio-cells = <2>;
1190 interrupt-controller; 1190 interrupt-controller;
diff --git a/arch/arm/boot/dts/stih410-b2120.dts b/arch/arm/boot/dts/stih410-b2120.dts
index 83313b51915d..9830be577433 100644
--- a/arch/arm/boot/dts/stih410-b2120.dts
+++ b/arch/arm/boot/dts/stih410-b2120.dts
@@ -30,7 +30,7 @@
30 30
31 soc { 31 soc {
32 32
33 mmc0: sdhci@09060000 { 33 mmc0: sdhci@9060000 {
34 max-frequency = <200000000>; 34 max-frequency = <200000000>;
35 sd-uhs-sdr50; 35 sd-uhs-sdr50;
36 sd-uhs-sdr104; 36 sd-uhs-sdr104;
diff --git a/arch/arm/boot/dts/stih410-b2260.dts b/arch/arm/boot/dts/stih410-b2260.dts
index 93c14d183e29..c663b70c43a7 100644
--- a/arch/arm/boot/dts/stih410-b2260.dts
+++ b/arch/arm/boot/dts/stih410-b2260.dts
@@ -109,14 +109,14 @@
109 status = "okay"; 109 status = "okay";
110 }; 110 };
111 111
112 mmc0: sdhci@09060000 { 112 mmc0: sdhci@9060000 {
113 pinctrl-0 = <&pinctrl_sd0>; 113 pinctrl-0 = <&pinctrl_sd0>;
114 bus-width = <4>; 114 bus-width = <4>;
115 status = "okay"; 115 status = "okay";
116 }; 116 };
117 117
118 /* high speed expansion connector */ 118 /* high speed expansion connector */
119 mmc1: sdhci@09080000 { 119 mmc1: sdhci@9080000 {
120 status = "okay"; 120 status = "okay";
121 }; 121 };
122 122
diff --git a/arch/arm/boot/dts/stih410-clock.dtsi b/arch/arm/boot/dts/stih410-clock.dtsi
index 07c8ef9d77f6..fde5df17f575 100644
--- a/arch/arm/boot/dts/stih410-clock.dtsi
+++ b/arch/arm/boot/dts/stih410-clock.dtsi
@@ -92,7 +92,7 @@
92 clock-output-names = "clk-s-icn-reg-0"; 92 clock-output-names = "clk-s-icn-reg-0";
93 }; 93 };
94 94
95 clockgen-a@090ff000 { 95 clockgen-a@90ff000 {
96 compatible = "st,clkgen-c32"; 96 compatible = "st,clkgen-c32";
97 reg = <0x90ff000 0x1000>; 97 reg = <0x90ff000 0x1000>;
98 98
@@ -134,7 +134,7 @@
134 clock-critical = <0>; /* clk-s-c0-fs0-ch0 */ 134 clock-critical = <0>; /* clk-s-c0-fs0-ch0 */
135 }; 135 };
136 136
137 clk_s_c0: clockgen-c@09103000 { 137 clk_s_c0: clockgen-c@9103000 {
138 compatible = "st,clkgen-c32"; 138 compatible = "st,clkgen-c32";
139 reg = <0x9103000 0x1000>; 139 reg = <0x9103000 0x1000>;
140 140
@@ -230,7 +230,7 @@
230 "clk-s-d0-fs0-ch3"; 230 "clk-s-d0-fs0-ch3";
231 }; 231 };
232 232
233 clockgen-d0@09104000 { 233 clockgen-d0@9104000 {
234 compatible = "st,clkgen-c32"; 234 compatible = "st,clkgen-c32";
235 reg = <0x9104000 0x1000>; 235 reg = <0x9104000 0x1000>;
236 236
diff --git a/arch/arm/boot/dts/stih410.dtsi b/arch/arm/boot/dts/stih410.dtsi
index 21fe72b183d8..cffa50db5d72 100644
--- a/arch/arm/boot/dts/stih410.dtsi
+++ b/arch/arm/boot/dts/stih410.dtsi
@@ -282,7 +282,7 @@
282 <&clk_s_c0_flexgen CLK_FLASH_PROMIP>; 282 <&clk_s_c0_flexgen CLK_FLASH_PROMIP>;
283 }; 283 };
284 284
285 sti-cec@094a087c { 285 sti-cec@94a087c {
286 compatible = "st,stih-cec"; 286 compatible = "st,stih-cec";
287 reg = <0x94a087c 0x64>; 287 reg = <0x94a087c 0x64>;
288 clocks = <&clk_sysin>; 288 clocks = <&clk_sysin>;
diff --git a/arch/arm/boot/dts/stih418-b2199.dts b/arch/arm/boot/dts/stih418-b2199.dts
index 438e54c585b1..4e6d915c85ff 100644
--- a/arch/arm/boot/dts/stih418-b2199.dts
+++ b/arch/arm/boot/dts/stih418-b2199.dts
@@ -75,11 +75,11 @@
75 st,i2c-min-sda-pulse-width-us = <5>; 75 st,i2c-min-sda-pulse-width-us = <5>;
76 }; 76 };
77 77
78 mmc1: sdhci@09080000 { 78 mmc1: sdhci@9080000 {
79 status = "okay"; 79 status = "okay";
80 }; 80 };
81 81
82 mmc0: sdhci@09060000 { 82 mmc0: sdhci@9060000 {
83 status = "okay"; 83 status = "okay";
84 max-frequency = <200000000>; 84 max-frequency = <200000000>;
85 sd-uhs-sdr50; 85 sd-uhs-sdr50;
diff --git a/arch/arm/boot/dts/stih418-clock.dtsi b/arch/arm/boot/dts/stih418-clock.dtsi
index ee6614b79f7d..9a157c1a99b1 100644
--- a/arch/arm/boot/dts/stih418-clock.dtsi
+++ b/arch/arm/boot/dts/stih418-clock.dtsi
@@ -92,7 +92,7 @@
92 clock-output-names = "clk-s-icn-reg-0"; 92 clock-output-names = "clk-s-icn-reg-0";
93 }; 93 };
94 94
95 clockgen-a@090ff000 { 95 clockgen-a@90ff000 {
96 compatible = "st,clkgen-c32"; 96 compatible = "st,clkgen-c32";
97 reg = <0x90ff000 0x1000>; 97 reg = <0x90ff000 0x1000>;
98 98
@@ -131,7 +131,7 @@
131 "clk-s-c0-fs0-ch3"; 131 "clk-s-c0-fs0-ch3";
132 }; 132 };
133 133
134 clk_s_c0: clockgen-c@09103000 { 134 clk_s_c0: clockgen-c@9103000 {
135 compatible = "st,clkgen-c32"; 135 compatible = "st,clkgen-c32";
136 reg = <0x9103000 0x1000>; 136 reg = <0x9103000 0x1000>;
137 137
@@ -223,7 +223,7 @@
223 "clk-s-d0-fs0-ch3"; 223 "clk-s-d0-fs0-ch3";
224 }; 224 };
225 225
226 clockgen-d0@09104000 { 226 clockgen-d0@9104000 {
227 compatible = "st,clkgen-c32"; 227 compatible = "st,clkgen-c32";
228 reg = <0x9104000 0x1000>; 228 reg = <0x9104000 0x1000>;
229 229
diff --git a/arch/arm/boot/dts/stih418.dtsi b/arch/arm/boot/dts/stih418.dtsi
index 965f88160718..e6525ab4d9bb 100644
--- a/arch/arm/boot/dts/stih418.dtsi
+++ b/arch/arm/boot/dts/stih418.dtsi
@@ -100,7 +100,7 @@
100 phy-names = "usb"; 100 phy-names = "usb";
101 }; 101 };
102 102
103 mmc0: sdhci@09060000 { 103 mmc0: sdhci@9060000 {
104 assigned-clocks = <&clk_s_c0_flexgen CLK_MMC_0>; 104 assigned-clocks = <&clk_s_c0_flexgen CLK_MMC_0>;
105 assigned-clock-parents = <&clk_s_c0_pll1 0>; 105 assigned-clock-parents = <&clk_s_c0_pll1 0>;
106 assigned-clock-rates = <200000000>; 106 assigned-clock-rates = <200000000>;
diff --git a/arch/arm/boot/dts/stihxxx-b2120.dtsi b/arch/arm/boot/dts/stihxxx-b2120.dtsi
index 4b8f62f89664..7f80c2c414c8 100644
--- a/arch/arm/boot/dts/stihxxx-b2120.dtsi
+++ b/arch/arm/boot/dts/stihxxx-b2120.dtsi
@@ -62,12 +62,12 @@
62 status = "okay"; 62 status = "okay";
63 }; 63 };
64 64
65 mmc0: sdhci@09060000 { 65 mmc0: sdhci@9060000 {
66 non-removable; 66 non-removable;
67 status = "okay"; 67 status = "okay";
68 }; 68 };
69 69
70 mmc1: sdhci@09080000 { 70 mmc1: sdhci@9080000 {
71 status = "okay"; 71 status = "okay";
72 }; 72 };
73 73
@@ -102,7 +102,7 @@
102 fixed-link = <0 1 1000 0 0>; 102 fixed-link = <0 1 1000 0 0>;
103 }; 103 };
104 104
105 demux@08a20000 { 105 demux@8a20000 {
106 compatible = "st,stih407-c8sectpfe"; 106 compatible = "st,stih407-c8sectpfe";
107 status = "okay"; 107 status = "okay";
108 reg = <0x08a20000 0x10000>, 108 reg = <0x08a20000 0x10000>,
diff --git a/arch/arm/boot/dts/stm32746g-eval.dts b/arch/arm/boot/dts/stm32746g-eval.dts
index 69a957963fa8..2d4e71717694 100644
--- a/arch/arm/boot/dts/stm32746g-eval.dts
+++ b/arch/arm/boot/dts/stm32746g-eval.dts
@@ -83,6 +83,13 @@
83 gpios = <&gpioc 13 0>; 83 gpios = <&gpioc 13 0>;
84 }; 84 };
85 }; 85 };
86
87 usbotg_hs_phy: usb-phy {
88 #phy-cells = <0>;
89 compatible = "usb-nop-xceiv";
90 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(OTGHSULPI)>;
91 clock-names = "main_clk";
92 };
86}; 93};
87 94
88&clk_hse { 95&clk_hse {
@@ -93,6 +100,14 @@
93 status = "okay"; 100 status = "okay";
94}; 101};
95 102
103&i2c1 {
104 pinctrl-0 = <&i2c1_pins_b>;
105 pinctrl-names = "default";
106 i2c-scl-rising-time-ns = <185>;
107 i2c-scl-falling-time-ns = <20>;
108 status = "okay";
109};
110
96&rtc { 111&rtc {
97 status = "okay"; 112 status = "okay";
98}; 113};
@@ -102,3 +117,12 @@
102 pinctrl-names = "default"; 117 pinctrl-names = "default";
103 status = "okay"; 118 status = "okay";
104}; 119};
120
121&usbotg_hs {
122 dr_mode = "host";
123 phys = <&usbotg_hs_phy>;
124 phy-names = "usb2-phy";
125 pinctrl-0 = <&usbotg_hs_pins_a>;
126 pinctrl-names = "default";
127 status = "okay";
128};
diff --git a/arch/arm/boot/dts/stm32f4-pinctrl.dtsi b/arch/arm/boot/dts/stm32f4-pinctrl.dtsi
index 7f3560c0211d..ae94d86c53c4 100644
--- a/arch/arm/boot/dts/stm32f4-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stm32f4-pinctrl.dtsi
@@ -40,7 +40,7 @@
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
41 */ 41 */
42 42
43#include <dt-bindings/pinctrl/stm32f429-pinfunc.h> 43#include <dt-bindings/pinctrl/stm32-pinfunc.h>
44#include <dt-bindings/mfd/stm32f4-rcc.h> 44#include <dt-bindings/mfd/stm32f4-rcc.h>
45 45
46/ { 46/ {
@@ -165,35 +165,35 @@
165 165
166 usart1_pins_a: usart1@0 { 166 usart1_pins_a: usart1@0 {
167 pins1 { 167 pins1 {
168 pinmux = <STM32F429_PA9_FUNC_USART1_TX>; 168 pinmux = <STM32_PINMUX('A', 9, AF7)>; /* USART1_TX */
169 bias-disable; 169 bias-disable;
170 drive-push-pull; 170 drive-push-pull;
171 slew-rate = <0>; 171 slew-rate = <0>;
172 }; 172 };
173 pins2 { 173 pins2 {
174 pinmux = <STM32F429_PA10_FUNC_USART1_RX>; 174 pinmux = <STM32_PINMUX('A', 10, AF7)>; /* USART1_RX */
175 bias-disable; 175 bias-disable;
176 }; 176 };
177 }; 177 };
178 178
179 usart3_pins_a: usart3@0 { 179 usart3_pins_a: usart3@0 {
180 pins1 { 180 pins1 {
181 pinmux = <STM32F429_PB10_FUNC_USART3_TX>; 181 pinmux = <STM32_PINMUX('B', 10, AF7)>; /* USART3_TX */
182 bias-disable; 182 bias-disable;
183 drive-push-pull; 183 drive-push-pull;
184 slew-rate = <0>; 184 slew-rate = <0>;
185 }; 185 };
186 pins2 { 186 pins2 {
187 pinmux = <STM32F429_PB11_FUNC_USART3_RX>; 187 pinmux = <STM32_PINMUX('B', 11, AF7)>; /* USART3_RX */
188 bias-disable; 188 bias-disable;
189 }; 189 };
190 }; 190 };
191 191
192 usbotg_fs_pins_a: usbotg_fs@0 { 192 usbotg_fs_pins_a: usbotg_fs@0 {
193 pins { 193 pins {
194 pinmux = <STM32F429_PA10_FUNC_OTG_FS_ID>, 194 pinmux = <STM32_PINMUX('A', 10, AF10)>, /* OTG_FS_ID */
195 <STM32F429_PA11_FUNC_OTG_FS_DM>, 195 <STM32_PINMUX('A', 11, AF10)>, /* OTG_FS_DM */
196 <STM32F429_PA12_FUNC_OTG_FS_DP>; 196 <STM32_PINMUX('A', 12, AF10)>; /* OTG_FS_DP */
197 bias-disable; 197 bias-disable;
198 drive-push-pull; 198 drive-push-pull;
199 slew-rate = <2>; 199 slew-rate = <2>;
@@ -202,9 +202,9 @@
202 202
203 usbotg_fs_pins_b: usbotg_fs@1 { 203 usbotg_fs_pins_b: usbotg_fs@1 {
204 pins { 204 pins {
205 pinmux = <STM32F429_PB12_FUNC_OTG_HS_ID>, 205 pinmux = <STM32_PINMUX('B', 12, AF12)>, /* OTG_HS_ID */
206 <STM32F429_PB14_FUNC_OTG_HS_DM>, 206 <STM32_PINMUX('B', 14, AF12)>, /* OTG_HS_DM */
207 <STM32F429_PB15_FUNC_OTG_HS_DP>; 207 <STM32_PINMUX('B', 15, AF12)>; /* OTG_HS_DP */
208 bias-disable; 208 bias-disable;
209 drive-push-pull; 209 drive-push-pull;
210 slew-rate = <2>; 210 slew-rate = <2>;
@@ -213,18 +213,18 @@
213 213
214 usbotg_hs_pins_a: usbotg_hs@0 { 214 usbotg_hs_pins_a: usbotg_hs@0 {
215 pins { 215 pins {
216 pinmux = <STM32F429_PH4_FUNC_OTG_HS_ULPI_NXT>, 216 pinmux = <STM32_PINMUX('H', 4, AF10)>, /* OTG_HS_ULPI_NXT*/
217 <STM32F429_PI11_FUNC_OTG_HS_ULPI_DIR>, 217 <STM32_PINMUX('I', 11, AF10)>, /* OTG_HS_ULPI_DIR */
218 <STM32F429_PC0_FUNC_OTG_HS_ULPI_STP>, 218 <STM32_PINMUX('C', 0, AF10)>, /* OTG_HS_ULPI_STP */
219 <STM32F429_PA5_FUNC_OTG_HS_ULPI_CK>, 219 <STM32_PINMUX('A', 5, AF10)>, /* OTG_HS_ULPI_CK */
220 <STM32F429_PA3_FUNC_OTG_HS_ULPI_D0>, 220 <STM32_PINMUX('A', 3, AF10)>, /* OTG_HS_ULPI_D0 */
221 <STM32F429_PB0_FUNC_OTG_HS_ULPI_D1>, 221 <STM32_PINMUX('B', 0, AF10)>, /* OTG_HS_ULPI_D1 */
222 <STM32F429_PB1_FUNC_OTG_HS_ULPI_D2>, 222 <STM32_PINMUX('B', 1, AF10)>, /* OTG_HS_ULPI_D2 */
223 <STM32F429_PB10_FUNC_OTG_HS_ULPI_D3>, 223 <STM32_PINMUX('B', 10, AF10)>, /* OTG_HS_ULPI_D3 */
224 <STM32F429_PB11_FUNC_OTG_HS_ULPI_D4>, 224 <STM32_PINMUX('B', 11, AF10)>, /* OTG_HS_ULPI_D4 */
225 <STM32F429_PB12_FUNC_OTG_HS_ULPI_D5>, 225 <STM32_PINMUX('B', 12, AF10)>, /* OTG_HS_ULPI_D5 */
226 <STM32F429_PB13_FUNC_OTG_HS_ULPI_D6>, 226 <STM32_PINMUX('B', 13, AF10)>, /* OTG_HS_ULPI_D6 */
227 <STM32F429_PB5_FUNC_OTG_HS_ULPI_D7>; 227 <STM32_PINMUX('B', 5, AF10)>; /* OTG_HS_ULPI_D7 */
228 bias-disable; 228 bias-disable;
229 drive-push-pull; 229 drive-push-pull;
230 slew-rate = <2>; 230 slew-rate = <2>;
@@ -233,49 +233,49 @@
233 233
234 ethernet_mii: mii@0 { 234 ethernet_mii: mii@0 {
235 pins { 235 pins {
236 pinmux = <STM32F429_PG13_FUNC_ETH_MII_TXD0_ETH_RMII_TXD0>, 236 pinmux = <STM32_PINMUX('G', 13, AF11)>, /* ETH_MII_TXD0_ETH_RMII_TXD0 */
237 <STM32F429_PG14_FUNC_ETH_MII_TXD1_ETH_RMII_TXD1>, 237 <STM32_PINMUX('G', 14, AF11)>, /* ETH_MII_TXD1_ETH_RMII_TXD1 */
238 <STM32F429_PC2_FUNC_ETH_MII_TXD2>, 238 <STM32_PINMUX('C', 2, AF11)>, /* ETH_MII_TXD2 */
239 <STM32F429_PB8_FUNC_ETH_MII_TXD3>, 239 <STM32_PINMUX('B', 8, AF11)>, /* ETH_MII_TXD3 */
240 <STM32F429_PC3_FUNC_ETH_MII_TX_CLK>, 240 <STM32_PINMUX('C', 3, AF11)>, /* ETH_MII_TX_CLK */
241 <STM32F429_PG11_FUNC_ETH_MII_TX_EN_ETH_RMII_TX_EN>, 241 <STM32_PINMUX('G', 11,AF11)>, /* ETH_MII_TX_EN_ETH_RMII_TX_EN */
242 <STM32F429_PA2_FUNC_ETH_MDIO>, 242 <STM32_PINMUX('A', 2, AF11)>, /* ETH_MDIO */
243 <STM32F429_PC1_FUNC_ETH_MDC>, 243 <STM32_PINMUX('C', 1, AF11)>, /* ETH_MDC */
244 <STM32F429_PA1_FUNC_ETH_MII_RX_CLK_ETH_RMII_REF_CLK>, 244 <STM32_PINMUX('A', 1, AF11)>, /* ETH_MII_RX_CLK_ETH_RMII_REF_CLK */
245 <STM32F429_PA7_FUNC_ETH_MII_RX_DV_ETH_RMII_CRS_DV>, 245 <STM32_PINMUX('A', 7, AF11)>, /* ETH_MII_RX_DV_ETH_RMII_CRS_DV */
246 <STM32F429_PC4_FUNC_ETH_MII_RXD0_ETH_RMII_RXD0>, 246 <STM32_PINMUX('C', 4, AF11)>, /* ETH_MII_RXD0_ETH_RMII_RXD0 */
247 <STM32F429_PC5_FUNC_ETH_MII_RXD1_ETH_RMII_RXD1>, 247 <STM32_PINMUX('C', 5, AF11)>, /* ETH_MII_RXD1_ETH_RMII_RXD1 */
248 <STM32F429_PH6_FUNC_ETH_MII_RXD2>, 248 <STM32_PINMUX('H', 6, AF11)>, /* ETH_MII_RXD2 */
249 <STM32F429_PH7_FUNC_ETH_MII_RXD3>; 249 <STM32_PINMUX('H', 7, AF11)>; /* ETH_MII_RXD3 */
250 slew-rate = <2>; 250 slew-rate = <2>;
251 }; 251 };
252 }; 252 };
253 253
254 adc3_in8_pin: adc@200 { 254 adc3_in8_pin: adc@200 {
255 pins { 255 pins {
256 pinmux = <STM32F429_PF10_FUNC_ANALOG>; 256 pinmux = <STM32_PINMUX('F', 10, ANALOG)>;
257 }; 257 };
258 }; 258 };
259 259
260 pwm1_pins: pwm@1 { 260 pwm1_pins: pwm@1 {
261 pins { 261 pins {
262 pinmux = <STM32F429_PA8_FUNC_TIM1_CH1>, 262 pinmux = <STM32_PINMUX('A', 8, AF1)>, /* TIM1_CH1 */
263 <STM32F429_PB13_FUNC_TIM1_CH1N>, 263 <STM32_PINMUX('B', 13, AF1)>, /* TIM1_CH1N */
264 <STM32F429_PB12_FUNC_TIM1_BKIN>; 264 <STM32_PINMUX('B', 12, AF1)>; /* TIM1_BKIN */
265 }; 265 };
266 }; 266 };
267 267
268 pwm3_pins: pwm@3 { 268 pwm3_pins: pwm@3 {
269 pins { 269 pins {
270 pinmux = <STM32F429_PB4_FUNC_TIM3_CH1>, 270 pinmux = <STM32_PINMUX('B', 4, AF2)>, /* TIM3_CH1 */
271 <STM32F429_PB5_FUNC_TIM3_CH2>; 271 <STM32_PINMUX('B', 5, AF2)>; /* TIM3_CH2 */
272 }; 272 };
273 }; 273 };
274 274
275 i2c1_pins: i2c1@0 { 275 i2c1_pins: i2c1@0 {
276 pins { 276 pins {
277 pinmux = <STM32F429_PB9_FUNC_I2C1_SDA>, 277 pinmux = <STM32_PINMUX('B', 9, AF4)>, /* I2C1_SDA */
278 <STM32F429_PB6_FUNC_I2C1_SCL>; 278 <STM32_PINMUX('B', 6, AF4)>; /* I2C1_SCL */
279 bias-disable; 279 bias-disable;
280 drive-open-drain; 280 drive-open-drain;
281 slew-rate = <3>; 281 slew-rate = <3>;
@@ -284,55 +284,55 @@
284 284
285 ltdc_pins: ltdc@0 { 285 ltdc_pins: ltdc@0 {
286 pins { 286 pins {
287 pinmux = <STM32F429_PI12_FUNC_LCD_HSYNC>, 287 pinmux = <STM32_PINMUX('I', 12, AF14)>, /* LCD_HSYNC */
288 <STM32F429_PI13_FUNC_LCD_VSYNC>, 288 <STM32_PINMUX('I', 13, AF14)>, /* LCD_VSYNC */
289 <STM32F429_PI14_FUNC_LCD_CLK>, 289 <STM32_PINMUX('I', 14, AF14)>, /* LCD_CLK */
290 <STM32F429_PI15_FUNC_LCD_R0>, 290 <STM32_PINMUX('I', 15, AF14)>, /* LCD_R0 */
291 <STM32F429_PJ0_FUNC_LCD_R1>, 291 <STM32_PINMUX('J', 0, AF14)>, /* LCD_R1 */
292 <STM32F429_PJ1_FUNC_LCD_R2>, 292 <STM32_PINMUX('J', 1, AF14)>, /* LCD_R2 */
293 <STM32F429_PJ2_FUNC_LCD_R3>, 293 <STM32_PINMUX('J', 2, AF14)>, /* LCD_R3 */
294 <STM32F429_PJ3_FUNC_LCD_R4>, 294 <STM32_PINMUX('J', 3, AF14)>, /* LCD_R4 */
295 <STM32F429_PJ4_FUNC_LCD_R5>, 295 <STM32_PINMUX('J', 4, AF14)>, /* LCD_R5 */
296 <STM32F429_PJ5_FUNC_LCD_R6>, 296 <STM32_PINMUX('J', 5, AF14)>, /* LCD_R6*/
297 <STM32F429_PJ6_FUNC_LCD_R7>, 297 <STM32_PINMUX('J', 6, AF14)>, /* LCD_R7 */
298 <STM32F429_PJ7_FUNC_LCD_G0>, 298 <STM32_PINMUX('J', 7, AF14)>, /* LCD_G0 */
299 <STM32F429_PJ8_FUNC_LCD_G1>, 299 <STM32_PINMUX('J', 8, AF14)>, /* LCD_G1 */
300 <STM32F429_PJ9_FUNC_LCD_G2>, 300 <STM32_PINMUX('J', 9, AF14)>, /* LCD_G2 */
301 <STM32F429_PJ10_FUNC_LCD_G3>, 301 <STM32_PINMUX('J', 10, AF14)>, /* LCD_G3 */
302 <STM32F429_PJ11_FUNC_LCD_G4>, 302 <STM32_PINMUX('J', 11, AF14)>, /* LCD_G4 */
303 <STM32F429_PJ12_FUNC_LCD_B0>, 303 <STM32_PINMUX('J', 12, AF14)>, /* LCD_B0 */
304 <STM32F429_PJ13_FUNC_LCD_B1>, 304 <STM32_PINMUX('J', 13, AF14)>, /* LCD_B1 */
305 <STM32F429_PJ14_FUNC_LCD_B2>, 305 <STM32_PINMUX('J', 14, AF14)>, /* LCD_B2 */
306 <STM32F429_PJ15_FUNC_LCD_B3>, 306 <STM32_PINMUX('J', 15, AF14)>, /* LCD_B3*/
307 <STM32F429_PK0_FUNC_LCD_G5>, 307 <STM32_PINMUX('K', 0, AF14)>, /* LCD_G5 */
308 <STM32F429_PK1_FUNC_LCD_G6>, 308 <STM32_PINMUX('K', 1, AF14)>, /* LCD_G6 */
309 <STM32F429_PK2_FUNC_LCD_G7>, 309 <STM32_PINMUX('K', 2, AF14)>, /* LCD_G7 */
310 <STM32F429_PK3_FUNC_LCD_B4>, 310 <STM32_PINMUX('K', 3, AF14)>, /* LCD_B4 */
311 <STM32F429_PK4_FUNC_LCD_B5>, 311 <STM32_PINMUX('K', 4, AF14)>, /* LCD_B5 */
312 <STM32F429_PK5_FUNC_LCD_B6>, 312 <STM32_PINMUX('K', 5, AF14)>, /* LCD_B6 */
313 <STM32F429_PK6_FUNC_LCD_B7>, 313 <STM32_PINMUX('K', 6, AF14)>, /* LCD_B7 */
314 <STM32F429_PK7_FUNC_LCD_DE>; 314 <STM32_PINMUX('K', 7, AF14)>; /* LCD_DE */
315 slew-rate = <2>; 315 slew-rate = <2>;
316 }; 316 };
317 }; 317 };
318 318
319 dcmi_pins: dcmi@0 { 319 dcmi_pins: dcmi@0 {
320 pins { 320 pins {
321 pinmux = <STM32F429_PA4_FUNC_DCMI_HSYNC>, 321 pinmux = <STM32_PINMUX('A', 4, AF13)>, /* DCMI_HSYNC */
322 <STM32F429_PB7_FUNC_DCMI_VSYNC>, 322 <STM32_PINMUX('B', 7, AF13)>, /* DCMI_VSYNC */
323 <STM32F429_PA6_FUNC_DCMI_PIXCLK>, 323 <STM32_PINMUX('A', 6, AF13)>, /* DCMI_PIXCLK */
324 <STM32F429_PC6_FUNC_DCMI_D0>, 324 <STM32_PINMUX('C', 6, AF13)>, /* DCMI_D0 */
325 <STM32F429_PC7_FUNC_DCMI_D1>, 325 <STM32_PINMUX('C', 7, AF13)>, /* DCMI_D1 */
326 <STM32F429_PC8_FUNC_DCMI_D2>, 326 <STM32_PINMUX('C', 8, AF13)>, /* DCMI_D2 */
327 <STM32F429_PC9_FUNC_DCMI_D3>, 327 <STM32_PINMUX('C', 9, AF13)>, /* DCMI_D3 */
328 <STM32F429_PC11_FUNC_DCMI_D4>, 328 <STM32_PINMUX('C', 11, AF13)>, /*DCMI_D4 */
329 <STM32F429_PD3_FUNC_DCMI_D5>, 329 <STM32_PINMUX('D', 3, AF13)>, /* DCMI_D5 */
330 <STM32F429_PB8_FUNC_DCMI_D6>, 330 <STM32_PINMUX('B', 8, AF13)>, /* DCMI_D6 */
331 <STM32F429_PE6_FUNC_DCMI_D7>, 331 <STM32_PINMUX('E', 6, AF13)>, /* DCMI_D7 */
332 <STM32F429_PC10_FUNC_DCMI_D8>, 332 <STM32_PINMUX('C', 10, AF13)>, /* DCMI_D8 */
333 <STM32F429_PC12_FUNC_DCMI_D9>, 333 <STM32_PINMUX('C', 12, AF13)>, /* DCMI_D9 */
334 <STM32F429_PD6_FUNC_DCMI_D10>, 334 <STM32_PINMUX('D', 6, AF13)>, /* DCMI_D10 */
335 <STM32F429_PD2_FUNC_DCMI_D11>; 335 <STM32_PINMUX('D', 2, AF13)>; /* DCMI_D11 */
336 bias-disable; 336 bias-disable;
337 drive-push-pull; 337 drive-push-pull;
338 slew-rate = <3>; 338 slew-rate = <3>;
diff --git a/arch/arm/boot/dts/stm32f746-disco.dts b/arch/arm/boot/dts/stm32f746-disco.dts
index 18f656074437..4d85dba59e1d 100644
--- a/arch/arm/boot/dts/stm32f746-disco.dts
+++ b/arch/arm/boot/dts/stm32f746-disco.dts
@@ -61,6 +61,20 @@
61 serial0 = &usart1; 61 serial0 = &usart1;
62 }; 62 };
63 63
64 usbotg_hs_phy: usb-phy {
65 #phy-cells = <0>;
66 compatible = "usb-nop-xceiv";
67 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(OTGHSULPI)>;
68 clock-names = "main_clk";
69 };
70
71 /* This turns on vbus for otg fs for host mode (dwc2) */
72 vcc5v_otg_fs: vcc5v-otg-fs-regulator {
73 compatible = "regulator-fixed";
74 gpio = <&gpiod 5 0>;
75 regulator-name = "vcc5_host1";
76 regulator-always-on;
77 };
64}; 78};
65 79
66&clk_hse { 80&clk_hse {
@@ -72,3 +86,19 @@
72 pinctrl-names = "default"; 86 pinctrl-names = "default";
73 status = "okay"; 87 status = "okay";
74}; 88};
89
90&usbotg_fs {
91 dr_mode = "host";
92 pinctrl-0 = <&usbotg_fs_pins_a>;
93 pinctrl-names = "default";
94 status = "okay";
95};
96
97&usbotg_hs {
98 dr_mode = "host";
99 phys = <&usbotg_hs_phy>;
100 phy-names = "usb2-phy";
101 pinctrl-0 = <&usbotg_hs_pins_b>;
102 pinctrl-names = "default";
103 status = "okay";
104};
diff --git a/arch/arm/boot/dts/stm32f746.dtsi b/arch/arm/boot/dts/stm32f746.dtsi
index 5f9417894059..5f66d151eedb 100644
--- a/arch/arm/boot/dts/stm32f746.dtsi
+++ b/arch/arm/boot/dts/stm32f746.dtsi
@@ -42,7 +42,7 @@
42 42
43#include "skeleton.dtsi" 43#include "skeleton.dtsi"
44#include "armv7-m.dtsi" 44#include "armv7-m.dtsi"
45#include <dt-bindings/pinctrl/stm32f746-pinfunc.h> 45#include <dt-bindings/pinctrl/stm32-pinfunc.h>
46#include <dt-bindings/clock/stm32fx-clock.h> 46#include <dt-bindings/clock/stm32fx-clock.h>
47#include <dt-bindings/mfd/stm32f7-rcc.h> 47#include <dt-bindings/mfd/stm32f7-rcc.h>
48 48
@@ -82,6 +82,27 @@
82 status = "disabled"; 82 status = "disabled";
83 }; 83 };
84 84
85 timers2: timers@40000000 {
86 #address-cells = <1>;
87 #size-cells = <0>;
88 compatible = "st,stm32-timers";
89 reg = <0x40000000 0x400>;
90 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM2)>;
91 clock-names = "int";
92 status = "disabled";
93
94 pwm {
95 compatible = "st,stm32-pwm";
96 status = "disabled";
97 };
98
99 timer@1 {
100 compatible = "st,stm32-timer-trigger";
101 reg = <1>;
102 status = "disabled";
103 };
104 };
105
85 timer3: timer@40000400 { 106 timer3: timer@40000400 {
86 compatible = "st,stm32-timer"; 107 compatible = "st,stm32-timer";
87 reg = <0x40000400 0x400>; 108 reg = <0x40000400 0x400>;
@@ -90,6 +111,27 @@
90 status = "disabled"; 111 status = "disabled";
91 }; 112 };
92 113
114 timers3: timers@40000400 {
115 #address-cells = <1>;
116 #size-cells = <0>;
117 compatible = "st,stm32-timers";
118 reg = <0x40000400 0x400>;
119 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM3)>;
120 clock-names = "int";
121 status = "disabled";
122
123 pwm {
124 compatible = "st,stm32-pwm";
125 status = "disabled";
126 };
127
128 timer@2 {
129 compatible = "st,stm32-timer-trigger";
130 reg = <2>;
131 status = "disabled";
132 };
133 };
134
93 timer4: timer@40000800 { 135 timer4: timer@40000800 {
94 compatible = "st,stm32-timer"; 136 compatible = "st,stm32-timer";
95 reg = <0x40000800 0x400>; 137 reg = <0x40000800 0x400>;
@@ -98,6 +140,27 @@
98 status = "disabled"; 140 status = "disabled";
99 }; 141 };
100 142
143 timers4: timers@40000800 {
144 #address-cells = <1>;
145 #size-cells = <0>;
146 compatible = "st,stm32-timers";
147 reg = <0x40000800 0x400>;
148 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM4)>;
149 clock-names = "int";
150 status = "disabled";
151
152 pwm {
153 compatible = "st,stm32-pwm";
154 status = "disabled";
155 };
156
157 timer@3 {
158 compatible = "st,stm32-timer-trigger";
159 reg = <3>;
160 status = "disabled";
161 };
162 };
163
101 timer5: timer@40000c00 { 164 timer5: timer@40000c00 {
102 compatible = "st,stm32-timer"; 165 compatible = "st,stm32-timer";
103 reg = <0x40000c00 0x400>; 166 reg = <0x40000c00 0x400>;
@@ -105,6 +168,27 @@
105 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM5)>; 168 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM5)>;
106 }; 169 };
107 170
171 timers5: timers@40000c00 {
172 #address-cells = <1>;
173 #size-cells = <0>;
174 compatible = "st,stm32-timers";
175 reg = <0x40000C00 0x400>;
176 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM5)>;
177 clock-names = "int";
178 status = "disabled";
179
180 pwm {
181 compatible = "st,stm32-pwm";
182 status = "disabled";
183 };
184
185 timer@4 {
186 compatible = "st,stm32-timer-trigger";
187 reg = <4>;
188 status = "disabled";
189 };
190 };
191
108 timer6: timer@40001000 { 192 timer6: timer@40001000 {
109 compatible = "st,stm32-timer"; 193 compatible = "st,stm32-timer";
110 reg = <0x40001000 0x400>; 194 reg = <0x40001000 0x400>;
@@ -113,6 +197,22 @@
113 status = "disabled"; 197 status = "disabled";
114 }; 198 };
115 199
200 timers6: timers@40001000 {
201 #address-cells = <1>;
202 #size-cells = <0>;
203 compatible = "st,stm32-timers";
204 reg = <0x40001000 0x400>;
205 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM6)>;
206 clock-names = "int";
207 status = "disabled";
208
209 timer@5 {
210 compatible = "st,stm32-timer-trigger";
211 reg = <5>;
212 status = "disabled";
213 };
214 };
215
116 timer7: timer@40001400 { 216 timer7: timer@40001400 {
117 compatible = "st,stm32-timer"; 217 compatible = "st,stm32-timer";
118 reg = <0x40001400 0x400>; 218 reg = <0x40001400 0x400>;
@@ -121,6 +221,73 @@
121 status = "disabled"; 221 status = "disabled";
122 }; 222 };
123 223
224 timers7: timers@40001400 {
225 #address-cells = <1>;
226 #size-cells = <0>;
227 compatible = "st,stm32-timers";
228 reg = <0x40001400 0x400>;
229 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM7)>;
230 clock-names = "int";
231 status = "disabled";
232
233 timer@6 {
234 compatible = "st,stm32-timer-trigger";
235 reg = <6>;
236 status = "disabled";
237 };
238 };
239
240 timers12: timers@40001800 {
241 #address-cells = <1>;
242 #size-cells = <0>;
243 compatible = "st,stm32-timers";
244 reg = <0x40001800 0x400>;
245 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM12)>;
246 clock-names = "int";
247 status = "disabled";
248
249 pwm {
250 compatible = "st,stm32-pwm";
251 status = "disabled";
252 };
253
254 timer@11 {
255 compatible = "st,stm32-timer-trigger";
256 reg = <11>;
257 status = "disabled";
258 };
259 };
260
261 timers13: timers@40001c00 {
262 #address-cells = <1>;
263 #size-cells = <0>;
264 compatible = "st,stm32-timers";
265 reg = <0x40001C00 0x400>;
266 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM13)>;
267 clock-names = "int";
268 status = "disabled";
269
270 pwm {
271 compatible = "st,stm32-pwm";
272 status = "disabled";
273 };
274 };
275
276 timers14: timers@40002000 {
277 #address-cells = <1>;
278 #size-cells = <0>;
279 compatible = "st,stm32-timers";
280 reg = <0x40002000 0x400>;
281 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM14)>;
282 clock-names = "int";
283 status = "disabled";
284
285 pwm {
286 compatible = "st,stm32-pwm";
287 status = "disabled";
288 };
289 };
290
124 rtc: rtc@40002800 { 291 rtc: rtc@40002800 {
125 compatible = "st,stm32-rtc"; 292 compatible = "st,stm32-rtc";
126 reg = <0x40002800 0x400>; 293 reg = <0x40002800 0x400>;
@@ -167,6 +334,18 @@
167 status = "disabled"; 334 status = "disabled";
168 }; 335 };
169 336
337 i2c1: i2c@40005400 {
338 compatible = "st,stm32f7-i2c";
339 reg = <0x40005400 0x400>;
340 interrupts = <31>,
341 <32>;
342 resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
343 clocks = <&rcc 1 CLK_I2C1>;
344 #address-cells = <1>;
345 #size-cells = <0>;
346 status = "disabled";
347 };
348
170 cec: cec@40006c00 { 349 cec: cec@40006c00 {
171 compatible = "st,stm32-cec"; 350 compatible = "st,stm32-cec";
172 reg = <0x40006C00 0x400>; 351 reg = <0x40006C00 0x400>;
@@ -192,6 +371,48 @@
192 status = "disabled"; 371 status = "disabled";
193 }; 372 };
194 373
374 timers1: timers@40010000 {
375 #address-cells = <1>;
376 #size-cells = <0>;
377 compatible = "st,stm32-timers";
378 reg = <0x40010000 0x400>;
379 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM1)>;
380 clock-names = "int";
381 status = "disabled";
382
383 pwm {
384 compatible = "st,stm32-pwm";
385 status = "disabled";
386 };
387
388 timer@0 {
389 compatible = "st,stm32-timer-trigger";
390 reg = <0>;
391 status = "disabled";
392 };
393 };
394
395 timers8: timers@40010400 {
396 #address-cells = <1>;
397 #size-cells = <0>;
398 compatible = "st,stm32-timers";
399 reg = <0x40010400 0x400>;
400 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM8)>;
401 clock-names = "int";
402 status = "disabled";
403
404 pwm {
405 compatible = "st,stm32-pwm";
406 status = "disabled";
407 };
408
409 timer@7 {
410 compatible = "st,stm32-timer-trigger";
411 reg = <7>;
412 status = "disabled";
413 };
414 };
415
195 usart1: serial@40011000 { 416 usart1: serial@40011000 {
196 compatible = "st,stm32f7-uart"; 417 compatible = "st,stm32f7-uart";
197 reg = <0x40011000 0x400>; 418 reg = <0x40011000 0x400>;
@@ -221,6 +442,57 @@
221 interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>; 442 interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
222 }; 443 };
223 444
445 timers9: timers@40014000 {
446 #address-cells = <1>;
447 #size-cells = <0>;
448 compatible = "st,stm32-timers";
449 reg = <0x40014000 0x400>;
450 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM9)>;
451 clock-names = "int";
452 status = "disabled";
453
454 pwm {
455 compatible = "st,stm32-pwm";
456 status = "disabled";
457 };
458
459 timer@8 {
460 compatible = "st,stm32-timer-trigger";
461 reg = <8>;
462 status = "disabled";
463 };
464 };
465
466 timers10: timers@40014400 {
467 #address-cells = <1>;
468 #size-cells = <0>;
469 compatible = "st,stm32-timers";
470 reg = <0x40014400 0x400>;
471 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM10)>;
472 clock-names = "int";
473 status = "disabled";
474
475 pwm {
476 compatible = "st,stm32-pwm";
477 status = "disabled";
478 };
479 };
480
481 timers11: timers@40014800 {
482 #address-cells = <1>;
483 #size-cells = <0>;
484 compatible = "st,stm32-timers";
485 reg = <0x40014800 0x400>;
486 clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM11)>;
487 clock-names = "int";
488 status = "disabled";
489
490 pwm {
491 compatible = "st,stm32-pwm";
492 status = "disabled";
493 };
494 };
495
224 pwrcfg: power-config@40007000 { 496 pwrcfg: power-config@40007000 {
225 compatible = "syscon"; 497 compatible = "syscon";
226 reg = <0x40007000 0x400>; 498 reg = <0x40007000 0x400>;
@@ -347,7 +619,7 @@
347 619
348 cec_pins_a: cec@0 { 620 cec_pins_a: cec@0 {
349 pins { 621 pins {
350 pinmux = <STM32F746_PA15_FUNC_HDMI_CEC>; 622 pinmux = <STM32_PINMUX('A', 15, AF4)>; /* HDMI CEC */
351 slew-rate = <0>; 623 slew-rate = <0>;
352 drive-open-drain; 624 drive-open-drain;
353 bias-disable; 625 bias-disable;
@@ -356,27 +628,88 @@
356 628
357 usart1_pins_a: usart1@0 { 629 usart1_pins_a: usart1@0 {
358 pins1 { 630 pins1 {
359 pinmux = <STM32F746_PA9_FUNC_USART1_TX>; 631 pinmux = <STM32_PINMUX('A', 9, AF7)>; /* USART1_TX */
360 bias-disable; 632 bias-disable;
361 drive-push-pull; 633 drive-push-pull;
362 slew-rate = <0>; 634 slew-rate = <0>;
363 }; 635 };
364 pins2 { 636 pins2 {
365 pinmux = <STM32F746_PA10_FUNC_USART1_RX>; 637 pinmux = <STM32_PINMUX('A', 10, AF7)>; /* USART1_RX */
366 bias-disable; 638 bias-disable;
367 }; 639 };
368 }; 640 };
369 641
370 usart1_pins_b: usart1@1 { 642 usart1_pins_b: usart1@1 {
371 pins1 { 643 pins1 {
372 pinmux = <STM32F746_PA9_FUNC_USART1_TX>; 644 pinmux = <STM32_PINMUX('A', 9, AF7)>; /* USART1_TX */
373 bias-disable; 645 bias-disable;
374 drive-push-pull; 646 drive-push-pull;
375 slew-rate = <0>; 647 slew-rate = <0>;
376 }; 648 };
377 pins2 { 649 pins2 {
378 pinmux = <STM32F746_PB7_FUNC_USART1_RX>; 650 pinmux = <STM32_PINMUX('B', 7, AF7)>; /* USART1_RX */
651 bias-disable;
652 };
653 };
654
655 i2c1_pins_b: i2c1@0 {
656 pins {
657 pinmux = <STM32_PINMUX('B', 9, AF4)>, /* I2C1 SDA */
658 <STM32_PINMUX('B', 8, AF4)>; /* I2C1 SCL */
659 bias-disable;
660 drive-open-drain;
661 slew-rate = <0>;
662 };
663 };
664
665 usbotg_hs_pins_a: usbotg-hs@0 {
666 pins {
667 pinmux = <STM32_PINMUX('H', 4, AF10)>, /* OTG_HS_ULPI_NXT */
668 <STM32_PINMUX('I', 11, AF10)>, /* OTG_HS_ULPI_DIR */
669 <STM32_PINMUX('C', 0, AF10)>, /* OTG_HS_ULPI_STP */
670 <STM32_PINMUX('A', 5, AF10)>, /* OTG_HS_ULPI_CK */
671 <STM32_PINMUX('A', 3, AF10)>, /* OTG_HS_ULPI_D0 */
672 <STM32_PINMUX('B', 0, AF10)>, /* OTG_HS_ULPI_D1 */
673 <STM32_PINMUX('B', 1, AF10)>, /* OTG_HS_ULPI_D2 */
674 <STM32_PINMUX('B', 10, AF10)>, /* OTG_HS_ULPI_D3 */
675 <STM32_PINMUX('B', 11, AF10)>, /* OTG_HS_ULPI_D4 */
676 <STM32_PINMUX('B', 12, AF10)>, /* OTG_HS_ULPI_D5 */
677 <STM32_PINMUX('B', 13, AF10)>, /* OTG_HS_ULPI_D6 */
678 <STM32_PINMUX('B', 5, AF10)>; /* OTG_HS_ULPI_D7 */
679 bias-disable;
680 drive-push-pull;
681 slew-rate = <2>;
682 };
683 };
684
685 usbotg_hs_pins_b: usbotg-hs@1 {
686 pins {
687 pinmux = <STM32_PINMUX('H', 4, AF10)>, /* OTG_HS_ULPI_NXT */
688 <STM32_PINMUX('C', 2, AF10)>, /* OTG_HS_ULPI_DIR */
689 <STM32_PINMUX('C', 0, AF10)>, /* OTG_HS_ULPI_STP */
690 <STM32_PINMUX('A', 5, AF10)>, /* OTG_HS_ULPI_CK */
691 <STM32_PINMUX('A', 3, AF10)>, /* OTG_HS_ULPI_D0 */
692 <STM32_PINMUX('B', 0, AF10)>, /* OTG_HS_ULPI_D1 */
693 <STM32_PINMUX('B', 1, AF10)>, /* OTG_HS_ULPI_D2 */
694 <STM32_PINMUX('B', 10, AF10)>, /* OTG_HS_ULPI_D3 */
695 <STM32_PINMUX('B', 11, AF10)>, /* OTG_HS_ULPI_D4 */
696 <STM32_PINMUX('B', 12, AF10)>, /* OTG_HS_ULPI_D5 */
697 <STM32_PINMUX('B', 13, AF10)>, /* OTG_HS_ULPI_D6 */
698 <STM32_PINMUX('B', 5, AF10)>; /* OTG_HS_ULPI_D7 */
699 bias-disable;
700 drive-push-pull;
701 slew-rate = <2>;
702 };
703 };
704
705 usbotg_fs_pins_a: usbotg-fs@0 {
706 pins {
707 pinmux = <STM32_PINMUX('A', 10, AF10)>, /* OTG_FS_ID */
708 <STM32_PINMUX('A', 11, AF10)>, /* OTG_FS_DM */
709 <STM32_PINMUX('A', 12, AF10)>; /* OTG_FS_DP */
379 bias-disable; 710 bias-disable;
711 drive-push-pull;
712 slew-rate = <2>;
380 }; 713 };
381 }; 714 };
382 }; 715 };
@@ -431,6 +764,24 @@
431 st,mem2mem; 764 st,mem2mem;
432 status = "disabled"; 765 status = "disabled";
433 }; 766 };
767
768 usbotg_hs: usb@40040000 {
769 compatible = "st,stm32f7-hsotg";
770 reg = <0x40040000 0x40000>;
771 interrupts = <77>;
772 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(OTGHS)>;
773 clock-names = "otg";
774 status = "disabled";
775 };
776
777 usbotg_fs: usb@50000000 {
778 compatible = "st,stm32f4x9-fsotg";
779 reg = <0x50000000 0x40000>;
780 interrupts = <67>;
781 clocks = <&rcc 0 STM32F7_AHB2_CLOCK(OTGFS)>;
782 clock-names = "otg";
783 status = "disabled";
784 };
434 }; 785 };
435}; 786};
436 787
diff --git a/arch/arm/boot/dts/stm32h743-pinctrl.dtsi b/arch/arm/boot/dts/stm32h743-pinctrl.dtsi
index 76bbd6575fae..65c1cd043987 100644
--- a/arch/arm/boot/dts/stm32h743-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stm32h743-pinctrl.dtsi
@@ -40,7 +40,7 @@
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
41 */ 41 */
42 42
43#include <dt-bindings/pinctrl/stm32h7-pinfunc.h> 43#include <dt-bindings/pinctrl/stm32-pinfunc.h>
44 44
45/ { 45/ {
46 soc { 46 soc {
@@ -55,7 +55,7 @@
55 gpio-controller; 55 gpio-controller;
56 #gpio-cells = <2>; 56 #gpio-cells = <2>;
57 reg = <0x0 0x400>; 57 reg = <0x0 0x400>;
58 clocks = <&timer_clk>; 58 clocks = <&rcc GPIOA_CK>;
59 st,bank-name = "GPIOA"; 59 st,bank-name = "GPIOA";
60 }; 60 };
61 61
@@ -63,7 +63,7 @@
63 gpio-controller; 63 gpio-controller;
64 #gpio-cells = <2>; 64 #gpio-cells = <2>;
65 reg = <0x400 0x400>; 65 reg = <0x400 0x400>;
66 clocks = <&timer_clk>; 66 clocks = <&rcc GPIOB_CK>;
67 st,bank-name = "GPIOB"; 67 st,bank-name = "GPIOB";
68 }; 68 };
69 69
@@ -71,7 +71,7 @@
71 gpio-controller; 71 gpio-controller;
72 #gpio-cells = <2>; 72 #gpio-cells = <2>;
73 reg = <0x800 0x400>; 73 reg = <0x800 0x400>;
74 clocks = <&timer_clk>; 74 clocks = <&rcc GPIOC_CK>;
75 st,bank-name = "GPIOC"; 75 st,bank-name = "GPIOC";
76 }; 76 };
77 77
@@ -79,7 +79,7 @@
79 gpio-controller; 79 gpio-controller;
80 #gpio-cells = <2>; 80 #gpio-cells = <2>;
81 reg = <0xc00 0x400>; 81 reg = <0xc00 0x400>;
82 clocks = <&timer_clk>; 82 clocks = <&rcc GPIOD_CK>;
83 st,bank-name = "GPIOD"; 83 st,bank-name = "GPIOD";
84 }; 84 };
85 85
@@ -87,7 +87,7 @@
87 gpio-controller; 87 gpio-controller;
88 #gpio-cells = <2>; 88 #gpio-cells = <2>;
89 reg = <0x1000 0x400>; 89 reg = <0x1000 0x400>;
90 clocks = <&timer_clk>; 90 clocks = <&rcc GPIOE_CK>;
91 st,bank-name = "GPIOE"; 91 st,bank-name = "GPIOE";
92 }; 92 };
93 93
@@ -95,7 +95,7 @@
95 gpio-controller; 95 gpio-controller;
96 #gpio-cells = <2>; 96 #gpio-cells = <2>;
97 reg = <0x1400 0x400>; 97 reg = <0x1400 0x400>;
98 clocks = <&timer_clk>; 98 clocks = <&rcc GPIOF_CK>;
99 st,bank-name = "GPIOF"; 99 st,bank-name = "GPIOF";
100 }; 100 };
101 101
@@ -103,7 +103,7 @@
103 gpio-controller; 103 gpio-controller;
104 #gpio-cells = <2>; 104 #gpio-cells = <2>;
105 reg = <0x1800 0x400>; 105 reg = <0x1800 0x400>;
106 clocks = <&timer_clk>; 106 clocks = <&rcc GPIOG_CK>;
107 st,bank-name = "GPIOG"; 107 st,bank-name = "GPIOG";
108 }; 108 };
109 109
@@ -111,7 +111,7 @@
111 gpio-controller; 111 gpio-controller;
112 #gpio-cells = <2>; 112 #gpio-cells = <2>;
113 reg = <0x1c00 0x400>; 113 reg = <0x1c00 0x400>;
114 clocks = <&timer_clk>; 114 clocks = <&rcc GPIOH_CK>;
115 st,bank-name = "GPIOH"; 115 st,bank-name = "GPIOH";
116 }; 116 };
117 117
@@ -119,7 +119,7 @@
119 gpio-controller; 119 gpio-controller;
120 #gpio-cells = <2>; 120 #gpio-cells = <2>;
121 reg = <0x2000 0x400>; 121 reg = <0x2000 0x400>;
122 clocks = <&timer_clk>; 122 clocks = <&rcc GPIOI_CK>;
123 st,bank-name = "GPIOI"; 123 st,bank-name = "GPIOI";
124 }; 124 };
125 125
@@ -127,7 +127,7 @@
127 gpio-controller; 127 gpio-controller;
128 #gpio-cells = <2>; 128 #gpio-cells = <2>;
129 reg = <0x2400 0x400>; 129 reg = <0x2400 0x400>;
130 clocks = <&timer_clk>; 130 clocks = <&rcc GPIOJ_CK>;
131 st,bank-name = "GPIOJ"; 131 st,bank-name = "GPIOJ";
132 }; 132 };
133 133
@@ -135,32 +135,32 @@
135 gpio-controller; 135 gpio-controller;
136 #gpio-cells = <2>; 136 #gpio-cells = <2>;
137 reg = <0x2800 0x400>; 137 reg = <0x2800 0x400>;
138 clocks = <&timer_clk>; 138 clocks = <&rcc GPIOK_CK>;
139 st,bank-name = "GPIOK"; 139 st,bank-name = "GPIOK";
140 }; 140 };
141 141
142 usart1_pins: usart1@0 { 142 usart1_pins: usart1@0 {
143 pins1 { 143 pins1 {
144 pinmux = <STM32H7_PB14_FUNC_USART1_TX>; 144 pinmux = <STM32_PINMUX('B', 14, AF4)>; /* USART1_TX */
145 bias-disable; 145 bias-disable;
146 drive-push-pull; 146 drive-push-pull;
147 slew-rate = <0>; 147 slew-rate = <0>;
148 }; 148 };
149 pins2 { 149 pins2 {
150 pinmux = <STM32H7_PB15_FUNC_USART1_RX>; 150 pinmux = <STM32_PINMUX('B', 15, AF4)>; /* USART1_RX */
151 bias-disable; 151 bias-disable;
152 }; 152 };
153 }; 153 };
154 154
155 usart2_pins: usart2@0 { 155 usart2_pins: usart2@0 {
156 pins1 { 156 pins1 {
157 pinmux = <STM32H7_PD5_FUNC_USART2_TX>; 157 pinmux = <STM32_PINMUX('D', 5, AF7)>; /* USART2_TX */
158 bias-disable; 158 bias-disable;
159 drive-push-pull; 159 drive-push-pull;
160 slew-rate = <0>; 160 slew-rate = <0>;
161 }; 161 };
162 pins2 { 162 pins2 {
163 pinmux = <STM32H7_PD6_FUNC_USART2_RX>; 163 pinmux = <STM32_PINMUX('D', 6, AF7)>; /* USART2_RX */
164 bias-disable; 164 bias-disable;
165 }; 165 };
166 }; 166 };
diff --git a/arch/arm/boot/dts/stm32h743.dtsi b/arch/arm/boot/dts/stm32h743.dtsi
index 26de31578701..bbfcbaca0b36 100644
--- a/arch/arm/boot/dts/stm32h743.dtsi
+++ b/arch/arm/boot/dts/stm32h743.dtsi
@@ -42,6 +42,8 @@
42 42
43#include "skeleton.dtsi" 43#include "skeleton.dtsi"
44#include "armv7-m.dtsi" 44#include "armv7-m.dtsi"
45#include <dt-bindings/clock/stm32h7-clks.h>
46#include <dt-bindings/mfd/stm32h7-rcc.h>
45 47
46/ { 48/ {
47 clocks { 49 clocks {
@@ -51,10 +53,16 @@
51 clock-frequency = <0>; 53 clock-frequency = <0>;
52 }; 54 };
53 55
54 timer_clk: timer-clk { 56 clk_lse: clk-lse {
55 #clock-cells = <0>; 57 #clock-cells = <0>;
56 compatible = "fixed-clock"; 58 compatible = "fixed-clock";
57 clock-frequency = <125000000>; 59 clock-frequency = <32768>;
60 };
61
62 clk_i2s: i2s_ckin {
63 #clock-cells = <0>;
64 compatible = "fixed-clock";
65 clock-frequency = <0>;
58 }; 66 };
59 }; 67 };
60 68
@@ -63,7 +71,33 @@
63 compatible = "st,stm32-timer"; 71 compatible = "st,stm32-timer";
64 reg = <0x40000c00 0x400>; 72 reg = <0x40000c00 0x400>;
65 interrupts = <50>; 73 interrupts = <50>;
66 clocks = <&timer_clk>; 74 clocks = <&rcc TIM5_CK>;
75 };
76
77 lptimer1: timer@40002400 {
78 #address-cells = <1>;
79 #size-cells = <0>;
80 compatible = "st,stm32-lptimer";
81 reg = <0x40002400 0x400>;
82 clocks = <&rcc LPTIM1_CK>;
83 clock-names = "mux";
84 status = "disabled";
85
86 pwm {
87 compatible = "st,stm32-pwm-lp";
88 status = "disabled";
89 };
90
91 trigger@0 {
92 compatible = "st,stm32-lptimer-trigger";
93 reg = <0>;
94 status = "disabled";
95 };
96
97 counter {
98 compatible = "st,stm32-lptimer-counter";
99 status = "disabled";
100 };
67 }; 101 };
68 102
69 usart2: serial@40004400 { 103 usart2: serial@40004400 {
@@ -71,13 +105,13 @@
71 reg = <0x40004400 0x400>; 105 reg = <0x40004400 0x400>;
72 interrupts = <38>; 106 interrupts = <38>;
73 status = "disabled"; 107 status = "disabled";
74 clocks = <&timer_clk>; 108 clocks = <&rcc USART2_CK>;
75 }; 109 };
76 110
77 dac: dac@40007400 { 111 dac: dac@40007400 {
78 compatible = "st,stm32h7-dac-core"; 112 compatible = "st,stm32h7-dac-core";
79 reg = <0x40007400 0x400>; 113 reg = <0x40007400 0x400>;
80 clocks = <&timer_clk>; 114 clocks = <&rcc DAC12_CK>;
81 clock-names = "pclk"; 115 clock-names = "pclk";
82 #address-cells = <1>; 116 #address-cells = <1>;
83 #size-cells = <0>; 117 #size-cells = <0>;
@@ -103,8 +137,7 @@
103 reg = <0x40011000 0x400>; 137 reg = <0x40011000 0x400>;
104 interrupts = <37>; 138 interrupts = <37>;
105 status = "disabled"; 139 status = "disabled";
106 clocks = <&timer_clk>; 140 clocks = <&rcc USART1_CK>;
107
108 }; 141 };
109 142
110 dma1: dma@40020000 { 143 dma1: dma@40020000 {
@@ -118,9 +151,10 @@
118 <16>, 151 <16>,
119 <17>, 152 <17>,
120 <47>; 153 <47>;
121 clocks = <&timer_clk>; 154 clocks = <&rcc DMA1_CK>;
122 #dma-cells = <4>; 155 #dma-cells = <4>;
123 st,mem2mem; 156 st,mem2mem;
157 dma-requests = <8>;
124 status = "disabled"; 158 status = "disabled";
125 }; 159 };
126 160
@@ -135,17 +169,28 @@
135 <68>, 169 <68>,
136 <69>, 170 <69>,
137 <70>; 171 <70>;
138 clocks = <&timer_clk>; 172 clocks = <&rcc DMA2_CK>;
139 #dma-cells = <4>; 173 #dma-cells = <4>;
140 st,mem2mem; 174 st,mem2mem;
175 dma-requests = <8>;
141 status = "disabled"; 176 status = "disabled";
142 }; 177 };
143 178
179 dmamux1: dma-router@40020800 {
180 compatible = "st,stm32h7-dmamux";
181 reg = <0x40020800 0x1c>;
182 #dma-cells = <3>;
183 dma-channels = <16>;
184 dma-requests = <128>;
185 dma-masters = <&dma1 &dma2>;
186 clocks = <&rcc DMA1_CK>;
187 };
188
144 adc_12: adc@40022000 { 189 adc_12: adc@40022000 {
145 compatible = "st,stm32h7-adc-core"; 190 compatible = "st,stm32h7-adc-core";
146 reg = <0x40022000 0x400>; 191 reg = <0x40022000 0x400>;
147 interrupts = <18>; 192 interrupts = <18>;
148 clocks = <&timer_clk>; 193 clocks = <&rcc ADC12_CK>;
149 clock-names = "bus"; 194 clock-names = "bus";
150 interrupt-controller; 195 interrupt-controller;
151 #interrupt-cells = <1>; 196 #interrupt-cells = <1>;
@@ -172,11 +217,121 @@
172 }; 217 };
173 }; 218 };
174 219
220 mdma1: dma@52000000 {
221 compatible = "st,stm32h7-mdma";
222 reg = <0x52000000 0x1000>;
223 interrupts = <122>;
224 clocks = <&rcc MDMA_CK>;
225 #dma-cells = <5>;
226 dma-channels = <16>;
227 dma-requests = <32>;
228 };
229
230 lptimer2: timer@58002400 {
231 #address-cells = <1>;
232 #size-cells = <0>;
233 compatible = "st,stm32-lptimer";
234 reg = <0x58002400 0x400>;
235 clocks = <&rcc LPTIM2_CK>;
236 clock-names = "mux";
237 status = "disabled";
238
239 pwm {
240 compatible = "st,stm32-pwm-lp";
241 status = "disabled";
242 };
243
244 trigger@1 {
245 compatible = "st,stm32-lptimer-trigger";
246 reg = <1>;
247 status = "disabled";
248 };
249
250 counter {
251 compatible = "st,stm32-lptimer-counter";
252 status = "disabled";
253 };
254 };
255
256 lptimer3: timer@58002800 {
257 #address-cells = <1>;
258 #size-cells = <0>;
259 compatible = "st,stm32-lptimer";
260 reg = <0x58002800 0x400>;
261 clocks = <&rcc LPTIM3_CK>;
262 clock-names = "mux";
263 status = "disabled";
264
265 pwm {
266 compatible = "st,stm32-pwm-lp";
267 status = "disabled";
268 };
269
270 trigger@2 {
271 compatible = "st,stm32-lptimer-trigger";
272 reg = <2>;
273 status = "disabled";
274 };
275 };
276
277 lptimer4: timer@58002c00 {
278 #address-cells = <1>;
279 #size-cells = <0>;
280 compatible = "st,stm32-lptimer";
281 reg = <0x58002c00 0x400>;
282 clocks = <&rcc LPTIM4_CK>;
283 clock-names = "mux";
284 status = "disabled";
285
286 pwm {
287 compatible = "st,stm32-pwm-lp";
288 status = "disabled";
289 };
290 };
291
292 lptimer5: timer@58003000 {
293 #address-cells = <1>;
294 #size-cells = <0>;
295 compatible = "st,stm32-lptimer";
296 reg = <0x58003000 0x400>;
297 clocks = <&rcc LPTIM5_CK>;
298 clock-names = "mux";
299 status = "disabled";
300
301 pwm {
302 compatible = "st,stm32-pwm-lp";
303 status = "disabled";
304 };
305 };
306
307 vrefbuf: regulator@58003C00 {
308 compatible = "st,stm32-vrefbuf";
309 reg = <0x58003C00 0x8>;
310 clocks = <&rcc VREF_CK>;
311 regulator-min-microvolt = <1500000>;
312 regulator-max-microvolt = <2500000>;
313 status = "disabled";
314 };
315
316 rcc: reset-clock-controller@58024400 {
317 compatible = "st,stm32h743-rcc", "st,stm32-rcc";
318 reg = <0x58024400 0x400>;
319 #clock-cells = <1>;
320 #reset-cells = <1>;
321 clocks = <&clk_hse>, <&clk_lse>, <&clk_i2s>;
322 st,syscfg = <&pwrcfg>;
323 };
324
325 pwrcfg: power-config@58024800 {
326 compatible = "syscon";
327 reg = <0x58024800 0x400>;
328 };
329
175 adc_3: adc@58026000 { 330 adc_3: adc@58026000 {
176 compatible = "st,stm32h7-adc-core"; 331 compatible = "st,stm32h7-adc-core";
177 reg = <0x58026000 0x400>; 332 reg = <0x58026000 0x400>;
178 interrupts = <127>; 333 interrupts = <127>;
179 clocks = <&timer_clk>; 334 clocks = <&rcc ADC3_CK>;
180 clock-names = "bus"; 335 clock-names = "bus";
181 interrupt-controller; 336 interrupt-controller;
182 #interrupt-cells = <1>; 337 #interrupt-cells = <1>;
diff --git a/arch/arm/boot/dts/stm32h743i-eval.dts b/arch/arm/boot/dts/stm32h743i-eval.dts
index 6c07786e7ddb..9f0e72c67219 100644
--- a/arch/arm/boot/dts/stm32h743i-eval.dts
+++ b/arch/arm/boot/dts/stm32h743i-eval.dts
@@ -81,7 +81,7 @@
81}; 81};
82 82
83&clk_hse { 83&clk_hse {
84 clock-frequency = <125000000>; 84 clock-frequency = <25000000>;
85}; 85};
86 86
87&usart1 { 87&usart1 {
diff --git a/arch/arm/boot/dts/sun4i-a10-a1000.dts b/arch/arm/boot/dts/sun4i-a10-a1000.dts
index f80d37ddc4c6..09e909576c61 100644
--- a/arch/arm/boot/dts/sun4i-a10-a1000.dts
+++ b/arch/arm/boot/dts/sun4i-a10-a1000.dts
@@ -62,8 +62,6 @@
62 62
63 leds { 63 leds {
64 compatible = "gpio-leds"; 64 compatible = "gpio-leds";
65 pinctrl-names = "default";
66 pinctrl-0 = <&led_pins_a1000>;
67 65
68 red { 66 red {
69 label = "a1000:red:usr"; 67 label = "a1000:red:usr";
@@ -79,8 +77,6 @@
79 77
80 reg_emac_3v3: emac-3v3 { 78 reg_emac_3v3: emac-3v3 {
81 compatible = "regulator-fixed"; 79 compatible = "regulator-fixed";
82 pinctrl-names = "default";
83 pinctrl-0 = <&emac_power_pin_a1000>;
84 regulator-name = "emac-3v3"; 80 regulator-name = "emac-3v3";
85 regulator-min-microvolt = <3300000>; 81 regulator-min-microvolt = <3300000>;
86 regulator-max-microvolt = <3300000>; 82 regulator-max-microvolt = <3300000>;
@@ -129,8 +125,6 @@
129}; 125};
130 126
131&emac { 127&emac {
132 pinctrl-names = "default";
133 pinctrl-0 = <&emac_pins_a>;
134 phy = <&phy1>; 128 phy = <&phy1>;
135 status = "okay"; 129 status = "okay";
136}; 130};
@@ -140,8 +134,6 @@
140}; 134};
141 135
142&i2c0 { 136&i2c0 {
143 pinctrl-names = "default";
144 pinctrl-0 = <&i2c0_pins_a>;
145 status = "okay"; 137 status = "okay";
146 138
147 axp209: pmic@34 { 139 axp209: pmic@34 {
@@ -156,7 +148,7 @@
156 148
157&ir0 { 149&ir0 {
158 pinctrl-names = "default"; 150 pinctrl-names = "default";
159 pinctrl-0 = <&ir0_rx_pins_a>; 151 pinctrl-0 = <&ir0_rx_pins>;
160 status = "okay"; 152 status = "okay";
161}; 153};
162 154
@@ -170,8 +162,6 @@
170}; 162};
171 163
172&mmc0 { 164&mmc0 {
173 pinctrl-names = "default";
174 pinctrl-0 = <&mmc0_pins_a>;
175 vmmc-supply = <&reg_vcc3v3>; 165 vmmc-supply = <&reg_vcc3v3>;
176 bus-width = <4>; 166 bus-width = <4>;
177 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 167 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -187,18 +177,6 @@
187 status = "okay"; 177 status = "okay";
188}; 178};
189 179
190&pio {
191 emac_power_pin_a1000: emac_power_pin@0 {
192 pins = "PH15";
193 function = "gpio_out";
194 };
195
196 led_pins_a1000: led_pins@0 {
197 pins = "PH10", "PH20";
198 function = "gpio_out";
199 };
200};
201
202#include "axp209.dtsi" 180#include "axp209.dtsi"
203 181
204&reg_dcdc2 { 182&reg_dcdc2 {
@@ -236,13 +214,13 @@
236 214
237&spdif { 215&spdif {
238 pinctrl-names = "default"; 216 pinctrl-names = "default";
239 pinctrl-0 = <&spdif_tx_pins_a>; 217 pinctrl-0 = <&spdif_tx_pin>;
240 status = "okay"; 218 status = "okay";
241}; 219};
242 220
243&uart0 { 221&uart0 {
244 pinctrl-names = "default"; 222 pinctrl-names = "default";
245 pinctrl-0 = <&uart0_pins_a>; 223 pinctrl-0 = <&uart0_pb_pins>;
246 status = "okay"; 224 status = "okay";
247}; 225};
248 226
diff --git a/arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts b/arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts
index 6b02de592a02..39ba4ccb9e2e 100644
--- a/arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts
+++ b/arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts
@@ -68,8 +68,6 @@
68}; 68};
69 69
70&emac { 70&emac {
71 pinctrl-names = "default";
72 pinctrl-0 = <&emac_pins_a>;
73 phy = <&phy1>; 71 phy = <&phy1>;
74 status = "okay"; 72 status = "okay";
75}; 73};
@@ -79,8 +77,6 @@
79}; 77};
80 78
81&i2c0 { 79&i2c0 {
82 pinctrl-names = "default";
83 pinctrl-0 = <&i2c0_pins_a>;
84 status = "okay"; 80 status = "okay";
85 81
86 axp209: pmic@34 { 82 axp209: pmic@34 {
@@ -95,7 +91,7 @@
95 91
96&ir0 { 92&ir0 {
97 pinctrl-names = "default"; 93 pinctrl-names = "default";
98 pinctrl-0 = <&ir0_rx_pins_a>; 94 pinctrl-0 = <&ir0_rx_pins>;
99 status = "okay"; 95 status = "okay";
100}; 96};
101 97
@@ -108,8 +104,6 @@
108}; 104};
109 105
110&mmc0 { 106&mmc0 {
111 pinctrl-names = "default";
112 pinctrl-0 = <&mmc0_pins_a>;
113 vmmc-supply = <&reg_vcc3v3>; 107 vmmc-supply = <&reg_vcc3v3>;
114 bus-width = <4>; 108 bus-width = <4>;
115 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 109 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -125,12 +119,6 @@
125 status = "okay"; 119 status = "okay";
126}; 120};
127 121
128&pio {
129 usb2_vbus_pin_a: usb2_vbus_pin@0 {
130 pins = "PH12";
131 };
132};
133
134&reg_usb0_vbus { 122&reg_usb0_vbus {
135 regulator-boot-on; 123 regulator-boot-on;
136 status = "okay"; 124 status = "okay";
@@ -147,7 +135,7 @@
147 135
148&uart0 { 136&uart0 {
149 pinctrl-names = "default"; 137 pinctrl-names = "default";
150 pinctrl-0 = <&uart0_pins_a>; 138 pinctrl-0 = <&uart0_pb_pins>;
151 status = "okay"; 139 status = "okay";
152}; 140};
153 141
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 a7d61994b8fd..dfc88aee4fe3 100644
--- a/arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts
+++ b/arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts
@@ -65,8 +65,6 @@
65}; 65};
66 66
67&i2c0 { 67&i2c0 {
68 pinctrl-names = "default";
69 pinctrl-0 = <&i2c0_pins_a>;
70 status = "okay"; 68 status = "okay";
71 69
72 axp209: pmic@34 { 70 axp209: pmic@34 {
@@ -80,14 +78,10 @@
80}; 78};
81 79
82&i2c1 { 80&i2c1 {
83 pinctrl-names = "default";
84 pinctrl-0 = <&i2c1_pins_a>;
85 status = "okay"; 81 status = "okay";
86}; 82};
87 83
88&i2c2 { 84&i2c2 {
89 pinctrl-names = "default";
90 pinctrl-0 = <&i2c2_pins_a>;
91 status = "okay"; 85 status = "okay";
92 86
93 ft5306de4: touchscreen@38 { 87 ft5306de4: touchscreen@38 {
@@ -104,21 +98,21 @@
104 vref-supply = <&reg_vcc3v0>; 98 vref-supply = <&reg_vcc3v0>;
105 status = "okay"; 99 status = "okay";
106 100
107 button@800 { 101 button-800 {
108 label = "Volume Up"; 102 label = "Volume Up";
109 linux,code = <KEY_VOLUMEUP>; 103 linux,code = <KEY_VOLUMEUP>;
110 channel = <0>; 104 channel = <0>;
111 voltage = <800000>; 105 voltage = <800000>;
112 }; 106 };
113 107
114 button@1000 { 108 button-1000 {
115 label = "Volume Down"; 109 label = "Volume Down";
116 linux,code = <KEY_VOLUMEDOWN>; 110 linux,code = <KEY_VOLUMEDOWN>;
117 channel = <0>; 111 channel = <0>;
118 voltage = <1000000>; 112 voltage = <1000000>;
119 }; 113 };
120 114
121 button@1200 { 115 button-1200 {
122 label = "Back"; 116 label = "Back";
123 linux,code = <KEY_BACK>; 117 linux,code = <KEY_BACK>;
124 channel = <0>; 118 channel = <0>;
@@ -127,8 +121,6 @@
127}; 121};
128 122
129&mmc0 { 123&mmc0 {
130 pinctrl-names = "default";
131 pinctrl-0 = <&mmc0_pins_a>;
132 vmmc-supply = <&reg_vcc3v3>; 124 vmmc-supply = <&reg_vcc3v3>;
133 bus-width = <4>; 125 bus-width = <4>;
134 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 126 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -141,13 +133,13 @@
141}; 133};
142 134
143&pio { 135&pio {
144 usb0_id_detect_pin: usb0_id_detect_pin@0 { 136 usb0_id_detect_pin: usb0-id-detect-pin {
145 pins = "PH4"; 137 pins = "PH4";
146 function = "gpio_in"; 138 function = "gpio_in";
147 bias-pull-up; 139 bias-pull-up;
148 }; 140 };
149 141
150 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 142 usb0_vbus_detect_pin: usb0-vbus-detect-pin {
151 pins = "PH5"; 143 pins = "PH5";
152 function = "gpio_in"; 144 function = "gpio_in";
153 bias-pull-down; 145 bias-pull-down;
@@ -164,7 +156,7 @@
164 156
165&uart0 { 157&uart0 {
166 pinctrl-names = "default"; 158 pinctrl-names = "default";
167 pinctrl-0 = <&uart0_pins_a>; 159 pinctrl-0 = <&uart0_pb_pins>;
168 status = "okay"; 160 status = "okay";
169}; 161};
170 162
diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
index 404ce7694899..1982c8c238c5 100644
--- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
+++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
@@ -59,6 +59,17 @@
59 stdout-path = "serial0:115200n8"; 59 stdout-path = "serial0:115200n8";
60 }; 60 };
61 61
62 hdmi-connector {
63 compatible = "hdmi-connector";
64 type = "a";
65
66 port {
67 hdmi_con_in: endpoint {
68 remote-endpoint = <&hdmi_out_con>;
69 };
70 };
71 };
72
62 leds { 73 leds {
63 compatible = "gpio-leds"; 74 compatible = "gpio-leds";
64 pinctrl-names = "default"; 75 pinctrl-names = "default";
@@ -90,6 +101,10 @@
90 cpu-supply = <&reg_dcdc2>; 101 cpu-supply = <&reg_dcdc2>;
91}; 102};
92 103
104&de {
105 status = "okay";
106};
107
93&ehci0 { 108&ehci0 {
94 status = "okay"; 109 status = "okay";
95}; 110};
@@ -99,8 +114,6 @@
99}; 114};
100 115
101&emac { 116&emac {
102 pinctrl-names = "default";
103 pinctrl-0 = <&emac_pins_a>;
104 phy = <&phy1>; 117 phy = <&phy1>;
105 status = "okay"; 118 status = "okay";
106}; 119};
@@ -109,9 +122,17 @@
109 status = "okay"; 122 status = "okay";
110}; 123};
111 124
125&hdmi {
126 status = "okay";
127};
128
129&hdmi_out {
130 hdmi_out_con: endpoint {
131 remote-endpoint = <&hdmi_con_in>;
132 };
133};
134
112&i2c0 { 135&i2c0 {
113 pinctrl-names = "default";
114 pinctrl-0 = <&i2c0_pins_a>;
115 status = "okay"; 136 status = "okay";
116 137
117 axp209: pmic@34 { 138 axp209: pmic@34 {
@@ -121,14 +142,12 @@
121}; 142};
122 143
123&i2c1 { 144&i2c1 {
124 pinctrl-names = "default";
125 pinctrl-0 = <&i2c1_pins_a>;
126 status = "okay"; 145 status = "okay";
127}; 146};
128 147
129&ir0 { 148&ir0 {
130 pinctrl-names = "default"; 149 pinctrl-names = "default";
131 pinctrl-0 = <&ir0_rx_pins_a>; 150 pinctrl-0 = <&ir0_rx_pins>;
132 status = "okay"; 151 status = "okay";
133}; 152};
134 153
@@ -141,8 +160,6 @@
141}; 160};
142 161
143&mmc0 { 162&mmc0 {
144 pinctrl-names = "default";
145 pinctrl-0 = <&mmc0_pins_a>;
146 vmmc-supply = <&reg_vcc3v3>; 163 vmmc-supply = <&reg_vcc3v3>;
147 bus-width = <4>; 164 bus-width = <4>;
148 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 165 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -163,13 +180,13 @@
163}; 180};
164 181
165&pio { 182&pio {
166 led_pins_cubieboard: led_pins@0 { 183 led_pins_cubieboard: led-pins {
167 pins = "PH20", "PH21"; 184 pins = "PH20", "PH21";
168 function = "gpio_out"; 185 function = "gpio_out";
169 drive-strength = <20>; 186 drive-strength = <20>;
170 }; 187 };
171 188
172 usb0_id_detect_pin: usb0_id_detect_pin@0 { 189 usb0_id_detect_pin: usb0-id-detect-pin {
173 pins = "PH4"; 190 pins = "PH4";
174 function = "gpio_in"; 191 function = "gpio_in";
175 bias-pull-up; 192 bias-pull-up;
@@ -221,14 +238,14 @@
221 238
222&spi0 { 239&spi0 {
223 pinctrl-names = "default"; 240 pinctrl-names = "default";
224 pinctrl-0 = <&spi0_pins_a>, 241 pinctrl-0 = <&spi0_pi_pins>,
225 <&spi0_cs0_pins_a>; 242 <&spi0_cs0_pi_pin>;
226 status = "okay"; 243 status = "okay";
227}; 244};
228 245
229&uart0 { 246&uart0 {
230 pinctrl-names = "default"; 247 pinctrl-names = "default";
231 pinctrl-0 = <&uart0_pins_a>; 248 pinctrl-0 = <&uart0_pb_pins>;
232 status = "okay"; 249 status = "okay";
233}; 250};
234 251
diff --git a/arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts b/arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts
index e0777ae808c7..147cbc5e08ac 100644
--- a/arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts
+++ b/arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts
@@ -58,8 +58,6 @@
58 58
59 backlight: backlight { 59 backlight: backlight {
60 compatible = "pwm-backlight"; 60 compatible = "pwm-backlight";
61 pinctrl-names = "default";
62 pinctrl-0 = <&bl_en_pin_dsrv9703c>;
63 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>; 61 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
64 brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>; 62 brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
65 default-brightness-level = <8>; 63 default-brightness-level = <8>;
@@ -77,10 +75,8 @@
77 max-microvolt = <3000000>; 75 max-microvolt = <3000000>;
78 }; 76 };
79 77
80 reg_motor: reg_motor { 78 reg_motor: reg-motor {
81 compatible = "regulator-fixed"; 79 compatible = "regulator-fixed";
82 pinctrl-names = "default";
83 pinctrl-0 = <&motor_pins>;
84 regulator-name = "vcc-motor"; 80 regulator-name = "vcc-motor";
85 regulator-min-microvolt = <3000000>; 81 regulator-min-microvolt = <3000000>;
86 regulator-max-microvolt = <3000000>; 82 regulator-max-microvolt = <3000000>;
@@ -90,8 +86,6 @@
90}; 86};
91 87
92&codec { 88&codec {
93 pinctrl-names = "default";
94 pinctrl-0 = <&codec_pa_pin>;
95 allwinner,pa-gpios = <&pio 7 15 GPIO_ACTIVE_HIGH>; /* PH15 */ 89 allwinner,pa-gpios = <&pio 7 15 GPIO_ACTIVE_HIGH>; /* PH15 */
96 status = "okay"; 90 status = "okay";
97}; 91};
@@ -105,8 +99,6 @@
105}; 99};
106 100
107&i2c0 { 101&i2c0 {
108 pinctrl-names = "default";
109 pinctrl-0 = <&i2c0_pins_a>;
110 status = "okay"; 102 status = "okay";
111 103
112 axp209: pmic@34 { 104 axp209: pmic@34 {
@@ -118,15 +110,11 @@
118#include "axp209.dtsi" 110#include "axp209.dtsi"
119 111
120&i2c1 { 112&i2c1 {
121 pinctrl-names = "default";
122 pinctrl-0 = <&i2c1_pins_a>;
123 /* pull-ups and devices require AXP209 LDO3 */ 113 /* pull-ups and devices require AXP209 LDO3 */
124 status = "failed"; 114 status = "failed";
125}; 115};
126 116
127&i2c2 { 117&i2c2 {
128 pinctrl-names = "default";
129 pinctrl-0 = <&i2c2_pins_a>;
130 status = "okay"; 118 status = "okay";
131 119
132 ft5406ee8: touchscreen@38 { 120 ft5406ee8: touchscreen@38 {
@@ -134,8 +122,6 @@
134 reg = <0x38>; 122 reg = <0x38>;
135 interrupt-parent = <&pio>; 123 interrupt-parent = <&pio>;
136 interrupts = <7 21 IRQ_TYPE_EDGE_FALLING>; 124 interrupts = <7 21 IRQ_TYPE_EDGE_FALLING>;
137 pinctrl-names = "default";
138 pinctrl-0 = <&touchscreen_pins>;
139 reset-gpios = <&pio 1 13 GPIO_ACTIVE_LOW>; 125 reset-gpios = <&pio 1 13 GPIO_ACTIVE_LOW>;
140 touchscreen-size-x = <1024>; 126 touchscreen-size-x = <1024>;
141 touchscreen-size-y = <768>; 127 touchscreen-size-y = <768>;
@@ -146,14 +132,14 @@
146 vref-supply = <&reg_ldo2>; 132 vref-supply = <&reg_ldo2>;
147 status = "okay"; 133 status = "okay";
148 134
149 button@400 { 135 button-400 {
150 label = "Volume Down"; 136 label = "Volume Down";
151 linux,code = <KEY_VOLUMEDOWN>; 137 linux,code = <KEY_VOLUMEDOWN>;
152 channel = <0>; 138 channel = <0>;
153 voltage = <400000>; 139 voltage = <400000>;
154 }; 140 };
155 141
156 button@800 { 142 button-800 {
157 label = "Volume Up"; 143 label = "Volume Up";
158 linux,code = <KEY_VOLUMEUP>; 144 linux,code = <KEY_VOLUMEUP>;
159 channel = <0>; 145 channel = <0>;
@@ -162,8 +148,6 @@
162}; 148};
163 149
164&mmc0 { 150&mmc0 {
165 pinctrl-names = "default";
166 pinctrl-0 = <&mmc0_pins_a>;
167 vmmc-supply = <&reg_vcc3v3>; 151 vmmc-supply = <&reg_vcc3v3>;
168 bus-width = <4>; 152 bus-width = <4>;
169 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 153 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -176,33 +160,13 @@
176}; 160};
177 161
178&pio { 162&pio {
179 bl_en_pin_dsrv9703c: bl_en_pin@0 { 163 usb0_id_detect_pin: usb0-id-detect-pin {
180 pins = "PH7";
181 function = "gpio_out";
182 };
183
184 codec_pa_pin: codec_pa_pin@0 {
185 pins = "PH15";
186 function = "gpio_out";
187 };
188
189 motor_pins: motor_pins@0 {
190 pins = "PB3";
191 function = "gpio_out";
192 };
193
194 touchscreen_pins: touchscreen_pins@0 {
195 pins = "PB13";
196 function = "gpio_out";
197 };
198
199 usb0_id_detect_pin: usb0_id_detect_pin@0 {
200 pins = "PH4"; 164 pins = "PH4";
201 function = "gpio_in"; 165 function = "gpio_in";
202 bias-pull-up; 166 bias-pull-up;
203 }; 167 };
204 168
205 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 169 usb0_vbus_detect_pin: usb0-vbus-detect-pin {
206 pins = "PH5"; 170 pins = "PH5";
207 function = "gpio_in"; 171 function = "gpio_in";
208 bias-pull-down; 172 bias-pull-down;
@@ -211,7 +175,7 @@
211 175
212&pwm { 176&pwm {
213 pinctrl-names = "default"; 177 pinctrl-names = "default";
214 pinctrl-0 = <&pwm0_pins_a>; 178 pinctrl-0 = <&pwm0_pin>;
215 status = "okay"; 179 status = "okay";
216}; 180};
217 181
@@ -250,7 +214,7 @@
250 214
251&uart0 { 215&uart0 {
252 pinctrl-names = "default"; 216 pinctrl-names = "default";
253 pinctrl-0 = <&uart0_pins_a>; 217 pinctrl-0 = <&uart0_pb_pins>;
254 status = "okay"; 218 status = "okay";
255}; 219};
256 220
diff --git a/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts b/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
index d8bfd7b74916..41ca8bded89f 100644
--- a/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
+++ b/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
@@ -72,8 +72,6 @@
72 */ 72 */
73&codec { 73&codec {
74 /* PH15 controls power to external amplifier (ft2012q) */ 74 /* PH15 controls power to external amplifier (ft2012q) */
75 pinctrl-names = "default";
76 pinctrl-0 = <&codec_pa_pin>;
77 allwinner,pa-gpios = <&pio 7 15 GPIO_ACTIVE_HIGH>; 75 allwinner,pa-gpios = <&pio 7 15 GPIO_ACTIVE_HIGH>;
78 status = "okay"; 76 status = "okay";
79}; 77};
@@ -91,8 +89,6 @@
91}; 89};
92 90
93&i2c0 { 91&i2c0 {
94 pinctrl-names = "default";
95 pinctrl-0 = <&i2c0_pins_a>;
96 status = "okay"; 92 status = "okay";
97 93
98 axp209: pmic@34 { 94 axp209: pmic@34 {
@@ -104,8 +100,6 @@
104#include "axp209.dtsi" 100#include "axp209.dtsi"
105 101
106&i2c1 { 102&i2c1 {
107 pinctrl-names = "default";
108 pinctrl-0 = <&i2c1_pins_a>;
109 status = "okay"; 103 status = "okay";
110 104
111 /* Accelerometer */ 105 /* Accelerometer */
@@ -122,21 +116,21 @@
122 116
123 status = "okay"; 117 status = "okay";
124 118
125 button@158 { 119 button-158 {
126 label = "Volume Down"; 120 label = "Volume Down";
127 linux,code = <KEY_VOLUMEDOWN>; 121 linux,code = <KEY_VOLUMEDOWN>;
128 channel = <0>; 122 channel = <0>;
129 voltage = <158730>; 123 voltage = <158730>;
130 }; 124 };
131 125
132 button@349 { 126 button-349 {
133 label = "Volume Up"; 127 label = "Volume Up";
134 linux,code = <KEY_VOLUMEUP>; 128 linux,code = <KEY_VOLUMEUP>;
135 channel = <0>; 129 channel = <0>;
136 voltage = <349206>; 130 voltage = <349206>;
137 }; 131 };
138 132
139 button@1142 { 133 button-1142 {
140 label = "Esc"; 134 label = "Esc";
141 linux,code = <KEY_ESC>; 135 linux,code = <KEY_ESC>;
142 channel = <0>; 136 channel = <0>;
@@ -145,8 +139,6 @@
145}; 139};
146 140
147&mmc0 { 141&mmc0 {
148 pinctrl-names = "default";
149 pinctrl-0 = <&mmc0_pins_a>;
150 vmmc-supply = <&reg_vcc3v3>; 142 vmmc-supply = <&reg_vcc3v3>;
151 bus-width = <4>; 143 bus-width = <4>;
152 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH01 */ 144 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH01 */
@@ -154,13 +146,6 @@
154 status = "okay"; 146 status = "okay";
155}; 147};
156 148
157&pio {
158 codec_pa_pin: codec_pa_pin@0 {
159 pins = "PH15";
160 function = "gpio_out";
161 };
162};
163
164&reg_dcdc2 { 149&reg_dcdc2 {
165 regulator-always-on; 150 regulator-always-on;
166 regulator-min-microvolt = <1000000>; 151 regulator-min-microvolt = <1000000>;
@@ -197,7 +182,7 @@
197 182
198&uart0 { 183&uart0 {
199 pinctrl-names = "default"; 184 pinctrl-names = "default";
200 pinctrl-0 = <&uart0_pins_a>; 185 pinctrl-0 = <&uart0_pb_pins>;
201 status = "okay"; 186 status = "okay";
202}; 187};
203 188
diff --git a/arch/arm/boot/dts/sun4i-a10-hackberry.dts b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
index 856cfc9128e6..f33e42d6ce8b 100644
--- a/arch/arm/boot/dts/sun4i-a10-hackberry.dts
+++ b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
@@ -80,8 +80,6 @@
80}; 80};
81 81
82&emac { 82&emac {
83 pinctrl-names = "default";
84 pinctrl-0 = <&emac_pins_a>;
85 phy = <&phy0>; 83 phy = <&phy0>;
86 status = "okay"; 84 status = "okay";
87}; 85};
@@ -92,7 +90,7 @@
92 90
93&ir0 { 91&ir0 {
94 pinctrl-names = "default"; 92 pinctrl-names = "default";
95 pinctrl-0 = <&ir0_rx_pins_a>; 93 pinctrl-0 = <&ir0_rx_pins>;
96 status = "okay"; 94 status = "okay";
97}; 95};
98 96
@@ -106,8 +104,6 @@
106}; 104};
107 105
108&mmc0 { 106&mmc0 {
109 pinctrl-names = "default";
110 pinctrl-0 = <&mmc0_pins_a>;
111 vmmc-supply = <&reg_vcc3v3>; 107 vmmc-supply = <&reg_vcc3v3>;
112 bus-width = <4>; 108 bus-width = <4>;
113 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 109 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -123,27 +119,11 @@
123 status = "okay"; 119 status = "okay";
124}; 120};
125 121
126&pio {
127 pinctrl-names = "default";
128 pinctrl-0 = <&hackberry_hogs>;
129
130 hackberry_hogs: hogs@0 {
131 pins = "PH19";
132 function = "gpio_out";
133 };
134
135 usb2_vbus_pin_hackberry: usb2_vbus_pin@0 {
136 pins = "PH12";
137 function = "gpio_out";
138 };
139};
140
141&reg_usb1_vbus { 122&reg_usb1_vbus {
142 status = "okay"; 123 status = "okay";
143}; 124};
144 125
145&reg_usb2_vbus { 126&reg_usb2_vbus {
146 pinctrl-0 = <&usb2_vbus_pin_hackberry>;
147 gpio = <&pio 7 12 GPIO_ACTIVE_HIGH>; 127 gpio = <&pio 7 12 GPIO_ACTIVE_HIGH>;
148 status = "okay"; 128 status = "okay";
149}; 129};
@@ -156,6 +136,6 @@
156 136
157&uart0 { 137&uart0 {
158 pinctrl-names = "default"; 138 pinctrl-names = "default";
159 pinctrl-0 = <&uart0_pins_a>; 139 pinctrl-0 = <&uart0_pb_pins>;
160 status = "okay"; 140 status = "okay";
161}; 141};
diff --git a/arch/arm/boot/dts/sun4i-a10-hyundai-a7hd.dts b/arch/arm/boot/dts/sun4i-a10-hyundai-a7hd.dts
index 6506595268b2..35c57d065dd8 100644
--- a/arch/arm/boot/dts/sun4i-a10-hyundai-a7hd.dts
+++ b/arch/arm/boot/dts/sun4i-a10-hyundai-a7hd.dts
@@ -63,8 +63,6 @@
63}; 63};
64 64
65&i2c0 { 65&i2c0 {
66 pinctrl-names = "default";
67 pinctrl-0 = <&i2c0_pins_a>;
68 status = "okay"; 66 status = "okay";
69 67
70 axp209: pmic@34 { 68 axp209: pmic@34 {
@@ -78,8 +76,6 @@
78}; 76};
79 77
80&mmc0 { 78&mmc0 {
81 pinctrl-names = "default";
82 pinctrl-0 = <&mmc0_pins_a>;
83 vmmc-supply = <&reg_vcc3v3>; 79 vmmc-supply = <&reg_vcc3v3>;
84 bus-width = <4>; 80 bus-width = <4>;
85 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 81 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -92,13 +88,13 @@
92}; 88};
93 89
94&pio { 90&pio {
95 usb0_id_detect_pin: usb0_id_detect_pin@0 { 91 usb0_id_detect_pin: usb0-id-detect-pin {
96 pins = "PH4"; 92 pins = "PH4";
97 function = "gpio_in"; 93 function = "gpio_in";
98 bias-pull-up; 94 bias-pull-up;
99 }; 95 };
100 96
101 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 97 usb0_vbus_detect_pin: usb0-vbus-detect-pin {
102 pins = "PH5"; 98 pins = "PH5";
103 function = "gpio_in"; 99 function = "gpio_in";
104 bias-pull-down; 100 bias-pull-down;
@@ -116,7 +112,7 @@
116 112
117&uart0 { 113&uart0 {
118 pinctrl-names = "default"; 114 pinctrl-names = "default";
119 pinctrl-0 = <&uart0_pins_a>; 115 pinctrl-0 = <&uart0_pb_pins>;
120 status = "okay"; 116 status = "okay";
121}; 117};
122 118
diff --git a/arch/arm/boot/dts/sun4i-a10-inet1.dts b/arch/arm/boot/dts/sun4i-a10-inet1.dts
index d51d8c302daf..9482e831a9a1 100644
--- a/arch/arm/boot/dts/sun4i-a10-inet1.dts
+++ b/arch/arm/boot/dts/sun4i-a10-inet1.dts
@@ -58,8 +58,6 @@
58 58
59 backlight: backlight { 59 backlight: backlight {
60 compatible = "pwm-backlight"; 60 compatible = "pwm-backlight";
61 pinctrl-names = "default";
62 pinctrl-0 = <&bl_en_pin_inet>;
63 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>; 61 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
64 brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>; 62 brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
65 default-brightness-level = <8>; 63 default-brightness-level = <8>;
@@ -88,8 +86,6 @@
88}; 86};
89 87
90&i2c0 { 88&i2c0 {
91 pinctrl-names = "default";
92 pinctrl-0 = <&i2c0_pins_a>;
93 status = "okay"; 89 status = "okay";
94 90
95 axp209: pmic@34 { 91 axp209: pmic@34 {
@@ -101,8 +97,6 @@
101#include "axp209.dtsi" 97#include "axp209.dtsi"
102 98
103&i2c1 { 99&i2c1 {
104 pinctrl-names = "default";
105 pinctrl-0 = <&i2c1_pins_a>;
106 status = "okay"; 100 status = "okay";
107 101
108 /* Accelerometer */ 102 /* Accelerometer */
@@ -115,8 +109,6 @@
115}; 109};
116 110
117&i2c2 { 111&i2c2 {
118 pinctrl-names = "default";
119 pinctrl-0 = <&i2c2_pins_a>;
120 status = "okay"; 112 status = "okay";
121 113
122 ft5x: touchscreen@38 { 114 ft5x: touchscreen@38 {
@@ -124,8 +116,6 @@
124 reg = <0x38>; 116 reg = <0x38>;
125 interrupt-parent = <&pio>; 117 interrupt-parent = <&pio>;
126 interrupts = <7 21 IRQ_TYPE_EDGE_FALLING>; 118 interrupts = <7 21 IRQ_TYPE_EDGE_FALLING>;
127 pinctrl-names = "default";
128 pinctrl-0 = <&touchscreen_wake_pin>;
129 wake-gpios = <&pio 1 13 GPIO_ACTIVE_HIGH>; /* PB13 */ 119 wake-gpios = <&pio 1 13 GPIO_ACTIVE_HIGH>; /* PB13 */
130 touchscreen-size-x = <600>; 120 touchscreen-size-x = <600>;
131 touchscreen-size-y = <1024>; 121 touchscreen-size-y = <1024>;
@@ -137,21 +127,21 @@
137 vref-supply = <&reg_ldo2>; 127 vref-supply = <&reg_ldo2>;
138 status = "okay"; 128 status = "okay";
139 129
140 button@200 { 130 button-200 {
141 label = "Volume Up"; 131 label = "Volume Up";
142 linux,code = <KEY_VOLUMEUP>; 132 linux,code = <KEY_VOLUMEUP>;
143 channel = <0>; 133 channel = <0>;
144 voltage = <200000>; 134 voltage = <200000>;
145 }; 135 };
146 136
147 button@1000 { 137 button-1000 {
148 label = "Volume Down"; 138 label = "Volume Down";
149 linux,code = <KEY_VOLUMEDOWN>; 139 linux,code = <KEY_VOLUMEDOWN>;
150 channel = <0>; 140 channel = <0>;
151 voltage = <1000000>; 141 voltage = <1000000>;
152 }; 142 };
153 143
154 button@1200 { 144 button-1200 {
155 label = "Home"; 145 label = "Home";
156 linux,code = <KEY_HOMEPAGE>; 146 linux,code = <KEY_HOMEPAGE>;
157 channel = <0>; 147 channel = <0>;
@@ -160,8 +150,6 @@
160}; 150};
161 151
162&mmc0 { 152&mmc0 {
163 pinctrl-names = "default";
164 pinctrl-0 = <&mmc0_pins_a>;
165 vmmc-supply = <&reg_vcc3v3>; 153 vmmc-supply = <&reg_vcc3v3>;
166 bus-width = <4>; 154 bus-width = <4>;
167 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 155 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -178,23 +166,13 @@
178}; 166};
179 167
180&pio { 168&pio {
181 bl_en_pin_inet: bl_en_pin@0 { 169 usb0_id_detect_pin: usb0-id-detect-pin {
182 pins = "PH7";
183 function = "gpio_out";
184 };
185
186 touchscreen_wake_pin: touchscreen_wake_pin@0 {
187 pins = "PB13";
188 function = "gpio_out";
189 };
190
191 usb0_id_detect_pin: usb0_id_detect_pin@0 {
192 pins = "PH4"; 170 pins = "PH4";
193 function = "gpio_in"; 171 function = "gpio_in";
194 bias-pull-up; 172 bias-pull-up;
195 }; 173 };
196 174
197 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 175 usb0_vbus_detect_pin: usb0-vbus-detect-pin {
198 pins = "PH5"; 176 pins = "PH5";
199 function = "gpio_in"; 177 function = "gpio_in";
200 bias-pull-down; 178 bias-pull-down;
@@ -203,7 +181,7 @@
203 181
204&pwm { 182&pwm {
205 pinctrl-names = "default"; 183 pinctrl-names = "default";
206 pinctrl-0 = <&pwm0_pins_a>; 184 pinctrl-0 = <&pwm0_pin>;
207 status = "okay"; 185 status = "okay";
208}; 186};
209 187
@@ -246,7 +224,7 @@
246 224
247&uart0 { 225&uart0 {
248 pinctrl-names = "default"; 226 pinctrl-names = "default";
249 pinctrl-0 = <&uart0_pins_a>; 227 pinctrl-0 = <&uart0_pb_pins>;
250 status = "okay"; 228 status = "okay";
251}; 229};
252 230
diff --git a/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts b/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts
index a8e479fe43ca..4b5c91c8e85b 100644
--- a/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts
+++ b/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts
@@ -72,8 +72,6 @@
72}; 72};
73 73
74&i2c0 { 74&i2c0 {
75 pinctrl-names = "default";
76 pinctrl-0 = <&i2c0_pins_a>;
77 status = "okay"; 75 status = "okay";
78 76
79 axp209: pmic@34 { 77 axp209: pmic@34 {
@@ -85,14 +83,10 @@
85#include "axp209.dtsi" 83#include "axp209.dtsi"
86 84
87&i2c1 { 85&i2c1 {
88 pinctrl-names = "default";
89 pinctrl-0 = <&i2c1_pins_a>;
90 status = "okay"; 86 status = "okay";
91}; 87};
92 88
93&i2c2 { 89&i2c2 {
94 pinctrl-names = "default";
95 pinctrl-0 = <&i2c2_pins_a>;
96 status = "okay"; 90 status = "okay";
97 91
98 ft5406ee8: touchscreen@38 { 92 ft5406ee8: touchscreen@38 {
@@ -109,35 +103,35 @@
109 vref-supply = <&reg_ldo2>; 103 vref-supply = <&reg_ldo2>;
110 status = "okay"; 104 status = "okay";
111 105
112 button@200 { 106 button-200 {
113 label = "Menu"; 107 label = "Menu";
114 linux,code = <KEY_MENU>; 108 linux,code = <KEY_MENU>;
115 channel = <0>; 109 channel = <0>;
116 voltage = <200000>; 110 voltage = <200000>;
117 }; 111 };
118 112
119 button@600 { 113 button-600 {
120 label = "Volume Up"; 114 label = "Volume Up";
121 linux,code = <KEY_VOLUMEUP>; 115 linux,code = <KEY_VOLUMEUP>;
122 channel = <0>; 116 channel = <0>;
123 voltage = <600000>; 117 voltage = <600000>;
124 }; 118 };
125 119
126 button@800 { 120 button-800 {
127 label = "Volume Down"; 121 label = "Volume Down";
128 linux,code = <KEY_VOLUMEDOWN>; 122 linux,code = <KEY_VOLUMEDOWN>;
129 channel = <0>; 123 channel = <0>;
130 voltage = <800000>; 124 voltage = <800000>;
131 }; 125 };
132 126
133 button@1000 { 127 button-1000 {
134 label = "Home"; 128 label = "Home";
135 linux,code = <KEY_HOMEPAGE>; 129 linux,code = <KEY_HOMEPAGE>;
136 channel = <0>; 130 channel = <0>;
137 voltage = <1000000>; 131 voltage = <1000000>;
138 }; 132 };
139 133
140 button@1200 { 134 button-1200 {
141 label = "Esc"; 135 label = "Esc";
142 linux,code = <KEY_ESC>; 136 linux,code = <KEY_ESC>;
143 channel = <0>; 137 channel = <0>;
@@ -146,8 +140,6 @@
146}; 140};
147 141
148&mmc0 { 142&mmc0 {
149 pinctrl-names = "default";
150 pinctrl-0 = <&mmc0_pins_a>;
151 vmmc-supply = <&reg_vcc3v3>; 143 vmmc-supply = <&reg_vcc3v3>;
152 bus-width = <4>; 144 bus-width = <4>;
153 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 145 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -160,13 +152,13 @@
160}; 152};
161 153
162&pio { 154&pio {
163 usb0_id_detect_pin: usb0_id_detect_pin@0 { 155 usb0_id_detect_pin: usb0-id-detect-pin {
164 pins = "PH4"; 156 pins = "PH4";
165 function = "gpio_in"; 157 function = "gpio_in";
166 bias-pull-up; 158 bias-pull-up;
167 }; 159 };
168 160
169 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 161 usb0_vbus_detect_pin: usb0-vbus-detect-pin {
170 pins = "PH5"; 162 pins = "PH5";
171 function = "gpio_in"; 163 function = "gpio_in";
172 bias-pull-down; 164 bias-pull-down;
@@ -208,7 +200,7 @@
208 200
209&uart0 { 201&uart0 {
210 pinctrl-names = "default"; 202 pinctrl-names = "default";
211 pinctrl-0 = <&uart0_pins_a>; 203 pinctrl-0 = <&uart0_pb_pins>;
212 status = "okay"; 204 status = "okay";
213}; 205};
214 206
diff --git a/arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts b/arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts
index 2acb89a87d41..13224f5ac166 100644
--- a/arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts
+++ b/arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts
@@ -59,7 +59,7 @@
59 stdout-path = "serial0:115200n8"; 59 stdout-path = "serial0:115200n8";
60 }; 60 };
61 61
62 gpio_keys { 62 gpio-keys {
63 compatible = "gpio-keys-polled"; 63 compatible = "gpio-keys-polled";
64 pinctrl-names = "default"; 64 pinctrl-names = "default";
65 pinctrl-0 = <&key_pins_inet9f>; 65 pinctrl-0 = <&key_pins_inet9f>;
@@ -67,7 +67,7 @@
67 #size-cells = <0>; 67 #size-cells = <0>;
68 poll-interval = <20>; 68 poll-interval = <20>;
69 69
70 button@0 { 70 left-joystick-left {
71 label = "Left Joystick Left"; 71 label = "Left Joystick Left";
72 linux,code = <ABS_X>; 72 linux,code = <ABS_X>;
73 linux,input-type = <EV_ABS>; 73 linux,input-type = <EV_ABS>;
@@ -75,7 +75,7 @@
75 gpios = <&pio 0 6 GPIO_ACTIVE_LOW>; /* PA6 */ 75 gpios = <&pio 0 6 GPIO_ACTIVE_LOW>; /* PA6 */
76 }; 76 };
77 77
78 button@1 { 78 left-joystick-right {
79 label = "Left Joystick Right"; 79 label = "Left Joystick Right";
80 linux,code = <ABS_X>; 80 linux,code = <ABS_X>;
81 linux,input-type = <EV_ABS>; 81 linux,input-type = <EV_ABS>;
@@ -83,7 +83,7 @@
83 gpios = <&pio 0 5 GPIO_ACTIVE_LOW>; /* PA5 */ 83 gpios = <&pio 0 5 GPIO_ACTIVE_LOW>; /* PA5 */
84 }; 84 };
85 85
86 button@2 { 86 left-joystick-up {
87 label = "Left Joystick Up"; 87 label = "Left Joystick Up";
88 linux,code = <ABS_Y>; 88 linux,code = <ABS_Y>;
89 linux,input-type = <EV_ABS>; 89 linux,input-type = <EV_ABS>;
@@ -91,7 +91,7 @@
91 gpios = <&pio 0 8 GPIO_ACTIVE_LOW>; /* PA8 */ 91 gpios = <&pio 0 8 GPIO_ACTIVE_LOW>; /* PA8 */
92 }; 92 };
93 93
94 button@3 { 94 left-joystick-down {
95 label = "Left Joystick Down"; 95 label = "Left Joystick Down";
96 linux,code = <ABS_Y>; 96 linux,code = <ABS_Y>;
97 linux,input-type = <EV_ABS>; 97 linux,input-type = <EV_ABS>;
@@ -99,7 +99,7 @@
99 gpios = <&pio 0 9 GPIO_ACTIVE_LOW>; /* PA9 */ 99 gpios = <&pio 0 9 GPIO_ACTIVE_LOW>; /* PA9 */
100 }; 100 };
101 101
102 button@4 { 102 right-joystick-left {
103 label = "Right Joystick Left"; 103 label = "Right Joystick Left";
104 linux,code = <ABS_Z>; 104 linux,code = <ABS_Z>;
105 linux,input-type = <EV_ABS>; 105 linux,input-type = <EV_ABS>;
@@ -107,7 +107,7 @@
107 gpios = <&pio 0 1 GPIO_ACTIVE_LOW>; /* PA1 */ 107 gpios = <&pio 0 1 GPIO_ACTIVE_LOW>; /* PA1 */
108 }; 108 };
109 109
110 button@5 { 110 right-joystick-right {
111 label = "Right Joystick Right"; 111 label = "Right Joystick Right";
112 linux,code = <ABS_Z>; 112 linux,code = <ABS_Z>;
113 linux,input-type = <EV_ABS>; 113 linux,input-type = <EV_ABS>;
@@ -115,7 +115,7 @@
115 gpios = <&pio 0 0 GPIO_ACTIVE_LOW>; /* PA0 */ 115 gpios = <&pio 0 0 GPIO_ACTIVE_LOW>; /* PA0 */
116 }; 116 };
117 117
118 button@6 { 118 right-joystick-up {
119 label = "Right Joystick Up"; 119 label = "Right Joystick Up";
120 linux,code = <ABS_RZ>; 120 linux,code = <ABS_RZ>;
121 linux,input-type = <EV_ABS>; 121 linux,input-type = <EV_ABS>;
@@ -123,7 +123,7 @@
123 gpios = <&pio 0 3 GPIO_ACTIVE_LOW>; /* PA3 */ 123 gpios = <&pio 0 3 GPIO_ACTIVE_LOW>; /* PA3 */
124 }; 124 };
125 125
126 button@7 { 126 right-joystick-down {
127 label = "Right Joystick Down"; 127 label = "Right Joystick Down";
128 linux,code = <ABS_RZ>; 128 linux,code = <ABS_RZ>;
129 linux,input-type = <EV_ABS>; 129 linux,input-type = <EV_ABS>;
@@ -131,7 +131,7 @@
131 gpios = <&pio 0 4 GPIO_ACTIVE_LOW>; /* PA4 */ 131 gpios = <&pio 0 4 GPIO_ACTIVE_LOW>; /* PA4 */
132 }; 132 };
133 133
134 button@8 { 134 dpad-left {
135 label = "DPad Left"; 135 label = "DPad Left";
136 linux,code = <ABS_HAT0X>; 136 linux,code = <ABS_HAT0X>;
137 linux,input-type = <EV_ABS>; 137 linux,input-type = <EV_ABS>;
@@ -139,7 +139,7 @@
139 gpios = <&pio 7 23 GPIO_ACTIVE_LOW>; /* PH23 */ 139 gpios = <&pio 7 23 GPIO_ACTIVE_LOW>; /* PH23 */
140 }; 140 };
141 141
142 button@9 { 142 dpad-right {
143 label = "DPad Right"; 143 label = "DPad Right";
144 linux,code = <ABS_HAT0X>; 144 linux,code = <ABS_HAT0X>;
145 linux,input-type = <EV_ABS>; 145 linux,input-type = <EV_ABS>;
@@ -147,7 +147,7 @@
147 gpios = <&pio 7 24 GPIO_ACTIVE_LOW>; /* PH24 */ 147 gpios = <&pio 7 24 GPIO_ACTIVE_LOW>; /* PH24 */
148 }; 148 };
149 149
150 button@10 { 150 dpad-up {
151 label = "DPad Up"; 151 label = "DPad Up";
152 linux,code = <ABS_HAT0Y>; 152 linux,code = <ABS_HAT0Y>;
153 linux,input-type = <EV_ABS>; 153 linux,input-type = <EV_ABS>;
@@ -155,7 +155,7 @@
155 gpios = <&pio 7 25 GPIO_ACTIVE_LOW>; /* PH25 */ 155 gpios = <&pio 7 25 GPIO_ACTIVE_LOW>; /* PH25 */
156 }; 156 };
157 157
158 button@11 { 158 dpad-down {
159 label = "DPad Down"; 159 label = "DPad Down";
160 linux,code = <ABS_HAT0Y>; 160 linux,code = <ABS_HAT0Y>;
161 linux,input-type = <EV_ABS>; 161 linux,input-type = <EV_ABS>;
@@ -163,49 +163,49 @@
163 gpios = <&pio 7 26 GPIO_ACTIVE_LOW>; /* PH26 */ 163 gpios = <&pio 7 26 GPIO_ACTIVE_LOW>; /* PH26 */
164 }; 164 };
165 165
166 button@12 { 166 x {
167 label = "Button X"; 167 label = "Button X";
168 linux,code = <BTN_X>; 168 linux,code = <BTN_X>;
169 gpios = <&pio 0 16 GPIO_ACTIVE_LOW>; /* PA16 */ 169 gpios = <&pio 0 16 GPIO_ACTIVE_LOW>; /* PA16 */
170 }; 170 };
171 171
172 button@13 { 172 y {
173 label = "Button Y"; 173 label = "Button Y";
174 linux,code = <BTN_Y>; 174 linux,code = <BTN_Y>;
175 gpios = <&pio 0 14 GPIO_ACTIVE_LOW>; /* PA14 */ 175 gpios = <&pio 0 14 GPIO_ACTIVE_LOW>; /* PA14 */
176 }; 176 };
177 177
178 button@14 { 178 a {
179 label = "Button A"; 179 label = "Button A";
180 linux,code = <BTN_A>; 180 linux,code = <BTN_A>;
181 gpios = <&pio 0 17 GPIO_ACTIVE_LOW>; /* PA17 */ 181 gpios = <&pio 0 17 GPIO_ACTIVE_LOW>; /* PA17 */
182 }; 182 };
183 183
184 button@15 { 184 b {
185 label = "Button B"; 185 label = "Button B";
186 linux,code = <BTN_B>; 186 linux,code = <BTN_B>;
187 gpios = <&pio 0 15 GPIO_ACTIVE_LOW>; /* PA15 */ 187 gpios = <&pio 0 15 GPIO_ACTIVE_LOW>; /* PA15 */
188 }; 188 };
189 189
190 button@16 { 190 select {
191 label = "Select Button"; 191 label = "Select Button";
192 linux,code = <BTN_SELECT>; 192 linux,code = <BTN_SELECT>;
193 gpios = <&pio 0 11 GPIO_ACTIVE_LOW>; /* PA11 */ 193 gpios = <&pio 0 11 GPIO_ACTIVE_LOW>; /* PA11 */
194 }; 194 };
195 195
196 button@17 { 196 start {
197 label = "Start Button"; 197 label = "Start Button";
198 linux,code = <BTN_START>; 198 linux,code = <BTN_START>;
199 gpios = <&pio 0 12 GPIO_ACTIVE_LOW>; /* PA12 */ 199 gpios = <&pio 0 12 GPIO_ACTIVE_LOW>; /* PA12 */
200 }; 200 };
201 201
202 button@18 { 202 top-left {
203 label = "Top Left Button"; 203 label = "Top Left Button";
204 linux,code = <BTN_TL>; 204 linux,code = <BTN_TL>;
205 gpios = <&pio 7 22 GPIO_ACTIVE_LOW>; /* PH22 */ 205 gpios = <&pio 7 22 GPIO_ACTIVE_LOW>; /* PH22 */
206 }; 206 };
207 207
208 button@19 { 208 top-right {
209 label = "Top Right Button"; 209 label = "Top Right Button";
210 linux,code = <BTN_TR>; 210 linux,code = <BTN_TR>;
211 gpios = <&pio 0 13 GPIO_ACTIVE_LOW>; /* PA13 */ 211 gpios = <&pio 0 13 GPIO_ACTIVE_LOW>; /* PA13 */
@@ -222,8 +222,6 @@
222}; 222};
223 223
224&i2c0 { 224&i2c0 {
225 pinctrl-names = "default";
226 pinctrl-0 = <&i2c0_pins_a>;
227 status = "okay"; 225 status = "okay";
228 226
229 axp209: pmic@34 { 227 axp209: pmic@34 {
@@ -235,8 +233,6 @@
235#include "axp209.dtsi" 233#include "axp209.dtsi"
236 234
237&i2c1 { 235&i2c1 {
238 pinctrl-names = "default";
239 pinctrl-0 = <&i2c1_pins_a>;
240 status = "okay"; 236 status = "okay";
241 237
242 /* Accelerometer */ 238 /* Accelerometer */
@@ -249,8 +245,6 @@
249}; 245};
250 246
251&i2c2 { 247&i2c2 {
252 pinctrl-names = "default";
253 pinctrl-0 = <&i2c2_pins_a>;
254 status = "okay"; 248 status = "okay";
255 249
256 ft5406ee8: touchscreen@38 { 250 ft5406ee8: touchscreen@38 {
@@ -267,35 +261,35 @@
267 vref-supply = <&reg_ldo2>; 261 vref-supply = <&reg_ldo2>;
268 status = "okay"; 262 status = "okay";
269 263
270 button@200 { 264 button-200 {
271 label = "Menu"; 265 label = "Menu";
272 linux,code = <KEY_MENU>; 266 linux,code = <KEY_MENU>;
273 channel = <0>; 267 channel = <0>;
274 voltage = <200000>; 268 voltage = <200000>;
275 }; 269 };
276 270
277 button@600 { 271 button-600 {
278 label = "Volume Up"; 272 label = "Volume Up";
279 linux,code = <KEY_VOLUMEUP>; 273 linux,code = <KEY_VOLUMEUP>;
280 channel = <0>; 274 channel = <0>;
281 voltage = <600000>; 275 voltage = <600000>;
282 }; 276 };
283 277
284 button@800 { 278 button-800 {
285 label = "Volume Down"; 279 label = "Volume Down";
286 linux,code = <KEY_VOLUMEDOWN>; 280 linux,code = <KEY_VOLUMEDOWN>;
287 channel = <0>; 281 channel = <0>;
288 voltage = <800000>; 282 voltage = <800000>;
289 }; 283 };
290 284
291 button@1000 { 285 button-1000 {
292 label = "Home"; 286 label = "Home";
293 linux,code = <KEY_HOMEPAGE>; 287 linux,code = <KEY_HOMEPAGE>;
294 channel = <0>; 288 channel = <0>;
295 voltage = <1000000>; 289 voltage = <1000000>;
296 }; 290 };
297 291
298 button@1200 { 292 button-1200 {
299 label = "Esc"; 293 label = "Esc";
300 linux,code = <KEY_ESC>; 294 linux,code = <KEY_ESC>;
301 channel = <0>; 295 channel = <0>;
@@ -304,8 +298,6 @@
304}; 298};
305 299
306&mmc0 { 300&mmc0 {
307 pinctrl-names = "default";
308 pinctrl-0 = <&mmc0_pins_a>;
309 vmmc-supply = <&reg_vcc3v3>; 301 vmmc-supply = <&reg_vcc3v3>;
310 bus-width = <4>; 302 bus-width = <4>;
311 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 303 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -318,7 +310,7 @@
318}; 310};
319 311
320&pio { 312&pio {
321 key_pins_inet9f: key_pins@0 { 313 key_pins_inet9f: key-pins {
322 pins = "PA0", "PA1", "PA3", "PA4", 314 pins = "PA0", "PA1", "PA3", "PA4",
323 "PA5", "PA6", "PA8", "PA9", 315 "PA5", "PA6", "PA8", "PA9",
324 "PA11", "PA12", "PA13", 316 "PA11", "PA12", "PA13",
@@ -328,13 +320,13 @@
328 bias-pull-up; 320 bias-pull-up;
329 }; 321 };
330 322
331 usb0_id_detect_pin: usb0_id_detect_pin@0 { 323 usb0_id_detect_pin: usb0-id-detect-pin {
332 pins = "PH4"; 324 pins = "PH4";
333 function = "gpio_in"; 325 function = "gpio_in";
334 bias-pull-up; 326 bias-pull-up;
335 }; 327 };
336 328
337 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 329 usb0_vbus_detect_pin: usb0-vbus-detect-pin {
338 pins = "PH5"; 330 pins = "PH5";
339 function = "gpio_in"; 331 function = "gpio_in";
340 bias-pull-down; 332 bias-pull-down;
@@ -376,7 +368,7 @@
376 368
377&uart0 { 369&uart0 {
378 pinctrl-names = "default"; 370 pinctrl-names = "default";
379 pinctrl-0 = <&uart0_pins_a>; 371 pinctrl-0 = <&uart0_pb_pins>;
380 status = "okay"; 372 status = "okay";
381}; 373};
382 374
diff --git a/arch/arm/boot/dts/sun4i-a10-itead-iteaduino-plus.dts b/arch/arm/boot/dts/sun4i-a10-itead-iteaduino-plus.dts
index 92e3e030ced3..d22bd79562d8 100644
--- a/arch/arm/boot/dts/sun4i-a10-itead-iteaduino-plus.dts
+++ b/arch/arm/boot/dts/sun4i-a10-itead-iteaduino-plus.dts
@@ -57,7 +57,7 @@
57 57
58&emac { 58&emac {
59 pinctrl-names = "default"; 59 pinctrl-names = "default";
60 pinctrl-0 = <&emac_pins_a>; 60 pinctrl-0 = <&emac_pins>;
61 phy = <&phy1>; 61 phy = <&phy1>;
62 status = "okay"; 62 status = "okay";
63}; 63};
@@ -67,6 +67,9 @@
67}; 67};
68 68
69&i2c0 { 69&i2c0 {
70 pinctrl-names = "default";
71 pinctrl-0 = <&i2c0_pins>;
72
70 axp209: pmic@34 { 73 axp209: pmic@34 {
71 interrupts = <0>; 74 interrupts = <0>;
72 }; 75 };
@@ -74,19 +77,19 @@
74 77
75&i2c1 { 78&i2c1 {
76 pinctrl-names = "default"; 79 pinctrl-names = "default";
77 pinctrl-0 = <&i2c1_pins_a>; 80 pinctrl-0 = <&i2c1_pins>;
78 status = "okay"; 81 status = "okay";
79}; 82};
80 83
81&i2c2 { 84&i2c2 {
82 pinctrl-names = "default"; 85 pinctrl-names = "default";
83 pinctrl-0 = <&i2c2_pins_a>; 86 pinctrl-0 = <&i2c2_pins>;
84 status = "okay"; 87 status = "okay";
85}; 88};
86 89
87&ir0 { 90&ir0 {
88 pinctrl-names = "default"; 91 pinctrl-names = "default";
89 pinctrl-0 = <&ir0_rx_pins_a>; 92 pinctrl-0 = <&ir0_rx_pins>;
90 status = "okay"; 93 status = "okay";
91}; 94};
92 95
@@ -100,7 +103,7 @@
100 103
101&mmc0 { 104&mmc0 {
102 pinctrl-names = "default"; 105 pinctrl-names = "default";
103 pinctrl-0 = <&mmc0_pins_a>; 106 pinctrl-0 = <&mmc0_pins>;
104 vmmc-supply = <&reg_vcc3v3>; 107 vmmc-supply = <&reg_vcc3v3>;
105 bus-width = <4>; 108 bus-width = <4>;
106 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 109 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -114,7 +117,11 @@
114 117
115&spi0 { 118&spi0 {
116 pinctrl-names = "default"; 119 pinctrl-names = "default";
117 pinctrl-0 = <&spi0_pins_a>, 120 pinctrl-0 = <&spi0_pi_pins>,
118 <&spi0_cs0_pins_a>; 121 <&spi0_cs0_pi_pin>;
119 status = "okay"; 122 status = "okay";
120}; 123};
124
125&uart0 {
126 pinctrl-0 = <&uart0_pb_pins>;
127};
diff --git a/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts b/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts
index 92b2d4af3d21..879141ca6027 100644
--- a/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts
+++ b/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts
@@ -62,8 +62,6 @@
62 62
63 leds { 63 leds {
64 compatible = "gpio-leds"; 64 compatible = "gpio-leds";
65 pinctrl-names = "default";
66 pinctrl-0 = <&led_pins_q5>;
67 65
68 green { 66 green {
69 label = "q5:green:usr"; 67 label = "q5:green:usr";
@@ -74,8 +72,6 @@
74 72
75 reg_emac_3v3: emac-3v3 { 73 reg_emac_3v3: emac-3v3 {
76 compatible = "regulator-fixed"; 74 compatible = "regulator-fixed";
77 pinctrl-names = "default";
78 pinctrl-0 = <&emac_power_pin_q5>;
79 regulator-name = "emac-3v3"; 75 regulator-name = "emac-3v3";
80 regulator-min-microvolt = <3300000>; 76 regulator-min-microvolt = <3300000>;
81 regulator-max-microvolt = <3300000>; 77 regulator-max-microvolt = <3300000>;
@@ -98,8 +94,6 @@
98}; 94};
99 95
100&emac { 96&emac {
101 pinctrl-names = "default";
102 pinctrl-0 = <&emac_pins_a>;
103 phy = <&phy1>; 97 phy = <&phy1>;
104 status = "okay"; 98 status = "okay";
105}; 99};
@@ -109,8 +103,6 @@
109}; 103};
110 104
111&i2c0 { 105&i2c0 {
112 pinctrl-names = "default";
113 pinctrl-0 = <&i2c0_pins_a>;
114 status = "okay"; 106 status = "okay";
115 107
116 axp209: pmic@34 { 108 axp209: pmic@34 {
@@ -125,7 +117,7 @@
125 117
126&ir0 { 118&ir0 {
127 pinctrl-names = "default"; 119 pinctrl-names = "default";
128 pinctrl-0 = <&ir0_rx_pins_a>; 120 pinctrl-0 = <&ir0_rx_pins>;
129 status = "okay"; 121 status = "okay";
130}; 122};
131 123
@@ -139,8 +131,6 @@
139}; 131};
140 132
141&mmc0 { 133&mmc0 {
142 pinctrl-names = "default";
143 pinctrl-0 = <&mmc0_pins_a>;
144 vmmc-supply = <&reg_vcc3v3>; 134 vmmc-supply = <&reg_vcc3v3>;
145 bus-width = <4>; 135 bus-width = <4>;
146 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 136 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -160,18 +150,6 @@
160 status = "okay"; 150 status = "okay";
161}; 151};
162 152
163&pio {
164 emac_power_pin_q5: emac_power_pin@0 {
165 pins = "PH19";
166 function = "gpio_out";
167 };
168
169 led_pins_q5: led_pins@0 {
170 pins = "PH20";
171 function = "gpio_out";
172 };
173};
174
175&reg_usb0_vbus { 153&reg_usb0_vbus {
176 regulator-boot-on; 154 regulator-boot-on;
177 status = "okay"; 155 status = "okay";
@@ -187,7 +165,7 @@
187 165
188&uart0 { 166&uart0 {
189 pinctrl-names = "default"; 167 pinctrl-names = "default";
190 pinctrl-0 = <&uart0_pins_a>; 168 pinctrl-0 = <&uart0_pb_pins>;
191 status = "okay"; 169 status = "okay";
192}; 170};
193 171
diff --git a/arch/arm/boot/dts/sun4i-a10-marsboard.dts b/arch/arm/boot/dts/sun4i-a10-marsboard.dts
index 0f927da28ee1..435c551aef0f 100644
--- a/arch/arm/boot/dts/sun4i-a10-marsboard.dts
+++ b/arch/arm/boot/dts/sun4i-a10-marsboard.dts
@@ -61,8 +61,6 @@
61 61
62 leds { 62 leds {
63 compatible = "gpio-leds"; 63 compatible = "gpio-leds";
64 pinctrl-names = "default";
65 pinctrl-0 = <&led_pins_marsboard>;
66 64
67 red1 { 65 red1 {
68 label = "marsboard:red1:usr"; 66 label = "marsboard:red1:usr";
@@ -107,27 +105,19 @@
107}; 105};
108 106
109&emac { 107&emac {
110 pinctrl-names = "default";
111 pinctrl-0 = <&emac_pins_a>;
112 phy = <&phy1>; 108 phy = <&phy1>;
113 status = "okay"; 109 status = "okay";
114}; 110};
115 111
116&i2c0 { 112&i2c0 {
117 pinctrl-names = "default";
118 pinctrl-0 = <&i2c0_pins_a>;
119 status = "okay"; 113 status = "okay";
120}; 114};
121 115
122&i2c1 { 116&i2c1 {
123 pinctrl-names = "default";
124 pinctrl-0 = <&i2c1_pins_a>;
125 status = "okay"; 117 status = "okay";
126}; 118};
127 119
128&i2c2 { 120&i2c2 {
129 pinctrl-names = "default";
130 pinctrl-0 = <&i2c2_pins_a>;
131 status = "okay"; 121 status = "okay";
132}; 122};
133 123
@@ -140,8 +130,6 @@
140}; 130};
141 131
142&mmc0 { 132&mmc0 {
143 pinctrl-names = "default";
144 pinctrl-0 = <&mmc0_pins_a>;
145 vmmc-supply = <&reg_vcc3v3>; 133 vmmc-supply = <&reg_vcc3v3>;
146 bus-width = <4>; 134 bus-width = <4>;
147 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 135 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -162,12 +150,7 @@
162}; 150};
163 151
164&pio { 152&pio {
165 led_pins_marsboard: led_pins@0 { 153 usb0_id_detect_pin: usb0-id-detect-pin {
166 pins = "PB5", "PB6", "PB7", "PB8";
167 function = "gpio_out";
168 };
169
170 usb0_id_detect_pin: usb0_id_detect_pin@0 {
171 pins = "PH4"; 154 pins = "PH4";
172 function = "gpio_in"; 155 function = "gpio_in";
173 bias-pull-up; 156 bias-pull-up;
@@ -184,14 +167,14 @@
184 167
185&spi0 { 168&spi0 {
186 pinctrl-names = "default"; 169 pinctrl-names = "default";
187 pinctrl-0 = <&spi0_pins_a>, 170 pinctrl-0 = <&spi0_pi_pins>,
188 <&spi0_cs0_pins_a>; 171 <&spi0_cs0_pi_pin>;
189 status = "okay"; 172 status = "okay";
190}; 173};
191 174
192&uart0 { 175&uart0 {
193 pinctrl-names = "default"; 176 pinctrl-names = "default";
194 pinctrl-0 = <&uart0_pins_a>; 177 pinctrl-0 = <&uart0_pb_pins>;
195 status = "okay"; 178 status = "okay";
196}; 179};
197 180
diff --git a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
index a5ed9e4e22c6..1b639e5f9172 100644
--- a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
+++ b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
@@ -70,8 +70,6 @@
70}; 70};
71 71
72&i2c0 { 72&i2c0 {
73 pinctrl-names = "default";
74 pinctrl-0 = <&i2c0_pins_a>;
75 status = "okay"; 73 status = "okay";
76 74
77 axp209: pmic@34 { 75 axp209: pmic@34 {
@@ -86,18 +84,16 @@
86 84
87&ir0 { 85&ir0 {
88 pinctrl-names = "default"; 86 pinctrl-names = "default";
89 pinctrl-0 = <&ir0_rx_pins_a>; 87 pinctrl-0 = <&ir0_rx_pins>;
90 status = "okay"; 88 status = "okay";
91}; 89};
92 90
93&ir0_rx_pins_a { 91&ir0_rx_pins {
94 /* The ir receiver is not always populated */ 92 /* The ir receiver is not always populated */
95 bias-pull-up; 93 bias-pull-up;
96}; 94};
97 95
98&mmc0 { 96&mmc0 {
99 pinctrl-names = "default";
100 pinctrl-0 = <&mmc0_pins_a>;
101 vmmc-supply = <&reg_vcc3v3>; 97 vmmc-supply = <&reg_vcc3v3>;
102 bus-width = <4>; 98 bus-width = <4>;
103 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 99 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -132,7 +128,7 @@
132 128
133&uart0 { 129&uart0 {
134 pinctrl-names = "default"; 130 pinctrl-names = "default";
135 pinctrl-0 = <&uart0_pins_a>; 131 pinctrl-0 = <&uart0_pb_pins>;
136 status = "okay"; 132 status = "okay";
137}; 133};
138 134
diff --git a/arch/arm/boot/dts/sun4i-a10-mk802.dts b/arch/arm/boot/dts/sun4i-a10-mk802.dts
index 81db6824a2c7..7198b34e2e50 100644
--- a/arch/arm/boot/dts/sun4i-a10-mk802.dts
+++ b/arch/arm/boot/dts/sun4i-a10-mk802.dts
@@ -71,8 +71,6 @@
71}; 71};
72 72
73&mmc0 { 73&mmc0 {
74 pinctrl-names = "default";
75 pinctrl-0 = <&mmc0_pins_a>;
76 vmmc-supply = <&reg_vcc3v3>; 74 vmmc-supply = <&reg_vcc3v3>;
77 bus-width = <4>; 75 bus-width = <4>;
78 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 76 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -88,23 +86,6 @@
88 status = "okay"; 86 status = "okay";
89}; 87};
90 88
91&pio {
92 usb0_id_detect_pin: usb0_id_detect_pin@0 {
93 pins = "PH4";
94 function = "gpio_in";
95 };
96
97 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
98 pins = "PH5";
99 function = "gpio_in";
100 };
101
102 usb2_vbus_pin_mk802: usb2_vbus_pin@0 {
103 pins = "PH12";
104 function = "gpio_out";
105 };
106};
107
108&reg_usb0_vbus { 89&reg_usb0_vbus {
109 status = "okay"; 90 status = "okay";
110}; 91};
@@ -114,14 +95,13 @@
114}; 95};
115 96
116&reg_usb2_vbus { 97&reg_usb2_vbus {
117 pinctrl-0 = <&usb2_vbus_pin_mk802>;
118 gpio = <&pio 7 12 GPIO_ACTIVE_HIGH>; /* PH12 */ 98 gpio = <&pio 7 12 GPIO_ACTIVE_HIGH>; /* PH12 */
119 status = "okay"; 99 status = "okay";
120}; 100};
121 101
122&uart0 { 102&uart0 {
123 pinctrl-names = "default"; 103 pinctrl-names = "default";
124 pinctrl-0 = <&uart0_pins_a>; 104 pinctrl-0 = <&uart0_pb_pins>;
125 status = "okay"; 105 status = "okay";
126}; 106};
127 107
@@ -131,8 +111,6 @@
131}; 111};
132 112
133&usbphy { 113&usbphy {
134 pinctrl-names = "default";
135 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
136 usb0_id_det-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ 114 usb0_id_det-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
137 usb0_vbus_det-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */ 115 usb0_vbus_det-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
138 usb0_vbus-supply = <&reg_usb0_vbus>; 116 usb0_vbus-supply = <&reg_usb0_vbus>;
diff --git a/arch/arm/boot/dts/sun4i-a10-mk802ii.dts b/arch/arm/boot/dts/sun4i-a10-mk802ii.dts
index e74a881fd9a7..e460da2eb139 100644
--- a/arch/arm/boot/dts/sun4i-a10-mk802ii.dts
+++ b/arch/arm/boot/dts/sun4i-a10-mk802ii.dts
@@ -67,8 +67,6 @@
67}; 67};
68 68
69&i2c0 { 69&i2c0 {
70 pinctrl-names = "default";
71 pinctrl-0 = <&i2c0_pins_a>;
72 status = "okay"; 70 status = "okay";
73 71
74 axp209: pmic@34 { 72 axp209: pmic@34 {
@@ -82,8 +80,6 @@
82}; 80};
83 81
84&mmc0 { 82&mmc0 {
85 pinctrl-names = "default";
86 pinctrl-0 = <&mmc0_pins_a>;
87 vmmc-supply = <&reg_vcc3v3>; 83 vmmc-supply = <&reg_vcc3v3>;
88 bus-width = <4>; 84 bus-width = <4>;
89 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 85 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -105,7 +101,7 @@
105 101
106&uart0 { 102&uart0 {
107 pinctrl-names = "default"; 103 pinctrl-names = "default";
108 pinctrl-0 = <&uart0_pins_a>; 104 pinctrl-0 = <&uart0_pb_pins>;
109 status = "okay"; 105 status = "okay";
110}; 106};
111 107
diff --git a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
index 462412ee903c..49247fbe6acd 100644
--- a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
+++ b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
@@ -58,6 +58,17 @@
58 stdout-path = "serial0:115200n8"; 58 stdout-path = "serial0:115200n8";
59 }; 59 };
60 60
61 hdmi-connector {
62 compatible = "hdmi-connector";
63 type = "a";
64
65 port {
66 hdmi_con_in: endpoint {
67 remote-endpoint = <&hdmi_out_con>;
68 };
69 };
70 };
71
61 leds { 72 leds {
62 compatible = "gpio-leds"; 73 compatible = "gpio-leds";
63 pinctrl-names = "default"; 74 pinctrl-names = "default";
@@ -89,6 +100,10 @@
89 cooling-max-level = <2>; 100 cooling-max-level = <2>;
90}; 101};
91 102
103&de {
104 status = "okay";
105};
106
92&ehci0 { 107&ehci0 {
93 status = "okay"; 108 status = "okay";
94}; 109};
@@ -98,8 +113,6 @@
98}; 113};
99 114
100&emac { 115&emac {
101 pinctrl-names = "default";
102 pinctrl-0 = <&emac_pins_a>;
103 phy = <&phy1>; 116 phy = <&phy1>;
104 status = "okay"; 117 status = "okay";
105}; 118};
@@ -108,9 +121,17 @@
108 status = "okay"; 121 status = "okay";
109}; 122};
110 123
124&hdmi {
125 status = "okay";
126};
127
128&hdmi_out {
129 hdmi_out_con: endpoint {
130 remote-endpoint = <&hdmi_con_in>;
131 };
132};
133
111&i2c0 { 134&i2c0 {
112 pinctrl-names = "default";
113 pinctrl-0 = <&i2c0_pins_a>;
114 status = "okay"; 135 status = "okay";
115 136
116 axp209: pmic@34 { 137 axp209: pmic@34 {
@@ -124,8 +145,6 @@
124}; 145};
125 146
126&i2c1 { 147&i2c1 {
127 pinctrl-names = "default";
128 pinctrl-0 = <&i2c1_pins_a>;
129 status = "okay"; 148 status = "okay";
130 149
131 eeprom: eeprom@50 { 150 eeprom: eeprom@50 {
@@ -144,8 +163,6 @@
144}; 163};
145 164
146&mmc0 { 165&mmc0 {
147 pinctrl-names = "default";
148 pinctrl-0 = <&mmc0_pins_a>;
149 vmmc-supply = <&reg_vcc3v3>; 166 vmmc-supply = <&reg_vcc3v3>;
150 bus-width = <4>; 167 bus-width = <4>;
151 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 168 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -166,24 +183,19 @@
166}; 183};
167 184
168&pio { 185&pio {
169 ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 { 186 led_pins_olinuxinolime: led-pin {
170 pins = "PC3";
171 function = "gpio_out";
172 };
173
174 led_pins_olinuxinolime: led_pins@0 {
175 pins = "PH2"; 187 pins = "PH2";
176 function = "gpio_out"; 188 function = "gpio_out";
177 drive-strength = <20>; 189 drive-strength = <20>;
178 }; 190 };
179 191
180 usb0_id_detect_pin: usb0_id_detect_pin@0 { 192 usb0_id_detect_pin: usb0-id-detect-pin {
181 pins = "PH4"; 193 pins = "PH4";
182 function = "gpio_in"; 194 function = "gpio_in";
183 bias-pull-up; 195 bias-pull-up;
184 }; 196 };
185 197
186 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 198 usb0_vbus_detect_pin: usb0-vbus-detect-pin {
187 pins = "PH5"; 199 pins = "PH5";
188 function = "gpio_in"; 200 function = "gpio_in";
189 bias-pull-down; 201 bias-pull-down;
@@ -191,7 +203,6 @@
191}; 203};
192 204
193&reg_ahci_5v { 205&reg_ahci_5v {
194 pinctrl-0 = <&ahci_pwr_pin_olinuxinolime>;
195 gpio = <&pio 2 3 GPIO_ACTIVE_HIGH>; 206 gpio = <&pio 2 3 GPIO_ACTIVE_HIGH>;
196 status = "okay"; 207 status = "okay";
197}; 208};
@@ -210,7 +221,7 @@
210 221
211&uart0 { 222&uart0 {
212 pinctrl-names = "default"; 223 pinctrl-names = "default";
213 pinctrl-0 = <&uart0_pins_a>; 224 pinctrl-0 = <&uart0_pb_pins>;
214 status = "okay"; 225 status = "okay";
215}; 226};
216 227
diff --git a/arch/arm/boot/dts/sun4i-a10-pcduino.dts b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
index 84f55e76df0c..6e140547b638 100644
--- a/arch/arm/boot/dts/sun4i-a10-pcduino.dts
+++ b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
@@ -62,8 +62,6 @@
62 62
63 leds { 63 leds {
64 compatible = "gpio-leds"; 64 compatible = "gpio-leds";
65 pinctrl-names = "default";
66 pinctrl-0 = <&led_pins_pcduino>;
67 65
68 tx { 66 tx {
69 label = "pcduino:green:tx"; 67 label = "pcduino:green:tx";
@@ -76,26 +74,24 @@
76 }; 74 };
77 }; 75 };
78 76
79 gpio_keys { 77 gpio-keys {
80 compatible = "gpio-keys"; 78 compatible = "gpio-keys";
81 pinctrl-names = "default";
82 pinctrl-0 = <&key_pins_pcduino>;
83 #address-cells = <1>; 79 #address-cells = <1>;
84 #size-cells = <0>; 80 #size-cells = <0>;
85 81
86 button@0 { 82 back {
87 label = "Key Back"; 83 label = "Key Back";
88 linux,code = <KEY_BACK>; 84 linux,code = <KEY_BACK>;
89 gpios = <&pio 7 17 GPIO_ACTIVE_LOW>; 85 gpios = <&pio 7 17 GPIO_ACTIVE_LOW>;
90 }; 86 };
91 87
92 button@1 { 88 home {
93 label = "Key Home"; 89 label = "Key Home";
94 linux,code = <KEY_HOME>; 90 linux,code = <KEY_HOME>;
95 gpios = <&pio 7 18 GPIO_ACTIVE_LOW>; 91 gpios = <&pio 7 18 GPIO_ACTIVE_LOW>;
96 }; 92 };
97 93
98 button@2 { 94 menu {
99 label = "Key Menu"; 95 label = "Key Menu";
100 linux,code = <KEY_MENU>; 96 linux,code = <KEY_MENU>;
101 gpios = <&pio 7 19 GPIO_ACTIVE_LOW>; 97 gpios = <&pio 7 19 GPIO_ACTIVE_LOW>;
@@ -116,8 +112,6 @@
116}; 112};
117 113
118&emac { 114&emac {
119 pinctrl-names = "default";
120 pinctrl-0 = <&emac_pins_a>;
121 phy = <&phy1>; 115 phy = <&phy1>;
122 status = "okay"; 116 status = "okay";
123}; 117};
@@ -127,8 +121,6 @@
127}; 121};
128 122
129&i2c0 { 123&i2c0 {
130 pinctrl-names = "default";
131 pinctrl-0 = <&i2c0_pins_a>;
132 status = "okay"; 124 status = "okay";
133 125
134 axp209: pmic@34 { 126 axp209: pmic@34 {
@@ -146,8 +138,6 @@
146}; 138};
147 139
148&mmc0 { 140&mmc0 {
149 pinctrl-names = "default";
150 pinctrl-0 = <&mmc0_pins_a>;
151 vmmc-supply = <&reg_vcc3v3>; 141 vmmc-supply = <&reg_vcc3v3>;
152 bus-width = <4>; 142 bus-width = <4>;
153 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 143 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -168,17 +158,7 @@
168}; 158};
169 159
170&pio { 160&pio {
171 led_pins_pcduino: led_pins@0 { 161 usb0_id_detect_pin: usb0-id-detect-pin {
172 pins = "PH15", "PH16";
173 function = "gpio_out";
174 };
175
176 key_pins_pcduino: key_pins@0 {
177 pins = "PH17", "PH18", "PH19";
178 function = "gpio_in";
179 };
180
181 usb0_id_detect_pin: usb0_id_detect_pin@0 {
182 pins = "PH4"; 162 pins = "PH4";
183 function = "gpio_in"; 163 function = "gpio_in";
184 bias-pull-up; 164 bias-pull-up;
@@ -214,7 +194,7 @@
214 194
215&uart0 { 195&uart0 {
216 pinctrl-names = "default"; 196 pinctrl-names = "default";
217 pinctrl-0 = <&uart0_pins_a>; 197 pinctrl-0 = <&uart0_pb_pins>;
218 status = "okay"; 198 status = "okay";
219}; 199};
220 200
diff --git a/arch/arm/boot/dts/sun4i-a10-pcduino2.dts b/arch/arm/boot/dts/sun4i-a10-pcduino2.dts
index 811d00ee2ade..bc4f128965ed 100644
--- a/arch/arm/boot/dts/sun4i-a10-pcduino2.dts
+++ b/arch/arm/boot/dts/sun4i-a10-pcduino2.dts
@@ -55,16 +55,7 @@
55 compatible = "linksprite,a10-pcduino2", "allwinner,sun4i-a10"; 55 compatible = "linksprite,a10-pcduino2", "allwinner,sun4i-a10";
56}; 56};
57 57
58&pio {
59 usb2_vbus_pin_pcduino2: usb2_vbus_pin@0 {
60 pins = "PD2";
61 function = "gpio_out";
62 };
63};
64
65&reg_usb2_vbus { 58&reg_usb2_vbus {
66 pinctrl-names = "default";
67 pinctrl-0 = <&usb2_vbus_pin_pcduino2>;
68 gpio = <&pio 3 2 GPIO_ACTIVE_HIGH>; 59 gpio = <&pio 3 2 GPIO_ACTIVE_HIGH>;
69 status = "okay"; 60 status = "okay";
70}; 61};
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 c0f8c88b5a7d..5081303f79e7 100644
--- a/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts
+++ b/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts
@@ -58,8 +58,6 @@
58 58
59 backlight: backlight { 59 backlight: backlight {
60 compatible = "pwm-backlight"; 60 compatible = "pwm-backlight";
61 pinctrl-names = "default";
62 pinctrl-0 = <&bl_en_pin_protab>;
63 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>; 61 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
64 brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>; 62 brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
65 default-brightness-level = <8>; 63 default-brightness-level = <8>;
@@ -72,8 +70,6 @@
72}; 70};
73 71
74&codec { 72&codec {
75 pinctrl-names = "default";
76 pinctrl-0 = <&codec_pa_pin>;
77 allwinner,pa-gpios = <&pio 7 15 GPIO_ACTIVE_HIGH>; /* PH15 */ 73 allwinner,pa-gpios = <&pio 7 15 GPIO_ACTIVE_HIGH>; /* PH15 */
78 status = "okay"; 74 status = "okay";
79}; 75};
@@ -87,8 +83,6 @@
87}; 83};
88 84
89&i2c0 { 85&i2c0 {
90 pinctrl-names = "default";
91 pinctrl-0 = <&i2c0_pins_a>;
92 status = "okay"; 86 status = "okay";
93 87
94 axp209: pmic@34 { 88 axp209: pmic@34 {
@@ -100,20 +94,14 @@
100#include "axp209.dtsi" 94#include "axp209.dtsi"
101 95
102&i2c1 { 96&i2c1 {
103 pinctrl-names = "default";
104 pinctrl-0 = <&i2c1_pins_a>;
105 /* pull-ups and devices require AXP209 LDO3 */ 97 /* pull-ups and devices require AXP209 LDO3 */
106 status = "failed"; 98 status = "failed";
107}; 99};
108 100
109&i2c2 { 101&i2c2 {
110 pinctrl-names = "default";
111 pinctrl-0 = <&i2c2_pins_a>;
112 status = "okay"; 102 status = "okay";
113 103
114 pixcir_ts@5c { 104 touchscreen@5c {
115 pinctrl-names = "default";
116 pinctrl-0 = <&touchscreen_pins>;
117 compatible = "pixcir,pixcir_tangoc"; 105 compatible = "pixcir,pixcir_tangoc";
118 reg = <0x5c>; 106 reg = <0x5c>;
119 interrupt-parent = <&pio>; 107 interrupt-parent = <&pio>;
@@ -132,14 +120,14 @@
132 vref-supply = <&reg_ldo2>; 120 vref-supply = <&reg_ldo2>;
133 status = "okay"; 121 status = "okay";
134 122
135 button@400 { 123 button-400 {
136 label = "Volume Up"; 124 label = "Volume Up";
137 linux,code = <KEY_VOLUMEUP>; 125 linux,code = <KEY_VOLUMEUP>;
138 channel = <0>; 126 channel = <0>;
139 voltage = <400000>; 127 voltage = <400000>;
140 }; 128 };
141 129
142 button@800 { 130 button-800 {
143 label = "Volume Down"; 131 label = "Volume Down";
144 linux,code = <KEY_VOLUMEDOWN>; 132 linux,code = <KEY_VOLUMEDOWN>;
145 channel = <0>; 133 channel = <0>;
@@ -148,8 +136,6 @@
148}; 136};
149 137
150&mmc0 { 138&mmc0 {
151 pinctrl-names = "default";
152 pinctrl-0 = <&mmc0_pins_a>;
153 vmmc-supply = <&reg_vcc3v3>; 139 vmmc-supply = <&reg_vcc3v3>;
154 bus-width = <4>; 140 bus-width = <4>;
155 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 141 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
@@ -162,28 +148,13 @@
162}; 148};
163 149
164&pio { 150&pio {
165 bl_en_pin_protab: bl_en_pin@0 { 151 usb0_id_detect_pin: usb0-id-detect-pin {
166 pins = "PH7";
167 function = "gpio_out";
168 };
169
170 codec_pa_pin: codec_pa_pin@0 {
171 pins = "PH15";
172 function = "gpio_out";
173 };
174
175 touchscreen_pins: touchscreen_pins@0 {
176 pins = "PA5", "PB13";
177 function = "gpio_out";
178 };
179
180 usb0_id_detect_pin: usb0_id_detect_pin@0 {
181 pins = "PH4"; 152 pins = "PH4";
182 function = "gpio_in"; 153 function = "gpio_in";
183 bias-pull-up; 154 bias-pull-up;
184 }; 155 };
185 156
186 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 157 usb0_vbus_detect_pin: usb0-vbus-detect-pin {
187 pins = "PH5"; 158 pins = "PH5";
188 function = "gpio_in"; 159 function = "gpio_in";
189 bias-pull-down; 160 bias-pull-down;
@@ -192,7 +163,7 @@
192 163
193&pwm { 164&pwm {
194 pinctrl-names = "default"; 165 pinctrl-names = "default";
195 pinctrl-0 = <&pwm0_pins_a>; 166 pinctrl-0 = <&pwm0_pin>;
196 status = "okay"; 167 status = "okay";
197}; 168};
198 169
@@ -231,7 +202,7 @@
231 202
232&uart0 { 203&uart0 {
233 pinctrl-names = "default"; 204 pinctrl-names = "default";
234 pinctrl-0 = <&uart0_pins_a>; 205 pinctrl-0 = <&uart0_pb_pins>;
235 status = "okay"; 206 status = "okay";
236}; 207};
237 208
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
index 41c2579143fd..b91300d49a31 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -41,14 +41,14 @@
41 * OTHER DEALINGS IN THE SOFTWARE. 41 * OTHER DEALINGS IN THE SOFTWARE.
42 */ 42 */
43 43
44#include "skeleton.dtsi"
45
46#include <dt-bindings/thermal/thermal.h> 44#include <dt-bindings/thermal/thermal.h>
47
48#include <dt-bindings/clock/sun4i-a10-pll2.h>
49#include <dt-bindings/dma/sun4i-a10.h> 45#include <dt-bindings/dma/sun4i-a10.h>
46#include <dt-bindings/clock/sun4i-a10-ccu.h>
47#include <dt-bindings/reset/sun4i-a10-ccu.h>
50 48
51/ { 49/ {
50 #address-cells = <1>;
51 #size-cells = <1>;
52 interrupt-parent = <&intc>; 52 interrupt-parent = <&intc>;
53 53
54 aliases { 54 aliases {
@@ -60,46 +60,48 @@
60 #size-cells = <1>; 60 #size-cells = <1>;
61 ranges; 61 ranges;
62 62
63 framebuffer@0 { 63 framebuffer-lcd0-hdmi {
64 compatible = "allwinner,simple-framebuffer", 64 compatible = "allwinner,simple-framebuffer",
65 "simple-framebuffer"; 65 "simple-framebuffer";
66 allwinner,pipeline = "de_be0-lcd0-hdmi"; 66 allwinner,pipeline = "de_be0-lcd0-hdmi";
67 clocks = <&ahb_gates 36>, <&ahb_gates 43>, 67 clocks = <&ccu CLK_AHB_LCD0>, <&ccu CLK_AHB_HDMI0>,
68 <&ahb_gates 44>, <&de_be0_clk>, 68 <&ccu CLK_AHB_DE_BE0>, <&ccu CLK_DE_BE0>,
69 <&tcon0_ch1_clk>, <&dram_gates 26>; 69 <&ccu CLK_TCON0_CH1>, <&ccu CLK_DRAM_DE_BE0>;
70 status = "disabled"; 70 status = "disabled";
71 }; 71 };
72 72
73 framebuffer@1 { 73 framebuffer-fe0-lcd0-hdmi {
74 compatible = "allwinner,simple-framebuffer", 74 compatible = "allwinner,simple-framebuffer",
75 "simple-framebuffer"; 75 "simple-framebuffer";
76 allwinner,pipeline = "de_fe0-de_be0-lcd0-hdmi"; 76 allwinner,pipeline = "de_fe0-de_be0-lcd0-hdmi";
77 clocks = <&ahb_gates 36>, <&ahb_gates 43>, 77 clocks = <&ccu CLK_AHB_LCD0>, <&ccu CLK_AHB_HDMI0>,
78 <&ahb_gates 44>, <&ahb_gates 46>, 78 <&ccu CLK_AHB_DE_BE0>, <&ccu CLK_AHB_DE_FE0>,
79 <&de_be0_clk>, <&de_fe0_clk>, <&tcon0_ch1_clk>, 79 <&ccu CLK_DE_BE0>, <&ccu CLK_AHB_DE_FE0>,
80 <&dram_gates 25>, <&dram_gates 26>; 80 <&ccu CLK_TCON0_CH1>, <&ccu CLK_HDMI>,
81 <&ccu CLK_DRAM_DE_FE0>, <&ccu CLK_DRAM_DE_BE0>;
81 status = "disabled"; 82 status = "disabled";
82 }; 83 };
83 84
84 framebuffer@2 { 85 framebuffer-fe0-lcd0 {
85 compatible = "allwinner,simple-framebuffer", 86 compatible = "allwinner,simple-framebuffer",
86 "simple-framebuffer"; 87 "simple-framebuffer";
87 allwinner,pipeline = "de_fe0-de_be0-lcd0"; 88 allwinner,pipeline = "de_fe0-de_be0-lcd0";
88 clocks = <&ahb_gates 36>, <&ahb_gates 44>, <&ahb_gates 46>, 89 clocks = <&ccu CLK_AHB_LCD0>, <&ccu CLK_AHB_DE_BE0>,
89 <&de_be0_clk>, <&de_fe0_clk>, <&tcon0_ch0_clk>, 90 <&ccu CLK_AHB_DE_FE0>, <&ccu CLK_DE_BE0>,
90 <&dram_gates 25>, <&dram_gates 26>; 91 <&ccu CLK_AHB_DE_FE0>, <&ccu CLK_TCON0_CH0>,
92 <&ccu CLK_DRAM_DE_FE0>, <&ccu CLK_DRAM_DE_BE0>;
91 status = "disabled"; 93 status = "disabled";
92 }; 94 };
93 95
94 framebuffer@3 { 96 framebuffer-fe0-lcd0-tve0 {
95 compatible = "allwinner,simple-framebuffer", 97 compatible = "allwinner,simple-framebuffer",
96 "simple-framebuffer"; 98 "simple-framebuffer";
97 allwinner,pipeline = "de_fe0-de_be0-lcd0-tve0"; 99 allwinner,pipeline = "de_fe0-de_be0-lcd0-tve0";
98 clocks = <&ahb_gates 34>, <&ahb_gates 36>, 100 clocks = <&ccu CLK_AHB_TVE0>, <&ccu CLK_AHB_LCD0>,
99 <&ahb_gates 44>, <&ahb_gates 46>, 101 <&ccu CLK_AHB_DE_BE0>, <&ccu CLK_AHB_DE_FE0>,
100 <&de_be0_clk>, <&de_fe0_clk>, 102 <&ccu CLK_DE_BE0>, <&ccu CLK_AHB_DE_FE0>,
101 <&tcon0_ch1_clk>, <&dram_gates 5>, 103 <&ccu CLK_TCON0_CH1>, <&ccu CLK_DRAM_TVE0>,
102 <&dram_gates 25>, <&dram_gates 26>; 104 <&ccu CLK_DRAM_DE_FE0>, <&ccu CLK_DRAM_DE_BE0>;
103 status = "disabled"; 105 status = "disabled";
104 }; 106 };
105 }; 107 };
@@ -111,7 +113,7 @@
111 device_type = "cpu"; 113 device_type = "cpu";
112 compatible = "arm,cortex-a8"; 114 compatible = "arm,cortex-a8";
113 reg = <0x0>; 115 reg = <0x0>;
114 clocks = <&cpu>; 116 clocks = <&ccu CLK_CPU>;
115 clock-latency = <244144>; /* 8 32k periods */ 117 clock-latency = <244144>; /* 8 32k periods */
116 operating-points = < 118 operating-points = <
117 /* kHz uV */ 119 /* kHz uV */
@@ -127,7 +129,7 @@
127 }; 129 };
128 130
129 thermal-zones { 131 thermal-zones {
130 cpu_thermal { 132 cpu-thermal {
131 /* milliseconds */ 133 /* milliseconds */
132 polling-delay-passive = <250>; 134 polling-delay-passive = <250>;
133 polling-delay = <1000>; 135 polling-delay = <1000>;
@@ -141,14 +143,14 @@
141 }; 143 };
142 144
143 trips { 145 trips {
144 cpu_alert0: cpu_alert0 { 146 cpu_alert0: cpu-alert0 {
145 /* milliCelsius */ 147 /* milliCelsius */
146 temperature = <850000>; 148 temperature = <850000>;
147 hysteresis = <2000>; 149 hysteresis = <2000>;
148 type = "passive"; 150 type = "passive";
149 }; 151 };
150 152
151 cpu_crit: cpu_crit { 153 cpu_crit: cpu-crit {
152 /* milliCelsius */ 154 /* milliCelsius */
153 temperature = <100000>; 155 temperature = <100000>;
154 hysteresis = <2000>; 156 hysteresis = <2000>;
@@ -158,532 +160,46 @@
158 }; 160 };
159 }; 161 };
160 162
161 memory {
162 reg = <0x40000000 0x80000000>;
163 };
164
165 clocks { 163 clocks {
166 #address-cells = <1>; 164 #address-cells = <1>;
167 #size-cells = <1>; 165 #size-cells = <1>;
168 ranges; 166 ranges;
169 167
170 /* 168 osc24M: clk-24M {
171 * This is a dummy clock, to be used as placeholder on
172 * other mux clocks when a specific parent clock is not
173 * yet implemented. It should be dropped when the driver
174 * is complete.
175 */
176 dummy: dummy {
177 #clock-cells = <0>; 169 #clock-cells = <0>;
178 compatible = "fixed-clock"; 170 compatible = "fixed-clock";
179 clock-frequency = <0>;
180 };
181
182 osc24M: clk@01c20050 {
183 #clock-cells = <0>;
184 compatible = "allwinner,sun4i-a10-osc-clk";
185 reg = <0x01c20050 0x4>;
186 clock-frequency = <24000000>; 171 clock-frequency = <24000000>;
187 clock-output-names = "osc24M"; 172 clock-output-names = "osc24M";
188 }; 173 };
189 174
190 osc3M: osc3M_clk { 175 osc32k: clk-32k {
191 compatible = "fixed-factor-clock";
192 #clock-cells = <0>;
193 clock-div = <8>;
194 clock-mult = <1>;
195 clocks = <&osc24M>;
196 clock-output-names = "osc3M";
197 };
198
199 osc32k: clk@0 {
200 #clock-cells = <0>; 176 #clock-cells = <0>;
201 compatible = "fixed-clock"; 177 compatible = "fixed-clock";
202 clock-frequency = <32768>; 178 clock-frequency = <32768>;
203 clock-output-names = "osc32k"; 179 clock-output-names = "osc32k";
204 }; 180 };
181 };
205 182
206 pll1: clk@01c20000 { 183 de: display-engine {
207 #clock-cells = <0>; 184 compatible = "allwinner,sun4i-a10-display-engine";
208 compatible = "allwinner,sun4i-a10-pll1-clk"; 185 allwinner,pipelines = <&fe0>, <&fe1>;
209 reg = <0x01c20000 0x4>; 186 status = "disabled";
210 clocks = <&osc24M>;
211 clock-output-names = "pll1";
212 };
213
214 pll2: clk@01c20008 {
215 #clock-cells = <1>;
216 compatible = "allwinner,sun4i-a10-pll2-clk";
217 reg = <0x01c20008 0x8>;
218 clocks = <&osc24M>;
219 clock-output-names = "pll2-1x", "pll2-2x",
220 "pll2-4x", "pll2-8x";
221 };
222
223 pll3: clk@01c20010 {
224 #clock-cells = <0>;
225 compatible = "allwinner,sun4i-a10-pll3-clk";
226 reg = <0x01c20010 0x4>;
227 clocks = <&osc3M>;
228 clock-output-names = "pll3";
229 };
230
231 pll3x2: pll3x2_clk {
232 compatible = "fixed-factor-clock";
233 #clock-cells = <0>;
234 clock-div = <1>;
235 clock-mult = <2>;
236 clocks = <&pll3>;
237 clock-output-names = "pll3-2x";
238 };
239
240 pll4: clk@01c20018 {
241 #clock-cells = <0>;
242 compatible = "allwinner,sun4i-a10-pll1-clk";
243 reg = <0x01c20018 0x4>;
244 clocks = <&osc24M>;
245 clock-output-names = "pll4";
246 };
247
248 pll5: clk@01c20020 {
249 #clock-cells = <1>;
250 compatible = "allwinner,sun4i-a10-pll5-clk";
251 reg = <0x01c20020 0x4>;
252 clocks = <&osc24M>;
253 clock-output-names = "pll5_ddr", "pll5_other";
254 };
255
256 pll6: clk@01c20028 {
257 #clock-cells = <1>;
258 compatible = "allwinner,sun4i-a10-pll6-clk";
259 reg = <0x01c20028 0x4>;
260 clocks = <&osc24M>;
261 clock-output-names = "pll6_sata", "pll6_other", "pll6";
262 };
263
264 pll7: clk@01c20030 {
265 #clock-cells = <0>;
266 compatible = "allwinner,sun4i-a10-pll3-clk";
267 reg = <0x01c20030 0x4>;
268 clocks = <&osc3M>;
269 clock-output-names = "pll7";
270 };
271
272 pll7x2: pll7x2_clk {
273 compatible = "fixed-factor-clock";
274 #clock-cells = <0>;
275 clock-div = <1>;
276 clock-mult = <2>;
277 clocks = <&pll7>;
278 clock-output-names = "pll7-2x";
279 };
280
281 /* dummy is 200M */
282 cpu: cpu@01c20054 {
283 #clock-cells = <0>;
284 compatible = "allwinner,sun4i-a10-cpu-clk";
285 reg = <0x01c20054 0x4>;
286 clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>;
287 clock-output-names = "cpu";
288 };
289
290 axi: axi@01c20054 {
291 #clock-cells = <0>;
292 compatible = "allwinner,sun4i-a10-axi-clk";
293 reg = <0x01c20054 0x4>;
294 clocks = <&cpu>;
295 clock-output-names = "axi";
296 };
297
298 axi_gates: clk@01c2005c {
299 #clock-cells = <1>;
300 compatible = "allwinner,sun4i-a10-axi-gates-clk";
301 reg = <0x01c2005c 0x4>;
302 clocks = <&axi>;
303 clock-indices = <0>;
304 clock-output-names = "axi_dram";
305 };
306
307 ahb: ahb@01c20054 {
308 #clock-cells = <0>;
309 compatible = "allwinner,sun4i-a10-ahb-clk";
310 reg = <0x01c20054 0x4>;
311 clocks = <&axi>;
312 clock-output-names = "ahb";
313 };
314
315 ahb_gates: clk@01c20060 {
316 #clock-cells = <1>;
317 compatible = "allwinner,sun4i-a10-ahb-gates-clk";
318 reg = <0x01c20060 0x8>;
319 clocks = <&ahb>;
320 clock-indices = <0>, <1>,
321 <2>, <3>,
322 <4>, <5>, <6>,
323 <7>, <8>, <9>,
324 <10>, <11>, <12>,
325 <13>, <14>, <16>,
326 <17>, <18>, <20>,
327 <21>, <22>, <23>,
328 <24>, <25>, <26>,
329 <32>, <33>, <34>,
330 <35>, <36>, <37>,
331 <40>, <41>, <43>,
332 <44>, <45>,
333 <46>, <47>,
334 <50>, <52>;
335 clock-output-names = "ahb_usb0", "ahb_ehci0",
336 "ahb_ohci0", "ahb_ehci1",
337 "ahb_ohci1", "ahb_ss", "ahb_dma",
338 "ahb_bist", "ahb_mmc0", "ahb_mmc1",
339 "ahb_mmc2", "ahb_mmc3", "ahb_ms",
340 "ahb_nand", "ahb_sdram", "ahb_ace",
341 "ahb_emac", "ahb_ts", "ahb_spi0",
342 "ahb_spi1", "ahb_spi2", "ahb_spi3",
343 "ahb_pata", "ahb_sata", "ahb_gps",
344 "ahb_ve", "ahb_tvd", "ahb_tve0",
345 "ahb_tve1", "ahb_lcd0", "ahb_lcd1",
346 "ahb_csi0", "ahb_csi1", "ahb_hdmi",
347 "ahb_de_be0", "ahb_de_be1",
348 "ahb_de_fe0", "ahb_de_fe1",
349 "ahb_mp", "ahb_mali400";
350 };
351
352 apb0: apb0@01c20054 {
353 #clock-cells = <0>;
354 compatible = "allwinner,sun4i-a10-apb0-clk";
355 reg = <0x01c20054 0x4>;
356 clocks = <&ahb>;
357 clock-output-names = "apb0";
358 };
359
360 apb0_gates: clk@01c20068 {
361 #clock-cells = <1>;
362 compatible = "allwinner,sun4i-a10-apb0-gates-clk";
363 reg = <0x01c20068 0x4>;
364 clocks = <&apb0>;
365 clock-indices = <0>, <1>,
366 <2>, <3>,
367 <5>, <6>,
368 <7>, <10>;
369 clock-output-names = "apb0_codec", "apb0_spdif",
370 "apb0_ac97", "apb0_iis",
371 "apb0_pio", "apb0_ir0",
372 "apb0_ir1", "apb0_keypad";
373 };
374
375 apb1: clk@01c20058 {
376 #clock-cells = <0>;
377 compatible = "allwinner,sun4i-a10-apb1-clk";
378 reg = <0x01c20058 0x4>;
379 clocks = <&osc24M>, <&pll6 1>, <&osc32k>;
380 clock-output-names = "apb1";
381 };
382
383 apb1_gates: clk@01c2006c {
384 #clock-cells = <1>;
385 compatible = "allwinner,sun4i-a10-apb1-gates-clk";
386 reg = <0x01c2006c 0x4>;
387 clocks = <&apb1>;
388 clock-indices = <0>, <1>,
389 <2>, <4>,
390 <5>, <6>,
391 <7>, <16>,
392 <17>, <18>,
393 <19>, <20>,
394 <21>, <22>,
395 <23>;
396 clock-output-names = "apb1_i2c0", "apb1_i2c1",
397 "apb1_i2c2", "apb1_can",
398 "apb1_scr", "apb1_ps20",
399 "apb1_ps21", "apb1_uart0",
400 "apb1_uart1", "apb1_uart2",
401 "apb1_uart3", "apb1_uart4",
402 "apb1_uart5", "apb1_uart6",
403 "apb1_uart7";
404 };
405
406 nand_clk: clk@01c20080 {
407 #clock-cells = <0>;
408 compatible = "allwinner,sun4i-a10-mod0-clk";
409 reg = <0x01c20080 0x4>;
410 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
411 clock-output-names = "nand";
412 };
413
414 ms_clk: clk@01c20084 {
415 #clock-cells = <0>;
416 compatible = "allwinner,sun4i-a10-mod0-clk";
417 reg = <0x01c20084 0x4>;
418 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
419 clock-output-names = "ms";
420 };
421
422 mmc0_clk: clk@01c20088 {
423 #clock-cells = <1>;
424 compatible = "allwinner,sun4i-a10-mmc-clk";
425 reg = <0x01c20088 0x4>;
426 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
427 clock-output-names = "mmc0",
428 "mmc0_output",
429 "mmc0_sample";
430 };
431
432 mmc1_clk: clk@01c2008c {
433 #clock-cells = <1>;
434 compatible = "allwinner,sun4i-a10-mmc-clk";
435 reg = <0x01c2008c 0x4>;
436 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
437 clock-output-names = "mmc1",
438 "mmc1_output",
439 "mmc1_sample";
440 };
441
442 mmc2_clk: clk@01c20090 {
443 #clock-cells = <1>;
444 compatible = "allwinner,sun4i-a10-mmc-clk";
445 reg = <0x01c20090 0x4>;
446 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
447 clock-output-names = "mmc2",
448 "mmc2_output",
449 "mmc2_sample";
450 };
451
452 mmc3_clk: clk@01c20094 {
453 #clock-cells = <1>;
454 compatible = "allwinner,sun4i-a10-mmc-clk";
455 reg = <0x01c20094 0x4>;
456 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
457 clock-output-names = "mmc3",
458 "mmc3_output",
459 "mmc3_sample";
460 };
461
462 ts_clk: clk@01c20098 {
463 #clock-cells = <0>;
464 compatible = "allwinner,sun4i-a10-mod0-clk";
465 reg = <0x01c20098 0x4>;
466 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
467 clock-output-names = "ts";
468 };
469
470 ss_clk: clk@01c2009c {
471 #clock-cells = <0>;
472 compatible = "allwinner,sun4i-a10-mod0-clk";
473 reg = <0x01c2009c 0x4>;
474 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
475 clock-output-names = "ss";
476 };
477
478 spi0_clk: clk@01c200a0 {
479 #clock-cells = <0>;
480 compatible = "allwinner,sun4i-a10-mod0-clk";
481 reg = <0x01c200a0 0x4>;
482 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
483 clock-output-names = "spi0";
484 };
485
486 spi1_clk: clk@01c200a4 {
487 #clock-cells = <0>;
488 compatible = "allwinner,sun4i-a10-mod0-clk";
489 reg = <0x01c200a4 0x4>;
490 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
491 clock-output-names = "spi1";
492 };
493
494 spi2_clk: clk@01c200a8 {
495 #clock-cells = <0>;
496 compatible = "allwinner,sun4i-a10-mod0-clk";
497 reg = <0x01c200a8 0x4>;
498 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
499 clock-output-names = "spi2";
500 };
501
502 pata_clk: clk@01c200ac {
503 #clock-cells = <0>;
504 compatible = "allwinner,sun4i-a10-mod0-clk";
505 reg = <0x01c200ac 0x4>;
506 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
507 clock-output-names = "pata";
508 };
509
510 ir0_clk: clk@01c200b0 {
511 #clock-cells = <0>;
512 compatible = "allwinner,sun4i-a10-mod0-clk";
513 reg = <0x01c200b0 0x4>;
514 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
515 clock-output-names = "ir0";
516 };
517
518 ir1_clk: clk@01c200b4 {
519 #clock-cells = <0>;
520 compatible = "allwinner,sun4i-a10-mod0-clk";
521 reg = <0x01c200b4 0x4>;
522 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
523 clock-output-names = "ir1";
524 };
525
526 spdif_clk: clk@01c200c0 {
527 #clock-cells = <0>;
528 compatible = "allwinner,sun4i-a10-mod1-clk";
529 reg = <0x01c200c0 0x4>;
530 clocks = <&pll2 SUN4I_A10_PLL2_8X>,
531 <&pll2 SUN4I_A10_PLL2_4X>,
532 <&pll2 SUN4I_A10_PLL2_2X>,
533 <&pll2 SUN4I_A10_PLL2_1X>;
534 clock-output-names = "spdif";
535 };
536
537 usb_clk: clk@01c200cc {
538 #clock-cells = <1>;
539 #reset-cells = <1>;
540 compatible = "allwinner,sun4i-a10-usb-clk";
541 reg = <0x01c200cc 0x4>;
542 clocks = <&pll6 1>;
543 clock-output-names = "usb_ohci0", "usb_ohci1",
544 "usb_phy";
545 };
546
547 spi3_clk: clk@01c200d4 {
548 #clock-cells = <0>;
549 compatible = "allwinner,sun4i-a10-mod0-clk";
550 reg = <0x01c200d4 0x4>;
551 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
552 clock-output-names = "spi3";
553 };
554
555 dram_gates: clk@01c20100 {
556 #clock-cells = <1>;
557 compatible = "allwinner,sun4i-a10-dram-gates-clk";
558 reg = <0x01c20100 0x4>;
559 clocks = <&pll5 0>;
560 clock-indices = <0>,
561 <1>, <2>,
562 <3>,
563 <4>,
564 <5>, <6>,
565 <15>,
566 <24>, <25>,
567 <26>, <27>,
568 <28>, <29>;
569 clock-output-names = "dram_ve",
570 "dram_csi0", "dram_csi1",
571 "dram_ts",
572 "dram_tvd",
573 "dram_tve0", "dram_tve1",
574 "dram_output",
575 "dram_de_fe1", "dram_de_fe0",
576 "dram_de_be0", "dram_de_be1",
577 "dram_de_mp", "dram_ace";
578 };
579
580 de_be0_clk: clk@01c20104 {
581 #clock-cells = <0>;
582 #reset-cells = <0>;
583 compatible = "allwinner,sun4i-a10-display-clk";
584 reg = <0x01c20104 0x4>;
585 clocks = <&pll3>, <&pll7>, <&pll5 1>;
586 clock-output-names = "de-be0";
587 };
588
589 de_be1_clk: clk@01c20108 {
590 #clock-cells = <0>;
591 #reset-cells = <0>;
592 compatible = "allwinner,sun4i-a10-display-clk";
593 reg = <0x01c20108 0x4>;
594 clocks = <&pll3>, <&pll7>, <&pll5 1>;
595 clock-output-names = "de-be1";
596 };
597
598 de_fe0_clk: clk@01c2010c {
599 #clock-cells = <0>;
600 #reset-cells = <0>;
601 compatible = "allwinner,sun4i-a10-display-clk";
602 reg = <0x01c2010c 0x4>;
603 clocks = <&pll3>, <&pll7>, <&pll5 1>;
604 clock-output-names = "de-fe0";
605 };
606
607 de_fe1_clk: clk@01c20110 {
608 #clock-cells = <0>;
609 #reset-cells = <0>;
610 compatible = "allwinner,sun4i-a10-display-clk";
611 reg = <0x01c20110 0x4>;
612 clocks = <&pll3>, <&pll7>, <&pll5 1>;
613 clock-output-names = "de-fe1";
614 };
615
616
617 tcon0_ch0_clk: clk@01c20118 {
618 #clock-cells = <0>;
619 #reset-cells = <1>;
620 compatible = "allwinner,sun4i-a10-tcon-ch0-clk";
621 reg = <0x01c20118 0x4>;
622 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
623 clock-output-names = "tcon0-ch0-sclk";
624
625 };
626
627 tcon1_ch0_clk: clk@01c2011c {
628 #clock-cells = <0>;
629 #reset-cells = <1>;
630 compatible = "allwinner,sun4i-a10-tcon-ch1-clk";
631 reg = <0x01c2011c 0x4>;
632 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
633 clock-output-names = "tcon1-ch0-sclk";
634
635 };
636
637 tcon0_ch1_clk: clk@01c2012c {
638 #clock-cells = <0>;
639 compatible = "allwinner,sun4i-a10-tcon-ch0-clk";
640 reg = <0x01c2012c 0x4>;
641 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
642 clock-output-names = "tcon0-ch1-sclk";
643
644 };
645
646 tcon1_ch1_clk: clk@01c20130 {
647 #clock-cells = <0>;
648 compatible = "allwinner,sun4i-a10-tcon-ch1-clk";
649 reg = <0x01c20130 0x4>;
650 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
651 clock-output-names = "tcon1-ch1-sclk";
652
653 };
654
655 ve_clk: clk@01c2013c {
656 #clock-cells = <0>;
657 #reset-cells = <0>;
658 compatible = "allwinner,sun4i-a10-ve-clk";
659 reg = <0x01c2013c 0x4>;
660 clocks = <&pll4>;
661 clock-output-names = "ve";
662 };
663
664 codec_clk: clk@01c20140 {
665 #clock-cells = <0>;
666 compatible = "allwinner,sun4i-a10-codec-clk";
667 reg = <0x01c20140 0x4>;
668 clocks = <&pll2 SUN4I_A10_PLL2_1X>;
669 clock-output-names = "codec";
670 };
671 }; 187 };
672 188
673 soc@01c00000 { 189 soc {
674 compatible = "simple-bus"; 190 compatible = "simple-bus";
675 #address-cells = <1>; 191 #address-cells = <1>;
676 #size-cells = <1>; 192 #size-cells = <1>;
677 ranges; 193 ranges;
678 194
679 sram-controller@01c00000 { 195 sram-controller@1c00000 {
680 compatible = "allwinner,sun4i-a10-sram-controller"; 196 compatible = "allwinner,sun4i-a10-sram-controller";
681 reg = <0x01c00000 0x30>; 197 reg = <0x01c00000 0x30>;
682 #address-cells = <1>; 198 #address-cells = <1>;
683 #size-cells = <1>; 199 #size-cells = <1>;
684 ranges; 200 ranges;
685 201
686 sram_a: sram@00000000 { 202 sram_a: sram@0 {
687 compatible = "mmio-sram"; 203 compatible = "mmio-sram";
688 reg = <0x00000000 0xc000>; 204 reg = <0x00000000 0xc000>;
689 #address-cells = <1>; 205 #address-cells = <1>;
@@ -697,14 +213,14 @@
697 }; 213 };
698 }; 214 };
699 215
700 sram_d: sram@00010000 { 216 sram_d: sram@10000 {
701 compatible = "mmio-sram"; 217 compatible = "mmio-sram";
702 reg = <0x00010000 0x1000>; 218 reg = <0x00010000 0x1000>;
703 #address-cells = <1>; 219 #address-cells = <1>;
704 #size-cells = <1>; 220 #size-cells = <1>;
705 ranges = <0 0x00010000 0x1000>; 221 ranges = <0 0x00010000 0x1000>;
706 222
707 otg_sram: sram-section@0000 { 223 otg_sram: sram-section@0 {
708 compatible = "allwinner,sun4i-a10-sram-d"; 224 compatible = "allwinner,sun4i-a10-sram-d";
709 reg = <0x0000 0x1000>; 225 reg = <0x0000 0x1000>;
710 status = "disabled"; 226 status = "disabled";
@@ -712,19 +228,19 @@
712 }; 228 };
713 }; 229 };
714 230
715 dma: dma-controller@01c02000 { 231 dma: dma-controller@1c02000 {
716 compatible = "allwinner,sun4i-a10-dma"; 232 compatible = "allwinner,sun4i-a10-dma";
717 reg = <0x01c02000 0x1000>; 233 reg = <0x01c02000 0x1000>;
718 interrupts = <27>; 234 interrupts = <27>;
719 clocks = <&ahb_gates 6>; 235 clocks = <&ccu CLK_AHB_DMA>;
720 #dma-cells = <2>; 236 #dma-cells = <2>;
721 }; 237 };
722 238
723 nfc: nand@01c03000 { 239 nfc: nand@1c03000 {
724 compatible = "allwinner,sun4i-a10-nand"; 240 compatible = "allwinner,sun4i-a10-nand";
725 reg = <0x01c03000 0x1000>; 241 reg = <0x01c03000 0x1000>;
726 interrupts = <37>; 242 interrupts = <37>;
727 clocks = <&ahb_gates 13>, <&nand_clk>; 243 clocks = <&ccu CLK_AHB_NAND>, <&ccu CLK_NAND>;
728 clock-names = "ahb", "mod"; 244 clock-names = "ahb", "mod";
729 dmas = <&dma SUN4I_DMA_DEDICATED 3>; 245 dmas = <&dma SUN4I_DMA_DEDICATED 3>;
730 dma-names = "rxtx"; 246 dma-names = "rxtx";
@@ -733,11 +249,11 @@
733 #size-cells = <0>; 249 #size-cells = <0>;
734 }; 250 };
735 251
736 spi0: spi@01c05000 { 252 spi0: spi@1c05000 {
737 compatible = "allwinner,sun4i-a10-spi"; 253 compatible = "allwinner,sun4i-a10-spi";
738 reg = <0x01c05000 0x1000>; 254 reg = <0x01c05000 0x1000>;
739 interrupts = <10>; 255 interrupts = <10>;
740 clocks = <&ahb_gates 20>, <&spi0_clk>; 256 clocks = <&ccu CLK_AHB_SPI0>, <&ccu CLK_SPI0>;
741 clock-names = "ahb", "mod"; 257 clock-names = "ahb", "mod";
742 dmas = <&dma SUN4I_DMA_DEDICATED 27>, 258 dmas = <&dma SUN4I_DMA_DEDICATED 27>,
743 <&dma SUN4I_DMA_DEDICATED 26>; 259 <&dma SUN4I_DMA_DEDICATED 26>;
@@ -747,30 +263,34 @@
747 #size-cells = <0>; 263 #size-cells = <0>;
748 }; 264 };
749 265
750 spi1: spi@01c06000 { 266 spi1: spi@1c06000 {
751 compatible = "allwinner,sun4i-a10-spi"; 267 compatible = "allwinner,sun4i-a10-spi";
752 reg = <0x01c06000 0x1000>; 268 reg = <0x01c06000 0x1000>;
753 interrupts = <11>; 269 interrupts = <11>;
754 clocks = <&ahb_gates 21>, <&spi1_clk>; 270 clocks = <&ccu CLK_AHB_SPI1>, <&ccu CLK_SPI1>;
755 clock-names = "ahb", "mod"; 271 clock-names = "ahb", "mod";
756 dmas = <&dma SUN4I_DMA_DEDICATED 9>, 272 dmas = <&dma SUN4I_DMA_DEDICATED 9>,
757 <&dma SUN4I_DMA_DEDICATED 8>; 273 <&dma SUN4I_DMA_DEDICATED 8>;
758 dma-names = "rx", "tx"; 274 dma-names = "rx", "tx";
275 pinctrl-names = "default";
276 pinctrl-0 = <&spi1_pins>, <&spi1_cs0_pin>;
759 status = "disabled"; 277 status = "disabled";
760 #address-cells = <1>; 278 #address-cells = <1>;
761 #size-cells = <0>; 279 #size-cells = <0>;
762 }; 280 };
763 281
764 emac: ethernet@01c0b000 { 282 emac: ethernet@1c0b000 {
765 compatible = "allwinner,sun4i-a10-emac"; 283 compatible = "allwinner,sun4i-a10-emac";
766 reg = <0x01c0b000 0x1000>; 284 reg = <0x01c0b000 0x1000>;
767 interrupts = <55>; 285 interrupts = <55>;
768 clocks = <&ahb_gates 17>; 286 clocks = <&ccu CLK_AHB_EMAC>;
769 allwinner,sram = <&emac_sram 1>; 287 allwinner,sram = <&emac_sram 1>;
288 pinctrl-names = "default";
289 pinctrl-0 = <&emac_pins>;
770 status = "disabled"; 290 status = "disabled";
771 }; 291 };
772 292
773 mdio: mdio@01c0b080 { 293 mdio: mdio@1c0b080 {
774 compatible = "allwinner,sun4i-a10-mdio"; 294 compatible = "allwinner,sun4i-a10-mdio";
775 reg = <0x01c0b080 0x14>; 295 reg = <0x01c0b080 0x14>;
776 status = "disabled"; 296 status = "disabled";
@@ -778,78 +298,154 @@
778 #size-cells = <0>; 298 #size-cells = <0>;
779 }; 299 };
780 300
781 mmc0: mmc@01c0f000 { 301 tcon0: lcd-controller@1c0c000 {
302 compatible = "allwinner,sun4i-a10-tcon";
303 reg = <0x01c0c000 0x1000>;
304 interrupts = <44>;
305 resets = <&ccu RST_TCON0>;
306 reset-names = "lcd";
307 clocks = <&ccu CLK_AHB_LCD0>,
308 <&ccu CLK_TCON0_CH0>,
309 <&ccu CLK_TCON0_CH1>;
310 clock-names = "ahb",
311 "tcon-ch0",
312 "tcon-ch1";
313 clock-output-names = "tcon0-pixel-clock";
314 dmas = <&dma SUN4I_DMA_DEDICATED 14>;
315
316 ports {
317 #address-cells = <1>;
318 #size-cells = <0>;
319
320 tcon0_in: port@0 {
321 #address-cells = <1>;
322 #size-cells = <0>;
323 reg = <0>;
324
325 tcon0_in_be0: endpoint@0 {
326 reg = <0>;
327 remote-endpoint = <&be0_out_tcon0>;
328 };
329
330 tcon0_in_be1: endpoint@1 {
331 reg = <1>;
332 remote-endpoint = <&be1_out_tcon0>;
333 };
334 };
335
336 tcon0_out: port@1 {
337 #address-cells = <1>;
338 #size-cells = <0>;
339 reg = <1>;
340
341 tcon0_out_hdmi: endpoint@1 {
342 reg = <1>;
343 remote-endpoint = <&hdmi_in_tcon0>;
344 allwinner,tcon-channel = <1>;
345 };
346 };
347 };
348 };
349
350 tcon1: lcd-controller@1c0d000 {
351 compatible = "allwinner,sun4i-a10-tcon";
352 reg = <0x01c0d000 0x1000>;
353 interrupts = <45>;
354 resets = <&ccu RST_TCON1>;
355 reset-names = "lcd";
356 clocks = <&ccu CLK_AHB_LCD1>,
357 <&ccu CLK_TCON1_CH0>,
358 <&ccu CLK_TCON1_CH1>;
359 clock-names = "ahb",
360 "tcon-ch0",
361 "tcon-ch1";
362 clock-output-names = "tcon1-pixel-clock";
363 dmas = <&dma SUN4I_DMA_DEDICATED 15>;
364
365 ports {
366 #address-cells = <1>;
367 #size-cells = <0>;
368
369 tcon1_in: port@0 {
370 #address-cells = <1>;
371 #size-cells = <0>;
372 reg = <0>;
373
374 tcon1_in_be0: endpoint@0 {
375 reg = <0>;
376 remote-endpoint = <&be0_out_tcon1>;
377 };
378
379 tcon1_in_be1: endpoint@1 {
380 reg = <1>;
381 remote-endpoint = <&be1_out_tcon1>;
382 };
383 };
384
385 tcon1_out: port@1 {
386 #address-cells = <1>;
387 #size-cells = <0>;
388 reg = <1>;
389
390 tcon1_out_hdmi: endpoint@1 {
391 reg = <1>;
392 remote-endpoint = <&hdmi_in_tcon1>;
393 allwinner,tcon-channel = <1>;
394 };
395 };
396 };
397 };
398
399 mmc0: mmc@1c0f000 {
782 compatible = "allwinner,sun4i-a10-mmc"; 400 compatible = "allwinner,sun4i-a10-mmc";
783 reg = <0x01c0f000 0x1000>; 401 reg = <0x01c0f000 0x1000>;
784 clocks = <&ahb_gates 8>, 402 clocks = <&ccu CLK_AHB_MMC0>, <&ccu CLK_MMC0>;
785 <&mmc0_clk 0>, 403 clock-names = "ahb", "mmc";
786 <&mmc0_clk 1>,
787 <&mmc0_clk 2>;
788 clock-names = "ahb",
789 "mmc",
790 "output",
791 "sample";
792 interrupts = <32>; 404 interrupts = <32>;
405 pinctrl-names = "default";
406 pinctrl-0 = <&mmc0_pins>;
793 status = "disabled"; 407 status = "disabled";
794 #address-cells = <1>; 408 #address-cells = <1>;
795 #size-cells = <0>; 409 #size-cells = <0>;
796 }; 410 };
797 411
798 mmc1: mmc@01c10000 { 412 mmc1: mmc@1c10000 {
799 compatible = "allwinner,sun4i-a10-mmc"; 413 compatible = "allwinner,sun4i-a10-mmc";
800 reg = <0x01c10000 0x1000>; 414 reg = <0x01c10000 0x1000>;
801 clocks = <&ahb_gates 9>, 415 clocks = <&ccu CLK_AHB_MMC1>, <&ccu CLK_MMC1>;
802 <&mmc1_clk 0>, 416 clock-names = "ahb", "mmc";
803 <&mmc1_clk 1>,
804 <&mmc1_clk 2>;
805 clock-names = "ahb",
806 "mmc",
807 "output",
808 "sample";
809 interrupts = <33>; 417 interrupts = <33>;
810 status = "disabled"; 418 status = "disabled";
811 #address-cells = <1>; 419 #address-cells = <1>;
812 #size-cells = <0>; 420 #size-cells = <0>;
813 }; 421 };
814 422
815 mmc2: mmc@01c11000 { 423 mmc2: mmc@1c11000 {
816 compatible = "allwinner,sun4i-a10-mmc"; 424 compatible = "allwinner,sun4i-a10-mmc";
817 reg = <0x01c11000 0x1000>; 425 reg = <0x01c11000 0x1000>;
818 clocks = <&ahb_gates 10>, 426 clocks = <&ccu CLK_AHB_MMC2>, <&ccu CLK_MMC2>;
819 <&mmc2_clk 0>, 427 clock-names = "ahb", "mmc";
820 <&mmc2_clk 1>,
821 <&mmc2_clk 2>;
822 clock-names = "ahb",
823 "mmc",
824 "output",
825 "sample";
826 interrupts = <34>; 428 interrupts = <34>;
827 status = "disabled"; 429 status = "disabled";
828 #address-cells = <1>; 430 #address-cells = <1>;
829 #size-cells = <0>; 431 #size-cells = <0>;
830 }; 432 };
831 433
832 mmc3: mmc@01c12000 { 434 mmc3: mmc@1c12000 {
833 compatible = "allwinner,sun4i-a10-mmc"; 435 compatible = "allwinner,sun4i-a10-mmc";
834 reg = <0x01c12000 0x1000>; 436 reg = <0x01c12000 0x1000>;
835 clocks = <&ahb_gates 11>, 437 clocks = <&ccu CLK_AHB_MMC3>, <&ccu CLK_MMC3>;
836 <&mmc3_clk 0>, 438 clock-names = "ahb", "mmc";
837 <&mmc3_clk 1>,
838 <&mmc3_clk 2>;
839 clock-names = "ahb",
840 "mmc",
841 "output",
842 "sample";
843 interrupts = <35>; 439 interrupts = <35>;
844 status = "disabled"; 440 status = "disabled";
845 #address-cells = <1>; 441 #address-cells = <1>;
846 #size-cells = <0>; 442 #size-cells = <0>;
847 }; 443 };
848 444
849 usb_otg: usb@01c13000 { 445 usb_otg: usb@1c13000 {
850 compatible = "allwinner,sun4i-a10-musb"; 446 compatible = "allwinner,sun4i-a10-musb";
851 reg = <0x01c13000 0x0400>; 447 reg = <0x01c13000 0x0400>;
852 clocks = <&ahb_gates 0>; 448 clocks = <&ccu CLK_AHB_OTG>;
853 interrupts = <38>; 449 interrupts = <38>;
854 interrupt-names = "mc"; 450 interrupt-names = "mc";
855 phys = <&usbphy 0>; 451 phys = <&usbphy 0>;
@@ -859,51 +455,95 @@
859 status = "disabled"; 455 status = "disabled";
860 }; 456 };
861 457
862 usbphy: phy@01c13400 { 458 usbphy: phy@1c13400 {
863 #phy-cells = <1>; 459 #phy-cells = <1>;
864 compatible = "allwinner,sun4i-a10-usb-phy"; 460 compatible = "allwinner,sun4i-a10-usb-phy";
865 reg = <0x01c13400 0x10 0x01c14800 0x4 0x01c1c800 0x4>; 461 reg = <0x01c13400 0x10 0x01c14800 0x4 0x01c1c800 0x4>;
866 reg-names = "phy_ctrl", "pmu1", "pmu2"; 462 reg-names = "phy_ctrl", "pmu1", "pmu2";
867 clocks = <&usb_clk 8>; 463 clocks = <&ccu CLK_USB_PHY>;
868 clock-names = "usb_phy"; 464 clock-names = "usb_phy";
869 resets = <&usb_clk 0>, <&usb_clk 1>, <&usb_clk 2>; 465 resets = <&ccu RST_USB_PHY0>,
466 <&ccu RST_USB_PHY1>,
467 <&ccu RST_USB_PHY2>;
870 reset-names = "usb0_reset", "usb1_reset", "usb2_reset"; 468 reset-names = "usb0_reset", "usb1_reset", "usb2_reset";
871 status = "disabled"; 469 status = "disabled";
872 }; 470 };
873 471
874 ehci0: usb@01c14000 { 472 ehci0: usb@1c14000 {
875 compatible = "allwinner,sun4i-a10-ehci", "generic-ehci"; 473 compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
876 reg = <0x01c14000 0x100>; 474 reg = <0x01c14000 0x100>;
877 interrupts = <39>; 475 interrupts = <39>;
878 clocks = <&ahb_gates 1>; 476 clocks = <&ccu CLK_AHB_EHCI0>;
879 phys = <&usbphy 1>; 477 phys = <&usbphy 1>;
880 phy-names = "usb"; 478 phy-names = "usb";
881 status = "disabled"; 479 status = "disabled";
882 }; 480 };
883 481
884 ohci0: usb@01c14400 { 482 ohci0: usb@1c14400 {
885 compatible = "allwinner,sun4i-a10-ohci", "generic-ohci"; 483 compatible = "allwinner,sun4i-a10-ohci", "generic-ohci";
886 reg = <0x01c14400 0x100>; 484 reg = <0x01c14400 0x100>;
887 interrupts = <64>; 485 interrupts = <64>;
888 clocks = <&usb_clk 6>, <&ahb_gates 2>; 486 clocks = <&ccu CLK_USB_OHCI0>, <&ccu CLK_AHB_OHCI0>;
889 phys = <&usbphy 1>; 487 phys = <&usbphy 1>;
890 phy-names = "usb"; 488 phy-names = "usb";
891 status = "disabled"; 489 status = "disabled";
892 }; 490 };
893 491
894 crypto: crypto-engine@01c15000 { 492 crypto: crypto-engine@1c15000 {
895 compatible = "allwinner,sun4i-a10-crypto"; 493 compatible = "allwinner,sun4i-a10-crypto";
896 reg = <0x01c15000 0x1000>; 494 reg = <0x01c15000 0x1000>;
897 interrupts = <86>; 495 interrupts = <86>;
898 clocks = <&ahb_gates 5>, <&ss_clk>; 496 clocks = <&ccu CLK_AHB_SS>, <&ccu CLK_SS>;
899 clock-names = "ahb", "mod"; 497 clock-names = "ahb", "mod";
900 }; 498 };
901 499
902 spi2: spi@01c17000 { 500 hdmi: hdmi@1c16000 {
501 compatible = "allwinner,sun4i-a10-hdmi";
502 reg = <0x01c16000 0x1000>;
503 interrupts = <58>;
504 clocks = <&ccu CLK_AHB_HDMI0>, <&ccu CLK_HDMI>,
505 <&ccu 9>,
506 <&ccu 18>;
507 clock-names = "ahb", "mod", "pll-0", "pll-1";
508 dmas = <&dma SUN4I_DMA_NORMAL 16>,
509 <&dma SUN4I_DMA_NORMAL 16>,
510 <&dma SUN4I_DMA_DEDICATED 24>;
511 dma-names = "ddc-tx", "ddc-rx", "audio-tx";
512 status = "disabled";
513
514 ports {
515 #address-cells = <1>;
516 #size-cells = <0>;
517
518 hdmi_in: port@0 {
519 #address-cells = <1>;
520 #size-cells = <0>;
521 reg = <0>;
522
523 hdmi_in_tcon0: endpoint@0 {
524 reg = <0>;
525 remote-endpoint = <&tcon0_out_hdmi>;
526 };
527
528 hdmi_in_tcon1: endpoint@1 {
529 reg = <1>;
530 remote-endpoint = <&tcon1_out_hdmi>;
531 };
532 };
533
534 hdmi_out: port@1 {
535 #address-cells = <1>;
536 #size-cells = <0>;
537 reg = <1>;
538 };
539 };
540 };
541
542 spi2: spi@1c17000 {
903 compatible = "allwinner,sun4i-a10-spi"; 543 compatible = "allwinner,sun4i-a10-spi";
904 reg = <0x01c17000 0x1000>; 544 reg = <0x01c17000 0x1000>;
905 interrupts = <12>; 545 interrupts = <12>;
906 clocks = <&ahb_gates 22>, <&spi2_clk>; 546 clocks = <&ccu CLK_AHB_SPI2>, <&ccu CLK_SPI2>;
907 clock-names = "ahb", "mod"; 547 clock-names = "ahb", "mod";
908 dmas = <&dma SUN4I_DMA_DEDICATED 29>, 548 dmas = <&dma SUN4I_DMA_DEDICATED 29>,
909 <&dma SUN4I_DMA_DEDICATED 28>; 549 <&dma SUN4I_DMA_DEDICATED 28>;
@@ -913,39 +553,39 @@
913 #size-cells = <0>; 553 #size-cells = <0>;
914 }; 554 };
915 555
916 ahci: sata@01c18000 { 556 ahci: sata@1c18000 {
917 compatible = "allwinner,sun4i-a10-ahci"; 557 compatible = "allwinner,sun4i-a10-ahci";
918 reg = <0x01c18000 0x1000>; 558 reg = <0x01c18000 0x1000>;
919 interrupts = <56>; 559 interrupts = <56>;
920 clocks = <&pll6 0>, <&ahb_gates 25>; 560 clocks = <&ccu CLK_AHB_SATA>, <&ccu CLK_SATA>;
921 status = "disabled"; 561 status = "disabled";
922 }; 562 };
923 563
924 ehci1: usb@01c1c000 { 564 ehci1: usb@1c1c000 {
925 compatible = "allwinner,sun4i-a10-ehci", "generic-ehci"; 565 compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
926 reg = <0x01c1c000 0x100>; 566 reg = <0x01c1c000 0x100>;
927 interrupts = <40>; 567 interrupts = <40>;
928 clocks = <&ahb_gates 3>; 568 clocks = <&ccu CLK_AHB_EHCI1>;
929 phys = <&usbphy 2>; 569 phys = <&usbphy 2>;
930 phy-names = "usb"; 570 phy-names = "usb";
931 status = "disabled"; 571 status = "disabled";
932 }; 572 };
933 573
934 ohci1: usb@01c1c400 { 574 ohci1: usb@1c1c400 {
935 compatible = "allwinner,sun4i-a10-ohci", "generic-ohci"; 575 compatible = "allwinner,sun4i-a10-ohci", "generic-ohci";
936 reg = <0x01c1c400 0x100>; 576 reg = <0x01c1c400 0x100>;
937 interrupts = <65>; 577 interrupts = <65>;
938 clocks = <&usb_clk 7>, <&ahb_gates 4>; 578 clocks = <&ccu CLK_USB_OHCI1>, <&ccu CLK_AHB_OHCI1>;
939 phys = <&usbphy 2>; 579 phys = <&usbphy 2>;
940 phy-names = "usb"; 580 phy-names = "usb";
941 status = "disabled"; 581 status = "disabled";
942 }; 582 };
943 583
944 spi3: spi@01c1f000 { 584 spi3: spi@1c1f000 {
945 compatible = "allwinner,sun4i-a10-spi"; 585 compatible = "allwinner,sun4i-a10-spi";
946 reg = <0x01c1f000 0x1000>; 586 reg = <0x01c1f000 0x1000>;
947 interrupts = <50>; 587 interrupts = <50>;
948 clocks = <&ahb_gates 23>, <&spi3_clk>; 588 clocks = <&ccu CLK_AHB_SPI3>, <&ccu CLK_SPI3>;
949 clock-names = "ahb", "mod"; 589 clock-names = "ahb", "mod";
950 dmas = <&dma SUN4I_DMA_DEDICATED 31>, 590 dmas = <&dma SUN4I_DMA_DEDICATED 31>,
951 <&dma SUN4I_DMA_DEDICATED 30>; 591 <&dma SUN4I_DMA_DEDICATED 30>;
@@ -955,30 +595,39 @@
955 #size-cells = <0>; 595 #size-cells = <0>;
956 }; 596 };
957 597
958 intc: interrupt-controller@01c20400 { 598 ccu: clock@1c20000 {
599 compatible = "allwinner,sun4i-a10-ccu";
600 reg = <0x01c20000 0x400>;
601 clocks = <&osc24M>, <&osc32k>;
602 clock-names = "hosc", "losc";
603 #clock-cells = <1>;
604 #reset-cells = <1>;
605 };
606
607 intc: interrupt-controller@1c20400 {
959 compatible = "allwinner,sun4i-a10-ic"; 608 compatible = "allwinner,sun4i-a10-ic";
960 reg = <0x01c20400 0x400>; 609 reg = <0x01c20400 0x400>;
961 interrupt-controller; 610 interrupt-controller;
962 #interrupt-cells = <1>; 611 #interrupt-cells = <1>;
963 }; 612 };
964 613
965 pio: pinctrl@01c20800 { 614 pio: pinctrl@1c20800 {
966 compatible = "allwinner,sun4i-a10-pinctrl"; 615 compatible = "allwinner,sun4i-a10-pinctrl";
967 reg = <0x01c20800 0x400>; 616 reg = <0x01c20800 0x400>;
968 interrupts = <28>; 617 interrupts = <28>;
969 clocks = <&apb0_gates 5>, <&osc24M>, <&osc32k>; 618 clocks = <&ccu CLK_APB0_PIO>, <&osc24M>, <&osc32k>;
970 clock-names = "apb", "hosc", "losc"; 619 clock-names = "apb", "hosc", "losc";
971 gpio-controller; 620 gpio-controller;
972 interrupt-controller; 621 interrupt-controller;
973 #interrupt-cells = <3>; 622 #interrupt-cells = <3>;
974 #gpio-cells = <3>; 623 #gpio-cells = <3>;
975 624
976 can0_pins_a: can0@0 { 625 can0_ph_pins: can0-ph-pins {
977 pins = "PH20", "PH21"; 626 pins = "PH20", "PH21";
978 function = "can"; 627 function = "can";
979 }; 628 };
980 629
981 emac_pins_a: emac0@0 { 630 emac_pins: emac0-pins {
982 pins = "PA0", "PA1", "PA2", 631 pins = "PA0", "PA1", "PA2",
983 "PA3", "PA4", "PA5", "PA6", 632 "PA3", "PA4", "PA5", "PA6",
984 "PA7", "PA8", "PA9", "PA10", 633 "PA7", "PA8", "PA9", "PA10",
@@ -987,42 +636,42 @@
987 function = "emac"; 636 function = "emac";
988 }; 637 };
989 638
990 i2c0_pins_a: i2c0@0 { 639 i2c0_pins: i2c0-pins {
991 pins = "PB0", "PB1"; 640 pins = "PB0", "PB1";
992 function = "i2c0"; 641 function = "i2c0";
993 }; 642 };
994 643
995 i2c1_pins_a: i2c1@0 { 644 i2c1_pins: i2c1-pins {
996 pins = "PB18", "PB19"; 645 pins = "PB18", "PB19";
997 function = "i2c1"; 646 function = "i2c1";
998 }; 647 };
999 648
1000 i2c2_pins_a: i2c2@0 { 649 i2c2_pins: i2c2-pins {
1001 pins = "PB20", "PB21"; 650 pins = "PB20", "PB21";
1002 function = "i2c2"; 651 function = "i2c2";
1003 }; 652 };
1004 653
1005 ir0_rx_pins_a: ir0@0 { 654 ir0_rx_pins: ir0-rx-pin {
1006 pins = "PB4"; 655 pins = "PB4";
1007 function = "ir0"; 656 function = "ir0";
1008 }; 657 };
1009 658
1010 ir0_tx_pins_a: ir0@1 { 659 ir0_tx_pins: ir0-tx-pin {
1011 pins = "PB3"; 660 pins = "PB3";
1012 function = "ir0"; 661 function = "ir0";
1013 }; 662 };
1014 663
1015 ir1_rx_pins_a: ir1@0 { 664 ir1_rx_pins: ir1-rx-pin {
1016 pins = "PB23"; 665 pins = "PB23";
1017 function = "ir1"; 666 function = "ir1";
1018 }; 667 };
1019 668
1020 ir1_tx_pins_a: ir1@1 { 669 ir1_tx_pins: ir1-tx-pin {
1021 pins = "PB22"; 670 pins = "PB22";
1022 function = "ir1"; 671 function = "ir1";
1023 }; 672 };
1024 673
1025 mmc0_pins_a: mmc0@0 { 674 mmc0_pins: mmc0-pins {
1026 pins = "PF0", "PF1", "PF2", 675 pins = "PF0", "PF1", "PF2",
1027 "PF3", "PF4", "PF5"; 676 "PF3", "PF4", "PF5";
1028 function = "mmc0"; 677 function = "mmc0";
@@ -1030,107 +679,107 @@
1030 bias-pull-up; 679 bias-pull-up;
1031 }; 680 };
1032 681
1033 ps20_pins_a: ps20@0 { 682 ps2_ch0_pins: ps2-ch0-pins {
1034 pins = "PI20", "PI21"; 683 pins = "PI20", "PI21";
1035 function = "ps2"; 684 function = "ps2";
1036 }; 685 };
1037 686
1038 ps21_pins_a: ps21@0 { 687 ps2_ch1_ph_pins: ps2-ch1-ph-pins {
1039 pins = "PH12", "PH13"; 688 pins = "PH12", "PH13";
1040 function = "ps2"; 689 function = "ps2";
1041 }; 690 };
1042 691
1043 pwm0_pins_a: pwm0@0 { 692 pwm0_pin: pwm0-pin {
1044 pins = "PB2"; 693 pins = "PB2";
1045 function = "pwm"; 694 function = "pwm";
1046 }; 695 };
1047 696
1048 pwm1_pins_a: pwm1@0 { 697 pwm1_pin: pwm1-pin {
1049 pins = "PI3"; 698 pins = "PI3";
1050 function = "pwm"; 699 function = "pwm";
1051 }; 700 };
1052 701
1053 spdif_tx_pins_a: spdif@0 { 702 spdif_tx_pin: spdif-tx-pin {
1054 pins = "PB13"; 703 pins = "PB13";
1055 function = "spdif"; 704 function = "spdif";
1056 bias-pull-up; 705 bias-pull-up;
1057 }; 706 };
1058 707
1059 spi0_pins_a: spi0@0 { 708 spi0_pi_pins: spi0-pi-pins {
1060 pins = "PI11", "PI12", "PI13"; 709 pins = "PI11", "PI12", "PI13";
1061 function = "spi0"; 710 function = "spi0";
1062 }; 711 };
1063 712
1064 spi0_cs0_pins_a: spi0_cs0@0 { 713 spi0_cs0_pi_pin: spi0-cs0-pi-pin {
1065 pins = "PI10"; 714 pins = "PI10";
1066 function = "spi0"; 715 function = "spi0";
1067 }; 716 };
1068 717
1069 spi1_pins_a: spi1@0 { 718 spi1_pins: spi1-pins {
1070 pins = "PI17", "PI18", "PI19"; 719 pins = "PI17", "PI18", "PI19";
1071 function = "spi1"; 720 function = "spi1";
1072 }; 721 };
1073 722
1074 spi1_cs0_pins_a: spi1_cs0@0 { 723 spi1_cs0_pin: spi1-cs0-pin {
1075 pins = "PI16"; 724 pins = "PI16";
1076 function = "spi1"; 725 function = "spi1";
1077 }; 726 };
1078 727
1079 spi2_pins_a: spi2@0 { 728 spi2_pb_pins: spi2-pb-pins {
1080 pins = "PC20", "PC21", "PC22"; 729 pins = "PB15", "PB16", "PB17";
1081 function = "spi2"; 730 function = "spi2";
1082 }; 731 };
1083 732
1084 spi2_pins_b: spi2@1 { 733 spi2_pc_pins: spi2-pc-pins {
1085 pins = "PB15", "PB16", "PB17"; 734 pins = "PC20", "PC21", "PC22";
1086 function = "spi2"; 735 function = "spi2";
1087 }; 736 };
1088 737
1089 spi2_cs0_pins_a: spi2_cs0@0 { 738 spi2_cs0_pb_pin: spi2-cs0-pb-pin {
1090 pins = "PC19"; 739 pins = "PB14";
1091 function = "spi2"; 740 function = "spi2";
1092 }; 741 };
1093 742
1094 spi2_cs0_pins_b: spi2_cs0@1 { 743 spi2_cs0_pc_pins: spi2-cs0-pc-pin {
1095 pins = "PB14"; 744 pins = "PC19";
1096 function = "spi2"; 745 function = "spi2";
1097 }; 746 };
1098 747
1099 uart0_pins_a: uart0@0 { 748 uart0_pb_pins: uart0-pb-pins {
1100 pins = "PB22", "PB23"; 749 pins = "PB22", "PB23";
1101 function = "uart0"; 750 function = "uart0";
1102 }; 751 };
1103 752
1104 uart0_pins_b: uart0@1 { 753 uart0_pf_pins: uart0-pf-pins {
1105 pins = "PF2", "PF4"; 754 pins = "PF2", "PF4";
1106 function = "uart0"; 755 function = "uart0";
1107 }; 756 };
1108 757
1109 uart1_pins_a: uart1@0 { 758 uart1_pins: uart1-pins {
1110 pins = "PA10", "PA11"; 759 pins = "PA10", "PA11";
1111 function = "uart1"; 760 function = "uart1";
1112 }; 761 };
1113 }; 762 };
1114 763
1115 timer@01c20c00 { 764 timer@1c20c00 {
1116 compatible = "allwinner,sun4i-a10-timer"; 765 compatible = "allwinner,sun4i-a10-timer";
1117 reg = <0x01c20c00 0x90>; 766 reg = <0x01c20c00 0x90>;
1118 interrupts = <22>; 767 interrupts = <22>;
1119 clocks = <&osc24M>; 768 clocks = <&osc24M>;
1120 }; 769 };
1121 770
1122 wdt: watchdog@01c20c90 { 771 wdt: watchdog@1c20c90 {
1123 compatible = "allwinner,sun4i-a10-wdt"; 772 compatible = "allwinner,sun4i-a10-wdt";
1124 reg = <0x01c20c90 0x10>; 773 reg = <0x01c20c90 0x10>;
1125 }; 774 };
1126 775
1127 rtc: rtc@01c20d00 { 776 rtc: rtc@1c20d00 {
1128 compatible = "allwinner,sun4i-a10-rtc"; 777 compatible = "allwinner,sun4i-a10-rtc";
1129 reg = <0x01c20d00 0x20>; 778 reg = <0x01c20d00 0x20>;
1130 interrupts = <24>; 779 interrupts = <24>;
1131 }; 780 };
1132 781
1133 pwm: pwm@01c20e00 { 782 pwm: pwm@1c20e00 {
1134 compatible = "allwinner,sun4i-a10-pwm"; 783 compatible = "allwinner,sun4i-a10-pwm";
1135 reg = <0x01c20e00 0xc>; 784 reg = <0x01c20e00 0xc>;
1136 clocks = <&osc24M>; 785 clocks = <&osc24M>;
@@ -1138,12 +787,12 @@
1138 status = "disabled"; 787 status = "disabled";
1139 }; 788 };
1140 789
1141 spdif: spdif@01c21000 { 790 spdif: spdif@1c21000 {
1142 #sound-dai-cells = <0>; 791 #sound-dai-cells = <0>;
1143 compatible = "allwinner,sun4i-a10-spdif"; 792 compatible = "allwinner,sun4i-a10-spdif";
1144 reg = <0x01c21000 0x400>; 793 reg = <0x01c21000 0x400>;
1145 interrupts = <13>; 794 interrupts = <13>;
1146 clocks = <&apb0_gates 1>, <&spdif_clk>; 795 clocks = <&ccu CLK_APB0_SPDIF>, <&ccu CLK_SPDIF>;
1147 clock-names = "apb", "spdif"; 796 clock-names = "apb", "spdif";
1148 dmas = <&dma SUN4I_DMA_NORMAL 2>, 797 dmas = <&dma SUN4I_DMA_NORMAL 2>,
1149 <&dma SUN4I_DMA_NORMAL 2>; 798 <&dma SUN4I_DMA_NORMAL 2>;
@@ -1151,37 +800,50 @@
1151 status = "disabled"; 800 status = "disabled";
1152 }; 801 };
1153 802
1154 ir0: ir@01c21800 { 803 ir0: ir@1c21800 {
1155 compatible = "allwinner,sun4i-a10-ir"; 804 compatible = "allwinner,sun4i-a10-ir";
1156 clocks = <&apb0_gates 6>, <&ir0_clk>; 805 clocks = <&ccu CLK_APB0_IR0>, <&ccu CLK_IR0>;
1157 clock-names = "apb", "ir"; 806 clock-names = "apb", "ir";
1158 interrupts = <5>; 807 interrupts = <5>;
1159 reg = <0x01c21800 0x40>; 808 reg = <0x01c21800 0x40>;
1160 status = "disabled"; 809 status = "disabled";
1161 }; 810 };
1162 811
1163 ir1: ir@01c21c00 { 812 ir1: ir@1c21c00 {
1164 compatible = "allwinner,sun4i-a10-ir"; 813 compatible = "allwinner,sun4i-a10-ir";
1165 clocks = <&apb0_gates 7>, <&ir1_clk>; 814 clocks = <&ccu CLK_APB0_IR1>, <&ccu CLK_IR1>;
1166 clock-names = "apb", "ir"; 815 clock-names = "apb", "ir";
1167 interrupts = <6>; 816 interrupts = <6>;
1168 reg = <0x01c21c00 0x40>; 817 reg = <0x01c21c00 0x40>;
1169 status = "disabled"; 818 status = "disabled";
1170 }; 819 };
1171 820
1172 lradc: lradc@01c22800 { 821 i2s0: i2s@1c22400 {
822 #sound-dai-cells = <0>;
823 compatible = "allwinner,sun4i-a10-i2s";
824 reg = <0x01c22400 0x400>;
825 interrupts = <16>;
826 clocks = <&ccu CLK_APB0_I2S0>, <&ccu CLK_I2S0>;
827 clock-names = "apb", "mod";
828 dmas = <&dma SUN4I_DMA_NORMAL 3>,
829 <&dma SUN4I_DMA_NORMAL 3>;
830 dma-names = "rx", "tx";
831 status = "disabled";
832 };
833
834 lradc: lradc@1c22800 {
1173 compatible = "allwinner,sun4i-a10-lradc-keys"; 835 compatible = "allwinner,sun4i-a10-lradc-keys";
1174 reg = <0x01c22800 0x100>; 836 reg = <0x01c22800 0x100>;
1175 interrupts = <31>; 837 interrupts = <31>;
1176 status = "disabled"; 838 status = "disabled";
1177 }; 839 };
1178 840
1179 codec: codec@01c22c00 { 841 codec: codec@1c22c00 {
1180 #sound-dai-cells = <0>; 842 #sound-dai-cells = <0>;
1181 compatible = "allwinner,sun4i-a10-codec"; 843 compatible = "allwinner,sun4i-a10-codec";
1182 reg = <0x01c22c00 0x40>; 844 reg = <0x01c22c00 0x40>;
1183 interrupts = <30>; 845 interrupts = <30>;
1184 clocks = <&apb0_gates 0>, <&codec_clk>; 846 clocks = <&ccu CLK_APB0_CODEC>, <&ccu CLK_CODEC>;
1185 clock-names = "apb", "codec"; 847 clock-names = "apb", "codec";
1186 dmas = <&dma SUN4I_DMA_NORMAL 19>, 848 dmas = <&dma SUN4I_DMA_NORMAL 19>,
1187 <&dma SUN4I_DMA_NORMAL 19>; 849 <&dma SUN4I_DMA_NORMAL 19>;
@@ -1189,150 +851,316 @@
1189 status = "disabled"; 851 status = "disabled";
1190 }; 852 };
1191 853
1192 sid: eeprom@01c23800 { 854 sid: eeprom@1c23800 {
1193 compatible = "allwinner,sun4i-a10-sid"; 855 compatible = "allwinner,sun4i-a10-sid";
1194 reg = <0x01c23800 0x10>; 856 reg = <0x01c23800 0x10>;
1195 }; 857 };
1196 858
1197 rtp: rtp@01c25000 { 859 rtp: rtp@1c25000 {
1198 compatible = "allwinner,sun4i-a10-ts"; 860 compatible = "allwinner,sun4i-a10-ts";
1199 reg = <0x01c25000 0x100>; 861 reg = <0x01c25000 0x100>;
1200 interrupts = <29>; 862 interrupts = <29>;
1201 #thermal-sensor-cells = <0>; 863 #thermal-sensor-cells = <0>;
1202 }; 864 };
1203 865
1204 uart0: serial@01c28000 { 866 uart0: serial@1c28000 {
1205 compatible = "snps,dw-apb-uart"; 867 compatible = "snps,dw-apb-uart";
1206 reg = <0x01c28000 0x400>; 868 reg = <0x01c28000 0x400>;
1207 interrupts = <1>; 869 interrupts = <1>;
1208 reg-shift = <2>; 870 reg-shift = <2>;
1209 reg-io-width = <4>; 871 reg-io-width = <4>;
1210 clocks = <&apb1_gates 16>; 872 clocks = <&ccu CLK_APB1_UART0>;
1211 status = "disabled"; 873 status = "disabled";
1212 }; 874 };
1213 875
1214 uart1: serial@01c28400 { 876 uart1: serial@1c28400 {
1215 compatible = "snps,dw-apb-uart"; 877 compatible = "snps,dw-apb-uart";
1216 reg = <0x01c28400 0x400>; 878 reg = <0x01c28400 0x400>;
1217 interrupts = <2>; 879 interrupts = <2>;
1218 reg-shift = <2>; 880 reg-shift = <2>;
1219 reg-io-width = <4>; 881 reg-io-width = <4>;
1220 clocks = <&apb1_gates 17>; 882 clocks = <&ccu CLK_APB1_UART1>;
1221 status = "disabled"; 883 status = "disabled";
1222 }; 884 };
1223 885
1224 uart2: serial@01c28800 { 886 uart2: serial@1c28800 {
1225 compatible = "snps,dw-apb-uart"; 887 compatible = "snps,dw-apb-uart";
1226 reg = <0x01c28800 0x400>; 888 reg = <0x01c28800 0x400>;
1227 interrupts = <3>; 889 interrupts = <3>;
1228 reg-shift = <2>; 890 reg-shift = <2>;
1229 reg-io-width = <4>; 891 reg-io-width = <4>;
1230 clocks = <&apb1_gates 18>; 892 clocks = <&ccu CLK_APB1_UART2>;
1231 status = "disabled"; 893 status = "disabled";
1232 }; 894 };
1233 895
1234 uart3: serial@01c28c00 { 896 uart3: serial@1c28c00 {
1235 compatible = "snps,dw-apb-uart"; 897 compatible = "snps,dw-apb-uart";
1236 reg = <0x01c28c00 0x400>; 898 reg = <0x01c28c00 0x400>;
1237 interrupts = <4>; 899 interrupts = <4>;
1238 reg-shift = <2>; 900 reg-shift = <2>;
1239 reg-io-width = <4>; 901 reg-io-width = <4>;
1240 clocks = <&apb1_gates 19>; 902 clocks = <&ccu CLK_APB1_UART3>;
1241 status = "disabled"; 903 status = "disabled";
1242 }; 904 };
1243 905
1244 uart4: serial@01c29000 { 906 uart4: serial@1c29000 {
1245 compatible = "snps,dw-apb-uart"; 907 compatible = "snps,dw-apb-uart";
1246 reg = <0x01c29000 0x400>; 908 reg = <0x01c29000 0x400>;
1247 interrupts = <17>; 909 interrupts = <17>;
1248 reg-shift = <2>; 910 reg-shift = <2>;
1249 reg-io-width = <4>; 911 reg-io-width = <4>;
1250 clocks = <&apb1_gates 20>; 912 clocks = <&ccu CLK_APB1_UART4>;
1251 status = "disabled"; 913 status = "disabled";
1252 }; 914 };
1253 915
1254 uart5: serial@01c29400 { 916 uart5: serial@1c29400 {
1255 compatible = "snps,dw-apb-uart"; 917 compatible = "snps,dw-apb-uart";
1256 reg = <0x01c29400 0x400>; 918 reg = <0x01c29400 0x400>;
1257 interrupts = <18>; 919 interrupts = <18>;
1258 reg-shift = <2>; 920 reg-shift = <2>;
1259 reg-io-width = <4>; 921 reg-io-width = <4>;
1260 clocks = <&apb1_gates 21>; 922 clocks = <&ccu CLK_APB1_UART5>;
1261 status = "disabled"; 923 status = "disabled";
1262 }; 924 };
1263 925
1264 uart6: serial@01c29800 { 926 uart6: serial@1c29800 {
1265 compatible = "snps,dw-apb-uart"; 927 compatible = "snps,dw-apb-uart";
1266 reg = <0x01c29800 0x400>; 928 reg = <0x01c29800 0x400>;
1267 interrupts = <19>; 929 interrupts = <19>;
1268 reg-shift = <2>; 930 reg-shift = <2>;
1269 reg-io-width = <4>; 931 reg-io-width = <4>;
1270 clocks = <&apb1_gates 22>; 932 clocks = <&ccu CLK_APB1_UART6>;
1271 status = "disabled"; 933 status = "disabled";
1272 }; 934 };
1273 935
1274 uart7: serial@01c29c00 { 936 uart7: serial@1c29c00 {
1275 compatible = "snps,dw-apb-uart"; 937 compatible = "snps,dw-apb-uart";
1276 reg = <0x01c29c00 0x400>; 938 reg = <0x01c29c00 0x400>;
1277 interrupts = <20>; 939 interrupts = <20>;
1278 reg-shift = <2>; 940 reg-shift = <2>;
1279 reg-io-width = <4>; 941 reg-io-width = <4>;
1280 clocks = <&apb1_gates 23>; 942 clocks = <&ccu CLK_APB1_UART7>;
1281 status = "disabled"; 943 status = "disabled";
1282 }; 944 };
1283 945
1284 ps20: ps2@01c2a000 { 946 ps20: ps2@1c2a000 {
1285 compatible = "allwinner,sun4i-a10-ps2"; 947 compatible = "allwinner,sun4i-a10-ps2";
1286 reg = <0x01c2a000 0x400>; 948 reg = <0x01c2a000 0x400>;
1287 interrupts = <62>; 949 interrupts = <62>;
1288 clocks = <&apb1_gates 6>; 950 clocks = <&ccu CLK_APB1_PS20>;
1289 status = "disabled"; 951 status = "disabled";
1290 }; 952 };
1291 953
1292 ps21: ps2@01c2a400 { 954 ps21: ps2@1c2a400 {
1293 compatible = "allwinner,sun4i-a10-ps2"; 955 compatible = "allwinner,sun4i-a10-ps2";
1294 reg = <0x01c2a400 0x400>; 956 reg = <0x01c2a400 0x400>;
1295 interrupts = <63>; 957 interrupts = <63>;
1296 clocks = <&apb1_gates 7>; 958 clocks = <&ccu CLK_APB1_PS21>;
1297 status = "disabled"; 959 status = "disabled";
1298 }; 960 };
1299 961
1300 i2c0: i2c@01c2ac00 { 962 i2c0: i2c@1c2ac00 {
1301 compatible = "allwinner,sun4i-a10-i2c"; 963 compatible = "allwinner,sun4i-a10-i2c";
1302 reg = <0x01c2ac00 0x400>; 964 reg = <0x01c2ac00 0x400>;
1303 interrupts = <7>; 965 interrupts = <7>;
1304 clocks = <&apb1_gates 0>; 966 clocks = <&ccu CLK_APB1_I2C0>;
967 pinctrl-names = "default";
968 pinctrl-0 = <&i2c0_pins>;
1305 status = "disabled"; 969 status = "disabled";
1306 #address-cells = <1>; 970 #address-cells = <1>;
1307 #size-cells = <0>; 971 #size-cells = <0>;
1308 }; 972 };
1309 973
1310 i2c1: i2c@01c2b000 { 974 i2c1: i2c@1c2b000 {
1311 compatible = "allwinner,sun4i-a10-i2c"; 975 compatible = "allwinner,sun4i-a10-i2c";
1312 reg = <0x01c2b000 0x400>; 976 reg = <0x01c2b000 0x400>;
1313 interrupts = <8>; 977 interrupts = <8>;
1314 clocks = <&apb1_gates 1>; 978 clocks = <&ccu CLK_APB1_I2C1>;
979 pinctrl-names = "default";
980 pinctrl-0 = <&i2c1_pins>;
1315 status = "disabled"; 981 status = "disabled";
1316 #address-cells = <1>; 982 #address-cells = <1>;
1317 #size-cells = <0>; 983 #size-cells = <0>;
1318 }; 984 };
1319 985
1320 i2c2: i2c@01c2b400 { 986 i2c2: i2c@1c2b400 {
1321 compatible = "allwinner,sun4i-a10-i2c"; 987 compatible = "allwinner,sun4i-a10-i2c";
1322 reg = <0x01c2b400 0x400>; 988 reg = <0x01c2b400 0x400>;
1323 interrupts = <9>; 989 interrupts = <9>;
1324 clocks = <&apb1_gates 2>; 990 clocks = <&ccu CLK_APB1_I2C2>;
991 pinctrl-names = "default";
992 pinctrl-0 = <&i2c2_pins>;
1325 status = "disabled"; 993 status = "disabled";
1326 #address-cells = <1>; 994 #address-cells = <1>;
1327 #size-cells = <0>; 995 #size-cells = <0>;
1328 }; 996 };
1329 997
1330 can0: can@01c2bc00 { 998 can0: can@1c2bc00 {
1331 compatible = "allwinner,sun4i-a10-can"; 999 compatible = "allwinner,sun4i-a10-can";
1332 reg = <0x01c2bc00 0x400>; 1000 reg = <0x01c2bc00 0x400>;
1333 interrupts = <26>; 1001 interrupts = <26>;
1334 clocks = <&apb1_gates 4>; 1002 clocks = <&ccu CLK_APB1_CAN>;
1335 status = "disabled"; 1003 status = "disabled";
1336 }; 1004 };
1005
1006 fe0: display-frontend@1e00000 {
1007 compatible = "allwinner,sun4i-a10-display-frontend";
1008 reg = <0x01e00000 0x20000>;
1009 interrupts = <47>;
1010 clocks = <&ccu CLK_AHB_DE_FE0>, <&ccu CLK_DE_FE0>,
1011 <&ccu CLK_DRAM_DE_FE0>;
1012 clock-names = "ahb", "mod",
1013 "ram";
1014 resets = <&ccu RST_DE_FE0>;
1015
1016 ports {
1017 #address-cells = <1>;
1018 #size-cells = <0>;
1019
1020 fe0_out: port@1 {
1021 #address-cells = <1>;
1022 #size-cells = <0>;
1023 reg = <1>;
1024
1025 fe0_out_be0: endpoint@0 {
1026 reg = <0>;
1027 remote-endpoint = <&be0_in_fe0>;
1028 };
1029
1030 fe0_out_be1: endpoint@1 {
1031 reg = <1>;
1032 remote-endpoint = <&be1_in_fe0>;
1033 };
1034 };
1035 };
1036 };
1037
1038 fe1: display-frontend@1e20000 {
1039 compatible = "allwinner,sun4i-a10-display-frontend";
1040 reg = <0x01e20000 0x20000>;
1041 interrupts = <48>;
1042 clocks = <&ccu CLK_AHB_DE_FE1>, <&ccu CLK_DE_FE1>,
1043 <&ccu CLK_DRAM_DE_FE1>;
1044 clock-names = "ahb", "mod",
1045 "ram";
1046 resets = <&ccu RST_DE_FE1>;
1047
1048 ports {
1049 #address-cells = <1>;
1050 #size-cells = <0>;
1051
1052 fe1_out: port@1 {
1053 #address-cells = <1>;
1054 #size-cells = <0>;
1055 reg = <1>;
1056
1057 fe1_out_be0: endpoint@0 {
1058 reg = <0>;
1059 remote-endpoint = <&be0_in_fe1>;
1060 };
1061
1062 fe1_out_be1: endpoint@1 {
1063 reg = <1>;
1064 remote-endpoint = <&be1_in_fe1>;
1065 };
1066 };
1067 };
1068 };
1069
1070 be1: display-backend@1e40000 {
1071 compatible = "allwinner,sun4i-a10-display-backend";
1072 reg = <0x01e40000 0x10000>;
1073 interrupts = <48>;
1074 clocks = <&ccu CLK_AHB_DE_BE1>, <&ccu CLK_DE_BE1>,
1075 <&ccu CLK_DRAM_DE_BE1>;
1076 clock-names = "ahb", "mod",
1077 "ram";
1078 resets = <&ccu RST_DE_BE1>;
1079
1080 ports {
1081 #address-cells = <1>;
1082 #size-cells = <0>;
1083
1084 be1_in: port@0 {
1085 #address-cells = <1>;
1086 #size-cells = <0>;
1087 reg = <0>;
1088
1089 be1_in_fe0: endpoint@0 {
1090 reg = <0>;
1091 remote-endpoint = <&fe0_out_be1>;
1092 };
1093
1094 be1_in_fe1: endpoint@1 {
1095 reg = <1>;
1096 remote-endpoint = <&fe1_out_be1>;
1097 };
1098 };
1099
1100 be1_out: port@1 {
1101 #address-cells = <1>;
1102 #size-cells = <0>;
1103 reg = <1>;
1104
1105 be1_out_tcon0: endpoint@0 {
1106 reg = <0>;
1107 remote-endpoint = <&tcon1_in_be0>;
1108 };
1109
1110 be1_out_tcon1: endpoint@1 {
1111 reg = <1>;
1112 remote-endpoint = <&tcon1_in_be1>;
1113 };
1114 };
1115 };
1116 };
1117
1118 be0: display-backend@1e60000 {
1119 compatible = "allwinner,sun4i-a10-display-backend";
1120 reg = <0x01e60000 0x10000>;
1121 interrupts = <47>;
1122 clocks = <&ccu CLK_AHB_DE_BE0>, <&ccu CLK_DE_BE0>,
1123 <&ccu CLK_DRAM_DE_BE0>;
1124 clock-names = "ahb", "mod",
1125 "ram";
1126 resets = <&ccu RST_DE_BE0>;
1127
1128 ports {
1129 #address-cells = <1>;
1130 #size-cells = <0>;
1131
1132 be0_in: port@0 {
1133 #address-cells = <1>;
1134 #size-cells = <0>;
1135 reg = <0>;
1136
1137 be0_in_fe0: endpoint@0 {
1138 reg = <0>;
1139 remote-endpoint = <&fe0_out_be0>;
1140 };
1141
1142 be0_in_fe1: endpoint@1 {
1143 reg = <1>;
1144 remote-endpoint = <&fe1_out_be0>;
1145 };
1146 };
1147
1148 be0_out: port@1 {
1149 #address-cells = <1>;
1150 #size-cells = <0>;
1151 reg = <1>;
1152
1153 be0_out_tcon0: endpoint@0 {
1154 reg = <0>;
1155 remote-endpoint = <&tcon0_in_be0>;
1156 };
1157
1158 be0_out_tcon1: endpoint@1 {
1159 reg = <1>;
1160 remote-endpoint = <&tcon1_in_be0>;
1161 };
1162 };
1163 };
1164 };
1337 }; 1165 };
1338}; 1166};
diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
index 18f25c5e75ae..6ae4d95e230e 100644
--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
+++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
@@ -76,8 +76,8 @@
76 allwinner,pipelines = <&fe0>; 76 allwinner,pipelines = <&fe0>;
77 }; 77 };
78 78
79 soc@01c00000 { 79 soc@1c00000 {
80 hdmi: hdmi@01c16000 { 80 hdmi: hdmi@1c16000 {
81 compatible = "allwinner,sun5i-a10s-hdmi"; 81 compatible = "allwinner,sun5i-a10s-hdmi";
82 reg = <0x01c16000 0x1000>; 82 reg = <0x01c16000 0x1000>;
83 interrupts = <58>; 83 interrupts = <58>;
@@ -111,7 +111,7 @@
111 }; 111 };
112 }; 112 };
113 113
114 pwm: pwm@01c20e00 { 114 pwm: pwm@1c20e00 {
115 compatible = "allwinner,sun5i-a10s-pwm"; 115 compatible = "allwinner,sun5i-a10s-pwm";
116 reg = <0x01c20e00 0xc>; 116 reg = <0x01c20e00 0xc>;
117 clocks = <&ccu CLK_HOSC>; 117 clocks = <&ccu CLK_HOSC>;
diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
index 6436bad94404..4e830f5cb7f1 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
@@ -88,8 +88,8 @@
88 allwinner,pipelines = <&fe0>; 88 allwinner,pipelines = <&fe0>;
89 }; 89 };
90 90
91 soc@01c00000 { 91 soc@1c00000 {
92 pwm: pwm@01c20e00 { 92 pwm: pwm@1c20e00 {
93 compatible = "allwinner,sun5i-a13-pwm"; 93 compatible = "allwinner,sun5i-a13-pwm";
94 reg = <0x01c20e00 0xc>; 94 reg = <0x01c20e00 0xc>;
95 clocks = <&ccu CLK_HOSC>; 95 clocks = <&ccu CLK_HOSC>;
diff --git a/arch/arm/boot/dts/sun5i-gr8.dtsi b/arch/arm/boot/dts/sun5i-gr8.dtsi
index 3eb56cad0cea..ef0b7446a99d 100644
--- a/arch/arm/boot/dts/sun5i-gr8.dtsi
+++ b/arch/arm/boot/dts/sun5i-gr8.dtsi
@@ -54,8 +54,8 @@
54 allwinner,pipelines = <&fe0>; 54 allwinner,pipelines = <&fe0>;
55 }; 55 };
56 56
57 soc@01c00000 { 57 soc@1c00000 {
58 pwm: pwm@01c20e00 { 58 pwm: pwm@1c20e00 {
59 compatible = "allwinner,sun5i-a10s-pwm"; 59 compatible = "allwinner,sun5i-a10s-pwm";
60 reg = <0x01c20e00 0xc>; 60 reg = <0x01c20e00 0xc>;
61 clocks = <&ccu CLK_HOSC>; 61 clocks = <&ccu CLK_HOSC>;
@@ -63,7 +63,7 @@
63 status = "disabled"; 63 status = "disabled";
64 }; 64 };
65 65
66 spdif: spdif@01c21000 { 66 spdif: spdif@1c21000 {
67 #sound-dai-cells = <0>; 67 #sound-dai-cells = <0>;
68 compatible = "allwinner,sun4i-a10-spdif"; 68 compatible = "allwinner,sun4i-a10-spdif";
69 reg = <0x01c21000 0x400>; 69 reg = <0x01c21000 0x400>;
@@ -76,7 +76,7 @@
76 status = "disabled"; 76 status = "disabled";
77 }; 77 };
78 78
79 i2s0: i2s@01c22400 { 79 i2s0: i2s@1c22400 {
80 #sound-dai-cells = <0>; 80 #sound-dai-cells = <0>;
81 compatible = "allwinner,sun4i-a10-i2s"; 81 compatible = "allwinner,sun4i-a10-i2s";
82 reg = <0x01c22400 0x400>; 82 reg = <0x01c22400 0x400>;
diff --git a/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi b/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi
index 8a4d2277826f..49229b3d5492 100644
--- a/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi
+++ b/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi
@@ -110,6 +110,14 @@
110 110
111#include "axp209.dtsi" 111#include "axp209.dtsi"
112 112
113&ac_power_supply {
114 status = "okay";
115};
116
117&battery_power_supply {
118 status = "okay";
119};
120
113&lradc { 121&lradc {
114 vref-supply = <&reg_ldo2>; 122 vref-supply = <&reg_ldo2>;
115}; 123};
diff --git a/arch/arm/boot/dts/sun5i.dtsi b/arch/arm/boot/dts/sun5i.dtsi
index 98cc00341b00..07f2248ed5f8 100644
--- a/arch/arm/boot/dts/sun5i.dtsi
+++ b/arch/arm/boot/dts/sun5i.dtsi
@@ -93,7 +93,7 @@
93 #size-cells = <1>; 93 #size-cells = <1>;
94 ranges; 94 ranges;
95 95
96 osc24M: clk@01c20050 { 96 osc24M: clk@1c20050 {
97 #clock-cells = <0>; 97 #clock-cells = <0>;
98 compatible = "fixed-clock"; 98 compatible = "fixed-clock";
99 clock-frequency = <24000000>; 99 clock-frequency = <24000000>;
@@ -108,20 +108,20 @@
108 }; 108 };
109 }; 109 };
110 110
111 soc@01c00000 { 111 soc@1c00000 {
112 compatible = "simple-bus"; 112 compatible = "simple-bus";
113 #address-cells = <1>; 113 #address-cells = <1>;
114 #size-cells = <1>; 114 #size-cells = <1>;
115 ranges; 115 ranges;
116 116
117 sram-controller@01c00000 { 117 sram-controller@1c00000 {
118 compatible = "allwinner,sun4i-a10-sram-controller"; 118 compatible = "allwinner,sun4i-a10-sram-controller";
119 reg = <0x01c00000 0x30>; 119 reg = <0x01c00000 0x30>;
120 #address-cells = <1>; 120 #address-cells = <1>;
121 #size-cells = <1>; 121 #size-cells = <1>;
122 ranges; 122 ranges;
123 123
124 sram_a: sram@00000000 { 124 sram_a: sram@0 {
125 compatible = "mmio-sram"; 125 compatible = "mmio-sram";
126 reg = <0x00000000 0xc000>; 126 reg = <0x00000000 0xc000>;
127 #address-cells = <1>; 127 #address-cells = <1>;
@@ -135,14 +135,14 @@
135 status = "disabled"; 135 status = "disabled";
136 }; 136 };
137 137
138 sram_d: sram@00010000 { 138 sram_d: sram@10000 {
139 compatible = "mmio-sram"; 139 compatible = "mmio-sram";
140 reg = <0x00010000 0x1000>; 140 reg = <0x00010000 0x1000>;
141 #address-cells = <1>; 141 #address-cells = <1>;
142 #size-cells = <1>; 142 #size-cells = <1>;
143 ranges = <0 0x00010000 0x1000>; 143 ranges = <0 0x00010000 0x1000>;
144 144
145 otg_sram: sram-section@0000 { 145 otg_sram: sram-section@0 {
146 compatible = "allwinner,sun4i-a10-sram-d"; 146 compatible = "allwinner,sun4i-a10-sram-d";
147 reg = <0x0000 0x1000>; 147 reg = <0x0000 0x1000>;
148 status = "disabled"; 148 status = "disabled";
@@ -150,7 +150,7 @@
150 }; 150 };
151 }; 151 };
152 152
153 dma: dma-controller@01c02000 { 153 dma: dma-controller@1c02000 {
154 compatible = "allwinner,sun4i-a10-dma"; 154 compatible = "allwinner,sun4i-a10-dma";
155 reg = <0x01c02000 0x1000>; 155 reg = <0x01c02000 0x1000>;
156 interrupts = <27>; 156 interrupts = <27>;
@@ -158,7 +158,7 @@
158 #dma-cells = <2>; 158 #dma-cells = <2>;
159 }; 159 };
160 160
161 nfc: nand@01c03000 { 161 nfc: nand@1c03000 {
162 compatible = "allwinner,sun4i-a10-nand"; 162 compatible = "allwinner,sun4i-a10-nand";
163 reg = <0x01c03000 0x1000>; 163 reg = <0x01c03000 0x1000>;
164 interrupts = <37>; 164 interrupts = <37>;
@@ -171,7 +171,7 @@
171 #size-cells = <0>; 171 #size-cells = <0>;
172 }; 172 };
173 173
174 spi0: spi@01c05000 { 174 spi0: spi@1c05000 {
175 compatible = "allwinner,sun4i-a10-spi"; 175 compatible = "allwinner,sun4i-a10-spi";
176 reg = <0x01c05000 0x1000>; 176 reg = <0x01c05000 0x1000>;
177 interrupts = <10>; 177 interrupts = <10>;
@@ -185,7 +185,7 @@
185 #size-cells = <0>; 185 #size-cells = <0>;
186 }; 186 };
187 187
188 spi1: spi@01c06000 { 188 spi1: spi@1c06000 {
189 compatible = "allwinner,sun4i-a10-spi"; 189 compatible = "allwinner,sun4i-a10-spi";
190 reg = <0x01c06000 0x1000>; 190 reg = <0x01c06000 0x1000>;
191 interrupts = <11>; 191 interrupts = <11>;
@@ -199,7 +199,7 @@
199 #size-cells = <0>; 199 #size-cells = <0>;
200 }; 200 };
201 201
202 tve0: tv-encoder@01c0a000 { 202 tve0: tv-encoder@1c0a000 {
203 compatible = "allwinner,sun4i-a10-tv-encoder"; 203 compatible = "allwinner,sun4i-a10-tv-encoder";
204 reg = <0x01c0a000 0x1000>; 204 reg = <0x01c0a000 0x1000>;
205 clocks = <&ccu CLK_AHB_TVE>; 205 clocks = <&ccu CLK_AHB_TVE>;
@@ -217,7 +217,7 @@
217 }; 217 };
218 }; 218 };
219 219
220 emac: ethernet@01c0b000 { 220 emac: ethernet@1c0b000 {
221 compatible = "allwinner,sun4i-a10-emac"; 221 compatible = "allwinner,sun4i-a10-emac";
222 reg = <0x01c0b000 0x1000>; 222 reg = <0x01c0b000 0x1000>;
223 interrupts = <55>; 223 interrupts = <55>;
@@ -226,7 +226,7 @@
226 status = "disabled"; 226 status = "disabled";
227 }; 227 };
228 228
229 mdio: mdio@01c0b080 { 229 mdio: mdio@1c0b080 {
230 compatible = "allwinner,sun4i-a10-mdio"; 230 compatible = "allwinner,sun4i-a10-mdio";
231 reg = <0x01c0b080 0x14>; 231 reg = <0x01c0b080 0x14>;
232 status = "disabled"; 232 status = "disabled";
@@ -234,7 +234,7 @@
234 #size-cells = <0>; 234 #size-cells = <0>;
235 }; 235 };
236 236
237 tcon0: lcd-controller@01c0c000 { 237 tcon0: lcd-controller@1c0c000 {
238 compatible = "allwinner,sun5i-a13-tcon"; 238 compatible = "allwinner,sun5i-a13-tcon";
239 reg = <0x01c0c000 0x1000>; 239 reg = <0x01c0c000 0x1000>;
240 interrupts = <44>; 240 interrupts = <44>;
@@ -278,7 +278,7 @@
278 }; 278 };
279 }; 279 };
280 280
281 mmc0: mmc@01c0f000 { 281 mmc0: mmc@1c0f000 {
282 compatible = "allwinner,sun5i-a13-mmc"; 282 compatible = "allwinner,sun5i-a13-mmc";
283 reg = <0x01c0f000 0x1000>; 283 reg = <0x01c0f000 0x1000>;
284 clocks = <&ccu CLK_AHB_MMC0>, <&ccu CLK_MMC0>; 284 clocks = <&ccu CLK_AHB_MMC0>, <&ccu CLK_MMC0>;
@@ -289,7 +289,7 @@
289 #size-cells = <0>; 289 #size-cells = <0>;
290 }; 290 };
291 291
292 mmc1: mmc@01c10000 { 292 mmc1: mmc@1c10000 {
293 compatible = "allwinner,sun5i-a13-mmc"; 293 compatible = "allwinner,sun5i-a13-mmc";
294 reg = <0x01c10000 0x1000>; 294 reg = <0x01c10000 0x1000>;
295 clocks = <&ccu CLK_AHB_MMC1>, <&ccu CLK_MMC1>; 295 clocks = <&ccu CLK_AHB_MMC1>, <&ccu CLK_MMC1>;
@@ -300,7 +300,7 @@
300 #size-cells = <0>; 300 #size-cells = <0>;
301 }; 301 };
302 302
303 mmc2: mmc@01c11000 { 303 mmc2: mmc@1c11000 {
304 compatible = "allwinner,sun5i-a13-mmc"; 304 compatible = "allwinner,sun5i-a13-mmc";
305 reg = <0x01c11000 0x1000>; 305 reg = <0x01c11000 0x1000>;
306 clocks = <&ccu CLK_AHB_MMC2>, <&ccu CLK_MMC2>; 306 clocks = <&ccu CLK_AHB_MMC2>, <&ccu CLK_MMC2>;
@@ -311,7 +311,7 @@
311 #size-cells = <0>; 311 #size-cells = <0>;
312 }; 312 };
313 313
314 usb_otg: usb@01c13000 { 314 usb_otg: usb@1c13000 {
315 compatible = "allwinner,sun4i-a10-musb"; 315 compatible = "allwinner,sun4i-a10-musb";
316 reg = <0x01c13000 0x0400>; 316 reg = <0x01c13000 0x0400>;
317 clocks = <&ccu CLK_AHB_OTG>; 317 clocks = <&ccu CLK_AHB_OTG>;
@@ -324,7 +324,7 @@
324 status = "disabled"; 324 status = "disabled";
325 }; 325 };
326 326
327 usbphy: phy@01c13400 { 327 usbphy: phy@1c13400 {
328 #phy-cells = <1>; 328 #phy-cells = <1>;
329 compatible = "allwinner,sun5i-a13-usb-phy"; 329 compatible = "allwinner,sun5i-a13-usb-phy";
330 reg = <0x01c13400 0x10 0x01c14800 0x4>; 330 reg = <0x01c13400 0x10 0x01c14800 0x4>;
@@ -336,7 +336,7 @@
336 status = "disabled"; 336 status = "disabled";
337 }; 337 };
338 338
339 ehci0: usb@01c14000 { 339 ehci0: usb@1c14000 {
340 compatible = "allwinner,sun5i-a13-ehci", "generic-ehci"; 340 compatible = "allwinner,sun5i-a13-ehci", "generic-ehci";
341 reg = <0x01c14000 0x100>; 341 reg = <0x01c14000 0x100>;
342 interrupts = <39>; 342 interrupts = <39>;
@@ -346,7 +346,7 @@
346 status = "disabled"; 346 status = "disabled";
347 }; 347 };
348 348
349 ohci0: usb@01c14400 { 349 ohci0: usb@1c14400 {
350 compatible = "allwinner,sun5i-a13-ohci", "generic-ohci"; 350 compatible = "allwinner,sun5i-a13-ohci", "generic-ohci";
351 reg = <0x01c14400 0x100>; 351 reg = <0x01c14400 0x100>;
352 interrupts = <40>; 352 interrupts = <40>;
@@ -356,7 +356,7 @@
356 status = "disabled"; 356 status = "disabled";
357 }; 357 };
358 358
359 crypto: crypto-engine@01c15000 { 359 crypto: crypto-engine@1c15000 {
360 compatible = "allwinner,sun5i-a13-crypto", 360 compatible = "allwinner,sun5i-a13-crypto",
361 "allwinner,sun4i-a10-crypto"; 361 "allwinner,sun4i-a10-crypto";
362 reg = <0x01c15000 0x1000>; 362 reg = <0x01c15000 0x1000>;
@@ -365,7 +365,7 @@
365 clock-names = "ahb", "mod"; 365 clock-names = "ahb", "mod";
366 }; 366 };
367 367
368 spi2: spi@01c17000 { 368 spi2: spi@1c17000 {
369 compatible = "allwinner,sun4i-a10-spi"; 369 compatible = "allwinner,sun4i-a10-spi";
370 reg = <0x01c17000 0x1000>; 370 reg = <0x01c17000 0x1000>;
371 interrupts = <12>; 371 interrupts = <12>;
@@ -379,7 +379,7 @@
379 #size-cells = <0>; 379 #size-cells = <0>;
380 }; 380 };
381 381
382 ccu: clock@01c20000 { 382 ccu: clock@1c20000 {
383 reg = <0x01c20000 0x400>; 383 reg = <0x01c20000 0x400>;
384 clocks = <&osc24M>, <&osc32k>; 384 clocks = <&osc24M>, <&osc32k>;
385 clock-names = "hosc", "losc"; 385 clock-names = "hosc", "losc";
@@ -387,14 +387,14 @@
387 #reset-cells = <1>; 387 #reset-cells = <1>;
388 }; 388 };
389 389
390 intc: interrupt-controller@01c20400 { 390 intc: interrupt-controller@1c20400 {
391 compatible = "allwinner,sun4i-a10-ic"; 391 compatible = "allwinner,sun4i-a10-ic";
392 reg = <0x01c20400 0x400>; 392 reg = <0x01c20400 0x400>;
393 interrupt-controller; 393 interrupt-controller;
394 #interrupt-cells = <1>; 394 #interrupt-cells = <1>;
395 }; 395 };
396 396
397 pio: pinctrl@01c20800 { 397 pio: pinctrl@1c20800 {
398 reg = <0x01c20800 0x400>; 398 reg = <0x01c20800 0x400>;
399 interrupts = <28>; 399 interrupts = <28>;
400 clocks = <&ccu CLK_APB0_PIO>, <&osc24M>, <&osc32k>; 400 clocks = <&ccu CLK_APB0_PIO>, <&osc24M>, <&osc32k>;
@@ -538,19 +538,19 @@
538 }; 538 };
539 }; 539 };
540 540
541 timer@01c20c00 { 541 timer@1c20c00 {
542 compatible = "allwinner,sun4i-a10-timer"; 542 compatible = "allwinner,sun4i-a10-timer";
543 reg = <0x01c20c00 0x90>; 543 reg = <0x01c20c00 0x90>;
544 interrupts = <22>; 544 interrupts = <22>;
545 clocks = <&ccu CLK_HOSC>; 545 clocks = <&ccu CLK_HOSC>;
546 }; 546 };
547 547
548 wdt: watchdog@01c20c90 { 548 wdt: watchdog@1c20c90 {
549 compatible = "allwinner,sun4i-a10-wdt"; 549 compatible = "allwinner,sun4i-a10-wdt";
550 reg = <0x01c20c90 0x10>; 550 reg = <0x01c20c90 0x10>;
551 }; 551 };
552 552
553 ir0: ir@01c21800 { 553 ir0: ir@1c21800 {
554 compatible = "allwinner,sun4i-a10-ir"; 554 compatible = "allwinner,sun4i-a10-ir";
555 clocks = <&ccu CLK_APB0_IR>, <&ccu CLK_IR>; 555 clocks = <&ccu CLK_APB0_IR>, <&ccu CLK_IR>;
556 clock-names = "apb", "ir"; 556 clock-names = "apb", "ir";
@@ -559,14 +559,14 @@
559 status = "disabled"; 559 status = "disabled";
560 }; 560 };
561 561
562 lradc: lradc@01c22800 { 562 lradc: lradc@1c22800 {
563 compatible = "allwinner,sun4i-a10-lradc-keys"; 563 compatible = "allwinner,sun4i-a10-lradc-keys";
564 reg = <0x01c22800 0x100>; 564 reg = <0x01c22800 0x100>;
565 interrupts = <31>; 565 interrupts = <31>;
566 status = "disabled"; 566 status = "disabled";
567 }; 567 };
568 568
569 codec: codec@01c22c00 { 569 codec: codec@1c22c00 {
570 #sound-dai-cells = <0>; 570 #sound-dai-cells = <0>;
571 compatible = "allwinner,sun4i-a10-codec"; 571 compatible = "allwinner,sun4i-a10-codec";
572 reg = <0x01c22c00 0x40>; 572 reg = <0x01c22c00 0x40>;
@@ -579,19 +579,19 @@
579 status = "disabled"; 579 status = "disabled";
580 }; 580 };
581 581
582 sid: eeprom@01c23800 { 582 sid: eeprom@1c23800 {
583 compatible = "allwinner,sun4i-a10-sid"; 583 compatible = "allwinner,sun4i-a10-sid";
584 reg = <0x01c23800 0x10>; 584 reg = <0x01c23800 0x10>;
585 }; 585 };
586 586
587 rtp: rtp@01c25000 { 587 rtp: rtp@1c25000 {
588 compatible = "allwinner,sun5i-a13-ts"; 588 compatible = "allwinner,sun5i-a13-ts";
589 reg = <0x01c25000 0x100>; 589 reg = <0x01c25000 0x100>;
590 interrupts = <29>; 590 interrupts = <29>;
591 #thermal-sensor-cells = <0>; 591 #thermal-sensor-cells = <0>;
592 }; 592 };
593 593
594 uart0: serial@01c28000 { 594 uart0: serial@1c28000 {
595 compatible = "snps,dw-apb-uart"; 595 compatible = "snps,dw-apb-uart";
596 reg = <0x01c28000 0x400>; 596 reg = <0x01c28000 0x400>;
597 interrupts = <1>; 597 interrupts = <1>;
@@ -601,7 +601,7 @@
601 status = "disabled"; 601 status = "disabled";
602 }; 602 };
603 603
604 uart1: serial@01c28400 { 604 uart1: serial@1c28400 {
605 compatible = "snps,dw-apb-uart"; 605 compatible = "snps,dw-apb-uart";
606 reg = <0x01c28400 0x400>; 606 reg = <0x01c28400 0x400>;
607 interrupts = <2>; 607 interrupts = <2>;
@@ -611,7 +611,7 @@
611 status = "disabled"; 611 status = "disabled";
612 }; 612 };
613 613
614 uart2: serial@01c28800 { 614 uart2: serial@1c28800 {
615 compatible = "snps,dw-apb-uart"; 615 compatible = "snps,dw-apb-uart";
616 reg = <0x01c28800 0x400>; 616 reg = <0x01c28800 0x400>;
617 interrupts = <3>; 617 interrupts = <3>;
@@ -621,7 +621,7 @@
621 status = "disabled"; 621 status = "disabled";
622 }; 622 };
623 623
624 uart3: serial@01c28c00 { 624 uart3: serial@1c28c00 {
625 compatible = "snps,dw-apb-uart"; 625 compatible = "snps,dw-apb-uart";
626 reg = <0x01c28c00 0x400>; 626 reg = <0x01c28c00 0x400>;
627 interrupts = <4>; 627 interrupts = <4>;
@@ -631,7 +631,7 @@
631 status = "disabled"; 631 status = "disabled";
632 }; 632 };
633 633
634 i2c0: i2c@01c2ac00 { 634 i2c0: i2c@1c2ac00 {
635 compatible = "allwinner,sun4i-a10-i2c"; 635 compatible = "allwinner,sun4i-a10-i2c";
636 reg = <0x01c2ac00 0x400>; 636 reg = <0x01c2ac00 0x400>;
637 interrupts = <7>; 637 interrupts = <7>;
@@ -641,7 +641,7 @@
641 #size-cells = <0>; 641 #size-cells = <0>;
642 }; 642 };
643 643
644 i2c1: i2c@01c2b000 { 644 i2c1: i2c@1c2b000 {
645 compatible = "allwinner,sun4i-a10-i2c"; 645 compatible = "allwinner,sun4i-a10-i2c";
646 reg = <0x01c2b000 0x400>; 646 reg = <0x01c2b000 0x400>;
647 interrupts = <8>; 647 interrupts = <8>;
@@ -651,7 +651,7 @@
651 #size-cells = <0>; 651 #size-cells = <0>;
652 }; 652 };
653 653
654 i2c2: i2c@01c2b400 { 654 i2c2: i2c@1c2b400 {
655 compatible = "allwinner,sun4i-a10-i2c"; 655 compatible = "allwinner,sun4i-a10-i2c";
656 reg = <0x01c2b400 0x400>; 656 reg = <0x01c2b400 0x400>;
657 interrupts = <9>; 657 interrupts = <9>;
@@ -661,14 +661,14 @@
661 #size-cells = <0>; 661 #size-cells = <0>;
662 }; 662 };
663 663
664 timer@01c60000 { 664 timer@1c60000 {
665 compatible = "allwinner,sun5i-a13-hstimer"; 665 compatible = "allwinner,sun5i-a13-hstimer";
666 reg = <0x01c60000 0x1000>; 666 reg = <0x01c60000 0x1000>;
667 interrupts = <82>, <83>; 667 interrupts = <82>, <83>;
668 clocks = <&ccu CLK_AHB_HSTIMER>; 668 clocks = <&ccu CLK_AHB_HSTIMER>;
669 }; 669 };
670 670
671 fe0: display-frontend@01e00000 { 671 fe0: display-frontend@1e00000 {
672 compatible = "allwinner,sun5i-a13-display-frontend"; 672 compatible = "allwinner,sun5i-a13-display-frontend";
673 reg = <0x01e00000 0x20000>; 673 reg = <0x01e00000 0x20000>;
674 interrupts = <47>; 674 interrupts = <47>;
@@ -696,7 +696,7 @@
696 }; 696 };
697 }; 697 };
698 698
699 be0: display-backend@01e60000 { 699 be0: display-backend@1e60000 {
700 compatible = "allwinner,sun5i-a13-display-backend"; 700 compatible = "allwinner,sun5i-a13-display-backend";
701 reg = <0x01e60000 0x10000>; 701 reg = <0x01e60000 0x10000>;
702 interrupts = <47>; 702 interrupts = <47>;
diff --git a/arch/arm/boot/dts/sun6i-a31-hummingbird.dts b/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
index 9ecb5f0b3f83..19e382a11297 100644
--- a/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
+++ b/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
@@ -62,6 +62,17 @@
62 stdout-path = "serial0:115200n8"; 62 stdout-path = "serial0:115200n8";
63 }; 63 };
64 64
65 hdmi-connector {
66 compatible = "hdmi-connector";
67 type = "a";
68
69 port {
70 hdmi_con_in: endpoint {
71 remote-endpoint = <&hdmi_out_con>;
72 };
73 };
74 };
75
65 vga-connector { 76 vga-connector {
66 compatible = "vga-connector"; 77 compatible = "vga-connector";
67 78
@@ -162,6 +173,16 @@
162 }; 173 };
163}; 174};
164 175
176&hdmi {
177 status = "okay";
178};
179
180&hdmi_out {
181 hdmi_out_con: endpoint {
182 remote-endpoint = <&hdmi_con_in>;
183 };
184};
185
165&i2c0 { 186&i2c0 {
166 pinctrl-names = "default"; 187 pinctrl-names = "default";
167 pinctrl-0 = <&i2c0_pins_a>; 188 pinctrl-0 = <&i2c0_pins_a>;
diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
index eef072a21acc..8bfa12b548e0 100644
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -221,7 +221,7 @@
221 clock-output-names = "gmac_int_tx"; 221 clock-output-names = "gmac_int_tx";
222 }; 222 };
223 223
224 gmac_tx_clk: clk@01c200d0 { 224 gmac_tx_clk: clk@1c200d0 {
225 #clock-cells = <0>; 225 #clock-cells = <0>;
226 compatible = "allwinner,sun7i-a20-gmac-clk"; 226 compatible = "allwinner,sun7i-a20-gmac-clk";
227 reg = <0x01c200d0 0x4>; 227 reg = <0x01c200d0 0x4>;
@@ -236,13 +236,13 @@
236 status = "disabled"; 236 status = "disabled";
237 }; 237 };
238 238
239 soc@01c00000 { 239 soc@1c00000 {
240 compatible = "simple-bus"; 240 compatible = "simple-bus";
241 #address-cells = <1>; 241 #address-cells = <1>;
242 #size-cells = <1>; 242 #size-cells = <1>;
243 ranges; 243 ranges;
244 244
245 dma: dma-controller@01c02000 { 245 dma: dma-controller@1c02000 {
246 compatible = "allwinner,sun6i-a31-dma"; 246 compatible = "allwinner,sun6i-a31-dma";
247 reg = <0x01c02000 0x1000>; 247 reg = <0x01c02000 0x1000>;
248 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 248 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
@@ -251,7 +251,7 @@
251 #dma-cells = <1>; 251 #dma-cells = <1>;
252 }; 252 };
253 253
254 tcon0: lcd-controller@01c0c000 { 254 tcon0: lcd-controller@1c0c000 {
255 compatible = "allwinner,sun6i-a31-tcon"; 255 compatible = "allwinner,sun6i-a31-tcon";
256 reg = <0x01c0c000 0x1000>; 256 reg = <0x01c0c000 0x1000>;
257 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 257 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
@@ -278,17 +278,28 @@
278 reg = <0>; 278 reg = <0>;
279 remote-endpoint = <&drc0_out_tcon0>; 279 remote-endpoint = <&drc0_out_tcon0>;
280 }; 280 };
281
282 tcon0_in_drc1: endpoint@1 {
283 reg = <1>;
284 remote-endpoint = <&drc1_out_tcon0>;
285 };
281 }; 286 };
282 287
283 tcon0_out: port@1 { 288 tcon0_out: port@1 {
284 #address-cells = <1>; 289 #address-cells = <1>;
285 #size-cells = <0>; 290 #size-cells = <0>;
286 reg = <1>; 291 reg = <1>;
292
293 tcon0_out_hdmi: endpoint@1 {
294 reg = <1>;
295 remote-endpoint = <&hdmi_in_tcon0>;
296 allwinner,tcon-channel = <1>;
297 };
287 }; 298 };
288 }; 299 };
289 }; 300 };
290 301
291 tcon1: lcd-controller@01c0d000 { 302 tcon1: lcd-controller@1c0d000 {
292 compatible = "allwinner,sun6i-a31-tcon"; 303 compatible = "allwinner,sun6i-a31-tcon";
293 reg = <0x01c0d000 0x1000>; 304 reg = <0x01c0d000 0x1000>;
294 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 305 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
@@ -311,6 +322,11 @@
311 #size-cells = <0>; 322 #size-cells = <0>;
312 reg = <0>; 323 reg = <0>;
313 324
325 tcon1_in_drc0: endpoint@0 {
326 reg = <0>;
327 remote-endpoint = <&drc0_out_tcon1>;
328 };
329
314 tcon1_in_drc1: endpoint@1 { 330 tcon1_in_drc1: endpoint@1 {
315 reg = <1>; 331 reg = <1>;
316 remote-endpoint = <&drc1_out_tcon1>; 332 remote-endpoint = <&drc1_out_tcon1>;
@@ -321,11 +337,17 @@
321 #address-cells = <1>; 337 #address-cells = <1>;
322 #size-cells = <0>; 338 #size-cells = <0>;
323 reg = <1>; 339 reg = <1>;
340
341 tcon1_out_hdmi: endpoint@1 {
342 reg = <1>;
343 remote-endpoint = <&hdmi_in_tcon1>;
344 allwinner,tcon-channel = <1>;
345 };
324 }; 346 };
325 }; 347 };
326 }; 348 };
327 349
328 mmc0: mmc@01c0f000 { 350 mmc0: mmc@1c0f000 {
329 compatible = "allwinner,sun7i-a20-mmc"; 351 compatible = "allwinner,sun7i-a20-mmc";
330 reg = <0x01c0f000 0x1000>; 352 reg = <0x01c0f000 0x1000>;
331 clocks = <&ccu CLK_AHB1_MMC0>, 353 clocks = <&ccu CLK_AHB1_MMC0>,
@@ -344,7 +366,7 @@
344 #size-cells = <0>; 366 #size-cells = <0>;
345 }; 367 };
346 368
347 mmc1: mmc@01c10000 { 369 mmc1: mmc@1c10000 {
348 compatible = "allwinner,sun7i-a20-mmc"; 370 compatible = "allwinner,sun7i-a20-mmc";
349 reg = <0x01c10000 0x1000>; 371 reg = <0x01c10000 0x1000>;
350 clocks = <&ccu CLK_AHB1_MMC1>, 372 clocks = <&ccu CLK_AHB1_MMC1>,
@@ -363,7 +385,7 @@
363 #size-cells = <0>; 385 #size-cells = <0>;
364 }; 386 };
365 387
366 mmc2: mmc@01c11000 { 388 mmc2: mmc@1c11000 {
367 compatible = "allwinner,sun7i-a20-mmc"; 389 compatible = "allwinner,sun7i-a20-mmc";
368 reg = <0x01c11000 0x1000>; 390 reg = <0x01c11000 0x1000>;
369 clocks = <&ccu CLK_AHB1_MMC2>, 391 clocks = <&ccu CLK_AHB1_MMC2>,
@@ -382,7 +404,7 @@
382 #size-cells = <0>; 404 #size-cells = <0>;
383 }; 405 };
384 406
385 mmc3: mmc@01c12000 { 407 mmc3: mmc@1c12000 {
386 compatible = "allwinner,sun7i-a20-mmc"; 408 compatible = "allwinner,sun7i-a20-mmc";
387 reg = <0x01c12000 0x1000>; 409 reg = <0x01c12000 0x1000>;
388 clocks = <&ccu CLK_AHB1_MMC3>, 410 clocks = <&ccu CLK_AHB1_MMC3>,
@@ -401,7 +423,50 @@
401 #size-cells = <0>; 423 #size-cells = <0>;
402 }; 424 };
403 425
404 usb_otg: usb@01c19000 { 426 hdmi: hdmi@1c16000 {
427 compatible = "allwinner,sun6i-a31-hdmi";
428 reg = <0x01c16000 0x1000>;
429 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
430 clocks = <&ccu CLK_AHB1_HDMI>, <&ccu CLK_HDMI>,
431 <&ccu CLK_HDMI_DDC>,
432 <&ccu 7>,
433 <&ccu 13>;
434 clock-names = "ahb", "mod", "ddc", "pll-0", "pll-1";
435 resets = <&ccu RST_AHB1_HDMI>;
436 reset-names = "ahb";
437 dma-names = "ddc-tx", "ddc-rx", "audio-tx";
438 dmas = <&dma 13>, <&dma 13>, <&dma 14>;
439 status = "disabled";
440
441 ports {
442 #address-cells = <1>;
443 #size-cells = <0>;
444
445 hdmi_in: port@0 {
446 #address-cells = <1>;
447 #size-cells = <0>;
448 reg = <0>;
449
450 hdmi_in_tcon0: endpoint@0 {
451 reg = <0>;
452 remote-endpoint = <&tcon0_out_hdmi>;
453 };
454
455 hdmi_in_tcon1: endpoint@1 {
456 reg = <1>;
457 remote-endpoint = <&tcon1_out_hdmi>;
458 };
459 };
460
461 hdmi_out: port@1 {
462 #address-cells = <1>;
463 #size-cells = <0>;
464 reg = <1>;
465 };
466 };
467 };
468
469 usb_otg: usb@1c19000 {
405 compatible = "allwinner,sun6i-a31-musb"; 470 compatible = "allwinner,sun6i-a31-musb";
406 reg = <0x01c19000 0x0400>; 471 reg = <0x01c19000 0x0400>;
407 clocks = <&ccu CLK_AHB1_OTG>; 472 clocks = <&ccu CLK_AHB1_OTG>;
@@ -414,7 +479,7 @@
414 status = "disabled"; 479 status = "disabled";
415 }; 480 };
416 481
417 usbphy: phy@01c19400 { 482 usbphy: phy@1c19400 {
418 compatible = "allwinner,sun6i-a31-usb-phy"; 483 compatible = "allwinner,sun6i-a31-usb-phy";
419 reg = <0x01c19400 0x10>, 484 reg = <0x01c19400 0x10>,
420 <0x01c1a800 0x4>, 485 <0x01c1a800 0x4>,
@@ -438,7 +503,7 @@
438 #phy-cells = <1>; 503 #phy-cells = <1>;
439 }; 504 };
440 505
441 ehci0: usb@01c1a000 { 506 ehci0: usb@1c1a000 {
442 compatible = "allwinner,sun6i-a31-ehci", "generic-ehci"; 507 compatible = "allwinner,sun6i-a31-ehci", "generic-ehci";
443 reg = <0x01c1a000 0x100>; 508 reg = <0x01c1a000 0x100>;
444 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 509 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
@@ -449,7 +514,7 @@
449 status = "disabled"; 514 status = "disabled";
450 }; 515 };
451 516
452 ohci0: usb@01c1a400 { 517 ohci0: usb@1c1a400 {
453 compatible = "allwinner,sun6i-a31-ohci", "generic-ohci"; 518 compatible = "allwinner,sun6i-a31-ohci", "generic-ohci";
454 reg = <0x01c1a400 0x100>; 519 reg = <0x01c1a400 0x100>;
455 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 520 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
@@ -460,7 +525,7 @@
460 status = "disabled"; 525 status = "disabled";
461 }; 526 };
462 527
463 ehci1: usb@01c1b000 { 528 ehci1: usb@1c1b000 {
464 compatible = "allwinner,sun6i-a31-ehci", "generic-ehci"; 529 compatible = "allwinner,sun6i-a31-ehci", "generic-ehci";
465 reg = <0x01c1b000 0x100>; 530 reg = <0x01c1b000 0x100>;
466 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 531 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
@@ -471,7 +536,7 @@
471 status = "disabled"; 536 status = "disabled";
472 }; 537 };
473 538
474 ohci1: usb@01c1b400 { 539 ohci1: usb@1c1b400 {
475 compatible = "allwinner,sun6i-a31-ohci", "generic-ohci"; 540 compatible = "allwinner,sun6i-a31-ohci", "generic-ohci";
476 reg = <0x01c1b400 0x100>; 541 reg = <0x01c1b400 0x100>;
477 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 542 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
@@ -482,7 +547,7 @@
482 status = "disabled"; 547 status = "disabled";
483 }; 548 };
484 549
485 ohci2: usb@01c1c400 { 550 ohci2: usb@1c1c400 {
486 compatible = "allwinner,sun6i-a31-ohci", "generic-ohci"; 551 compatible = "allwinner,sun6i-a31-ohci", "generic-ohci";
487 reg = <0x01c1c400 0x100>; 552 reg = <0x01c1c400 0x100>;
488 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 553 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
@@ -491,7 +556,7 @@
491 status = "disabled"; 556 status = "disabled";
492 }; 557 };
493 558
494 ccu: clock@01c20000 { 559 ccu: clock@1c20000 {
495 compatible = "allwinner,sun6i-a31-ccu"; 560 compatible = "allwinner,sun6i-a31-ccu";
496 reg = <0x01c20000 0x400>; 561 reg = <0x01c20000 0x400>;
497 clocks = <&osc24M>, <&osc32k>; 562 clocks = <&osc24M>, <&osc32k>;
@@ -500,7 +565,7 @@
500 #reset-cells = <1>; 565 #reset-cells = <1>;
501 }; 566 };
502 567
503 pio: pinctrl@01c20800 { 568 pio: pinctrl@1c20800 {
504 compatible = "allwinner,sun6i-a31-pinctrl"; 569 compatible = "allwinner,sun6i-a31-pinctrl";
505 reg = <0x01c20800 0x400>; 570 reg = <0x01c20800 0x400>;
506 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 571 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
@@ -633,7 +698,7 @@
633 }; 698 };
634 }; 699 };
635 700
636 timer@01c20c00 { 701 timer@1c20c00 {
637 compatible = "allwinner,sun4i-a10-timer"; 702 compatible = "allwinner,sun4i-a10-timer";
638 reg = <0x01c20c00 0xa0>; 703 reg = <0x01c20c00 0xa0>;
639 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 704 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
@@ -644,12 +709,12 @@
644 clocks = <&osc24M>; 709 clocks = <&osc24M>;
645 }; 710 };
646 711
647 wdt1: watchdog@01c20ca0 { 712 wdt1: watchdog@1c20ca0 {
648 compatible = "allwinner,sun6i-a31-wdt"; 713 compatible = "allwinner,sun6i-a31-wdt";
649 reg = <0x01c20ca0 0x20>; 714 reg = <0x01c20ca0 0x20>;
650 }; 715 };
651 716
652 spdif: spdif@01c21000 { 717 spdif: spdif@1c21000 {
653 #sound-dai-cells = <0>; 718 #sound-dai-cells = <0>;
654 compatible = "allwinner,sun6i-a31-spdif"; 719 compatible = "allwinner,sun6i-a31-spdif";
655 reg = <0x01c21000 0x400>; 720 reg = <0x01c21000 0x400>;
@@ -662,21 +727,47 @@
662 status = "disabled"; 727 status = "disabled";
663 }; 728 };
664 729
665 lradc: lradc@01c22800 { 730 i2s0: i2s@1c22000 {
731 #sound-dai-cells = <0>;
732 compatible = "allwinner,sun6i-a31-i2s";
733 reg = <0x01c22000 0x400>;
734 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
735 clocks = <&ccu CLK_APB1_DAUDIO0>, <&ccu CLK_DAUDIO0>;
736 resets = <&ccu RST_APB1_DAUDIO0>;
737 clock-names = "apb", "mod";
738 dmas = <&dma 3>, <&dma 3>;
739 dma-names = "rx", "tx";
740 status = "disabled";
741 };
742
743 i2s1: i2s@1c22400 {
744 #sound-dai-cells = <0>;
745 compatible = "allwinner,sun6i-a31-i2s";
746 reg = <0x01c22400 0x400>;
747 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
748 clocks = <&ccu CLK_APB1_DAUDIO1>, <&ccu CLK_DAUDIO1>;
749 resets = <&ccu RST_APB1_DAUDIO1>;
750 clock-names = "apb", "mod";
751 dmas = <&dma 4>, <&dma 4>;
752 dma-names = "rx", "tx";
753 status = "disabled";
754 };
755
756 lradc: lradc@1c22800 {
666 compatible = "allwinner,sun4i-a10-lradc-keys"; 757 compatible = "allwinner,sun4i-a10-lradc-keys";
667 reg = <0x01c22800 0x100>; 758 reg = <0x01c22800 0x100>;
668 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 759 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
669 status = "disabled"; 760 status = "disabled";
670 }; 761 };
671 762
672 rtp: rtp@01c25000 { 763 rtp: rtp@1c25000 {
673 compatible = "allwinner,sun6i-a31-ts"; 764 compatible = "allwinner,sun6i-a31-ts";
674 reg = <0x01c25000 0x100>; 765 reg = <0x01c25000 0x100>;
675 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 766 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
676 #thermal-sensor-cells = <0>; 767 #thermal-sensor-cells = <0>;
677 }; 768 };
678 769
679 uart0: serial@01c28000 { 770 uart0: serial@1c28000 {
680 compatible = "snps,dw-apb-uart"; 771 compatible = "snps,dw-apb-uart";
681 reg = <0x01c28000 0x400>; 772 reg = <0x01c28000 0x400>;
682 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 773 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
@@ -689,7 +780,7 @@
689 status = "disabled"; 780 status = "disabled";
690 }; 781 };
691 782
692 uart1: serial@01c28400 { 783 uart1: serial@1c28400 {
693 compatible = "snps,dw-apb-uart"; 784 compatible = "snps,dw-apb-uart";
694 reg = <0x01c28400 0x400>; 785 reg = <0x01c28400 0x400>;
695 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 786 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
@@ -702,7 +793,7 @@
702 status = "disabled"; 793 status = "disabled";
703 }; 794 };
704 795
705 uart2: serial@01c28800 { 796 uart2: serial@1c28800 {
706 compatible = "snps,dw-apb-uart"; 797 compatible = "snps,dw-apb-uart";
707 reg = <0x01c28800 0x400>; 798 reg = <0x01c28800 0x400>;
708 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 799 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
@@ -715,7 +806,7 @@
715 status = "disabled"; 806 status = "disabled";
716 }; 807 };
717 808
718 uart3: serial@01c28c00 { 809 uart3: serial@1c28c00 {
719 compatible = "snps,dw-apb-uart"; 810 compatible = "snps,dw-apb-uart";
720 reg = <0x01c28c00 0x400>; 811 reg = <0x01c28c00 0x400>;
721 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 812 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
@@ -728,7 +819,7 @@
728 status = "disabled"; 819 status = "disabled";
729 }; 820 };
730 821
731 uart4: serial@01c29000 { 822 uart4: serial@1c29000 {
732 compatible = "snps,dw-apb-uart"; 823 compatible = "snps,dw-apb-uart";
733 reg = <0x01c29000 0x400>; 824 reg = <0x01c29000 0x400>;
734 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 825 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
@@ -741,7 +832,7 @@
741 status = "disabled"; 832 status = "disabled";
742 }; 833 };
743 834
744 uart5: serial@01c29400 { 835 uart5: serial@1c29400 {
745 compatible = "snps,dw-apb-uart"; 836 compatible = "snps,dw-apb-uart";
746 reg = <0x01c29400 0x400>; 837 reg = <0x01c29400 0x400>;
747 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 838 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
@@ -754,7 +845,7 @@
754 status = "disabled"; 845 status = "disabled";
755 }; 846 };
756 847
757 i2c0: i2c@01c2ac00 { 848 i2c0: i2c@1c2ac00 {
758 compatible = "allwinner,sun6i-a31-i2c"; 849 compatible = "allwinner,sun6i-a31-i2c";
759 reg = <0x01c2ac00 0x400>; 850 reg = <0x01c2ac00 0x400>;
760 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 851 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
@@ -765,7 +856,7 @@
765 #size-cells = <0>; 856 #size-cells = <0>;
766 }; 857 };
767 858
768 i2c1: i2c@01c2b000 { 859 i2c1: i2c@1c2b000 {
769 compatible = "allwinner,sun6i-a31-i2c"; 860 compatible = "allwinner,sun6i-a31-i2c";
770 reg = <0x01c2b000 0x400>; 861 reg = <0x01c2b000 0x400>;
771 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 862 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
@@ -776,7 +867,7 @@
776 #size-cells = <0>; 867 #size-cells = <0>;
777 }; 868 };
778 869
779 i2c2: i2c@01c2b400 { 870 i2c2: i2c@1c2b400 {
780 compatible = "allwinner,sun6i-a31-i2c"; 871 compatible = "allwinner,sun6i-a31-i2c";
781 reg = <0x01c2b400 0x400>; 872 reg = <0x01c2b400 0x400>;
782 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 873 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
@@ -787,7 +878,7 @@
787 #size-cells = <0>; 878 #size-cells = <0>;
788 }; 879 };
789 880
790 i2c3: i2c@01c2b800 { 881 i2c3: i2c@1c2b800 {
791 compatible = "allwinner,sun6i-a31-i2c"; 882 compatible = "allwinner,sun6i-a31-i2c";
792 reg = <0x01c2b800 0x400>; 883 reg = <0x01c2b800 0x400>;
793 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 884 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
@@ -798,7 +889,7 @@
798 #size-cells = <0>; 889 #size-cells = <0>;
799 }; 890 };
800 891
801 gmac: ethernet@01c30000 { 892 gmac: ethernet@1c30000 {
802 compatible = "allwinner,sun7i-a20-gmac"; 893 compatible = "allwinner,sun7i-a20-gmac";
803 reg = <0x01c30000 0x1054>; 894 reg = <0x01c30000 0x1054>;
804 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 895 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
@@ -815,7 +906,7 @@
815 #size-cells = <0>; 906 #size-cells = <0>;
816 }; 907 };
817 908
818 crypto: crypto-engine@01c15000 { 909 crypto: crypto-engine@1c15000 {
819 compatible = "allwinner,sun6i-a31-crypto", 910 compatible = "allwinner,sun6i-a31-crypto",
820 "allwinner,sun4i-a10-crypto"; 911 "allwinner,sun4i-a10-crypto";
821 reg = <0x01c15000 0x1000>; 912 reg = <0x01c15000 0x1000>;
@@ -826,7 +917,7 @@
826 reset-names = "ahb"; 917 reset-names = "ahb";
827 }; 918 };
828 919
829 codec: codec@01c22c00 { 920 codec: codec@1c22c00 {
830 #sound-dai-cells = <0>; 921 #sound-dai-cells = <0>;
831 compatible = "allwinner,sun6i-a31-codec"; 922 compatible = "allwinner,sun6i-a31-codec";
832 reg = <0x01c22c00 0x400>; 923 reg = <0x01c22c00 0x400>;
@@ -839,7 +930,7 @@
839 status = "disabled"; 930 status = "disabled";
840 }; 931 };
841 932
842 timer@01c60000 { 933 timer@1c60000 {
843 compatible = "allwinner,sun6i-a31-hstimer", 934 compatible = "allwinner,sun6i-a31-hstimer",
844 "allwinner,sun7i-a20-hstimer"; 935 "allwinner,sun7i-a20-hstimer";
845 reg = <0x01c60000 0x1000>; 936 reg = <0x01c60000 0x1000>;
@@ -851,7 +942,7 @@
851 resets = <&ccu RST_AHB1_HSTIMER>; 942 resets = <&ccu RST_AHB1_HSTIMER>;
852 }; 943 };
853 944
854 spi0: spi@01c68000 { 945 spi0: spi@1c68000 {
855 compatible = "allwinner,sun6i-a31-spi"; 946 compatible = "allwinner,sun6i-a31-spi";
856 reg = <0x01c68000 0x1000>; 947 reg = <0x01c68000 0x1000>;
857 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 948 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
@@ -863,7 +954,7 @@
863 status = "disabled"; 954 status = "disabled";
864 }; 955 };
865 956
866 spi1: spi@01c69000 { 957 spi1: spi@1c69000 {
867 compatible = "allwinner,sun6i-a31-spi"; 958 compatible = "allwinner,sun6i-a31-spi";
868 reg = <0x01c69000 0x1000>; 959 reg = <0x01c69000 0x1000>;
869 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 960 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
@@ -875,7 +966,7 @@
875 status = "disabled"; 966 status = "disabled";
876 }; 967 };
877 968
878 spi2: spi@01c6a000 { 969 spi2: spi@1c6a000 {
879 compatible = "allwinner,sun6i-a31-spi"; 970 compatible = "allwinner,sun6i-a31-spi";
880 reg = <0x01c6a000 0x1000>; 971 reg = <0x01c6a000 0x1000>;
881 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 972 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
@@ -887,7 +978,7 @@
887 status = "disabled"; 978 status = "disabled";
888 }; 979 };
889 980
890 spi3: spi@01c6b000 { 981 spi3: spi@1c6b000 {
891 compatible = "allwinner,sun6i-a31-spi"; 982 compatible = "allwinner,sun6i-a31-spi";
892 reg = <0x01c6b000 0x1000>; 983 reg = <0x01c6b000 0x1000>;
893 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 984 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
@@ -899,7 +990,7 @@
899 status = "disabled"; 990 status = "disabled";
900 }; 991 };
901 992
902 gic: interrupt-controller@01c81000 { 993 gic: interrupt-controller@1c81000 {
903 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; 994 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
904 reg = <0x01c81000 0x1000>, 995 reg = <0x01c81000 0x1000>,
905 <0x01c82000 0x2000>, 996 <0x01c82000 0x2000>,
@@ -910,7 +1001,7 @@
910 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 1001 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
911 }; 1002 };
912 1003
913 fe0: display-frontend@01e00000 { 1004 fe0: display-frontend@1e00000 {
914 compatible = "allwinner,sun6i-a31-display-frontend"; 1005 compatible = "allwinner,sun6i-a31-display-frontend";
915 reg = <0x01e00000 0x20000>; 1006 reg = <0x01e00000 0x20000>;
916 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 1007 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
@@ -942,7 +1033,7 @@
942 }; 1033 };
943 }; 1034 };
944 1035
945 fe1: display-frontend@01e20000 { 1036 fe1: display-frontend@1e20000 {
946 compatible = "allwinner,sun6i-a31-display-frontend"; 1037 compatible = "allwinner,sun6i-a31-display-frontend";
947 reg = <0x01e20000 0x20000>; 1038 reg = <0x01e20000 0x20000>;
948 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 1039 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
@@ -974,7 +1065,7 @@
974 }; 1065 };
975 }; 1066 };
976 1067
977 be1: display-backend@01e40000 { 1068 be1: display-backend@1e40000 {
978 compatible = "allwinner,sun6i-a31-display-backend"; 1069 compatible = "allwinner,sun6i-a31-display-backend";
979 reg = <0x01e40000 0x10000>; 1070 reg = <0x01e40000 0x10000>;
980 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 1071 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
@@ -1020,7 +1111,7 @@
1020 }; 1111 };
1021 }; 1112 };
1022 1113
1023 drc1: drc@01e50000 { 1114 drc1: drc@1e50000 {
1024 compatible = "allwinner,sun6i-a31-drc"; 1115 compatible = "allwinner,sun6i-a31-drc";
1025 reg = <0x01e50000 0x10000>; 1116 reg = <0x01e50000 0x10000>;
1026 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 1117 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
@@ -1053,6 +1144,11 @@
1053 #size-cells = <0>; 1144 #size-cells = <0>;
1054 reg = <1>; 1145 reg = <1>;
1055 1146
1147 drc1_out_tcon0: endpoint@0 {
1148 reg = <0>;
1149 remote-endpoint = <&tcon0_in_drc1>;
1150 };
1151
1056 drc1_out_tcon1: endpoint@1 { 1152 drc1_out_tcon1: endpoint@1 {
1057 reg = <1>; 1153 reg = <1>;
1058 remote-endpoint = <&tcon1_in_drc1>; 1154 remote-endpoint = <&tcon1_in_drc1>;
@@ -1061,7 +1157,7 @@
1061 }; 1157 };
1062 }; 1158 };
1063 1159
1064 be0: display-backend@01e60000 { 1160 be0: display-backend@1e60000 {
1065 compatible = "allwinner,sun6i-a31-display-backend"; 1161 compatible = "allwinner,sun6i-a31-display-backend";
1066 reg = <0x01e60000 0x10000>; 1162 reg = <0x01e60000 0x10000>;
1067 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 1163 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
@@ -1107,7 +1203,7 @@
1107 }; 1203 };
1108 }; 1204 };
1109 1205
1110 drc0: drc@01e70000 { 1206 drc0: drc@1e70000 {
1111 compatible = "allwinner,sun6i-a31-drc"; 1207 compatible = "allwinner,sun6i-a31-drc";
1112 reg = <0x01e70000 0x10000>; 1208 reg = <0x01e70000 0x10000>;
1113 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 1209 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
@@ -1144,11 +1240,16 @@
1144 reg = <0>; 1240 reg = <0>;
1145 remote-endpoint = <&tcon0_in_drc0>; 1241 remote-endpoint = <&tcon0_in_drc0>;
1146 }; 1242 };
1243
1244 drc0_out_tcon1: endpoint@1 {
1245 reg = <1>;
1246 remote-endpoint = <&tcon1_in_drc0>;
1247 };
1147 }; 1248 };
1148 }; 1249 };
1149 }; 1250 };
1150 1251
1151 rtc: rtc@01f00000 { 1252 rtc: rtc@1f00000 {
1152 compatible = "allwinner,sun6i-a31-rtc"; 1253 compatible = "allwinner,sun6i-a31-rtc";
1153 reg = <0x01f00000 0x54>; 1254 reg = <0x01f00000 0x54>;
1154 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 1255 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
@@ -1163,7 +1264,7 @@
1163 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 1264 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
1164 }; 1265 };
1165 1266
1166 prcm@01f01400 { 1267 prcm@1f01400 {
1167 compatible = "allwinner,sun6i-a31-prcm"; 1268 compatible = "allwinner,sun6i-a31-prcm";
1168 reg = <0x01f01400 0x200>; 1269 reg = <0x01f01400 0x200>;
1169 1270
@@ -1215,12 +1316,12 @@
1215 }; 1316 };
1216 }; 1317 };
1217 1318
1218 cpucfg@01f01c00 { 1319 cpucfg@1f01c00 {
1219 compatible = "allwinner,sun6i-a31-cpuconfig"; 1320 compatible = "allwinner,sun6i-a31-cpuconfig";
1220 reg = <0x01f01c00 0x300>; 1321 reg = <0x01f01c00 0x300>;
1221 }; 1322 };
1222 1323
1223 ir: ir@01f02000 { 1324 ir: ir@1f02000 {
1224 compatible = "allwinner,sun5i-a13-ir"; 1325 compatible = "allwinner,sun5i-a13-ir";
1225 clocks = <&apb0_gates 1>, <&ir_clk>; 1326 clocks = <&apb0_gates 1>, <&ir_clk>;
1226 clock-names = "apb", "ir"; 1327 clock-names = "apb", "ir";
@@ -1230,7 +1331,7 @@
1230 status = "disabled"; 1331 status = "disabled";
1231 }; 1332 };
1232 1333
1233 r_pio: pinctrl@01f02c00 { 1334 r_pio: pinctrl@1f02c00 {
1234 compatible = "allwinner,sun6i-a31-r-pinctrl"; 1335 compatible = "allwinner,sun6i-a31-r-pinctrl";
1235 reg = <0x01f02c00 0x400>; 1336 reg = <0x01f02c00 0x400>;
1236 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 1337 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
@@ -1255,7 +1356,7 @@
1255 }; 1356 };
1256 }; 1357 };
1257 1358
1258 p2wi: i2c@01f03400 { 1359 p2wi: i2c@1f03400 {
1259 compatible = "allwinner,sun6i-a31-p2wi"; 1360 compatible = "allwinner,sun6i-a31-p2wi";
1260 reg = <0x01f03400 0x400>; 1361 reg = <0x01f03400 0x400>;
1261 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 1362 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/sun6i-a31s-primo81.dts b/arch/arm/boot/dts/sun6i-a31s-primo81.dts
index 4c10123509c4..0cdb38ab3377 100644
--- a/arch/arm/boot/dts/sun6i-a31s-primo81.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-primo81.dts
@@ -52,17 +52,42 @@
52/ { 52/ {
53 model = "MSI Primo81 tablet"; 53 model = "MSI Primo81 tablet";
54 compatible = "msi,primo81", "allwinner,sun6i-a31s"; 54 compatible = "msi,primo81", "allwinner,sun6i-a31s";
55
56 hdmi-connector {
57 compatible = "hdmi-connector";
58 type = "c";
59
60 port {
61 hdmi_con_in: endpoint {
62 remote-endpoint = <&hdmi_out_con>;
63 };
64 };
65 };
55}; 66};
56 67
57&cpu0 { 68&cpu0 {
58 cpu-supply = <&reg_dcdc3>; 69 cpu-supply = <&reg_dcdc3>;
59}; 70};
60 71
72&de {
73 status = "okay";
74};
75
61&ehci0 { 76&ehci0 {
62 /* rtl8188etv wifi is connected here */ 77 /* rtl8188etv wifi is connected here */
63 status = "okay"; 78 status = "okay";
64}; 79};
65 80
81&hdmi {
82 status = "okay";
83};
84
85&hdmi_out {
86 hdmi_out_con: endpoint {
87 remote-endpoint = <&hdmi_con_in>;
88 };
89};
90
66&i2c0 { 91&i2c0 {
67 /* pull-ups and device VDDIO use AXP221 DLDO3 */ 92 /* pull-ups and device VDDIO use AXP221 DLDO3 */
68 pinctrl-names = "default"; 93 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/sun6i-a31s-sina31s.dts b/arch/arm/boot/dts/sun6i-a31s-sina31s.dts
index b3d98222bd81..298476485bb4 100644
--- a/arch/arm/boot/dts/sun6i-a31s-sina31s.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-sina31s.dts
@@ -53,6 +53,17 @@
53 stdout-path = "serial0:115200n8"; 53 stdout-path = "serial0:115200n8";
54 }; 54 };
55 55
56 hdmi-connector {
57 compatible = "hdmi-connector";
58 type = "a";
59
60 port {
61 hdmi_con_in: endpoint {
62 remote-endpoint = <&hdmi_out_con>;
63 };
64 };
65 };
66
56 leds { 67 leds {
57 compatible = "gpio-leds"; 68 compatible = "gpio-leds";
58 pinctrl-names = "default"; 69 pinctrl-names = "default";
@@ -90,6 +101,10 @@
90 status = "okay"; 101 status = "okay";
91}; 102};
92 103
104&de {
105 status = "okay";
106};
107
93&ehci0 { 108&ehci0 {
94 /* USB 2.0 4 port hub IC */ 109 /* USB 2.0 4 port hub IC */
95 status = "okay"; 110 status = "okay";
@@ -112,6 +127,16 @@
112 }; 127 };
113}; 128};
114 129
130&hdmi {
131 status = "okay";
132};
133
134&hdmi_out {
135 hdmi_out_con: endpoint {
136 remote-endpoint = <&hdmi_con_in>;
137 };
138};
139
115&ir { 140&ir {
116 pinctrl-names = "default"; 141 pinctrl-names = "default";
117 pinctrl-0 = <&ir_pins_a>; 142 pinctrl-0 = <&ir_pins_a>;
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 eb55e74232c9..4ed3162e3e5a 100644
--- a/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
+++ b/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
@@ -60,6 +60,17 @@
60 stdout-path = "serial0:115200n8"; 60 stdout-path = "serial0:115200n8";
61 }; 61 };
62 62
63 hdmi-connector {
64 compatible = "hdmi-connector";
65 type = "a";
66
67 port {
68 hdmi_con_in: endpoint {
69 remote-endpoint = <&hdmi_out_con>;
70 };
71 };
72 };
73
63 leds { 74 leds {
64 compatible = "gpio-leds"; 75 compatible = "gpio-leds";
65 pinctrl-names = "default"; 76 pinctrl-names = "default";
@@ -109,6 +120,10 @@
109 cpu-supply = <&reg_dcdc2>; 120 cpu-supply = <&reg_dcdc2>;
110}; 121};
111 122
123&de {
124 status = "okay";
125};
126
112&ehci0 { 127&ehci0 {
113 status = "okay"; 128 status = "okay";
114}; 129};
@@ -130,6 +145,16 @@
130 }; 145 };
131}; 146};
132 147
148&hdmi {
149 status = "okay";
150};
151
152&hdmi_out {
153 hdmi_out_con: endpoint {
154 remote-endpoint = <&hdmi_con_in>;
155 };
156};
157
133&i2c0 { 158&i2c0 {
134 pinctrl-names = "default"; 159 pinctrl-names = "default";
135 pinctrl-0 = <&i2c0_pins_a>; 160 pinctrl-0 = <&i2c0_pins_a>;
diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
index 2a50207618cb..39f43e4eb742 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
@@ -61,6 +61,17 @@
61 stdout-path = "serial0:115200n8"; 61 stdout-path = "serial0:115200n8";
62 }; 62 };
63 63
64 hdmi-connector {
65 compatible = "hdmi-connector";
66 type = "a";
67
68 port {
69 hdmi_con_in: endpoint {
70 remote-endpoint = <&hdmi_out_con>;
71 };
72 };
73 };
74
64 leds { 75 leds {
65 compatible = "gpio-leds"; 76 compatible = "gpio-leds";
66 pinctrl-names = "default"; 77 pinctrl-names = "default";
@@ -91,6 +102,10 @@
91 cpu-supply = <&reg_dcdc2>; 102 cpu-supply = <&reg_dcdc2>;
92}; 103};
93 104
105&de {
106 status = "okay";
107};
108
94&ehci0 { 109&ehci0 {
95 status = "okay"; 110 status = "okay";
96}; 111};
@@ -111,6 +126,16 @@
111 }; 126 };
112}; 127};
113 128
129&hdmi {
130 status = "okay";
131};
132
133&hdmi_out {
134 hdmi_out_con: endpoint {
135 remote-endpoint = <&hdmi_con_in>;
136 };
137};
138
114&i2c0 { 139&i2c0 {
115 pinctrl-names = "default"; 140 pinctrl-names = "default";
116 pinctrl-0 = <&i2c0_pins_a>; 141 pinctrl-0 = <&i2c0_pins_a>;
diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
index 852a0aa24dce..8c9bedc602ec 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
@@ -61,6 +61,17 @@
61 stdout-path = "serial0:115200n8"; 61 stdout-path = "serial0:115200n8";
62 }; 62 };
63 63
64 hdmi-connector {
65 compatible = "hdmi-connector";
66 type = "a";
67
68 port {
69 hdmi_con_in: endpoint {
70 remote-endpoint = <&hdmi_out_con>;
71 };
72 };
73 };
74
64 leds { 75 leds {
65 compatible = "gpio-leds"; 76 compatible = "gpio-leds";
66 pinctrl-names = "default"; 77 pinctrl-names = "default";
@@ -126,6 +137,10 @@
126 cpu-supply = <&reg_dcdc2>; 137 cpu-supply = <&reg_dcdc2>;
127}; 138};
128 139
140&de {
141 status = "okay";
142};
143
129&ehci0 { 144&ehci0 {
130 status = "okay"; 145 status = "okay";
131}; 146};
@@ -146,6 +161,16 @@
146 }; 161 };
147}; 162};
148 163
164&hdmi {
165 status = "okay";
166};
167
168&hdmi_out {
169 hdmi_out_con: endpoint {
170 remote-endpoint = <&hdmi_con_in>;
171 };
172};
173
149&i2c0 { 174&i2c0 {
150 pinctrl-names = "default"; 175 pinctrl-names = "default";
151 pinctrl-0 = <&i2c0_pins_a>; 176 pinctrl-0 = <&i2c0_pins_a>;
diff --git a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
index 004b6ddac813..442f3c755f36 100644
--- a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
+++ b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
@@ -61,6 +61,17 @@
61 stdout-path = "serial0:115200n8"; 61 stdout-path = "serial0:115200n8";
62 }; 62 };
63 63
64 hdmi-connector {
65 compatible = "hdmi-connector";
66 type = "a";
67
68 port {
69 hdmi_con_in: endpoint {
70 remote-endpoint = <&hdmi_out_con>;
71 };
72 };
73 };
74
64 leds { 75 leds {
65 compatible = "gpio-leds"; 76 compatible = "gpio-leds";
66 pinctrl-names = "default"; 77 pinctrl-names = "default";
@@ -98,6 +109,10 @@
98 cpu-supply = <&reg_dcdc2>; 109 cpu-supply = <&reg_dcdc2>;
99}; 110};
100 111
112&de {
113 status = "okay";
114};
115
101&ehci0 { 116&ehci0 {
102 status = "okay"; 117 status = "okay";
103}; 118};
@@ -173,6 +188,16 @@
173 }; 188 };
174}; 189};
175 190
191&hdmi {
192 status = "okay";
193};
194
195&hdmi_out {
196 hdmi_out_con: endpoint {
197 remote-endpoint = <&hdmi_con_in>;
198 };
199};
200
176&i2c0 { 201&i2c0 {
177 pinctrl-names = "default"; 202 pinctrl-names = "default";
178 pinctrl-0 = <&i2c0_pins_a>; 203 pinctrl-0 = <&i2c0_pins_a>;
@@ -241,6 +266,14 @@
241 266
242#include "axp209.dtsi" 267#include "axp209.dtsi"
243 268
269&ac_power_supply {
270 status = "okay";
271};
272
273&battery_power_supply {
274 status = "okay";
275};
276
244&reg_ahci_5v { 277&reg_ahci_5v {
245 gpio = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */ 278 gpio = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
246 status = "okay"; 279 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 2ce1a9f13a17..edf9c3c6c0d7 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
@@ -62,6 +62,17 @@
62 stdout-path = "serial0:115200n8"; 62 stdout-path = "serial0:115200n8";
63 }; 63 };
64 64
65 hdmi-connector {
66 compatible = "hdmi-connector";
67 type = "a";
68
69 port {
70 hdmi_con_in: endpoint {
71 remote-endpoint = <&hdmi_out_con>;
72 };
73 };
74 };
75
65 leds { 76 leds {
66 compatible = "gpio-leds"; 77 compatible = "gpio-leds";
67 pinctrl-names = "default"; 78 pinctrl-names = "default";
@@ -80,6 +91,10 @@
80 status = "okay"; 91 status = "okay";
81}; 92};
82 93
94&de {
95 status = "okay";
96};
97
83&ehci0 { 98&ehci0 {
84 status = "okay"; 99 status = "okay";
85}; 100};
@@ -100,6 +115,16 @@
100 }; 115 };
101}; 116};
102 117
118&hdmi {
119 status = "okay";
120};
121
122&hdmi_out {
123 hdmi_out_con: endpoint {
124 remote-endpoint = <&hdmi_con_in>;
125 };
126};
127
103&i2c0 { 128&i2c0 {
104 pinctrl-names = "default"; 129 pinctrl-names = "default";
105 pinctrl-0 = <&i2c0_pins_a>; 130 pinctrl-0 = <&i2c0_pins_a>;
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
index 097bd755764c..ba250189d07f 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
@@ -59,6 +59,17 @@
59 stdout-path = "serial0:115200n8"; 59 stdout-path = "serial0:115200n8";
60 }; 60 };
61 61
62 hdmi-connector {
63 compatible = "hdmi-connector";
64 type = "a";
65
66 port {
67 hdmi_con_in: endpoint {
68 remote-endpoint = <&hdmi_out_con>;
69 };
70 };
71 };
72
62 leds { 73 leds {
63 compatible = "gpio-leds"; 74 compatible = "gpio-leds";
64 pinctrl-names = "default"; 75 pinctrl-names = "default";
@@ -85,6 +96,10 @@
85 status = "okay"; 96 status = "okay";
86}; 97};
87 98
99&de {
100 status = "okay";
101};
102
88&ehci0 { 103&ehci0 {
89 status = "okay"; 104 status = "okay";
90}; 105};
@@ -105,6 +120,16 @@
105 }; 120 };
106}; 121};
107 122
123&hdmi {
124 status = "okay";
125};
126
127&hdmi_out {
128 hdmi_out_con: endpoint {
129 remote-endpoint = <&hdmi_con_in>;
130 };
131};
132
108&i2c0 { 133&i2c0 {
109 pinctrl-names = "default"; 134 pinctrl-names = "default";
110 pinctrl-0 = <&i2c0_pins_a>; 135 pinctrl-0 = <&i2c0_pins_a>;
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro-emmc.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro-emmc.dts
new file mode 100644
index 000000000000..d99e7b193efe
--- /dev/null
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro-emmc.dts
@@ -0,0 +1,70 @@
1 /*
2 * Copyright 2017 Olimex Ltd.
3 * Stefan Mavrodiev <stefan@olimex.com>
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 as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
14 *
15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively,
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
41 * OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44#include "sun7i-a20-olinuxino-micro.dts"
45
46/ {
47 model = "Olimex A20-OLinuXino-MICRO-eMMC";
48 compatible = "olimex,a20-olinuxino-micro-emmc", "allwinner,sun7i-a20";
49
50 mmc2_pwrseq: pwrseq {
51 compatible = "mmc-pwrseq-emmc";
52 reset-gpios = <&pio 2 16 GPIO_ACTIVE_LOW>;
53 };
54};
55
56&mmc2 {
57 pinctrl-names = "default";
58 pinctrl-0 = <&mmc2_pins_a>;
59 vmmc-supply = <&reg_vcc3v3>;
60 bus-width = <4>;
61 non-removable;
62 mmc-pwrseq = <&mmc2_pwrseq>;
63 status = "okay";
64
65 emmc: emmc@0 {
66 reg = <0>;
67 compatible = "mmc-card";
68 broken-hpi;
69 };
70};
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
index 0b7403e4d687..dffbaa24b3ee 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
@@ -66,6 +66,17 @@
66 stdout-path = "serial0:115200n8"; 66 stdout-path = "serial0:115200n8";
67 }; 67 };
68 68
69 hdmi-connector {
70 compatible = "hdmi-connector";
71 type = "a";
72
73 port {
74 hdmi_con_in: endpoint {
75 remote-endpoint = <&hdmi_out_con>;
76 };
77 };
78 };
79
69 leds { 80 leds {
70 compatible = "gpio-leds"; 81 compatible = "gpio-leds";
71 pinctrl-names = "default"; 82 pinctrl-names = "default";
@@ -92,6 +103,10 @@
92 cpu-supply = <&reg_dcdc2>; 103 cpu-supply = <&reg_dcdc2>;
93}; 104};
94 105
106&de {
107 status = "okay";
108};
109
95&ehci0 { 110&ehci0 {
96 status = "okay"; 111 status = "okay";
97}; 112};
@@ -102,7 +117,7 @@
102 117
103&gmac { 118&gmac {
104 pinctrl-names = "default"; 119 pinctrl-names = "default";
105 pinctrl-0 = <&gmac_pins_mii_a>; 120 pinctrl-0 = <&gmac_pins_mii_a>, <&gmac_txerr>;
106 phy = <&phy1>; 121 phy = <&phy1>;
107 phy-mode = "mii"; 122 phy-mode = "mii";
108 status = "okay"; 123 status = "okay";
@@ -112,6 +127,16 @@
112 }; 127 };
113}; 128};
114 129
130&hdmi {
131 status = "okay";
132};
133
134&hdmi_out {
135 hdmi_out_con: endpoint {
136 remote-endpoint = <&hdmi_con_in>;
137 };
138};
139
115&i2c0 { 140&i2c0 {
116 pinctrl-names = "default"; 141 pinctrl-names = "default";
117 pinctrl-0 = <&i2c0_pins_a>; 142 pinctrl-0 = <&i2c0_pins_a>;
@@ -229,6 +254,11 @@
229}; 254};
230 255
231&pio { 256&pio {
257 gmac_txerr: gmac_txerr@0 {
258 pins = "PA17";
259 function = "gmac";
260 };
261
232 mmc3_cd_pin_olinuxinom: mmc3_cd_pin@0 { 262 mmc3_cd_pin_olinuxinom: mmc3_cd_pin@0 {
233 pins = "PH11"; 263 pins = "PH11";
234 function = "gpio_in"; 264 function = "gpio_in";
@@ -256,6 +286,14 @@
256 286
257#include "axp209.dtsi" 287#include "axp209.dtsi"
258 288
289&ac_power_supply {
290 status = "okay";
291};
292
293&battery_power_supply {
294 status = "okay";
295};
296
259&reg_dcdc2 { 297&reg_dcdc2 {
260 regulator-always-on; 298 regulator-always-on;
261 regulator-min-microvolt = <1000000>; 299 regulator-min-microvolt = <1000000>;
@@ -330,6 +368,10 @@
330 status = "okay"; 368 status = "okay";
331}; 369};
332 370
371&usb_power_supply {
372 status = "okay";
373};
374
333&usbphy { 375&usbphy {
334 pinctrl-names = "default"; 376 pinctrl-names = "default";
335 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>; 377 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
index 96bee776e145..68dfa82544fc 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -46,9 +46,9 @@
46 46
47#include <dt-bindings/interrupt-controller/arm-gic.h> 47#include <dt-bindings/interrupt-controller/arm-gic.h>
48#include <dt-bindings/thermal/thermal.h> 48#include <dt-bindings/thermal/thermal.h>
49
50#include <dt-bindings/clock/sun4i-a10-pll2.h>
51#include <dt-bindings/dma/sun4i-a10.h> 49#include <dt-bindings/dma/sun4i-a10.h>
50#include <dt-bindings/clock/sun4i-a10-ccu.h>
51#include <dt-bindings/reset/sun4i-a10-ccu.h>
52 52
53/ { 53/ {
54 interrupt-parent = <&gic>; 54 interrupt-parent = <&gic>;
@@ -66,9 +66,10 @@
66 compatible = "allwinner,simple-framebuffer", 66 compatible = "allwinner,simple-framebuffer",
67 "simple-framebuffer"; 67 "simple-framebuffer";
68 allwinner,pipeline = "de_be0-lcd0-hdmi"; 68 allwinner,pipeline = "de_be0-lcd0-hdmi";
69 clocks = <&ahb_gates 36>, <&ahb_gates 43>, 69 clocks = <&ccu CLK_AHB_LCD0>, <&ccu CLK_AHB_HDMI0>,
70 <&ahb_gates 44>, <&de_be0_clk>, 70 <&ccu CLK_AHB_DE_BE0>, <&ccu CLK_DE_BE0>,
71 <&tcon0_ch1_clk>, <&dram_gates 26>; 71 <&ccu CLK_TCON0_CH1>, <&ccu CLK_DRAM_DE_BE0>,
72 <&ccu CLK_HDMI>;
72 status = "disabled"; 73 status = "disabled";
73 }; 74 };
74 75
@@ -76,9 +77,9 @@
76 compatible = "allwinner,simple-framebuffer", 77 compatible = "allwinner,simple-framebuffer",
77 "simple-framebuffer"; 78 "simple-framebuffer";
78 allwinner,pipeline = "de_be0-lcd0"; 79 allwinner,pipeline = "de_be0-lcd0";
79 clocks = <&ahb_gates 36>, <&ahb_gates 44>, 80 clocks = <&ccu CLK_AHB_LCD0>, <&ccu CLK_AHB_DE_BE0>,
80 <&de_be0_clk>, <&tcon0_ch0_clk>, 81 <&ccu CLK_DE_BE0>, <&ccu CLK_TCON0_CH0>,
81 <&dram_gates 26>; 82 <&ccu CLK_DRAM_DE_BE0>;
82 status = "disabled"; 83 status = "disabled";
83 }; 84 };
84 85
@@ -86,10 +87,10 @@
86 compatible = "allwinner,simple-framebuffer", 87 compatible = "allwinner,simple-framebuffer",
87 "simple-framebuffer"; 88 "simple-framebuffer";
88 allwinner,pipeline = "de_be0-lcd0-tve0"; 89 allwinner,pipeline = "de_be0-lcd0-tve0";
89 clocks = <&ahb_gates 34>, <&ahb_gates 36>, 90 clocks = <&ccu CLK_AHB_TVE0>, <&ccu CLK_AHB_LCD0>,
90 <&ahb_gates 44>, 91 <&ccu CLK_AHB_DE_BE0>,
91 <&de_be0_clk>, <&tcon0_ch1_clk>, 92 <&ccu CLK_DE_BE0>, <&ccu CLK_TCON0_CH1>,
92 <&dram_gates 5>, <&dram_gates 26>; 93 <&ccu CLK_DRAM_TVE0>, <&ccu CLK_DRAM_DE_BE0>;
93 status = "disabled"; 94 status = "disabled";
94 }; 95 };
95 }; 96 };
@@ -102,7 +103,7 @@
102 compatible = "arm,cortex-a7"; 103 compatible = "arm,cortex-a7";
103 device_type = "cpu"; 104 device_type = "cpu";
104 reg = <0>; 105 reg = <0>;
105 clocks = <&cpu>; 106 clocks = <&ccu CLK_CPU>;
106 clock-latency = <244144>; /* 8 32k periods */ 107 clock-latency = <244144>; /* 8 32k periods */
107 operating-points = < 108 operating-points = <
108 /* kHz uV */ 109 /* kHz uV */
@@ -181,23 +182,13 @@
181 #size-cells = <1>; 182 #size-cells = <1>;
182 ranges; 183 ranges;
183 184
184 osc24M: clk@01c20050 { 185 osc24M: clk@1c20050 {
185 #clock-cells = <0>; 186 #clock-cells = <0>;
186 compatible = "allwinner,sun4i-a10-osc-clk"; 187 compatible = "fixed-clock";
187 reg = <0x01c20050 0x4>;
188 clock-frequency = <24000000>; 188 clock-frequency = <24000000>;
189 clock-output-names = "osc24M"; 189 clock-output-names = "osc24M";
190 }; 190 };
191 191
192 osc3M: osc3M_clk {
193 #clock-cells = <0>;
194 compatible = "fixed-factor-clock";
195 clock-div = <8>;
196 clock-mult = <1>;
197 clocks = <&osc24M>;
198 clock-output-names = "osc3M";
199 };
200
201 osc32k: clk@0 { 192 osc32k: clk@0 {
202 #clock-cells = <0>; 193 #clock-cells = <0>;
203 compatible = "fixed-clock"; 194 compatible = "fixed-clock";
@@ -205,528 +196,6 @@
205 clock-output-names = "osc32k"; 196 clock-output-names = "osc32k";
206 }; 197 };
207 198
208 pll1: clk@01c20000 {
209 #clock-cells = <0>;
210 compatible = "allwinner,sun4i-a10-pll1-clk";
211 reg = <0x01c20000 0x4>;
212 clocks = <&osc24M>;
213 clock-output-names = "pll1";
214 };
215
216 pll2: clk@01c20008 {
217 #clock-cells = <1>;
218 compatible = "allwinner,sun4i-a10-pll2-clk";
219 reg = <0x01c20008 0x8>;
220 clocks = <&osc24M>;
221 clock-output-names = "pll2-1x", "pll2-2x",
222 "pll2-4x", "pll2-8x";
223 };
224
225 pll3: clk@01c20010 {
226 #clock-cells = <0>;
227 compatible = "allwinner,sun4i-a10-pll3-clk";
228 reg = <0x01c20010 0x4>;
229 clocks = <&osc3M>;
230 clock-output-names = "pll3";
231 };
232
233 pll3x2: pll3x2_clk {
234 #clock-cells = <0>;
235 compatible = "fixed-factor-clock";
236 clocks = <&pll3>;
237 clock-div = <1>;
238 clock-mult = <2>;
239 clock-output-names = "pll3-2x";
240 };
241
242 pll4: clk@01c20018 {
243 #clock-cells = <0>;
244 compatible = "allwinner,sun7i-a20-pll4-clk";
245 reg = <0x01c20018 0x4>;
246 clocks = <&osc24M>;
247 clock-output-names = "pll4";
248 };
249
250 pll5: clk@01c20020 {
251 #clock-cells = <1>;
252 compatible = "allwinner,sun4i-a10-pll5-clk";
253 reg = <0x01c20020 0x4>;
254 clocks = <&osc24M>;
255 clock-output-names = "pll5_ddr", "pll5_other";
256 };
257
258 pll6: clk@01c20028 {
259 #clock-cells = <1>;
260 compatible = "allwinner,sun4i-a10-pll6-clk";
261 reg = <0x01c20028 0x4>;
262 clocks = <&osc24M>;
263 clock-output-names = "pll6_sata", "pll6_other", "pll6",
264 "pll6_div_4";
265 };
266
267 pll7: clk@01c20030 {
268 #clock-cells = <0>;
269 compatible = "allwinner,sun4i-a10-pll3-clk";
270 reg = <0x01c20030 0x4>;
271 clocks = <&osc3M>;
272 clock-output-names = "pll7";
273 };
274
275 pll7x2: pll7x2_clk {
276 #clock-cells = <0>;
277 compatible = "fixed-factor-clock";
278 clocks = <&pll7>;
279 clock-div = <1>;
280 clock-mult = <2>;
281 clock-output-names = "pll7-2x";
282 };
283
284 pll8: clk@01c20040 {
285 #clock-cells = <0>;
286 compatible = "allwinner,sun7i-a20-pll4-clk";
287 reg = <0x01c20040 0x4>;
288 clocks = <&osc24M>;
289 clock-output-names = "pll8";
290 };
291
292 cpu: cpu@01c20054 {
293 #clock-cells = <0>;
294 compatible = "allwinner,sun4i-a10-cpu-clk";
295 reg = <0x01c20054 0x4>;
296 clocks = <&osc32k>, <&osc24M>, <&pll1>, <&pll6 1>;
297 clock-output-names = "cpu";
298 };
299
300 axi: axi@01c20054 {
301 #clock-cells = <0>;
302 compatible = "allwinner,sun4i-a10-axi-clk";
303 reg = <0x01c20054 0x4>;
304 clocks = <&cpu>;
305 clock-output-names = "axi";
306 };
307
308 ahb: ahb@01c20054 {
309 #clock-cells = <0>;
310 compatible = "allwinner,sun5i-a13-ahb-clk";
311 reg = <0x01c20054 0x4>;
312 clocks = <&axi>, <&pll6 3>, <&pll6 1>;
313 clock-output-names = "ahb";
314 /*
315 * Use PLL6 as parent, instead of CPU/AXI
316 * which has rate changes due to cpufreq
317 */
318 assigned-clocks = <&ahb>;
319 assigned-clock-parents = <&pll6 3>;
320 };
321
322 ahb_gates: clk@01c20060 {
323 #clock-cells = <1>;
324 compatible = "allwinner,sun7i-a20-ahb-gates-clk";
325 reg = <0x01c20060 0x8>;
326 clocks = <&ahb>;
327 clock-indices = <0>, <1>,
328 <2>, <3>, <4>,
329 <5>, <6>, <7>, <8>,
330 <9>, <10>, <11>, <12>,
331 <13>, <14>, <16>,
332 <17>, <18>, <20>, <21>,
333 <22>, <23>, <25>,
334 <28>, <32>, <33>, <34>,
335 <35>, <36>, <37>, <40>,
336 <41>, <42>, <43>,
337 <44>, <45>, <46>,
338 <47>, <49>, <50>,
339 <52>;
340 clock-output-names = "ahb_usb0", "ahb_ehci0",
341 "ahb_ohci0", "ahb_ehci1", "ahb_ohci1",
342 "ahb_ss", "ahb_dma", "ahb_bist", "ahb_mmc0",
343 "ahb_mmc1", "ahb_mmc2", "ahb_mmc3", "ahb_ms",
344 "ahb_nand", "ahb_sdram", "ahb_ace",
345 "ahb_emac", "ahb_ts", "ahb_spi0", "ahb_spi1",
346 "ahb_spi2", "ahb_spi3", "ahb_sata",
347 "ahb_hstimer", "ahb_ve", "ahb_tvd", "ahb_tve0",
348 "ahb_tve1", "ahb_lcd0", "ahb_lcd1", "ahb_csi0",
349 "ahb_csi1", "ahb_hdmi1", "ahb_hdmi0",
350 "ahb_de_be0", "ahb_de_be1", "ahb_de_fe0",
351 "ahb_de_fe1", "ahb_gmac", "ahb_mp",
352 "ahb_mali";
353 };
354
355 apb0: apb0@01c20054 {
356 #clock-cells = <0>;
357 compatible = "allwinner,sun4i-a10-apb0-clk";
358 reg = <0x01c20054 0x4>;
359 clocks = <&ahb>;
360 clock-output-names = "apb0";
361 };
362
363 apb0_gates: clk@01c20068 {
364 #clock-cells = <1>;
365 compatible = "allwinner,sun7i-a20-apb0-gates-clk";
366 reg = <0x01c20068 0x4>;
367 clocks = <&apb0>;
368 clock-indices = <0>, <1>,
369 <2>, <3>, <4>,
370 <5>, <6>, <7>,
371 <8>, <10>;
372 clock-output-names = "apb0_codec", "apb0_spdif",
373 "apb0_ac97", "apb0_i2s0", "apb0_i2s1",
374 "apb0_pio", "apb0_ir0", "apb0_ir1",
375 "apb0_i2s2", "apb0_keypad";
376 };
377
378 apb1: clk@01c20058 {
379 #clock-cells = <0>;
380 compatible = "allwinner,sun4i-a10-apb1-clk";
381 reg = <0x01c20058 0x4>;
382 clocks = <&osc24M>, <&pll6 1>, <&osc32k>;
383 clock-output-names = "apb1";
384 };
385
386 apb1_gates: clk@01c2006c {
387 #clock-cells = <1>;
388 compatible = "allwinner,sun7i-a20-apb1-gates-clk";
389 reg = <0x01c2006c 0x4>;
390 clocks = <&apb1>;
391 clock-indices = <0>, <1>,
392 <2>, <3>, <4>,
393 <5>, <6>, <7>,
394 <15>, <16>, <17>,
395 <18>, <19>, <20>,
396 <21>, <22>, <23>;
397 clock-output-names = "apb1_i2c0", "apb1_i2c1",
398 "apb1_i2c2", "apb1_i2c3", "apb1_can",
399 "apb1_scr", "apb1_ps20", "apb1_ps21",
400 "apb1_i2c4", "apb1_uart0", "apb1_uart1",
401 "apb1_uart2", "apb1_uart3", "apb1_uart4",
402 "apb1_uart5", "apb1_uart6", "apb1_uart7";
403 };
404
405 nand_clk: clk@01c20080 {
406 #clock-cells = <0>;
407 compatible = "allwinner,sun4i-a10-mod0-clk";
408 reg = <0x01c20080 0x4>;
409 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
410 clock-output-names = "nand";
411 };
412
413 ms_clk: clk@01c20084 {
414 #clock-cells = <0>;
415 compatible = "allwinner,sun4i-a10-mod0-clk";
416 reg = <0x01c20084 0x4>;
417 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
418 clock-output-names = "ms";
419 };
420
421 mmc0_clk: clk@01c20088 {
422 #clock-cells = <1>;
423 compatible = "allwinner,sun4i-a10-mmc-clk";
424 reg = <0x01c20088 0x4>;
425 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
426 clock-output-names = "mmc0",
427 "mmc0_output",
428 "mmc0_sample";
429 };
430
431 mmc1_clk: clk@01c2008c {
432 #clock-cells = <1>;
433 compatible = "allwinner,sun4i-a10-mmc-clk";
434 reg = <0x01c2008c 0x4>;
435 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
436 clock-output-names = "mmc1",
437 "mmc1_output",
438 "mmc1_sample";
439 };
440
441 mmc2_clk: clk@01c20090 {
442 #clock-cells = <1>;
443 compatible = "allwinner,sun4i-a10-mmc-clk";
444 reg = <0x01c20090 0x4>;
445 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
446 clock-output-names = "mmc2",
447 "mmc2_output",
448 "mmc2_sample";
449 };
450
451 mmc3_clk: clk@01c20094 {
452 #clock-cells = <1>;
453 compatible = "allwinner,sun4i-a10-mmc-clk";
454 reg = <0x01c20094 0x4>;
455 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
456 clock-output-names = "mmc3",
457 "mmc3_output",
458 "mmc3_sample";
459 };
460
461 ts_clk: clk@01c20098 {
462 #clock-cells = <0>;
463 compatible = "allwinner,sun4i-a10-mod0-clk";
464 reg = <0x01c20098 0x4>;
465 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
466 clock-output-names = "ts";
467 };
468
469 ss_clk: clk@01c2009c {
470 #clock-cells = <0>;
471 compatible = "allwinner,sun4i-a10-mod0-clk";
472 reg = <0x01c2009c 0x4>;
473 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
474 clock-output-names = "ss";
475 };
476
477 spi0_clk: clk@01c200a0 {
478 #clock-cells = <0>;
479 compatible = "allwinner,sun4i-a10-mod0-clk";
480 reg = <0x01c200a0 0x4>;
481 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
482 clock-output-names = "spi0";
483 };
484
485 spi1_clk: clk@01c200a4 {
486 #clock-cells = <0>;
487 compatible = "allwinner,sun4i-a10-mod0-clk";
488 reg = <0x01c200a4 0x4>;
489 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
490 clock-output-names = "spi1";
491 };
492
493 spi2_clk: clk@01c200a8 {
494 #clock-cells = <0>;
495 compatible = "allwinner,sun4i-a10-mod0-clk";
496 reg = <0x01c200a8 0x4>;
497 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
498 clock-output-names = "spi2";
499 };
500
501 pata_clk: clk@01c200ac {
502 #clock-cells = <0>;
503 compatible = "allwinner,sun4i-a10-mod0-clk";
504 reg = <0x01c200ac 0x4>;
505 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
506 clock-output-names = "pata";
507 };
508
509 ir0_clk: clk@01c200b0 {
510 #clock-cells = <0>;
511 compatible = "allwinner,sun4i-a10-mod0-clk";
512 reg = <0x01c200b0 0x4>;
513 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
514 clock-output-names = "ir0";
515 };
516
517 ir1_clk: clk@01c200b4 {
518 #clock-cells = <0>;
519 compatible = "allwinner,sun4i-a10-mod0-clk";
520 reg = <0x01c200b4 0x4>;
521 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
522 clock-output-names = "ir1";
523 };
524
525 i2s0_clk: clk@01c200b8 {
526 #clock-cells = <0>;
527 compatible = "allwinner,sun4i-a10-mod1-clk";
528 reg = <0x01c200b8 0x4>;
529 clocks = <&pll2 SUN4I_A10_PLL2_8X>,
530 <&pll2 SUN4I_A10_PLL2_4X>,
531 <&pll2 SUN4I_A10_PLL2_2X>,
532 <&pll2 SUN4I_A10_PLL2_1X>;
533 clock-output-names = "i2s0";
534 };
535
536 ac97_clk: clk@01c200bc {
537 #clock-cells = <0>;
538 compatible = "allwinner,sun4i-a10-mod1-clk";
539 reg = <0x01c200bc 0x4>;
540 clocks = <&pll2 SUN4I_A10_PLL2_8X>,
541 <&pll2 SUN4I_A10_PLL2_4X>,
542 <&pll2 SUN4I_A10_PLL2_2X>,
543 <&pll2 SUN4I_A10_PLL2_1X>;
544 clock-output-names = "ac97";
545 };
546
547 spdif_clk: clk@01c200c0 {
548 #clock-cells = <0>;
549 compatible = "allwinner,sun4i-a10-mod1-clk";
550 reg = <0x01c200c0 0x4>;
551 clocks = <&pll2 SUN4I_A10_PLL2_8X>,
552 <&pll2 SUN4I_A10_PLL2_4X>,
553 <&pll2 SUN4I_A10_PLL2_2X>,
554 <&pll2 SUN4I_A10_PLL2_1X>;
555 clock-output-names = "spdif";
556 };
557
558 keypad_clk: clk@01c200c4 {
559 #clock-cells = <0>;
560 compatible = "allwinner,sun4i-a10-mod0-clk";
561 reg = <0x01c200c4 0x4>;
562 clocks = <&osc24M>;
563 clock-output-names = "keypad";
564 };
565
566 usb_clk: clk@01c200cc {
567 #clock-cells = <1>;
568 #reset-cells = <1>;
569 compatible = "allwinner,sun4i-a10-usb-clk";
570 reg = <0x01c200cc 0x4>;
571 clocks = <&pll6 1>;
572 clock-output-names = "usb_ohci0", "usb_ohci1",
573 "usb_phy";
574 };
575
576 spi3_clk: clk@01c200d4 {
577 #clock-cells = <0>;
578 compatible = "allwinner,sun4i-a10-mod0-clk";
579 reg = <0x01c200d4 0x4>;
580 clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
581 clock-output-names = "spi3";
582 };
583
584 i2s1_clk: clk@01c200d8 {
585 #clock-cells = <0>;
586 compatible = "allwinner,sun4i-a10-mod1-clk";
587 reg = <0x01c200d8 0x4>;
588 clocks = <&pll2 SUN4I_A10_PLL2_8X>,
589 <&pll2 SUN4I_A10_PLL2_4X>,
590 <&pll2 SUN4I_A10_PLL2_2X>,
591 <&pll2 SUN4I_A10_PLL2_1X>;
592 clock-output-names = "i2s1";
593 };
594
595 i2s2_clk: clk@01c200dc {
596 #clock-cells = <0>;
597 compatible = "allwinner,sun4i-a10-mod1-clk";
598 reg = <0x01c200dc 0x4>;
599 clocks = <&pll2 SUN4I_A10_PLL2_8X>,
600 <&pll2 SUN4I_A10_PLL2_4X>,
601 <&pll2 SUN4I_A10_PLL2_2X>,
602 <&pll2 SUN4I_A10_PLL2_1X>;
603 clock-output-names = "i2s2";
604 };
605
606 dram_gates: clk@01c20100 {
607 #clock-cells = <1>;
608 compatible = "allwinner,sun4i-a10-dram-gates-clk";
609 reg = <0x01c20100 0x4>;
610 clocks = <&pll5 0>;
611 clock-indices = <0>,
612 <1>, <2>,
613 <3>,
614 <4>,
615 <5>, <6>,
616 <15>,
617 <24>, <25>,
618 <26>, <27>,
619 <28>, <29>;
620 clock-output-names = "dram_ve",
621 "dram_csi0", "dram_csi1",
622 "dram_ts",
623 "dram_tvd",
624 "dram_tve0", "dram_tve1",
625 "dram_output",
626 "dram_de_fe1", "dram_de_fe0",
627 "dram_de_be0", "dram_de_be1",
628 "dram_de_mp", "dram_ace";
629 };
630
631 de_be0_clk: clk@01c20104 {
632 #clock-cells = <0>;
633 #reset-cells = <0>;
634 compatible = "allwinner,sun4i-a10-display-clk";
635 reg = <0x01c20104 0x4>;
636 clocks = <&pll3>, <&pll7>, <&pll5 1>;
637 clock-output-names = "de-be0";
638 };
639
640 de_be1_clk: clk@01c20108 {
641 #clock-cells = <0>;
642 #reset-cells = <0>;
643 compatible = "allwinner,sun4i-a10-display-clk";
644 reg = <0x01c20108 0x4>;
645 clocks = <&pll3>, <&pll7>, <&pll5 1>;
646 clock-output-names = "de-be1";
647 };
648
649 de_fe0_clk: clk@01c2010c {
650 #clock-cells = <0>;
651 #reset-cells = <0>;
652 compatible = "allwinner,sun4i-a10-display-clk";
653 reg = <0x01c2010c 0x4>;
654 clocks = <&pll3>, <&pll7>, <&pll5 1>;
655 clock-output-names = "de-fe0";
656 };
657
658 de_fe1_clk: clk@01c20110 {
659 #clock-cells = <0>;
660 #reset-cells = <0>;
661 compatible = "allwinner,sun4i-a10-display-clk";
662 reg = <0x01c20110 0x4>;
663 clocks = <&pll3>, <&pll7>, <&pll5 1>;
664 clock-output-names = "de-fe1";
665 };
666
667 tcon0_ch0_clk: clk@01c20118 {
668 #clock-cells = <0>;
669 #reset-cells = <1>;
670 compatible = "allwinner,sun4i-a10-tcon-ch0-clk";
671 reg = <0x01c20118 0x4>;
672 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
673 clock-output-names = "tcon0-ch0-sclk";
674
675 };
676
677 tcon1_ch0_clk: clk@01c2011c {
678 #clock-cells = <0>;
679 #reset-cells = <1>;
680 compatible = "allwinner,sun4i-a10-tcon-ch1-clk";
681 reg = <0x01c2011c 0x4>;
682 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
683 clock-output-names = "tcon1-ch0-sclk";
684
685 };
686
687 tcon0_ch1_clk: clk@01c2012c {
688 #clock-cells = <0>;
689 compatible = "allwinner,sun4i-a10-tcon-ch0-clk";
690 reg = <0x01c2012c 0x4>;
691 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
692 clock-output-names = "tcon0-ch1-sclk";
693
694 };
695
696 tcon1_ch1_clk: clk@01c20130 {
697 #clock-cells = <0>;
698 compatible = "allwinner,sun4i-a10-tcon-ch1-clk";
699 reg = <0x01c20130 0x4>;
700 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
701 clock-output-names = "tcon1-ch1-sclk";
702
703 };
704
705 ve_clk: clk@01c2013c {
706 #clock-cells = <0>;
707 #reset-cells = <0>;
708 compatible = "allwinner,sun4i-a10-ve-clk";
709 reg = <0x01c2013c 0x4>;
710 clocks = <&pll4>;
711 clock-output-names = "ve";
712 };
713
714 codec_clk: clk@01c20140 {
715 #clock-cells = <0>;
716 compatible = "allwinner,sun4i-a10-codec-clk";
717 reg = <0x01c20140 0x4>;
718 clocks = <&pll2 SUN4I_A10_PLL2_1X>;
719 clock-output-names = "codec";
720 };
721
722 mbus_clk: clk@01c2015c {
723 #clock-cells = <0>;
724 compatible = "allwinner,sun5i-a13-mbus-clk";
725 reg = <0x01c2015c 0x4>;
726 clocks = <&osc24M>, <&pll6 2>, <&pll5 1>;
727 clock-output-names = "mbus";
728 };
729
730 /* 199 /*
731 * The following two are dummy clocks, placeholders 200 * The following two are dummy clocks, placeholders
732 * used in the gmac_tx clock. The gmac driver will 201 * used in the gmac_tx clock. The gmac driver will
@@ -736,71 +205,50 @@
736 * The actual TX clock rate is not controlled by the 205 * The actual TX clock rate is not controlled by the
737 * gmac_tx clock. 206 * gmac_tx clock.
738 */ 207 */
739 mii_phy_tx_clk: clk@2 { 208 mii_phy_tx_clk: clk@1 {
740 #clock-cells = <0>; 209 #clock-cells = <0>;
741 compatible = "fixed-clock"; 210 compatible = "fixed-clock";
742 clock-frequency = <25000000>; 211 clock-frequency = <25000000>;
743 clock-output-names = "mii_phy_tx"; 212 clock-output-names = "mii_phy_tx";
744 }; 213 };
745 214
746 gmac_int_tx_clk: clk@3 { 215 gmac_int_tx_clk: clk@2 {
747 #clock-cells = <0>; 216 #clock-cells = <0>;
748 compatible = "fixed-clock"; 217 compatible = "fixed-clock";
749 clock-frequency = <125000000>; 218 clock-frequency = <125000000>;
750 clock-output-names = "gmac_int_tx"; 219 clock-output-names = "gmac_int_tx";
751 }; 220 };
752 221
753 gmac_tx_clk: clk@01c20164 { 222 gmac_tx_clk: clk@1c20164 {
754 #clock-cells = <0>; 223 #clock-cells = <0>;
755 compatible = "allwinner,sun7i-a20-gmac-clk"; 224 compatible = "allwinner,sun7i-a20-gmac-clk";
756 reg = <0x01c20164 0x4>; 225 reg = <0x01c20164 0x4>;
757 clocks = <&mii_phy_tx_clk>, <&gmac_int_tx_clk>; 226 clocks = <&mii_phy_tx_clk>, <&gmac_int_tx_clk>;
758 clock-output-names = "gmac_tx"; 227 clock-output-names = "gmac_tx";
759 }; 228 };
229 };
760 230
761 /*
762 * Dummy clock used by output clocks
763 */
764 osc24M_32k: clk@1 {
765 #clock-cells = <0>;
766 compatible = "fixed-factor-clock";
767 clock-div = <750>;
768 clock-mult = <1>;
769 clocks = <&osc24M>;
770 clock-output-names = "osc24M_32k";
771 };
772 231
773 clk_out_a: clk@01c201f0 { 232 de: display-engine {
774 #clock-cells = <0>; 233 compatible = "allwinner,sun7i-a20-display-engine";
775 compatible = "allwinner,sun7i-a20-out-clk"; 234 allwinner,pipelines = <&fe0>, <&fe1>;
776 reg = <0x01c201f0 0x4>; 235 status = "disabled";
777 clocks = <&osc24M_32k>, <&osc32k>, <&osc24M>;
778 clock-output-names = "clk_out_a";
779 };
780
781 clk_out_b: clk@01c201f4 {
782 #clock-cells = <0>;
783 compatible = "allwinner,sun7i-a20-out-clk";
784 reg = <0x01c201f4 0x4>;
785 clocks = <&osc24M_32k>, <&osc32k>, <&osc24M>;
786 clock-output-names = "clk_out_b";
787 };
788 }; 236 };
789 237
790 soc@01c00000 { 238 soc@1c00000 {
791 compatible = "simple-bus"; 239 compatible = "simple-bus";
792 #address-cells = <1>; 240 #address-cells = <1>;
793 #size-cells = <1>; 241 #size-cells = <1>;
794 ranges; 242 ranges;
795 243
796 sram-controller@01c00000 { 244 sram-controller@1c00000 {
797 compatible = "allwinner,sun4i-a10-sram-controller"; 245 compatible = "allwinner,sun4i-a10-sram-controller";
798 reg = <0x01c00000 0x30>; 246 reg = <0x01c00000 0x30>;
799 #address-cells = <1>; 247 #address-cells = <1>;
800 #size-cells = <1>; 248 #size-cells = <1>;
801 ranges; 249 ranges;
802 250
803 sram_a: sram@00000000 { 251 sram_a: sram@0 {
804 compatible = "mmio-sram"; 252 compatible = "mmio-sram";
805 reg = <0x00000000 0xc000>; 253 reg = <0x00000000 0xc000>;
806 #address-cells = <1>; 254 #address-cells = <1>;
@@ -814,14 +262,14 @@
814 }; 262 };
815 }; 263 };
816 264
817 sram_d: sram@00010000 { 265 sram_d: sram@10000 {
818 compatible = "mmio-sram"; 266 compatible = "mmio-sram";
819 reg = <0x00010000 0x1000>; 267 reg = <0x00010000 0x1000>;
820 #address-cells = <1>; 268 #address-cells = <1>;
821 #size-cells = <1>; 269 #size-cells = <1>;
822 ranges = <0 0x00010000 0x1000>; 270 ranges = <0 0x00010000 0x1000>;
823 271
824 otg_sram: sram-section@0000 { 272 otg_sram: sram-section@0 {
825 compatible = "allwinner,sun4i-a10-sram-d"; 273 compatible = "allwinner,sun4i-a10-sram-d";
826 reg = <0x0000 0x1000>; 274 reg = <0x0000 0x1000>;
827 status = "disabled"; 275 status = "disabled";
@@ -829,7 +277,7 @@
829 }; 277 };
830 }; 278 };
831 279
832 nmi_intc: interrupt-controller@01c00030 { 280 nmi_intc: interrupt-controller@1c00030 {
833 compatible = "allwinner,sun7i-a20-sc-nmi"; 281 compatible = "allwinner,sun7i-a20-sc-nmi";
834 interrupt-controller; 282 interrupt-controller;
835 #interrupt-cells = <2>; 283 #interrupt-cells = <2>;
@@ -837,19 +285,19 @@
837 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 285 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
838 }; 286 };
839 287
840 dma: dma-controller@01c02000 { 288 dma: dma-controller@1c02000 {
841 compatible = "allwinner,sun4i-a10-dma"; 289 compatible = "allwinner,sun4i-a10-dma";
842 reg = <0x01c02000 0x1000>; 290 reg = <0x01c02000 0x1000>;
843 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 291 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
844 clocks = <&ahb_gates 6>; 292 clocks = <&ccu CLK_AHB_DMA>;
845 #dma-cells = <2>; 293 #dma-cells = <2>;
846 }; 294 };
847 295
848 nfc: nand@01c03000 { 296 nfc: nand@1c03000 {
849 compatible = "allwinner,sun4i-a10-nand"; 297 compatible = "allwinner,sun4i-a10-nand";
850 reg = <0x01c03000 0x1000>; 298 reg = <0x01c03000 0x1000>;
851 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 299 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
852 clocks = <&ahb_gates 13>, <&nand_clk>; 300 clocks = <&ccu CLK_AHB_NAND>, <&ccu CLK_NAND>;
853 clock-names = "ahb", "mod"; 301 clock-names = "ahb", "mod";
854 dmas = <&dma SUN4I_DMA_DEDICATED 3>; 302 dmas = <&dma SUN4I_DMA_DEDICATED 3>;
855 dma-names = "rxtx"; 303 dma-names = "rxtx";
@@ -858,11 +306,11 @@
858 #size-cells = <0>; 306 #size-cells = <0>;
859 }; 307 };
860 308
861 spi0: spi@01c05000 { 309 spi0: spi@1c05000 {
862 compatible = "allwinner,sun4i-a10-spi"; 310 compatible = "allwinner,sun4i-a10-spi";
863 reg = <0x01c05000 0x1000>; 311 reg = <0x01c05000 0x1000>;
864 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 312 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
865 clocks = <&ahb_gates 20>, <&spi0_clk>; 313 clocks = <&ccu CLK_AHB_SPI0>, <&ccu CLK_SPI0>;
866 clock-names = "ahb", "mod"; 314 clock-names = "ahb", "mod";
867 dmas = <&dma SUN4I_DMA_DEDICATED 27>, 315 dmas = <&dma SUN4I_DMA_DEDICATED 27>,
868 <&dma SUN4I_DMA_DEDICATED 26>; 316 <&dma SUN4I_DMA_DEDICATED 26>;
@@ -873,11 +321,11 @@
873 num-cs = <4>; 321 num-cs = <4>;
874 }; 322 };
875 323
876 spi1: spi@01c06000 { 324 spi1: spi@1c06000 {
877 compatible = "allwinner,sun4i-a10-spi"; 325 compatible = "allwinner,sun4i-a10-spi";
878 reg = <0x01c06000 0x1000>; 326 reg = <0x01c06000 0x1000>;
879 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 327 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
880 clocks = <&ahb_gates 21>, <&spi1_clk>; 328 clocks = <&ccu CLK_AHB_SPI1>, <&ccu CLK_SPI1>;
881 clock-names = "ahb", "mod"; 329 clock-names = "ahb", "mod";
882 dmas = <&dma SUN4I_DMA_DEDICATED 9>, 330 dmas = <&dma SUN4I_DMA_DEDICATED 9>,
883 <&dma SUN4I_DMA_DEDICATED 8>; 331 <&dma SUN4I_DMA_DEDICATED 8>;
@@ -888,16 +336,16 @@
888 num-cs = <1>; 336 num-cs = <1>;
889 }; 337 };
890 338
891 emac: ethernet@01c0b000 { 339 emac: ethernet@1c0b000 {
892 compatible = "allwinner,sun4i-a10-emac"; 340 compatible = "allwinner,sun4i-a10-emac";
893 reg = <0x01c0b000 0x1000>; 341 reg = <0x01c0b000 0x1000>;
894 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 342 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
895 clocks = <&ahb_gates 17>; 343 clocks = <&ccu CLK_AHB_EMAC>;
896 allwinner,sram = <&emac_sram 1>; 344 allwinner,sram = <&emac_sram 1>;
897 status = "disabled"; 345 status = "disabled";
898 }; 346 };
899 347
900 mdio: mdio@01c0b080 { 348 mdio: mdio@1c0b080 {
901 compatible = "allwinner,sun4i-a10-mdio"; 349 compatible = "allwinner,sun4i-a10-mdio";
902 reg = <0x01c0b080 0x14>; 350 reg = <0x01c0b080 0x14>;
903 status = "disabled"; 351 status = "disabled";
@@ -905,13 +353,111 @@
905 #size-cells = <0>; 353 #size-cells = <0>;
906 }; 354 };
907 355
908 mmc0: mmc@01c0f000 { 356 tcon0: lcd-controller@1c0c000 {
357 compatible = "allwinner,sun7i-a20-tcon";
358 reg = <0x01c0c000 0x1000>;
359 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
360 resets = <&ccu RST_TCON0>;
361 reset-names = "lcd";
362 clocks = <&ccu CLK_AHB_LCD0>,
363 <&ccu CLK_TCON0_CH0>,
364 <&ccu CLK_TCON0_CH1>;
365 clock-names = "ahb",
366 "tcon-ch0",
367 "tcon-ch1";
368 clock-output-names = "tcon0-pixel-clock";
369 dmas = <&dma SUN4I_DMA_DEDICATED 14>;
370
371 ports {
372 #address-cells = <1>;
373 #size-cells = <0>;
374
375 tcon0_in: port@0 {
376 #address-cells = <1>;
377 #size-cells = <0>;
378 reg = <0>;
379
380 tcon0_in_be0: endpoint@0 {
381 reg = <0>;
382 remote-endpoint = <&be0_out_tcon0>;
383 };
384
385 tcon0_in_be1: endpoint@1 {
386 reg = <1>;
387 remote-endpoint = <&be1_out_tcon0>;
388 };
389 };
390
391 tcon0_out: port@1 {
392 #address-cells = <1>;
393 #size-cells = <0>;
394 reg = <1>;
395
396 tcon0_out_hdmi: endpoint@1 {
397 reg = <1>;
398 remote-endpoint = <&hdmi_in_tcon0>;
399 allwinner,tcon-channel = <1>;
400 };
401 };
402 };
403 };
404
405 tcon1: lcd-controller@1c0d000 {
406 compatible = "allwinner,sun7i-a20-tcon";
407 reg = <0x01c0d000 0x1000>;
408 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
409 resets = <&ccu RST_TCON1>;
410 reset-names = "lcd";
411 clocks = <&ccu CLK_AHB_LCD1>,
412 <&ccu CLK_TCON1_CH0>,
413 <&ccu CLK_TCON1_CH1>;
414 clock-names = "ahb",
415 "tcon-ch0",
416 "tcon-ch1";
417 clock-output-names = "tcon1-pixel-clock";
418 dmas = <&dma SUN4I_DMA_DEDICATED 15>;
419
420 ports {
421 #address-cells = <1>;
422 #size-cells = <0>;
423
424 tcon1_in: port@0 {
425 #address-cells = <1>;
426 #size-cells = <0>;
427 reg = <0>;
428
429 tcon1_in_be0: endpoint@0 {
430 reg = <0>;
431 remote-endpoint = <&be0_out_tcon1>;
432 };
433
434 tcon1_in_be1: endpoint@1 {
435 reg = <1>;
436 remote-endpoint = <&be1_out_tcon1>;
437 };
438 };
439
440 tcon1_out: port@1 {
441 #address-cells = <1>;
442 #size-cells = <0>;
443 reg = <1>;
444
445 tcon1_out_hdmi: endpoint@1 {
446 reg = <1>;
447 remote-endpoint = <&hdmi_in_tcon1>;
448 allwinner,tcon-channel = <1>;
449 };
450 };
451 };
452 };
453
454 mmc0: mmc@1c0f000 {
909 compatible = "allwinner,sun7i-a20-mmc"; 455 compatible = "allwinner,sun7i-a20-mmc";
910 reg = <0x01c0f000 0x1000>; 456 reg = <0x01c0f000 0x1000>;
911 clocks = <&ahb_gates 8>, 457 clocks = <&ccu CLK_AHB_MMC0>,
912 <&mmc0_clk 0>, 458 <&ccu CLK_MMC0>,
913 <&mmc0_clk 1>, 459 <&ccu CLK_MMC0_OUTPUT>,
914 <&mmc0_clk 2>; 460 <&ccu CLK_MMC0_SAMPLE>;
915 clock-names = "ahb", 461 clock-names = "ahb",
916 "mmc", 462 "mmc",
917 "output", 463 "output",
@@ -922,13 +468,13 @@
922 #size-cells = <0>; 468 #size-cells = <0>;
923 }; 469 };
924 470
925 mmc1: mmc@01c10000 { 471 mmc1: mmc@1c10000 {
926 compatible = "allwinner,sun7i-a20-mmc"; 472 compatible = "allwinner,sun7i-a20-mmc";
927 reg = <0x01c10000 0x1000>; 473 reg = <0x01c10000 0x1000>;
928 clocks = <&ahb_gates 9>, 474 clocks = <&ccu CLK_AHB_MMC1>,
929 <&mmc1_clk 0>, 475 <&ccu CLK_MMC1>,
930 <&mmc1_clk 1>, 476 <&ccu CLK_MMC1_OUTPUT>,
931 <&mmc1_clk 2>; 477 <&ccu CLK_MMC1_SAMPLE>;
932 clock-names = "ahb", 478 clock-names = "ahb",
933 "mmc", 479 "mmc",
934 "output", 480 "output",
@@ -939,13 +485,13 @@
939 #size-cells = <0>; 485 #size-cells = <0>;
940 }; 486 };
941 487
942 mmc2: mmc@01c11000 { 488 mmc2: mmc@1c11000 {
943 compatible = "allwinner,sun7i-a20-mmc"; 489 compatible = "allwinner,sun7i-a20-mmc";
944 reg = <0x01c11000 0x1000>; 490 reg = <0x01c11000 0x1000>;
945 clocks = <&ahb_gates 10>, 491 clocks = <&ccu CLK_AHB_MMC2>,
946 <&mmc2_clk 0>, 492 <&ccu CLK_MMC2>,
947 <&mmc2_clk 1>, 493 <&ccu CLK_MMC2_OUTPUT>,
948 <&mmc2_clk 2>; 494 <&ccu CLK_MMC2_SAMPLE>;
949 clock-names = "ahb", 495 clock-names = "ahb",
950 "mmc", 496 "mmc",
951 "output", 497 "output",
@@ -956,13 +502,13 @@
956 #size-cells = <0>; 502 #size-cells = <0>;
957 }; 503 };
958 504
959 mmc3: mmc@01c12000 { 505 mmc3: mmc@1c12000 {
960 compatible = "allwinner,sun7i-a20-mmc"; 506 compatible = "allwinner,sun7i-a20-mmc";
961 reg = <0x01c12000 0x1000>; 507 reg = <0x01c12000 0x1000>;
962 clocks = <&ahb_gates 11>, 508 clocks = <&ccu CLK_AHB_MMC3>,
963 <&mmc3_clk 0>, 509 <&ccu CLK_MMC3>,
964 <&mmc3_clk 1>, 510 <&ccu CLK_MMC3_OUTPUT>,
965 <&mmc3_clk 2>; 511 <&ccu CLK_MMC3_SAMPLE>;
966 clock-names = "ahb", 512 clock-names = "ahb",
967 "mmc", 513 "mmc",
968 "output", 514 "output",
@@ -973,10 +519,10 @@
973 #size-cells = <0>; 519 #size-cells = <0>;
974 }; 520 };
975 521
976 usb_otg: usb@01c13000 { 522 usb_otg: usb@1c13000 {
977 compatible = "allwinner,sun4i-a10-musb"; 523 compatible = "allwinner,sun4i-a10-musb";
978 reg = <0x01c13000 0x0400>; 524 reg = <0x01c13000 0x0400>;
979 clocks = <&ahb_gates 0>; 525 clocks = <&ccu CLK_AHB_OTG>;
980 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 526 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
981 interrupt-names = "mc"; 527 interrupt-names = "mc";
982 phys = <&usbphy 0>; 528 phys = <&usbphy 0>;
@@ -986,52 +532,97 @@
986 status = "disabled"; 532 status = "disabled";
987 }; 533 };
988 534
989 usbphy: phy@01c13400 { 535 usbphy: phy@1c13400 {
990 #phy-cells = <1>; 536 #phy-cells = <1>;
991 compatible = "allwinner,sun7i-a20-usb-phy"; 537 compatible = "allwinner,sun7i-a20-usb-phy";
992 reg = <0x01c13400 0x10 0x01c14800 0x4 0x01c1c800 0x4>; 538 reg = <0x01c13400 0x10 0x01c14800 0x4 0x01c1c800 0x4>;
993 reg-names = "phy_ctrl", "pmu1", "pmu2"; 539 reg-names = "phy_ctrl", "pmu1", "pmu2";
994 clocks = <&usb_clk 8>; 540 clocks = <&ccu CLK_USB_PHY>;
995 clock-names = "usb_phy"; 541 clock-names = "usb_phy";
996 resets = <&usb_clk 0>, <&usb_clk 1>, <&usb_clk 2>; 542 resets = <&ccu RST_USB_PHY0>,
543 <&ccu RST_USB_PHY1>,
544 <&ccu RST_USB_PHY2>;
997 reset-names = "usb0_reset", "usb1_reset", "usb2_reset"; 545 reset-names = "usb0_reset", "usb1_reset", "usb2_reset";
998 status = "disabled"; 546 status = "disabled";
999 }; 547 };
1000 548
1001 ehci0: usb@01c14000 { 549 ehci0: usb@1c14000 {
1002 compatible = "allwinner,sun7i-a20-ehci", "generic-ehci"; 550 compatible = "allwinner,sun7i-a20-ehci", "generic-ehci";
1003 reg = <0x01c14000 0x100>; 551 reg = <0x01c14000 0x100>;
1004 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 552 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
1005 clocks = <&ahb_gates 1>; 553 clocks = <&ccu CLK_AHB_EHCI0>;
1006 phys = <&usbphy 1>; 554 phys = <&usbphy 1>;
1007 phy-names = "usb"; 555 phy-names = "usb";
1008 status = "disabled"; 556 status = "disabled";
1009 }; 557 };
1010 558
1011 ohci0: usb@01c14400 { 559 ohci0: usb@1c14400 {
1012 compatible = "allwinner,sun7i-a20-ohci", "generic-ohci"; 560 compatible = "allwinner,sun7i-a20-ohci", "generic-ohci";
1013 reg = <0x01c14400 0x100>; 561 reg = <0x01c14400 0x100>;
1014 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 562 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
1015 clocks = <&usb_clk 6>, <&ahb_gates 2>; 563 clocks = <&ccu CLK_USB_OHCI0>, <&ccu CLK_AHB_OHCI0>;
1016 phys = <&usbphy 1>; 564 phys = <&usbphy 1>;
1017 phy-names = "usb"; 565 phy-names = "usb";
1018 status = "disabled"; 566 status = "disabled";
1019 }; 567 };
1020 568
1021 crypto: crypto-engine@01c15000 { 569 crypto: crypto-engine@1c15000 {
1022 compatible = "allwinner,sun7i-a20-crypto", 570 compatible = "allwinner,sun7i-a20-crypto",
1023 "allwinner,sun4i-a10-crypto"; 571 "allwinner,sun4i-a10-crypto";
1024 reg = <0x01c15000 0x1000>; 572 reg = <0x01c15000 0x1000>;
1025 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 573 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1026 clocks = <&ahb_gates 5>, <&ss_clk>; 574 clocks = <&ccu CLK_AHB_SS>, <&ccu CLK_SS>;
1027 clock-names = "ahb", "mod"; 575 clock-names = "ahb", "mod";
1028 }; 576 };
1029 577
1030 spi2: spi@01c17000 { 578 hdmi: hdmi@1c16000 {
579 compatible = "allwinner,sun7i-a20-hdmi",
580 "allwinner,sun5i-a10s-hdmi";
581 reg = <0x01c16000 0x1000>;
582 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
583 clocks = <&ccu CLK_AHB_HDMI0>, <&ccu CLK_HDMI>,
584 <&ccu 9>,
585 <&ccu 18>;
586 clock-names = "ahb", "mod", "pll-0", "pll-1";
587 dmas = <&dma SUN4I_DMA_NORMAL 16>,
588 <&dma SUN4I_DMA_NORMAL 16>,
589 <&dma SUN4I_DMA_DEDICATED 24>;
590 dma-names = "ddc-tx", "ddc-rx", "audio-tx";
591 status = "disabled";
592
593 ports {
594 #address-cells = <1>;
595 #size-cells = <0>;
596
597 hdmi_in: port@0 {
598 #address-cells = <1>;
599 #size-cells = <0>;
600 reg = <0>;
601
602 hdmi_in_tcon0: endpoint@0 {
603 reg = <0>;
604 remote-endpoint = <&tcon0_out_hdmi>;
605 };
606
607 hdmi_in_tcon1: endpoint@1 {
608 reg = <1>;
609 remote-endpoint = <&tcon1_out_hdmi>;
610 };
611 };
612
613 hdmi_out: port@1 {
614 #address-cells = <1>;
615 #size-cells = <0>;
616 reg = <1>;
617 };
618 };
619 };
620
621 spi2: spi@1c17000 {
1031 compatible = "allwinner,sun4i-a10-spi"; 622 compatible = "allwinner,sun4i-a10-spi";
1032 reg = <0x01c17000 0x1000>; 623 reg = <0x01c17000 0x1000>;
1033 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 624 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1034 clocks = <&ahb_gates 22>, <&spi2_clk>; 625 clocks = <&ccu CLK_AHB_SPI2>, <&ccu CLK_SPI2>;
1035 clock-names = "ahb", "mod"; 626 clock-names = "ahb", "mod";
1036 dmas = <&dma SUN4I_DMA_DEDICATED 29>, 627 dmas = <&dma SUN4I_DMA_DEDICATED 29>,
1037 <&dma SUN4I_DMA_DEDICATED 28>; 628 <&dma SUN4I_DMA_DEDICATED 28>;
@@ -1042,39 +633,39 @@
1042 num-cs = <1>; 633 num-cs = <1>;
1043 }; 634 };
1044 635
1045 ahci: sata@01c18000 { 636 ahci: sata@1c18000 {
1046 compatible = "allwinner,sun4i-a10-ahci"; 637 compatible = "allwinner,sun4i-a10-ahci";
1047 reg = <0x01c18000 0x1000>; 638 reg = <0x01c18000 0x1000>;
1048 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; 639 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
1049 clocks = <&pll6 0>, <&ahb_gates 25>; 640 clocks = <&ccu CLK_AHB_SATA>, <&ccu CLK_SATA>;
1050 status = "disabled"; 641 status = "disabled";
1051 }; 642 };
1052 643
1053 ehci1: usb@01c1c000 { 644 ehci1: usb@1c1c000 {
1054 compatible = "allwinner,sun7i-a20-ehci", "generic-ehci"; 645 compatible = "allwinner,sun7i-a20-ehci", "generic-ehci";
1055 reg = <0x01c1c000 0x100>; 646 reg = <0x01c1c000 0x100>;
1056 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 647 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
1057 clocks = <&ahb_gates 3>; 648 clocks = <&ccu CLK_AHB_EHCI1>;
1058 phys = <&usbphy 2>; 649 phys = <&usbphy 2>;
1059 phy-names = "usb"; 650 phy-names = "usb";
1060 status = "disabled"; 651 status = "disabled";
1061 }; 652 };
1062 653
1063 ohci1: usb@01c1c400 { 654 ohci1: usb@1c1c400 {
1064 compatible = "allwinner,sun7i-a20-ohci", "generic-ohci"; 655 compatible = "allwinner,sun7i-a20-ohci", "generic-ohci";
1065 reg = <0x01c1c400 0x100>; 656 reg = <0x01c1c400 0x100>;
1066 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 657 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
1067 clocks = <&usb_clk 7>, <&ahb_gates 4>; 658 clocks = <&ccu CLK_USB_OHCI1>, <&ccu CLK_AHB_OHCI1>;
1068 phys = <&usbphy 2>; 659 phys = <&usbphy 2>;
1069 phy-names = "usb"; 660 phy-names = "usb";
1070 status = "disabled"; 661 status = "disabled";
1071 }; 662 };
1072 663
1073 spi3: spi@01c1f000 { 664 spi3: spi@1c1f000 {
1074 compatible = "allwinner,sun4i-a10-spi"; 665 compatible = "allwinner,sun4i-a10-spi";
1075 reg = <0x01c1f000 0x1000>; 666 reg = <0x01c1f000 0x1000>;
1076 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 667 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
1077 clocks = <&ahb_gates 23>, <&spi3_clk>; 668 clocks = <&ccu CLK_AHB_SPI3>, <&ccu CLK_SPI3>;
1078 clock-names = "ahb", "mod"; 669 clock-names = "ahb", "mod";
1079 dmas = <&dma SUN4I_DMA_DEDICATED 31>, 670 dmas = <&dma SUN4I_DMA_DEDICATED 31>,
1080 <&dma SUN4I_DMA_DEDICATED 30>; 671 <&dma SUN4I_DMA_DEDICATED 30>;
@@ -1085,11 +676,20 @@
1085 num-cs = <1>; 676 num-cs = <1>;
1086 }; 677 };
1087 678
1088 pio: pinctrl@01c20800 { 679 ccu: clock@1c20000 {
680 compatible = "allwinner,sun7i-a20-ccu";
681 reg = <0x01c20000 0x400>;
682 clocks = <&osc24M>, <&osc32k>;
683 clock-names = "hosc", "losc";
684 #clock-cells = <1>;
685 #reset-cells = <1>;
686 };
687
688 pio: pinctrl@1c20800 {
1089 compatible = "allwinner,sun7i-a20-pinctrl"; 689 compatible = "allwinner,sun7i-a20-pinctrl";
1090 reg = <0x01c20800 0x400>; 690 reg = <0x01c20800 0x400>;
1091 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 691 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
1092 clocks = <&apb0_gates 5>, <&osc24M>, <&osc32k>; 692 clocks = <&ccu CLK_APB0_PIO>, <&osc24M>, <&osc32k>;
1093 clock-names = "apb", "hosc", "losc"; 693 clock-names = "apb", "hosc", "losc";
1094 gpio-controller; 694 gpio-controller;
1095 interrupt-controller; 695 interrupt-controller;
@@ -1324,7 +924,7 @@
1324 }; 924 };
1325 }; 925 };
1326 926
1327 timer@01c20c00 { 927 timer@1c20c00 {
1328 compatible = "allwinner,sun4i-a10-timer"; 928 compatible = "allwinner,sun4i-a10-timer";
1329 reg = <0x01c20c00 0x90>; 929 reg = <0x01c20c00 0x90>;
1330 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>, 930 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
@@ -1336,18 +936,18 @@
1336 clocks = <&osc24M>; 936 clocks = <&osc24M>;
1337 }; 937 };
1338 938
1339 wdt: watchdog@01c20c90 { 939 wdt: watchdog@1c20c90 {
1340 compatible = "allwinner,sun4i-a10-wdt"; 940 compatible = "allwinner,sun4i-a10-wdt";
1341 reg = <0x01c20c90 0x10>; 941 reg = <0x01c20c90 0x10>;
1342 }; 942 };
1343 943
1344 rtc: rtc@01c20d00 { 944 rtc: rtc@1c20d00 {
1345 compatible = "allwinner,sun7i-a20-rtc"; 945 compatible = "allwinner,sun7i-a20-rtc";
1346 reg = <0x01c20d00 0x20>; 946 reg = <0x01c20d00 0x20>;
1347 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 947 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
1348 }; 948 };
1349 949
1350 pwm: pwm@01c20e00 { 950 pwm: pwm@1c20e00 {
1351 compatible = "allwinner,sun7i-a20-pwm"; 951 compatible = "allwinner,sun7i-a20-pwm";
1352 reg = <0x01c20e00 0xc>; 952 reg = <0x01c20e00 0xc>;
1353 clocks = <&osc24M>; 953 clocks = <&osc24M>;
@@ -1355,12 +955,12 @@
1355 status = "disabled"; 955 status = "disabled";
1356 }; 956 };
1357 957
1358 spdif: spdif@01c21000 { 958 spdif: spdif@1c21000 {
1359 #sound-dai-cells = <0>; 959 #sound-dai-cells = <0>;
1360 compatible = "allwinner,sun4i-a10-spdif"; 960 compatible = "allwinner,sun4i-a10-spdif";
1361 reg = <0x01c21000 0x400>; 961 reg = <0x01c21000 0x400>;
1362 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 962 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1363 clocks = <&apb0_gates 1>, <&spdif_clk>; 963 clocks = <&ccu CLK_APB0_SPDIF>, <&ccu CLK_SPDIF>;
1364 clock-names = "apb", "spdif"; 964 clock-names = "apb", "spdif";
1365 dmas = <&dma SUN4I_DMA_NORMAL 2>, 965 dmas = <&dma SUN4I_DMA_NORMAL 2>,
1366 <&dma SUN4I_DMA_NORMAL 2>; 966 <&dma SUN4I_DMA_NORMAL 2>;
@@ -1368,30 +968,30 @@
1368 status = "disabled"; 968 status = "disabled";
1369 }; 969 };
1370 970
1371 ir0: ir@01c21800 { 971 ir0: ir@1c21800 {
1372 compatible = "allwinner,sun4i-a10-ir"; 972 compatible = "allwinner,sun4i-a10-ir";
1373 clocks = <&apb0_gates 6>, <&ir0_clk>; 973 clocks = <&ccu CLK_APB0_IR0>, <&ccu CLK_IR0>;
1374 clock-names = "apb", "ir"; 974 clock-names = "apb", "ir";
1375 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 975 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
1376 reg = <0x01c21800 0x40>; 976 reg = <0x01c21800 0x40>;
1377 status = "disabled"; 977 status = "disabled";
1378 }; 978 };
1379 979
1380 ir1: ir@01c21c00 { 980 ir1: ir@1c21c00 {
1381 compatible = "allwinner,sun4i-a10-ir"; 981 compatible = "allwinner,sun4i-a10-ir";
1382 clocks = <&apb0_gates 7>, <&ir1_clk>; 982 clocks = <&ccu CLK_APB0_IR1>, <&ccu CLK_IR1>;
1383 clock-names = "apb", "ir"; 983 clock-names = "apb", "ir";
1384 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 984 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
1385 reg = <0x01c21c00 0x40>; 985 reg = <0x01c21c00 0x40>;
1386 status = "disabled"; 986 status = "disabled";
1387 }; 987 };
1388 988
1389 i2s1: i2s@01c22000 { 989 i2s1: i2s@1c22000 {
1390 #sound-dai-cells = <0>; 990 #sound-dai-cells = <0>;
1391 compatible = "allwinner,sun4i-a10-i2s"; 991 compatible = "allwinner,sun4i-a10-i2s";
1392 reg = <0x01c22000 0x400>; 992 reg = <0x01c22000 0x400>;
1393 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 993 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
1394 clocks = <&apb0_gates 4>, <&i2s1_clk>; 994 clocks = <&ccu CLK_APB0_I2S1>, <&ccu CLK_I2S1>;
1395 clock-names = "apb", "mod"; 995 clock-names = "apb", "mod";
1396 dmas = <&dma SUN4I_DMA_NORMAL 4>, 996 dmas = <&dma SUN4I_DMA_NORMAL 4>,
1397 <&dma SUN4I_DMA_NORMAL 4>; 997 <&dma SUN4I_DMA_NORMAL 4>;
@@ -1399,12 +999,12 @@
1399 status = "disabled"; 999 status = "disabled";
1400 }; 1000 };
1401 1001
1402 i2s0: i2s@01c22400 { 1002 i2s0: i2s@1c22400 {
1403 #sound-dai-cells = <0>; 1003 #sound-dai-cells = <0>;
1404 compatible = "allwinner,sun4i-a10-i2s"; 1004 compatible = "allwinner,sun4i-a10-i2s";
1405 reg = <0x01c22400 0x400>; 1005 reg = <0x01c22400 0x400>;
1406 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 1006 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
1407 clocks = <&apb0_gates 3>, <&i2s0_clk>; 1007 clocks = <&ccu CLK_APB0_I2S0>, <&ccu CLK_I2S0>;
1408 clock-names = "apb", "mod"; 1008 clock-names = "apb", "mod";
1409 dmas = <&dma SUN4I_DMA_NORMAL 3>, 1009 dmas = <&dma SUN4I_DMA_NORMAL 3>,
1410 <&dma SUN4I_DMA_NORMAL 3>; 1010 <&dma SUN4I_DMA_NORMAL 3>;
@@ -1412,19 +1012,19 @@
1412 status = "disabled"; 1012 status = "disabled";
1413 }; 1013 };
1414 1014
1415 lradc: lradc@01c22800 { 1015 lradc: lradc@1c22800 {
1416 compatible = "allwinner,sun4i-a10-lradc-keys"; 1016 compatible = "allwinner,sun4i-a10-lradc-keys";
1417 reg = <0x01c22800 0x100>; 1017 reg = <0x01c22800 0x100>;
1418 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 1018 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
1419 status = "disabled"; 1019 status = "disabled";
1420 }; 1020 };
1421 1021
1422 codec: codec@01c22c00 { 1022 codec: codec@1c22c00 {
1423 #sound-dai-cells = <0>; 1023 #sound-dai-cells = <0>;
1424 compatible = "allwinner,sun7i-a20-codec"; 1024 compatible = "allwinner,sun7i-a20-codec";
1425 reg = <0x01c22c00 0x40>; 1025 reg = <0x01c22c00 0x40>;
1426 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 1026 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
1427 clocks = <&apb0_gates 0>, <&codec_clk>; 1027 clocks = <&ccu CLK_APB0_CODEC>, <&ccu CLK_CODEC>;
1428 clock-names = "apb", "codec"; 1028 clock-names = "apb", "codec";
1429 dmas = <&dma SUN4I_DMA_NORMAL 19>, 1029 dmas = <&dma SUN4I_DMA_NORMAL 19>,
1430 <&dma SUN4I_DMA_NORMAL 19>; 1030 <&dma SUN4I_DMA_NORMAL 19>;
@@ -1432,17 +1032,17 @@
1432 status = "disabled"; 1032 status = "disabled";
1433 }; 1033 };
1434 1034
1435 sid: eeprom@01c23800 { 1035 sid: eeprom@1c23800 {
1436 compatible = "allwinner,sun7i-a20-sid"; 1036 compatible = "allwinner,sun7i-a20-sid";
1437 reg = <0x01c23800 0x200>; 1037 reg = <0x01c23800 0x200>;
1438 }; 1038 };
1439 1039
1440 i2s2: i2s@01c24400 { 1040 i2s2: i2s@1c24400 {
1441 #sound-dai-cells = <0>; 1041 #sound-dai-cells = <0>;
1442 compatible = "allwinner,sun4i-a10-i2s"; 1042 compatible = "allwinner,sun4i-a10-i2s";
1443 reg = <0x01c24400 0x400>; 1043 reg = <0x01c24400 0x400>;
1444 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 1044 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
1445 clocks = <&apb0_gates 8>, <&i2s2_clk>; 1045 clocks = <&ccu CLK_APB0_I2S2>, <&ccu CLK_I2S2>;
1446 clock-names = "apb", "mod"; 1046 clock-names = "apb", "mod";
1447 dmas = <&dma SUN4I_DMA_NORMAL 6>, 1047 dmas = <&dma SUN4I_DMA_NORMAL 6>,
1448 <&dma SUN4I_DMA_NORMAL 6>; 1048 <&dma SUN4I_DMA_NORMAL 6>;
@@ -1450,179 +1050,179 @@
1450 status = "disabled"; 1050 status = "disabled";
1451 }; 1051 };
1452 1052
1453 rtp: rtp@01c25000 { 1053 rtp: rtp@1c25000 {
1454 compatible = "allwinner,sun5i-a13-ts"; 1054 compatible = "allwinner,sun5i-a13-ts";
1455 reg = <0x01c25000 0x100>; 1055 reg = <0x01c25000 0x100>;
1456 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 1056 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
1457 #thermal-sensor-cells = <0>; 1057 #thermal-sensor-cells = <0>;
1458 }; 1058 };
1459 1059
1460 uart0: serial@01c28000 { 1060 uart0: serial@1c28000 {
1461 compatible = "snps,dw-apb-uart"; 1061 compatible = "snps,dw-apb-uart";
1462 reg = <0x01c28000 0x400>; 1062 reg = <0x01c28000 0x400>;
1463 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 1063 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
1464 reg-shift = <2>; 1064 reg-shift = <2>;
1465 reg-io-width = <4>; 1065 reg-io-width = <4>;
1466 clocks = <&apb1_gates 16>; 1066 clocks = <&ccu CLK_APB1_UART0>;
1467 status = "disabled"; 1067 status = "disabled";
1468 }; 1068 };
1469 1069
1470 uart1: serial@01c28400 { 1070 uart1: serial@1c28400 {
1471 compatible = "snps,dw-apb-uart"; 1071 compatible = "snps,dw-apb-uart";
1472 reg = <0x01c28400 0x400>; 1072 reg = <0x01c28400 0x400>;
1473 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 1073 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
1474 reg-shift = <2>; 1074 reg-shift = <2>;
1475 reg-io-width = <4>; 1075 reg-io-width = <4>;
1476 clocks = <&apb1_gates 17>; 1076 clocks = <&ccu CLK_APB1_UART1>;
1477 status = "disabled"; 1077 status = "disabled";
1478 }; 1078 };
1479 1079
1480 uart2: serial@01c28800 { 1080 uart2: serial@1c28800 {
1481 compatible = "snps,dw-apb-uart"; 1081 compatible = "snps,dw-apb-uart";
1482 reg = <0x01c28800 0x400>; 1082 reg = <0x01c28800 0x400>;
1483 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 1083 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
1484 reg-shift = <2>; 1084 reg-shift = <2>;
1485 reg-io-width = <4>; 1085 reg-io-width = <4>;
1486 clocks = <&apb1_gates 18>; 1086 clocks = <&ccu CLK_APB1_UART2>;
1487 status = "disabled"; 1087 status = "disabled";
1488 }; 1088 };
1489 1089
1490 uart3: serial@01c28c00 { 1090 uart3: serial@1c28c00 {
1491 compatible = "snps,dw-apb-uart"; 1091 compatible = "snps,dw-apb-uart";
1492 reg = <0x01c28c00 0x400>; 1092 reg = <0x01c28c00 0x400>;
1493 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 1093 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
1494 reg-shift = <2>; 1094 reg-shift = <2>;
1495 reg-io-width = <4>; 1095 reg-io-width = <4>;
1496 clocks = <&apb1_gates 19>; 1096 clocks = <&ccu CLK_APB1_UART3>;
1497 status = "disabled"; 1097 status = "disabled";
1498 }; 1098 };
1499 1099
1500 uart4: serial@01c29000 { 1100 uart4: serial@1c29000 {
1501 compatible = "snps,dw-apb-uart"; 1101 compatible = "snps,dw-apb-uart";
1502 reg = <0x01c29000 0x400>; 1102 reg = <0x01c29000 0x400>;
1503 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 1103 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
1504 reg-shift = <2>; 1104 reg-shift = <2>;
1505 reg-io-width = <4>; 1105 reg-io-width = <4>;
1506 clocks = <&apb1_gates 20>; 1106 clocks = <&ccu CLK_APB1_UART4>;
1507 status = "disabled"; 1107 status = "disabled";
1508 }; 1108 };
1509 1109
1510 uart5: serial@01c29400 { 1110 uart5: serial@1c29400 {
1511 compatible = "snps,dw-apb-uart"; 1111 compatible = "snps,dw-apb-uart";
1512 reg = <0x01c29400 0x400>; 1112 reg = <0x01c29400 0x400>;
1513 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 1113 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
1514 reg-shift = <2>; 1114 reg-shift = <2>;
1515 reg-io-width = <4>; 1115 reg-io-width = <4>;
1516 clocks = <&apb1_gates 21>; 1116 clocks = <&ccu CLK_APB1_UART5>;
1517 status = "disabled"; 1117 status = "disabled";
1518 }; 1118 };
1519 1119
1520 uart6: serial@01c29800 { 1120 uart6: serial@1c29800 {
1521 compatible = "snps,dw-apb-uart"; 1121 compatible = "snps,dw-apb-uart";
1522 reg = <0x01c29800 0x400>; 1122 reg = <0x01c29800 0x400>;
1523 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 1123 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
1524 reg-shift = <2>; 1124 reg-shift = <2>;
1525 reg-io-width = <4>; 1125 reg-io-width = <4>;
1526 clocks = <&apb1_gates 22>; 1126 clocks = <&ccu CLK_APB1_UART6>;
1527 status = "disabled"; 1127 status = "disabled";
1528 }; 1128 };
1529 1129
1530 uart7: serial@01c29c00 { 1130 uart7: serial@1c29c00 {
1531 compatible = "snps,dw-apb-uart"; 1131 compatible = "snps,dw-apb-uart";
1532 reg = <0x01c29c00 0x400>; 1132 reg = <0x01c29c00 0x400>;
1533 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 1133 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
1534 reg-shift = <2>; 1134 reg-shift = <2>;
1535 reg-io-width = <4>; 1135 reg-io-width = <4>;
1536 clocks = <&apb1_gates 23>; 1136 clocks = <&ccu CLK_APB1_UART7>;
1537 status = "disabled"; 1137 status = "disabled";
1538 }; 1138 };
1539 1139
1540 ps20: ps2@01c2a000 { 1140 ps20: ps2@1c2a000 {
1541 compatible = "allwinner,sun4i-a10-ps2"; 1141 compatible = "allwinner,sun4i-a10-ps2";
1542 reg = <0x01c2a000 0x400>; 1142 reg = <0x01c2a000 0x400>;
1543 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 1143 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
1544 clocks = <&apb1_gates 6>; 1144 clocks = <&ccu CLK_APB1_PS20>;
1545 status = "disabled"; 1145 status = "disabled";
1546 }; 1146 };
1547 1147
1548 ps21: ps2@01c2a400 { 1148 ps21: ps2@1c2a400 {
1549 compatible = "allwinner,sun4i-a10-ps2"; 1149 compatible = "allwinner,sun4i-a10-ps2";
1550 reg = <0x01c2a400 0x400>; 1150 reg = <0x01c2a400 0x400>;
1551 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 1151 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
1552 clocks = <&apb1_gates 7>; 1152 clocks = <&ccu CLK_APB1_PS21>;
1553 status = "disabled"; 1153 status = "disabled";
1554 }; 1154 };
1555 1155
1556 i2c0: i2c@01c2ac00 { 1156 i2c0: i2c@1c2ac00 {
1557 compatible = "allwinner,sun7i-a20-i2c", 1157 compatible = "allwinner,sun7i-a20-i2c",
1558 "allwinner,sun4i-a10-i2c"; 1158 "allwinner,sun4i-a10-i2c";
1559 reg = <0x01c2ac00 0x400>; 1159 reg = <0x01c2ac00 0x400>;
1560 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 1160 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1561 clocks = <&apb1_gates 0>; 1161 clocks = <&ccu CLK_APB1_I2C0>;
1562 status = "disabled"; 1162 status = "disabled";
1563 #address-cells = <1>; 1163 #address-cells = <1>;
1564 #size-cells = <0>; 1164 #size-cells = <0>;
1565 }; 1165 };
1566 1166
1567 i2c1: i2c@01c2b000 { 1167 i2c1: i2c@1c2b000 {
1568 compatible = "allwinner,sun7i-a20-i2c", 1168 compatible = "allwinner,sun7i-a20-i2c",
1569 "allwinner,sun4i-a10-i2c"; 1169 "allwinner,sun4i-a10-i2c";
1570 reg = <0x01c2b000 0x400>; 1170 reg = <0x01c2b000 0x400>;
1571 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 1171 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
1572 clocks = <&apb1_gates 1>; 1172 clocks = <&ccu CLK_APB1_I2C1>;
1573 status = "disabled"; 1173 status = "disabled";
1574 #address-cells = <1>; 1174 #address-cells = <1>;
1575 #size-cells = <0>; 1175 #size-cells = <0>;
1576 }; 1176 };
1577 1177
1578 i2c2: i2c@01c2b400 { 1178 i2c2: i2c@1c2b400 {
1579 compatible = "allwinner,sun7i-a20-i2c", 1179 compatible = "allwinner,sun7i-a20-i2c",
1580 "allwinner,sun4i-a10-i2c"; 1180 "allwinner,sun4i-a10-i2c";
1581 reg = <0x01c2b400 0x400>; 1181 reg = <0x01c2b400 0x400>;
1582 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 1182 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1583 clocks = <&apb1_gates 2>; 1183 clocks = <&ccu CLK_APB1_I2C2>;
1584 status = "disabled"; 1184 status = "disabled";
1585 #address-cells = <1>; 1185 #address-cells = <1>;
1586 #size-cells = <0>; 1186 #size-cells = <0>;
1587 }; 1187 };
1588 1188
1589 i2c3: i2c@01c2b800 { 1189 i2c3: i2c@1c2b800 {
1590 compatible = "allwinner,sun7i-a20-i2c", 1190 compatible = "allwinner,sun7i-a20-i2c",
1591 "allwinner,sun4i-a10-i2c"; 1191 "allwinner,sun4i-a10-i2c";
1592 reg = <0x01c2b800 0x400>; 1192 reg = <0x01c2b800 0x400>;
1593 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 1193 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1594 clocks = <&apb1_gates 3>; 1194 clocks = <&ccu CLK_APB1_I2C3>;
1595 status = "disabled"; 1195 status = "disabled";
1596 #address-cells = <1>; 1196 #address-cells = <1>;
1597 #size-cells = <0>; 1197 #size-cells = <0>;
1598 }; 1198 };
1599 1199
1600 can0: can@01c2bc00 { 1200 can0: can@1c2bc00 {
1601 compatible = "allwinner,sun7i-a20-can", 1201 compatible = "allwinner,sun7i-a20-can",
1602 "allwinner,sun4i-a10-can"; 1202 "allwinner,sun4i-a10-can";
1603 reg = <0x01c2bc00 0x400>; 1203 reg = <0x01c2bc00 0x400>;
1604 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 1204 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
1605 clocks = <&apb1_gates 4>; 1205 clocks = <&ccu CLK_APB1_CAN>;
1606 status = "disabled"; 1206 status = "disabled";
1607 }; 1207 };
1608 1208
1609 i2c4: i2c@01c2c000 { 1209 i2c4: i2c@1c2c000 {
1610 compatible = "allwinner,sun7i-a20-i2c", 1210 compatible = "allwinner,sun7i-a20-i2c",
1611 "allwinner,sun4i-a10-i2c"; 1211 "allwinner,sun4i-a10-i2c";
1612 reg = <0x01c2c000 0x400>; 1212 reg = <0x01c2c000 0x400>;
1613 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 1213 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1614 clocks = <&apb1_gates 15>; 1214 clocks = <&ccu CLK_APB1_I2C4>;
1615 status = "disabled"; 1215 status = "disabled";
1616 #address-cells = <1>; 1216 #address-cells = <1>;
1617 #size-cells = <0>; 1217 #size-cells = <0>;
1618 }; 1218 };
1619 1219
1620 gmac: ethernet@01c50000 { 1220 gmac: ethernet@1c50000 {
1621 compatible = "allwinner,sun7i-a20-gmac"; 1221 compatible = "allwinner,sun7i-a20-gmac";
1622 reg = <0x01c50000 0x10000>; 1222 reg = <0x01c50000 0x10000>;
1623 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 1223 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
1624 interrupt-names = "macirq"; 1224 interrupt-names = "macirq";
1625 clocks = <&ahb_gates 49>, <&gmac_tx_clk>; 1225 clocks = <&ccu CLK_AHB_GMAC>, <&gmac_tx_clk>;
1626 clock-names = "stmmaceth", "allwinner_gmac_tx"; 1226 clock-names = "stmmaceth", "allwinner_gmac_tx";
1627 snps,pbl = <2>; 1227 snps,pbl = <2>;
1628 snps,fixed-burst; 1228 snps,fixed-burst;
@@ -1632,17 +1232,17 @@
1632 #size-cells = <0>; 1232 #size-cells = <0>;
1633 }; 1233 };
1634 1234
1635 hstimer@01c60000 { 1235 hstimer@1c60000 {
1636 compatible = "allwinner,sun7i-a20-hstimer"; 1236 compatible = "allwinner,sun7i-a20-hstimer";
1637 reg = <0x01c60000 0x1000>; 1237 reg = <0x01c60000 0x1000>;
1638 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>, 1238 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>,
1639 <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>, 1239 <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>,
1640 <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>, 1240 <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>,
1641 <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 1241 <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
1642 clocks = <&ahb_gates 28>; 1242 clocks = <&ccu CLK_AHB_HSTIMER>;
1643 }; 1243 };
1644 1244
1645 gic: interrupt-controller@01c81000 { 1245 gic: interrupt-controller@1c81000 {
1646 compatible = "arm,gic-400", "arm,cortex-a7-gic", "arm,cortex-a15-gic"; 1246 compatible = "arm,gic-400", "arm,cortex-a7-gic", "arm,cortex-a15-gic";
1647 reg = <0x01c81000 0x1000>, 1247 reg = <0x01c81000 0x1000>,
1648 <0x01c82000 0x2000>, 1248 <0x01c82000 0x2000>,
@@ -1653,5 +1253,164 @@
1653 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 1253 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
1654 }; 1254 };
1655 1255
1256 fe0: display-frontend@1e00000 {
1257 compatible = "allwinner,sun7i-a20-display-frontend";
1258 reg = <0x01e00000 0x20000>;
1259 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
1260 clocks = <&ccu CLK_AHB_DE_FE0>, <&ccu CLK_DE_FE0>,
1261 <&ccu CLK_DRAM_DE_FE0>;
1262 clock-names = "ahb", "mod",
1263 "ram";
1264 resets = <&ccu RST_DE_FE0>;
1265
1266 ports {
1267 #address-cells = <1>;
1268 #size-cells = <0>;
1269
1270 fe0_out: port@1 {
1271 #address-cells = <1>;
1272 #size-cells = <0>;
1273 reg = <1>;
1274
1275 fe0_out_be0: endpoint@0 {
1276 reg = <0>;
1277 remote-endpoint = <&be0_in_fe0>;
1278 };
1279
1280 fe0_out_be1: endpoint@1 {
1281 reg = <1>;
1282 remote-endpoint = <&be1_in_fe0>;
1283 };
1284 };
1285 };
1286 };
1287
1288 fe1: display-frontend@1e20000 {
1289 compatible = "allwinner,sun7i-a20-display-frontend";
1290 reg = <0x01e20000 0x20000>;
1291 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
1292 clocks = <&ccu CLK_AHB_DE_FE1>, <&ccu CLK_DE_FE1>,
1293 <&ccu CLK_DRAM_DE_FE1>;
1294 clock-names = "ahb", "mod",
1295 "ram";
1296 resets = <&ccu RST_DE_FE1>;
1297
1298 ports {
1299 #address-cells = <1>;
1300 #size-cells = <0>;
1301
1302 fe1_out: port@1 {
1303 #address-cells = <1>;
1304 #size-cells = <0>;
1305 reg = <1>;
1306
1307 fe1_out_be0: endpoint@0 {
1308 reg = <0>;
1309 remote-endpoint = <&be0_in_fe1>;
1310 };
1311
1312 fe1_out_be1: endpoint@1 {
1313 reg = <1>;
1314 remote-endpoint = <&be1_in_fe1>;
1315 };
1316 };
1317 };
1318 };
1319
1320 be1: display-backend@1e40000 {
1321 compatible = "allwinner,sun7i-a20-display-backend";
1322 reg = <0x01e40000 0x10000>;
1323 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
1324 clocks = <&ccu CLK_AHB_DE_BE1>, <&ccu CLK_DE_BE1>,
1325 <&ccu CLK_DRAM_DE_BE1>;
1326 clock-names = "ahb", "mod",
1327 "ram";
1328 resets = <&ccu RST_DE_BE1>;
1329
1330 ports {
1331 #address-cells = <1>;
1332 #size-cells = <0>;
1333
1334 be1_in: port@0 {
1335 #address-cells = <1>;
1336 #size-cells = <0>;
1337 reg = <0>;
1338
1339 be1_in_fe0: endpoint@0 {
1340 reg = <0>;
1341 remote-endpoint = <&fe0_out_be1>;
1342 };
1343
1344 be1_in_fe1: endpoint@1 {
1345 reg = <1>;
1346 remote-endpoint = <&fe1_out_be1>;
1347 };
1348 };
1349
1350 be1_out: port@1 {
1351 #address-cells = <1>;
1352 #size-cells = <0>;
1353 reg = <1>;
1354
1355 be1_out_tcon0: endpoint@0 {
1356 reg = <0>;
1357 remote-endpoint = <&tcon1_in_be0>;
1358 };
1359
1360 be1_out_tcon1: endpoint@1 {
1361 reg = <1>;
1362 remote-endpoint = <&tcon1_in_be1>;
1363 };
1364 };
1365 };
1366 };
1367
1368 be0: display-backend@1e60000 {
1369 compatible = "allwinner,sun7i-a20-display-backend";
1370 reg = <0x01e60000 0x10000>;
1371 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
1372 clocks = <&ccu CLK_AHB_DE_BE0>, <&ccu CLK_DE_BE0>,
1373 <&ccu CLK_DRAM_DE_BE0>;
1374 clock-names = "ahb", "mod",
1375 "ram";
1376 resets = <&ccu RST_DE_BE0>;
1377
1378 ports {
1379 #address-cells = <1>;
1380 #size-cells = <0>;
1381
1382 be0_in: port@0 {
1383 #address-cells = <1>;
1384 #size-cells = <0>;
1385 reg = <0>;
1386
1387 be0_in_fe0: endpoint@0 {
1388 reg = <0>;
1389 remote-endpoint = <&fe0_out_be0>;
1390 };
1391
1392 be0_in_fe1: endpoint@1 {
1393 reg = <1>;
1394 remote-endpoint = <&fe1_out_be0>;
1395 };
1396 };
1397
1398 be0_out: port@1 {
1399 #address-cells = <1>;
1400 #size-cells = <0>;
1401 reg = <1>;
1402
1403 be0_out_tcon0: endpoint@0 {
1404 reg = <0>;
1405 remote-endpoint = <&tcon0_in_be0>;
1406 };
1407
1408 be0_out_tcon1: endpoint@1 {
1409 reg = <1>;
1410 remote-endpoint = <&tcon1_in_be0>;
1411 };
1412 };
1413 };
1414 };
1656 }; 1415 };
1657}; 1416};
diff --git a/arch/arm/boot/dts/sun8i-a23-a33.dtsi b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
index ea50dda75adc..971f9be699a7 100644
--- a/arch/arm/boot/dts/sun8i-a23-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
@@ -118,13 +118,13 @@
118 }; 118 };
119 }; 119 };
120 120
121 soc@01c00000 { 121 soc@1c00000 {
122 compatible = "simple-bus"; 122 compatible = "simple-bus";
123 #address-cells = <1>; 123 #address-cells = <1>;
124 #size-cells = <1>; 124 #size-cells = <1>;
125 ranges; 125 ranges;
126 126
127 dma: dma-controller@01c02000 { 127 dma: dma-controller@1c02000 {
128 compatible = "allwinner,sun8i-a23-dma"; 128 compatible = "allwinner,sun8i-a23-dma";
129 reg = <0x01c02000 0x1000>; 129 reg = <0x01c02000 0x1000>;
130 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 130 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
@@ -133,7 +133,7 @@
133 #dma-cells = <1>; 133 #dma-cells = <1>;
134 }; 134 };
135 135
136 mmc0: mmc@01c0f000 { 136 mmc0: mmc@1c0f000 {
137 compatible = "allwinner,sun7i-a20-mmc"; 137 compatible = "allwinner,sun7i-a20-mmc";
138 reg = <0x01c0f000 0x1000>; 138 reg = <0x01c0f000 0x1000>;
139 clocks = <&ccu CLK_BUS_MMC0>, 139 clocks = <&ccu CLK_BUS_MMC0>,
@@ -152,7 +152,7 @@
152 #size-cells = <0>; 152 #size-cells = <0>;
153 }; 153 };
154 154
155 mmc1: mmc@01c10000 { 155 mmc1: mmc@1c10000 {
156 compatible = "allwinner,sun7i-a20-mmc"; 156 compatible = "allwinner,sun7i-a20-mmc";
157 reg = <0x01c10000 0x1000>; 157 reg = <0x01c10000 0x1000>;
158 clocks = <&ccu CLK_BUS_MMC1>, 158 clocks = <&ccu CLK_BUS_MMC1>,
@@ -171,7 +171,7 @@
171 #size-cells = <0>; 171 #size-cells = <0>;
172 }; 172 };
173 173
174 mmc2: mmc@01c11000 { 174 mmc2: mmc@1c11000 {
175 compatible = "allwinner,sun7i-a20-mmc"; 175 compatible = "allwinner,sun7i-a20-mmc";
176 reg = <0x01c11000 0x1000>; 176 reg = <0x01c11000 0x1000>;
177 clocks = <&ccu CLK_BUS_MMC2>, 177 clocks = <&ccu CLK_BUS_MMC2>,
@@ -190,7 +190,7 @@
190 #size-cells = <0>; 190 #size-cells = <0>;
191 }; 191 };
192 192
193 nfc: nand@01c03000 { 193 nfc: nand@1c03000 {
194 compatible = "allwinner,sun4i-a10-nand"; 194 compatible = "allwinner,sun4i-a10-nand";
195 reg = <0x01c03000 0x1000>; 195 reg = <0x01c03000 0x1000>;
196 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; 196 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
@@ -203,7 +203,7 @@
203 #size-cells = <0>; 203 #size-cells = <0>;
204 }; 204 };
205 205
206 usb_otg: usb@01c19000 { 206 usb_otg: usb@1c19000 {
207 /* compatible gets set in SoC specific dtsi file */ 207 /* compatible gets set in SoC specific dtsi file */
208 reg = <0x01c19000 0x0400>; 208 reg = <0x01c19000 0x0400>;
209 clocks = <&ccu CLK_BUS_OTG>; 209 clocks = <&ccu CLK_BUS_OTG>;
@@ -216,7 +216,7 @@
216 status = "disabled"; 216 status = "disabled";
217 }; 217 };
218 218
219 usbphy: phy@01c19400 { 219 usbphy: phy@1c19400 {
220 /* 220 /*
221 * compatible and address regions get set in 221 * compatible and address regions get set in
222 * SoC specific dtsi file 222 * SoC specific dtsi file
@@ -233,7 +233,7 @@
233 #phy-cells = <1>; 233 #phy-cells = <1>;
234 }; 234 };
235 235
236 ehci0: usb@01c1a000 { 236 ehci0: usb@1c1a000 {
237 compatible = "allwinner,sun8i-a23-ehci", "generic-ehci"; 237 compatible = "allwinner,sun8i-a23-ehci", "generic-ehci";
238 reg = <0x01c1a000 0x100>; 238 reg = <0x01c1a000 0x100>;
239 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 239 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
@@ -244,7 +244,7 @@
244 status = "disabled"; 244 status = "disabled";
245 }; 245 };
246 246
247 ohci0: usb@01c1a400 { 247 ohci0: usb@1c1a400 {
248 compatible = "allwinner,sun8i-a23-ohci", "generic-ohci"; 248 compatible = "allwinner,sun8i-a23-ohci", "generic-ohci";
249 reg = <0x01c1a400 0x100>; 249 reg = <0x01c1a400 0x100>;
250 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 250 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
@@ -255,7 +255,7 @@
255 status = "disabled"; 255 status = "disabled";
256 }; 256 };
257 257
258 ccu: clock@01c20000 { 258 ccu: clock@1c20000 {
259 reg = <0x01c20000 0x400>; 259 reg = <0x01c20000 0x400>;
260 clocks = <&osc24M>, <&rtc 0>; 260 clocks = <&osc24M>, <&rtc 0>;
261 clock-names = "hosc", "losc"; 261 clock-names = "hosc", "losc";
@@ -263,7 +263,7 @@
263 #reset-cells = <1>; 263 #reset-cells = <1>;
264 }; 264 };
265 265
266 pio: pinctrl@01c20800 { 266 pio: pinctrl@1c20800 {
267 /* compatible gets set in SoC specific dtsi file */ 267 /* compatible gets set in SoC specific dtsi file */
268 reg = <0x01c20800 0x400>; 268 reg = <0x01c20800 0x400>;
269 /* interrupts get set in SoC specific dtsi file */ 269 /* interrupts get set in SoC specific dtsi file */
@@ -344,7 +344,7 @@
344 }; 344 };
345 }; 345 };
346 346
347 timer@01c20c00 { 347 timer@1c20c00 {
348 compatible = "allwinner,sun4i-a10-timer"; 348 compatible = "allwinner,sun4i-a10-timer";
349 reg = <0x01c20c00 0xa0>; 349 reg = <0x01c20c00 0xa0>;
350 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 350 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
@@ -352,13 +352,13 @@
352 clocks = <&osc24M>; 352 clocks = <&osc24M>;
353 }; 353 };
354 354
355 wdt0: watchdog@01c20ca0 { 355 wdt0: watchdog@1c20ca0 {
356 compatible = "allwinner,sun6i-a31-wdt"; 356 compatible = "allwinner,sun6i-a31-wdt";
357 reg = <0x01c20ca0 0x20>; 357 reg = <0x01c20ca0 0x20>;
358 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 358 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
359 }; 359 };
360 360
361 pwm: pwm@01c21400 { 361 pwm: pwm@1c21400 {
362 compatible = "allwinner,sun7i-a20-pwm"; 362 compatible = "allwinner,sun7i-a20-pwm";
363 reg = <0x01c21400 0xc>; 363 reg = <0x01c21400 0xc>;
364 clocks = <&osc24M>; 364 clocks = <&osc24M>;
@@ -366,14 +366,14 @@
366 status = "disabled"; 366 status = "disabled";
367 }; 367 };
368 368
369 lradc: lradc@01c22800 { 369 lradc: lradc@1c22800 {
370 compatible = "allwinner,sun4i-a10-lradc-keys"; 370 compatible = "allwinner,sun4i-a10-lradc-keys";
371 reg = <0x01c22800 0x100>; 371 reg = <0x01c22800 0x100>;
372 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 372 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
373 status = "disabled"; 373 status = "disabled";
374 }; 374 };
375 375
376 uart0: serial@01c28000 { 376 uart0: serial@1c28000 {
377 compatible = "snps,dw-apb-uart"; 377 compatible = "snps,dw-apb-uart";
378 reg = <0x01c28000 0x400>; 378 reg = <0x01c28000 0x400>;
379 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 379 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
@@ -386,7 +386,7 @@
386 status = "disabled"; 386 status = "disabled";
387 }; 387 };
388 388
389 uart1: serial@01c28400 { 389 uart1: serial@1c28400 {
390 compatible = "snps,dw-apb-uart"; 390 compatible = "snps,dw-apb-uart";
391 reg = <0x01c28400 0x400>; 391 reg = <0x01c28400 0x400>;
392 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 392 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
@@ -399,7 +399,7 @@
399 status = "disabled"; 399 status = "disabled";
400 }; 400 };
401 401
402 uart2: serial@01c28800 { 402 uart2: serial@1c28800 {
403 compatible = "snps,dw-apb-uart"; 403 compatible = "snps,dw-apb-uart";
404 reg = <0x01c28800 0x400>; 404 reg = <0x01c28800 0x400>;
405 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 405 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
@@ -412,7 +412,7 @@
412 status = "disabled"; 412 status = "disabled";
413 }; 413 };
414 414
415 uart3: serial@01c28c00 { 415 uart3: serial@1c28c00 {
416 compatible = "snps,dw-apb-uart"; 416 compatible = "snps,dw-apb-uart";
417 reg = <0x01c28c00 0x400>; 417 reg = <0x01c28c00 0x400>;
418 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 418 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
@@ -425,7 +425,7 @@
425 status = "disabled"; 425 status = "disabled";
426 }; 426 };
427 427
428 uart4: serial@01c29000 { 428 uart4: serial@1c29000 {
429 compatible = "snps,dw-apb-uart"; 429 compatible = "snps,dw-apb-uart";
430 reg = <0x01c29000 0x400>; 430 reg = <0x01c29000 0x400>;
431 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 431 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
@@ -438,7 +438,7 @@
438 status = "disabled"; 438 status = "disabled";
439 }; 439 };
440 440
441 i2c0: i2c@01c2ac00 { 441 i2c0: i2c@1c2ac00 {
442 compatible = "allwinner,sun6i-a31-i2c"; 442 compatible = "allwinner,sun6i-a31-i2c";
443 reg = <0x01c2ac00 0x400>; 443 reg = <0x01c2ac00 0x400>;
444 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 444 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
@@ -449,7 +449,7 @@
449 #size-cells = <0>; 449 #size-cells = <0>;
450 }; 450 };
451 451
452 i2c1: i2c@01c2b000 { 452 i2c1: i2c@1c2b000 {
453 compatible = "allwinner,sun6i-a31-i2c"; 453 compatible = "allwinner,sun6i-a31-i2c";
454 reg = <0x01c2b000 0x400>; 454 reg = <0x01c2b000 0x400>;
455 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 455 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
@@ -460,7 +460,7 @@
460 #size-cells = <0>; 460 #size-cells = <0>;
461 }; 461 };
462 462
463 i2c2: i2c@01c2b400 { 463 i2c2: i2c@1c2b400 {
464 compatible = "allwinner,sun6i-a31-i2c"; 464 compatible = "allwinner,sun6i-a31-i2c";
465 reg = <0x01c2b400 0x400>; 465 reg = <0x01c2b400 0x400>;
466 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 466 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
@@ -498,7 +498,7 @@
498 assigned-clock-rates = <384000000>; 498 assigned-clock-rates = <384000000>;
499 }; 499 };
500 500
501 gic: interrupt-controller@01c81000 { 501 gic: interrupt-controller@1c81000 {
502 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; 502 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
503 reg = <0x01c81000 0x1000>, 503 reg = <0x01c81000 0x1000>,
504 <0x01c82000 0x2000>, 504 <0x01c82000 0x2000>,
@@ -509,7 +509,7 @@
509 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 509 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
510 }; 510 };
511 511
512 rtc: rtc@01f00000 { 512 rtc: rtc@1f00000 {
513 compatible = "allwinner,sun6i-a31-rtc"; 513 compatible = "allwinner,sun6i-a31-rtc";
514 reg = <0x01f00000 0x54>; 514 reg = <0x01f00000 0x54>;
515 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 515 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
@@ -527,7 +527,7 @@
527 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 527 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
528 }; 528 };
529 529
530 prcm@01f01400 { 530 prcm@1f01400 {
531 compatible = "allwinner,sun8i-a23-prcm"; 531 compatible = "allwinner,sun8i-a23-prcm";
532 reg = <0x01f01400 0x200>; 532 reg = <0x01f01400 0x200>;
533 533
@@ -575,12 +575,12 @@
575 }; 575 };
576 }; 576 };
577 577
578 cpucfg@01f01c00 { 578 cpucfg@1f01c00 {
579 compatible = "allwinner,sun8i-a23-cpuconfig"; 579 compatible = "allwinner,sun8i-a23-cpuconfig";
580 reg = <0x01f01c00 0x300>; 580 reg = <0x01f01c00 0x300>;
581 }; 581 };
582 582
583 r_uart: serial@01f02800 { 583 r_uart: serial@1f02800 {
584 compatible = "snps,dw-apb-uart"; 584 compatible = "snps,dw-apb-uart";
585 reg = <0x01f02800 0x400>; 585 reg = <0x01f02800 0x400>;
586 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 586 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
@@ -591,7 +591,7 @@
591 status = "disabled"; 591 status = "disabled";
592 }; 592 };
593 593
594 r_pio: pinctrl@01f02c00 { 594 r_pio: pinctrl@1f02c00 {
595 compatible = "allwinner,sun8i-a23-r-pinctrl"; 595 compatible = "allwinner,sun8i-a23-r-pinctrl";
596 reg = <0x01f02c00 0x400>; 596 reg = <0x01f02c00 0x400>;
597 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 597 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
@@ -618,7 +618,7 @@
618 }; 618 };
619 }; 619 };
620 620
621 r_rsb: rsb@01f03400 { 621 r_rsb: rsb@1f03400 {
622 compatible = "allwinner,sun8i-a23-rsb"; 622 compatible = "allwinner,sun8i-a23-rsb";
623 reg = <0x01f03400 0x400>; 623 reg = <0x01f03400 0x400>;
624 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 624 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/sun8i-a23.dtsi b/arch/arm/boot/dts/sun8i-a23.dtsi
index 4d1f929780a8..58e6585b504b 100644
--- a/arch/arm/boot/dts/sun8i-a23.dtsi
+++ b/arch/arm/boot/dts/sun8i-a23.dtsi
@@ -49,8 +49,8 @@
49 reg = <0x40000000 0x40000000>; 49 reg = <0x40000000 0x40000000>;
50 }; 50 };
51 51
52 soc@01c00000 { 52 soc@1c00000 {
53 codec: codec@01c22c00 { 53 codec: codec@1c22c00 {
54 #sound-dai-cells = <0>; 54 #sound-dai-cells = <0>;
55 compatible = "allwinner,sun8i-a23-codec"; 55 compatible = "allwinner,sun8i-a23-codec";
56 reg = <0x01c22c00 0x400>; 56 reg = <0x01c22c00 0x400>;
diff --git a/arch/arm/boot/dts/sun8i-a33.dtsi b/arch/arm/boot/dts/sun8i-a33.dtsi
index 22660919bd08..50eb84fa246a 100644
--- a/arch/arm/boot/dts/sun8i-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a33.dtsi
@@ -203,8 +203,8 @@
203 }; 203 };
204 }; 204 };
205 205
206 soc@01c00000 { 206 soc@1c00000 {
207 tcon0: lcd-controller@01c0c000 { 207 tcon0: lcd-controller@1c0c000 {
208 compatible = "allwinner,sun8i-a33-tcon"; 208 compatible = "allwinner,sun8i-a33-tcon";
209 reg = <0x01c0c000 0x1000>; 209 reg = <0x01c0c000 0x1000>;
210 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 210 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
@@ -240,7 +240,7 @@
240 }; 240 };
241 }; 241 };
242 242
243 crypto: crypto-engine@01c15000 { 243 crypto: crypto-engine@1c15000 {
244 compatible = "allwinner,sun4i-a10-crypto"; 244 compatible = "allwinner,sun4i-a10-crypto";
245 reg = <0x01c15000 0x1000>; 245 reg = <0x01c15000 0x1000>;
246 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 246 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
@@ -250,7 +250,7 @@
250 reset-names = "ahb"; 250 reset-names = "ahb";
251 }; 251 };
252 252
253 dai: dai@01c22c00 { 253 dai: dai@1c22c00 {
254 #sound-dai-cells = <0>; 254 #sound-dai-cells = <0>;
255 compatible = "allwinner,sun6i-a31-i2s"; 255 compatible = "allwinner,sun6i-a31-i2s";
256 reg = <0x01c22c00 0x200>; 256 reg = <0x01c22c00 0x200>;
@@ -263,7 +263,7 @@
263 status = "disabled"; 263 status = "disabled";
264 }; 264 };
265 265
266 codec: codec@01c22e00 { 266 codec: codec@1c22e00 {
267 #sound-dai-cells = <0>; 267 #sound-dai-cells = <0>;
268 compatible = "allwinner,sun8i-a33-codec"; 268 compatible = "allwinner,sun8i-a33-codec";
269 reg = <0x01c22e00 0x400>; 269 reg = <0x01c22e00 0x400>;
@@ -273,14 +273,14 @@
273 status = "disabled"; 273 status = "disabled";
274 }; 274 };
275 275
276 ths: ths@01c25000 { 276 ths: ths@1c25000 {
277 compatible = "allwinner,sun8i-a33-ths"; 277 compatible = "allwinner,sun8i-a33-ths";
278 reg = <0x01c25000 0x100>; 278 reg = <0x01c25000 0x100>;
279 #thermal-sensor-cells = <0>; 279 #thermal-sensor-cells = <0>;
280 #io-channel-cells = <0>; 280 #io-channel-cells = <0>;
281 }; 281 };
282 282
283 fe0: display-frontend@01e00000 { 283 fe0: display-frontend@1e00000 {
284 compatible = "allwinner,sun8i-a33-display-frontend"; 284 compatible = "allwinner,sun8i-a33-display-frontend";
285 reg = <0x01e00000 0x20000>; 285 reg = <0x01e00000 0x20000>;
286 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 286 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
@@ -308,7 +308,7 @@
308 }; 308 };
309 }; 309 };
310 310
311 be0: display-backend@01e60000 { 311 be0: display-backend@1e60000 {
312 compatible = "allwinner,sun8i-a33-display-backend"; 312 compatible = "allwinner,sun8i-a33-display-backend";
313 reg = <0x01e60000 0x10000>, <0x01e80000 0x1000>; 313 reg = <0x01e60000 0x10000>, <0x01e80000 0x1000>;
314 reg-names = "be", "sat"; 314 reg-names = "be", "sat";
@@ -350,7 +350,7 @@
350 }; 350 };
351 }; 351 };
352 352
353 drc0: drc@01e70000 { 353 drc0: drc@1e70000 {
354 compatible = "allwinner,sun8i-a33-drc"; 354 compatible = "allwinner,sun8i-a33-drc";
355 reg = <0x01e70000 0x10000>; 355 reg = <0x01e70000 0x10000>;
356 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 356 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/sun8i-a83t-allwinner-h8homlet-v2.dts b/arch/arm/boot/dts/sun8i-a83t-allwinner-h8homlet-v2.dts
index 1f0d60afb25b..5091cecbcd1e 100644
--- a/arch/arm/boot/dts/sun8i-a83t-allwinner-h8homlet-v2.dts
+++ b/arch/arm/boot/dts/sun8i-a83t-allwinner-h8homlet-v2.dts
@@ -43,7 +43,8 @@
43 43
44/dts-v1/; 44/dts-v1/;
45#include "sun8i-a83t.dtsi" 45#include "sun8i-a83t.dtsi"
46#include "sunxi-common-regulators.dtsi" 46
47#include <dt-bindings/gpio/gpio.h>
47 48
48/ { 49/ {
49 model = "Allwinner A83T H8Homlet Proto Dev Board v2.0"; 50 model = "Allwinner A83T H8Homlet Proto Dev Board v2.0";
@@ -56,6 +57,26 @@
56 chosen { 57 chosen {
57 stdout-path = "serial0:115200n8"; 58 stdout-path = "serial0:115200n8";
58 }; 59 };
60
61 reg_usb0_vbus: reg-usb0-vbus {
62 compatible = "regulator-fixed";
63 regulator-name = "usb0-vbus";
64 regulator-min-microvolt = <5000000>;
65 regulator-max-microvolt = <5000000>;
66 regulator-boot-on;
67 enable-active-high;
68 gpio = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */
69 };
70
71 reg_usb1_vbus: reg-usb1-vbus {
72 compatible = "regulator-fixed";
73 regulator-name = "usb1-vbus";
74 regulator-min-microvolt = <5000000>;
75 regulator-max-microvolt = <5000000>;
76 regulator-boot-on;
77 enable-active-high;
78 gpio = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
79 };
59}; 80};
60 81
61&ehci0 { 82&ehci0 {
@@ -65,7 +86,7 @@
65&mmc0 { 86&mmc0 {
66 pinctrl-names = "default"; 87 pinctrl-names = "default";
67 pinctrl-0 = <&mmc0_pins>; 88 pinctrl-0 = <&mmc0_pins>;
68 vmmc-supply = <&reg_vcc3v0>; 89 vmmc-supply = <&reg_dcdc1>;
69 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */ 90 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
70 bus-width = <4>; 91 bus-width = <4>;
71 cd-inverted; 92 cd-inverted;
@@ -75,7 +96,8 @@
75&mmc2 { 96&mmc2 {
76 pinctrl-names = "default"; 97 pinctrl-names = "default";
77 pinctrl-0 = <&mmc2_8bit_emmc_pins>; 98 pinctrl-0 = <&mmc2_8bit_emmc_pins>;
78 vmmc-supply = <&reg_vcc3v0>; 99 vmmc-supply = <&reg_dcdc1>;
100 vqmmc-supply = <&reg_dcdc1>;
79 bus-width = <8>; 101 bus-width = <8>;
80 non-removable; 102 non-removable;
81 cap-mmc-hw-reset; 103 cap-mmc-hw-reset;
@@ -86,16 +108,6 @@
86 status = "okay"; 108 status = "okay";
87}; 109};
88 110
89&reg_usb0_vbus {
90 gpio = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */
91 status = "okay";
92};
93
94&reg_usb1_vbus {
95 gpio = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
96 status = "okay";
97};
98
99&r_rsb { 111&r_rsb {
100 status = "okay"; 112 status = "okay";
101 113
@@ -104,6 +116,8 @@
104 reg = <0x3a3>; 116 reg = <0x3a3>;
105 interrupt-parent = <&r_intc>; 117 interrupt-parent = <&r_intc>;
106 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 118 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
119 eldoin-supply = <&reg_dcdc1>;
120 swin-supply = <&reg_dcdc1>;
107 }; 121 };
108 122
109 ac100: codec@e89 { 123 ac100: codec@e89 {
@@ -131,6 +145,113 @@
131 }; 145 };
132}; 146};
133 147
148#include "axp81x.dtsi"
149
150&reg_aldo1 {
151 regulator-always-on;
152 regulator-min-microvolt = <1800000>;
153 regulator-max-microvolt = <1800000>;
154 regulator-name = "vcc-1v8";
155};
156
157&reg_aldo2 {
158 regulator-always-on;
159 regulator-min-microvolt = <1800000>;
160 regulator-max-microvolt = <1800000>;
161 regulator-name = "dram-pll";
162};
163
164&reg_aldo3 {
165 regulator-always-on;
166 regulator-min-microvolt = <3000000>;
167 regulator-max-microvolt = <3000000>;
168 regulator-name = "avcc";
169};
170
171&reg_dcdc1 {
172 regulator-always-on;
173 regulator-min-microvolt = <3300000>;
174 regulator-max-microvolt = <3300000>;
175 regulator-name = "vcc-3v3";
176};
177
178&reg_dcdc2 {
179 regulator-always-on;
180 regulator-min-microvolt = <700000>;
181 regulator-max-microvolt = <1100000>;
182 regulator-name = "vdd-cpua";
183};
184
185&reg_dcdc3 {
186 regulator-always-on;
187 regulator-min-microvolt = <700000>;
188 regulator-max-microvolt = <1100000>;
189 regulator-name = "vdd-cpub";
190};
191
192&reg_dcdc4 {
193 regulator-min-microvolt = <700000>;
194 regulator-max-microvolt = <1100000>;
195 regulator-name = "vdd-gpu";
196};
197
198&reg_dcdc5 {
199 regulator-always-on;
200 regulator-min-microvolt = <1500000>;
201 regulator-max-microvolt = <1500000>;
202 regulator-name = "vcc-dram";
203};
204
205&reg_dcdc6 {
206 regulator-always-on;
207 regulator-min-microvolt = <900000>;
208 regulator-max-microvolt = <900000>;
209 regulator-name = "vdd-sys";
210};
211
212&reg_dldo2 {
213 regulator-min-microvolt = <3300000>;
214 regulator-max-microvolt = <3300000>;
215 regulator-name = "vcc-mipi";
216};
217
218&reg_dldo4 {
219 /*
220 * The PHY requires 20ms after all voltages are applied until core
221 * logic is ready and 30ms after the reset pin is de-asserted.
222 * Set a 100ms delay to account for PMIC ramp time and board traces.
223 */
224 regulator-enable-ramp-delay = <100000>;
225 regulator-min-microvolt = <3300000>;
226 regulator-max-microvolt = <3300000>;
227 regulator-name = "vcc-ephy";
228};
229
230&reg_fldo1 {
231 regulator-min-microvolt = <1080000>;
232 regulator-max-microvolt = <1320000>;
233 regulator-name = "vdd12-hsic";
234};
235
236&reg_fldo2 {
237 /*
238 * Despite the embedded CPUs core not being used in any way,
239 * this must remain on or the system will hang.
240 */
241 regulator-always-on;
242 regulator-min-microvolt = <700000>;
243 regulator-max-microvolt = <1100000>;
244 regulator-name = "vdd-cpus";
245};
246
247&reg_rtc_ldo {
248 regulator-name = "vcc-rtc";
249};
250
251&reg_sw {
252 regulator-name = "vcc-wifi";
253};
254
134&uart0 { 255&uart0 {
135 pinctrl-names = "default"; 256 pinctrl-names = "default";
136 pinctrl-0 = <&uart0_pb_pins>; 257 pinctrl-0 = <&uart0_pb_pins>;
diff --git a/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts b/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts
index 2bafd7e99ef7..c606af3dbfed 100644
--- a/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts
+++ b/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts
@@ -44,7 +44,6 @@
44 44
45/dts-v1/; 45/dts-v1/;
46#include "sun8i-a83t.dtsi" 46#include "sun8i-a83t.dtsi"
47#include "sunxi-common-regulators.dtsi"
48 47
49#include <dt-bindings/gpio/gpio.h> 48#include <dt-bindings/gpio/gpio.h>
50 49
@@ -59,6 +58,27 @@
59 chosen { 58 chosen {
60 stdout-path = "serial0:115200n8"; 59 stdout-path = "serial0:115200n8";
61 }; 60 };
61
62 reg_usb1_vbus: reg-usb1-vbus {
63 compatible = "regulator-fixed";
64 regulator-name = "usb1-vbus";
65 regulator-min-microvolt = <5000000>;
66 regulator-max-microvolt = <5000000>;
67 regulator-boot-on;
68 enable-active-high;
69 gpio = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */
70 };
71
72 wifi_pwrseq: wifi_pwrseq {
73 compatible = "mmc-pwrseq-simple";
74 clocks = <&ac100_rtc 1>;
75 clock-names = "ext_clock";
76 /* The WiFi low power clock must be 32768 Hz */
77 assigned-clocks = <&ac100_rtc 1>;
78 assigned-clock-rates = <32768>;
79 /* enables internal regulator and de-asserts reset */
80 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 WL-PMU-EN */
81 };
62}; 82};
63 83
64&ehci0 { 84&ehci0 {
@@ -71,17 +91,35 @@
71&mmc0 { 91&mmc0 {
72 pinctrl-names = "default"; 92 pinctrl-names = "default";
73 pinctrl-0 = <&mmc0_pins>; 93 pinctrl-0 = <&mmc0_pins>;
74 vmmc-supply = <&reg_vcc3v3>; 94 vmmc-supply = <&reg_dcdc1>;
75 bus-width = <4>; 95 bus-width = <4>;
76 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */ 96 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
77 cd-inverted; 97 cd-inverted;
78 status = "okay"; 98 status = "okay";
79}; 99};
80 100
101&mmc1 {
102 vmmc-supply = <&reg_dldo1>;
103 vqmmc-supply = <&reg_dldo1>;
104 mmc-pwrseq = <&wifi_pwrseq>;
105 bus-width = <4>;
106 non-removable;
107 status = "okay";
108
109 brcmf: wifi@1 {
110 reg = <1>;
111 compatible = "brcm,bcm4329-fmac";
112 interrupt-parent = <&r_pio>;
113 interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>;
114 interrupt-names = "host-wake";
115 };
116};
117
81&mmc2 { 118&mmc2 {
82 pinctrl-names = "default"; 119 pinctrl-names = "default";
83 pinctrl-0 = <&mmc2_8bit_emmc_pins>; 120 pinctrl-0 = <&mmc2_8bit_emmc_pins>;
84 vmmc-supply = <&reg_vcc3v3>; 121 vmmc-supply = <&reg_dcdc1>;
122 vqmmc-supply = <&reg_dcdc1>;
85 bus-width = <8>; 123 bus-width = <8>;
86 non-removable; 124 non-removable;
87 cap-mmc-hw-reset; 125 cap-mmc-hw-reset;
@@ -96,6 +134,10 @@
96 reg = <0x3a3>; 134 reg = <0x3a3>;
97 interrupt-parent = <&r_intc>; 135 interrupt-parent = <&r_intc>;
98 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 136 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
137 eldoin-supply = <&reg_dcdc1>;
138 fldoin-supply = <&reg_dcdc5>;
139 swin-supply = <&reg_dcdc1>;
140 x-powers,drive-vbus-en;
99 }; 141 };
100 142
101 ac100: codec@e89 { 143 ac100: codec@e89 {
@@ -123,17 +165,126 @@
123 }; 165 };
124}; 166};
125 167
126&reg_usb1_vbus { 168#include "axp81x.dtsi"
127 gpio = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */ 169
170&reg_aldo1 {
171 regulator-always-on;
172 regulator-min-microvolt = <1800000>;
173 regulator-max-microvolt = <1800000>;
174 regulator-name = "vcc-1v8";
175};
176
177&reg_aldo2 {
178 regulator-always-on;
179 regulator-min-microvolt = <1800000>;
180 regulator-max-microvolt = <1800000>;
181 regulator-name = "dram-pll";
182};
183
184&reg_aldo3 {
185 regulator-always-on;
186 regulator-min-microvolt = <3000000>;
187 regulator-max-microvolt = <3000000>;
188 regulator-name = "avcc";
189};
190
191&reg_dcdc1 {
192 /* schematics says 3.1V but FEX file says 3.3V */
193 regulator-always-on;
194 regulator-min-microvolt = <3300000>;
195 regulator-max-microvolt = <3300000>;
196 regulator-name = "vcc-3v3";
197};
198
199&reg_dcdc2 {
200 regulator-always-on;
201 regulator-min-microvolt = <700000>;
202 regulator-max-microvolt = <1100000>;
203 regulator-name = "vdd-cpua";
204};
205
206&reg_dcdc3 {
207 regulator-always-on;
208 regulator-min-microvolt = <700000>;
209 regulator-max-microvolt = <1100000>;
210 regulator-name = "vdd-cpub";
211};
212
213&reg_dcdc4 {
214 regulator-min-microvolt = <700000>;
215 regulator-max-microvolt = <1100000>;
216 regulator-name = "vdd-gpu";
217};
218
219&reg_dcdc5 {
220 regulator-always-on;
221 regulator-min-microvolt = <1200000>;
222 regulator-max-microvolt = <1200000>;
223 regulator-name = "vcc-dram";
224};
225
226&reg_dcdc6 {
227 regulator-always-on;
228 regulator-min-microvolt = <900000>;
229 regulator-max-microvolt = <900000>;
230 regulator-name = "vdd-sys";
231};
232
233&reg_dldo1 {
234 /*
235 * This powers both the WiFi/BT module's main power, I/O supply,
236 * and external pull-ups on all the data lines. It should be set
237 * to the same voltage as the I/O supply (DCDC1 in this case) to
238 * avoid any leakage or mismatch.
239 */
240 regulator-min-microvolt = <3300000>;
241 regulator-max-microvolt = <3300000>;
242 regulator-name = "vcc-wifi";
243};
244
245&reg_dldo3 {
246 regulator-always-on;
247 regulator-min-microvolt = <2500000>;
248 regulator-max-microvolt = <2500000>;
249 regulator-name = "vcc-pd";
250};
251
252&reg_drivevbus {
253 regulator-name = "usb0-vbus";
128 status = "okay"; 254 status = "okay";
129}; 255};
130 256
131&reg_vcc3v0 { 257&reg_fldo1 {
132 status = "disabled"; 258 regulator-min-microvolt = <1080000>;
259 regulator-max-microvolt = <1320000>;
260 regulator-name = "vdd12-hsic";
261};
262
263&reg_fldo2 {
264 /*
265 * Despite the embedded CPUs core not being used in any way,
266 * this must remain on or the system will hang.
267 */
268 regulator-always-on;
269 regulator-min-microvolt = <700000>;
270 regulator-max-microvolt = <1100000>;
271 regulator-name = "vdd-cpus";
272};
273
274&reg_rtc_ldo {
275 regulator-name = "vcc-rtc";
133}; 276};
134 277
135&reg_vcc5v0 { 278&reg_sw {
136 status = "disabled"; 279 /*
280 * The PHY requires 20ms after all voltages
281 * are applied until core logic is ready and
282 * 30ms after the reset pin is de-asserted.
283 * Set a 100ms delay to account for PMIC
284 * ramp time and board traces.
285 */
286 regulator-enable-ramp-delay = <100000>;
287 regulator-name = "vcc-ephy";
137}; 288};
138 289
139&uart0 { 290&uart0 {
diff --git a/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts b/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts
index 716a205c6dbb..7f0a3f6d0cf2 100644
--- a/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts
+++ b/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts
@@ -44,7 +44,6 @@
44 44
45/dts-v1/; 45/dts-v1/;
46#include "sun8i-a83t.dtsi" 46#include "sun8i-a83t.dtsi"
47#include "sunxi-common-regulators.dtsi"
48 47
49#include <dt-bindings/gpio/gpio.h> 48#include <dt-bindings/gpio/gpio.h>
50 49
@@ -95,6 +94,26 @@
95 refclk-frequency = <19200000>; 94 refclk-frequency = <19200000>;
96 }; 95 };
97 96
97 reg_usb1_vbus: reg-usb1-vbus {
98 compatible = "regulator-fixed";
99 regulator-name = "usb1-vbus";
100 regulator-min-microvolt = <5000000>;
101 regulator-max-microvolt = <5000000>;
102 regulator-boot-on;
103 enable-active-high;
104 gpio = <&pio 3 29 GPIO_ACTIVE_HIGH>; /* PD29 */
105 };
106
107 reg_usb2_vbus: reg-usb2-vbus {
108 compatible = "regulator-fixed";
109 regulator-name = "usb2-vbus";
110 regulator-min-microvolt = <5000000>;
111 regulator-max-microvolt = <5000000>;
112 regulator-boot-on;
113 enable-active-high;
114 gpio = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
115 };
116
98 sound { 117 sound {
99 compatible = "simple-audio-card"; 118 compatible = "simple-audio-card";
100 simple-audio-card,name = "On-board SPDIF"; 119 simple-audio-card,name = "On-board SPDIF";
@@ -112,6 +131,17 @@
112 #sound-dai-cells = <0>; 131 #sound-dai-cells = <0>;
113 compatible = "linux,spdif-dit"; 132 compatible = "linux,spdif-dit";
114 }; 133 };
134
135 wifi_pwrseq: wifi_pwrseq {
136 compatible = "mmc-pwrseq-simple";
137 clocks = <&ac100_rtc 1>;
138 clock-names = "ext_clock";
139 /* The WiFi low power clock must be 32768 Hz */
140 assigned-clocks = <&ac100_rtc 1>;
141 assigned-clock-rates = <32768>;
142 /* enables internal regulator and de-asserts reset */
143 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 WL-PMU-EN */
144 };
115}; 145};
116 146
117&ehci0 { 147&ehci0 {
@@ -127,17 +157,26 @@
127&mmc0 { 157&mmc0 {
128 pinctrl-names = "default"; 158 pinctrl-names = "default";
129 pinctrl-0 = <&mmc0_pins>; 159 pinctrl-0 = <&mmc0_pins>;
130 vmmc-supply = <&reg_vcc3v3>; 160 vmmc-supply = <&reg_dcdc1>;
131 bus-width = <4>; 161 bus-width = <4>;
132 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */ 162 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
133 cd-inverted; 163 cd-inverted;
134 status = "okay"; 164 status = "okay";
135}; 165};
136 166
167&mmc1 {
168 vmmc-supply = <&reg_dcdc1>;
169 vqmmc-supply = <&reg_sw>;
170 mmc-pwrseq = <&wifi_pwrseq>;
171 bus-width = <4>;
172 non-removable;
173 status = "okay";
174};
175
137&mmc2 { 176&mmc2 {
138 pinctrl-names = "default"; 177 pinctrl-names = "default";
139 pinctrl-0 = <&mmc2_8bit_emmc_pins>; 178 pinctrl-0 = <&mmc2_8bit_emmc_pins>;
140 vmmc-supply = <&reg_vcc3v3>; 179 vmmc-supply = <&reg_dcdc1>;
141 bus-width = <8>; 180 bus-width = <8>;
142 non-removable; 181 non-removable;
143 cap-mmc-hw-reset; 182 cap-mmc-hw-reset;
@@ -152,6 +191,9 @@
152 reg = <0x3a3>; 191 reg = <0x3a3>;
153 interrupt-parent = <&r_intc>; 192 interrupt-parent = <&r_intc>;
154 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 193 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
194 eldoin-supply = <&reg_dcdc1>;
195 swin-supply = <&reg_dcdc1>;
196 x-powers,drive-vbus-en;
155 }; 197 };
156 198
157 ac100: codec@e89 { 199 ac100: codec@e89 {
@@ -179,22 +221,143 @@
179 }; 221 };
180}; 222};
181 223
182&reg_usb1_vbus { 224#include "axp81x.dtsi"
183 gpio = <&pio 3 29 GPIO_ACTIVE_HIGH>; /* PD29 */ 225
184 status = "okay"; 226&reg_aldo1 {
227 regulator-always-on;
228 regulator-min-microvolt = <1800000>;
229 regulator-max-microvolt = <1800000>;
230 regulator-name = "vcc-1v8";
231};
232
233&reg_aldo2 {
234 regulator-always-on;
235 regulator-min-microvolt = <1800000>;
236 regulator-max-microvolt = <1800000>;
237 regulator-name = "dram-pll";
238};
239
240&reg_aldo3 {
241 regulator-always-on;
242 regulator-min-microvolt = <3000000>;
243 regulator-max-microvolt = <3000000>;
244 regulator-name = "avcc";
185}; 245};
186 246
187&reg_usb2_vbus { 247&reg_dcdc1 {
188 gpio = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */ 248 /*
249 * The schematics say this should be 3.3V, but the FEX file says
250 * it should be 3V. The latter makes sense, as the WiFi module's
251 * I/O is indirectly powered from DCDC1, through SW. It is rated
252 * at 2.98V maximum.
253 */
254 regulator-always-on;
255 regulator-min-microvolt = <3000000>;
256 regulator-max-microvolt = <3000000>;
257 regulator-name = "vcc-3v";
258};
259
260&reg_dcdc2 {
261 regulator-always-on;
262 regulator-min-microvolt = <700000>;
263 regulator-max-microvolt = <1100000>;
264 regulator-name = "vdd-cpua";
265};
266
267&reg_dcdc3 {
268 regulator-always-on;
269 regulator-min-microvolt = <700000>;
270 regulator-max-microvolt = <1100000>;
271 regulator-name = "vdd-cpub";
272};
273
274&reg_dcdc4 {
275 regulator-min-microvolt = <700000>;
276 regulator-max-microvolt = <1100000>;
277 regulator-name = "vdd-gpu";
278};
279
280&reg_dcdc5 {
281 regulator-always-on;
282 regulator-min-microvolt = <1500000>;
283 regulator-max-microvolt = <1500000>;
284 regulator-name = "vcc-dram";
285};
286
287&reg_dcdc6 {
288 regulator-always-on;
289 regulator-min-microvolt = <900000>;
290 regulator-max-microvolt = <900000>;
291 regulator-name = "vdd-sys";
292};
293
294&reg_dldo2 {
295 regulator-min-microvolt = <3300000>;
296 regulator-max-microvolt = <3300000>;
297 regulator-name = "dp-pwr";
298};
299
300&reg_dldo3 {
301 regulator-always-on;
302 regulator-min-microvolt = <2500000>;
303 regulator-max-microvolt = <2500000>;
304 regulator-name = "ephy-io";
305};
306
307&reg_dldo4 {
308 /*
309 * The PHY requires 20ms after all voltages are applied until core
310 * logic is ready and 30ms after the reset pin is de-asserted.
311 * Set a 100ms delay to account for PMIC ramp time and board traces.
312 */
313 regulator-enable-ramp-delay = <100000>;
314 regulator-min-microvolt = <3300000>;
315 regulator-max-microvolt = <3300000>;
316 regulator-name = "ephy";
317};
318
319&reg_drivevbus {
320 regulator-name = "usb0-vbus";
189 status = "okay"; 321 status = "okay";
190}; 322};
191 323
192&reg_vcc3v0 { 324&reg_eldo1 {
193 status = "disabled"; 325 regulator-min-microvolt = <1200000>;
326 regulator-max-microvolt = <1200000>;
327 regulator-name = "dp-bridge-1";
328};
329
330&reg_eldo2 {
331 regulator-min-microvolt = <1200000>;
332 regulator-max-microvolt = <1200000>;
333 regulator-name = "dp-bridge-2";
334};
335
336&reg_fldo1 {
337 /* TODO should be handled by USB PHY */
338 regulator-always-on;
339 regulator-min-microvolt = <1080000>;
340 regulator-max-microvolt = <1320000>;
341 regulator-name = "vdd12-hsic";
342};
343
344&reg_fldo2 {
345 /*
346 * Despite the embedded CPUs core not being used in any way,
347 * this must remain on or the system will hang.
348 */
349 regulator-always-on;
350 regulator-min-microvolt = <700000>;
351 regulator-max-microvolt = <1100000>;
352 regulator-name = "vdd-cpus";
353};
354
355&reg_rtc_ldo {
356 regulator-name = "vcc-rtc";
194}; 357};
195 358
196&reg_vcc5v0 { 359&reg_sw {
197 status = "disabled"; 360 regulator-name = "vcc-wifi-io";
198}; 361};
199 362
200&spdif { 363&spdif {
diff --git a/arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts b/arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts
new file mode 100644
index 000000000000..98715538932f
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts
@@ -0,0 +1,349 @@
1/*
2 * Copyright (C) 2017 Touchless Biometric Systems AG
3 * Tomas Novotny <tomas@novotny.cz>
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 as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
14 *
15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively,
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
41 * OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44/dts-v1/;
45#include "sun8i-a83t.dtsi"
46
47#include <dt-bindings/gpio/gpio.h>
48
49/ {
50 model = "TBS A711 Tablet";
51 compatible = "tbs-biometrics,a711", "allwinner,sun8i-a83t";
52
53 aliases {
54 serial0 = &uart0;
55 serial1 = &uart1;
56 };
57
58 chosen {
59 stdout-path = "serial0:115200n8";
60 };
61
62 reg_vbat: reg-vbat {
63 compatible = "regulator-fixed";
64 regulator-name = "vbat";
65 regulator-min-microvolt = <3700000>;
66 regulator-max-microvolt = <3700000>;
67 };
68
69 reg_vmain: reg-vmain {
70 compatible = "regulator-fixed";
71 regulator-name = "vmain";
72 regulator-min-microvolt = <5000000>;
73 regulator-max-microvolt = <5000000>;
74 gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>;
75 enable-active-high;
76 vin-supply = <&reg_vbat>;
77 };
78
79 wifi_pwrseq: wifi_pwrseq {
80 compatible = "mmc-pwrseq-simple";
81 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 WL-PMU-EN */
82
83 /*
84 * This is actually Bluetooth's clock, but we have to
85 * hook it up somewheere
86 */
87 clocks = <&ac100_rtc 1>;
88 clock-names = "ext_clock";
89 };
90};
91
92/*
93 * An USB-2 hub is connected here, which also means we don't need to
94 * enable the OHCI controller.
95 */
96&ehci0 {
97 status = "okay";
98};
99
100/*
101 * There's a modem connected here that needs to be initialised before
102 * being able to be enumerated.
103 */
104&ehci1 {
105 status = "okay";
106};
107
108&mmc0 {
109 vmmc-supply = <&reg_dcdc1>;
110 pinctrl-names = "default";
111 pinctrl-0 = <&mmc0_pins>;
112 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
113 status = "okay";
114};
115
116&mmc1 {
117 mmc-pwrseq = <&wifi_pwrseq>;
118 bus-width = <4>;
119 vmmc-supply = <&reg_dldo1>;
120 vqmmc-supply = <&reg_dldo1>;
121 non-removable;
122 wakeup-source;
123 status = "okay";
124
125 brcmf: wifi@1 {
126 reg = <1>;
127 compatible = "brcm,bcm4329-fmac";
128 interrupt-parent = <&r_pio>;
129 interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 WL_WAKE_UP */
130 interrupt-names = "host-wake";
131 };
132};
133
134&mmc2 {
135 pinctrl-0 = <&mmc2_8bit_emmc_pins>;
136 pinctrl-names = "default";
137 vmmc-supply = <&reg_dcdc1>;
138 vqmmc-supply = <&reg_dcdc1>;
139 bus-width = <8>;
140 non-removable;
141 cap-mmc-hw-reset;
142 status = "okay";
143};
144
145&r_rsb {
146 status = "okay";
147
148 axp81x: pmic@3a3 {
149 reg = <0x3a3>;
150 interrupt-parent = <&r_intc>;
151 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
152 swin-supply = <&reg_dcdc1>;
153 x-powers,drive-vbus-en;
154 };
155
156 ac100: codec@e89 {
157 compatible = "x-powers,ac100";
158 reg = <0xe89>;
159
160 ac100_codec: codec {
161 compatible = "x-powers,ac100-codec";
162 interrupt-parent = <&r_pio>;
163 interrupts = <0 12 IRQ_TYPE_LEVEL_LOW>; /* PL12 */
164 #clock-cells = <0>;
165 clock-output-names = "4M_adda";
166 };
167
168 ac100_rtc: rtc {
169 compatible = "x-powers,ac100-rtc";
170 interrupt-parent = <&r_intc>;
171 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
172 clocks = <&ac100_codec>;
173 #clock-cells = <1>;
174 clock-output-names = "cko1_rtc",
175 "cko2_rtc",
176 "cko3_rtc";
177 };
178 };
179
180};
181
182#include "axp81x.dtsi"
183
184&reg_aldo1 {
185 regulator-min-microvolt = <1800000>;
186 regulator-max-microvolt = <1800000>;
187 regulator-name = "vcc-1.8";
188};
189
190&reg_aldo2 {
191 regulator-min-microvolt = <1800000>;
192 regulator-max-microvolt = <1800000>;
193 regulator-always-on;
194 regulator-name = "vdd-drampll";
195};
196
197&reg_aldo3 {
198 regulator-min-microvolt = <3000000>;
199 regulator-max-microvolt = <3000000>;
200 regulator-always-on;
201 regulator-name = "avcc";
202};
203
204&reg_dcdc1 {
205 regulator-min-microvolt = <3100000>;
206 regulator-max-microvolt = <3100000>;
207 regulator-always-on;
208 regulator-name = "vcc-io";
209};
210
211&reg_dcdc2 {
212 regulator-min-microvolt = <700000>;
213 regulator-max-microvolt = <1100000>;
214 regulator-always-on;
215 regulator-name = "vdd-cpu-A";
216};
217
218&reg_dcdc3 {
219 regulator-min-microvolt = <700000>;
220 regulator-max-microvolt = <1100000>;
221 regulator-always-on;
222 regulator-name = "vdd-cpu-B";
223};
224
225&reg_dcdc4 {
226 regulator-min-microvolt = <700000>;
227 regulator-max-microvolt = <1100000>;
228 regulator-name = "vdd-gpu";
229};
230
231&reg_dcdc5 {
232 regulator-min-microvolt = <1200000>;
233 regulator-max-microvolt = <1500000>;
234 regulator-always-on;
235 regulator-name = "vcc-dram";
236};
237
238&reg_dcdc6 {
239 regulator-min-microvolt = <900000>;
240 regulator-max-microvolt = <900000>;
241 regulator-always-on;
242 regulator-name = "vdd-sys";
243};
244
245&reg_dldo1 {
246 regulator-min-microvolt = <3100000>;
247 regulator-max-microvolt = <3100000>;
248 regulator-name = "vcc-wifi-io";
249};
250
251&reg_dldo2 {
252 regulator-min-microvolt = <2800000>;
253 regulator-max-microvolt = <4200000>;
254 regulator-name = "vcc-mipi";
255};
256
257&reg_dldo3 {
258 regulator-min-microvolt = <2800000>;
259 regulator-max-microvolt = <2800000>;
260 regulator-name = "vdd-csi";
261};
262
263&reg_dldo4 {
264 regulator-min-microvolt = <2800000>;
265 regulator-max-microvolt = <2800000>;
266 regulator-name = "avdd-csi";
267};
268
269&reg_drivevbus {
270 regulator-name = "usb0-vbus";
271 status = "okay";
272};
273
274&reg_eldo1 {
275 regulator-min-microvolt = <1200000>;
276 regulator-max-microvolt = <1800000>;
277 regulator-name = "dvdd-csi-r";
278};
279
280&reg_eldo2 {
281 regulator-min-microvolt = <1800000>;
282 regulator-max-microvolt = <1800000>;
283 regulator-name = "vcc-dsi";
284};
285
286&reg_eldo3 {
287 regulator-min-microvolt = <1200000>;
288 regulator-max-microvolt = <1800000>;
289 regulator-name = "dvdd-csi-f";
290};
291
292&reg_fldo1 {
293 regulator-min-microvolt = <1200000>;
294 regulator-max-microvolt = <1200000>;
295 regulator-name = "vcc-hsic";
296};
297
298&reg_fldo2 {
299 regulator-min-microvolt = <700000>;
300 regulator-max-microvolt = <1100000>;
301 regulator-always-on;
302 regulator-name = "vdd-cpus";
303};
304
305&reg_ldo_io0 {
306 regulator-min-microvolt = <3100000>;
307 regulator-max-microvolt = <3100000>;
308 regulator-name = "vcc-ctp";
309 status = "okay";
310};
311
312&reg_ldo_io1 {
313 regulator-min-microvolt = <3100000>;
314 regulator-max-microvolt = <3100000>;
315 regulator-name = "vcc-vb";
316 status = "okay";
317};
318
319&reg_sw {
320 regulator-min-microvolt = <3100000>;
321 regulator-max-microvolt = <3100000>;
322 regulator-name = "vcc-lcd";
323};
324
325&uart0 {
326 pinctrl-names = "default";
327 pinctrl-0 = <&uart0_pb_pins>;
328 status = "okay";
329};
330
331/* There's the BT part of the AP6210 connected to that UART */
332&uart1 {
333 pinctrl-names = "default";
334 pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
335 status = "okay";
336};
337
338&usb_otg {
339 dr_mode = "otg";
340 status = "okay";
341};
342
343&usbphy {
344 usb0_id_det-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
345 usb0_vbus-supply = <&reg_drivevbus>;
346 usb1_vbus_supply = <&reg_vmain>;
347 usb2_vbus_supply = <&reg_vmain>;
348 status = "okay";
349};
diff --git a/arch/arm/boot/dts/sun8i-a83t.dtsi b/arch/arm/boot/dts/sun8i-a83t.dtsi
index f996bd343e50..19acae1b4089 100644
--- a/arch/arm/boot/dts/sun8i-a83t.dtsi
+++ b/arch/arm/boot/dts/sun8i-a83t.dtsi
@@ -54,12 +54,6 @@
54 #address-cells = <1>; 54 #address-cells = <1>;
55 #size-cells = <1>; 55 #size-cells = <1>;
56 56
57 aliases {
58 };
59
60 chosen {
61 };
62
63 cpus { 57 cpus {
64 #address-cells = <1>; 58 #address-cells = <1>;
65 #size-cells = <0>; 59 #size-cells = <0>;
@@ -218,6 +212,8 @@
218 resets = <&ccu RST_BUS_MMC1>; 212 resets = <&ccu RST_BUS_MMC1>;
219 reset-names = "ahb"; 213 reset-names = "ahb";
220 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 214 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
215 pinctrl-names = "default";
216 pinctrl-0 = <&mmc1_pins>;
221 status = "disabled"; 217 status = "disabled";
222 #address-cells = <1>; 218 #address-cells = <1>;
223 #size-cells = <0>; 219 #size-cells = <0>;
@@ -242,7 +238,7 @@
242 #size-cells = <0>; 238 #size-cells = <0>;
243 }; 239 };
244 240
245 usb_otg: usb@01c19000 { 241 usb_otg: usb@1c19000 {
246 compatible = "allwinner,sun8i-a83t-musb", 242 compatible = "allwinner,sun8i-a83t-musb",
247 "allwinner,sun8i-a33-musb"; 243 "allwinner,sun8i-a33-musb";
248 reg = <0x01c19000 0x0400>; 244 reg = <0x01c19000 0x0400>;
@@ -348,6 +344,14 @@
348 bias-pull-up; 344 bias-pull-up;
349 }; 345 };
350 346
347 mmc1_pins: mmc1-pins {
348 pins = "PG0", "PG1", "PG2",
349 "PG3", "PG4", "PG5";
350 function = "mmc1";
351 drive-strength = <30>;
352 bias-pull-up;
353 };
354
351 mmc2_8bit_emmc_pins: mmc2-8bit-emmc-pins { 355 mmc2_8bit_emmc_pins: mmc2-8bit-emmc-pins {
352 pins = "PC5", "PC6", "PC8", "PC9", 356 pins = "PC5", "PC6", "PC8", "PC9",
353 "PC10", "PC11", "PC12", "PC13", 357 "PC10", "PC11", "PC12", "PC13",
@@ -371,6 +375,16 @@
371 pins = "PF2", "PF4"; 375 pins = "PF2", "PF4";
372 function = "uart0"; 376 function = "uart0";
373 }; 377 };
378
379 uart1_pins: uart1-pins {
380 pins = "PG6", "PG7";
381 function = "uart1";
382 };
383
384 uart1_rts_cts_pins: uart1-rts-cts-pins {
385 pins = "PG8", "PG9";
386 function = "uart1";
387 };
374 }; 388 };
375 389
376 timer@1c20c00 { 390 timer@1c20c00 {
@@ -404,7 +418,7 @@
404 status = "disabled"; 418 status = "disabled";
405 }; 419 };
406 420
407 uart0: serial@01c28000 { 421 uart0: serial@1c28000 {
408 compatible = "snps,dw-apb-uart"; 422 compatible = "snps,dw-apb-uart";
409 reg = <0x01c28000 0x400>; 423 reg = <0x01c28000 0x400>;
410 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 424 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
@@ -415,6 +429,17 @@
415 status = "disabled"; 429 status = "disabled";
416 }; 430 };
417 431
432 uart1: serial@1c28400 {
433 compatible = "snps,dw-apb-uart";
434 reg = <0x01c28400 0x400>;
435 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
436 reg-shift = <2>;
437 reg-io-width = <4>;
438 clocks = <&ccu CLK_BUS_UART1>;
439 resets = <&ccu RST_BUS_UART1>;
440 status = "disabled";
441 };
442
418 gic: interrupt-controller@1c81000 { 443 gic: interrupt-controller@1c81000 {
419 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; 444 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
420 reg = <0x01c81000 0x1000>, 445 reg = <0x01c81000 0x1000>,
diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
index b1502df7b509..6713d0f2b3f4 100644
--- a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
+++ b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
@@ -56,6 +56,8 @@
56 56
57 aliases { 57 aliases {
58 serial0 = &uart0; 58 serial0 = &uart0;
59 /* ethernet0 is the H3 emac, defined in sun8i-h3.dtsi */
60 ethernet0 = &emac;
59 ethernet1 = &xr819; 61 ethernet1 = &xr819;
60 }; 62 };
61 63
@@ -102,6 +104,13 @@
102 status = "okay"; 104 status = "okay";
103}; 105};
104 106
107&emac {
108 phy-handle = <&int_mii_phy>;
109 phy-mode = "mii";
110 allwinner,leds-active-low;
111 status = "okay";
112};
113
105&mmc0 { 114&mmc0 {
106 pinctrl-names = "default"; 115 pinctrl-names = "default";
107 pinctrl-0 = <&mmc0_pins_a>; 116 pinctrl-0 = <&mmc0_pins_a>;
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 a337af1de322..f2292deaa590 100644
--- a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
+++ b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
@@ -52,6 +52,7 @@
52 compatible = "sinovoip,bpi-m2-plus", "allwinner,sun8i-h3"; 52 compatible = "sinovoip,bpi-m2-plus", "allwinner,sun8i-h3";
53 53
54 aliases { 54 aliases {
55 ethernet0 = &emac;
55 serial0 = &uart0; 56 serial0 = &uart0;
56 serial1 = &uart1; 57 serial1 = &uart1;
57 }; 58 };
@@ -63,7 +64,6 @@
63 leds { 64 leds {
64 compatible = "gpio-leds"; 65 compatible = "gpio-leds";
65 pinctrl-names = "default"; 66 pinctrl-names = "default";
66 pinctrl-0 = <&pwr_led_bpi_m2p>;
67 67
68 pwr_led { 68 pwr_led {
69 label = "bananapi-m2-plus:red:pwr"; 69 label = "bananapi-m2-plus:red:pwr";
@@ -75,7 +75,6 @@
75 gpio_keys { 75 gpio_keys {
76 compatible = "gpio-keys"; 76 compatible = "gpio-keys";
77 pinctrl-names = "default"; 77 pinctrl-names = "default";
78 pinctrl-0 = <&sw_r_bpi_m2p>;
79 78
80 sw4 { 79 sw4 {
81 label = "power"; 80 label = "power";
@@ -97,7 +96,6 @@
97 wifi_pwrseq: wifi_pwrseq { 96 wifi_pwrseq: wifi_pwrseq {
98 compatible = "mmc-pwrseq-simple"; 97 compatible = "mmc-pwrseq-simple";
99 pinctrl-names = "default"; 98 pinctrl-names = "default";
100 pinctrl-0 = <&wifi_en_bpi_m2p>;
101 reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */ 99 reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
102 }; 100 };
103}; 101};
@@ -114,6 +112,24 @@
114 status = "okay"; 112 status = "okay";
115}; 113};
116 114
115&emac {
116 pinctrl-names = "default";
117 pinctrl-0 = <&emac_rgmii_pins>;
118 phy-supply = <&reg_gmac_3v3>;
119 phy-handle = <&ext_rgmii_phy>;
120 phy-mode = "rgmii";
121
122 allwinner,leds-active-low;
123 status = "okay";
124};
125
126&external_mdio {
127 ext_rgmii_phy: ethernet-phy@1 {
128 compatible = "ethernet-phy-ieee802.3-c22";
129 reg = <0>;
130 };
131};
132
117&ir { 133&ir {
118 pinctrl-names = "default"; 134 pinctrl-names = "default";
119 pinctrl-0 = <&ir_pins_a>; 135 pinctrl-0 = <&ir_pins_a>;
@@ -171,23 +187,6 @@
171 status = "okay"; 187 status = "okay";
172}; 188};
173 189
174&r_pio {
175 pwr_led_bpi_m2p: led_pins@0 {
176 pins = "PL10";
177 function = "gpio_out";
178 };
179
180 sw_r_bpi_m2p: key_pins@0 {
181 pins = "PL3";
182 function = "gpio_in";
183 };
184
185 wifi_en_bpi_m2p: wifi_en_pin {
186 pins = "PL7";
187 function = "gpio_out";
188 };
189};
190
191&reg_usb0_vbus { 190&reg_usb0_vbus {
192 gpio = <&pio 3 11 GPIO_ACTIVE_HIGH>; /* PD11 */ 191 gpio = <&pio 3 11 GPIO_ACTIVE_HIGH>; /* PD11 */
193 status = "okay"; 192 status = "okay";
diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts
index 8ddd1b2cc097..0a8b79cf5954 100644
--- a/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts
@@ -45,6 +45,27 @@
45/ { 45/ {
46 model = "FriendlyArm NanoPi M1 Plus"; 46 model = "FriendlyArm NanoPi M1 Plus";
47 compatible = "friendlyarm,nanopi-m1-plus", "allwinner,sun8i-h3"; 47 compatible = "friendlyarm,nanopi-m1-plus", "allwinner,sun8i-h3";
48
49 aliases {
50 serial1 = &uart3;
51 ethernet1 = &sdio_wifi;
52 };
53
54 reg_gmac_3v3: gmac-3v3 {
55 compatible = "regulator-fixed";
56 regulator-name = "gmac-3v3";
57 regulator-min-microvolt = <3300000>;
58 regulator-max-microvolt = <3300000>;
59 startup-delay-us = <100000>;
60 enable-active-high;
61 gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
62 };
63
64 wifi_pwrseq: wifi_pwrseq {
65 compatible = "mmc-pwrseq-simple";
66 pinctrl-names = "default";
67 reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
68 };
48}; 69};
49 70
50&ehci1 { 71&ehci1 {
@@ -55,6 +76,50 @@
55 status = "okay"; 76 status = "okay";
56}; 77};
57 78
79&emac {
80 pinctrl-names = "default";
81 pinctrl-0 = <&emac_rgmii_pins>;
82 phy-supply = <&reg_gmac_3v3>;
83 phy-handle = <&ext_rgmii_phy>;
84 phy-mode = "rgmii";
85
86 allwinner,leds-active-low;
87
88 status = "okay";
89};
90
91&external_mdio {
92 ext_rgmii_phy: ethernet-phy@1 {
93 compatible = "ethernet-phy-ieee802.3-c22";
94 reg = <7>;
95 };
96};
97
98&ir {
99 pinctrl-names = "default";
100 pinctrl-0 = <&ir_pins_a>;
101 status = "okay";
102};
103
104&mmc1 {
105 pinctrl-names = "default";
106 pinctrl-0 = <&mmc1_pins_a>;
107 vmmc-supply = <&reg_vcc3v3>;
108 vqmmc-supply = <&reg_vcc3v3>;
109 mmc-pwrseq = <&wifi_pwrseq>;
110 bus-width = <4>;
111 non-removable;
112 status = "okay";
113
114 sdio_wifi: sdio_wifi@1 {
115 reg = <1>;
116 compatible = "brcm,bcm4329-fmac";
117 interrupt-parent = <&pio>;
118 interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */
119 interrupt-names = "host-wake";
120 };
121};
122
58&ohci1 { 123&ohci1 {
59 status = "okay"; 124 status = "okay";
60}; 125};
@@ -62,3 +127,9 @@
62&ohci2 { 127&ohci2 {
63 status = "okay"; 128 status = "okay";
64}; 129};
130
131&uart3 {
132 pinctrl-names = "default";
133 pinctrl-0 = <&uart3_pins>, <&uart3_rts_cts_pins>;
134 status = "okay";
135};
diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-m1.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-m1.dts
index ec63d104b404..3a2ccdb28afd 100644
--- a/arch/arm/boot/dts/sun8i-h3-nanopi-m1.dts
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi-m1.dts
@@ -55,6 +55,12 @@
55 status = "okay"; 55 status = "okay";
56}; 56};
57 57
58&ir {
59 pinctrl-names = "default";
60 pinctrl-0 = <&ir_pins_a>;
61 status = "okay";
62};
63
58&ohci1 { 64&ohci1 {
59 status = "okay"; 65 status = "okay";
60}; 66};
diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts
index 8d2cc6e9a03f..78f6c24952dd 100644
--- a/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts
@@ -46,3 +46,10 @@
46 model = "FriendlyARM NanoPi NEO"; 46 model = "FriendlyARM NanoPi NEO";
47 compatible = "friendlyarm,nanopi-neo", "allwinner,sun8i-h3"; 47 compatible = "friendlyarm,nanopi-neo", "allwinner,sun8i-h3";
48}; 48};
49
50&emac {
51 phy-handle = <&int_mii_phy>;
52 phy-mode = "mii";
53 allwinner,leds-active-low;
54 status = "okay";
55};
diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi b/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
index c6decee41a27..7646e331bd29 100644
--- a/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
@@ -81,7 +81,7 @@
81 pinctrl-names = "default"; 81 pinctrl-names = "default";
82 pinctrl-0 = <&sw_r_npi>; 82 pinctrl-0 = <&sw_r_npi>;
83 83
84 k1@0 { 84 k1 {
85 label = "k1"; 85 label = "k1";
86 linux,code = <KEY_POWER>; 86 linux,code = <KEY_POWER>;
87 gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; 87 gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
@@ -108,19 +108,19 @@
108}; 108};
109 109
110&pio { 110&pio {
111 leds_npi: led_pins@0 { 111 leds_npi: led_pins {
112 pins = "PA10"; 112 pins = "PA10";
113 function = "gpio_out"; 113 function = "gpio_out";
114 }; 114 };
115}; 115};
116 116
117&r_pio { 117&r_pio {
118 leds_r_npi: led_pins@0 { 118 leds_r_npi: led_pins {
119 pins = "PL10"; 119 pins = "PL10";
120 function = "gpio_out"; 120 function = "gpio_out";
121 }; 121 };
122 122
123 sw_r_npi: key_pins@0 { 123 sw_r_npi: key_pins {
124 pins = "PL3"; 124 pins = "PL3";
125 function = "gpio_in"; 125 function = "gpio_in";
126 }; 126 };
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
index 8ff71b1bb45b..b20be95b49d5 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
@@ -54,6 +54,7 @@
54 aliases { 54 aliases {
55 serial0 = &uart0; 55 serial0 = &uart0;
56 /* ethernet0 is the H3 emac, defined in sun8i-h3.dtsi */ 56 /* ethernet0 is the H3 emac, defined in sun8i-h3.dtsi */
57 ethernet0 = &emac;
57 ethernet1 = &rtl8189; 58 ethernet1 = &rtl8189;
58 }; 59 };
59 60
@@ -117,6 +118,13 @@
117 status = "okay"; 118 status = "okay";
118}; 119};
119 120
121&emac {
122 phy-handle = <&int_mii_phy>;
123 phy-mode = "mii";
124 allwinner,leds-active-low;
125 status = "okay";
126};
127
120&ir { 128&ir {
121 pinctrl-names = "default"; 129 pinctrl-names = "default";
122 pinctrl-0 = <&ir_pins_a>; 130 pinctrl-0 = <&ir_pins_a>;
@@ -152,24 +160,24 @@
152}; 160};
153 161
154&pio { 162&pio {
155 leds_opc: led_pins@0 { 163 leds_opc: led_pins {
156 pins = "PA15"; 164 pins = "PA15";
157 function = "gpio_out"; 165 function = "gpio_out";
158 }; 166 };
159}; 167};
160 168
161&r_pio { 169&r_pio {
162 leds_r_opc: led_pins@0 { 170 leds_r_opc: led_pins {
163 pins = "PL10"; 171 pins = "PL10";
164 function = "gpio_out"; 172 function = "gpio_out";
165 }; 173 };
166 174
167 sw_r_opc: key_pins@0 { 175 sw_r_opc: key_pins {
168 pins = "PL3", "PL4"; 176 pins = "PL3", "PL4";
169 function = "gpio_in"; 177 function = "gpio_in";
170 }; 178 };
171 179
172 wifi_pwrseq_pin_orangepi: wifi_pwrseq_pin@0 { 180 wifi_pwrseq_pin_orangepi: wifi_pwrseq_pin {
173 pins = "PL7"; 181 pins = "PL7";
174 function = "gpio_out"; 182 function = "gpio_out";
175 }; 183 };
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts
index 9b47a0def740..a70a1daf4e2c 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts
@@ -141,19 +141,19 @@
141}; 141};
142 142
143&pio { 143&pio {
144 leds_opc: led_pins@0 { 144 leds_opc: led_pins {
145 pins = "PA15"; 145 pins = "PA15";
146 function = "gpio_out"; 146 function = "gpio_out";
147 }; 147 };
148}; 148};
149 149
150&r_pio { 150&r_pio {
151 leds_r_opc: led_pins@0 { 151 leds_r_opc: led_pins {
152 pins = "PL10"; 152 pins = "PL10";
153 function = "gpio_out"; 153 function = "gpio_out";
154 }; 154 };
155 155
156 sw_r_opc: key_pins@0 { 156 sw_r_opc: key_pins {
157 pins = "PL3"; 157 pins = "PL3";
158 function = "gpio_in"; 158 function = "gpio_in";
159 }; 159 };
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts
index 5fea430e0eb1..82e5d28cd698 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts
@@ -52,6 +52,7 @@
52 compatible = "xunlong,orangepi-one", "allwinner,sun8i-h3"; 52 compatible = "xunlong,orangepi-one", "allwinner,sun8i-h3";
53 53
54 aliases { 54 aliases {
55 ethernet0 = &emac;
55 serial0 = &uart0; 56 serial0 = &uart0;
56 }; 57 };
57 58
@@ -97,6 +98,13 @@
97 status = "okay"; 98 status = "okay";
98}; 99};
99 100
101&emac {
102 phy-handle = <&int_mii_phy>;
103 phy-mode = "mii";
104 allwinner,leds-active-low;
105 status = "okay";
106};
107
100&mmc0 { 108&mmc0 {
101 pinctrl-names = "default"; 109 pinctrl-names = "default";
102 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; 110 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
@@ -116,19 +124,19 @@
116}; 124};
117 125
118&pio { 126&pio {
119 leds_opc: led_pins@0 { 127 leds_opc: led_pins {
120 pins = "PA15"; 128 pins = "PA15";
121 function = "gpio_out"; 129 function = "gpio_out";
122 }; 130 };
123}; 131};
124 132
125&r_pio { 133&r_pio {
126 leds_r_opc: led_pins@0 { 134 leds_r_opc: led_pins {
127 pins = "PL10"; 135 pins = "PL10";
128 function = "gpio_out"; 136 function = "gpio_out";
129 }; 137 };
130 138
131 sw_r_opc: key_pins@0 { 139 sw_r_opc: key_pins {
132 pins = "PL3"; 140 pins = "PL3";
133 function = "gpio_in"; 141 function = "gpio_in";
134 }; 142 };
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 8b93f5c781a7..a10281b455f5 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
@@ -53,6 +53,11 @@
53 }; 53 };
54}; 54};
55 55
56&emac {
57 /* LEDs changed to active high on the plus */
58 /delete-property/ allwinner,leds-active-low;
59};
60
56&mmc1 { 61&mmc1 {
57 pinctrl-names = "default"; 62 pinctrl-names = "default";
58 pinctrl-0 = <&mmc1_pins_a>; 63 pinctrl-0 = <&mmc1_pins_a>;
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts
index 1a044b17d6c6..d22546df1b82 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts
@@ -52,6 +52,7 @@
52 compatible = "xunlong,orangepi-pc", "allwinner,sun8i-h3"; 52 compatible = "xunlong,orangepi-pc", "allwinner,sun8i-h3";
53 53
54 aliases { 54 aliases {
55 ethernet0 = &emac;
55 serial0 = &uart0; 56 serial0 = &uart0;
56 }; 57 };
57 58
@@ -113,6 +114,13 @@
113 status = "okay"; 114 status = "okay";
114}; 115};
115 116
117&emac {
118 phy-handle = <&int_mii_phy>;
119 phy-mode = "mii";
120 allwinner,leds-active-low;
121 status = "okay";
122};
123
116&ir { 124&ir {
117 pinctrl-names = "default"; 125 pinctrl-names = "default";
118 pinctrl-0 = <&ir_pins_a>; 126 pinctrl-0 = <&ir_pins_a>;
@@ -146,19 +154,19 @@
146}; 154};
147 155
148&pio { 156&pio {
149 leds_opc: led_pins@0 { 157 leds_opc: led_pins {
150 pins = "PA15"; 158 pins = "PA15";
151 function = "gpio_out"; 159 function = "gpio_out";
152 }; 160 };
153}; 161};
154 162
155&r_pio { 163&r_pio {
156 leds_r_opc: led_pins@0 { 164 leds_r_opc: led_pins {
157 pins = "PL10"; 165 pins = "PL10";
158 function = "gpio_out"; 166 function = "gpio_out";
159 }; 167 };
160 168
161 sw_r_opc: key_pins@0 { 169 sw_r_opc: key_pins {
162 pins = "PL3"; 170 pins = "PL3";
163 function = "gpio_in"; 171 function = "gpio_in";
164 }; 172 };
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
index 828ae7a526d9..cbc499b04de4 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
@@ -47,6 +47,10 @@
47 model = "Xunlong Orange Pi Plus / Plus 2"; 47 model = "Xunlong Orange Pi Plus / Plus 2";
48 compatible = "xunlong,orangepi-plus", "allwinner,sun8i-h3"; 48 compatible = "xunlong,orangepi-plus", "allwinner,sun8i-h3";
49 49
50 aliases {
51 ethernet0 = &emac;
52 };
53
50 reg_gmac_3v3: gmac-3v3 { 54 reg_gmac_3v3: gmac-3v3 {
51 compatible = "regulator-fixed"; 55 compatible = "regulator-fixed";
52 regulator-name = "gmac-3v3"; 56 regulator-name = "gmac-3v3";
@@ -74,6 +78,24 @@
74 status = "okay"; 78 status = "okay";
75}; 79};
76 80
81&emac {
82 pinctrl-names = "default";
83 pinctrl-0 = <&emac_rgmii_pins>;
84 phy-supply = <&reg_gmac_3v3>;
85 phy-handle = <&ext_rgmii_phy>;
86 phy-mode = "rgmii";
87
88 allwinner,leds-active-low;
89 status = "okay";
90};
91
92&external_mdio {
93 ext_rgmii_phy: ethernet-phy@1 {
94 compatible = "ethernet-phy-ieee802.3-c22";
95 reg = <0>;
96 };
97};
98
77&mmc2 { 99&mmc2 {
78 pinctrl-names = "default"; 100 pinctrl-names = "default";
79 pinctrl-0 = <&mmc2_8bit_pins>; 101 pinctrl-0 = <&mmc2_8bit_pins>;
@@ -92,7 +114,7 @@
92}; 114};
93 115
94&pio { 116&pio {
95 usb3_vbus_pin_a: usb3_vbus_pin@0 { 117 usb3_vbus_pin_a: usb3_vbus_pin {
96 pins = "PG11"; 118 pins = "PG11";
97 function = "gpio_out"; 119 function = "gpio_out";
98 }; 120 };
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
index 97920b12a944..6dbf7b2e0c13 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
@@ -61,3 +61,19 @@
61 gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; /* PD6 */ 61 gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; /* PD6 */
62 }; 62 };
63}; 63};
64
65&emac {
66 pinctrl-names = "default";
67 pinctrl-0 = <&emac_rgmii_pins>;
68 phy-supply = <&reg_gmac_3v3>;
69 phy-handle = <&ext_rgmii_phy>;
70 phy-mode = "rgmii";
71 status = "okay";
72};
73
74&external_mdio {
75 ext_rgmii_phy: ethernet-phy@1 {
76 compatible = "ethernet-phy-ieee802.3-c22";
77 reg = <1>;
78 };
79};
diff --git a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
new file mode 100644
index 000000000000..8c5efe2a9881
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
@@ -0,0 +1,209 @@
1/*
2 * Copyright (C) 2017 Chen-Yu Tsai <wens@csie.org>
3 * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io>
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 as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
14 *
15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively,
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
41 * OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44/dts-v1/;
45#include "sun8i-r40.dtsi"
46
47#include <dt-bindings/gpio/gpio.h>
48
49/ {
50 model = "Banana Pi BPI-M2-Ultra";
51 compatible = "sinovoip,bpi-m2-ultra", "allwinner,sun8i-r40";
52
53 aliases {
54 serial0 = &uart0;
55 };
56
57 chosen {
58 stdout-path = "serial0:115200n8";
59 };
60
61 leds {
62 compatible = "gpio-leds";
63
64 pwr-led {
65 label = "bananapi:red:pwr";
66 gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>;
67 default-state = "on";
68 };
69
70 user-led-green {
71 label = "bananapi:green:user";
72 gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>;
73 };
74
75 user-led-blue {
76 label = "bananapi:blue:user";
77 gpios = <&pio 7 22 GPIO_ACTIVE_HIGH>;
78 };
79 };
80
81 reg_vcc5v0: vcc5v0 {
82 compatible = "regulator-fixed";
83 regulator-name = "vcc5v0";
84 regulator-min-microvolt = <5000000>;
85 regulator-max-microvolt = <5000000>;
86 gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>; /* PH23 */
87 enable-active-high;
88 };
89
90 wifi_pwrseq: wifi_pwrseq {
91 compatible = "mmc-pwrseq-simple";
92 reset-gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 WIFI_EN */
93 };
94};
95
96&ehci1 {
97 status = "okay";
98};
99
100&ehci2 {
101 status = "okay";
102};
103
104&i2c0 {
105 status = "okay";
106
107 axp22x: pmic@34 {
108 compatible = "x-powers,axp221";
109 reg = <0x34>;
110 interrupt-parent = <&nmi_intc>;
111 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
112 };
113};
114
115#include "axp22x.dtsi"
116
117&reg_aldo3 {
118 regulator-always-on;
119 regulator-min-microvolt = <2700000>;
120 regulator-max-microvolt = <3300000>;
121 regulator-name = "avcc";
122};
123
124&reg_dcdc1 {
125 regulator-always-on;
126 regulator-min-microvolt = <3000000>;
127 regulator-max-microvolt = <3000000>;
128 regulator-name = "vcc-3v0";
129};
130
131&reg_dcdc2 {
132 regulator-always-on;
133 regulator-min-microvolt = <1000000>;
134 regulator-max-microvolt = <1300000>;
135 regulator-name = "vdd-cpu";
136};
137
138&reg_dcdc3 {
139 regulator-always-on;
140 regulator-min-microvolt = <1000000>;
141 regulator-max-microvolt = <1300000>;
142 regulator-name = "vdd-sys";
143};
144
145&reg_dcdc5 {
146 regulator-always-on;
147 regulator-min-microvolt = <1500000>;
148 regulator-max-microvolt = <1500000>;
149 regulator-name = "vcc-dram";
150};
151
152&reg_dldo1 {
153 regulator-min-microvolt = <1800000>;
154 regulator-max-microvolt = <3300000>;
155 regulator-name = "vcc-wifi-io";
156};
157
158&reg_dldo2 {
159 regulator-min-microvolt = <3300000>;
160 regulator-max-microvolt = <3300000>;
161 regulator-name = "vcc-wifi";
162};
163
164&mmc0 {
165 vmmc-supply = <&reg_dcdc1>;
166 bus-width = <4>;
167 cd-gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>; /* PH13 */
168 cd-inverted;
169 status = "okay";
170};
171
172&mmc1 {
173 pinctrl-names = "default";
174 pinctrl-0 = <&mmc1_pg_pins>;
175 vmmc-supply = <&reg_dldo2>;
176 vqmmc-supply = <&reg_dldo1>;
177 mmc-pwrseq = <&wifi_pwrseq>;
178 bus-width = <4>;
179 non-removable;
180 status = "okay";
181};
182
183&mmc2 {
184 vmmc-supply = <&reg_dcdc1>;
185 vqmmc-supply = <&reg_dcdc1>;
186 bus-width = <8>;
187 non-removable;
188 status = "okay";
189};
190
191&ohci1 {
192 status = "okay";
193};
194
195&ohci2 {
196 status = "okay";
197};
198
199&uart0 {
200 pinctrl-names = "default";
201 pinctrl-0 = <&uart0_pb_pins>;
202 status = "okay";
203};
204
205&usbphy {
206 usb1_vbus-supply = <&reg_vcc5v0>;
207 usb2_vbus-supply = <&reg_vcc5v0>;
208 status = "okay";
209};
diff --git a/arch/arm/boot/dts/sun8i-r40.dtsi b/arch/arm/boot/dts/sun8i-r40.dtsi
new file mode 100644
index 000000000000..173dcc1652d2
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-r40.dtsi
@@ -0,0 +1,473 @@
1/*
2 * Copyright 2017 Chen-Yu Tsai <wens@csie.org>
3 * Copyright 2017 Icenowy Zheng <icenowy@aosc.io>
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 as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
14 *
15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively,
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
41 * OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44#include <dt-bindings/interrupt-controller/arm-gic.h>
45#include <dt-bindings/clock/sun8i-r40-ccu.h>
46#include <dt-bindings/reset/sun8i-r40-ccu.h>
47
48/ {
49 #address-cells = <1>;
50 #size-cells = <1>;
51 interrupt-parent = <&gic>;
52
53 clocks {
54 #address-cells = <1>;
55 #size-cells = <1>;
56 ranges;
57
58 osc24M: osc24M {
59 #clock-cells = <0>;
60 compatible = "fixed-clock";
61 clock-frequency = <24000000>;
62 clock-output-names = "osc24M";
63 };
64
65 osc32k: osc32k {
66 #clock-cells = <0>;
67 compatible = "fixed-clock";
68 clock-frequency = <32768>;
69 clock-output-names = "osc32k";
70 };
71 };
72
73 cpus {
74 #address-cells = <1>;
75 #size-cells = <0>;
76
77 cpu@0 {
78 compatible = "arm,cortex-a7";
79 device_type = "cpu";
80 reg = <0>;
81 };
82
83 cpu@1 {
84 compatible = "arm,cortex-a7";
85 device_type = "cpu";
86 reg = <1>;
87 };
88
89 cpu@2 {
90 compatible = "arm,cortex-a7";
91 device_type = "cpu";
92 reg = <2>;
93 };
94
95 cpu@3 {
96 compatible = "arm,cortex-a7";
97 device_type = "cpu";
98 reg = <3>;
99 };
100 };
101
102 soc {
103 compatible = "simple-bus";
104 #address-cells = <1>;
105 #size-cells = <1>;
106 ranges;
107
108 nmi_intc: interrupt-controller@1c00030 {
109 compatible = "allwinner,sun7i-a20-sc-nmi";
110 interrupt-controller;
111 #interrupt-cells = <2>;
112 reg = <0x01c00030 0x0c>;
113 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
114 };
115
116 mmc0: mmc@1c0f000 {
117 compatible = "allwinner,sun8i-r40-mmc",
118 "allwinner,sun50i-a64-mmc";
119 reg = <0x01c0f000 0x1000>;
120 clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>;
121 clock-names = "ahb", "mmc";
122 resets = <&ccu RST_BUS_MMC0>;
123 reset-names = "ahb";
124 pinctrl-0 = <&mmc0_pins>;
125 pinctrl-names = "default";
126 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
127 status = "disabled";
128 #address-cells = <1>;
129 #size-cells = <0>;
130 };
131
132 mmc1: mmc@1c10000 {
133 compatible = "allwinner,sun8i-r40-mmc",
134 "allwinner,sun50i-a64-mmc";
135 reg = <0x01c10000 0x1000>;
136 clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>;
137 clock-names = "ahb", "mmc";
138 resets = <&ccu RST_BUS_MMC1>;
139 reset-names = "ahb";
140 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
141 status = "disabled";
142 #address-cells = <1>;
143 #size-cells = <0>;
144 };
145
146 mmc2: mmc@1c11000 {
147 compatible = "allwinner,sun8i-r40-emmc",
148 "allwinner,sun50i-a64-emmc";
149 reg = <0x01c11000 0x1000>;
150 clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
151 clock-names = "ahb", "mmc";
152 resets = <&ccu RST_BUS_MMC2>;
153 reset-names = "ahb";
154 pinctrl-0 = <&mmc2_pins>;
155 pinctrl-names = "default";
156 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
157 status = "disabled";
158 #address-cells = <1>;
159 #size-cells = <0>;
160 };
161
162 mmc3: mmc@1c12000 {
163 compatible = "allwinner,sun8i-r40-mmc",
164 "allwinner,sun50i-a64-mmc";
165 reg = <0x01c12000 0x1000>;
166 clocks = <&ccu CLK_BUS_MMC3>, <&ccu CLK_MMC3>;
167 clock-names = "ahb", "mmc";
168 resets = <&ccu RST_BUS_MMC3>;
169 reset-names = "ahb";
170 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
171 status = "disabled";
172 #address-cells = <1>;
173 #size-cells = <0>;
174 };
175
176 usbphy: phy@1c13400 {
177 compatible = "allwinner,sun8i-r40-usb-phy";
178 reg = <0x01c13400 0x14>,
179 <0x01c14800 0x4>,
180 <0x01c19800 0x4>,
181 <0x01c1c800 0x4>;
182 reg-names = "phy_ctrl",
183 "pmu0",
184 "pmu1",
185 "pmu2";
186 clocks = <&ccu CLK_USB_PHY0>,
187 <&ccu CLK_USB_PHY1>,
188 <&ccu CLK_USB_PHY2>;
189 clock-names = "usb0_phy",
190 "usb1_phy",
191 "usb2_phy";
192 resets = <&ccu RST_USB_PHY0>,
193 <&ccu RST_USB_PHY1>,
194 <&ccu RST_USB_PHY2>;
195 reset-names = "usb0_reset",
196 "usb1_reset",
197 "usb2_reset";
198 status = "disabled";
199 #phy-cells = <1>;
200 };
201
202 ehci1: usb@1c19000 {
203 compatible = "allwinner,sun8i-r40-ehci", "generic-ehci";
204 reg = <0x01c19000 0x100>;
205 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
206 clocks = <&ccu CLK_BUS_EHCI1>;
207 resets = <&ccu RST_BUS_EHCI1>;
208 phys = <&usbphy 1>;
209 phy-names = "usb";
210 status = "disabled";
211 };
212
213 ohci1: usb@1c19400 {
214 compatible = "allwinner,sun8i-r40-ohci", "generic-ohci";
215 reg = <0x01c19400 0x100>;
216 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
217 clocks = <&ccu CLK_BUS_OHCI1>,
218 <&ccu CLK_USB_OHCI1>;
219 resets = <&ccu RST_BUS_OHCI1>;
220 phys = <&usbphy 1>;
221 phy-names = "usb";
222 status = "disabled";
223 };
224
225 ehci2: usb@1c1c000 {
226 compatible = "allwinner,sun8i-r40-ehci", "generic-ehci";
227 reg = <0x01c1c000 0x100>;
228 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
229 clocks = <&ccu CLK_BUS_EHCI2>;
230 resets = <&ccu RST_BUS_EHCI2>;
231 phys = <&usbphy 2>;
232 phy-names = "usb";
233 status = "disabled";
234 };
235
236 ohci2: usb@1c1c400 {
237 compatible = "allwinner,sun8i-r40-ohci", "generic-ohci";
238 reg = <0x01c1c400 0x100>;
239 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
240 clocks = <&ccu CLK_BUS_OHCI2>,
241 <&ccu CLK_USB_OHCI2>;
242 resets = <&ccu RST_BUS_OHCI2>;
243 phys = <&usbphy 2>;
244 phy-names = "usb";
245 status = "disabled";
246 };
247
248 ccu: clock@1c20000 {
249 compatible = "allwinner,sun8i-r40-ccu";
250 reg = <0x01c20000 0x400>;
251 clocks = <&osc24M>, <&osc32k>;
252 clock-names = "hosc", "losc";
253 #clock-cells = <1>;
254 #reset-cells = <1>;
255 };
256
257 pio: pinctrl@1c20800 {
258 compatible = "allwinner,sun8i-r40-pinctrl";
259 reg = <0x01c20800 0x400>;
260 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
261 clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
262 clock-names = "apb", "hosc", "losc";
263 gpio-controller;
264 interrupt-controller;
265 #interrupt-cells = <3>;
266 #gpio-cells = <3>;
267
268 i2c0_pins: i2c0-pins {
269 pins = "PB0", "PB1";
270 function = "i2c0";
271 };
272
273 mmc0_pins: mmc0-pins {
274 pins = "PF0", "PF1", "PF2",
275 "PF3", "PF4", "PF5";
276 function = "mmc0";
277 drive-strength = <30>;
278 bias-pull-up;
279 };
280
281 mmc1_pg_pins: mmc1-pg-pins {
282 pins = "PG0", "PG1", "PG2",
283 "PG3", "PG4", "PG5";
284 function = "mmc1";
285 drive-strength = <30>;
286 bias-pull-up;
287 };
288
289 mmc2_pins: mmc2-pins {
290 pins = "PC5", "PC6", "PC7", "PC8", "PC9",
291 "PC10", "PC11", "PC12", "PC13", "PC14",
292 "PC15", "PC24";
293 function = "mmc2";
294 drive-strength = <30>;
295 bias-pull-up;
296 };
297
298 uart0_pb_pins: uart0-pb-pins {
299 pins = "PB22", "PB23";
300 function = "uart0";
301 };
302 };
303
304 wdt: watchdog@1c20c90 {
305 compatible = "allwinner,sun4i-a10-wdt";
306 reg = <0x01c20c90 0x10>;
307 };
308
309 uart0: serial@1c28000 {
310 compatible = "snps,dw-apb-uart";
311 reg = <0x01c28000 0x400>;
312 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
313 reg-shift = <2>;
314 reg-io-width = <4>;
315 clocks = <&ccu CLK_BUS_UART0>;
316 resets = <&ccu RST_BUS_UART0>;
317 status = "disabled";
318 };
319
320 uart1: serial@1c28400 {
321 compatible = "snps,dw-apb-uart";
322 reg = <0x01c28400 0x400>;
323 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
324 reg-shift = <2>;
325 reg-io-width = <4>;
326 clocks = <&ccu CLK_BUS_UART1>;
327 resets = <&ccu RST_BUS_UART1>;
328 status = "disabled";
329 };
330
331 uart2: serial@1c28800 {
332 compatible = "snps,dw-apb-uart";
333 reg = <0x01c28800 0x400>;
334 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
335 reg-shift = <2>;
336 reg-io-width = <4>;
337 clocks = <&ccu CLK_BUS_UART2>;
338 resets = <&ccu RST_BUS_UART2>;
339 status = "disabled";
340 };
341
342 uart3: serial@1c28c00 {
343 compatible = "snps,dw-apb-uart";
344 reg = <0x01c28c00 0x400>;
345 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
346 reg-shift = <2>;
347 reg-io-width = <4>;
348 clocks = <&ccu CLK_BUS_UART3>;
349 resets = <&ccu RST_BUS_UART3>;
350 status = "disabled";
351 };
352
353 uart4: serial@1c29000 {
354 compatible = "snps,dw-apb-uart";
355 reg = <0x01c29000 0x400>;
356 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
357 reg-shift = <2>;
358 reg-io-width = <4>;
359 clocks = <&ccu CLK_BUS_UART4>;
360 resets = <&ccu RST_BUS_UART4>;
361 status = "disabled";
362 };
363
364 uart5: serial@1c29400 {
365 compatible = "snps,dw-apb-uart";
366 reg = <0x01c29400 0x400>;
367 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
368 reg-shift = <2>;
369 reg-io-width = <4>;
370 clocks = <&ccu CLK_BUS_UART5>;
371 resets = <&ccu RST_BUS_UART5>;
372 status = "disabled";
373 };
374
375 uart6: serial@1c29800 {
376 compatible = "snps,dw-apb-uart";
377 reg = <0x01c29800 0x400>;
378 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
379 reg-shift = <2>;
380 reg-io-width = <4>;
381 clocks = <&ccu CLK_BUS_UART6>;
382 resets = <&ccu RST_BUS_UART6>;
383 status = "disabled";
384 };
385
386 uart7: serial@1c29c00 {
387 compatible = "snps,dw-apb-uart";
388 reg = <0x01c29c00 0x400>;
389 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
390 reg-shift = <2>;
391 reg-io-width = <4>;
392 clocks = <&ccu CLK_BUS_UART7>;
393 resets = <&ccu RST_BUS_UART7>;
394 status = "disabled";
395 };
396
397 i2c0: i2c@1c2ac00 {
398 compatible = "allwinner,sun6i-a31-i2c";
399 reg = <0x01c2ac00 0x400>;
400 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
401 clocks = <&ccu CLK_BUS_I2C0>;
402 resets = <&ccu RST_BUS_I2C0>;
403 pinctrl-0 = <&i2c0_pins>;
404 pinctrl-names = "default";
405 status = "disabled";
406 #address-cells = <1>;
407 #size-cells = <0>;
408 };
409
410 i2c1: i2c@1c2b000 {
411 compatible = "allwinner,sun6i-a31-i2c";
412 reg = <0x01c2b000 0x400>;
413 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
414 clocks = <&ccu CLK_BUS_I2C1>;
415 resets = <&ccu RST_BUS_I2C1>;
416 status = "disabled";
417 #address-cells = <1>;
418 #size-cells = <0>;
419 };
420
421 i2c2: i2c@1c2b400 {
422 compatible = "allwinner,sun6i-a31-i2c";
423 reg = <0x01c2b400 0x400>;
424 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
425 clocks = <&ccu CLK_BUS_I2C2>;
426 resets = <&ccu RST_BUS_I2C2>;
427 status = "disabled";
428 #address-cells = <1>;
429 #size-cells = <0>;
430 };
431
432 i2c3: i2c@1c2b800 {
433 compatible = "allwinner,sun6i-a31-i2c";
434 reg = <0x01c2b800 0x400>;
435 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
436 clocks = <&ccu CLK_BUS_I2C3>;
437 resets = <&ccu RST_BUS_I2C3>;
438 status = "disabled";
439 #address-cells = <1>;
440 #size-cells = <0>;
441 };
442
443 i2c4: i2c@1c2c000 {
444 compatible = "allwinner,sun6i-a31-i2c";
445 reg = <0x01c2c000 0x400>;
446 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
447 clocks = <&ccu CLK_BUS_I2C4>;
448 resets = <&ccu RST_BUS_I2C4>;
449 status = "disabled";
450 #address-cells = <1>;
451 #size-cells = <0>;
452 };
453
454 gic: interrupt-controller@1c81000 {
455 compatible = "arm,gic-400";
456 reg = <0x01c81000 0x1000>,
457 <0x01c82000 0x1000>,
458 <0x01c84000 0x2000>,
459 <0x01c86000 0x2000>;
460 interrupt-controller;
461 #interrupt-cells = <3>;
462 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
463 };
464 };
465
466 timer {
467 compatible = "arm,armv7-timer";
468 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
469 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
470 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
471 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
472 };
473};
diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi b/arch/arm/boot/dts/sun8i-v3s.dtsi
index 3a06dc5b3746..443b083c6adc 100644
--- a/arch/arm/boot/dts/sun8i-v3s.dtsi
+++ b/arch/arm/boot/dts/sun8i-v3s.dtsi
@@ -178,7 +178,7 @@
178 }; 178 };
179 179
180 180
181 mmc0: mmc@01c0f000 { 181 mmc0: mmc@1c0f000 {
182 compatible = "allwinner,sun7i-a20-mmc"; 182 compatible = "allwinner,sun7i-a20-mmc";
183 reg = <0x01c0f000 0x1000>; 183 reg = <0x01c0f000 0x1000>;
184 clocks = <&ccu CLK_BUS_MMC0>, 184 clocks = <&ccu CLK_BUS_MMC0>,
@@ -197,7 +197,7 @@
197 #size-cells = <0>; 197 #size-cells = <0>;
198 }; 198 };
199 199
200 mmc1: mmc@01c10000 { 200 mmc1: mmc@1c10000 {
201 compatible = "allwinner,sun7i-a20-mmc"; 201 compatible = "allwinner,sun7i-a20-mmc";
202 reg = <0x01c10000 0x1000>; 202 reg = <0x01c10000 0x1000>;
203 clocks = <&ccu CLK_BUS_MMC1>, 203 clocks = <&ccu CLK_BUS_MMC1>,
@@ -218,7 +218,7 @@
218 #size-cells = <0>; 218 #size-cells = <0>;
219 }; 219 };
220 220
221 mmc2: mmc@01c11000 { 221 mmc2: mmc@1c11000 {
222 compatible = "allwinner,sun7i-a20-mmc"; 222 compatible = "allwinner,sun7i-a20-mmc";
223 reg = <0x01c11000 0x1000>; 223 reg = <0x01c11000 0x1000>;
224 clocks = <&ccu CLK_BUS_MMC2>, 224 clocks = <&ccu CLK_BUS_MMC2>,
@@ -237,7 +237,7 @@
237 #size-cells = <0>; 237 #size-cells = <0>;
238 }; 238 };
239 239
240 usb_otg: usb@01c19000 { 240 usb_otg: usb@1c19000 {
241 compatible = "allwinner,sun8i-h3-musb"; 241 compatible = "allwinner,sun8i-h3-musb";
242 reg = <0x01c19000 0x0400>; 242 reg = <0x01c19000 0x0400>;
243 clocks = <&ccu CLK_BUS_OTG>; 243 clocks = <&ccu CLK_BUS_OTG>;
@@ -250,7 +250,7 @@
250 status = "disabled"; 250 status = "disabled";
251 }; 251 };
252 252
253 usbphy: phy@01c19400 { 253 usbphy: phy@1c19400 {
254 compatible = "allwinner,sun8i-v3s-usb-phy"; 254 compatible = "allwinner,sun8i-v3s-usb-phy";
255 reg = <0x01c19400 0x2c>, 255 reg = <0x01c19400 0x2c>,
256 <0x01c1a800 0x4>; 256 <0x01c1a800 0x4>;
@@ -264,7 +264,7 @@
264 #phy-cells = <1>; 264 #phy-cells = <1>;
265 }; 265 };
266 266
267 ccu: clock@01c20000 { 267 ccu: clock@1c20000 {
268 compatible = "allwinner,sun8i-v3s-ccu"; 268 compatible = "allwinner,sun8i-v3s-ccu";
269 reg = <0x01c20000 0x400>; 269 reg = <0x01c20000 0x400>;
270 clocks = <&osc24M>, <&osc32k>; 270 clocks = <&osc24M>, <&osc32k>;
@@ -273,14 +273,14 @@
273 #reset-cells = <1>; 273 #reset-cells = <1>;
274 }; 274 };
275 275
276 rtc: rtc@01c20400 { 276 rtc: rtc@1c20400 {
277 compatible = "allwinner,sun6i-a31-rtc"; 277 compatible = "allwinner,sun6i-a31-rtc";
278 reg = <0x01c20400 0x54>; 278 reg = <0x01c20400 0x54>;
279 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 279 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
280 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 280 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
281 }; 281 };
282 282
283 pio: pinctrl@01c20800 { 283 pio: pinctrl@1c20800 {
284 compatible = "allwinner,sun8i-v3s-pinctrl"; 284 compatible = "allwinner,sun8i-v3s-pinctrl";
285 reg = <0x01c20800 0x400>; 285 reg = <0x01c20800 0x400>;
286 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 286 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
@@ -324,7 +324,7 @@
324 }; 324 };
325 }; 325 };
326 326
327 timer@01c20c00 { 327 timer@1c20c00 {
328 compatible = "allwinner,sun4i-a10-timer"; 328 compatible = "allwinner,sun4i-a10-timer";
329 reg = <0x01c20c00 0xa0>; 329 reg = <0x01c20c00 0xa0>;
330 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 330 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
@@ -332,7 +332,7 @@
332 clocks = <&osc24M>; 332 clocks = <&osc24M>;
333 }; 333 };
334 334
335 wdt0: watchdog@01c20ca0 { 335 wdt0: watchdog@1c20ca0 {
336 compatible = "allwinner,sun6i-a31-wdt"; 336 compatible = "allwinner,sun6i-a31-wdt";
337 reg = <0x01c20ca0 0x20>; 337 reg = <0x01c20ca0 0x20>;
338 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 338 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
@@ -345,7 +345,7 @@
345 status = "disabled"; 345 status = "disabled";
346 }; 346 };
347 347
348 uart0: serial@01c28000 { 348 uart0: serial@1c28000 {
349 compatible = "snps,dw-apb-uart"; 349 compatible = "snps,dw-apb-uart";
350 reg = <0x01c28000 0x400>; 350 reg = <0x01c28000 0x400>;
351 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 351 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
@@ -356,7 +356,7 @@
356 status = "disabled"; 356 status = "disabled";
357 }; 357 };
358 358
359 uart1: serial@01c28400 { 359 uart1: serial@1c28400 {
360 compatible = "snps,dw-apb-uart"; 360 compatible = "snps,dw-apb-uart";
361 reg = <0x01c28400 0x400>; 361 reg = <0x01c28400 0x400>;
362 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 362 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
@@ -367,7 +367,7 @@
367 status = "disabled"; 367 status = "disabled";
368 }; 368 };
369 369
370 uart2: serial@01c28800 { 370 uart2: serial@1c28800 {
371 compatible = "snps,dw-apb-uart"; 371 compatible = "snps,dw-apb-uart";
372 reg = <0x01c28800 0x400>; 372 reg = <0x01c28800 0x400>;
373 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 373 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
@@ -378,7 +378,7 @@
378 status = "disabled"; 378 status = "disabled";
379 }; 379 };
380 380
381 i2c0: i2c@01c2ac00 { 381 i2c0: i2c@1c2ac00 {
382 compatible = "allwinner,sun6i-a31-i2c"; 382 compatible = "allwinner,sun6i-a31-i2c";
383 reg = <0x01c2ac00 0x400>; 383 reg = <0x01c2ac00 0x400>;
384 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 384 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
@@ -391,7 +391,7 @@
391 #size-cells = <0>; 391 #size-cells = <0>;
392 }; 392 };
393 393
394 i2c1: i2c@01c2b000 { 394 i2c1: i2c@1c2b000 {
395 compatible = "allwinner,sun6i-a31-i2c"; 395 compatible = "allwinner,sun6i-a31-i2c";
396 reg = <0x01c2b000 0x400>; 396 reg = <0x01c2b000 0x400>;
397 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 397 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
@@ -416,7 +416,7 @@
416 #size-cells = <0>; 416 #size-cells = <0>;
417 }; 417 };
418 418
419 gic: interrupt-controller@01c81000 { 419 gic: interrupt-controller@1c81000 {
420 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; 420 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
421 reg = <0x01c81000 0x1000>, 421 reg = <0x01c81000 0x1000>,
422 <0x01c82000 0x1000>, 422 <0x01c82000 0x1000>,
diff --git a/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts b/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
new file mode 100644
index 000000000000..fe16fc0eb518
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
@@ -0,0 +1,173 @@
1/*
2 * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io>
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-r40.dtsi"
45
46#include <dt-bindings/gpio/gpio.h>
47
48/ {
49 model = "Banana Pi M2 Berry";
50 compatible = "sinovoip,bpi-m2-berry", "allwinner,sun8i-r40";
51
52 aliases {
53 serial0 = &uart0;
54 };
55
56 chosen {
57 stdout-path = "serial0:115200n8";
58 };
59
60 leds {
61 compatible = "gpio-leds";
62
63 pwr-led {
64 label = "bananapi:red:pwr";
65 gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>;
66 default-state = "on";
67 };
68
69 user-led {
70 label = "bananapi:green:user";
71 gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>;
72 };
73 };
74
75 reg_vcc5v0: vcc5v0 {
76 compatible = "regulator-fixed";
77 regulator-name = "vcc5v0";
78 regulator-min-microvolt = <5000000>;
79 regulator-max-microvolt = <5000000>;
80 gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>; /* PH23 */
81 enable-active-high;
82 };
83
84 wifi_pwrseq: wifi_pwrseq {
85 compatible = "mmc-pwrseq-simple";
86 reset-gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 WIFI_EN */
87 };
88};
89
90&i2c0 {
91 status = "okay";
92
93 axp22x: pmic@68 {
94 compatible = "x-powers,axp221";
95 reg = <0x34>;
96 interrupt-parent = <&nmi_intc>;
97 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
98 };
99};
100
101#include "axp22x.dtsi"
102
103&reg_aldo3 {
104 regulator-always-on;
105 regulator-min-microvolt = <2700000>;
106 regulator-max-microvolt = <3300000>;
107 regulator-name = "avcc";
108};
109
110&reg_dcdc1 {
111 regulator-always-on;
112 regulator-min-microvolt = <3000000>;
113 regulator-max-microvolt = <3000000>;
114 regulator-name = "vcc-3v0";
115};
116
117&reg_dcdc2 {
118 regulator-always-on;
119 regulator-min-microvolt = <1000000>;
120 regulator-max-microvolt = <1300000>;
121 regulator-name = "vdd-cpu";
122};
123
124&reg_dcdc3 {
125 regulator-always-on;
126 regulator-min-microvolt = <1000000>;
127 regulator-max-microvolt = <1300000>;
128 regulator-name = "vdd-sys";
129};
130
131&reg_dcdc5 {
132 regulator-always-on;
133 regulator-min-microvolt = <1500000>;
134 regulator-max-microvolt = <1500000>;
135 regulator-name = "vcc-dram";
136};
137
138&reg_dldo1 {
139 regulator-min-microvolt = <1800000>;
140 regulator-max-microvolt = <3300000>;
141 regulator-name = "vcc-wifi-io";
142};
143
144&reg_dldo2 {
145 regulator-min-microvolt = <3300000>;
146 regulator-max-microvolt = <3300000>;
147 regulator-name = "vcc-wifi";
148};
149
150&mmc0 {
151 vmmc-supply = <&reg_dcdc1>;
152 bus-width = <4>;
153 cd-gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>; /* PH13 */
154 cd-inverted;
155 status = "okay";
156};
157
158&mmc1 {
159 pinctrl-names = "default";
160 pinctrl-0 = <&mmc1_pg_pins>;
161 vmmc-supply = <&reg_dldo2>;
162 vqmmc-supply = <&reg_dldo1>;
163 mmc-pwrseq = <&wifi_pwrseq>;
164 bus-width = <4>;
165 non-removable;
166 status = "okay";
167};
168
169&uart0 {
170 pinctrl-names = "default";
171 pinctrl-0 = <&uart0_pb_pins>;
172 status = "okay";
173};
diff --git a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
index 3741ac71c3d6..4024639aa005 100644
--- a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
+++ b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
@@ -62,8 +62,6 @@
62 62
63 leds { 63 leds {
64 compatible = "gpio-leds"; 64 compatible = "gpio-leds";
65 pinctrl-names = "default";
66 pinctrl-0 = <&led_pins_cubieboard4>;
67 65
68 green { 66 green {
69 label = "cubieboard4:green:usr"; 67 label = "cubieboard4:green:usr";
@@ -76,7 +74,7 @@
76 }; 74 };
77 }; 75 };
78 76
79 wifi_pwrseq: wifi_pwrseq { 77 wifi_pwrseq: wifi-pwrseq {
80 compatible = "mmc-pwrseq-simple"; 78 compatible = "mmc-pwrseq-simple";
81 clocks = <&ac100_rtc 1>; 79 clocks = <&ac100_rtc 1>;
82 clock-names = "ext_clock"; 80 clock-names = "ext_clock";
@@ -87,7 +85,7 @@
87 85
88&mmc0 { 86&mmc0 {
89 pinctrl-names = "default"; 87 pinctrl-names = "default";
90 pinctrl-0 = <&mmc0_pins>, <&mmc0_cd_pin_cubieboard4>; 88 pinctrl-0 = <&mmc0_pins>;
91 vmmc-supply = <&reg_dcdc1>; 89 vmmc-supply = <&reg_dcdc1>;
92 bus-width = <4>; 90 bus-width = <4>;
93 cd-gpios = <&pio 7 18 GPIO_ACTIVE_HIGH>; /* PH18 */ 91 cd-gpios = <&pio 7 18 GPIO_ACTIVE_HIGH>; /* PH18 */
@@ -97,7 +95,7 @@
97 95
98&mmc1 { 96&mmc1 {
99 pinctrl-names = "default"; 97 pinctrl-names = "default";
100 pinctrl-0 = <&mmc1_pins>, <&wifi_en_pin_cubieboard4>; 98 pinctrl-0 = <&mmc1_pins>;
101 vmmc-supply = <&reg_dldo1>; 99 vmmc-supply = <&reg_dldo1>;
102 vqmmc-supply = <&reg_cldo3>; 100 vqmmc-supply = <&reg_cldo3>;
103 mmc-pwrseq = <&wifi_pwrseq>; 101 mmc-pwrseq = <&wifi_pwrseq>;
@@ -130,30 +128,10 @@
130 clocks = <&ac100_rtc 0>; 128 clocks = <&ac100_rtc 0>;
131}; 129};
132 130
133&pio {
134 led_pins_cubieboard4: led-pins@0 {
135 pins = "PH6", "PH17";
136 function = "gpio_out";
137 };
138
139 mmc0_cd_pin_cubieboard4: mmc0_cd_pin@0 {
140 pins = "PH18";
141 function = "gpio_in";
142 bias-pull-up;
143 };
144};
145
146&r_ir { 131&r_ir {
147 status = "okay"; 132 status = "okay";
148}; 133};
149 134
150&r_pio {
151 wifi_en_pin_cubieboard4: wifi_en_pin@0 {
152 pins = "PL2";
153 function = "gpio_out";
154 };
155};
156
157&r_rsb { 135&r_rsb {
158 status = "okay"; 136 status = "okay";
159 137
@@ -427,6 +405,6 @@
427 405
428&uart0 { 406&uart0 {
429 pinctrl-names = "default"; 407 pinctrl-names = "default";
430 pinctrl-0 = <&uart0_pins_a>; 408 pinctrl-0 = <&uart0_ph_pins>;
431 status = "okay"; 409 status = "okay";
432}; 410};
diff --git a/arch/arm/boot/dts/sun9i-a80-optimus.dts b/arch/arm/boot/dts/sun9i-a80-optimus.dts
index 85f1ad670310..a9b807be99a0 100644
--- a/arch/arm/boot/dts/sun9i-a80-optimus.dts
+++ b/arch/arm/boot/dts/sun9i-a80-optimus.dts
@@ -62,11 +62,8 @@
62 62
63 leds { 63 leds {
64 compatible = "gpio-leds"; 64 compatible = "gpio-leds";
65 pinctrl-names = "default";
66 pinctrl-0 = <&led_pins_optimus>, <&led_r_pins_optimus>;
67 65
68 /* The LED names match those found on the board */ 66 /* The LED names match those found on the board */
69
70 led2 { 67 led2 {
71 label = "optimus:led2:usr"; 68 label = "optimus:led2:usr";
72 gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; 69 gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>;
@@ -86,8 +83,6 @@
86 reg_usb1_vbus: usb1-vbus { 83 reg_usb1_vbus: usb1-vbus {
87 compatible = "regulator-fixed"; 84 compatible = "regulator-fixed";
88 pinctrl-names = "default"; 85 pinctrl-names = "default";
89 pinctrl-0 = <&usb1_vbus_pin_optimus>;
90 regulator-name = "usb1-vbus";
91 regulator-min-microvolt = <5000000>; 86 regulator-min-microvolt = <5000000>;
92 regulator-max-microvolt = <5000000>; 87 regulator-max-microvolt = <5000000>;
93 enable-active-high; 88 enable-active-high;
@@ -97,15 +92,13 @@
97 reg_usb3_vbus: usb3-vbus { 92 reg_usb3_vbus: usb3-vbus {
98 compatible = "regulator-fixed"; 93 compatible = "regulator-fixed";
99 pinctrl-names = "default"; 94 pinctrl-names = "default";
100 pinctrl-0 = <&usb3_vbus_pin_optimus>;
101 regulator-name = "usb3-vbus";
102 regulator-min-microvolt = <5000000>; 95 regulator-min-microvolt = <5000000>;
103 regulator-max-microvolt = <5000000>; 96 regulator-max-microvolt = <5000000>;
104 enable-active-high; 97 enable-active-high;
105 gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */ 98 gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
106 }; 99 };
107 100
108 wifi_pwrseq: wifi_pwrseq { 101 wifi_pwrseq: wifi-pwrseq {
109 compatible = "mmc-pwrseq-simple"; 102 compatible = "mmc-pwrseq-simple";
110 clocks = <&ac100_rtc 1>; 103 clocks = <&ac100_rtc 1>;
111 clock-names = "ext_clock"; 104 clock-names = "ext_clock";
@@ -129,7 +122,7 @@
129 122
130&mmc0 { 123&mmc0 {
131 pinctrl-names = "default"; 124 pinctrl-names = "default";
132 pinctrl-0 = <&mmc0_pins>, <&mmc0_cd_pin_optimus>; 125 pinctrl-0 = <&mmc0_pins>;
133 vmmc-supply = <&reg_dcdc1>; 126 vmmc-supply = <&reg_dcdc1>;
134 bus-width = <4>; 127 bus-width = <4>;
135 cd-gpios = <&pio 7 18 GPIO_ACTIVE_HIGH>; /* PH8 */ 128 cd-gpios = <&pio 7 18 GPIO_ACTIVE_HIGH>; /* PH8 */
@@ -139,7 +132,7 @@
139 132
140&mmc1 { 133&mmc1 {
141 pinctrl-names = "default"; 134 pinctrl-names = "default";
142 pinctrl-0 = <&mmc1_pins>, <&wifi_en_pin_optimus>; 135 pinctrl-0 = <&mmc1_pins>;
143 vmmc-supply = <&reg_dldo1>; 136 vmmc-supply = <&reg_dldo1>;
144 vqmmc-supply = <&reg_cldo3>; 137 vqmmc-supply = <&reg_cldo3>;
145 mmc-pwrseq = <&wifi_pwrseq>; 138 mmc-pwrseq = <&wifi_pwrseq>;
@@ -180,45 +173,10 @@
180 clocks = <&ac100_rtc 0>; 173 clocks = <&ac100_rtc 0>;
181}; 174};
182 175
183&pio {
184 led_pins_optimus: led-pins@0 {
185 pins = "PH0", "PH1";
186 function = "gpio_out";
187 };
188
189 mmc0_cd_pin_optimus: mmc0_cd_pin@0 {
190 pins = "PH18";
191 function = "gpio_in";
192 bias-pull-up;
193 };
194
195 usb1_vbus_pin_optimus: usb1_vbus_pin@1 {
196 pins = "PH4";
197 function = "gpio_out";
198 };
199
200 usb3_vbus_pin_optimus: usb3_vbus_pin@1 {
201 pins = "PH5";
202 function = "gpio_out";
203 };
204};
205
206&r_ir { 176&r_ir {
207 status = "okay"; 177 status = "okay";
208}; 178};
209 179
210&r_pio {
211 led_r_pins_optimus: led-pins@1 {
212 pins = "PM15";
213 function = "gpio_out";
214 };
215
216 wifi_en_pin_optimus: wifi_en_pin@0 {
217 pins = "PL2";
218 function = "gpio_out";
219 };
220};
221
222&r_rsb { 180&r_rsb {
223 status = "okay"; 181 status = "okay";
224 182
@@ -492,7 +450,7 @@
492 450
493&uart0 { 451&uart0 {
494 pinctrl-names = "default"; 452 pinctrl-names = "default";
495 pinctrl-0 = <&uart0_pins_a>; 453 pinctrl-0 = <&uart0_ph_pins>;
496 status = "okay"; 454 status = "okay";
497}; 455};
498 456
diff --git a/arch/arm/boot/dts/sun9i-a80.dtsi b/arch/arm/boot/dts/sun9i-a80.dtsi
index 759a72317eb8..90eac0b2a193 100644
--- a/arch/arm/boot/dts/sun9i-a80.dtsi
+++ b/arch/arm/boot/dts/sun9i-a80.dtsi
@@ -42,8 +42,6 @@
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
43 */ 43 */
44 44
45#include "skeleton64.dtsi"
46
47#include <dt-bindings/interrupt-controller/arm-gic.h> 45#include <dt-bindings/interrupt-controller/arm-gic.h>
48 46
49#include <dt-bindings/clock/sun9i-a80-ccu.h> 47#include <dt-bindings/clock/sun9i-a80-ccu.h>
@@ -54,6 +52,8 @@
54#include <dt-bindings/reset/sun9i-a80-usb.h> 52#include <dt-bindings/reset/sun9i-a80-usb.h>
55 53
56/ { 54/ {
55 #address-cells = <2>;
56 #size-cells = <2>;
57 interrupt-parent = <&gic>; 57 interrupt-parent = <&gic>;
58 58
59 cpus { 59 cpus {
@@ -109,11 +109,6 @@
109 }; 109 };
110 }; 110 };
111 111
112 memory {
113 /* 8GB max. with LPAE */
114 reg = <0 0x20000000 0x02 0>;
115 };
116
117 timer { 112 timer {
118 compatible = "arm,armv7-timer"; 113 compatible = "arm,armv7-timer";
119 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 114 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
@@ -144,7 +139,7 @@
144 * would also throw all the PLL clock rates off, or just the 139 * would also throw all the PLL clock rates off, or just the
145 * downstream clocks in the PRCM. 140 * downstream clocks in the PRCM.
146 */ 141 */
147 osc24M: osc24M_clk { 142 osc24M: clk-24M {
148 #clock-cells = <0>; 143 #clock-cells = <0>;
149 compatible = "fixed-clock"; 144 compatible = "fixed-clock";
150 clock-frequency = <24000000>; 145 clock-frequency = <24000000>;
@@ -156,7 +151,7 @@
156 * AC100 codec/RTC chip. This serves as a placeholder for 151 * AC100 codec/RTC chip. This serves as a placeholder for
157 * board dts files to specify the source. 152 * board dts files to specify the source.
158 */ 153 */
159 osc32k: osc32k_clk { 154 osc32k: clk-32k {
160 #clock-cells = <0>; 155 #clock-cells = <0>;
161 compatible = "fixed-factor-clock"; 156 compatible = "fixed-factor-clock";
162 clock-div = <1>; 157 clock-div = <1>;
@@ -164,7 +159,7 @@
164 clock-output-names = "osc32k"; 159 clock-output-names = "osc32k";
165 }; 160 };
166 161
167 cpus_clk: clk@08001410 { 162 cpus_clk: clk@8001410 {
168 compatible = "allwinner,sun9i-a80-cpus-clk"; 163 compatible = "allwinner,sun9i-a80-cpus-clk";
169 reg = <0x08001410 0x4>; 164 reg = <0x08001410 0x4>;
170 #clock-cells = <0>; 165 #clock-cells = <0>;
@@ -174,7 +169,7 @@
174 clock-output-names = "cpus"; 169 clock-output-names = "cpus";
175 }; 170 };
176 171
177 ahbs: ahbs_clk { 172 ahbs: clk-ahbs {
178 compatible = "fixed-factor-clock"; 173 compatible = "fixed-factor-clock";
179 #clock-cells = <0>; 174 #clock-cells = <0>;
180 clock-div = <1>; 175 clock-div = <1>;
@@ -183,7 +178,7 @@
183 clock-output-names = "ahbs"; 178 clock-output-names = "ahbs";
184 }; 179 };
185 180
186 apbs: clk@0800141c { 181 apbs: clk@800141c {
187 compatible = "allwinner,sun8i-a23-apb0-clk"; 182 compatible = "allwinner,sun8i-a23-apb0-clk";
188 reg = <0x0800141c 0x4>; 183 reg = <0x0800141c 0x4>;
189 #clock-cells = <0>; 184 #clock-cells = <0>;
@@ -191,7 +186,7 @@
191 clock-output-names = "apbs"; 186 clock-output-names = "apbs";
192 }; 187 };
193 188
194 apbs_gates: clk@08001428 { 189 apbs_gates: clk@8001428 {
195 compatible = "allwinner,sun9i-a80-apbs-gates-clk"; 190 compatible = "allwinner,sun9i-a80-apbs-gates-clk";
196 reg = <0x08001428 0x4>; 191 reg = <0x08001428 0x4>;
197 #clock-cells = <1>; 192 #clock-cells = <1>;
@@ -212,7 +207,7 @@
212 "apbs_i2s1", "apbs_twd"; 207 "apbs_i2s1", "apbs_twd";
213 }; 208 };
214 209
215 r_1wire_clk: clk@08001450 { 210 r_1wire_clk: clk@8001450 {
216 reg = <0x08001450 0x4>; 211 reg = <0x08001450 0x4>;
217 #clock-cells = <0>; 212 #clock-cells = <0>;
218 compatible = "allwinner,sun4i-a10-mod0-clk"; 213 compatible = "allwinner,sun4i-a10-mod0-clk";
@@ -220,7 +215,7 @@
220 clock-output-names = "r_1wire"; 215 clock-output-names = "r_1wire";
221 }; 216 };
222 217
223 r_ir_clk: clk@08001454 { 218 r_ir_clk: clk@8001454 {
224 reg = <0x08001454 0x4>; 219 reg = <0x08001454 0x4>;
225 #clock-cells = <0>; 220 #clock-cells = <0>;
226 compatible = "allwinner,sun4i-a10-mod0-clk"; 221 compatible = "allwinner,sun4i-a10-mod0-clk";
@@ -239,7 +234,7 @@
239 */ 234 */
240 ranges = <0 0 0 0x20000000>; 235 ranges = <0 0 0 0x20000000>;
241 236
242 ehci0: usb@00a00000 { 237 ehci0: usb@a00000 {
243 compatible = "allwinner,sun9i-a80-ehci", "generic-ehci"; 238 compatible = "allwinner,sun9i-a80-ehci", "generic-ehci";
244 reg = <0x00a00000 0x100>; 239 reg = <0x00a00000 0x100>;
245 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 240 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
@@ -250,7 +245,7 @@
250 status = "disabled"; 245 status = "disabled";
251 }; 246 };
252 247
253 ohci0: usb@00a00400 { 248 ohci0: usb@a00400 {
254 compatible = "allwinner,sun9i-a80-ohci", "generic-ohci"; 249 compatible = "allwinner,sun9i-a80-ohci", "generic-ohci";
255 reg = <0x00a00400 0x100>; 250 reg = <0x00a00400 0x100>;
256 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 251 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
@@ -262,7 +257,7 @@
262 status = "disabled"; 257 status = "disabled";
263 }; 258 };
264 259
265 usbphy1: phy@00a00800 { 260 usbphy1: phy@a00800 {
266 compatible = "allwinner,sun9i-a80-usb-phy"; 261 compatible = "allwinner,sun9i-a80-usb-phy";
267 reg = <0x00a00800 0x4>; 262 reg = <0x00a00800 0x4>;
268 clocks = <&usb_clocks CLK_USB0_PHY>; 263 clocks = <&usb_clocks CLK_USB0_PHY>;
@@ -273,7 +268,7 @@
273 #phy-cells = <0>; 268 #phy-cells = <0>;
274 }; 269 };
275 270
276 ehci1: usb@00a01000 { 271 ehci1: usb@a01000 {
277 compatible = "allwinner,sun9i-a80-ehci", "generic-ehci"; 272 compatible = "allwinner,sun9i-a80-ehci", "generic-ehci";
278 reg = <0x00a01000 0x100>; 273 reg = <0x00a01000 0x100>;
279 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 274 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
@@ -284,7 +279,7 @@
284 status = "disabled"; 279 status = "disabled";
285 }; 280 };
286 281
287 usbphy2: phy@00a01800 { 282 usbphy2: phy@a01800 {
288 compatible = "allwinner,sun9i-a80-usb-phy"; 283 compatible = "allwinner,sun9i-a80-usb-phy";
289 reg = <0x00a01800 0x4>; 284 reg = <0x00a01800 0x4>;
290 clocks = <&usb_clocks CLK_USB1_HSIC>, 285 clocks = <&usb_clocks CLK_USB1_HSIC>,
@@ -303,7 +298,7 @@
303 phy_type = "hsic"; 298 phy_type = "hsic";
304 }; 299 };
305 300
306 ehci2: usb@00a02000 { 301 ehci2: usb@a02000 {
307 compatible = "allwinner,sun9i-a80-ehci", "generic-ehci"; 302 compatible = "allwinner,sun9i-a80-ehci", "generic-ehci";
308 reg = <0x00a02000 0x100>; 303 reg = <0x00a02000 0x100>;
309 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 304 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
@@ -314,7 +309,7 @@
314 status = "disabled"; 309 status = "disabled";
315 }; 310 };
316 311
317 ohci2: usb@00a02400 { 312 ohci2: usb@a02400 {
318 compatible = "allwinner,sun9i-a80-ohci", "generic-ohci"; 313 compatible = "allwinner,sun9i-a80-ohci", "generic-ohci";
319 reg = <0x00a02400 0x100>; 314 reg = <0x00a02400 0x100>;
320 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 315 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
@@ -326,7 +321,7 @@
326 status = "disabled"; 321 status = "disabled";
327 }; 322 };
328 323
329 usbphy3: phy@00a02800 { 324 usbphy3: phy@a02800 {
330 compatible = "allwinner,sun9i-a80-usb-phy"; 325 compatible = "allwinner,sun9i-a80-usb-phy";
331 reg = <0x00a02800 0x4>; 326 reg = <0x00a02800 0x4>;
332 clocks = <&usb_clocks CLK_USB2_HSIC>, 327 clocks = <&usb_clocks CLK_USB2_HSIC>,
@@ -343,7 +338,7 @@
343 #phy-cells = <0>; 338 #phy-cells = <0>;
344 }; 339 };
345 340
346 usb_clocks: clock@00a08000 { 341 usb_clocks: clock@a08000 {
347 compatible = "allwinner,sun9i-a80-usb-clks"; 342 compatible = "allwinner,sun9i-a80-usb-clks";
348 reg = <0x00a08000 0x8>; 343 reg = <0x00a08000 0x8>;
349 clocks = <&ccu CLK_BUS_USB>, <&osc24M>; 344 clocks = <&ccu CLK_BUS_USB>, <&osc24M>;
@@ -352,7 +347,7 @@
352 #reset-cells = <1>; 347 #reset-cells = <1>;
353 }; 348 };
354 349
355 mmc0: mmc@01c0f000 { 350 mmc0: mmc@1c0f000 {
356 compatible = "allwinner,sun9i-a80-mmc"; 351 compatible = "allwinner,sun9i-a80-mmc";
357 reg = <0x01c0f000 0x1000>; 352 reg = <0x01c0f000 0x1000>;
358 clocks = <&mmc_config_clk 0>, <&ccu CLK_MMC0>, 353 clocks = <&mmc_config_clk 0>, <&ccu CLK_MMC0>,
@@ -367,7 +362,7 @@
367 #size-cells = <0>; 362 #size-cells = <0>;
368 }; 363 };
369 364
370 mmc1: mmc@01c10000 { 365 mmc1: mmc@1c10000 {
371 compatible = "allwinner,sun9i-a80-mmc"; 366 compatible = "allwinner,sun9i-a80-mmc";
372 reg = <0x01c10000 0x1000>; 367 reg = <0x01c10000 0x1000>;
373 clocks = <&mmc_config_clk 1>, <&ccu CLK_MMC1>, 368 clocks = <&mmc_config_clk 1>, <&ccu CLK_MMC1>,
@@ -382,7 +377,7 @@
382 #size-cells = <0>; 377 #size-cells = <0>;
383 }; 378 };
384 379
385 mmc2: mmc@01c11000 { 380 mmc2: mmc@1c11000 {
386 compatible = "allwinner,sun9i-a80-mmc"; 381 compatible = "allwinner,sun9i-a80-mmc";
387 reg = <0x01c11000 0x1000>; 382 reg = <0x01c11000 0x1000>;
388 clocks = <&mmc_config_clk 2>, <&ccu CLK_MMC2>, 383 clocks = <&mmc_config_clk 2>, <&ccu CLK_MMC2>,
@@ -397,7 +392,7 @@
397 #size-cells = <0>; 392 #size-cells = <0>;
398 }; 393 };
399 394
400 mmc3: mmc@01c12000 { 395 mmc3: mmc@1c12000 {
401 compatible = "allwinner,sun9i-a80-mmc"; 396 compatible = "allwinner,sun9i-a80-mmc";
402 reg = <0x01c12000 0x1000>; 397 reg = <0x01c12000 0x1000>;
403 clocks = <&mmc_config_clk 3>, <&ccu CLK_MMC3>, 398 clocks = <&mmc_config_clk 3>, <&ccu CLK_MMC3>,
@@ -412,7 +407,7 @@
412 #size-cells = <0>; 407 #size-cells = <0>;
413 }; 408 };
414 409
415 mmc_config_clk: clk@01c13000 { 410 mmc_config_clk: clk@1c13000 {
416 compatible = "allwinner,sun9i-a80-mmc-config-clk"; 411 compatible = "allwinner,sun9i-a80-mmc-config-clk";
417 reg = <0x01c13000 0x10>; 412 reg = <0x01c13000 0x10>;
418 clocks = <&ccu CLK_BUS_MMC>; 413 clocks = <&ccu CLK_BUS_MMC>;
@@ -425,7 +420,7 @@
425 "mmc2_config", "mmc3_config"; 420 "mmc2_config", "mmc3_config";
426 }; 421 };
427 422
428 gic: interrupt-controller@01c41000 { 423 gic: interrupt-controller@1c41000 {
429 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; 424 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
430 reg = <0x01c41000 0x1000>, 425 reg = <0x01c41000 0x1000>,
431 <0x01c42000 0x2000>, 426 <0x01c42000 0x2000>,
@@ -436,7 +431,7 @@
436 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 431 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
437 }; 432 };
438 433
439 de_clocks: clock@03000000 { 434 de_clocks: clock@3000000 {
440 compatible = "allwinner,sun9i-a80-de-clks"; 435 compatible = "allwinner,sun9i-a80-de-clks";
441 reg = <0x03000000 0x30>; 436 reg = <0x03000000 0x30>;
442 clocks = <&ccu CLK_DE>, 437 clocks = <&ccu CLK_DE>,
@@ -450,7 +445,7 @@
450 #reset-cells = <1>; 445 #reset-cells = <1>;
451 }; 446 };
452 447
453 ccu: clock@06000000 { 448 ccu: clock@6000000 {
454 compatible = "allwinner,sun9i-a80-ccu"; 449 compatible = "allwinner,sun9i-a80-ccu";
455 reg = <0x06000000 0x800>; 450 reg = <0x06000000 0x800>;
456 clocks = <&osc24M>, <&osc32k>; 451 clocks = <&osc24M>, <&osc32k>;
@@ -459,7 +454,7 @@
459 #reset-cells = <1>; 454 #reset-cells = <1>;
460 }; 455 };
461 456
462 timer@06000c00 { 457 timer@6000c00 {
463 compatible = "allwinner,sun4i-a10-timer"; 458 compatible = "allwinner,sun4i-a10-timer";
464 reg = <0x06000c00 0xa0>; 459 reg = <0x06000c00 0xa0>;
465 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 460 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
@@ -472,13 +467,13 @@
472 clocks = <&osc24M>; 467 clocks = <&osc24M>;
473 }; 468 };
474 469
475 wdt: watchdog@06000ca0 { 470 wdt: watchdog@6000ca0 {
476 compatible = "allwinner,sun6i-a31-wdt"; 471 compatible = "allwinner,sun6i-a31-wdt";
477 reg = <0x06000ca0 0x20>; 472 reg = <0x06000ca0 0x20>;
478 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 473 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
479 }; 474 };
480 475
481 pio: pinctrl@06000800 { 476 pio: pinctrl@6000800 {
482 compatible = "allwinner,sun9i-a80-pinctrl"; 477 compatible = "allwinner,sun9i-a80-pinctrl";
483 reg = <0x06000800 0x400>; 478 reg = <0x06000800 0x400>;
484 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 479 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
@@ -494,12 +489,12 @@
494 #size-cells = <0>; 489 #size-cells = <0>;
495 #gpio-cells = <3>; 490 #gpio-cells = <3>;
496 491
497 i2c3_pins_a: i2c3@0 { 492 i2c3_pins: i2c3-pins {
498 pins = "PG10", "PG11"; 493 pins = "PG10", "PG11";
499 function = "i2c3"; 494 function = "i2c3";
500 }; 495 };
501 496
502 mmc0_pins: mmc0 { 497 mmc0_pins: mmc0-pins {
503 pins = "PF0", "PF1" ,"PF2", "PF3", 498 pins = "PF0", "PF1" ,"PF2", "PF3",
504 "PF4", "PF5"; 499 "PF4", "PF5";
505 function = "mmc0"; 500 function = "mmc0";
@@ -507,7 +502,7 @@
507 bias-pull-up; 502 bias-pull-up;
508 }; 503 };
509 504
510 mmc1_pins: mmc1 { 505 mmc1_pins: mmc1-pins {
511 pins = "PG0", "PG1" ,"PG2", "PG3", 506 pins = "PG0", "PG1" ,"PG2", "PG3",
512 "PG4", "PG5"; 507 "PG4", "PG5";
513 function = "mmc1"; 508 function = "mmc1";
@@ -515,7 +510,7 @@
515 bias-pull-up; 510 bias-pull-up;
516 }; 511 };
517 512
518 mmc2_8bit_pins: mmc2_8bit { 513 mmc2_8bit_pins: mmc2-8bit-pins {
519 pins = "PC6", "PC7", "PC8", "PC9", 514 pins = "PC6", "PC7", "PC8", "PC9",
520 "PC10", "PC11", "PC12", 515 "PC10", "PC11", "PC12",
521 "PC13", "PC14", "PC15", 516 "PC13", "PC14", "PC15",
@@ -525,18 +520,18 @@
525 bias-pull-up; 520 bias-pull-up;
526 }; 521 };
527 522
528 uart0_pins_a: uart0@0 { 523 uart0_ph_pins: uart0-ph-pins {
529 pins = "PH12", "PH13"; 524 pins = "PH12", "PH13";
530 function = "uart0"; 525 function = "uart0";
531 }; 526 };
532 527
533 uart4_pins_a: uart4@0 { 528 uart4_pins: uart4-pins {
534 pins = "PG12", "PG13", "PG14", "PG15"; 529 pins = "PG12", "PG13", "PG14", "PG15";
535 function = "uart4"; 530 function = "uart4";
536 }; 531 };
537 }; 532 };
538 533
539 uart0: serial@07000000 { 534 uart0: serial@7000000 {
540 compatible = "snps,dw-apb-uart"; 535 compatible = "snps,dw-apb-uart";
541 reg = <0x07000000 0x400>; 536 reg = <0x07000000 0x400>;
542 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 537 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
@@ -547,7 +542,7 @@
547 status = "disabled"; 542 status = "disabled";
548 }; 543 };
549 544
550 uart1: serial@07000400 { 545 uart1: serial@7000400 {
551 compatible = "snps,dw-apb-uart"; 546 compatible = "snps,dw-apb-uart";
552 reg = <0x07000400 0x400>; 547 reg = <0x07000400 0x400>;
553 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 548 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
@@ -558,7 +553,7 @@
558 status = "disabled"; 553 status = "disabled";
559 }; 554 };
560 555
561 uart2: serial@07000800 { 556 uart2: serial@7000800 {
562 compatible = "snps,dw-apb-uart"; 557 compatible = "snps,dw-apb-uart";
563 reg = <0x07000800 0x400>; 558 reg = <0x07000800 0x400>;
564 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 559 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
@@ -569,7 +564,7 @@
569 status = "disabled"; 564 status = "disabled";
570 }; 565 };
571 566
572 uart3: serial@07000c00 { 567 uart3: serial@7000c00 {
573 compatible = "snps,dw-apb-uart"; 568 compatible = "snps,dw-apb-uart";
574 reg = <0x07000c00 0x400>; 569 reg = <0x07000c00 0x400>;
575 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 570 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
@@ -580,7 +575,7 @@
580 status = "disabled"; 575 status = "disabled";
581 }; 576 };
582 577
583 uart4: serial@07001000 { 578 uart4: serial@7001000 {
584 compatible = "snps,dw-apb-uart"; 579 compatible = "snps,dw-apb-uart";
585 reg = <0x07001000 0x400>; 580 reg = <0x07001000 0x400>;
586 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 581 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
@@ -591,7 +586,7 @@
591 status = "disabled"; 586 status = "disabled";
592 }; 587 };
593 588
594 uart5: serial@07001400 { 589 uart5: serial@7001400 {
595 compatible = "snps,dw-apb-uart"; 590 compatible = "snps,dw-apb-uart";
596 reg = <0x07001400 0x400>; 591 reg = <0x07001400 0x400>;
597 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 592 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
@@ -602,7 +597,7 @@
602 status = "disabled"; 597 status = "disabled";
603 }; 598 };
604 599
605 i2c0: i2c@07002800 { 600 i2c0: i2c@7002800 {
606 compatible = "allwinner,sun6i-a31-i2c"; 601 compatible = "allwinner,sun6i-a31-i2c";
607 reg = <0x07002800 0x400>; 602 reg = <0x07002800 0x400>;
608 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 603 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
@@ -613,7 +608,7 @@
613 #size-cells = <0>; 608 #size-cells = <0>;
614 }; 609 };
615 610
616 i2c1: i2c@07002c00 { 611 i2c1: i2c@7002c00 {
617 compatible = "allwinner,sun6i-a31-i2c"; 612 compatible = "allwinner,sun6i-a31-i2c";
618 reg = <0x07002c00 0x400>; 613 reg = <0x07002c00 0x400>;
619 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 614 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
@@ -624,7 +619,7 @@
624 #size-cells = <0>; 619 #size-cells = <0>;
625 }; 620 };
626 621
627 i2c2: i2c@07003000 { 622 i2c2: i2c@7003000 {
628 compatible = "allwinner,sun6i-a31-i2c"; 623 compatible = "allwinner,sun6i-a31-i2c";
629 reg = <0x07003000 0x400>; 624 reg = <0x07003000 0x400>;
630 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 625 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
@@ -635,7 +630,7 @@
635 #size-cells = <0>; 630 #size-cells = <0>;
636 }; 631 };
637 632
638 i2c3: i2c@07003400 { 633 i2c3: i2c@7003400 {
639 compatible = "allwinner,sun6i-a31-i2c"; 634 compatible = "allwinner,sun6i-a31-i2c";
640 reg = <0x07003400 0x400>; 635 reg = <0x07003400 0x400>;
641 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 636 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
@@ -646,7 +641,7 @@
646 #size-cells = <0>; 641 #size-cells = <0>;
647 }; 642 };
648 643
649 i2c4: i2c@07003800 { 644 i2c4: i2c@7003800 {
650 compatible = "allwinner,sun6i-a31-i2c"; 645 compatible = "allwinner,sun6i-a31-i2c";
651 reg = <0x07003800 0x400>; 646 reg = <0x07003800 0x400>;
652 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 647 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
@@ -657,19 +652,19 @@
657 #size-cells = <0>; 652 #size-cells = <0>;
658 }; 653 };
659 654
660 r_wdt: watchdog@08001000 { 655 r_wdt: watchdog@8001000 {
661 compatible = "allwinner,sun6i-a31-wdt"; 656 compatible = "allwinner,sun6i-a31-wdt";
662 reg = <0x08001000 0x20>; 657 reg = <0x08001000 0x20>;
663 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 658 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
664 }; 659 };
665 660
666 apbs_rst: reset@080014b0 { 661 apbs_rst: reset@80014b0 {
667 reg = <0x080014b0 0x4>; 662 reg = <0x080014b0 0x4>;
668 compatible = "allwinner,sun6i-a31-clock-reset"; 663 compatible = "allwinner,sun6i-a31-clock-reset";
669 #reset-cells = <1>; 664 #reset-cells = <1>;
670 }; 665 };
671 666
672 nmi_intc: interrupt-controller@080015a0 { 667 nmi_intc: interrupt-controller@80015a0 {
673 compatible = "allwinner,sun9i-a80-nmi"; 668 compatible = "allwinner,sun9i-a80-nmi";
674 interrupt-controller; 669 interrupt-controller;
675 #interrupt-cells = <2>; 670 #interrupt-cells = <2>;
@@ -677,7 +672,7 @@
677 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 672 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
678 }; 673 };
679 674
680 r_ir: ir@08002000 { 675 r_ir: ir@8002000 {
681 compatible = "allwinner,sun5i-a13-ir"; 676 compatible = "allwinner,sun5i-a13-ir";
682 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 677 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
683 pinctrl-names = "default"; 678 pinctrl-names = "default";
@@ -689,7 +684,7 @@
689 status = "disabled"; 684 status = "disabled";
690 }; 685 };
691 686
692 r_uart: serial@08002800 { 687 r_uart: serial@8002800 {
693 compatible = "snps,dw-apb-uart"; 688 compatible = "snps,dw-apb-uart";
694 reg = <0x08002800 0x400>; 689 reg = <0x08002800 0x400>;
695 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 690 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
@@ -700,7 +695,7 @@
700 status = "disabled"; 695 status = "disabled";
701 }; 696 };
702 697
703 r_pio: pinctrl@08002c00 { 698 r_pio: pinctrl@8002c00 {
704 compatible = "allwinner,sun9i-a80-r-pinctrl"; 699 compatible = "allwinner,sun9i-a80-r-pinctrl";
705 reg = <0x08002c00 0x400>; 700 reg = <0x08002c00 0x400>;
706 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 701 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
@@ -713,12 +708,12 @@
713 #interrupt-cells = <3>; 708 #interrupt-cells = <3>;
714 #gpio-cells = <3>; 709 #gpio-cells = <3>;
715 710
716 r_ir_pins: r_ir { 711 r_ir_pins: r-ir-pins {
717 pins = "PL6"; 712 pins = "PL6";
718 function = "s_cir_rx"; 713 function = "s_cir_rx";
719 }; 714 };
720 715
721 r_rsb_pins: r_rsb { 716 r_rsb_pins: r-rsb-pins {
722 pins = "PN0", "PN1"; 717 pins = "PN0", "PN1";
723 function = "s_rsb"; 718 function = "s_rsb";
724 drive-strength = <20>; 719 drive-strength = <20>;
@@ -726,7 +721,7 @@
726 }; 721 };
727 }; 722 };
728 723
729 r_rsb: i2c@08003400 { 724 r_rsb: i2c@8003400 {
730 compatible = "allwinner,sun8i-a23-rsb"; 725 compatible = "allwinner,sun8i-a23-rsb";
731 reg = <0x08003400 0x400>; 726 reg = <0x08003400 0x400>;
732 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 727 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
index 11240a8313c2..8d40c00d64bb 100644
--- a/arch/arm/boot/dts/sunxi-h3-h5.dtsi
+++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
@@ -91,7 +91,7 @@
91 reg = <0x01c00000 0x1000>; 91 reg = <0x01c00000 0x1000>;
92 }; 92 };
93 93
94 dma: dma-controller@01c02000 { 94 dma: dma-controller@1c02000 {
95 compatible = "allwinner,sun8i-h3-dma"; 95 compatible = "allwinner,sun8i-h3-dma";
96 reg = <0x01c02000 0x1000>; 96 reg = <0x01c02000 0x1000>;
97 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 97 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
@@ -100,7 +100,7 @@
100 #dma-cells = <1>; 100 #dma-cells = <1>;
101 }; 101 };
102 102
103 mmc0: mmc@01c0f000 { 103 mmc0: mmc@1c0f000 {
104 /* compatible and clocks are in per SoC .dtsi file */ 104 /* compatible and clocks are in per SoC .dtsi file */
105 reg = <0x01c0f000 0x1000>; 105 reg = <0x01c0f000 0x1000>;
106 resets = <&ccu RST_BUS_MMC0>; 106 resets = <&ccu RST_BUS_MMC0>;
@@ -111,7 +111,7 @@
111 #size-cells = <0>; 111 #size-cells = <0>;
112 }; 112 };
113 113
114 mmc1: mmc@01c10000 { 114 mmc1: mmc@1c10000 {
115 /* compatible and clocks are in per SoC .dtsi file */ 115 /* compatible and clocks are in per SoC .dtsi file */
116 reg = <0x01c10000 0x1000>; 116 reg = <0x01c10000 0x1000>;
117 resets = <&ccu RST_BUS_MMC1>; 117 resets = <&ccu RST_BUS_MMC1>;
@@ -122,7 +122,7 @@
122 #size-cells = <0>; 122 #size-cells = <0>;
123 }; 123 };
124 124
125 mmc2: mmc@01c11000 { 125 mmc2: mmc@1c11000 {
126 /* compatible and clocks are in per SoC .dtsi file */ 126 /* compatible and clocks are in per SoC .dtsi file */
127 reg = <0x01c11000 0x1000>; 127 reg = <0x01c11000 0x1000>;
128 resets = <&ccu RST_BUS_MMC2>; 128 resets = <&ccu RST_BUS_MMC2>;
@@ -133,7 +133,7 @@
133 #size-cells = <0>; 133 #size-cells = <0>;
134 }; 134 };
135 135
136 usb_otg: usb@01c19000 { 136 usb_otg: usb@1c19000 {
137 compatible = "allwinner,sun8i-h3-musb"; 137 compatible = "allwinner,sun8i-h3-musb";
138 reg = <0x01c19000 0x400>; 138 reg = <0x01c19000 0x400>;
139 clocks = <&ccu CLK_BUS_OTG>; 139 clocks = <&ccu CLK_BUS_OTG>;
@@ -146,7 +146,7 @@
146 status = "disabled"; 146 status = "disabled";
147 }; 147 };
148 148
149 usbphy: phy@01c19400 { 149 usbphy: phy@1c19400 {
150 compatible = "allwinner,sun8i-h3-usb-phy"; 150 compatible = "allwinner,sun8i-h3-usb-phy";
151 reg = <0x01c19400 0x2c>, 151 reg = <0x01c19400 0x2c>,
152 <0x01c1a800 0x4>, 152 <0x01c1a800 0x4>,
@@ -178,7 +178,7 @@
178 #phy-cells = <1>; 178 #phy-cells = <1>;
179 }; 179 };
180 180
181 ehci0: usb@01c1a000 { 181 ehci0: usb@1c1a000 {
182 compatible = "allwinner,sun8i-h3-ehci", "generic-ehci"; 182 compatible = "allwinner,sun8i-h3-ehci", "generic-ehci";
183 reg = <0x01c1a000 0x100>; 183 reg = <0x01c1a000 0x100>;
184 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 184 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
@@ -187,7 +187,7 @@
187 status = "disabled"; 187 status = "disabled";
188 }; 188 };
189 189
190 ohci0: usb@01c1a400 { 190 ohci0: usb@1c1a400 {
191 compatible = "allwinner,sun8i-h3-ohci", "generic-ohci"; 191 compatible = "allwinner,sun8i-h3-ohci", "generic-ohci";
192 reg = <0x01c1a400 0x100>; 192 reg = <0x01c1a400 0x100>;
193 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 193 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
@@ -197,7 +197,7 @@
197 status = "disabled"; 197 status = "disabled";
198 }; 198 };
199 199
200 ehci1: usb@01c1b000 { 200 ehci1: usb@1c1b000 {
201 compatible = "allwinner,sun8i-h3-ehci", "generic-ehci"; 201 compatible = "allwinner,sun8i-h3-ehci", "generic-ehci";
202 reg = <0x01c1b000 0x100>; 202 reg = <0x01c1b000 0x100>;
203 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 203 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
@@ -208,7 +208,7 @@
208 status = "disabled"; 208 status = "disabled";
209 }; 209 };
210 210
211 ohci1: usb@01c1b400 { 211 ohci1: usb@1c1b400 {
212 compatible = "allwinner,sun8i-h3-ohci", "generic-ohci"; 212 compatible = "allwinner,sun8i-h3-ohci", "generic-ohci";
213 reg = <0x01c1b400 0x100>; 213 reg = <0x01c1b400 0x100>;
214 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 214 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
@@ -220,7 +220,7 @@
220 status = "disabled"; 220 status = "disabled";
221 }; 221 };
222 222
223 ehci2: usb@01c1c000 { 223 ehci2: usb@1c1c000 {
224 compatible = "allwinner,sun8i-h3-ehci", "generic-ehci"; 224 compatible = "allwinner,sun8i-h3-ehci", "generic-ehci";
225 reg = <0x01c1c000 0x100>; 225 reg = <0x01c1c000 0x100>;
226 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 226 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
@@ -231,7 +231,7 @@
231 status = "disabled"; 231 status = "disabled";
232 }; 232 };
233 233
234 ohci2: usb@01c1c400 { 234 ohci2: usb@1c1c400 {
235 compatible = "allwinner,sun8i-h3-ohci", "generic-ohci"; 235 compatible = "allwinner,sun8i-h3-ohci", "generic-ohci";
236 reg = <0x01c1c400 0x100>; 236 reg = <0x01c1c400 0x100>;
237 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 237 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
@@ -243,7 +243,7 @@
243 status = "disabled"; 243 status = "disabled";
244 }; 244 };
245 245
246 ehci3: usb@01c1d000 { 246 ehci3: usb@1c1d000 {
247 compatible = "allwinner,sun8i-h3-ehci", "generic-ehci"; 247 compatible = "allwinner,sun8i-h3-ehci", "generic-ehci";
248 reg = <0x01c1d000 0x100>; 248 reg = <0x01c1d000 0x100>;
249 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 249 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
@@ -254,7 +254,7 @@
254 status = "disabled"; 254 status = "disabled";
255 }; 255 };
256 256
257 ohci3: usb@01c1d400 { 257 ohci3: usb@1c1d400 {
258 compatible = "allwinner,sun8i-h3-ohci", "generic-ohci"; 258 compatible = "allwinner,sun8i-h3-ohci", "generic-ohci";
259 reg = <0x01c1d400 0x100>; 259 reg = <0x01c1d400 0x100>;
260 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 260 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
@@ -266,7 +266,7 @@
266 status = "disabled"; 266 status = "disabled";
267 }; 267 };
268 268
269 ccu: clock@01c20000 { 269 ccu: clock@1c20000 {
270 /* compatible is in per SoC .dtsi file */ 270 /* compatible is in per SoC .dtsi file */
271 reg = <0x01c20000 0x400>; 271 reg = <0x01c20000 0x400>;
272 clocks = <&osc24M>, <&osc32k>; 272 clocks = <&osc24M>, <&osc32k>;
@@ -275,7 +275,7 @@
275 #reset-cells = <1>; 275 #reset-cells = <1>;
276 }; 276 };
277 277
278 pio: pinctrl@01c20800 { 278 pio: pinctrl@1c20800 {
279 /* compatible is in per SoC .dtsi file */ 279 /* compatible is in per SoC .dtsi file */
280 reg = <0x01c20800 0x400>; 280 reg = <0x01c20800 0x400>;
281 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 281 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
@@ -310,7 +310,7 @@
310 function = "i2c2"; 310 function = "i2c2";
311 }; 311 };
312 312
313 mmc0_pins_a: mmc0@0 { 313 mmc0_pins_a: mmc0 {
314 pins = "PF0", "PF1", "PF2", "PF3", 314 pins = "PF0", "PF1", "PF2", "PF3",
315 "PF4", "PF5"; 315 "PF4", "PF5";
316 function = "mmc0"; 316 function = "mmc0";
@@ -318,13 +318,13 @@
318 bias-pull-up; 318 bias-pull-up;
319 }; 319 };
320 320
321 mmc0_cd_pin: mmc0_cd_pin@0 { 321 mmc0_cd_pin: mmc0_cd_pin {
322 pins = "PF6"; 322 pins = "PF6";
323 function = "gpio_in"; 323 function = "gpio_in";
324 bias-pull-up; 324 bias-pull-up;
325 }; 325 };
326 326
327 mmc1_pins_a: mmc1@0 { 327 mmc1_pins_a: mmc1 {
328 pins = "PG0", "PG1", "PG2", "PG3", 328 pins = "PG0", "PG1", "PG2", "PG3",
329 "PG4", "PG5"; 329 "PG4", "PG5";
330 function = "mmc1"; 330 function = "mmc1";
@@ -342,7 +342,7 @@
342 bias-pull-up; 342 bias-pull-up;
343 }; 343 };
344 344
345 spdif_tx_pins_a: spdif@0 { 345 spdif_tx_pins_a: spdif {
346 pins = "PA17"; 346 pins = "PA17";
347 function = "spdif"; 347 function = "spdif";
348 }; 348 };
@@ -357,7 +357,7 @@
357 function = "spi1"; 357 function = "spi1";
358 }; 358 };
359 359
360 uart0_pins_a: uart0@0 { 360 uart0_pins_a: uart0 {
361 pins = "PA4", "PA5"; 361 pins = "PA4", "PA5";
362 function = "uart0"; 362 function = "uart0";
363 }; 363 };
@@ -381,9 +381,14 @@
381 pins = "PA13", "PA14"; 381 pins = "PA13", "PA14";
382 function = "uart3"; 382 function = "uart3";
383 }; 383 };
384
385 uart3_rts_cts_pins: uart3_rts_cts {
386 pins = "PA15", "PA16";
387 function = "uart3";
388 };
384 }; 389 };
385 390
386 timer@01c20c00 { 391 timer@1c20c00 {
387 compatible = "allwinner,sun4i-a10-timer"; 392 compatible = "allwinner,sun4i-a10-timer";
388 reg = <0x01c20c00 0xa0>; 393 reg = <0x01c20c00 0xa0>;
389 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 394 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
@@ -391,7 +396,56 @@
391 clocks = <&osc24M>; 396 clocks = <&osc24M>;
392 }; 397 };
393 398
394 spi0: spi@01c68000 { 399 emac: ethernet@1c30000 {
400 compatible = "allwinner,sun8i-h3-emac";
401 syscon = <&syscon>;
402 reg = <0x01c30000 0x10000>;
403 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
404 interrupt-names = "macirq";
405 resets = <&ccu RST_BUS_EMAC>;
406 reset-names = "stmmaceth";
407 clocks = <&ccu CLK_BUS_EMAC>;
408 clock-names = "stmmaceth";
409 #address-cells = <1>;
410 #size-cells = <0>;
411 status = "disabled";
412
413 mdio: mdio {
414 #address-cells = <1>;
415 #size-cells = <0>;
416 compatible = "snps,dwmac-mdio";
417 };
418
419 mdio-mux {
420 compatible = "allwinner,sun8i-h3-mdio-mux";
421 #address-cells = <1>;
422 #size-cells = <0>;
423
424 mdio-parent-bus = <&mdio>;
425 /* Only one MDIO is usable at the time */
426 internal_mdio: mdio@1 {
427 compatible = "allwinner,sun8i-h3-mdio-internal";
428 reg = <1>;
429 #address-cells = <1>;
430 #size-cells = <0>;
431
432 int_mii_phy: ethernet-phy@1 {
433 compatible = "ethernet-phy-ieee802.3-c22";
434 reg = <1>;
435 clocks = <&ccu CLK_BUS_EPHY>;
436 resets = <&ccu RST_BUS_EPHY>;
437 };
438 };
439
440 external_mdio: mdio@2 {
441 reg = <2>;
442 #address-cells = <1>;
443 #size-cells = <0>;
444 };
445 };
446 };
447
448 spi0: spi@1c68000 {
395 compatible = "allwinner,sun8i-h3-spi"; 449 compatible = "allwinner,sun8i-h3-spi";
396 reg = <0x01c68000 0x1000>; 450 reg = <0x01c68000 0x1000>;
397 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 451 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
@@ -407,7 +461,7 @@
407 #size-cells = <0>; 461 #size-cells = <0>;
408 }; 462 };
409 463
410 spi1: spi@01c69000 { 464 spi1: spi@1c69000 {
411 compatible = "allwinner,sun8i-h3-spi"; 465 compatible = "allwinner,sun8i-h3-spi";
412 reg = <0x01c69000 0x1000>; 466 reg = <0x01c69000 0x1000>;
413 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 467 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
@@ -423,13 +477,13 @@
423 #size-cells = <0>; 477 #size-cells = <0>;
424 }; 478 };
425 479
426 wdt0: watchdog@01c20ca0 { 480 wdt0: watchdog@1c20ca0 {
427 compatible = "allwinner,sun6i-a31-wdt"; 481 compatible = "allwinner,sun6i-a31-wdt";
428 reg = <0x01c20ca0 0x20>; 482 reg = <0x01c20ca0 0x20>;
429 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 483 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
430 }; 484 };
431 485
432 spdif: spdif@01c21000 { 486 spdif: spdif@1c21000 {
433 #sound-dai-cells = <0>; 487 #sound-dai-cells = <0>;
434 compatible = "allwinner,sun8i-h3-spdif"; 488 compatible = "allwinner,sun8i-h3-spdif";
435 reg = <0x01c21000 0x400>; 489 reg = <0x01c21000 0x400>;
@@ -442,7 +496,7 @@
442 status = "disabled"; 496 status = "disabled";
443 }; 497 };
444 498
445 pwm: pwm@01c21400 { 499 pwm: pwm@1c21400 {
446 compatible = "allwinner,sun8i-h3-pwm"; 500 compatible = "allwinner,sun8i-h3-pwm";
447 reg = <0x01c21400 0x8>; 501 reg = <0x01c21400 0x8>;
448 clocks = <&osc24M>; 502 clocks = <&osc24M>;
@@ -450,7 +504,33 @@
450 status = "disabled"; 504 status = "disabled";
451 }; 505 };
452 506
453 codec: codec@01c22c00 { 507 i2s0: i2s@1c22000 {
508 #sound-dai-cells = <0>;
509 compatible = "allwinner,sun8i-h3-i2s";
510 reg = <0x01c22000 0x400>;
511 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
512 clocks = <&ccu CLK_BUS_I2S0>, <&ccu CLK_I2S0>;
513 clock-names = "apb", "mod";
514 dmas = <&dma 3>, <&dma 3>;
515 resets = <&ccu RST_BUS_I2S0>;
516 dma-names = "rx", "tx";
517 status = "disabled";
518 };
519
520 i2s1: i2s@1c22400 {
521 #sound-dai-cells = <0>;
522 compatible = "allwinner,sun8i-h3-i2s";
523 reg = <0x01c22400 0x400>;
524 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
525 clocks = <&ccu CLK_BUS_I2S1>, <&ccu CLK_I2S1>;
526 clock-names = "apb", "mod";
527 dmas = <&dma 4>, <&dma 4>;
528 resets = <&ccu RST_BUS_I2S1>;
529 dma-names = "rx", "tx";
530 status = "disabled";
531 };
532
533 codec: codec@1c22c00 {
454 #sound-dai-cells = <0>; 534 #sound-dai-cells = <0>;
455 compatible = "allwinner,sun8i-h3-codec"; 535 compatible = "allwinner,sun8i-h3-codec";
456 reg = <0x01c22c00 0x400>; 536 reg = <0x01c22c00 0x400>;
@@ -464,7 +544,7 @@
464 status = "disabled"; 544 status = "disabled";
465 }; 545 };
466 546
467 uart0: serial@01c28000 { 547 uart0: serial@1c28000 {
468 compatible = "snps,dw-apb-uart"; 548 compatible = "snps,dw-apb-uart";
469 reg = <0x01c28000 0x400>; 549 reg = <0x01c28000 0x400>;
470 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 550 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
@@ -477,7 +557,7 @@
477 status = "disabled"; 557 status = "disabled";
478 }; 558 };
479 559
480 uart1: serial@01c28400 { 560 uart1: serial@1c28400 {
481 compatible = "snps,dw-apb-uart"; 561 compatible = "snps,dw-apb-uart";
482 reg = <0x01c28400 0x400>; 562 reg = <0x01c28400 0x400>;
483 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 563 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
@@ -490,7 +570,7 @@
490 status = "disabled"; 570 status = "disabled";
491 }; 571 };
492 572
493 uart2: serial@01c28800 { 573 uart2: serial@1c28800 {
494 compatible = "snps,dw-apb-uart"; 574 compatible = "snps,dw-apb-uart";
495 reg = <0x01c28800 0x400>; 575 reg = <0x01c28800 0x400>;
496 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 576 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
@@ -503,7 +583,7 @@
503 status = "disabled"; 583 status = "disabled";
504 }; 584 };
505 585
506 uart3: serial@01c28c00 { 586 uart3: serial@1c28c00 {
507 compatible = "snps,dw-apb-uart"; 587 compatible = "snps,dw-apb-uart";
508 reg = <0x01c28c00 0x400>; 588 reg = <0x01c28c00 0x400>;
509 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 589 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
@@ -516,7 +596,7 @@
516 status = "disabled"; 596 status = "disabled";
517 }; 597 };
518 598
519 i2c0: i2c@01c2ac00 { 599 i2c0: i2c@1c2ac00 {
520 compatible = "allwinner,sun6i-a31-i2c"; 600 compatible = "allwinner,sun6i-a31-i2c";
521 reg = <0x01c2ac00 0x400>; 601 reg = <0x01c2ac00 0x400>;
522 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 602 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
@@ -529,7 +609,7 @@
529 #size-cells = <0>; 609 #size-cells = <0>;
530 }; 610 };
531 611
532 i2c1: i2c@01c2b000 { 612 i2c1: i2c@1c2b000 {
533 compatible = "allwinner,sun6i-a31-i2c"; 613 compatible = "allwinner,sun6i-a31-i2c";
534 reg = <0x01c2b000 0x400>; 614 reg = <0x01c2b000 0x400>;
535 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 615 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
@@ -542,9 +622,9 @@
542 #size-cells = <0>; 622 #size-cells = <0>;
543 }; 623 };
544 624
545 i2c2: i2c@01c2b400 { 625 i2c2: i2c@1c2b400 {
546 compatible = "allwinner,sun6i-a31-i2c"; 626 compatible = "allwinner,sun6i-a31-i2c";
547 reg = <0x01c2b000 0x400>; 627 reg = <0x01c2b400 0x400>;
548 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 628 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
549 clocks = <&ccu CLK_BUS_I2C2>; 629 clocks = <&ccu CLK_BUS_I2C2>;
550 resets = <&ccu RST_BUS_I2C2>; 630 resets = <&ccu RST_BUS_I2C2>;
@@ -555,7 +635,7 @@
555 #size-cells = <0>; 635 #size-cells = <0>;
556 }; 636 };
557 637
558 gic: interrupt-controller@01c81000 { 638 gic: interrupt-controller@1c81000 {
559 compatible = "arm,gic-400"; 639 compatible = "arm,gic-400";
560 reg = <0x01c81000 0x1000>, 640 reg = <0x01c81000 0x1000>,
561 <0x01c82000 0x2000>, 641 <0x01c82000 0x2000>,
@@ -566,7 +646,7 @@
566 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 646 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
567 }; 647 };
568 648
569 rtc: rtc@01f00000 { 649 rtc: rtc@1f00000 {
570 compatible = "allwinner,sun6i-a31-rtc"; 650 compatible = "allwinner,sun6i-a31-rtc";
571 reg = <0x01f00000 0x54>; 651 reg = <0x01f00000 0x54>;
572 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 652 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
@@ -583,12 +663,12 @@
583 #reset-cells = <1>; 663 #reset-cells = <1>;
584 }; 664 };
585 665
586 codec_analog: codec-analog@01f015c0 { 666 codec_analog: codec-analog@1f015c0 {
587 compatible = "allwinner,sun8i-h3-codec-analog"; 667 compatible = "allwinner,sun8i-h3-codec-analog";
588 reg = <0x01f015c0 0x4>; 668 reg = <0x01f015c0 0x4>;
589 }; 669 };
590 670
591 ir: ir@01f02000 { 671 ir: ir@1f02000 {
592 compatible = "allwinner,sun5i-a13-ir"; 672 compatible = "allwinner,sun5i-a13-ir";
593 clocks = <&r_ccu CLK_APB0_IR>, <&r_ccu CLK_IR>; 673 clocks = <&r_ccu CLK_APB0_IR>, <&r_ccu CLK_IR>;
594 clock-names = "apb", "ir"; 674 clock-names = "apb", "ir";
@@ -598,7 +678,7 @@
598 status = "disabled"; 678 status = "disabled";
599 }; 679 };
600 680
601 r_pio: pinctrl@01f02c00 { 681 r_pio: pinctrl@1f02c00 {
602 compatible = "allwinner,sun8i-h3-r-pinctrl"; 682 compatible = "allwinner,sun8i-h3-r-pinctrl";
603 reg = <0x01f02c00 0x400>; 683 reg = <0x01f02c00 0x400>;
604 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 684 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
@@ -609,7 +689,7 @@
609 interrupt-controller; 689 interrupt-controller;
610 #interrupt-cells = <3>; 690 #interrupt-cells = <3>;
611 691
612 ir_pins_a: ir@0 { 692 ir_pins_a: ir {
613 pins = "PL11"; 693 pins = "PL11";
614 function = "s_cir_rx"; 694 function = "s_cir_rx";
615 }; 695 };
diff --git a/arch/arm/boot/dts/sunxi-itead-core-common.dtsi b/arch/arm/boot/dts/sunxi-itead-core-common.dtsi
index 2565d5137a17..ddf4e722ea93 100644
--- a/arch/arm/boot/dts/sunxi-itead-core-common.dtsi
+++ b/arch/arm/boot/dts/sunxi-itead-core-common.dtsi
@@ -65,8 +65,6 @@
65}; 65};
66 66
67&i2c0 { 67&i2c0 {
68 pinctrl-names = "default";
69 pinctrl-0 = <&i2c0_pins_a>;
70 status = "okay"; 68 status = "okay";
71 69
72 axp209: pmic@34 { 70 axp209: pmic@34 {
@@ -75,8 +73,6 @@
75}; 73};
76 74
77&i2c1 { 75&i2c1 {
78 pinctrl-names = "default";
79 pinctrl-0 = <&i2c1_pins_a>;
80 status = "okay"; 76 status = "okay";
81}; 77};
82 78
diff --git a/arch/arm/boot/dts/tango4-common.dtsi b/arch/arm/boot/dts/tango4-common.dtsi
index 12ab6e0c0331..0ec1b0a317b4 100644
--- a/arch/arm/boot/dts/tango4-common.dtsi
+++ b/arch/arm/boot/dts/tango4-common.dtsi
@@ -160,7 +160,7 @@
160 #address-cells = <1>; 160 #address-cells = <1>;
161 #size-cells = <1>; 161 #size-cells = <1>;
162 162
163 irq0: irq0@000 { 163 irq0: irq0@0 {
164 reg = <0x000 0x100>; 164 reg = <0x000 0x100>;
165 interrupt-controller; 165 interrupt-controller;
166 #interrupt-cells = <2>; 166 #interrupt-cells = <2>;
diff --git a/arch/arm/boot/dts/tegra124-jetson-tk1.dts b/arch/arm/boot/dts/tegra124-jetson-tk1.dts
index e8e777b8ef1b..d112f85e66ed 100644
--- a/arch/arm/boot/dts/tegra124-jetson-tk1.dts
+++ b/arch/arm/boot/dts/tegra124-jetson-tk1.dts
@@ -68,6 +68,10 @@
68 }; 68 };
69 }; 69 };
70 70
71 cec@70015000 {
72 status = "okay";
73 };
74
71 gpu@0,57000000 { 75 gpu@0,57000000 {
72 /* 76 /*
73 * Node left disabled on purpose - the bootloader will enable 77 * Node left disabled on purpose - the bootloader will enable
diff --git a/arch/arm/boot/dts/tegra124.dtsi b/arch/arm/boot/dts/tegra124.dtsi
index a7e43dcbf744..174092bfac90 100644
--- a/arch/arm/boot/dts/tegra124.dtsi
+++ b/arch/arm/boot/dts/tegra124.dtsi
@@ -125,7 +125,7 @@
125 nvidia,head = <1>; 125 nvidia,head = <1>;
126 }; 126 };
127 127
128 hdmi@54280000 { 128 hdmi: hdmi@54280000 {
129 compatible = "nvidia,tegra124-hdmi"; 129 compatible = "nvidia,tegra124-hdmi";
130 reg = <0x0 0x54280000 0x0 0x00040000>; 130 reg = <0x0 0x54280000 0x0 0x00040000>;
131 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 131 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
@@ -853,6 +853,16 @@
853 status = "disabled"; 853 status = "disabled";
854 }; 854 };
855 855
856 cec@70015000 {
857 compatible = "nvidia,tegra124-cec";
858 reg = <0x0 0x70015000 0x0 0x00001000>;
859 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
860 clocks = <&tegra_car TEGRA124_CLK_CEC>;
861 clock-names = "cec";
862 status = "disabled";
863 hdmi-phandle = <&hdmi>;
864 };
865
856 soctherm: thermal-sensor@700e2000 { 866 soctherm: thermal-sensor@700e2000 {
857 compatible = "nvidia,tegra124-soctherm"; 867 compatible = "nvidia,tegra124-soctherm";
858 reg = <0x0 0x700e2000 0x0 0x600 /* SOC_THERM reg_base */ 868 reg = <0x0 0x700e2000 0x0 0x600 /* SOC_THERM reg_base */
diff --git a/arch/arm/boot/dts/uniphier-ld4-ref.dts b/arch/arm/boot/dts/uniphier-ld4-ref.dts
index b3aaab354f3e..0056852c4fb0 100644
--- a/arch/arm/boot/dts/uniphier-ld4-ref.dts
+++ b/arch/arm/boot/dts/uniphier-ld4-ref.dts
@@ -38,7 +38,7 @@
38}; 38};
39 39
40&ethsc { 40&ethsc {
41 interrupts = <0 49 4>; 41 interrupts = <1 8>;
42}; 42};
43 43
44&serial0 { 44&serial0 {
@@ -53,6 +53,14 @@
53 status = "okay"; 53 status = "okay";
54}; 54};
55 55
56&gpio {
57 xirq1 {
58 gpio-hog;
59 gpios = <121 0>;
60 input;
61 };
62};
63
56&i2c0 { 64&i2c0 {
57 status = "okay"; 65 status = "okay";
58}; 66};
diff --git a/arch/arm/boot/dts/uniphier-ld4.dtsi b/arch/arm/boot/dts/uniphier-ld4.dtsi
index 93586faf950f..01fc3e16e2bd 100644
--- a/arch/arm/boot/dts/uniphier-ld4.dtsi
+++ b/arch/arm/boot/dts/uniphier-ld4.dtsi
@@ -37,7 +37,7 @@
37 clock-frequency = <24576000>; 37 clock-frequency = <24576000>;
38 }; 38 };
39 39
40 arm_timer_clk: arm_timer_clk { 40 arm_timer_clk: arm-timer {
41 #clock-cells = <0>; 41 #clock-cells = <0>;
42 compatible = "fixed-clock"; 42 compatible = "fixed-clock";
43 clock-frequency = <50000000>; 43 clock-frequency = <50000000>;
@@ -71,6 +71,7 @@
71 pinctrl-names = "default"; 71 pinctrl-names = "default";
72 pinctrl-0 = <&pinctrl_uart0>; 72 pinctrl-0 = <&pinctrl_uart0>;
73 clocks = <&peri_clk 0>; 73 clocks = <&peri_clk 0>;
74 resets = <&peri_rst 0>;
74 }; 75 };
75 76
76 serial1: serial@54006900 { 77 serial1: serial@54006900 {
@@ -81,6 +82,7 @@
81 pinctrl-names = "default"; 82 pinctrl-names = "default";
82 pinctrl-0 = <&pinctrl_uart1>; 83 pinctrl-0 = <&pinctrl_uart1>;
83 clocks = <&peri_clk 1>; 84 clocks = <&peri_clk 1>;
85 resets = <&peri_rst 1>;
84 }; 86 };
85 87
86 serial2: serial@54006a00 { 88 serial2: serial@54006a00 {
@@ -91,6 +93,7 @@
91 pinctrl-names = "default"; 93 pinctrl-names = "default";
92 pinctrl-0 = <&pinctrl_uart2>; 94 pinctrl-0 = <&pinctrl_uart2>;
93 clocks = <&peri_clk 2>; 95 clocks = <&peri_clk 2>;
96 resets = <&peri_rst 2>;
94 }; 97 };
95 98
96 serial3: serial@54006b00 { 99 serial3: serial@54006b00 {
@@ -101,6 +104,21 @@
101 pinctrl-names = "default"; 104 pinctrl-names = "default";
102 pinctrl-0 = <&pinctrl_uart3>; 105 pinctrl-0 = <&pinctrl_uart3>;
103 clocks = <&peri_clk 3>; 106 clocks = <&peri_clk 3>;
107 resets = <&peri_rst 3>;
108 };
109
110 gpio: gpio@55000000 {
111 compatible = "socionext,uniphier-gpio";
112 reg = <0x55000000 0x200>;
113 interrupt-parent = <&aidet>;
114 interrupt-controller;
115 #interrupt-cells = <2>;
116 gpio-controller;
117 #gpio-cells = <2>;
118 gpio-ranges = <&pinctrl 0 0 0>;
119 gpio-ranges-group-names = "gpio_range";
120 ngpios = <136>;
121 socionext,interrupt-ranges = <0 48 13>, <14 62 2>;
104 }; 122 };
105 123
106 i2c0: i2c@58400000 { 124 i2c0: i2c@58400000 {
@@ -113,6 +131,7 @@
113 pinctrl-names = "default"; 131 pinctrl-names = "default";
114 pinctrl-0 = <&pinctrl_i2c0>; 132 pinctrl-0 = <&pinctrl_i2c0>;
115 clocks = <&peri_clk 4>; 133 clocks = <&peri_clk 4>;
134 resets = <&peri_rst 4>;
116 clock-frequency = <100000>; 135 clock-frequency = <100000>;
117 }; 136 };
118 137
@@ -126,6 +145,7 @@
126 pinctrl-names = "default"; 145 pinctrl-names = "default";
127 pinctrl-0 = <&pinctrl_i2c1>; 146 pinctrl-0 = <&pinctrl_i2c1>;
128 clocks = <&peri_clk 5>; 147 clocks = <&peri_clk 5>;
148 resets = <&peri_rst 5>;
129 clock-frequency = <100000>; 149 clock-frequency = <100000>;
130 }; 150 };
131 151
@@ -139,6 +159,7 @@
139 pinctrl-names = "default"; 159 pinctrl-names = "default";
140 pinctrl-0 = <&pinctrl_i2c2>; 160 pinctrl-0 = <&pinctrl_i2c2>;
141 clocks = <&peri_clk 6>; 161 clocks = <&peri_clk 6>;
162 resets = <&peri_rst 6>;
142 clock-frequency = <400000>; 163 clock-frequency = <400000>;
143 }; 164 };
144 165
@@ -152,6 +173,7 @@
152 pinctrl-names = "default"; 173 pinctrl-names = "default";
153 pinctrl-0 = <&pinctrl_i2c3>; 174 pinctrl-0 = <&pinctrl_i2c3>;
154 clocks = <&peri_clk 7>; 175 clocks = <&peri_clk 7>;
176 resets = <&peri_rst 7>;
155 clock-frequency = <100000>; 177 clock-frequency = <100000>;
156 }; 178 };
157 179
@@ -305,6 +327,7 @@
305 pinctrl-names = "default"; 327 pinctrl-names = "default";
306 pinctrl-0 = <&pinctrl_nand2cs>; 328 pinctrl-0 = <&pinctrl_nand2cs>;
307 clocks = <&sys_clk 2>; 329 clocks = <&sys_clk 2>;
330 resets = <&sys_rst 2>;
308 }; 331 };
309 }; 332 };
310}; 333};
diff --git a/arch/arm/boot/dts/uniphier-ld6b-ref.dts b/arch/arm/boot/dts/uniphier-ld6b-ref.dts
index 2188d114d79b..0e510a725976 100644
--- a/arch/arm/boot/dts/uniphier-ld6b-ref.dts
+++ b/arch/arm/boot/dts/uniphier-ld6b-ref.dts
@@ -40,7 +40,7 @@
40}; 40};
41 41
42&ethsc { 42&ethsc {
43 interrupts = <0 52 4>; 43 interrupts = <4 8>;
44}; 44};
45 45
46&serial0 { 46&serial0 {
@@ -55,6 +55,14 @@
55 status = "okay"; 55 status = "okay";
56}; 56};
57 57
58&gpio {
59 xirq4 {
60 gpio-hog;
61 gpios = <124 0>;
62 input;
63 };
64};
65
58&i2c0 { 66&i2c0 {
59 status = "okay"; 67 status = "okay";
60}; 68};
diff --git a/arch/arm/boot/dts/uniphier-pinctrl.dtsi b/arch/arm/boot/dts/uniphier-pinctrl.dtsi
index be82cddc4072..de481c372467 100644
--- a/arch/arm/boot/dts/uniphier-pinctrl.dtsi
+++ b/arch/arm/boot/dts/uniphier-pinctrl.dtsi
@@ -8,117 +8,117 @@
8 */ 8 */
9 9
10&pinctrl { 10&pinctrl {
11 pinctrl_aout: aout_grp { 11 pinctrl_aout: aout {
12 groups = "aout"; 12 groups = "aout";
13 function = "aout"; 13 function = "aout";
14 }; 14 };
15 15
16 pinctrl_emmc: emmc_grp { 16 pinctrl_emmc: emmc {
17 groups = "emmc", "emmc_dat8"; 17 groups = "emmc", "emmc_dat8";
18 function = "emmc"; 18 function = "emmc";
19 }; 19 };
20 20
21 pinctrl_ether_mii: ether_mii_grp { 21 pinctrl_ether_mii: ether-mii {
22 groups = "ether_mii"; 22 groups = "ether_mii";
23 function = "ether_mii"; 23 function = "ether_mii";
24 }; 24 };
25 25
26 pinctrl_ether_rgmii: ether_rgmii_grp { 26 pinctrl_ether_rgmii: ether-rgmii {
27 groups = "ether_rgmii"; 27 groups = "ether_rgmii";
28 function = "ether_rgmii"; 28 function = "ether_rgmii";
29 }; 29 };
30 30
31 pinctrl_ether_rmii: ether_rmii_grp { 31 pinctrl_ether_rmii: ether-rmii {
32 groups = "ether_rmii"; 32 groups = "ether_rmii";
33 function = "ether_rmii"; 33 function = "ether_rmii";
34 }; 34 };
35 35
36 pinctrl_i2c0: i2c0_grp { 36 pinctrl_i2c0: i2c0 {
37 groups = "i2c0"; 37 groups = "i2c0";
38 function = "i2c0"; 38 function = "i2c0";
39 }; 39 };
40 40
41 pinctrl_i2c1: i2c1_grp { 41 pinctrl_i2c1: i2c1 {
42 groups = "i2c1"; 42 groups = "i2c1";
43 function = "i2c1"; 43 function = "i2c1";
44 }; 44 };
45 45
46 pinctrl_i2c2: i2c2_grp { 46 pinctrl_i2c2: i2c2 {
47 groups = "i2c2"; 47 groups = "i2c2";
48 function = "i2c2"; 48 function = "i2c2";
49 }; 49 };
50 50
51 pinctrl_i2c3: i2c3_grp { 51 pinctrl_i2c3: i2c3 {
52 groups = "i2c3"; 52 groups = "i2c3";
53 function = "i2c3"; 53 function = "i2c3";
54 }; 54 };
55 55
56 pinctrl_i2c4: i2c4_grp { 56 pinctrl_i2c4: i2c4 {
57 groups = "i2c4"; 57 groups = "i2c4";
58 function = "i2c4"; 58 function = "i2c4";
59 }; 59 };
60 60
61 pinctrl_nand: nand_grp { 61 pinctrl_nand: nand {
62 groups = "nand"; 62 groups = "nand";
63 function = "nand"; 63 function = "nand";
64 }; 64 };
65 65
66 pinctrl_nand2cs: nand2cs_grp { 66 pinctrl_nand2cs: nand2cs {
67 groups = "nand", "nand_cs1"; 67 groups = "nand", "nand_cs1";
68 function = "nand"; 68 function = "nand";
69 }; 69 };
70 70
71 pinctrl_sd: sd_grp { 71 pinctrl_sd: sd {
72 groups = "sd"; 72 groups = "sd";
73 function = "sd"; 73 function = "sd";
74 }; 74 };
75 75
76 pinctrl_sd1: sd1_grp { 76 pinctrl_sd1: sd1 {
77 groups = "sd1"; 77 groups = "sd1";
78 function = "sd1"; 78 function = "sd1";
79 }; 79 };
80 80
81 pinctrl_system_bus: system_bus_grp { 81 pinctrl_system_bus: system-bus {
82 groups = "system_bus", "system_bus_cs1"; 82 groups = "system_bus", "system_bus_cs1";
83 function = "system_bus"; 83 function = "system_bus";
84 }; 84 };
85 85
86 pinctrl_uart0: uart0_grp { 86 pinctrl_uart0: uart0 {
87 groups = "uart0"; 87 groups = "uart0";
88 function = "uart0"; 88 function = "uart0";
89 }; 89 };
90 90
91 pinctrl_uart1: uart1_grp { 91 pinctrl_uart1: uart1 {
92 groups = "uart1"; 92 groups = "uart1";
93 function = "uart1"; 93 function = "uart1";
94 }; 94 };
95 95
96 pinctrl_uart2: uart2_grp { 96 pinctrl_uart2: uart2 {
97 groups = "uart2"; 97 groups = "uart2";
98 function = "uart2"; 98 function = "uart2";
99 }; 99 };
100 100
101 pinctrl_uart3: uart3_grp { 101 pinctrl_uart3: uart3 {
102 groups = "uart3"; 102 groups = "uart3";
103 function = "uart3"; 103 function = "uart3";
104 }; 104 };
105 105
106 pinctrl_usb0: usb0_grp { 106 pinctrl_usb0: usb0 {
107 groups = "usb0"; 107 groups = "usb0";
108 function = "usb0"; 108 function = "usb0";
109 }; 109 };
110 110
111 pinctrl_usb1: usb1_grp { 111 pinctrl_usb1: usb1 {
112 groups = "usb1"; 112 groups = "usb1";
113 function = "usb1"; 113 function = "usb1";
114 }; 114 };
115 115
116 pinctrl_usb2: usb2_grp { 116 pinctrl_usb2: usb2 {
117 groups = "usb2"; 117 groups = "usb2";
118 function = "usb2"; 118 function = "usb2";
119 }; 119 };
120 120
121 pinctrl_usb3: usb3_grp { 121 pinctrl_usb3: usb3 {
122 groups = "usb3"; 122 groups = "usb3";
123 function = "usb3"; 123 function = "usb3";
124 }; 124 };
diff --git a/arch/arm/boot/dts/uniphier-pro4-ref.dts b/arch/arm/boot/dts/uniphier-pro4-ref.dts
index 903df6348e77..be99467ac6bb 100644
--- a/arch/arm/boot/dts/uniphier-pro4-ref.dts
+++ b/arch/arm/boot/dts/uniphier-pro4-ref.dts
@@ -40,7 +40,7 @@
40}; 40};
41 41
42&ethsc { 42&ethsc {
43 interrupts = <0 50 4>; 43 interrupts = <2 8>;
44}; 44};
45 45
46&serial0 { 46&serial0 {
@@ -55,6 +55,14 @@
55 status = "okay"; 55 status = "okay";
56}; 56};
57 57
58&gpio {
59 xirq2 {
60 gpio-hog;
61 gpios = <122 0>;
62 input;
63 };
64};
65
58&i2c0 { 66&i2c0 {
59 status = "okay"; 67 status = "okay";
60}; 68};
diff --git a/arch/arm/boot/dts/uniphier-pro4.dtsi b/arch/arm/boot/dts/uniphier-pro4.dtsi
index 2a9bd7f9f5db..7955c3a49e65 100644
--- a/arch/arm/boot/dts/uniphier-pro4.dtsi
+++ b/arch/arm/boot/dts/uniphier-pro4.dtsi
@@ -45,7 +45,7 @@
45 clock-frequency = <25000000>; 45 clock-frequency = <25000000>;
46 }; 46 };
47 47
48 arm_timer_clk: arm_timer_clk { 48 arm_timer_clk: arm-timer {
49 #clock-cells = <0>; 49 #clock-cells = <0>;
50 compatible = "fixed-clock"; 50 compatible = "fixed-clock";
51 clock-frequency = <50000000>; 51 clock-frequency = <50000000>;
@@ -79,6 +79,7 @@
79 pinctrl-names = "default"; 79 pinctrl-names = "default";
80 pinctrl-0 = <&pinctrl_uart0>; 80 pinctrl-0 = <&pinctrl_uart0>;
81 clocks = <&peri_clk 0>; 81 clocks = <&peri_clk 0>;
82 resets = <&peri_rst 0>;
82 }; 83 };
83 84
84 serial1: serial@54006900 { 85 serial1: serial@54006900 {
@@ -89,6 +90,7 @@
89 pinctrl-names = "default"; 90 pinctrl-names = "default";
90 pinctrl-0 = <&pinctrl_uart1>; 91 pinctrl-0 = <&pinctrl_uart1>;
91 clocks = <&peri_clk 1>; 92 clocks = <&peri_clk 1>;
93 resets = <&peri_rst 1>;
92 }; 94 };
93 95
94 serial2: serial@54006a00 { 96 serial2: serial@54006a00 {
@@ -99,6 +101,7 @@
99 pinctrl-names = "default"; 101 pinctrl-names = "default";
100 pinctrl-0 = <&pinctrl_uart2>; 102 pinctrl-0 = <&pinctrl_uart2>;
101 clocks = <&peri_clk 2>; 103 clocks = <&peri_clk 2>;
104 resets = <&peri_rst 2>;
102 }; 105 };
103 106
104 serial3: serial@54006b00 { 107 serial3: serial@54006b00 {
@@ -109,6 +112,21 @@
109 pinctrl-names = "default"; 112 pinctrl-names = "default";
110 pinctrl-0 = <&pinctrl_uart3>; 113 pinctrl-0 = <&pinctrl_uart3>;
111 clocks = <&peri_clk 3>; 114 clocks = <&peri_clk 3>;
115 resets = <&peri_rst 3>;
116 };
117
118 gpio: gpio@55000000 {
119 compatible = "socionext,uniphier-gpio";
120 reg = <0x55000000 0x200>;
121 interrupt-parent = <&aidet>;
122 interrupt-controller;
123 #interrupt-cells = <2>;
124 gpio-controller;
125 #gpio-cells = <2>;
126 gpio-ranges = <&pinctrl 0 0 0>;
127 gpio-ranges-group-names = "gpio_range";
128 ngpios = <248>;
129 socionext,interrupt-ranges = <0 48 16>, <16 154 5>;
112 }; 130 };
113 131
114 i2c0: i2c@58780000 { 132 i2c0: i2c@58780000 {
@@ -121,6 +139,7 @@
121 pinctrl-names = "default"; 139 pinctrl-names = "default";
122 pinctrl-0 = <&pinctrl_i2c0>; 140 pinctrl-0 = <&pinctrl_i2c0>;
123 clocks = <&peri_clk 4>; 141 clocks = <&peri_clk 4>;
142 resets = <&peri_rst 4>;
124 clock-frequency = <100000>; 143 clock-frequency = <100000>;
125 }; 144 };
126 145
@@ -134,6 +153,7 @@
134 pinctrl-names = "default"; 153 pinctrl-names = "default";
135 pinctrl-0 = <&pinctrl_i2c1>; 154 pinctrl-0 = <&pinctrl_i2c1>;
136 clocks = <&peri_clk 5>; 155 clocks = <&peri_clk 5>;
156 resets = <&peri_rst 5>;
137 clock-frequency = <100000>; 157 clock-frequency = <100000>;
138 }; 158 };
139 159
@@ -147,6 +167,7 @@
147 pinctrl-names = "default"; 167 pinctrl-names = "default";
148 pinctrl-0 = <&pinctrl_i2c2>; 168 pinctrl-0 = <&pinctrl_i2c2>;
149 clocks = <&peri_clk 6>; 169 clocks = <&peri_clk 6>;
170 resets = <&peri_rst 6>;
150 clock-frequency = <100000>; 171 clock-frequency = <100000>;
151 }; 172 };
152 173
@@ -160,6 +181,7 @@
160 pinctrl-names = "default"; 181 pinctrl-names = "default";
161 pinctrl-0 = <&pinctrl_i2c3>; 182 pinctrl-0 = <&pinctrl_i2c3>;
162 clocks = <&peri_clk 7>; 183 clocks = <&peri_clk 7>;
184 resets = <&peri_rst 7>;
163 clock-frequency = <100000>; 185 clock-frequency = <100000>;
164 }; 186 };
165 187
@@ -173,6 +195,7 @@
173 #size-cells = <0>; 195 #size-cells = <0>;
174 interrupts = <0 25 4>; 196 interrupts = <0 25 4>;
175 clocks = <&peri_clk 9>; 197 clocks = <&peri_clk 9>;
198 resets = <&peri_rst 9>;
176 clock-frequency = <400000>; 199 clock-frequency = <400000>;
177 }; 200 };
178 201
@@ -184,6 +207,7 @@
184 #size-cells = <0>; 207 #size-cells = <0>;
185 interrupts = <0 26 4>; 208 interrupts = <0 26 4>;
186 clocks = <&peri_clk 10>; 209 clocks = <&peri_clk 10>;
210 resets = <&peri_rst 10>;
187 clock-frequency = <400000>; 211 clock-frequency = <400000>;
188 }; 212 };
189 213
@@ -324,6 +348,7 @@
324 pinctrl-names = "default"; 348 pinctrl-names = "default";
325 pinctrl-0 = <&pinctrl_nand>; 349 pinctrl-0 = <&pinctrl_nand>;
326 clocks = <&sys_clk 2>; 350 clocks = <&sys_clk 2>;
351 resets = <&sys_rst 2>;
327 }; 352 };
328 }; 353 };
329}; 354};
diff --git a/arch/arm/boot/dts/uniphier-pro5.dtsi b/arch/arm/boot/dts/uniphier-pro5.dtsi
index b026bcd42a06..6589b8a2c65c 100644
--- a/arch/arm/boot/dts/uniphier-pro5.dtsi
+++ b/arch/arm/boot/dts/uniphier-pro5.dtsi
@@ -37,7 +37,7 @@
37 }; 37 };
38 }; 38 };
39 39
40 cpu_opp: opp_table { 40 cpu_opp: opp-table {
41 compatible = "operating-points-v2"; 41 compatible = "operating-points-v2";
42 opp-shared; 42 opp-shared;
43 43
@@ -119,7 +119,7 @@
119 clock-frequency = <20000000>; 119 clock-frequency = <20000000>;
120 }; 120 };
121 121
122 arm_timer_clk: arm_timer_clk { 122 arm_timer_clk: arm-timer {
123 #clock-cells = <0>; 123 #clock-cells = <0>;
124 compatible = "fixed-clock"; 124 compatible = "fixed-clock";
125 clock-frequency = <50000000>; 125 clock-frequency = <50000000>;
@@ -166,6 +166,7 @@
166 pinctrl-names = "default"; 166 pinctrl-names = "default";
167 pinctrl-0 = <&pinctrl_uart0>; 167 pinctrl-0 = <&pinctrl_uart0>;
168 clocks = <&peri_clk 0>; 168 clocks = <&peri_clk 0>;
169 resets = <&peri_rst 0>;
169 }; 170 };
170 171
171 serial1: serial@54006900 { 172 serial1: serial@54006900 {
@@ -176,6 +177,7 @@
176 pinctrl-names = "default"; 177 pinctrl-names = "default";
177 pinctrl-0 = <&pinctrl_uart1>; 178 pinctrl-0 = <&pinctrl_uart1>;
178 clocks = <&peri_clk 1>; 179 clocks = <&peri_clk 1>;
180 resets = <&peri_rst 1>;
179 }; 181 };
180 182
181 serial2: serial@54006a00 { 183 serial2: serial@54006a00 {
@@ -186,6 +188,7 @@
186 pinctrl-names = "default"; 188 pinctrl-names = "default";
187 pinctrl-0 = <&pinctrl_uart2>; 189 pinctrl-0 = <&pinctrl_uart2>;
188 clocks = <&peri_clk 2>; 190 clocks = <&peri_clk 2>;
191 resets = <&peri_rst 2>;
189 }; 192 };
190 193
191 serial3: serial@54006b00 { 194 serial3: serial@54006b00 {
@@ -196,6 +199,21 @@
196 pinctrl-names = "default"; 199 pinctrl-names = "default";
197 pinctrl-0 = <&pinctrl_uart3>; 200 pinctrl-0 = <&pinctrl_uart3>;
198 clocks = <&peri_clk 3>; 201 clocks = <&peri_clk 3>;
202 resets = <&peri_rst 3>;
203 };
204
205 gpio: gpio@55000000 {
206 compatible = "socionext,uniphier-gpio";
207 reg = <0x55000000 0x200>;
208 interrupt-parent = <&aidet>;
209 interrupt-controller;
210 #interrupt-cells = <2>;
211 gpio-controller;
212 #gpio-cells = <2>;
213 gpio-ranges = <&pinctrl 0 0 0>;
214 gpio-ranges-group-names = "gpio_range";
215 ngpios = <248>;
216 socionext,interrupt-ranges = <0 48 16>, <16 154 5>;
199 }; 217 };
200 218
201 i2c0: i2c@58780000 { 219 i2c0: i2c@58780000 {
@@ -208,6 +226,7 @@
208 pinctrl-names = "default"; 226 pinctrl-names = "default";
209 pinctrl-0 = <&pinctrl_i2c0>; 227 pinctrl-0 = <&pinctrl_i2c0>;
210 clocks = <&peri_clk 4>; 228 clocks = <&peri_clk 4>;
229 resets = <&peri_rst 4>;
211 clock-frequency = <100000>; 230 clock-frequency = <100000>;
212 }; 231 };
213 232
@@ -221,6 +240,7 @@
221 pinctrl-names = "default"; 240 pinctrl-names = "default";
222 pinctrl-0 = <&pinctrl_i2c1>; 241 pinctrl-0 = <&pinctrl_i2c1>;
223 clocks = <&peri_clk 5>; 242 clocks = <&peri_clk 5>;
243 resets = <&peri_rst 5>;
224 clock-frequency = <100000>; 244 clock-frequency = <100000>;
225 }; 245 };
226 246
@@ -234,6 +254,7 @@
234 pinctrl-names = "default"; 254 pinctrl-names = "default";
235 pinctrl-0 = <&pinctrl_i2c2>; 255 pinctrl-0 = <&pinctrl_i2c2>;
236 clocks = <&peri_clk 6>; 256 clocks = <&peri_clk 6>;
257 resets = <&peri_rst 6>;
237 clock-frequency = <100000>; 258 clock-frequency = <100000>;
238 }; 259 };
239 260
@@ -247,6 +268,7 @@
247 pinctrl-names = "default"; 268 pinctrl-names = "default";
248 pinctrl-0 = <&pinctrl_i2c3>; 269 pinctrl-0 = <&pinctrl_i2c3>;
249 clocks = <&peri_clk 7>; 270 clocks = <&peri_clk 7>;
271 resets = <&peri_rst 7>;
250 clock-frequency = <100000>; 272 clock-frequency = <100000>;
251 }; 273 };
252 274
@@ -260,6 +282,7 @@
260 #size-cells = <0>; 282 #size-cells = <0>;
261 interrupts = <0 25 4>; 283 interrupts = <0 25 4>;
262 clocks = <&peri_clk 9>; 284 clocks = <&peri_clk 9>;
285 resets = <&peri_rst 9>;
263 clock-frequency = <400000>; 286 clock-frequency = <400000>;
264 }; 287 };
265 288
@@ -271,6 +294,7 @@
271 #size-cells = <0>; 294 #size-cells = <0>;
272 interrupts = <0 26 4>; 295 interrupts = <0 26 4>;
273 clocks = <&peri_clk 10>; 296 clocks = <&peri_clk 10>;
297 resets = <&peri_rst 10>;
274 clock-frequency = <400000>; 298 clock-frequency = <400000>;
275 }; 299 };
276 300
@@ -385,6 +409,7 @@
385 pinctrl-names = "default"; 409 pinctrl-names = "default";
386 pinctrl-0 = <&pinctrl_nand2cs>; 410 pinctrl-0 = <&pinctrl_nand2cs>;
387 clocks = <&sys_clk 2>; 411 clocks = <&sys_clk 2>;
412 resets = <&sys_rst 2>;
388 }; 413 };
389 }; 414 };
390}; 415};
diff --git a/arch/arm/boot/dts/uniphier-pxs2.dtsi b/arch/arm/boot/dts/uniphier-pxs2.dtsi
index 90b020c95083..d82d6d872131 100644
--- a/arch/arm/boot/dts/uniphier-pxs2.dtsi
+++ b/arch/arm/boot/dts/uniphier-pxs2.dtsi
@@ -7,6 +7,8 @@
7 * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 7 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
8 */ 8 */
9 9
10#include <dt-bindings/thermal/thermal.h>
11
10/ { 12/ {
11 compatible = "socionext,uniphier-pxs2"; 13 compatible = "socionext,uniphier-pxs2";
12 #address-cells = <1>; 14 #address-cells = <1>;
@@ -16,7 +18,7 @@
16 #address-cells = <1>; 18 #address-cells = <1>;
17 #size-cells = <0>; 19 #size-cells = <0>;
18 20
19 cpu@0 { 21 cpu0: cpu@0 {
20 device_type = "cpu"; 22 device_type = "cpu";
21 compatible = "arm,cortex-a9"; 23 compatible = "arm,cortex-a9";
22 reg = <0>; 24 reg = <0>;
@@ -24,9 +26,10 @@
24 enable-method = "psci"; 26 enable-method = "psci";
25 next-level-cache = <&l2>; 27 next-level-cache = <&l2>;
26 operating-points-v2 = <&cpu_opp>; 28 operating-points-v2 = <&cpu_opp>;
29 #cooling-cells = <2>;
27 }; 30 };
28 31
29 cpu@1 { 32 cpu1: cpu@1 {
30 device_type = "cpu"; 33 device_type = "cpu";
31 compatible = "arm,cortex-a9"; 34 compatible = "arm,cortex-a9";
32 reg = <1>; 35 reg = <1>;
@@ -36,7 +39,7 @@
36 operating-points-v2 = <&cpu_opp>; 39 operating-points-v2 = <&cpu_opp>;
37 }; 40 };
38 41
39 cpu@2 { 42 cpu2: cpu@2 {
40 device_type = "cpu"; 43 device_type = "cpu";
41 compatible = "arm,cortex-a9"; 44 compatible = "arm,cortex-a9";
42 reg = <2>; 45 reg = <2>;
@@ -46,7 +49,7 @@
46 operating-points-v2 = <&cpu_opp>; 49 operating-points-v2 = <&cpu_opp>;
47 }; 50 };
48 51
49 cpu@3 { 52 cpu3: cpu@3 {
50 device_type = "cpu"; 53 device_type = "cpu";
51 compatible = "arm,cortex-a9"; 54 compatible = "arm,cortex-a9";
52 reg = <3>; 55 reg = <3>;
@@ -57,7 +60,7 @@
57 }; 60 };
58 }; 61 };
59 62
60 cpu_opp: opp_table { 63 cpu_opp: opp-table {
61 compatible = "operating-points-v2"; 64 compatible = "operating-points-v2";
62 opp-shared; 65 opp-shared;
63 66
@@ -107,13 +110,42 @@
107 clock-frequency = <25000000>; 110 clock-frequency = <25000000>;
108 }; 111 };
109 112
110 arm_timer_clk: arm_timer_clk { 113 arm_timer_clk: arm-timer {
111 #clock-cells = <0>; 114 #clock-cells = <0>;
112 compatible = "fixed-clock"; 115 compatible = "fixed-clock";
113 clock-frequency = <50000000>; 116 clock-frequency = <50000000>;
114 }; 117 };
115 }; 118 };
116 119
120 thermal-zones {
121 cpu-thermal {
122 polling-delay-passive = <250>; /* 250ms */
123 polling-delay = <1000>; /* 1000ms */
124 thermal-sensors = <&pvtctl>;
125
126 trips {
127 cpu_crit: cpu-crit {
128 temperature = <95000>; /* 95C */
129 hysteresis = <2000>;
130 type = "critical";
131 };
132 cpu_alert: cpu-alert {
133 temperature = <85000>; /* 85C */
134 hysteresis = <2000>;
135 type = "passive";
136 };
137 };
138
139 cooling-maps {
140 map {
141 trip = <&cpu_alert>;
142 cooling-device = <&cpu0
143 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
144 };
145 };
146 };
147 };
148
117 soc { 149 soc {
118 compatible = "simple-bus"; 150 compatible = "simple-bus";
119 #address-cells = <1>; 151 #address-cells = <1>;
@@ -141,6 +173,7 @@
141 pinctrl-names = "default"; 173 pinctrl-names = "default";
142 pinctrl-0 = <&pinctrl_uart0>; 174 pinctrl-0 = <&pinctrl_uart0>;
143 clocks = <&peri_clk 0>; 175 clocks = <&peri_clk 0>;
176 resets = <&peri_rst 0>;
144 }; 177 };
145 178
146 serial1: serial@54006900 { 179 serial1: serial@54006900 {
@@ -151,6 +184,7 @@
151 pinctrl-names = "default"; 184 pinctrl-names = "default";
152 pinctrl-0 = <&pinctrl_uart1>; 185 pinctrl-0 = <&pinctrl_uart1>;
153 clocks = <&peri_clk 1>; 186 clocks = <&peri_clk 1>;
187 resets = <&peri_rst 1>;
154 }; 188 };
155 189
156 serial2: serial@54006a00 { 190 serial2: serial@54006a00 {
@@ -161,6 +195,7 @@
161 pinctrl-names = "default"; 195 pinctrl-names = "default";
162 pinctrl-0 = <&pinctrl_uart2>; 196 pinctrl-0 = <&pinctrl_uart2>;
163 clocks = <&peri_clk 2>; 197 clocks = <&peri_clk 2>;
198 resets = <&peri_rst 2>;
164 }; 199 };
165 200
166 serial3: serial@54006b00 { 201 serial3: serial@54006b00 {
@@ -171,6 +206,24 @@
171 pinctrl-names = "default"; 206 pinctrl-names = "default";
172 pinctrl-0 = <&pinctrl_uart3>; 207 pinctrl-0 = <&pinctrl_uart3>;
173 clocks = <&peri_clk 3>; 208 clocks = <&peri_clk 3>;
209 resets = <&peri_rst 3>;
210 };
211
212 gpio: gpio@55000000 {
213 compatible = "socionext,uniphier-gpio";
214 reg = <0x55000000 0x200>;
215 interrupt-parent = <&aidet>;
216 interrupt-controller;
217 #interrupt-cells = <2>;
218 gpio-controller;
219 #gpio-cells = <2>;
220 gpio-ranges = <&pinctrl 0 0 0>,
221 <&pinctrl 96 0 0>;
222 gpio-ranges-group-names = "gpio_range0",
223 "gpio_range1";
224 ngpios = <232>;
225 socionext,interrupt-ranges = <0 48 16>, <16 154 5>,
226 <21 217 3>;
174 }; 227 };
175 228
176 i2c0: i2c@58780000 { 229 i2c0: i2c@58780000 {
@@ -183,6 +236,7 @@
183 pinctrl-names = "default"; 236 pinctrl-names = "default";
184 pinctrl-0 = <&pinctrl_i2c0>; 237 pinctrl-0 = <&pinctrl_i2c0>;
185 clocks = <&peri_clk 4>; 238 clocks = <&peri_clk 4>;
239 resets = <&peri_rst 4>;
186 clock-frequency = <100000>; 240 clock-frequency = <100000>;
187 }; 241 };
188 242
@@ -196,6 +250,7 @@
196 pinctrl-names = "default"; 250 pinctrl-names = "default";
197 pinctrl-0 = <&pinctrl_i2c1>; 251 pinctrl-0 = <&pinctrl_i2c1>;
198 clocks = <&peri_clk 5>; 252 clocks = <&peri_clk 5>;
253 resets = <&peri_rst 5>;
199 clock-frequency = <100000>; 254 clock-frequency = <100000>;
200 }; 255 };
201 256
@@ -209,6 +264,7 @@
209 pinctrl-names = "default"; 264 pinctrl-names = "default";
210 pinctrl-0 = <&pinctrl_i2c2>; 265 pinctrl-0 = <&pinctrl_i2c2>;
211 clocks = <&peri_clk 6>; 266 clocks = <&peri_clk 6>;
267 resets = <&peri_rst 6>;
212 clock-frequency = <100000>; 268 clock-frequency = <100000>;
213 }; 269 };
214 270
@@ -222,6 +278,7 @@
222 pinctrl-names = "default"; 278 pinctrl-names = "default";
223 pinctrl-0 = <&pinctrl_i2c3>; 279 pinctrl-0 = <&pinctrl_i2c3>;
224 clocks = <&peri_clk 7>; 280 clocks = <&peri_clk 7>;
281 resets = <&peri_rst 7>;
225 clock-frequency = <100000>; 282 clock-frequency = <100000>;
226 }; 283 };
227 284
@@ -233,6 +290,7 @@
233 #size-cells = <0>; 290 #size-cells = <0>;
234 interrupts = <0 45 4>; 291 interrupts = <0 45 4>;
235 clocks = <&peri_clk 8>; 292 clocks = <&peri_clk 8>;
293 resets = <&peri_rst 8>;
236 clock-frequency = <400000>; 294 clock-frequency = <400000>;
237 }; 295 };
238 296
@@ -244,6 +302,7 @@
244 #size-cells = <0>; 302 #size-cells = <0>;
245 interrupts = <0 25 4>; 303 interrupts = <0 25 4>;
246 clocks = <&peri_clk 9>; 304 clocks = <&peri_clk 9>;
305 resets = <&peri_rst 9>;
247 clock-frequency = <400000>; 306 clock-frequency = <400000>;
248 }; 307 };
249 308
@@ -255,6 +314,7 @@
255 #size-cells = <0>; 314 #size-cells = <0>;
256 interrupts = <0 26 4>; 315 interrupts = <0 26 4>;
257 clocks = <&peri_clk 10>; 316 clocks = <&peri_clk 10>;
317 resets = <&peri_rst 10>;
258 clock-frequency = <400000>; 318 clock-frequency = <400000>;
259 }; 319 };
260 320
@@ -358,6 +418,13 @@
358 compatible = "socionext,uniphier-pxs2-reset"; 418 compatible = "socionext,uniphier-pxs2-reset";
359 #reset-cells = <1>; 419 #reset-cells = <1>;
360 }; 420 };
421
422 pvtctl: pvtctl {
423 compatible = "socionext,uniphier-pxs2-thermal";
424 interrupts = <0 3 4>;
425 #thermal-sensor-cells = <0>;
426 socionext,tmod-calibration = <0x0f86 0x6844>;
427 };
361 }; 428 };
362 429
363 nand: nand@68000000 { 430 nand: nand@68000000 {
@@ -369,6 +436,7 @@
369 pinctrl-names = "default"; 436 pinctrl-names = "default";
370 pinctrl-0 = <&pinctrl_nand2cs>; 437 pinctrl-0 = <&pinctrl_nand2cs>;
371 clocks = <&sys_clk 2>; 438 clocks = <&sys_clk 2>;
439 resets = <&sys_rst 2>;
372 }; 440 };
373 }; 441 };
374}; 442};
diff --git a/arch/arm/boot/dts/uniphier-sld8-ref.dts b/arch/arm/boot/dts/uniphier-sld8-ref.dts
index 5accd3cc76e4..1c0e7077a560 100644
--- a/arch/arm/boot/dts/uniphier-sld8-ref.dts
+++ b/arch/arm/boot/dts/uniphier-sld8-ref.dts
@@ -38,7 +38,7 @@
38}; 38};
39 39
40&ethsc { 40&ethsc {
41 interrupts = <0 48 4>; 41 interrupts = <0 8>;
42}; 42};
43 43
44&serial0 { 44&serial0 {
@@ -53,6 +53,14 @@
53 status = "okay"; 53 status = "okay";
54}; 54};
55 55
56&gpio {
57 xirq0 {
58 gpio-hog;
59 gpios = <120 0>;
60 input;
61 };
62};
63
56&i2c0 { 64&i2c0 {
57 status = "okay"; 65 status = "okay";
58}; 66};
diff --git a/arch/arm/boot/dts/uniphier-sld8.dtsi b/arch/arm/boot/dts/uniphier-sld8.dtsi
index ebd0c3f63e7f..71885366cd23 100644
--- a/arch/arm/boot/dts/uniphier-sld8.dtsi
+++ b/arch/arm/boot/dts/uniphier-sld8.dtsi
@@ -37,7 +37,7 @@
37 clock-frequency = <25000000>; 37 clock-frequency = <25000000>;
38 }; 38 };
39 39
40 arm_timer_clk: arm_timer_clk { 40 arm_timer_clk: arm-timer {
41 #clock-cells = <0>; 41 #clock-cells = <0>;
42 compatible = "fixed-clock"; 42 compatible = "fixed-clock";
43 clock-frequency = <50000000>; 43 clock-frequency = <50000000>;
@@ -71,6 +71,7 @@
71 pinctrl-names = "default"; 71 pinctrl-names = "default";
72 pinctrl-0 = <&pinctrl_uart0>; 72 pinctrl-0 = <&pinctrl_uart0>;
73 clocks = <&peri_clk 0>; 73 clocks = <&peri_clk 0>;
74 resets = <&peri_rst 0>;
74 }; 75 };
75 76
76 serial1: serial@54006900 { 77 serial1: serial@54006900 {
@@ -81,6 +82,7 @@
81 pinctrl-names = "default"; 82 pinctrl-names = "default";
82 pinctrl-0 = <&pinctrl_uart1>; 83 pinctrl-0 = <&pinctrl_uart1>;
83 clocks = <&peri_clk 1>; 84 clocks = <&peri_clk 1>;
85 resets = <&peri_rst 1>;
84 }; 86 };
85 87
86 serial2: serial@54006a00 { 88 serial2: serial@54006a00 {
@@ -91,6 +93,7 @@
91 pinctrl-names = "default"; 93 pinctrl-names = "default";
92 pinctrl-0 = <&pinctrl_uart2>; 94 pinctrl-0 = <&pinctrl_uart2>;
93 clocks = <&peri_clk 2>; 95 clocks = <&peri_clk 2>;
96 resets = <&peri_rst 2>;
94 }; 97 };
95 98
96 serial3: serial@54006b00 { 99 serial3: serial@54006b00 {
@@ -101,6 +104,25 @@
101 pinctrl-names = "default"; 104 pinctrl-names = "default";
102 pinctrl-0 = <&pinctrl_uart3>; 105 pinctrl-0 = <&pinctrl_uart3>;
103 clocks = <&peri_clk 3>; 106 clocks = <&peri_clk 3>;
107 resets = <&peri_rst 3>;
108 };
109
110 gpio: gpio@55000000 {
111 compatible = "socionext,uniphier-gpio";
112 reg = <0x55000000 0x200>;
113 interrupt-parent = <&aidet>;
114 interrupt-controller;
115 #interrupt-cells = <2>;
116 gpio-controller;
117 #gpio-cells = <2>;
118 gpio-ranges = <&pinctrl 0 0 0>,
119 <&pinctrl 104 0 0>,
120 <&pinctrl 112 0 0>;
121 gpio-ranges-group-names = "gpio_range0",
122 "gpio_range1",
123 "gpio_range2";
124 ngpios = <136>;
125 socionext,interrupt-ranges = <0 48 13>, <14 62 2>;
104 }; 126 };
105 127
106 i2c0: i2c@58400000 { 128 i2c0: i2c@58400000 {
@@ -113,6 +135,7 @@
113 pinctrl-names = "default"; 135 pinctrl-names = "default";
114 pinctrl-0 = <&pinctrl_i2c0>; 136 pinctrl-0 = <&pinctrl_i2c0>;
115 clocks = <&peri_clk 4>; 137 clocks = <&peri_clk 4>;
138 resets = <&peri_rst 4>;
116 clock-frequency = <100000>; 139 clock-frequency = <100000>;
117 }; 140 };
118 141
@@ -126,6 +149,7 @@
126 pinctrl-names = "default"; 149 pinctrl-names = "default";
127 pinctrl-0 = <&pinctrl_i2c1>; 150 pinctrl-0 = <&pinctrl_i2c1>;
128 clocks = <&peri_clk 5>; 151 clocks = <&peri_clk 5>;
152 resets = <&peri_rst 5>;
129 clock-frequency = <100000>; 153 clock-frequency = <100000>;
130 }; 154 };
131 155
@@ -139,6 +163,7 @@
139 pinctrl-names = "default"; 163 pinctrl-names = "default";
140 pinctrl-0 = <&pinctrl_i2c2>; 164 pinctrl-0 = <&pinctrl_i2c2>;
141 clocks = <&peri_clk 6>; 165 clocks = <&peri_clk 6>;
166 resets = <&peri_rst 6>;
142 clock-frequency = <400000>; 167 clock-frequency = <400000>;
143 }; 168 };
144 169
@@ -152,6 +177,7 @@
152 pinctrl-names = "default"; 177 pinctrl-names = "default";
153 pinctrl-0 = <&pinctrl_i2c3>; 178 pinctrl-0 = <&pinctrl_i2c3>;
154 clocks = <&peri_clk 7>; 179 clocks = <&peri_clk 7>;
180 resets = <&peri_rst 7>;
155 clock-frequency = <100000>; 181 clock-frequency = <100000>;
156 }; 182 };
157 183
@@ -305,6 +331,7 @@
305 pinctrl-names = "default"; 331 pinctrl-names = "default";
306 pinctrl-0 = <&pinctrl_nand2cs>; 332 pinctrl-0 = <&pinctrl_nand2cs>;
307 clocks = <&sys_clk 2>; 333 clocks = <&sys_clk 2>;
334 resets = <&sys_rst 2>;
308 }; 335 };
309 }; 336 };
310}; 337};
diff --git a/arch/arm/boot/dts/uniphier-support-card.dtsi b/arch/arm/boot/dts/uniphier-support-card.dtsi
index 6c825f192e65..e4e7e1bb9172 100644
--- a/arch/arm/boot/dts/uniphier-support-card.dtsi
+++ b/arch/arm/boot/dts/uniphier-support-card.dtsi
@@ -11,11 +11,12 @@
11 status = "okay"; 11 status = "okay";
12 ranges = <1 0x00000000 0x42000000 0x02000000>; 12 ranges = <1 0x00000000 0x42000000 0x02000000>;
13 13
14 support_card: support_card@1,1f00000 { 14 support_card: support-card@1,1f00000 {
15 compatible = "simple-bus"; 15 compatible = "simple-bus";
16 #address-cells = <1>; 16 #address-cells = <1>;
17 #size-cells = <1>; 17 #size-cells = <1>;
18 ranges = <0x00000000 1 0x01f00000 0x00100000>; 18 ranges = <0x00000000 1 0x01f00000 0x00100000>;
19 interrupt-parent = <&gpio>;
19 20
20 ethsc: ethernet@0 { 21 ethsc: ethernet@0 {
21 compatible = "smsc,lan9118", "smsc,lan9115"; 22 compatible = "smsc,lan9118", "smsc,lan9115";
diff --git a/arch/arm/boot/dts/usb_a9263.dts b/arch/arm/boot/dts/usb_a9263.dts
index 482381c1c962..7b1125be99c4 100644
--- a/arch/arm/boot/dts/usb_a9263.dts
+++ b/arch/arm/boot/dts/usb_a9263.dts
@@ -128,7 +128,7 @@
128 }; 128 };
129 }; 129 };
130 130
131 usb0: ohci@00a00000 { 131 usb0: ohci@a00000 {
132 num-ports = <2>; 132 num-ports = <2>;
133 status = "okay"; 133 status = "okay";
134 }; 134 };
diff --git a/arch/arm/boot/dts/usb_a9g20_common.dtsi b/arch/arm/boot/dts/usb_a9g20_common.dtsi
index 088c2c3685ab..81c3fe0465d9 100644
--- a/arch/arm/boot/dts/usb_a9g20_common.dtsi
+++ b/arch/arm/boot/dts/usb_a9g20_common.dtsi
@@ -20,8 +20,8 @@
20 }; 20 };
21 21
22 i2c-gpio-0 { 22 i2c-gpio-0 {
23 rv3029c2@56 { 23 rtc@56 {
24 compatible = "rv3029c2"; 24 compatible = "microcrystal,rv3029";
25 reg = <0x56>; 25 reg = <0x56>;
26 }; 26 };
27 }; 27 };
diff --git a/arch/arm/boot/dts/vf610-twr.dts b/arch/arm/boot/dts/vf610-twr.dts
index 53e3b8b250c6..6f787e67bd2e 100644
--- a/arch/arm/boot/dts/vf610-twr.dts
+++ b/arch/arm/boot/dts/vf610-twr.dts
@@ -198,7 +198,7 @@
198 pinctrl-0 = <&pinctrl_i2c0>; 198 pinctrl-0 = <&pinctrl_i2c0>;
199 status = "okay"; 199 status = "okay";
200 200
201 codec: sgtl5000@0a { 201 codec: sgtl5000@a {
202 #sound-dai-cells = <0>; 202 #sound-dai-cells = <0>;
203 compatible = "fsl,sgtl5000"; 203 compatible = "fsl,sgtl5000";
204 reg = <0x0a>; 204 reg = <0x0a>;
diff --git a/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts b/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
index db3b408ea55a..02a6227c717c 100644
--- a/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
+++ b/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
@@ -359,7 +359,7 @@
359}; 359};
360 360
361&i2c1 { 361&i2c1 {
362 at24mac602@00 { 362 at24mac602@0 {
363 compatible = "atmel,24c02"; 363 compatible = "atmel,24c02";
364 reg = <0x50>; 364 reg = <0x50>;
365 read-only; 365 read-only;
diff --git a/arch/arm/boot/dts/zx296702.dtsi b/arch/arm/boot/dts/zx296702.dtsi
index 752d28e0f9b0..8a74efdb6360 100644
--- a/arch/arm/boot/dts/zx296702.dtsi
+++ b/arch/arm/boot/dts/zx296702.dtsi
@@ -38,7 +38,7 @@
38 reg = <0x00400000 0x1000>; 38 reg = <0x00400000 0x1000>;
39 }; 39 };
40 40
41 intc: interrupt-controller@00801000 { 41 intc: interrupt-controller@801000 {
42 compatible = "arm,cortex-a9-gic"; 42 compatible = "arm,cortex-a9-gic";
43 #interrupt-cells = <3>; 43 #interrupt-cells = <3>;
44 #address-cells = <1>; 44 #address-cells = <1>;
@@ -48,7 +48,7 @@
48 <0x00800100 0x100>; 48 <0x00800100 0x100>;
49 }; 49 };
50 50
51 global_timer: timer@008000200 { 51 global_timer: timer@8000200 {
52 compatible = "arm,cortex-a9-global-timer"; 52 compatible = "arm,cortex-a9-global-timer";
53 reg = <0x00800200 0x20>; 53 reg = <0x00800200 0x20>;
54 interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>; 54 interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/zynq-zc702.dts b/arch/arm/boot/dts/zynq-zc702.dts
index 34e8277fce0d..70a5de76b7db 100644
--- a/arch/arm/boot/dts/zynq-zc702.dts
+++ b/arch/arm/boot/dts/zynq-zc702.dts
@@ -152,7 +152,7 @@
152 #size-cells = <0>; 152 #size-cells = <0>;
153 reg = <2>; 153 reg = <2>;
154 eeprom@54 { 154 eeprom@54 {
155 compatible = "at,24c08"; 155 compatible = "atmel,24c08";
156 reg = <0x54>; 156 reg = <0x54>;
157 }; 157 };
158 }; 158 };
diff --git a/arch/arm/boot/dts/zynq-zc706.dts b/arch/arm/boot/dts/zynq-zc706.dts
index 7ebc8c5ae39d..cdc326ec3335 100644
--- a/arch/arm/boot/dts/zynq-zc706.dts
+++ b/arch/arm/boot/dts/zynq-zc706.dts
@@ -108,7 +108,7 @@
108 #size-cells = <0>; 108 #size-cells = <0>;
109 reg = <2>; 109 reg = <2>;
110 eeprom@54 { 110 eeprom@54 {
111 compatible = "at,24c08"; 111 compatible = "atmel,24c08";
112 reg = <0x54>; 112 reg = <0x54>;
113 }; 113 };
114 }; 114 };
diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c
index 5699ce39e64f..f06db6700ab2 100644
--- a/arch/arm/mach-davinci/da8xx-dt.c
+++ b/arch/arm/mach-davinci/da8xx-dt.c
@@ -54,6 +54,7 @@ static struct of_dev_auxdata da850_auxdata_lookup[] __initdata = {
54 OF_DEV_AUXDATA("ti,da830-usb-phy", 0x01c1417c, "da8xx-usb-phy", NULL), 54 OF_DEV_AUXDATA("ti,da830-usb-phy", 0x01c1417c, "da8xx-usb-phy", NULL),
55 OF_DEV_AUXDATA("ti,da850-ahci", 0x01e18000, "ahci_da850", NULL), 55 OF_DEV_AUXDATA("ti,da850-ahci", 0x01e18000, "ahci_da850", NULL),
56 OF_DEV_AUXDATA("ti,da850-vpif", 0x01e17000, "vpif", NULL), 56 OF_DEV_AUXDATA("ti,da850-vpif", 0x01e17000, "vpif", NULL),
57 OF_DEV_AUXDATA("ti,da850-dsp", 0x11800000, "davinci-rproc.0", NULL),
57 {} 58 {}
58}; 59};
59 60
diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
index 1d03ef54295a..084f70c2ba48 100644
--- a/arch/arm64/Kconfig.platforms
+++ b/arch/arm64/Kconfig.platforms
@@ -104,6 +104,7 @@ config ARCH_MESON
104 select PINCTRL_MESON 104 select PINCTRL_MESON
105 select COMMON_CLK_AMLOGIC 105 select COMMON_CLK_AMLOGIC
106 select COMMON_CLK_GXBB 106 select COMMON_CLK_GXBB
107 select MESON_IRQ_GPIO
107 help 108 help
108 This enables support for the Amlogic S905 SoCs. 109 This enables support for the Amlogic S905 SoCs.
109 110
@@ -187,6 +188,12 @@ config ARCH_R8A7796
187 help 188 help
188 This enables support for the Renesas R-Car M3-W SoC. 189 This enables support for the Renesas R-Car M3-W SoC.
189 190
191config ARCH_R8A77970
192 bool "Renesas R-Car V3M SoC Platform"
193 depends on ARCH_RENESAS
194 help
195 This enables support for the Renesas R-Car V3M SoC.
196
190config ARCH_R8A77995 197config ARCH_R8A77995
191 bool "Renesas R-Car D3 SoC Platform" 198 bool "Renesas R-Car D3 SoC Platform"
192 depends on ARCH_RENESAS 199 depends on ARCH_RENESAS
diff --git a/arch/arm64/boot/dts/actions/s900-bubblegum-96.dts b/arch/arm64/boot/dts/actions/s900-bubblegum-96.dts
index a0c3484dbd12..21ca80f9941c 100644
--- a/arch/arm64/boot/dts/actions/s900-bubblegum-96.dts
+++ b/arch/arm64/boot/dts/actions/s900-bubblegum-96.dts
@@ -24,6 +24,12 @@
24 device_type = "memory"; 24 device_type = "memory";
25 reg = <0x0 0x0 0x0 0x80000000>; 25 reg = <0x0 0x0 0x0 0x80000000>;
26 }; 26 };
27
28 uart5_clk: uart5-clk {
29 compatible = "fixed-clock";
30 clock-frequency = <921600>;
31 #clock-cells = <0>;
32 };
27}; 33};
28 34
29&timer { 35&timer {
@@ -32,4 +38,5 @@
32 38
33&uart5 { 39&uart5 {
34 status = "okay"; 40 status = "okay";
41 clocks = <&uart5_clk>;
35}; 42};
diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
index 7d3acb355ff3..f505227b0250 100644
--- a/arch/arm64/boot/dts/allwinner/Makefile
+++ b/arch/arm64/boot/dts/allwinner/Makefile
@@ -9,3 +9,4 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb
9dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb 9dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb
10dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb 10dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb
11dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo2.dtb 11dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo2.dtb
12dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo-plus2.dtb
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
index d347f52e27f6..45bdbfb96126 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
@@ -51,6 +51,7 @@
51 compatible = "sinovoip,bananapi-m64", "allwinner,sun50i-a64"; 51 compatible = "sinovoip,bananapi-m64", "allwinner,sun50i-a64";
52 52
53 aliases { 53 aliases {
54 ethernet0 = &emac;
54 serial0 = &uart0; 55 serial0 = &uart0;
55 serial1 = &uart1; 56 serial1 = &uart1;
56 }; 57 };
@@ -69,6 +70,14 @@
69 status = "okay"; 70 status = "okay";
70}; 71};
71 72
73&emac {
74 pinctrl-names = "default";
75 pinctrl-0 = <&rgmii_pins>;
76 phy-mode = "rgmii";
77 phy-handle = <&ext_rgmii_phy>;
78 status = "okay";
79};
80
72&i2c1 { 81&i2c1 {
73 pinctrl-names = "default"; 82 pinctrl-names = "default";
74 pinctrl-0 = <&i2c1_pins>; 83 pinctrl-0 = <&i2c1_pins>;
@@ -79,6 +88,13 @@
79 bias-pull-up; 88 bias-pull-up;
80}; 89};
81 90
91&mdio {
92 ext_rgmii_phy: ethernet-phy@1 {
93 compatible = "ethernet-phy-ieee802.3-c22";
94 reg = <1>;
95 };
96};
97
82&mmc0 { 98&mmc0 {
83 pinctrl-names = "default"; 99 pinctrl-names = "default";
84 pinctrl-0 = <&mmc0_pins>; 100 pinctrl-0 = <&mmc0_pins>;
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts
index f82ccf332c0f..24f1aac366d6 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts
@@ -48,3 +48,18 @@
48 48
49 /* TODO: Camera, touchscreen, etc. */ 49 /* TODO: Camera, touchscreen, etc. */
50}; 50};
51
52&emac {
53 pinctrl-names = "default";
54 pinctrl-0 = <&rgmii_pins>;
55 phy-mode = "rgmii";
56 phy-handle = <&ext_rgmii_phy>;
57 status = "okay";
58};
59
60&mdio {
61 ext_rgmii_phy: ethernet-phy@1 {
62 compatible = "ethernet-phy-ieee802.3-c22";
63 reg = <1>;
64 };
65};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
index d06e34b5d192..806442d3e846 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
@@ -51,6 +51,7 @@
51 compatible = "pine64,pine64", "allwinner,sun50i-a64"; 51 compatible = "pine64,pine64", "allwinner,sun50i-a64";
52 52
53 aliases { 53 aliases {
54 ethernet0 = &emac;
54 serial0 = &uart0; 55 serial0 = &uart0;
55 serial1 = &uart1; 56 serial1 = &uart1;
56 serial2 = &uart2; 57 serial2 = &uart2;
@@ -71,6 +72,15 @@
71 status = "okay"; 72 status = "okay";
72}; 73};
73 74
75&emac {
76 pinctrl-names = "default";
77 pinctrl-0 = <&rmii_pins>;
78 phy-mode = "rmii";
79 phy-handle = <&ext_rmii_phy1>;
80 status = "okay";
81
82};
83
74&i2c1 { 84&i2c1 {
75 pinctrl-names = "default"; 85 pinctrl-names = "default";
76 pinctrl-0 = <&i2c1_pins>; 86 pinctrl-0 = <&i2c1_pins>;
@@ -81,6 +91,13 @@
81 bias-pull-up; 91 bias-pull-up;
82}; 92};
83 93
94&mdio {
95 ext_rmii_phy1: ethernet-phy@1 {
96 compatible = "ethernet-phy-ieee802.3-c22";
97 reg = <1>;
98 };
99};
100
84&mmc0 { 101&mmc0 {
85 pinctrl-names = "default"; 102 pinctrl-names = "default";
86 pinctrl-0 = <&mmc0_pins>; 103 pinctrl-0 = <&mmc0_pins>;
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
index 17ccc12b58df..0eb2acedf8c3 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
@@ -53,6 +53,7 @@
53 "allwinner,sun50i-a64"; 53 "allwinner,sun50i-a64";
54 54
55 aliases { 55 aliases {
56 ethernet0 = &emac;
56 serial0 = &uart0; 57 serial0 = &uart0;
57 }; 58 };
58 59
@@ -76,6 +77,21 @@
76 status = "okay"; 77 status = "okay";
77}; 78};
78 79
80&emac {
81 pinctrl-names = "default";
82 pinctrl-0 = <&rgmii_pins>;
83 phy-mode = "rgmii";
84 phy-handle = <&ext_rgmii_phy>;
85 status = "okay";
86};
87
88&mdio {
89 ext_rgmii_phy: ethernet-phy@1 {
90 compatible = "ethernet-phy-ieee802.3-c22";
91 reg = <1>;
92 };
93};
94
79&mmc2 { 95&mmc2 {
80 pinctrl-names = "default"; 96 pinctrl-names = "default";
81 pinctrl-0 = <&mmc2_pins>; 97 pinctrl-0 = <&mmc2_pins>;
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
index 8c8db1b057df..d783d164b9c3 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
@@ -136,6 +136,17 @@
136 reg = <0x01c00000 0x1000>; 136 reg = <0x01c00000 0x1000>;
137 }; 137 };
138 138
139 dma: dma-controller@1c02000 {
140 compatible = "allwinner,sun50i-a64-dma";
141 reg = <0x01c02000 0x1000>;
142 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
143 clocks = <&ccu CLK_BUS_DMA>;
144 dma-channels = <8>;
145 dma-requests = <27>;
146 resets = <&ccu RST_BUS_DMA>;
147 #dma-cells = <1>;
148 };
149
139 mmc0: mmc@1c0f000 { 150 mmc0: mmc@1c0f000 {
140 compatible = "allwinner,sun50i-a64-mmc"; 151 compatible = "allwinner,sun50i-a64-mmc";
141 reg = <0x01c0f000 0x1000>; 152 reg = <0x01c0f000 0x1000>;
@@ -178,7 +189,7 @@
178 #size-cells = <0>; 189 #size-cells = <0>;
179 }; 190 };
180 191
181 usb_otg: usb@01c19000 { 192 usb_otg: usb@1c19000 {
182 compatible = "allwinner,sun8i-a33-musb"; 193 compatible = "allwinner,sun8i-a33-musb";
183 reg = <0x01c19000 0x0400>; 194 reg = <0x01c19000 0x0400>;
184 clocks = <&ccu CLK_BUS_OTG>; 195 clocks = <&ccu CLK_BUS_OTG>;
@@ -191,7 +202,7 @@
191 status = "disabled"; 202 status = "disabled";
192 }; 203 };
193 204
194 usbphy: phy@01c19400 { 205 usbphy: phy@1c19400 {
195 compatible = "allwinner,sun50i-a64-usb-phy"; 206 compatible = "allwinner,sun50i-a64-usb-phy";
196 reg = <0x01c19400 0x14>, 207 reg = <0x01c19400 0x14>,
197 <0x01c1a800 0x4>, 208 <0x01c1a800 0x4>,
@@ -211,7 +222,7 @@
211 #phy-cells = <1>; 222 #phy-cells = <1>;
212 }; 223 };
213 224
214 ehci0: usb@01c1a000 { 225 ehci0: usb@1c1a000 {
215 compatible = "allwinner,sun50i-a64-ehci", "generic-ehci"; 226 compatible = "allwinner,sun50i-a64-ehci", "generic-ehci";
216 reg = <0x01c1a000 0x100>; 227 reg = <0x01c1a000 0x100>;
217 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 228 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
@@ -223,7 +234,7 @@
223 status = "disabled"; 234 status = "disabled";
224 }; 235 };
225 236
226 ohci0: usb@01c1a400 { 237 ohci0: usb@1c1a400 {
227 compatible = "allwinner,sun50i-a64-ohci", "generic-ohci"; 238 compatible = "allwinner,sun50i-a64-ohci", "generic-ohci";
228 reg = <0x01c1a400 0x100>; 239 reg = <0x01c1a400 0x100>;
229 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 240 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
@@ -233,7 +244,7 @@
233 status = "disabled"; 244 status = "disabled";
234 }; 245 };
235 246
236 ehci1: usb@01c1b000 { 247 ehci1: usb@1c1b000 {
237 compatible = "allwinner,sun50i-a64-ehci", "generic-ehci"; 248 compatible = "allwinner,sun50i-a64-ehci", "generic-ehci";
238 reg = <0x01c1b000 0x100>; 249 reg = <0x01c1b000 0x100>;
239 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 250 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
@@ -247,7 +258,7 @@
247 status = "disabled"; 258 status = "disabled";
248 }; 259 };
249 260
250 ohci1: usb@01c1b400 { 261 ohci1: usb@1c1b400 {
251 compatible = "allwinner,sun50i-a64-ohci", "generic-ohci"; 262 compatible = "allwinner,sun50i-a64-ohci", "generic-ohci";
252 reg = <0x01c1b400 0x100>; 263 reg = <0x01c1b400 0x100>;
253 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 264 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
@@ -259,7 +270,7 @@
259 status = "disabled"; 270 status = "disabled";
260 }; 271 };
261 272
262 ccu: clock@01c20000 { 273 ccu: clock@1c20000 {
263 compatible = "allwinner,sun50i-a64-ccu"; 274 compatible = "allwinner,sun50i-a64-ccu";
264 reg = <0x01c20000 0x400>; 275 reg = <0x01c20000 0x400>;
265 clocks = <&osc24M>, <&osc32k>; 276 clocks = <&osc24M>, <&osc32k>;
@@ -325,7 +336,17 @@
325 drive-strength = <40>; 336 drive-strength = <40>;
326 }; 337 };
327 338
328 uart0_pins_a: uart0@0 { 339 spi0_pins: spi0 {
340 pins = "PC0", "PC1", "PC2", "PC3";
341 function = "spi0";
342 };
343
344 spi1_pins: spi1 {
345 pins = "PD0", "PD1", "PD2", "PD3";
346 function = "spi1";
347 };
348
349 uart0_pins_a: uart0 {
329 pins = "PB8", "PB9"; 350 pins = "PB8", "PB9";
330 function = "uart0"; 351 function = "uart0";
331 }; 352 };
@@ -449,6 +470,62 @@
449 #size-cells = <0>; 470 #size-cells = <0>;
450 }; 471 };
451 472
473
474 spi0: spi@1c68000 {
475 compatible = "allwinner,sun8i-h3-spi";
476 reg = <0x01c68000 0x1000>;
477 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
478 clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
479 clock-names = "ahb", "mod";
480 dmas = <&dma 23>, <&dma 23>;
481 dma-names = "rx", "tx";
482 pinctrl-names = "default";
483 pinctrl-0 = <&spi0_pins>;
484 resets = <&ccu RST_BUS_SPI0>;
485 status = "disabled";
486 num-cs = <1>;
487 #address-cells = <1>;
488 #size-cells = <0>;
489 };
490
491 spi1: spi@1c69000 {
492 compatible = "allwinner,sun8i-h3-spi";
493 reg = <0x01c69000 0x1000>;
494 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
495 clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
496 clock-names = "ahb", "mod";
497 dmas = <&dma 24>, <&dma 24>;
498 dma-names = "rx", "tx";
499 pinctrl-names = "default";
500 pinctrl-0 = <&spi1_pins>;
501 resets = <&ccu RST_BUS_SPI1>;
502 status = "disabled";
503 num-cs = <1>;
504 #address-cells = <1>;
505 #size-cells = <0>;
506 };
507
508 emac: ethernet@1c30000 {
509 compatible = "allwinner,sun50i-a64-emac";
510 syscon = <&syscon>;
511 reg = <0x01c30000 0x10000>;
512 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
513 interrupt-names = "macirq";
514 resets = <&ccu RST_BUS_EMAC>;
515 reset-names = "stmmaceth";
516 clocks = <&ccu CLK_BUS_EMAC>;
517 clock-names = "stmmaceth";
518 status = "disabled";
519 #address-cells = <1>;
520 #size-cells = <0>;
521
522 mdio: mdio {
523 compatible = "snps,dwmac-mdio";
524 #address-cells = <1>;
525 #size-cells = <0>;
526 };
527 };
528
452 gic: interrupt-controller@1c81000 { 529 gic: interrupt-controller@1c81000 {
453 compatible = "arm,gic-400"; 530 compatible = "arm,gic-400";
454 reg = <0x01c81000 0x1000>, 531 reg = <0x01c81000 0x1000>,
@@ -486,7 +563,7 @@
486 #reset-cells = <1>; 563 #reset-cells = <1>;
487 }; 564 };
488 565
489 r_pio: pinctrl@01f02c00 { 566 r_pio: pinctrl@1f02c00 {
490 compatible = "allwinner,sun50i-a64-r-pinctrl"; 567 compatible = "allwinner,sun50i-a64-r-pinctrl";
491 reg = <0x01f02c00 0x400>; 568 reg = <0x01f02c00 0x400>;
492 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 569 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
@@ -497,7 +574,7 @@
497 interrupt-controller; 574 interrupt-controller;
498 #interrupt-cells = <3>; 575 #interrupt-cells = <3>;
499 576
500 r_rsb_pins: rsb@0 { 577 r_rsb_pins: rsb {
501 pins = "PL0", "PL1"; 578 pins = "PL0", "PL1";
502 function = "s_rsb"; 579 function = "s_rsb";
503 }; 580 };
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts
new file mode 100644
index 000000000000..7c028af58f47
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts
@@ -0,0 +1,193 @@
1/*
2 * Copyright (C) 2017 Antony Antony <antony@phenome.org>
3 * Copyright (C) 2016 ARM Ltd.
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 as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
14 *
15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively,
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
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
41 * OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44/dts-v1/;
45#include "sun50i-h5.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 = "FriendlyARM NanoPi NEO Plus2";
53 compatible = "friendlyarm,nanopi-neo-plus2", "allwinner,sun50i-h5";
54
55 aliases {
56 serial0 = &uart0;
57 };
58
59 chosen {
60 stdout-path = "serial0:115200n8";
61 };
62
63 leds {
64 compatible = "gpio-leds";
65
66 pwr {
67 label = "nanopi:green:pwr";
68 gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>;
69 default-state = "on";
70 };
71
72 status {
73 label = "nanopi:red:status";
74 gpios = <&pio 0 20 GPIO_ACTIVE_HIGH>;
75 };
76 };
77
78 reg_gmac_3v3: gmac-3v3 {
79 compatible = "regulator-fixed";
80 pinctrl-names = "default";
81 regulator-name = "gmac-3v3";
82 regulator-min-microvolt = <3300000>;
83 regulator-max-microvolt = <3300000>;
84 startup-delay-us = <100000>;
85 enable-active-high;
86 gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
87 };
88
89 reg_vcc3v3: vcc3v3 {
90 compatible = "regulator-fixed";
91 regulator-name = "vcc3v3";
92 regulator-min-microvolt = <3300000>;
93 regulator-max-microvolt = <3300000>;
94 };
95
96 vdd_cpux: gpio-regulator {
97 compatible = "regulator-gpio";
98 pinctrl-names = "default";
99 regulator-name = "vdd-cpux";
100 regulator-type = "voltage";
101 regulator-boot-on;
102 regulator-always-on;
103 regulator-min-microvolt = <1100000>;
104 regulator-max-microvolt = <1300000>;
105 regulator-ramp-delay = <50>; /* 4ms */
106 gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>;
107 gpios-states = <0x1>;
108 states = <1100000 0x0
109 1300000 0x1>;
110 };
111
112 wifi_pwrseq: wifi_pwrseq {
113 compatible = "mmc-pwrseq-simple";
114 pinctrl-names = "default";
115 reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
116 post-power-on-delay-ms = <200>;
117 };
118};
119
120&codec {
121 allwinner,audio-routing =
122 "Line Out", "LINEOUT",
123 "MIC1", "Mic",
124 "Mic", "MBIAS";
125 status = "okay";
126};
127
128&ehci0 {
129 status = "okay";
130};
131
132&ehci3 {
133 status = "okay";
134};
135
136&mmc0 {
137 pinctrl-names = "default";
138 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
139 vmmc-supply = <&reg_vcc3v3>;
140 bus-width = <4>;
141 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
142 status = "okay";
143};
144
145&mmc1 {
146 pinctrl-names = "default";
147 pinctrl-0 = <&mmc1_pins_a>;
148 vmmc-supply = <&reg_vcc3v3>;
149 vqmmc-supply = <&reg_vcc3v3>;
150 mmc-pwrseq = <&wifi_pwrseq>;
151 bus-width = <4>;
152 non-removable;
153 status = "okay";
154
155 brcmf: wifi@1 {
156 reg = <1>;
157 compatible = "brcm,bcm4329-fmac";
158 };
159};
160
161&mmc2 {
162 pinctrl-names = "default";
163 pinctrl-0 = <&mmc2_8bit_pins>;
164 vmmc-supply = <&reg_vcc3v3>;
165 bus-width = <8>;
166 non-removable;
167 cap-mmc-hw-reset;
168 status = "okay";
169};
170
171&ohci0 {
172 status = "okay";
173};
174
175&ohci3 {
176 status = "okay";
177};
178
179&uart0 {
180 pinctrl-names = "default";
181 pinctrl-0 = <&uart0_pins_a>;
182 status = "okay";
183};
184
185&usb_otg {
186 dr_mode = "host";
187 status = "okay";
188};
189
190&usbphy {
191 /* USB Type-A ports' VBUS is always on */
192 status = "okay";
193};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts
index 1c2387bd5df6..6eb8092d8e57 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts
@@ -50,6 +50,7 @@
50 compatible = "friendlyarm,nanopi-neo2", "allwinner,sun50i-h5"; 50 compatible = "friendlyarm,nanopi-neo2", "allwinner,sun50i-h5";
51 51
52 aliases { 52 aliases {
53 ethernet0 = &emac;
53 serial0 = &uart0; 54 serial0 = &uart0;
54 }; 55 };
55 56
@@ -108,6 +109,22 @@
108 status = "okay"; 109 status = "okay";
109}; 110};
110 111
112&emac {
113 pinctrl-names = "default";
114 pinctrl-0 = <&emac_rgmii_pins>;
115 phy-supply = <&reg_gmac_3v3>;
116 phy-handle = <&ext_rgmii_phy>;
117 phy-mode = "rgmii";
118 status = "okay";
119};
120
121&external_mdio {
122 ext_rgmii_phy: ethernet-phy@7 {
123 compatible = "ethernet-phy-ieee802.3-c22";
124 reg = <7>;
125 };
126};
127
111&mmc0 { 128&mmc0 {
112 pinctrl-names = "default"; 129 pinctrl-names = "default";
113 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; 130 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
index 4f77c8470f6c..a0ca925175aa 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
@@ -59,6 +59,7 @@
59 }; 59 };
60 60
61 aliases { 61 aliases {
62 ethernet0 = &emac;
62 serial0 = &uart0; 63 serial0 = &uart0;
63 }; 64 };
64 65
@@ -136,6 +137,22 @@
136 status = "okay"; 137 status = "okay";
137}; 138};
138 139
140&emac {
141 pinctrl-names = "default";
142 pinctrl-0 = <&emac_rgmii_pins>;
143 phy-supply = <&reg_gmac_3v3>;
144 phy-handle = <&ext_rgmii_phy>;
145 phy-mode = "rgmii";
146 status = "okay";
147};
148
149&external_mdio {
150 ext_rgmii_phy: ethernet-phy@1 {
151 compatible = "ethernet-phy-ieee802.3-c22";
152 reg = <1>;
153 };
154};
155
139&ir { 156&ir {
140 pinctrl-names = "default"; 157 pinctrl-names = "default";
141 pinctrl-0 = <&ir_pins_a>; 158 pinctrl-0 = <&ir_pins_a>;
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
index 6be06873e5af..b47790650144 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
@@ -54,6 +54,7 @@
54 compatible = "xunlong,orangepi-prime", "allwinner,sun50i-h5"; 54 compatible = "xunlong,orangepi-prime", "allwinner,sun50i-h5";
55 55
56 aliases { 56 aliases {
57 ethernet0 = &emac;
57 serial0 = &uart0; 58 serial0 = &uart0;
58 }; 59 };
59 60
@@ -143,6 +144,22 @@
143 status = "okay"; 144 status = "okay";
144}; 145};
145 146
147&emac {
148 pinctrl-names = "default";
149 pinctrl-0 = <&emac_rgmii_pins>;
150 phy-supply = <&reg_gmac_3v3>;
151 phy-handle = <&ext_rgmii_phy>;
152 phy-mode = "rgmii";
153 status = "okay";
154};
155
156&external_mdio {
157 ext_rgmii_phy: ethernet-phy@1 {
158 compatible = "ethernet-phy-ieee802.3-c22";
159 reg = <1>;
160 };
161};
162
146&ir { 163&ir {
147 pinctrl-names = "default"; 164 pinctrl-names = "default";
148 pinctrl-0 = <&ir_pins_a>; 165 pinctrl-0 = <&ir_pins_a>;
diff --git a/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi b/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
index c2b9bcb0ef61..7c9bdc7ab50b 100644
--- a/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
+++ b/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
@@ -15,6 +15,8 @@
15 */ 15 */
16 16
17/dts-v1/; 17/dts-v1/;
18#include <dt-bindings/reset/altr,rst-mgr-s10.h>
19#include <dt-bindings/gpio/gpio.h>
18 20
19/ { 21/ {
20 compatible = "altr,socfpga-stratix10"; 22 compatible = "altr,socfpga-stratix10";
@@ -75,10 +77,10 @@
75 compatible = "arm,gic-400", "arm,cortex-a15-gic"; 77 compatible = "arm,gic-400", "arm,cortex-a15-gic";
76 #interrupt-cells = <3>; 78 #interrupt-cells = <3>;
77 interrupt-controller; 79 interrupt-controller;
78 reg = <0x0 0xfffc1000 0x1000>, 80 reg = <0x0 0xfffc1000 0x0 0x1000>,
79 <0x0 0xfffc2000 0x2000>, 81 <0x0 0xfffc2000 0x0 0x2000>,
80 <0x0 0xfffc4000 0x2000>, 82 <0x0 0xfffc4000 0x0 0x2000>,
81 <0x0 0xfffc6000 0x2000>; 83 <0x0 0xfffc6000 0x0 0x2000>;
82 }; 84 };
83 85
84 soc { 86 soc {
@@ -100,6 +102,8 @@
100 interrupts = <0 90 4>; 102 interrupts = <0 90 4>;
101 interrupt-names = "macirq"; 103 interrupt-names = "macirq";
102 mac-address = [00 00 00 00 00 00]; 104 mac-address = [00 00 00 00 00 00];
105 resets = <&rst EMAC0_RESET>;
106 reset-names = "stmmaceth";
103 status = "disabled"; 107 status = "disabled";
104 }; 108 };
105 109
@@ -109,6 +113,8 @@
109 interrupts = <0 91 4>; 113 interrupts = <0 91 4>;
110 interrupt-names = "macirq"; 114 interrupt-names = "macirq";
111 mac-address = [00 00 00 00 00 00]; 115 mac-address = [00 00 00 00 00 00];
116 resets = <&rst EMAC1_RESET>;
117 reset-names = "stmmaceth";
112 status = "disabled"; 118 status = "disabled";
113 }; 119 };
114 120
@@ -118,6 +124,8 @@
118 interrupts = <0 92 4>; 124 interrupts = <0 92 4>;
119 interrupt-names = "macirq"; 125 interrupt-names = "macirq";
120 mac-address = [00 00 00 00 00 00]; 126 mac-address = [00 00 00 00 00 00];
127 resets = <&rst EMAC2_RESET>;
128 reset-names = "stmmaceth";
121 status = "disabled"; 129 status = "disabled";
122 }; 130 };
123 131
@@ -126,6 +134,7 @@
126 #size-cells = <0>; 134 #size-cells = <0>;
127 compatible = "snps,dw-apb-gpio"; 135 compatible = "snps,dw-apb-gpio";
128 reg = <0xffc03200 0x100>; 136 reg = <0xffc03200 0x100>;
137 resets = <&rst GPIO0_RESET>;
129 status = "disabled"; 138 status = "disabled";
130 139
131 porta: gpio-controller@0 { 140 porta: gpio-controller@0 {
@@ -145,6 +154,7 @@
145 #size-cells = <0>; 154 #size-cells = <0>;
146 compatible = "snps,dw-apb-gpio"; 155 compatible = "snps,dw-apb-gpio";
147 reg = <0xffc03300 0x100>; 156 reg = <0xffc03300 0x100>;
157 resets = <&rst GPIO1_RESET>;
148 status = "disabled"; 158 status = "disabled";
149 159
150 portb: gpio-controller@0 { 160 portb: gpio-controller@0 {
@@ -155,7 +165,7 @@
155 reg = <0>; 165 reg = <0>;
156 interrupt-controller; 166 interrupt-controller;
157 #interrupt-cells = <2>; 167 #interrupt-cells = <2>;
158 interrupts = <0 110 4>; 168 interrupts = <0 111 4>;
159 }; 169 };
160 }; 170 };
161 171
@@ -165,6 +175,7 @@
165 compatible = "snps,designware-i2c"; 175 compatible = "snps,designware-i2c";
166 reg = <0xffc02800 0x100>; 176 reg = <0xffc02800 0x100>;
167 interrupts = <0 103 4>; 177 interrupts = <0 103 4>;
178 resets = <&rst I2C0_RESET>;
168 status = "disabled"; 179 status = "disabled";
169 }; 180 };
170 181
@@ -174,6 +185,7 @@
174 compatible = "snps,designware-i2c"; 185 compatible = "snps,designware-i2c";
175 reg = <0xffc02900 0x100>; 186 reg = <0xffc02900 0x100>;
176 interrupts = <0 104 4>; 187 interrupts = <0 104 4>;
188 resets = <&rst I2C1_RESET>;
177 status = "disabled"; 189 status = "disabled";
178 }; 190 };
179 191
@@ -183,6 +195,7 @@
183 compatible = "snps,designware-i2c"; 195 compatible = "snps,designware-i2c";
184 reg = <0xffc02a00 0x100>; 196 reg = <0xffc02a00 0x100>;
185 interrupts = <0 105 4>; 197 interrupts = <0 105 4>;
198 resets = <&rst I2C2_RESET>;
186 status = "disabled"; 199 status = "disabled";
187 }; 200 };
188 201
@@ -192,6 +205,7 @@
192 compatible = "snps,designware-i2c"; 205 compatible = "snps,designware-i2c";
193 reg = <0xffc02b00 0x100>; 206 reg = <0xffc02b00 0x100>;
194 interrupts = <0 106 4>; 207 interrupts = <0 106 4>;
208 resets = <&rst I2C3_RESET>;
195 status = "disabled"; 209 status = "disabled";
196 }; 210 };
197 211
@@ -201,6 +215,7 @@
201 compatible = "snps,designware-i2c"; 215 compatible = "snps,designware-i2c";
202 reg = <0xffc02c00 0x100>; 216 reg = <0xffc02c00 0x100>;
203 interrupts = <0 107 4>; 217 interrupts = <0 107 4>;
218 resets = <&rst I2C4_RESET>;
204 status = "disabled"; 219 status = "disabled";
205 }; 220 };
206 221
@@ -211,6 +226,8 @@
211 reg = <0xff808000 0x1000>; 226 reg = <0xff808000 0x1000>;
212 interrupts = <0 96 4>; 227 interrupts = <0 96 4>;
213 fifo-depth = <0x400>; 228 fifo-depth = <0x400>;
229 resets = <&rst SDMMC_RESET>;
230 reset-names = "reset";
214 status = "disabled"; 231 status = "disabled";
215 }; 232 };
216 233
@@ -223,6 +240,7 @@
223 #reset-cells = <1>; 240 #reset-cells = <1>;
224 compatible = "altr,rst-mgr"; 241 compatible = "altr,rst-mgr";
225 reg = <0xffd11000 0x1000>; 242 reg = <0xffd11000 0x1000>;
243 altr,modrst-offset = <0x20>;
226 }; 244 };
227 245
228 spi0: spi@ffda4000 { 246 spi0: spi@ffda4000 {
@@ -291,6 +309,7 @@
291 interrupts = <0 108 4>; 309 interrupts = <0 108 4>;
292 reg-shift = <2>; 310 reg-shift = <2>;
293 reg-io-width = <4>; 311 reg-io-width = <4>;
312 resets = <&rst UART0_RESET>;
294 status = "disabled"; 313 status = "disabled";
295 }; 314 };
296 315
@@ -300,6 +319,7 @@
300 interrupts = <0 109 4>; 319 interrupts = <0 109 4>;
301 reg-shift = <2>; 320 reg-shift = <2>;
302 reg-io-width = <4>; 321 reg-io-width = <4>;
322 resets = <&rst UART1_RESET>;
303 status = "disabled"; 323 status = "disabled";
304 }; 324 };
305 325
@@ -315,6 +335,8 @@
315 interrupts = <0 93 4>; 335 interrupts = <0 93 4>;
316 phys = <&usbphy0>; 336 phys = <&usbphy0>;
317 phy-names = "usb2-phy"; 337 phy-names = "usb2-phy";
338 resets = <&rst USB0_RESET>;
339 reset-names = "dwc2";
318 status = "disabled"; 340 status = "disabled";
319 }; 341 };
320 342
@@ -324,6 +346,8 @@
324 interrupts = <0 94 4>; 346 interrupts = <0 94 4>;
325 phys = <&usbphy0>; 347 phys = <&usbphy0>;
326 phy-names = "usb2-phy"; 348 phy-names = "usb2-phy";
349 resets = <&rst USB1_RESET>;
350 reset-names = "dwc2";
327 status = "disabled"; 351 status = "disabled";
328 }; 352 };
329 353
@@ -331,6 +355,7 @@
331 compatible = "snps,dw-wdt"; 355 compatible = "snps,dw-wdt";
332 reg = <0xffd00200 0x100>; 356 reg = <0xffd00200 0x100>;
333 interrupts = <0 117 4>; 357 interrupts = <0 117 4>;
358 resets = <&rst WATCHDOG0_RESET>;
334 status = "disabled"; 359 status = "disabled";
335 }; 360 };
336 361
@@ -338,6 +363,7 @@
338 compatible = "snps,dw-wdt"; 363 compatible = "snps,dw-wdt";
339 reg = <0xffd00300 0x100>; 364 reg = <0xffd00300 0x100>;
340 interrupts = <0 118 4>; 365 interrupts = <0 118 4>;
366 resets = <&rst WATCHDOG1_RESET>;
341 status = "disabled"; 367 status = "disabled";
342 }; 368 };
343 369
@@ -345,6 +371,7 @@
345 compatible = "snps,dw-wdt"; 371 compatible = "snps,dw-wdt";
346 reg = <0xffd00400 0x100>; 372 reg = <0xffd00400 0x100>;
347 interrupts = <0 125 4>; 373 interrupts = <0 125 4>;
374 resets = <&rst WATCHDOG2_RESET>;
348 status = "disabled"; 375 status = "disabled";
349 }; 376 };
350 377
@@ -352,6 +379,7 @@
352 compatible = "snps,dw-wdt"; 379 compatible = "snps,dw-wdt";
353 reg = <0xffd00500 0x100>; 380 reg = <0xffd00500 0x100>;
354 interrupts = <0 126 4>; 381 interrupts = <0 126 4>;
382 resets = <&rst WATCHDOG3_RESET>;
355 status = "disabled"; 383 status = "disabled";
356 }; 384 };
357 }; 385 };
diff --git a/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts b/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
index 41ea2dba2fce..a37c46112876 100644
--- a/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
+++ b/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
@@ -14,7 +14,7 @@
14 * this program. If not, see <http://www.gnu.org/licenses/>. 14 * this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17/include/ "socfpga_stratix10.dtsi" 17#include "socfpga_stratix10.dtsi"
18 18
19/ { 19/ {
20 model = "SoCFPGA Stratix 10 SoCDK"; 20 model = "SoCFPGA Stratix 10 SoCDK";
@@ -27,6 +27,24 @@
27 stdout-path = "serial0:115200n8"; 27 stdout-path = "serial0:115200n8";
28 }; 28 };
29 29
30 leds {
31 compatible = "gpio-leds";
32 hps0 {
33 label = "hps_led0";
34 gpios = <&portb 20 GPIO_ACTIVE_HIGH>;
35 };
36
37 hps1 {
38 label = "hps_led1";
39 gpios = <&portb 19 GPIO_ACTIVE_HIGH>;
40 };
41
42 hps2 {
43 label = "hps_led2";
44 gpios = <&portb 21 GPIO_ACTIVE_HIGH>;
45 };
46 };
47
30 memory { 48 memory {
31 device_type = "memory"; 49 device_type = "memory";
32 /* We expect the bootloader to fill in the reg */ 50 /* We expect the bootloader to fill in the reg */
@@ -34,6 +52,48 @@
34 }; 52 };
35}; 53};
36 54
55&gpio1 {
56 status = "okay";
57};
58
59&gmac0 {
60 status = "okay";
61 phy-mode = "rgmii";
62 phy-handle = <&phy0>;
63
64 max-frame-size = <3800>;
65
66 mdio0 {
67 #address-cells = <1>;
68 #size-cells = <0>;
69 compatible = "snps,dwmac-mdio";
70 phy0: ethernet-phy@0 {
71 reg = <4>;
72
73 txd0-skew-ps = <0>; /* -420ps */
74 txd1-skew-ps = <0>; /* -420ps */
75 txd2-skew-ps = <0>; /* -420ps */
76 txd3-skew-ps = <0>; /* -420ps */
77 rxd0-skew-ps = <420>; /* 0ps */
78 rxd1-skew-ps = <420>; /* 0ps */
79 rxd2-skew-ps = <420>; /* 0ps */
80 rxd3-skew-ps = <420>; /* 0ps */
81 txen-skew-ps = <0>; /* -420ps */
82 txc-skew-ps = <1860>; /* 960ps */
83 rxdv-skew-ps = <420>; /* 0ps */
84 rxc-skew-ps = <1680>; /* 780ps */
85 };
86 };
87};
88
89&mmc {
90 status = "okay";
91 num-slots = <1>;
92 cap-sd-highspeed;
93 broken-cd;
94 bus-width = <4>;
95};
96
37&uart0 { 97&uart0 {
38 status = "okay"; 98 status = "okay";
39}; 99};
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
index f84b83bb9809..34dd0e9b5cbb 100644
--- a/arch/arm64/boot/dts/amlogic/Makefile
+++ b/arch/arm64/boot/dts/amlogic/Makefile
@@ -1,4 +1,5 @@
1# SPDX-License-Identifier: GPL-2.0 1# SPDX-License-Identifier: GPL-2.0
2dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb
2dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nanopi-k2.dtb 3dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nanopi-k2.dtb
3dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nexbox-a95x.dtb 4dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nexbox-a95x.dtb
4dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2.dtb 5dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2.dtb
@@ -16,7 +17,9 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb
16dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb 17dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb
17dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p230.dtb 18dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p230.dtb
18dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb 19dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb
20dtb-$(CONFIG_ARCH_MESON) += meson-gxm-khadas-vim2.dtb
19dtb-$(CONFIG_ARCH_MESON) += meson-gxm-nexbox-a1.dtb 21dtb-$(CONFIG_ARCH_MESON) += meson-gxm-nexbox-a1.dtb
20dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q200.dtb 22dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q200.dtb
21dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q201.dtb 23dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q201.dtb
22dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb 24dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb
25dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb
diff --git a/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts b/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts
new file mode 100644
index 000000000000..70eca1f8736a
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts
@@ -0,0 +1,22 @@
1/*
2 * Copyright (c) 2017 Amlogic, Inc. All rights reserved.
3 *
4 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
5 */
6
7/dts-v1/;
8
9#include "meson-axg.dtsi"
10
11/ {
12 compatible = "amlogic,s400", "amlogic,a113d", "amlogic,meson-axg";
13 model = "Amlogic Meson AXG S400 Development Board";
14
15 aliases {
16 serial0 = &uart_AO;
17 };
18};
19
20&uart_AO {
21 status = "okay";
22};
diff --git a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi
new file mode 100644
index 000000000000..b932a784b02a
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi
@@ -0,0 +1,204 @@
1/*
2 * Copyright (c) 2017 Amlogic, Inc. All rights reserved.
3 *
4 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
5 */
6
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/interrupt-controller/irq.h>
9#include <dt-bindings/interrupt-controller/arm-gic.h>
10
11/ {
12 compatible = "amlogic,meson-axg";
13
14 interrupt-parent = <&gic>;
15 #address-cells = <2>;
16 #size-cells = <2>;
17
18 reserved-memory {
19 #address-cells = <2>;
20 #size-cells = <2>;
21 ranges;
22
23 /* 16 MiB reserved for Hardware ROM Firmware */
24 hwrom_reserved: hwrom@0 {
25 reg = <0x0 0x0 0x0 0x1000000>;
26 no-map;
27 };
28
29 /* Alternate 3 MiB reserved for ARM Trusted Firmware (BL31) */
30 secmon_reserved: secmon@5000000 {
31 reg = <0x0 0x05000000 0x0 0x300000>;
32 no-map;
33 };
34 };
35
36 cpus {
37 #address-cells = <0x2>;
38 #size-cells = <0x0>;
39
40 cpu0: cpu@0 {
41 device_type = "cpu";
42 compatible = "arm,cortex-a53", "arm,armv8";
43 reg = <0x0 0x0>;
44 enable-method = "psci";
45 next-level-cache = <&l2>;
46 };
47
48 cpu1: cpu@1 {
49 device_type = "cpu";
50 compatible = "arm,cortex-a53", "arm,armv8";
51 reg = <0x0 0x1>;
52 enable-method = "psci";
53 next-level-cache = <&l2>;
54 };
55
56 cpu2: cpu@2 {
57 device_type = "cpu";
58 compatible = "arm,cortex-a53", "arm,armv8";
59 reg = <0x0 0x2>;
60 enable-method = "psci";
61 next-level-cache = <&l2>;
62 };
63
64 cpu3: cpu@3 {
65 device_type = "cpu";
66 compatible = "arm,cortex-a53", "arm,armv8";
67 reg = <0x0 0x3>;
68 enable-method = "psci";
69 next-level-cache = <&l2>;
70 };
71
72 l2: l2-cache0 {
73 compatible = "cache";
74 };
75 };
76
77 arm-pmu {
78 compatible = "arm,cortex-a53-pmu";
79 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
80 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
81 <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
82 <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
83 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
84 };
85
86 psci {
87 compatible = "arm,psci-1.0";
88 method = "smc";
89 };
90
91 timer {
92 compatible = "arm,armv8-timer";
93 interrupts = <GIC_PPI 13
94 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
95 <GIC_PPI 14
96 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
97 <GIC_PPI 11
98 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
99 <GIC_PPI 10
100 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
101 };
102
103 xtal: xtal-clk {
104 compatible = "fixed-clock";
105 clock-frequency = <24000000>;
106 clock-output-names = "xtal";
107 #clock-cells = <0>;
108 };
109
110 soc {
111 compatible = "simple-bus";
112 #address-cells = <2>;
113 #size-cells = <2>;
114 ranges;
115
116 cbus: cbus@ffd00000 {
117 compatible = "simple-bus";
118 reg = <0x0 0xffd00000 0x0 0x25000>;
119 #address-cells = <2>;
120 #size-cells = <2>;
121 ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x25000>;
122
123 uart_A: serial@24000 {
124 compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart";
125 reg = <0x0 0x24000 0x0 0x14>;
126 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
127 status = "disabled";
128 };
129
130 uart_B: serial@23000 {
131 compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart";
132 reg = <0x0 0x23000 0x0 0x14>;
133 interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
134 status = "disabled";
135 };
136 };
137
138 gic: interrupt-controller@ffc01000 {
139 compatible = "arm,gic-400";
140 reg = <0x0 0xffc01000 0 0x1000>,
141 <0x0 0xffc02000 0 0x2000>,
142 <0x0 0xffc04000 0 0x2000>,
143 <0x0 0xffc06000 0 0x2000>;
144 interrupt-controller;
145 interrupts = <GIC_PPI 9
146 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
147 #interrupt-cells = <3>;
148 #address-cells = <0>;
149 };
150
151 mailbox: mailbox@ff63dc00 {
152 compatible = "amlogic,meson-gx-mhu", "amlogic,meson-gxbb-mhu";
153 reg = <0 0xff63dc00 0 0x400>;
154 interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
155 <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>,
156 <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
157 #mbox-cells = <1>;
158 };
159
160 sram: sram@fffc0000 {
161 compatible = "amlogic,meson-axg-sram", "mmio-sram";
162 reg = <0x0 0xfffc0000 0x0 0x20000>;
163 #address-cells = <1>;
164 #size-cells = <1>;
165 ranges = <0 0x0 0xfffc0000 0x20000>;
166
167 cpu_scp_lpri: scp-shmem@0 {
168 compatible = "amlogic,meson-axg-scp-shmem";
169 reg = <0x13000 0x400>;
170 };
171
172 cpu_scp_hpri: scp-shmem@200 {
173 compatible = "amlogic,meson-axg-scp-shmem";
174 reg = <0x13400 0x400>;
175 };
176 };
177
178 aobus: aobus@ff800000 {
179 compatible = "simple-bus";
180 reg = <0x0 0xff800000 0x0 0x100000>;
181 #address-cells = <2>;
182 #size-cells = <2>;
183 ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>;
184
185 uart_AO: serial@3000 {
186 compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
187 reg = <0x0 0x3000 0x0 0x18>;
188 interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
189 clocks = <&xtal>, <&xtal>, <&xtal>;
190 clock-names = "xtal", "pclk", "baud";
191 status = "disabled";
192 };
193
194 uart_AO_B: serial@4000 {
195 compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
196 reg = <0x0 0x4000 0x0 0x18>;
197 interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
198 clocks = <&xtal>, <&xtal>, <&xtal>;
199 clock-names = "xtal", "pclk", "baud";
200 status = "disabled";
201 };
202 };
203 };
204};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
index 4157987f4a3d..7d4b95e49993 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
@@ -213,7 +213,7 @@
213/* eMMC */ 213/* eMMC */
214&sd_emmc_c { 214&sd_emmc_c {
215 status = "okay"; 215 status = "okay";
216 pinctrl-0 = <&emmc_pins>; 216 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
217 pinctrl-1 = <&emmc_clk_gate_pins>; 217 pinctrl-1 = <&emmc_clk_gate_pins>;
218 pinctrl-names = "default", "clk-gate"; 218 pinctrl-names = "default", "clk-gate";
219 219
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
index f175db846286..ab7ce1644cdc 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
@@ -218,6 +218,15 @@
218 #size-cells = <2>; 218 #size-cells = <2>;
219 ranges = <0x0 0x0 0x0 0xc1100000 0x0 0x100000>; 219 ranges = <0x0 0x0 0x0 0xc1100000 0x0 0x100000>;
220 220
221 gpio_intc: interrupt-controller@9880 {
222 compatible = "amlogic,meson-gpio-intc";
223 reg = <0x0 0x9880 0x0 0x10>;
224 interrupt-controller;
225 #interrupt-cells = <2>;
226 amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
227 status = "disabled";
228 };
229
221 reset: reset-controller@4404 { 230 reset: reset-controller@4404 {
222 compatible = "amlogic,meson-gx-reset", "amlogic,meson-gxbb-reset"; 231 compatible = "amlogic,meson-gx-reset", "amlogic,meson-gxbb-reset";
223 reg = <0x0 0x04404 0x0 0x20>; 232 reg = <0x0 0x04404 0x0 0x20>;
@@ -225,18 +234,16 @@
225 }; 234 };
226 235
227 uart_A: serial@84c0 { 236 uart_A: serial@84c0 {
228 compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart"; 237 compatible = "amlogic,meson-gx-uart";
229 reg = <0x0 0x84c0 0x0 0x14>; 238 reg = <0x0 0x84c0 0x0 0x14>;
230 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>; 239 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
231 clocks = <&xtal>;
232 status = "disabled"; 240 status = "disabled";
233 }; 241 };
234 242
235 uart_B: serial@84dc { 243 uart_B: serial@84dc {
236 compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart"; 244 compatible = "amlogic,meson-gx-uart";
237 reg = <0x0 0x84dc 0x0 0x14>; 245 reg = <0x0 0x84dc 0x0 0x14>;
238 interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>; 246 interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
239 clocks = <&xtal>;
240 status = "disabled"; 247 status = "disabled";
241 }; 248 };
242 249
@@ -279,10 +286,9 @@
279 }; 286 };
280 287
281 uart_C: serial@8700 { 288 uart_C: serial@8700 {
282 compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart"; 289 compatible = "amlogic,meson-gx-uart";
283 reg = <0x0 0x8700 0x0 0x14>; 290 reg = <0x0 0x8700 0x0 0x14>;
284 interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>; 291 interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>;
285 clocks = <&xtal>;
286 status = "disabled"; 292 status = "disabled";
287 }; 293 };
288 294
@@ -391,14 +397,14 @@
391 }; 397 };
392 398
393 uart_AO: serial@4c0 { 399 uart_AO: serial@4c0 {
394 compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart", "amlogic,meson-uart"; 400 compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
395 reg = <0x0 0x004c0 0x0 0x14>; 401 reg = <0x0 0x004c0 0x0 0x14>;
396 interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>; 402 interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
397 status = "disabled"; 403 status = "disabled";
398 }; 404 };
399 405
400 uart_AO_B: serial@4e0 { 406 uart_AO_B: serial@4e0 {
401 compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart", "amlogic,meson-uart"; 407 compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
402 reg = <0x0 0x004e0 0x0 0x14>; 408 reg = <0x0 0x004e0 0x0 0x14>;
403 interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>; 409 interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
404 status = "disabled"; 410 status = "disabled";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
index 4b17a76959b2..4a4251001bfd 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
@@ -168,6 +168,8 @@
168 eth_phy0: ethernet-phy@0 { 168 eth_phy0: ethernet-phy@0 {
169 /* Realtek RTL8211F (0x001cc916) */ 169 /* Realtek RTL8211F (0x001cc916) */
170 reg = <0>; 170 reg = <0>;
171 interrupt-parent = <&gpio_intc>;
172 interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
171 }; 173 };
172 }; 174 };
173}; 175};
@@ -183,7 +185,9 @@
183 "VCCK En", "CON1 Header Pin31", 185 "VCCK En", "CON1 Header Pin31",
184 "I2S Header Pin6", "IR In", "I2S Header Pin7", 186 "I2S Header Pin6", "IR In", "I2S Header Pin7",
185 "I2S Header Pin3", "I2S Header Pin4", 187 "I2S Header Pin3", "I2S Header Pin4",
186 "I2S Header Pin5", "HDMI CEC", "SYS LED"; 188 "I2S Header Pin5", "HDMI CEC", "SYS LED",
189 /* GPIO_TEST_N */
190 "";
187}; 191};
188 192
189&pinctrl_periphs { 193&pinctrl_periphs {
@@ -229,11 +233,9 @@
229 "Bluetooth UART TX", "Bluetooth UART RX", 233 "Bluetooth UART TX", "Bluetooth UART RX",
230 "Bluetooth UART CTS", "Bluetooth UART RTS", 234 "Bluetooth UART CTS", "Bluetooth UART RTS",
231 "", "", "", "WIFI 32K", "Bluetooth Enable", 235 "", "", "", "WIFI 32K", "Bluetooth Enable",
232 "Bluetooth WAKE HOST", 236 "Bluetooth WAKE HOST", "",
233 /* Bank GPIOCLK */ 237 /* Bank GPIOCLK */
234 "", "CON1 Header Pin35", "", "", 238 "", "CON1 Header Pin35", "", "";
235 /* GPIO_TEST_N */
236 "";
237}; 239};
238 240
239&pwm_ef { 241&pwm_ef {
@@ -302,7 +304,7 @@
302/* eMMC */ 304/* eMMC */
303&sd_emmc_c { 305&sd_emmc_c {
304 status = "disabled"; 306 status = "disabled";
305 pinctrl-0 = <&emmc_pins>; 307 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
306 pinctrl-1 = <&emmc_clk_gate_pins>; 308 pinctrl-1 = <&emmc_clk_gate_pins>;
307 pinctrl-names = "default", "clk-gate"; 309 pinctrl-names = "default", "clk-gate";
308 310
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts
index 38dfdde5c147..818954b1d57f 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts
@@ -88,6 +88,18 @@
88 }; 88 };
89 }; 89 };
90 90
91 usb_pwr: regulator-usb-pwrs {
92 compatible = "regulator-fixed";
93
94 regulator-name = "USB_PWR";
95
96 regulator-min-microvolt = <5000000>;
97 regulator-max-microvolt = <5000000>;
98
99 gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
100 enable-active-high;
101 };
102
91 vddio_card: gpio-regulator { 103 vddio_card: gpio-regulator {
92 compatible = "regulator-gpio"; 104 compatible = "regulator-gpio";
93 105
@@ -272,7 +284,7 @@
272/* eMMC */ 284/* eMMC */
273&sd_emmc_c { 285&sd_emmc_c {
274 status = "okay"; 286 status = "okay";
275 pinctrl-0 = <&emmc_pins>; 287 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
276 pinctrl-1 = <&emmc_clk_gate_pins>; 288 pinctrl-1 = <&emmc_clk_gate_pins>;
277 pinctrl-names = "default", "clk-gate"; 289 pinctrl-names = "default", "clk-gate";
278 290
@@ -294,3 +306,20 @@
294 pinctrl-0 = <&uart_ao_a_pins>; 306 pinctrl-0 = <&uart_ao_a_pins>;
295 pinctrl-names = "default"; 307 pinctrl-names = "default";
296}; 308};
309
310&usb0_phy {
311 status = "okay";
312 phy-supply = <&usb_pwr>;
313};
314
315&usb1_phy {
316 status = "okay";
317};
318
319&usb0 {
320 status = "okay";
321};
322
323&usb1 {
324 status = "okay";
325};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
index 1ffa1c238a72..f8d221463c60 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
@@ -157,6 +157,8 @@
157 157
158 eth_phy0: ethernet-phy@0 { 158 eth_phy0: ethernet-phy@0 {
159 reg = <0>; 159 reg = <0>;
160 interrupt-parent = <&gpio_intc>;
161 interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
160 eee-broken-1000t; 162 eee-broken-1000t;
161 }; 163 };
162 }; 164 };
@@ -194,7 +196,9 @@
194 "USB HUB nRESET", "USB OTG Power En", 196 "USB HUB nRESET", "USB OTG Power En",
195 "J7 Header Pin2", "IR In", "J7 Header Pin4", 197 "J7 Header Pin2", "IR In", "J7 Header Pin4",
196 "J7 Header Pin6", "J7 Header Pin5", "J7 Header Pin7", 198 "J7 Header Pin6", "J7 Header Pin5", "J7 Header Pin7",
197 "HDMI CEC", "SYS LED"; 199 "HDMI CEC", "SYS LED",
200 /* GPIO_TEST_N */
201 "";
198}; 202};
199 203
200&pinctrl_periphs { 204&pinctrl_periphs {
@@ -233,11 +237,9 @@
233 "J2 Header Pin12", "J2 Header Pin13", 237 "J2 Header Pin12", "J2 Header Pin13",
234 "J2 Header Pin8", "J2 Header Pin10", 238 "J2 Header Pin8", "J2 Header Pin10",
235 "", "", "", "", "", 239 "", "", "", "", "",
236 "J2 Header Pin11", "", "J2 Header Pin7", 240 "J2 Header Pin11", "", "J2 Header Pin7", "",
237 /* Bank GPIOCLK */ 241 /* Bank GPIOCLK */
238 "", "", "", "", 242 "", "", "", "";
239 /* GPIO_TEST_N */
240 "";
241}; 243};
242 244
243&saradc { 245&saradc {
@@ -271,7 +273,7 @@
271/* eMMC */ 273/* eMMC */
272&sd_emmc_c { 274&sd_emmc_c {
273 status = "okay"; 275 status = "okay";
274 pinctrl-0 = <&emmc_pins>; 276 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
275 pinctrl-1 = <&emmc_clk_gate_pins>; 277 pinctrl-1 = <&emmc_clk_gate_pins>;
276 pinctrl-names = "default", "clk-gate"; 278 pinctrl-names = "default", "clk-gate";
277 279
@@ -301,6 +303,7 @@
301 303
302&usb1_phy { 304&usb1_phy {
303 status = "okay"; 305 status = "okay";
306 phy-supply = <&usb_otg_pwr>;
304}; 307};
305 308
306&usb0 { 309&usb0 {
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts
index 2054a474e0a9..9bf16bb7c491 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts
@@ -117,6 +117,8 @@
117 eth_phy0: ethernet-phy@3 { 117 eth_phy0: ethernet-phy@3 {
118 /* Micrel KSZ9031 (0x00221620) */ 118 /* Micrel KSZ9031 (0x00221620) */
119 reg = <3>; 119 reg = <3>;
120 interrupt-parent = <&gpio_intc>;
121 interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
120 }; 122 };
121 }; 123 };
122}; 124};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
index 23c08c3afd0a..932158a778ef 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
@@ -242,7 +242,7 @@
242/* eMMC */ 242/* eMMC */
243&sd_emmc_c { 243&sd_emmc_c {
244 status = "okay"; 244 status = "okay";
245 pinctrl-0 = <&emmc_pins>; 245 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
246 pinctrl-1 = <&emmc_clk_gate_pins>; 246 pinctrl-1 = <&emmc_clk_gate_pins>;
247 pinctrl-names = "default", "clk-gate"; 247 pinctrl-names = "default", "clk-gate";
248 248
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
index f2bc6dea1fc6..1fe8e24cf675 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
@@ -199,7 +199,7 @@
199/* eMMC */ 199/* eMMC */
200&sd_emmc_c { 200&sd_emmc_c {
201 status = "okay"; 201 status = "okay";
202 pinctrl-0 = <&emmc_pins>; 202 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
203 pinctrl-1 = <&emmc_clk_gate_pins>; 203 pinctrl-1 = <&emmc_clk_gate_pins>;
204 pinctrl-names = "default", "clk-gate"; 204 pinctrl-names = "default", "clk-gate";
205 205
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
index af834cdbba79..ead895a4e9a5 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
@@ -323,6 +323,12 @@
323 clock-names = "stmmaceth", "clkin0", "clkin1"; 323 clock-names = "stmmaceth", "clkin0", "clkin1";
324}; 324};
325 325
326&gpio_intc {
327 compatible = "amlogic,meson-gpio-intc",
328 "amlogic,meson-gxbb-gpio-intc";
329 status = "okay";
330};
331
326&hdmi_tx { 332&hdmi_tx {
327 compatible = "amlogic,meson-gxbb-dw-hdmi", "amlogic,meson-gx-dw-hdmi"; 333 compatible = "amlogic,meson-gxbb-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
328 resets = <&reset RESET_HDMITX_CAPB3>, 334 resets = <&reset RESET_HDMITX_CAPB3>,
@@ -379,15 +385,21 @@
379 reg-names = "mux", "pull", "pull-enable", "gpio"; 385 reg-names = "mux", "pull", "pull-enable", "gpio";
380 gpio-controller; 386 gpio-controller;
381 #gpio-cells = <2>; 387 #gpio-cells = <2>;
382 gpio-ranges = <&pinctrl_periphs 0 14 120>; 388 gpio-ranges = <&pinctrl_periphs 0 0 119>;
383 }; 389 };
384 390
385 emmc_pins: emmc { 391 emmc_pins: emmc {
386 mux { 392 mux {
387 groups = "emmc_nand_d07", 393 groups = "emmc_nand_d07",
388 "emmc_cmd", 394 "emmc_cmd",
389 "emmc_clk", 395 "emmc_clk";
390 "emmc_ds"; 396 function = "emmc";
397 };
398 };
399
400 emmc_ds_pins: emmc-ds {
401 mux {
402 groups = "emmc_ds";
391 function = "emmc"; 403 function = "emmc";
392 }; 404 };
393 }; 405 };
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
index 6827f235d7cf..4f3f03fc31b0 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
@@ -128,6 +128,8 @@
128 compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22"; 128 compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22";
129 reg = <0>; 129 reg = <0>;
130 max-speed = <1000>; 130 max-speed = <1000>;
131 interrupt-parent = <&gpio_intc>;
132 interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
131 }; 133 };
132}; 134};
133 135
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts
index 977b4240f3c1..e82582574160 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts
@@ -141,7 +141,7 @@
141/* eMMC */ 141/* eMMC */
142&sd_emmc_c { 142&sd_emmc_c {
143 status = "okay"; 143 status = "okay";
144 pinctrl-0 = <&emmc_pins>; 144 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
145 pinctrl-1 = <&emmc_clk_gate_pins>; 145 pinctrl-1 = <&emmc_clk_gate_pins>;
146 pinctrl-names = "default", "clk-gate"; 146 pinctrl-names = "default", "clk-gate";
147 147
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
index edc512ad0bac..71a6e1ce7ad5 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
@@ -122,7 +122,9 @@
122 "J9 Header Pin33", 122 "J9 Header Pin33",
123 "IR In", 123 "IR In",
124 "HDMI CEC", 124 "HDMI CEC",
125 "SYS LED"; 125 "SYS LED",
126 /* GPIO_TEST_N */
127 "";
126}; 128};
127 129
128&pinctrl_periphs { 130&pinctrl_periphs {
@@ -163,9 +165,7 @@
163 "WIFI 32K", "Bluetooth Enable", 165 "WIFI 32K", "Bluetooth Enable",
164 "Bluetooth WAKE HOST", 166 "Bluetooth WAKE HOST",
165 /* Bank GPIOCLK */ 167 /* Bank GPIOCLK */
166 "", "J9 Header Pin39", 168 "", "J9 Header Pin39";
167 /* GPIO_TEST_N */
168 "";
169}; 169};
170 170
171&pwm_AO_ab { 171&pwm_AO_ab {
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
index 64c54c92e214..dc9c3b8216c2 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
@@ -96,6 +96,13 @@
96 regulator-settling-time-down-us = <50000>; 96 regulator-settling-time-down-us = <50000>;
97 }; 97 };
98 98
99 vddio_ao18: regulator-vddio_ao18 {
100 compatible = "regulator-fixed";
101 regulator-name = "VDDIO_AO18";
102 regulator-min-microvolt = <1800000>;
103 regulator-max-microvolt = <1800000>;
104 };
105
99 vddio_boot: regulator-vddio_boot { 106 vddio_boot: regulator-vddio_boot {
100 compatible = "regulator-fixed"; 107 compatible = "regulator-fixed";
101 regulator-name = "VDDIO_BOOT"; 108 regulator-name = "VDDIO_BOOT";
@@ -121,6 +128,11 @@
121 status = "okay"; 128 status = "okay";
122}; 129};
123 130
131&internal_phy {
132 pinctrl-0 = <&eth_link_led_pins>, <&eth_act_led_pins>;
133 pinctrl-names = "default";
134};
135
124&ir { 136&ir {
125 status = "okay"; 137 status = "okay";
126 pinctrl-0 = <&remote_input_ao_pins>; 138 pinctrl-0 = <&remote_input_ao_pins>;
@@ -149,7 +161,9 @@
149 "7J1 Header Pin12", 161 "7J1 Header Pin12",
150 "IR In", 162 "IR In",
151 "9J3 Switch HDMI CEC/7J1 Header Pin11", 163 "9J3 Switch HDMI CEC/7J1 Header Pin11",
152 "7J1 Header Pin13"; 164 "7J1 Header Pin13",
165 /* GPIO_TEST_N */
166 "7J1 Header Pin15";
153}; 167};
154 168
155&pinctrl_periphs { 169&pinctrl_periphs {
@@ -191,9 +205,12 @@
191 "7J1 Header Pin32", "7J1 Header Pin29", 205 "7J1 Header Pin32", "7J1 Header Pin29",
192 "7J1 Header Pin31", 206 "7J1 Header Pin31",
193 /* Bank GPIOCLK */ 207 /* Bank GPIOCLK */
194 "7J1 Header Pin7", "", 208 "7J1 Header Pin7", "";
195 /* GPIO_TEST_N */ 209};
196 "7J1 Header Pin15"; 210
211&saradc {
212 status = "okay";
213 vref-supply = <&vddio_ao18>;
197}; 214};
198 215
199/* SD card */ 216/* SD card */
@@ -221,7 +238,7 @@
221/* eMMC */ 238/* eMMC */
222&sd_emmc_c { 239&sd_emmc_c {
223 status = "okay"; 240 status = "okay";
224 pinctrl-0 = <&emmc_pins>; 241 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
225 pinctrl-1 = <&emmc_clk_gate_pins>; 242 pinctrl-1 = <&emmc_clk_gate_pins>;
226 pinctrl-names = "default", "clk-gate"; 243 pinctrl-names = "default", "clk-gate";
227 244
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts
index 1b8f32867aa1..271f14279180 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts
@@ -229,7 +229,7 @@
229/* eMMC */ 229/* eMMC */
230&sd_emmc_c { 230&sd_emmc_c {
231 status = "okay"; 231 status = "okay";
232 pinctrl-0 = <&emmc_pins>; 232 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
233 pinctrl-1 = <&emmc_clk_gate_pins>; 233 pinctrl-1 = <&emmc_clk_gate_pins>;
234 pinctrl-names = "default", "clk-gate"; 234 pinctrl-names = "default", "clk-gate";
235 235
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi
index 129af9068814..ff09df1fd5a3 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi
@@ -135,7 +135,7 @@
135/* eMMC */ 135/* eMMC */
136&sd_emmc_c { 136&sd_emmc_c {
137 status = "okay"; 137 status = "okay";
138 pinctrl-0 = <&emmc_pins>; 138 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
139 pinctrl-1 = <&emmc_clk_gate_pins>; 139 pinctrl-1 = <&emmc_clk_gate_pins>;
140 pinctrl-names = "default", "clk-gate"; 140 pinctrl-names = "default", "clk-gate";
141 141
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
index d8dd3298b15c..8ed981f59e5a 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
@@ -49,6 +49,14 @@
49 49
50/ { 50/ {
51 compatible = "amlogic,meson-gxl"; 51 compatible = "amlogic,meson-gxl";
52
53 reserved-memory {
54 /* Alternate 3 MiB reserved for ARM Trusted Firmware (BL31) */
55 secmon_reserved_alt: secmon@5000000 {
56 reg = <0x0 0x05000000 0x0 0x300000>;
57 no-map;
58 };
59 };
52}; 60};
53 61
54&ethmac { 62&ethmac {
@@ -217,6 +225,12 @@
217 compatible = "amlogic,meson-gxl-aoclkc", "amlogic,meson-gx-aoclkc"; 225 compatible = "amlogic,meson-gxl-aoclkc", "amlogic,meson-gx-aoclkc";
218}; 226};
219 227
228&gpio_intc {
229 compatible = "amlogic,meson-gpio-intc",
230 "amlogic,meson-gxl-gpio-intc";
231 status = "okay";
232};
233
220&hdmi_tx { 234&hdmi_tx {
221 compatible = "amlogic,meson-gxl-dw-hdmi", "amlogic,meson-gx-dw-hdmi"; 235 compatible = "amlogic,meson-gxl-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
222 resets = <&reset RESET_HDMITX_CAPB3>, 236 resets = <&reset RESET_HDMITX_CAPB3>,
@@ -268,15 +282,21 @@
268 reg-names = "mux", "pull", "pull-enable", "gpio"; 282 reg-names = "mux", "pull", "pull-enable", "gpio";
269 gpio-controller; 283 gpio-controller;
270 #gpio-cells = <2>; 284 #gpio-cells = <2>;
271 gpio-ranges = <&pinctrl_periphs 0 10 101>; 285 gpio-ranges = <&pinctrl_periphs 0 0 100>;
272 }; 286 };
273 287
274 emmc_pins: emmc { 288 emmc_pins: emmc {
275 mux { 289 mux {
276 groups = "emmc_nand_d07", 290 groups = "emmc_nand_d07",
277 "emmc_cmd", 291 "emmc_cmd",
278 "emmc_clk", 292 "emmc_clk";
279 "emmc_ds"; 293 function = "emmc";
294 };
295 };
296
297 emmc_ds_pins: emmc-ds {
298 mux {
299 groups = "emmc_ds";
280 function = "emmc"; 300 function = "emmc";
281 }; 301 };
282 }; 302 };
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
new file mode 100644
index 000000000000..34a41b26a4ed
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
@@ -0,0 +1,400 @@
1/*
2 * Copyright (c) 2017 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
3 * Copyright (c) 2017 BayLibre, SAS
4 * Author: Neil Armstrong <narmstrong@baylibre.com>
5 *
6 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
7 */
8
9/dts-v1/;
10
11#include <dt-bindings/input/input.h>
12#include <dt-bindings/thermal/thermal.h>
13
14#include "meson-gxm.dtsi"
15
16/ {
17 compatible = "khadas,vim2", "amlogic,s912", "amlogic,meson-gxm";
18 model = "Khadas VIM2";
19
20 aliases {
21 serial0 = &uart_AO;
22 serial1 = &uart_A;
23 serial2 = &uart_AO_B;
24 };
25
26 chosen {
27 stdout-path = "serial0:115200n8";
28 };
29
30 memory@0 {
31 device_type = "memory";
32 reg = <0x0 0x0 0x0 0x80000000>;
33 };
34
35 adc-keys {
36 compatible = "adc-keys";
37 io-channels = <&saradc 0>;
38 io-channel-names = "buttons";
39 keyup-threshold-microvolt = <1710000>;
40
41 button-function {
42 label = "Function";
43 linux,code = <KEY_FN>;
44 press-threshold-microvolt = <10000>;
45 };
46 };
47
48 emmc_pwrseq: emmc-pwrseq {
49 compatible = "mmc-pwrseq-emmc";
50 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
51 };
52
53 gpio_fan: gpio-fan {
54 compatible = "gpio-fan";
55 gpios = <&gpio GPIODV_14 GPIO_ACTIVE_HIGH
56 &gpio GPIODV_15 GPIO_ACTIVE_HIGH>;
57 /* Dummy RPM values since fan is optional */
58 gpio-fan,speed-map = <0 0
59 1 1
60 2 2
61 3 3>;
62 cooling-min-level = <0>;
63 cooling-max-level = <3>;
64 #cooling-cells = <2>;
65 };
66
67 gpio-keys-polled {
68 compatible = "gpio-keys-polled";
69 #address-cells = <1>;
70 #size-cells = <0>;
71 poll-interval = <100>;
72
73 button@0 {
74 label = "power";
75 linux,code = <KEY_POWER>;
76 gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
77 };
78 };
79
80 hdmi-connector {
81 compatible = "hdmi-connector";
82 type = "a";
83
84 port {
85 hdmi_connector_in: endpoint {
86 remote-endpoint = <&hdmi_tx_tmds_out>;
87 };
88 };
89 };
90
91 pwmleds {
92 compatible = "pwm-leds";
93
94 power {
95 label = "vim:red:power";
96 pwms = <&pwm_AO_ab 1 7812500 0>;
97 max-brightness = <255>;
98 linux,default-trigger = "default-on";
99 };
100 };
101
102 sdio_pwrseq: sdio-pwrseq {
103 compatible = "mmc-pwrseq-simple";
104 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
105 clocks = <&wifi32k>;
106 clock-names = "ext_clock";
107 };
108
109 thermal-zones {
110 cpu-thermal {
111 polling-delay-passive = <250>; /* milliseconds */
112 polling-delay = <1000>; /* milliseconds */
113
114 thermal-sensors = <&scpi_sensors 0>;
115
116 trips {
117 cpu_alert0: cpu-alert0 {
118 temperature = <70000>; /* millicelsius */
119 hysteresis = <2000>; /* millicelsius */
120 type = "active";
121 };
122
123 cpu_alert1: cpu-alert1 {
124 temperature = <80000>; /* millicelsius */
125 hysteresis = <2000>; /* millicelsius */
126 type = "passive";
127 };
128 };
129
130 cooling-maps {
131 map0 {
132 trip = <&cpu_alert0>;
133 cooling-device = <&gpio_fan THERMAL_NO_LIMIT 1>;
134 };
135
136 map1 {
137 trip = <&cpu_alert1>;
138 cooling-device = <&gpio_fan 2 THERMAL_NO_LIMIT>;
139 };
140
141 map2 {
142 trip = <&cpu_alert1>;
143 cooling-device =
144 <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
145 };
146
147 map3 {
148 trip = <&cpu_alert1>;
149 cooling-device =
150 <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
151 };
152 };
153 };
154 };
155
156 vcc_3v3: regulator-vcc_3v3 {
157 compatible = "regulator-fixed";
158 regulator-name = "VCC_3V3";
159 regulator-min-microvolt = <3300000>;
160 regulator-max-microvolt = <3300000>;
161 };
162
163 vddio_ao18: regulator-vddio_ao18 {
164 compatible = "regulator-fixed";
165 regulator-name = "VDDIO_AO18";
166 regulator-min-microvolt = <1800000>;
167 regulator-max-microvolt = <1800000>;
168 };
169
170 vddio_boot: regulator-vddio_boot {
171 compatible = "regulator-fixed";
172 regulator-name = "VDDIO_BOOT";
173 regulator-min-microvolt = <1800000>;
174 regulator-max-microvolt = <1800000>;
175 };
176
177 vddao_3v3: regulator-vddao_3v3 {
178 compatible = "regulator-fixed";
179 regulator-name = "VDDAO_3V3";
180 regulator-min-microvolt = <3300000>;
181 regulator-max-microvolt = <3300000>;
182 };
183
184 wifi32k: wifi32k {
185 compatible = "pwm-clock";
186 #clock-cells = <0>;
187 clock-frequency = <32768>;
188 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
189 };
190};
191
192&cec_AO {
193 status = "okay";
194 pinctrl-0 = <&ao_cec_pins>;
195 pinctrl-names = "default";
196 hdmi-phandle = <&hdmi_tx>;
197};
198
199&cpu0 {
200 cooling-min-level = <0>;
201 cooling-max-level = <6>;
202 #cooling-cells = <2>;
203};
204
205&cpu4 {
206 cooling-min-level = <0>;
207 cooling-max-level = <4>;
208 #cooling-cells = <2>;
209};
210
211&ethmac {
212 pinctrl-0 = <&eth_pins>;
213 pinctrl-names = "default";
214
215 /* Select external PHY by default */
216 phy-handle = <&external_phy>;
217
218 amlogic,tx-delay-ns = <2>;
219
220 /* External PHY reset is shared with internal PHY Led signals */
221 snps,reset-gpio = <&gpio GPIOZ_14 0>;
222 snps,reset-delays-us = <0 10000 1000000>;
223 snps,reset-active-low;
224
225 /* External PHY is in RGMII */
226 phy-mode = "rgmii";
227
228 status = "okay";
229};
230
231&external_mdio {
232 external_phy: ethernet-phy@0 {
233 /* Realtek RTL8211F (0x001cc916) */
234 reg = <0>;
235 };
236};
237
238&hdmi_tx {
239 status = "okay";
240 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
241 pinctrl-names = "default";
242};
243
244&hdmi_tx_tmds_port {
245 hdmi_tx_tmds_out: endpoint {
246 remote-endpoint = <&hdmi_connector_in>;
247 };
248};
249
250&i2c_A {
251 status = "okay";
252 pinctrl-0 = <&i2c_a_pins>;
253 pinctrl-names = "default";
254};
255
256&i2c_B {
257 status = "okay";
258 pinctrl-0 = <&i2c_b_pins>;
259 pinctrl-names = "default";
260
261 rtc: rtc@51 {
262 /* has to be enabled manually when a battery is connected: */
263 status = "disabled";
264 compatible = "haoyu,hym8563";
265 reg = <0x51>;
266 #clock-cells = <0>;
267 clock-frequency = <32768>;
268 clock-output-names = "xin32k";
269 };
270};
271
272&ir {
273 status = "okay";
274 pinctrl-0 = <&remote_input_ao_pins>;
275 pinctrl-names = "default";
276 linux,rc-map-name = "rc-geekbox";
277};
278
279&pwm_AO_ab {
280 status = "okay";
281 pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>;
282 pinctrl-names = "default";
283 clocks = <&clkc CLKID_FCLK_DIV4>;
284 clock-names = "clkin0";
285};
286
287&pwm_ef {
288 status = "okay";
289 pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>;
290 pinctrl-names = "default";
291 clocks = <&clkc CLKID_FCLK_DIV4>;
292 clock-names = "clkin0";
293};
294
295&sd_emmc_a {
296 status = "okay";
297 pinctrl-0 = <&sdio_pins>;
298 pinctrl-names = "default";
299 #address-cells = <1>;
300 #size-cells = <0>;
301
302 bus-width = <4>;
303 max-frequency = <100000000>;
304
305 non-removable;
306 disable-wp;
307
308 mmc-pwrseq = <&sdio_pwrseq>;
309
310 vmmc-supply = <&vddao_3v3>;
311 vqmmc-supply = <&vddio_boot>;
312
313 brcmf: wifi@1 {
314 reg = <1>;
315 compatible = "brcm,bcm4329-fmac";
316 };
317};
318
319/* SD card */
320&sd_emmc_b {
321 status = "okay";
322 pinctrl-0 = <&sdcard_pins>;
323 pinctrl-names = "default";
324
325 bus-width = <4>;
326 cap-sd-highspeed;
327 max-frequency = <100000000>;
328 disable-wp;
329
330 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
331 cd-inverted;
332
333 vmmc-supply = <&vddao_3v3>;
334 vqmmc-supply = <&vddio_boot>;
335};
336
337/* eMMC */
338&sd_emmc_c {
339 status = "okay";
340 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
341 pinctrl-names = "default";
342
343 bus-width = <8>;
344 cap-sd-highspeed;
345 cap-mmc-highspeed;
346 max-frequency = <200000000>;
347 non-removable;
348 disable-wp;
349 mmc-ddr-1_8v;
350 mmc-hs200-1_8v;
351 mmc-hs400-1_8v;
352
353 mmc-pwrseq = <&emmc_pwrseq>;
354 vmmc-supply = <&vcc_3v3>;
355 vqmmc-supply = <&vddio_boot>;
356};
357
358/*
359 * EMMC_DS pin is shared between SPI NOR CS and eMMC Data Strobe
360 * Remove emmc_ds_pins from sd_emmc_c pinctrl-0 then spifc can be enabled
361 */
362&spifc {
363 status = "disabled";
364 pinctrl-0 = <&nor_pins>;
365 pinctrl-names = "default";
366
367 w25q32: spi-flash@0 {
368 #address-cells = <1>;
369 #size-cells = <1>;
370 compatible = "winbond,w25q16", "jedec,spi-nor";
371 reg = <0>;
372 spi-max-frequency = <3000000>;
373 };
374};
375
376/* This one is connected to the Bluetooth module */
377&uart_A {
378 status = "okay";
379 pinctrl-0 = <&uart_a_pins>;
380 pinctrl-names = "default";
381};
382
383/* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */
384&uart_AO {
385 status = "okay";
386 pinctrl-0 = <&uart_ao_a_pins>;
387 pinctrl-names = "default";
388};
389
390/* This is brought out on the UART_RX_AO_B (15) and UART_TX_AO_B (16) pins: */
391&uart_AO_B {
392 status = "okay";
393 pinctrl-0 = <&uart_ao_b_pins>;
394 pinctrl-names = "default";
395};
396
397&saradc {
398 status = "okay";
399 vref-supply = <&vddio_ao18>;
400};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
index 22c697732f66..e7a228f6cc7e 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
@@ -193,7 +193,7 @@
193/* eMMC */ 193/* eMMC */
194&sd_emmc_c { 194&sd_emmc_c {
195 status = "okay"; 195 status = "okay";
196 pinctrl-0 = <&emmc_pins>; 196 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
197 pinctrl-1 = <&emmc_clk_gate_pins>; 197 pinctrl-1 = <&emmc_clk_gate_pins>;
198 pinctrl-names = "default", "clk-gate"; 198 pinctrl-names = "default", "clk-gate";
199 199
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts
index b65776b01911..66c6da7e112c 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts
@@ -110,6 +110,8 @@
110 compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22"; 110 compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22";
111 reg = <0>; 111 reg = <0>;
112 max-speed = <1000>; 112 max-speed = <1000>;
113 interrupt-parent = <&gpio_intc>;
114 interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
113 }; 115 };
114}; 116};
115 117
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
index 470f72bb863c..a5e9b955d5ed 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
@@ -216,7 +216,7 @@
216/* eMMC */ 216/* eMMC */
217&sd_emmc_c { 217&sd_emmc_c {
218 status = "okay"; 218 status = "okay";
219 pinctrl-0 = <&emmc_pins>; 219 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
220 pinctrl-names = "default"; 220 pinctrl-names = "default";
221 221
222 bus-width = <8>; 222 bus-width = <8>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-vega-s96.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-vega-s96.dts
new file mode 100644
index 000000000000..dc37eecb9514
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-vega-s96.dts
@@ -0,0 +1,38 @@
1/*
2 * Copyright (c) 2017 BayLibre, SAS.
3 * Author: Neil Armstrong <narmstrong@baylibre.com>
4 * Copyright (c) 2017 Oleg <balbes-150@yandex.ru>
5 *
6 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
7 */
8
9/dts-v1/;
10
11#include "meson-gxm.dtsi"
12#include "meson-gx-p23x-q20x.dtsi"
13
14/ {
15 compatible = "tronsmart,vega-s96", "amlogic,s912", "amlogic,meson-gxm";
16 model = "Tronsmart Vega S96";
17
18};
19
20&ethmac {
21 pinctrl-0 = <&eth_pins>;
22 pinctrl-names = "default";
23
24 /* Select external PHY by default */
25 phy-handle = <&external_phy>;
26
27 amlogic,tx-delay-ns = <2>;
28
29 /* External PHY is in RGMII */
30 phy-mode = "rgmii";
31};
32
33&external_mdio {
34 external_phy: ethernet-phy@0 {
35 /* Realtek RTL8211F (0x001cc916) */
36 reg = <0>;
37 };
38};
diff --git a/arch/arm64/boot/dts/apm/apm-shadowcat.dtsi b/arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
index c9ffffb96e43..d8ecd1661461 100644
--- a/arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
+++ b/arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
@@ -19,7 +19,7 @@
19 #address-cells = <2>; 19 #address-cells = <2>;
20 #size-cells = <0>; 20 #size-cells = <0>;
21 21
22 cpu@000 { 22 cpu@0 {
23 device_type = "cpu"; 23 device_type = "cpu";
24 compatible = "apm,strega", "arm,armv8"; 24 compatible = "apm,strega", "arm,armv8";
25 reg = <0x0 0x000>; 25 reg = <0x0 0x000>;
@@ -29,7 +29,7 @@
29 #clock-cells = <1>; 29 #clock-cells = <1>;
30 clocks = <&pmd0clk 0>; 30 clocks = <&pmd0clk 0>;
31 }; 31 };
32 cpu@001 { 32 cpu@1 {
33 device_type = "cpu"; 33 device_type = "cpu";
34 compatible = "apm,strega", "arm,armv8"; 34 compatible = "apm,strega", "arm,armv8";
35 reg = <0x0 0x001>; 35 reg = <0x0 0x001>;
@@ -125,7 +125,7 @@
125 <0x0 0x780a0000 0x0 0x20000>, /* GIC CPU */ 125 <0x0 0x780a0000 0x0 0x20000>, /* GIC CPU */
126 <0x0 0x780c0000 0x0 0x10000>, /* GIC VCPU Control */ 126 <0x0 0x780c0000 0x0 0x10000>, /* GIC VCPU Control */
127 <0x0 0x780e0000 0x0 0x20000>; /* GIC VCPU */ 127 <0x0 0x780e0000 0x0 0x20000>; /* GIC VCPU */
128 v2m0: v2m@00000 { 128 v2m0: v2m@0 {
129 compatible = "arm,gic-v2m-frame"; 129 compatible = "arm,gic-v2m-frame";
130 msi-controller; 130 msi-controller;
131 reg = <0x0 0x0 0x0 0x1000>; 131 reg = <0x0 0x0 0x0 0x1000>;
diff --git a/arch/arm64/boot/dts/apm/apm-storm.dtsi b/arch/arm64/boot/dts/apm/apm-storm.dtsi
index c09a36fed917..00e82b8e9a19 100644
--- a/arch/arm64/boot/dts/apm/apm-storm.dtsi
+++ b/arch/arm64/boot/dts/apm/apm-storm.dtsi
@@ -19,7 +19,7 @@
19 #address-cells = <2>; 19 #address-cells = <2>;
20 #size-cells = <0>; 20 #size-cells = <0>;
21 21
22 cpu@000 { 22 cpu@0 {
23 device_type = "cpu"; 23 device_type = "cpu";
24 compatible = "apm,potenza", "arm,armv8"; 24 compatible = "apm,potenza", "arm,armv8";
25 reg = <0x0 0x000>; 25 reg = <0x0 0x000>;
@@ -27,7 +27,7 @@
27 cpu-release-addr = <0x1 0x0000fff8>; 27 cpu-release-addr = <0x1 0x0000fff8>;
28 next-level-cache = <&xgene_L2_0>; 28 next-level-cache = <&xgene_L2_0>;
29 }; 29 };
30 cpu@001 { 30 cpu@1 {
31 device_type = "cpu"; 31 device_type = "cpu";
32 compatible = "apm,potenza", "arm,armv8"; 32 compatible = "apm,potenza", "arm,armv8";
33 reg = <0x0 0x001>; 33 reg = <0x0 0x001>;
diff --git a/arch/arm64/boot/dts/arm/Makefile b/arch/arm64/boot/dts/arm/Makefile
index 4256bae99925..5b45144b371a 100644
--- a/arch/arm64/boot/dts/arm/Makefile
+++ b/arch/arm64/boot/dts/arm/Makefile
@@ -1,5 +1,7 @@
1# SPDX-License-Identifier: GPL-2.0 1# SPDX-License-Identifier: GPL-2.0
2dtb-$(CONFIG_ARCH_VEXPRESS) += foundation-v8.dtb foundation-v8-gicv3.dtb 2dtb-$(CONFIG_ARCH_VEXPRESS) += \
3 foundation-v8.dtb foundation-v8-psci.dtb \
4 foundation-v8-gicv3.dtb foundation-v8-gicv3-psci.dtb
3dtb-$(CONFIG_ARCH_VEXPRESS) += juno.dtb juno-r1.dtb juno-r2.dtb 5dtb-$(CONFIG_ARCH_VEXPRESS) += juno.dtb juno-r1.dtb juno-r2.dtb
4dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb 6dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb
5dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2f-1xv7-ca53x2.dtb 7dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2f-1xv7-ca53x2.dtb
diff --git a/arch/arm64/boot/dts/arm/foundation-v8-gicv2.dtsi b/arch/arm64/boot/dts/arm/foundation-v8-gicv2.dtsi
new file mode 100644
index 000000000000..851abf34fc80
--- /dev/null
+++ b/arch/arm64/boot/dts/arm/foundation-v8-gicv2.dtsi
@@ -0,0 +1,19 @@
1/*
2 * ARM Ltd.
3 *
4 * ARMv8 Foundation model DTS (GICv2 configuration)
5 */
6
7/ {
8 gic: interrupt-controller@2c001000 {
9 compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
10 #interrupt-cells = <3>;
11 #address-cells = <2>;
12 interrupt-controller;
13 reg = <0x0 0x2c001000 0 0x1000>,
14 <0x0 0x2c002000 0 0x2000>,
15 <0x0 0x2c004000 0 0x2000>,
16 <0x0 0x2c006000 0 0x2000>;
17 interrupts = <1 9 0xf04>;
18 };
19};
diff --git a/arch/arm64/boot/dts/arm/foundation-v8-gicv3-psci.dts b/arch/arm64/boot/dts/arm/foundation-v8-gicv3-psci.dts
new file mode 100644
index 000000000000..e096e670bec3
--- /dev/null
+++ b/arch/arm64/boot/dts/arm/foundation-v8-gicv3-psci.dts
@@ -0,0 +1,9 @@
1/*
2 * ARM Ltd.
3 *
4 * ARMv8 Foundation model DTS (GICv3+PSCI configuration)
5 */
6
7#include "foundation-v8.dtsi"
8#include "foundation-v8-gicv3.dtsi"
9#include "foundation-v8-psci.dtsi"
diff --git a/arch/arm64/boot/dts/arm/foundation-v8-gicv3.dts b/arch/arm64/boot/dts/arm/foundation-v8-gicv3.dts
index 4825cdbdcf46..c87380e87f59 100644
--- a/arch/arm64/boot/dts/arm/foundation-v8-gicv3.dts
+++ b/arch/arm64/boot/dts/arm/foundation-v8-gicv3.dts
@@ -6,26 +6,5 @@
6 */ 6 */
7 7
8#include "foundation-v8.dtsi" 8#include "foundation-v8.dtsi"
9 9#include "foundation-v8-gicv3.dtsi"
10/ { 10#include "foundation-v8-spin-table.dtsi"
11 gic: interrupt-controller@2f000000 {
12 compatible = "arm,gic-v3";
13 #interrupt-cells = <3>;
14 #address-cells = <2>;
15 #size-cells = <2>;
16 ranges;
17 interrupt-controller;
18 reg = <0x0 0x2f000000 0x0 0x10000>,
19 <0x0 0x2f100000 0x0 0x200000>,
20 <0x0 0x2c000000 0x0 0x2000>,
21 <0x0 0x2c010000 0x0 0x2000>,
22 <0x0 0x2c02f000 0x0 0x2000>;
23 interrupts = <1 9 4>;
24
25 its: its@2f020000 {
26 compatible = "arm,gic-v3-its";
27 msi-controller;
28 reg = <0x0 0x2f020000 0x0 0x20000>;
29 };
30 };
31};
diff --git a/arch/arm64/boot/dts/arm/foundation-v8-gicv3.dtsi b/arch/arm64/boot/dts/arm/foundation-v8-gicv3.dtsi
new file mode 100644
index 000000000000..91fc5c60d88b
--- /dev/null
+++ b/arch/arm64/boot/dts/arm/foundation-v8-gicv3.dtsi
@@ -0,0 +1,28 @@
1/*
2 * ARM Ltd.
3 *
4 * ARMv8 Foundation model DTS (GICv3 configuration)
5 */
6
7/ {
8 gic: interrupt-controller@2f000000 {
9 compatible = "arm,gic-v3";
10 #interrupt-cells = <3>;
11 #address-cells = <2>;
12 #size-cells = <2>;
13 ranges;
14 interrupt-controller;
15 reg = <0x0 0x2f000000 0x0 0x10000>,
16 <0x0 0x2f100000 0x0 0x200000>,
17 <0x0 0x2c000000 0x0 0x2000>,
18 <0x0 0x2c010000 0x0 0x2000>,
19 <0x0 0x2c02f000 0x0 0x2000>;
20 interrupts = <1 9 4>;
21
22 its: its@2f020000 {
23 compatible = "arm,gic-v3-its";
24 msi-controller;
25 reg = <0x0 0x2f020000 0x0 0x20000>;
26 };
27 };
28};
diff --git a/arch/arm64/boot/dts/arm/foundation-v8-psci.dts b/arch/arm64/boot/dts/arm/foundation-v8-psci.dts
new file mode 100644
index 000000000000..723f23c7cd31
--- /dev/null
+++ b/arch/arm64/boot/dts/arm/foundation-v8-psci.dts
@@ -0,0 +1,9 @@
1/*
2 * ARM Ltd.
3 *
4 * ARMv8 Foundation model DTS (GICv2+PSCI configuration)
5 */
6
7#include "foundation-v8.dtsi"
8#include "foundation-v8-gicv2.dtsi"
9#include "foundation-v8-psci.dtsi"
diff --git a/arch/arm64/boot/dts/arm/foundation-v8-psci.dtsi b/arch/arm64/boot/dts/arm/foundation-v8-psci.dtsi
new file mode 100644
index 000000000000..16cdf395728b
--- /dev/null
+++ b/arch/arm64/boot/dts/arm/foundation-v8-psci.dtsi
@@ -0,0 +1,28 @@
1/*
2 * ARM Ltd.
3 *
4 * ARMv8 Foundation model DTS (PSCI configuration)
5 */
6
7/ {
8 psci {
9 compatible = "arm,psci-1.0";
10 method = "smc";
11 };
12};
13
14&cpu0 {
15 enable-method = "psci";
16};
17
18&cpu1 {
19 enable-method = "psci";
20};
21
22&cpu2 {
23 enable-method = "psci";
24};
25
26&cpu3 {
27 enable-method = "psci";
28};
diff --git a/arch/arm64/boot/dts/arm/foundation-v8-spin-table.dtsi b/arch/arm64/boot/dts/arm/foundation-v8-spin-table.dtsi
new file mode 100644
index 000000000000..4d4186ba0e8c
--- /dev/null
+++ b/arch/arm64/boot/dts/arm/foundation-v8-spin-table.dtsi
@@ -0,0 +1,25 @@
1/*
2 * ARM Ltd.
3 *
4 * ARMv8 Foundation model DTS (spin table configuration)
5 */
6
7&cpu0 {
8 enable-method = "spin-table";
9 cpu-release-addr = <0x0 0x8000fff8>;
10};
11
12&cpu1 {
13 enable-method = "spin-table";
14 cpu-release-addr = <0x0 0x8000fff8>;
15};
16
17&cpu2 {
18 enable-method = "spin-table";
19 cpu-release-addr = <0x0 0x8000fff8>;
20};
21
22&cpu3 {
23 enable-method = "spin-table";
24 cpu-release-addr = <0x0 0x8000fff8>;
25};
diff --git a/arch/arm64/boot/dts/arm/foundation-v8.dts b/arch/arm64/boot/dts/arm/foundation-v8.dts
index 8a9136f4ab74..b17347d75ec6 100644
--- a/arch/arm64/boot/dts/arm/foundation-v8.dts
+++ b/arch/arm64/boot/dts/arm/foundation-v8.dts
@@ -6,17 +6,5 @@
6 */ 6 */
7 7
8#include "foundation-v8.dtsi" 8#include "foundation-v8.dtsi"
9 9#include "foundation-v8-gicv2.dtsi"
10/ { 10#include "foundation-v8-spin-table.dtsi"
11 gic: interrupt-controller@2c001000 {
12 compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
13 #interrupt-cells = <3>;
14 #address-cells = <2>;
15 interrupt-controller;
16 reg = <0x0 0x2c001000 0 0x1000>,
17 <0x0 0x2c002000 0 0x2000>,
18 <0x0 0x2c004000 0 0x2000>,
19 <0x0 0x2c006000 0 0x2000>;
20 interrupts = <1 9 0xf04>;
21 };
22};
diff --git a/arch/arm64/boot/dts/arm/foundation-v8.dtsi b/arch/arm64/boot/dts/arm/foundation-v8.dtsi
index f0b67e439f58..e080277d27ae 100644
--- a/arch/arm64/boot/dts/arm/foundation-v8.dtsi
+++ b/arch/arm64/boot/dts/arm/foundation-v8.dtsi
@@ -29,36 +29,28 @@
29 #address-cells = <2>; 29 #address-cells = <2>;
30 #size-cells = <0>; 30 #size-cells = <0>;
31 31
32 cpu@0 { 32 cpu0: cpu@0 {
33 device_type = "cpu"; 33 device_type = "cpu";
34 compatible = "arm,armv8"; 34 compatible = "arm,armv8";
35 reg = <0x0 0x0>; 35 reg = <0x0 0x0>;
36 enable-method = "spin-table";
37 cpu-release-addr = <0x0 0x8000fff8>;
38 next-level-cache = <&L2_0>; 36 next-level-cache = <&L2_0>;
39 }; 37 };
40 cpu@1 { 38 cpu1: cpu@1 {
41 device_type = "cpu"; 39 device_type = "cpu";
42 compatible = "arm,armv8"; 40 compatible = "arm,armv8";
43 reg = <0x0 0x1>; 41 reg = <0x0 0x1>;
44 enable-method = "spin-table";
45 cpu-release-addr = <0x0 0x8000fff8>;
46 next-level-cache = <&L2_0>; 42 next-level-cache = <&L2_0>;
47 }; 43 };
48 cpu@2 { 44 cpu2: cpu@2 {
49 device_type = "cpu"; 45 device_type = "cpu";
50 compatible = "arm,armv8"; 46 compatible = "arm,armv8";
51 reg = <0x0 0x2>; 47 reg = <0x0 0x2>;
52 enable-method = "spin-table";
53 cpu-release-addr = <0x0 0x8000fff8>;
54 next-level-cache = <&L2_0>; 48 next-level-cache = <&L2_0>;
55 }; 49 };
56 cpu@3 { 50 cpu3: cpu@3 {
57 device_type = "cpu"; 51 device_type = "cpu";
58 compatible = "arm,armv8"; 52 compatible = "arm,armv8";
59 reg = <0x0 0x3>; 53 reg = <0x0 0x3>;
60 enable-method = "spin-table";
61 cpu-release-addr = <0x0 0x8000fff8>;
62 next-level-cache = <&L2_0>; 54 next-level-cache = <&L2_0>;
63 }; 55 };
64 56
@@ -98,7 +90,7 @@
98 timeout-sec = <30>; 90 timeout-sec = <30>;
99 }; 91 };
100 92
101 smb@08000000 { 93 smb@8000000 {
102 compatible = "arm,vexpress,v2m-p1", "simple-bus"; 94 compatible = "arm,vexpress,v2m-p1", "simple-bus";
103 arm,v2m-memory-map = "rs1"; 95 arm,v2m-memory-map = "rs1";
104 #address-cells = <2>; /* SMB chipselect number and offset */ 96 #address-cells = <2>; /* SMB chipselect number and offset */
@@ -190,12 +182,12 @@
190 #size-cells = <1>; 182 #size-cells = <1>;
191 ranges = <0 3 0 0x200000>; 183 ranges = <0 3 0 0x200000>;
192 184
193 v2m_sysreg: sysreg@010000 { 185 v2m_sysreg: sysreg@10000 {
194 compatible = "arm,vexpress-sysreg"; 186 compatible = "arm,vexpress-sysreg";
195 reg = <0x010000 0x1000>; 187 reg = <0x010000 0x1000>;
196 }; 188 };
197 189
198 v2m_serial0: uart@090000 { 190 v2m_serial0: uart@90000 {
199 compatible = "arm,pl011", "arm,primecell"; 191 compatible = "arm,pl011", "arm,primecell";
200 reg = <0x090000 0x1000>; 192 reg = <0x090000 0x1000>;
201 interrupts = <5>; 193 interrupts = <5>;
@@ -203,7 +195,7 @@
203 clock-names = "uartclk", "apb_pclk"; 195 clock-names = "uartclk", "apb_pclk";
204 }; 196 };
205 197
206 v2m_serial1: uart@0a0000 { 198 v2m_serial1: uart@a0000 {
207 compatible = "arm,pl011", "arm,primecell"; 199 compatible = "arm,pl011", "arm,primecell";
208 reg = <0x0a0000 0x1000>; 200 reg = <0x0a0000 0x1000>;
209 interrupts = <6>; 201 interrupts = <6>;
@@ -211,7 +203,7 @@
211 clock-names = "uartclk", "apb_pclk"; 203 clock-names = "uartclk", "apb_pclk";
212 }; 204 };
213 205
214 v2m_serial2: uart@0b0000 { 206 v2m_serial2: uart@b0000 {
215 compatible = "arm,pl011", "arm,primecell"; 207 compatible = "arm,pl011", "arm,primecell";
216 reg = <0x0b0000 0x1000>; 208 reg = <0x0b0000 0x1000>;
217 interrupts = <7>; 209 interrupts = <7>;
@@ -219,7 +211,7 @@
219 clock-names = "uartclk", "apb_pclk"; 211 clock-names = "uartclk", "apb_pclk";
220 }; 212 };
221 213
222 v2m_serial3: uart@0c0000 { 214 v2m_serial3: uart@c0000 {
223 compatible = "arm,pl011", "arm,primecell"; 215 compatible = "arm,pl011", "arm,primecell";
224 reg = <0x0c0000 0x1000>; 216 reg = <0x0c0000 0x1000>;
225 interrupts = <8>; 217 interrupts = <8>;
@@ -227,7 +219,7 @@
227 clock-names = "uartclk", "apb_pclk"; 219 clock-names = "uartclk", "apb_pclk";
228 }; 220 };
229 221
230 virtio-block@0130000 { 222 virtio-block@130000 {
231 compatible = "virtio,mmio"; 223 compatible = "virtio,mmio";
232 reg = <0x130000 0x200>; 224 reg = <0x130000 0x200>;
233 interrupts = <42>; 225 interrupts = <42>;
diff --git a/arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts b/arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts
index 7810632d3438..06c8117e812a 100644
--- a/arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts
+++ b/arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts
@@ -105,7 +105,7 @@
105 <0 63 4>; 105 <0 63 4>;
106 }; 106 };
107 107
108 smb@08000000 { 108 smb@8000000 {
109 compatible = "simple-bus"; 109 compatible = "simple-bus";
110 110
111 #address-cells = <2>; 111 #address-cells = <2>;
diff --git a/arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi b/arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi
index e18fe006cc2a..1134e5d8df18 100644
--- a/arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi
+++ b/arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi
@@ -61,14 +61,14 @@
61 #size-cells = <1>; 61 #size-cells = <1>;
62 ranges = <0 3 0 0x200000>; 62 ranges = <0 3 0 0x200000>;
63 63
64 v2m_sysreg: sysreg@010000 { 64 v2m_sysreg: sysreg@10000 {
65 compatible = "arm,vexpress-sysreg"; 65 compatible = "arm,vexpress-sysreg";
66 reg = <0x010000 0x1000>; 66 reg = <0x010000 0x1000>;
67 gpio-controller; 67 gpio-controller;
68 #gpio-cells = <2>; 68 #gpio-cells = <2>;
69 }; 69 };
70 70
71 v2m_sysctl: sysctl@020000 { 71 v2m_sysctl: sysctl@20000 {
72 compatible = "arm,sp810", "arm,primecell"; 72 compatible = "arm,sp810", "arm,primecell";
73 reg = <0x020000 0x1000>; 73 reg = <0x020000 0x1000>;
74 clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&v2m_clk24mhz>; 74 clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&v2m_clk24mhz>;
@@ -79,7 +79,7 @@
79 assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>; 79 assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>;
80 }; 80 };
81 81
82 aaci@040000 { 82 aaci@40000 {
83 compatible = "arm,pl041", "arm,primecell"; 83 compatible = "arm,pl041", "arm,primecell";
84 reg = <0x040000 0x1000>; 84 reg = <0x040000 0x1000>;
85 interrupts = <11>; 85 interrupts = <11>;
@@ -87,7 +87,7 @@
87 clock-names = "apb_pclk"; 87 clock-names = "apb_pclk";
88 }; 88 };
89 89
90 mmci@050000 { 90 mmci@50000 {
91 compatible = "arm,pl180", "arm,primecell"; 91 compatible = "arm,pl180", "arm,primecell";
92 reg = <0x050000 0x1000>; 92 reg = <0x050000 0x1000>;
93 interrupts = <9 10>; 93 interrupts = <9 10>;
@@ -99,7 +99,7 @@
99 clock-names = "mclk", "apb_pclk"; 99 clock-names = "mclk", "apb_pclk";
100 }; 100 };
101 101
102 kmi@060000 { 102 kmi@60000 {
103 compatible = "arm,pl050", "arm,primecell"; 103 compatible = "arm,pl050", "arm,primecell";
104 reg = <0x060000 0x1000>; 104 reg = <0x060000 0x1000>;
105 interrupts = <12>; 105 interrupts = <12>;
@@ -107,7 +107,7 @@
107 clock-names = "KMIREFCLK", "apb_pclk"; 107 clock-names = "KMIREFCLK", "apb_pclk";
108 }; 108 };
109 109
110 kmi@070000 { 110 kmi@70000 {
111 compatible = "arm,pl050", "arm,primecell"; 111 compatible = "arm,pl050", "arm,primecell";
112 reg = <0x070000 0x1000>; 112 reg = <0x070000 0x1000>;
113 interrupts = <13>; 113 interrupts = <13>;
@@ -115,7 +115,7 @@
115 clock-names = "KMIREFCLK", "apb_pclk"; 115 clock-names = "KMIREFCLK", "apb_pclk";
116 }; 116 };
117 117
118 v2m_serial0: uart@090000 { 118 v2m_serial0: uart@90000 {
119 compatible = "arm,pl011", "arm,primecell"; 119 compatible = "arm,pl011", "arm,primecell";
120 reg = <0x090000 0x1000>; 120 reg = <0x090000 0x1000>;
121 interrupts = <5>; 121 interrupts = <5>;
@@ -123,7 +123,7 @@
123 clock-names = "uartclk", "apb_pclk"; 123 clock-names = "uartclk", "apb_pclk";
124 }; 124 };
125 125
126 v2m_serial1: uart@0a0000 { 126 v2m_serial1: uart@a0000 {
127 compatible = "arm,pl011", "arm,primecell"; 127 compatible = "arm,pl011", "arm,primecell";
128 reg = <0x0a0000 0x1000>; 128 reg = <0x0a0000 0x1000>;
129 interrupts = <6>; 129 interrupts = <6>;
@@ -131,7 +131,7 @@
131 clock-names = "uartclk", "apb_pclk"; 131 clock-names = "uartclk", "apb_pclk";
132 }; 132 };
133 133
134 v2m_serial2: uart@0b0000 { 134 v2m_serial2: uart@b0000 {
135 compatible = "arm,pl011", "arm,primecell"; 135 compatible = "arm,pl011", "arm,primecell";
136 reg = <0x0b0000 0x1000>; 136 reg = <0x0b0000 0x1000>;
137 interrupts = <7>; 137 interrupts = <7>;
@@ -139,7 +139,7 @@
139 clock-names = "uartclk", "apb_pclk"; 139 clock-names = "uartclk", "apb_pclk";
140 }; 140 };
141 141
142 v2m_serial3: uart@0c0000 { 142 v2m_serial3: uart@c0000 {
143 compatible = "arm,pl011", "arm,primecell"; 143 compatible = "arm,pl011", "arm,primecell";
144 reg = <0x0c0000 0x1000>; 144 reg = <0x0c0000 0x1000>;
145 interrupts = <8>; 145 interrupts = <8>;
@@ -147,7 +147,7 @@
147 clock-names = "uartclk", "apb_pclk"; 147 clock-names = "uartclk", "apb_pclk";
148 }; 148 };
149 149
150 wdt@0f0000 { 150 wdt@f0000 {
151 compatible = "arm,sp805", "arm,primecell"; 151 compatible = "arm,sp805", "arm,primecell";
152 reg = <0x0f0000 0x1000>; 152 reg = <0x0f0000 0x1000>;
153 interrupts = <0>; 153 interrupts = <0>;
@@ -220,7 +220,7 @@
220 }; 220 };
221 }; 221 };
222 222
223 virtio-block@0130000 { 223 virtio-block@130000 {
224 compatible = "virtio,mmio"; 224 compatible = "virtio,mmio";
225 reg = <0x130000 0x200>; 225 reg = <0x130000 0x200>;
226 interrupts = <42>; 226 interrupts = <42>;
diff --git a/arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts b/arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts
index 2cb604957808..1c9eadc2d71e 100644
--- a/arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts
+++ b/arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts
@@ -129,7 +129,7 @@
129 }; 129 };
130 }; 130 };
131 131
132 smb@08000000 { 132 smb@8000000 {
133 compatible = "simple-bus"; 133 compatible = "simple-bus";
134 134
135 #address-cells = <2>; 135 #address-cells = <2>;
diff --git a/arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts b/arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts
index ab4ae1a32fab..f00c21e0767e 100644
--- a/arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts
+++ b/arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts
@@ -114,7 +114,7 @@
114 reg = <0x04000000 0x06400000>; /* 100MB */ 114 reg = <0x04000000 0x06400000>; /* 100MB */
115 }; 115 };
116 116
117 partition@0a400000{ 117 partition@a400000{
118 label = "ncustfs"; 118 label = "ncustfs";
119 reg = <0x0a400000 0x35c00000>; /* 860MB */ 119 reg = <0x0a400000 0x35c00000>; /* 860MB */
120 }; 120 };
diff --git a/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi b/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi
index 35c8457e3d1f..4a2a6af8e752 100644
--- a/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi
+++ b/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi
@@ -77,7 +77,7 @@
77 next-level-cache = <&CLUSTER0_L2>; 77 next-level-cache = <&CLUSTER0_L2>;
78 }; 78 };
79 79
80 CLUSTER0_L2: l2-cache@000 { 80 CLUSTER0_L2: l2-cache@0 {
81 compatible = "cache"; 81 compatible = "cache";
82 }; 82 };
83 }; 83 };
@@ -367,7 +367,7 @@
367 #size-cells = <1>; 367 #size-cells = <1>;
368 ranges = <0 0x652e0000 0x80000>; 368 ranges = <0 0x652e0000 0x80000>;
369 369
370 v2m0: v2m@00000 { 370 v2m0: v2m@0 {
371 compatible = "arm,gic-v2m-frame"; 371 compatible = "arm,gic-v2m-frame";
372 interrupt-parent = <&gic>; 372 interrupt-parent = <&gic>;
373 msi-controller; 373 msi-controller;
diff --git a/arch/arm64/boot/dts/broadcom/stingray/stingray-clock.dtsi b/arch/arm64/boot/dts/broadcom/stingray/stingray-clock.dtsi
index cbc43376e25e..3a4d4524b5ed 100644
--- a/arch/arm64/boot/dts/broadcom/stingray/stingray-clock.dtsi
+++ b/arch/arm64/boot/dts/broadcom/stingray/stingray-clock.dtsi
@@ -46,7 +46,7 @@
46 clock-mult = <1>; 46 clock-mult = <1>;
47 }; 47 };
48 48
49 genpll0: genpll0@0001d104 { 49 genpll0: genpll0@1d104 {
50 #clock-cells = <1>; 50 #clock-cells = <1>;
51 compatible = "brcm,sr-genpll0"; 51 compatible = "brcm,sr-genpll0";
52 reg = <0x0001d104 0x32>, 52 reg = <0x0001d104 0x32>,
@@ -58,7 +58,7 @@
58 "clk_paxc_axi"; 58 "clk_paxc_axi";
59 }; 59 };
60 60
61 genpll3: genpll3@0001d1e0 { 61 genpll3: genpll3@1d1e0 {
62 #clock-cells = <1>; 62 #clock-cells = <1>;
63 compatible = "brcm,sr-genpll3"; 63 compatible = "brcm,sr-genpll3";
64 reg = <0x0001d1e0 0x32>, 64 reg = <0x0001d1e0 0x32>,
@@ -68,7 +68,7 @@
68 "clk_sdio"; 68 "clk_sdio";
69 }; 69 };
70 70
71 genpll4: genpll4@0001d214 { 71 genpll4: genpll4@1d214 {
72 #clock-cells = <1>; 72 #clock-cells = <1>;
73 compatible = "brcm,sr-genpll4"; 73 compatible = "brcm,sr-genpll4";
74 reg = <0x0001d214 0x32>, 74 reg = <0x0001d214 0x32>,
@@ -80,7 +80,7 @@
80 "clk_bridge_fscpu"; 80 "clk_bridge_fscpu";
81 }; 81 };
82 82
83 genpll5: genpll5@0001d248 { 83 genpll5: genpll5@1d248 {
84 #clock-cells = <1>; 84 #clock-cells = <1>;
85 compatible = "brcm,sr-genpll5"; 85 compatible = "brcm,sr-genpll5";
86 reg = <0x0001d248 0x32>, 86 reg = <0x0001d248 0x32>,
@@ -90,7 +90,7 @@
90 "crypto_ae_clk", "raid_ae_clk"; 90 "crypto_ae_clk", "raid_ae_clk";
91 }; 91 };
92 92
93 lcpll0: lcpll0@0001d0c4 { 93 lcpll0: lcpll0@1d0c4 {
94 #clock-cells = <1>; 94 #clock-cells = <1>;
95 compatible = "brcm,sr-lcpll0"; 95 compatible = "brcm,sr-lcpll0";
96 reg = <0x0001d0c4 0x3c>, 96 reg = <0x0001d0c4 0x3c>,
@@ -101,7 +101,7 @@
101 "clk_sata_500"; 101 "clk_sata_500";
102 }; 102 };
103 103
104 lcpll1: lcpll1@0001d138 { 104 lcpll1: lcpll1@1d138 {
105 #clock-cells = <1>; 105 #clock-cells = <1>;
106 compatible = "brcm,sr-lcpll1"; 106 compatible = "brcm,sr-lcpll1";
107 reg = <0x0001d138 0x3c>, 107 reg = <0x0001d138 0x3c>,
diff --git a/arch/arm64/boot/dts/broadcom/stingray/stingray-fs4.dtsi b/arch/arm64/boot/dts/broadcom/stingray/stingray-fs4.dtsi
index 8bf1dc6b46ca..9666969c8c88 100644
--- a/arch/arm64/boot/dts/broadcom/stingray/stingray-fs4.dtsi
+++ b/arch/arm64/boot/dts/broadcom/stingray/stingray-fs4.dtsi
@@ -36,7 +36,7 @@
36 #size-cells = <1>; 36 #size-cells = <1>;
37 ranges = <0x0 0x0 0x67000000 0x00800000>; 37 ranges = <0x0 0x0 0x67000000 0x00800000>;
38 38
39 crypto_mbox: crypto_mbox@00000000 { 39 crypto_mbox: crypto_mbox@0 {
40 compatible = "brcm,iproc-flexrm-mbox"; 40 compatible = "brcm,iproc-flexrm-mbox";
41 reg = <0x00000000 0x200000>; 41 reg = <0x00000000 0x200000>;
42 msi-parent = <&gic_its 0x4100>; 42 msi-parent = <&gic_its 0x4100>;
@@ -44,7 +44,7 @@
44 dma-coherent; 44 dma-coherent;
45 }; 45 };
46 46
47 raid_mbox: raid_mbox@00400000 { 47 raid_mbox: raid_mbox@400000 {
48 compatible = "brcm,iproc-flexrm-mbox"; 48 compatible = "brcm,iproc-flexrm-mbox";
49 reg = <0x00400000 0x200000>; 49 reg = <0x00400000 0x200000>;
50 dma-coherent; 50 dma-coherent;
diff --git a/arch/arm64/boot/dts/broadcom/stingray/stingray-pinctrl.dtsi b/arch/arm64/boot/dts/broadcom/stingray/stingray-pinctrl.dtsi
index 15214d05fec1..8a3a770e8f2c 100644
--- a/arch/arm64/boot/dts/broadcom/stingray/stingray-pinctrl.dtsi
+++ b/arch/arm64/boot/dts/broadcom/stingray/stingray-pinctrl.dtsi
@@ -32,7 +32,7 @@
32 32
33#include <dt-bindings/pinctrl/brcm,pinctrl-stingray.h> 33#include <dt-bindings/pinctrl/brcm,pinctrl-stingray.h>
34 34
35 pinconf: pinconf@00140000 { 35 pinconf: pinconf@140000 {
36 compatible = "pinconf-single"; 36 compatible = "pinconf-single";
37 reg = <0x00140000 0x250>; 37 reg = <0x00140000 0x250>;
38 pinctrl-single,register-width = <32>; 38 pinctrl-single,register-width = <32>;
@@ -40,7 +40,7 @@
40 /* pinconf functions */ 40 /* pinconf functions */
41 }; 41 };
42 42
43 pinmux: pinmux@0014029c { 43 pinmux: pinmux@14029c {
44 compatible = "pinctrl-single"; 44 compatible = "pinctrl-single";
45 reg = <0x0014029c 0x250>; 45 reg = <0x0014029c 0x250>;
46 #address-cells = <1>; 46 #address-cells = <1>;
diff --git a/arch/arm64/boot/dts/broadcom/stingray/stingray-sata.dtsi b/arch/arm64/boot/dts/broadcom/stingray/stingray-sata.dtsi
index a774709388df..4b5465da81d8 100644
--- a/arch/arm64/boot/dts/broadcom/stingray/stingray-sata.dtsi
+++ b/arch/arm64/boot/dts/broadcom/stingray/stingray-sata.dtsi
@@ -36,7 +36,7 @@
36 #size-cells = <1>; 36 #size-cells = <1>;
37 ranges = <0x0 0x0 0x67d00000 0x00800000>; 37 ranges = <0x0 0x0 0x67d00000 0x00800000>;
38 38
39 sata0: ahci@00210000 { 39 sata0: ahci@210000 {
40 compatible = "brcm,iproc-ahci", "generic-ahci"; 40 compatible = "brcm,iproc-ahci", "generic-ahci";
41 reg = <0x00210000 0x1000>; 41 reg = <0x00210000 0x1000>;
42 reg-names = "ahci"; 42 reg-names = "ahci";
@@ -52,7 +52,7 @@
52 }; 52 };
53 }; 53 };
54 54
55 sata_phy0: sata_phy@00212100 { 55 sata_phy0: sata_phy@212100 {
56 compatible = "brcm,iproc-sr-sata-phy"; 56 compatible = "brcm,iproc-sr-sata-phy";
57 reg = <0x00212100 0x1000>; 57 reg = <0x00212100 0x1000>;
58 reg-names = "phy"; 58 reg-names = "phy";
@@ -66,7 +66,7 @@
66 }; 66 };
67 }; 67 };
68 68
69 sata1: ahci@00310000 { 69 sata1: ahci@310000 {
70 compatible = "brcm,iproc-ahci", "generic-ahci"; 70 compatible = "brcm,iproc-ahci", "generic-ahci";
71 reg = <0x00310000 0x1000>; 71 reg = <0x00310000 0x1000>;
72 reg-names = "ahci"; 72 reg-names = "ahci";
@@ -82,7 +82,7 @@
82 }; 82 };
83 }; 83 };
84 84
85 sata_phy1: sata_phy@00312100 { 85 sata_phy1: sata_phy@312100 {
86 compatible = "brcm,iproc-sr-sata-phy"; 86 compatible = "brcm,iproc-sr-sata-phy";
87 reg = <0x00312100 0x1000>; 87 reg = <0x00312100 0x1000>;
88 reg-names = "phy"; 88 reg-names = "phy";
@@ -96,7 +96,7 @@
96 }; 96 };
97 }; 97 };
98 98
99 sata2: ahci@00120000 { 99 sata2: ahci@120000 {
100 compatible = "brcm,iproc-ahci", "generic-ahci"; 100 compatible = "brcm,iproc-ahci", "generic-ahci";
101 reg = <0x00120000 0x1000>; 101 reg = <0x00120000 0x1000>;
102 reg-names = "ahci"; 102 reg-names = "ahci";
@@ -112,7 +112,7 @@
112 }; 112 };
113 }; 113 };
114 114
115 sata_phy2: sata_phy@00122100 { 115 sata_phy2: sata_phy@122100 {
116 compatible = "brcm,iproc-sr-sata-phy"; 116 compatible = "brcm,iproc-sr-sata-phy";
117 reg = <0x00122100 0x1000>; 117 reg = <0x00122100 0x1000>;
118 reg-names = "phy"; 118 reg-names = "phy";
@@ -126,7 +126,7 @@
126 }; 126 };
127 }; 127 };
128 128
129 sata3: ahci@00130000 { 129 sata3: ahci@130000 {
130 compatible = "brcm,iproc-ahci", "generic-ahci"; 130 compatible = "brcm,iproc-ahci", "generic-ahci";
131 reg = <0x00130000 0x1000>; 131 reg = <0x00130000 0x1000>;
132 reg-names = "ahci"; 132 reg-names = "ahci";
@@ -142,7 +142,7 @@
142 }; 142 };
143 }; 143 };
144 144
145 sata_phy3: sata_phy@00132100 { 145 sata_phy3: sata_phy@132100 {
146 compatible = "brcm,iproc-sr-sata-phy"; 146 compatible = "brcm,iproc-sr-sata-phy";
147 reg = <0x00132100 0x1000>; 147 reg = <0x00132100 0x1000>;
148 reg-names = "phy"; 148 reg-names = "phy";
@@ -156,7 +156,7 @@
156 }; 156 };
157 }; 157 };
158 158
159 sata4: ahci@00330000 { 159 sata4: ahci@330000 {
160 compatible = "brcm,iproc-ahci", "generic-ahci"; 160 compatible = "brcm,iproc-ahci", "generic-ahci";
161 reg = <0x00330000 0x1000>; 161 reg = <0x00330000 0x1000>;
162 reg-names = "ahci"; 162 reg-names = "ahci";
@@ -172,7 +172,7 @@
172 }; 172 };
173 }; 173 };
174 174
175 sata_phy4: sata_phy@00332100 { 175 sata_phy4: sata_phy@332100 {
176 compatible = "brcm,iproc-sr-sata-phy"; 176 compatible = "brcm,iproc-sr-sata-phy";
177 reg = <0x00332100 0x1000>; 177 reg = <0x00332100 0x1000>;
178 reg-names = "phy"; 178 reg-names = "phy";
@@ -186,7 +186,7 @@
186 }; 186 };
187 }; 187 };
188 188
189 sata5: ahci@00400000 { 189 sata5: ahci@400000 {
190 compatible = "brcm,iproc-ahci", "generic-ahci"; 190 compatible = "brcm,iproc-ahci", "generic-ahci";
191 reg = <0x00400000 0x1000>; 191 reg = <0x00400000 0x1000>;
192 reg-names = "ahci"; 192 reg-names = "ahci";
@@ -202,7 +202,7 @@
202 }; 202 };
203 }; 203 };
204 204
205 sata_phy5: sata_phy@00402100 { 205 sata_phy5: sata_phy@402100 {
206 compatible = "brcm,iproc-sr-sata-phy"; 206 compatible = "brcm,iproc-sr-sata-phy";
207 reg = <0x00402100 0x1000>; 207 reg = <0x00402100 0x1000>;
208 reg-names = "phy"; 208 reg-names = "phy";
@@ -216,7 +216,7 @@
216 }; 216 };
217 }; 217 };
218 218
219 sata6: ahci@00410000 { 219 sata6: ahci@410000 {
220 compatible = "brcm,iproc-ahci", "generic-ahci"; 220 compatible = "brcm,iproc-ahci", "generic-ahci";
221 reg = <0x00410000 0x1000>; 221 reg = <0x00410000 0x1000>;
222 reg-names = "ahci"; 222 reg-names = "ahci";
@@ -232,7 +232,7 @@
232 }; 232 };
233 }; 233 };
234 234
235 sata_phy6: sata_phy@00412100 { 235 sata_phy6: sata_phy@412100 {
236 compatible = "brcm,iproc-sr-sata-phy"; 236 compatible = "brcm,iproc-sr-sata-phy";
237 reg = <0x00412100 0x1000>; 237 reg = <0x00412100 0x1000>;
238 reg-names = "phy"; 238 reg-names = "phy";
@@ -246,7 +246,7 @@
246 }; 246 };
247 }; 247 };
248 248
249 sata7: ahci@00420000 { 249 sata7: ahci@420000 {
250 compatible = "brcm,iproc-ahci", "generic-ahci"; 250 compatible = "brcm,iproc-ahci", "generic-ahci";
251 reg = <0x00420000 0x1000>; 251 reg = <0x00420000 0x1000>;
252 reg-names = "ahci"; 252 reg-names = "ahci";
@@ -262,7 +262,7 @@
262 }; 262 };
263 }; 263 };
264 264
265 sata_phy7: sata_phy@00422100 { 265 sata_phy7: sata_phy@422100 {
266 compatible = "brcm,iproc-sr-sata-phy"; 266 compatible = "brcm,iproc-sr-sata-phy";
267 reg = <0x00422100 0x1000>; 267 reg = <0x00422100 0x1000>;
268 reg-names = "phy"; 268 reg-names = "phy";
diff --git a/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi b/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi
index e6f75c633623..99aaff0b6d72 100644
--- a/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi
+++ b/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi
@@ -42,7 +42,7 @@
42 #address-cells = <2>; 42 #address-cells = <2>;
43 #size-cells = <0>; 43 #size-cells = <0>;
44 44
45 cpu@000 { 45 cpu@0 {
46 device_type = "cpu"; 46 device_type = "cpu";
47 compatible = "arm,cortex-a72", "arm,armv8"; 47 compatible = "arm,cortex-a72", "arm,armv8";
48 reg = <0x0 0x0>; 48 reg = <0x0 0x0>;
@@ -50,7 +50,7 @@
50 next-level-cache = <&CLUSTER0_L2>; 50 next-level-cache = <&CLUSTER0_L2>;
51 }; 51 };
52 52
53 cpu@001 { 53 cpu@1 {
54 device_type = "cpu"; 54 device_type = "cpu";
55 compatible = "arm,cortex-a72", "arm,armv8"; 55 compatible = "arm,cortex-a72", "arm,armv8";
56 reg = <0x0 0x1>; 56 reg = <0x0 0x1>;
@@ -106,7 +106,7 @@
106 next-level-cache = <&CLUSTER3_L2>; 106 next-level-cache = <&CLUSTER3_L2>;
107 }; 107 };
108 108
109 CLUSTER0_L2: l2-cache@000 { 109 CLUSTER0_L2: l2-cache@0 {
110 compatible = "cache"; 110 compatible = "cache";
111 }; 111 };
112 112
@@ -152,13 +152,13 @@
152 #size-cells = <1>; 152 #size-cells = <1>;
153 ranges = <0x0 0x0 0x61000000 0x05000000>; 153 ranges = <0x0 0x0 0x61000000 0x05000000>;
154 154
155 ccn: ccn@00000000 { 155 ccn: ccn@0 {
156 compatible = "arm,ccn-502"; 156 compatible = "arm,ccn-502";
157 reg = <0x00000000 0x900000>; 157 reg = <0x00000000 0x900000>;
158 interrupts = <GIC_SPI 799 IRQ_TYPE_LEVEL_HIGH>; 158 interrupts = <GIC_SPI 799 IRQ_TYPE_LEVEL_HIGH>;
159 }; 159 };
160 160
161 gic: interrupt-controller@02c00000 { 161 gic: interrupt-controller@2c00000 {
162 compatible = "arm,gic-v3"; 162 compatible = "arm,gic-v3";
163 #interrupt-cells = <3>; 163 #interrupt-cells = <3>;
164 #address-cells = <1>; 164 #address-cells = <1>;
@@ -177,7 +177,7 @@
177 }; 177 };
178 }; 178 };
179 179
180 smmu: mmu@03000000 { 180 smmu: mmu@3000000 {
181 compatible = "arm,mmu-500"; 181 compatible = "arm,mmu-500";
182 reg = <0x03000000 0x80000>; 182 reg = <0x03000000 0x80000>;
183 #global-interrupts = <1>; 183 #global-interrupts = <1>;
@@ -258,7 +258,7 @@
258 258
259 #include "stingray-clock.dtsi" 259 #include "stingray-clock.dtsi"
260 260
261 gpio_crmu: gpio@00024800 { 261 gpio_crmu: gpio@24800 {
262 compatible = "brcm,iproc-gpio"; 262 compatible = "brcm,iproc-gpio";
263 reg = <0x00024800 0x4c>; 263 reg = <0x00024800 0x4c>;
264 ngpios = <6>; 264 ngpios = <6>;
@@ -278,7 +278,7 @@
278 278
279 #include "stingray-pinctrl.dtsi" 279 #include "stingray-pinctrl.dtsi"
280 280
281 mdio_mux_iproc: mdio-mux@0002023c { 281 mdio_mux_iproc: mdio-mux@2023c {
282 compatible = "brcm,mdio-mux-iproc"; 282 compatible = "brcm,mdio-mux-iproc";
283 reg = <0x0002023c 0x14>; 283 reg = <0x0002023c 0x14>;
284 #address-cells = <1>; 284 #address-cells = <1>;
@@ -309,7 +309,7 @@
309 }; 309 };
310 }; 310 };
311 311
312 pwm: pwm@00010000 { 312 pwm: pwm@10000 {
313 compatible = "brcm,iproc-pwm"; 313 compatible = "brcm,iproc-pwm";
314 reg = <0x00010000 0x1000>; 314 reg = <0x00010000 0x1000>;
315 clocks = <&crmu_ref25m>; 315 clocks = <&crmu_ref25m>;
@@ -317,7 +317,7 @@
317 status = "disabled"; 317 status = "disabled";
318 }; 318 };
319 319
320 timer0: timer@00030000 { 320 timer0: timer@30000 {
321 compatible = "arm,sp804", "arm,primecell"; 321 compatible = "arm,sp804", "arm,primecell";
322 reg = <0x00030000 0x1000>; 322 reg = <0x00030000 0x1000>;
323 interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>; 323 interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>;
@@ -328,7 +328,7 @@
328 status = "disabled"; 328 status = "disabled";
329 }; 329 };
330 330
331 timer1: timer@00040000 { 331 timer1: timer@40000 {
332 compatible = "arm,sp804", "arm,primecell"; 332 compatible = "arm,sp804", "arm,primecell";
333 reg = <0x00040000 0x1000>; 333 reg = <0x00040000 0x1000>;
334 interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>; 334 interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
@@ -338,7 +338,7 @@
338 clock-names = "timer1", "timer2", "apb_pclk"; 338 clock-names = "timer1", "timer2", "apb_pclk";
339 }; 339 };
340 340
341 timer2: timer@00050000 { 341 timer2: timer@50000 {
342 compatible = "arm,sp804", "arm,primecell"; 342 compatible = "arm,sp804", "arm,primecell";
343 reg = <0x00050000 0x1000>; 343 reg = <0x00050000 0x1000>;
344 interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>; 344 interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
@@ -349,7 +349,7 @@
349 status = "disabled"; 349 status = "disabled";
350 }; 350 };
351 351
352 timer3: timer@00060000 { 352 timer3: timer@60000 {
353 compatible = "arm,sp804", "arm,primecell"; 353 compatible = "arm,sp804", "arm,primecell";
354 reg = <0x00060000 0x1000>; 354 reg = <0x00060000 0x1000>;
355 interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>; 355 interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
@@ -360,7 +360,7 @@
360 status = "disabled"; 360 status = "disabled";
361 }; 361 };
362 362
363 timer4: timer@00070000 { 363 timer4: timer@70000 {
364 compatible = "arm,sp804", "arm,primecell"; 364 compatible = "arm,sp804", "arm,primecell";
365 reg = <0x00070000 0x1000>; 365 reg = <0x00070000 0x1000>;
366 interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>; 366 interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
@@ -371,7 +371,7 @@
371 status = "disabled"; 371 status = "disabled";
372 }; 372 };
373 373
374 timer5: timer@00080000 { 374 timer5: timer@80000 {
375 compatible = "arm,sp804", "arm,primecell"; 375 compatible = "arm,sp804", "arm,primecell";
376 reg = <0x00080000 0x1000>; 376 reg = <0x00080000 0x1000>;
377 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 377 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
@@ -382,7 +382,7 @@
382 status = "disabled"; 382 status = "disabled";
383 }; 383 };
384 384
385 timer6: timer@00090000 { 385 timer6: timer@90000 {
386 compatible = "arm,sp804", "arm,primecell"; 386 compatible = "arm,sp804", "arm,primecell";
387 reg = <0x00090000 0x1000>; 387 reg = <0x00090000 0x1000>;
388 interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>; 388 interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
@@ -393,7 +393,7 @@
393 status = "disabled"; 393 status = "disabled";
394 }; 394 };
395 395
396 timer7: timer@000a0000 { 396 timer7: timer@a0000 {
397 compatible = "arm,sp804", "arm,primecell"; 397 compatible = "arm,sp804", "arm,primecell";
398 reg = <0x000a0000 0x1000>; 398 reg = <0x000a0000 0x1000>;
399 interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>; 399 interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>;
@@ -404,7 +404,7 @@
404 status = "disabled"; 404 status = "disabled";
405 }; 405 };
406 406
407 i2c0: i2c@000b0000 { 407 i2c0: i2c@b0000 {
408 compatible = "brcm,iproc-i2c"; 408 compatible = "brcm,iproc-i2c";
409 reg = <0x000b0000 0x100>; 409 reg = <0x000b0000 0x100>;
410 #address-cells = <1>; 410 #address-cells = <1>;
@@ -414,7 +414,7 @@
414 status = "disabled"; 414 status = "disabled";
415 }; 415 };
416 416
417 wdt0: watchdog@000c0000 { 417 wdt0: watchdog@c0000 {
418 compatible = "arm,sp805", "arm,primecell"; 418 compatible = "arm,sp805", "arm,primecell";
419 reg = <0x000c0000 0x1000>; 419 reg = <0x000c0000 0x1000>;
420 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; 420 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
@@ -422,7 +422,7 @@
422 clock-names = "wdogclk", "apb_pclk"; 422 clock-names = "wdogclk", "apb_pclk";
423 }; 423 };
424 424
425 gpio_hsls: gpio@000d0000 { 425 gpio_hsls: gpio@d0000 {
426 compatible = "brcm,iproc-gpio"; 426 compatible = "brcm,iproc-gpio";
427 reg = <0x000d0000 0x864>; 427 reg = <0x000d0000 0x864>;
428 ngpios = <151>; 428 ngpios = <151>;
@@ -448,7 +448,7 @@
448 <&pinmux 151 91 4>; 448 <&pinmux 151 91 4>;
449 }; 449 };
450 450
451 i2c1: i2c@000e0000 { 451 i2c1: i2c@e0000 {
452 compatible = "brcm,iproc-i2c"; 452 compatible = "brcm,iproc-i2c";
453 reg = <0x000e0000 0x100>; 453 reg = <0x000e0000 0x100>;
454 #address-cells = <1>; 454 #address-cells = <1>;
@@ -458,7 +458,7 @@
458 status = "disabled"; 458 status = "disabled";
459 }; 459 };
460 460
461 uart0: uart@00100000 { 461 uart0: uart@100000 {
462 device_type = "serial"; 462 device_type = "serial";
463 compatible = "snps,dw-apb-uart"; 463 compatible = "snps,dw-apb-uart";
464 reg = <0x00100000 0x1000>; 464 reg = <0x00100000 0x1000>;
@@ -469,7 +469,7 @@
469 status = "disabled"; 469 status = "disabled";
470 }; 470 };
471 471
472 uart1: uart@00110000 { 472 uart1: uart@110000 {
473 device_type = "serial"; 473 device_type = "serial";
474 compatible = "snps,dw-apb-uart"; 474 compatible = "snps,dw-apb-uart";
475 reg = <0x00110000 0x1000>; 475 reg = <0x00110000 0x1000>;
@@ -480,7 +480,7 @@
480 status = "disabled"; 480 status = "disabled";
481 }; 481 };
482 482
483 uart2: uart@00120000 { 483 uart2: uart@120000 {
484 device_type = "serial"; 484 device_type = "serial";
485 compatible = "snps,dw-apb-uart"; 485 compatible = "snps,dw-apb-uart";
486 reg = <0x00120000 0x1000>; 486 reg = <0x00120000 0x1000>;
@@ -491,7 +491,7 @@
491 status = "disabled"; 491 status = "disabled";
492 }; 492 };
493 493
494 uart3: uart@00130000 { 494 uart3: uart@130000 {
495 device_type = "serial"; 495 device_type = "serial";
496 compatible = "snps,dw-apb-uart"; 496 compatible = "snps,dw-apb-uart";
497 reg = <0x00130000 0x1000>; 497 reg = <0x00130000 0x1000>;
@@ -502,7 +502,7 @@
502 status = "disabled"; 502 status = "disabled";
503 }; 503 };
504 504
505 ssp0: ssp@00180000 { 505 ssp0: ssp@180000 {
506 compatible = "arm,pl022", "arm,primecell"; 506 compatible = "arm,pl022", "arm,primecell";
507 reg = <0x00180000 0x1000>; 507 reg = <0x00180000 0x1000>;
508 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; 508 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
@@ -514,7 +514,7 @@
514 status = "disabled"; 514 status = "disabled";
515 }; 515 };
516 516
517 ssp1: ssp@00190000 { 517 ssp1: ssp@190000 {
518 compatible = "arm,pl022", "arm,primecell"; 518 compatible = "arm,pl022", "arm,primecell";
519 reg = <0x00190000 0x1000>; 519 reg = <0x00190000 0x1000>;
520 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 520 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
@@ -526,12 +526,12 @@
526 status = "disabled"; 526 status = "disabled";
527 }; 527 };
528 528
529 hwrng: hwrng@00220000 { 529 hwrng: hwrng@220000 {
530 compatible = "brcm,iproc-rng200"; 530 compatible = "brcm,iproc-rng200";
531 reg = <0x00220000 0x28>; 531 reg = <0x00220000 0x28>;
532 }; 532 };
533 533
534 dma0: dma@00310000 { 534 dma0: dma@310000 {
535 compatible = "arm,pl330", "arm,primecell"; 535 compatible = "arm,pl330", "arm,primecell";
536 reg = <0x00310000 0x1000>; 536 reg = <0x00310000 0x1000>;
537 interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>, 537 interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>,
@@ -551,7 +551,7 @@
551 iommus = <&smmu 0x6000 0x0000>; 551 iommus = <&smmu 0x6000 0x0000>;
552 }; 552 };
553 553
554 enet: ethernet@00340000{ 554 enet: ethernet@340000{
555 compatible = "brcm,amac"; 555 compatible = "brcm,amac";
556 reg = <0x00340000 0x1000>; 556 reg = <0x00340000 0x1000>;
557 reg-names = "amac_base"; 557 reg-names = "amac_base";
@@ -560,7 +560,7 @@
560 status= "disabled"; 560 status= "disabled";
561 }; 561 };
562 562
563 nand: nand@00360000 { 563 nand: nand@360000 {
564 compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1"; 564 compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
565 reg = <0x00360000 0x600>, 565 reg = <0x00360000 0x600>,
566 <0x0050a408 0x600>, 566 <0x0050a408 0x600>,
@@ -573,7 +573,7 @@
573 status = "disabled"; 573 status = "disabled";
574 }; 574 };
575 575
576 sdio0: sdhci@003f1000 { 576 sdio0: sdhci@3f1000 {
577 compatible = "brcm,sdhci-iproc"; 577 compatible = "brcm,sdhci-iproc";
578 reg = <0x003f1000 0x100>; 578 reg = <0x003f1000 0x100>;
579 interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>; 579 interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>;
@@ -583,7 +583,7 @@
583 status = "disabled"; 583 status = "disabled";
584 }; 584 };
585 585
586 sdio1: sdhci@003f2000 { 586 sdio1: sdhci@3f2000 {
587 compatible = "brcm,sdhci-iproc"; 587 compatible = "brcm,sdhci-iproc";
588 reg = <0x003f2000 0x100>; 588 reg = <0x003f2000 0x100>;
589 interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>; 589 interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm64/boot/dts/cavium/thunder-88xx.dts b/arch/arm64/boot/dts/cavium/thunder-88xx.dts
index 800ba65991f7..5ec2bfa5f714 100644
--- a/arch/arm64/boot/dts/cavium/thunder-88xx.dts
+++ b/arch/arm64/boot/dts/cavium/thunder-88xx.dts
@@ -60,7 +60,7 @@
60 serial1 = &uaa1; 60 serial1 = &uaa1;
61 }; 61 };
62 62
63 memory@00000000 { 63 memory@0 {
64 device_type = "memory"; 64 device_type = "memory";
65 reg = <0x0 0x00000000 0x0 0x80000000>; 65 reg = <0x0 0x00000000 0x0 0x80000000>;
66 }; 66 };
diff --git a/arch/arm64/boot/dts/cavium/thunder-88xx.dtsi b/arch/arm64/boot/dts/cavium/thunder-88xx.dtsi
index 04dc8a8d1539..1a9103b269cb 100644
--- a/arch/arm64/boot/dts/cavium/thunder-88xx.dtsi
+++ b/arch/arm64/boot/dts/cavium/thunder-88xx.dtsi
@@ -62,97 +62,97 @@
62 #address-cells = <2>; 62 #address-cells = <2>;
63 #size-cells = <0>; 63 #size-cells = <0>;
64 64
65 cpu@000 { 65 cpu@0 {
66 device_type = "cpu"; 66 device_type = "cpu";
67 compatible = "cavium,thunder", "arm,armv8"; 67 compatible = "cavium,thunder", "arm,armv8";
68 reg = <0x0 0x000>; 68 reg = <0x0 0x000>;
69 enable-method = "psci"; 69 enable-method = "psci";
70 }; 70 };
71 cpu@001 { 71 cpu@1 {
72 device_type = "cpu"; 72 device_type = "cpu";
73 compatible = "cavium,thunder", "arm,armv8"; 73 compatible = "cavium,thunder", "arm,armv8";
74 reg = <0x0 0x001>; 74 reg = <0x0 0x001>;
75 enable-method = "psci"; 75 enable-method = "psci";
76 }; 76 };
77 cpu@002 { 77 cpu@2 {
78 device_type = "cpu"; 78 device_type = "cpu";
79 compatible = "cavium,thunder", "arm,armv8"; 79 compatible = "cavium,thunder", "arm,armv8";
80 reg = <0x0 0x002>; 80 reg = <0x0 0x002>;
81 enable-method = "psci"; 81 enable-method = "psci";
82 }; 82 };
83 cpu@003 { 83 cpu@3 {
84 device_type = "cpu"; 84 device_type = "cpu";
85 compatible = "cavium,thunder", "arm,armv8"; 85 compatible = "cavium,thunder", "arm,armv8";
86 reg = <0x0 0x003>; 86 reg = <0x0 0x003>;
87 enable-method = "psci"; 87 enable-method = "psci";
88 }; 88 };
89 cpu@004 { 89 cpu@4 {
90 device_type = "cpu"; 90 device_type = "cpu";
91 compatible = "cavium,thunder", "arm,armv8"; 91 compatible = "cavium,thunder", "arm,armv8";
92 reg = <0x0 0x004>; 92 reg = <0x0 0x004>;
93 enable-method = "psci"; 93 enable-method = "psci";
94 }; 94 };
95 cpu@005 { 95 cpu@5 {
96 device_type = "cpu"; 96 device_type = "cpu";
97 compatible = "cavium,thunder", "arm,armv8"; 97 compatible = "cavium,thunder", "arm,armv8";
98 reg = <0x0 0x005>; 98 reg = <0x0 0x005>;
99 enable-method = "psci"; 99 enable-method = "psci";
100 }; 100 };
101 cpu@006 { 101 cpu@6 {
102 device_type = "cpu"; 102 device_type = "cpu";
103 compatible = "cavium,thunder", "arm,armv8"; 103 compatible = "cavium,thunder", "arm,armv8";
104 reg = <0x0 0x006>; 104 reg = <0x0 0x006>;
105 enable-method = "psci"; 105 enable-method = "psci";
106 }; 106 };
107 cpu@007 { 107 cpu@7 {
108 device_type = "cpu"; 108 device_type = "cpu";
109 compatible = "cavium,thunder", "arm,armv8"; 109 compatible = "cavium,thunder", "arm,armv8";
110 reg = <0x0 0x007>; 110 reg = <0x0 0x007>;
111 enable-method = "psci"; 111 enable-method = "psci";
112 }; 112 };
113 cpu@008 { 113 cpu@8 {
114 device_type = "cpu"; 114 device_type = "cpu";
115 compatible = "cavium,thunder", "arm,armv8"; 115 compatible = "cavium,thunder", "arm,armv8";
116 reg = <0x0 0x008>; 116 reg = <0x0 0x008>;
117 enable-method = "psci"; 117 enable-method = "psci";
118 }; 118 };
119 cpu@009 { 119 cpu@9 {
120 device_type = "cpu"; 120 device_type = "cpu";
121 compatible = "cavium,thunder", "arm,armv8"; 121 compatible = "cavium,thunder", "arm,armv8";
122 reg = <0x0 0x009>; 122 reg = <0x0 0x009>;
123 enable-method = "psci"; 123 enable-method = "psci";
124 }; 124 };
125 cpu@00a { 125 cpu@a {
126 device_type = "cpu"; 126 device_type = "cpu";
127 compatible = "cavium,thunder", "arm,armv8"; 127 compatible = "cavium,thunder", "arm,armv8";
128 reg = <0x0 0x00a>; 128 reg = <0x0 0x00a>;
129 enable-method = "psci"; 129 enable-method = "psci";
130 }; 130 };
131 cpu@00b { 131 cpu@b {
132 device_type = "cpu"; 132 device_type = "cpu";
133 compatible = "cavium,thunder", "arm,armv8"; 133 compatible = "cavium,thunder", "arm,armv8";
134 reg = <0x0 0x00b>; 134 reg = <0x0 0x00b>;
135 enable-method = "psci"; 135 enable-method = "psci";
136 }; 136 };
137 cpu@00c { 137 cpu@c {
138 device_type = "cpu"; 138 device_type = "cpu";
139 compatible = "cavium,thunder", "arm,armv8"; 139 compatible = "cavium,thunder", "arm,armv8";
140 reg = <0x0 0x00c>; 140 reg = <0x0 0x00c>;
141 enable-method = "psci"; 141 enable-method = "psci";
142 }; 142 };
143 cpu@00d { 143 cpu@d {
144 device_type = "cpu"; 144 device_type = "cpu";
145 compatible = "cavium,thunder", "arm,armv8"; 145 compatible = "cavium,thunder", "arm,armv8";
146 reg = <0x0 0x00d>; 146 reg = <0x0 0x00d>;
147 enable-method = "psci"; 147 enable-method = "psci";
148 }; 148 };
149 cpu@00e { 149 cpu@e {
150 device_type = "cpu"; 150 device_type = "cpu";
151 compatible = "cavium,thunder", "arm,armv8"; 151 compatible = "cavium,thunder", "arm,armv8";
152 reg = <0x0 0x00e>; 152 reg = <0x0 0x00e>;
153 enable-method = "psci"; 153 enable-method = "psci";
154 }; 154 };
155 cpu@00f { 155 cpu@f {
156 device_type = "cpu"; 156 device_type = "cpu";
157 compatible = "cavium,thunder", "arm,armv8"; 157 compatible = "cavium,thunder", "arm,armv8";
158 reg = <0x0 0x00f>; 158 reg = <0x0 0x00f>;
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts
index 8c013b54db14..cdc4aee75227 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts
@@ -93,6 +93,39 @@
93 }; 93 };
94}; 94};
95 95
96&dspi {
97 bus-num = <0>;
98 status = "okay";
99
100 flash@0 {
101 #address-cells = <1>;
102 #size-cells = <1>;
103 compatible = "n25q128a11", "jedec,spi-nor";
104 reg = <0>;
105 spi-max-frequency = <10000000>;
106 };
107
108 flash@1 {
109 #address-cells = <1>;
110 #size-cells = <1>;
111 compatible = "sst25wf040b", "jedec,spi-nor";
112 spi-cpol;
113 spi-cpha;
114 reg = <1>;
115 spi-max-frequency = <10000000>;
116 };
117
118 flash@2 {
119 #address-cells = <1>;
120 #size-cells = <1>;
121 compatible = "en25s64", "jedec,spi-nor";
122 spi-cpol;
123 spi-cpha;
124 reg = <2>;
125 spi-max-frequency = <10000000>;
126 };
127};
128
96&duart0 { 129&duart0 {
97 status = "okay"; 130 status = "okay";
98}; 131};
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
index fe1ea5d707a8..82b272fb41b9 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
@@ -355,6 +355,19 @@
355 status = "disabled"; 355 status = "disabled";
356 }; 356 };
357 357
358 dspi: dspi@2100000 {
359 compatible = "fsl,ls1012a-dspi", "fsl,ls1021a-v1.0-dspi";
360 #address-cells = <1>;
361 #size-cells = <0>;
362 reg = <0x0 0x2100000 0x0 0x10000>;
363 interrupts = <0 64 IRQ_TYPE_LEVEL_HIGH>;
364 clock-names = "dspi";
365 clocks = <&clockgen 4 0>;
366 spi-num-chipselects = <5>;
367 big-endian;
368 status = "disabled";
369 };
370
358 duart0: serial@21c0500 { 371 duart0: serial@21c0500 {
359 compatible = "fsl,ns16550", "ns16550a"; 372 compatible = "fsl,ns16550", "ns16550a";
360 reg = <0x00 0x21c0500 0x0 0x100>; 373 reg = <0x00 0x21c0500 0x0 0x100>;
@@ -503,4 +516,11 @@
503 <0000 0 0 4 &gic 0 113 IRQ_TYPE_LEVEL_HIGH>; 516 <0000 0 0 4 &gic 0 113 IRQ_TYPE_LEVEL_HIGH>;
504 }; 517 };
505 }; 518 };
519
520 firmware {
521 optee {
522 compatible = "linaro,optee-tz";
523 method = "smc";
524 };
525 };
506}; 526};
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
index d16b9cc1e825..380e7c713395 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
@@ -376,14 +376,14 @@
376 qman: qman@1880000 { 376 qman: qman@1880000 {
377 compatible = "fsl,qman"; 377 compatible = "fsl,qman";
378 reg = <0x0 0x1880000 0x0 0x10000>; 378 reg = <0x0 0x1880000 0x0 0x10000>;
379 interrupts = <0 45 0x4>; 379 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
380 memory-region = <&qman_fqd &qman_pfdr>; 380 memory-region = <&qman_fqd &qman_pfdr>;
381 }; 381 };
382 382
383 bman: bman@1890000 { 383 bman: bman@1890000 {
384 compatible = "fsl,bman"; 384 compatible = "fsl,bman";
385 reg = <0x0 0x1890000 0x0 0x10000>; 385 reg = <0x0 0x1890000 0x0 0x10000>;
386 interrupts = <0 45 0x4>; 386 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
387 memory-region = <&bman_fbpr>; 387 memory-region = <&bman_fbpr>;
388 }; 388 };
389 389
@@ -749,6 +749,13 @@
749 }; 749 };
750 }; 750 };
751 751
752 firmware {
753 optee {
754 compatible = "linaro,optee-tz";
755 method = "smc";
756 };
757 };
758
752}; 759};
753 760
754#include "qoriq-qman-portals.dtsi" 761#include "qoriq-qman-portals.dtsi"
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
index e8a478ca1485..06b5e12d04d8 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
@@ -281,7 +281,7 @@
281 qman: qman@1880000 { 281 qman: qman@1880000 {
282 compatible = "fsl,qman"; 282 compatible = "fsl,qman";
283 reg = <0x0 0x1880000 0x0 0x10000>; 283 reg = <0x0 0x1880000 0x0 0x10000>;
284 interrupts = <0 45 0x4>; 284 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
285 memory-region = <&qman_fqd &qman_pfdr>; 285 memory-region = <&qman_fqd &qman_pfdr>;
286 286
287 }; 287 };
@@ -289,7 +289,7 @@
289 bman: bman@1890000 { 289 bman: bman@1890000 {
290 compatible = "fsl,bman"; 290 compatible = "fsl,bman";
291 reg = <0x0 0x1890000 0x0 0x10000>; 291 reg = <0x0 0x1890000 0x0 0x10000>;
292 interrupts = <0 45 0x4>; 292 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
293 memory-region = <&bman_fbpr>; 293 memory-region = <&bman_fbpr>;
294 294
295 }; 295 };
@@ -764,6 +764,13 @@
764 no-map; 764 no-map;
765 }; 765 };
766 }; 766 };
767
768 firmware {
769 optee {
770 compatible = "linaro,optee-tz";
771 method = "smc";
772 };
773 };
767}; 774};
768 775
769#include "qoriq-qman-portals.dtsi" 776#include "qoriq-qman-portals.dtsi"
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
index 33797b373674..bd80e9a2e67c 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -147,6 +147,15 @@
147 <0x0 0x0c0d0000 0 0x1000>, /* GICH */ 147 <0x0 0x0c0d0000 0 0x1000>, /* GICH */
148 <0x0 0x0c0e0000 0 0x20000>; /* GICV */ 148 <0x0 0x0c0e0000 0 0x20000>; /* GICV */
149 interrupts = <1 9 IRQ_TYPE_LEVEL_HIGH>; 149 interrupts = <1 9 IRQ_TYPE_LEVEL_HIGH>;
150 #address-cells = <2>;
151 #size-cells = <2>;
152 ranges;
153
154 its: gic-its@6020000 {
155 compatible = "arm,gic-v3-its";
156 msi-controller;
157 reg = <0x0 0x6020000 0 0x20000>;
158 };
150 }; 159 };
151 160
152 timer { 161 timer {
@@ -434,6 +443,85 @@
434 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; 443 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
435 }; 444 };
436 }; 445 };
446
447 pcie@3400000 {
448 compatible = "fsl,ls1088a-pcie", "snps,dw-pcie";
449 reg = <0x00 0x03400000 0x0 0x00100000 /* controller registers */
450 0x20 0x00000000 0x0 0x00002000>; /* configuration space */
451 reg-names = "regs", "config";
452 interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>; /* aer interrupt */
453 interrupt-names = "aer";
454 #address-cells = <3>;
455 #size-cells = <2>;
456 device_type = "pci";
457 dma-coherent;
458 num-lanes = <4>;
459 bus-range = <0x0 0xff>;
460 ranges = <0x81000000 0x0 0x00000000 0x20 0x00010000 0x0 0x00010000 /* downstream I/O */
461 0x82000000 0x0 0x40000000 0x20 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
462 msi-parent = <&its>;
463 #interrupt-cells = <1>;
464 interrupt-map-mask = <0 0 0 7>;
465 interrupt-map = <0000 0 0 1 &gic 0 0 0 109 IRQ_TYPE_LEVEL_HIGH>,
466 <0000 0 0 2 &gic 0 0 0 110 IRQ_TYPE_LEVEL_HIGH>,
467 <0000 0 0 3 &gic 0 0 0 111 IRQ_TYPE_LEVEL_HIGH>,
468 <0000 0 0 4 &gic 0 0 0 112 IRQ_TYPE_LEVEL_HIGH>;
469 };
470
471 pcie@3500000 {
472 compatible = "fsl,ls1088a-pcie", "snps,dw-pcie";
473 reg = <0x00 0x03500000 0x0 0x00100000 /* controller registers */
474 0x28 0x00000000 0x0 0x00002000>; /* configuration space */
475 reg-names = "regs", "config";
476 interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>; /* aer interrupt */
477 interrupt-names = "aer";
478 #address-cells = <3>;
479 #size-cells = <2>;
480 device_type = "pci";
481 dma-coherent;
482 num-lanes = <4>;
483 bus-range = <0x0 0xff>;
484 ranges = <0x81000000 0x0 0x00000000 0x28 0x00010000 0x0 0x00010000 /* downstream I/O */
485 0x82000000 0x0 0x40000000 0x28 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
486 msi-parent = <&its>;
487 #interrupt-cells = <1>;
488 interrupt-map-mask = <0 0 0 7>;
489 interrupt-map = <0000 0 0 1 &gic 0 0 0 114 IRQ_TYPE_LEVEL_HIGH>,
490 <0000 0 0 2 &gic 0 0 0 115 IRQ_TYPE_LEVEL_HIGH>,
491 <0000 0 0 3 &gic 0 0 0 116 IRQ_TYPE_LEVEL_HIGH>,
492 <0000 0 0 4 &gic 0 0 0 117 IRQ_TYPE_LEVEL_HIGH>;
493 };
494
495 pcie@3600000 {
496 compatible = "fsl,ls1088a-pcie", "snps,dw-pcie";
497 reg = <0x00 0x03600000 0x0 0x00100000 /* controller registers */
498 0x30 0x00000000 0x0 0x00002000>; /* configuration space */
499 reg-names = "regs", "config";
500 interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>; /* aer interrupt */
501 interrupt-names = "aer";
502 #address-cells = <3>;
503 #size-cells = <2>;
504 device_type = "pci";
505 dma-coherent;
506 num-lanes = <8>;
507 bus-range = <0x0 0xff>;
508 ranges = <0x81000000 0x0 0x00000000 0x30 0x00010000 0x0 0x00010000 /* downstream I/O */
509 0x82000000 0x0 0x40000000 0x30 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
510 msi-parent = <&its>;
511 #interrupt-cells = <1>;
512 interrupt-map-mask = <0 0 0 7>;
513 interrupt-map = <0000 0 0 1 &gic 0 0 0 119 IRQ_TYPE_LEVEL_HIGH>,
514 <0000 0 0 2 &gic 0 0 0 120 IRQ_TYPE_LEVEL_HIGH>,
515 <0000 0 0 3 &gic 0 0 0 121 IRQ_TYPE_LEVEL_HIGH>,
516 <0000 0 0 4 &gic 0 0 0 122 IRQ_TYPE_LEVEL_HIGH>;
517 };
518 };
519
520 firmware {
521 optee {
522 compatible = "linaro,optee-tz";
523 method = "smc";
524 };
437 }; 525 };
438 526
439}; 527};
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi
index 6aa319dae396..aeaef01d375f 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi
@@ -151,6 +151,7 @@
151}; 151};
152 152
153&pcie1 { 153&pcie1 {
154 compatible = "fsl,ls2088a-pcie", "snps,dw-pcie";
154 reg = <0x00 0x03400000 0x0 0x00100000 /* controller registers */ 155 reg = <0x00 0x03400000 0x0 0x00100000 /* controller registers */
155 0x20 0x00000000 0x0 0x00002000>; /* configuration space */ 156 0x20 0x00000000 0x0 0x00002000>; /* configuration space */
156 157
@@ -159,6 +160,7 @@
159}; 160};
160 161
161&pcie2 { 162&pcie2 {
163 compatible = "fsl,ls2088a-pcie", "snps,dw-pcie";
162 reg = <0x00 0x03500000 0x0 0x00100000 /* controller registers */ 164 reg = <0x00 0x03500000 0x0 0x00100000 /* controller registers */
163 0x28 0x00000000 0x0 0x00002000>; /* configuration space */ 165 0x28 0x00000000 0x0 0x00002000>; /* configuration space */
164 166
@@ -167,6 +169,7 @@
167}; 169};
168 170
169&pcie3 { 171&pcie3 {
172 compatible = "fsl,ls2088a-pcie", "snps,dw-pcie";
170 reg = <0x00 0x03600000 0x0 0x00100000 /* controller registers */ 173 reg = <0x00 0x03600000 0x0 0x00100000 /* controller registers */
171 0x30 0x00000000 0x0 0x00002000>; /* configuration space */ 174 0x30 0x00000000 0x0 0x00002000>; /* configuration space */
172 175
@@ -175,6 +178,7 @@
175}; 178};
176 179
177&pcie4 { 180&pcie4 {
181 compatible = "fsl,ls2088a-pcie", "snps,dw-pcie";
178 reg = <0x00 0x03700000 0x0 0x00100000 /* controller registers */ 182 reg = <0x00 0x03700000 0x0 0x00100000 /* controller registers */
179 0x38 0x00000000 0x0 0x00002000>; /* configuration space */ 183 0x38 0x00000000 0x0 0x00002000>; /* configuration space */
180 184
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
index 4fb9a0966a84..f3a40af33af8 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
@@ -786,4 +786,11 @@
786 interrupts = <0 18 0x4>; 786 interrupts = <0 18 0x4>;
787 little-endian; 787 little-endian;
788 }; 788 };
789
790 firmware {
791 optee {
792 compatible = "linaro,optee-tz";
793 method = "smc";
794 };
795 };
789}; 796};
diff --git a/arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts b/arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts
index e9f87cb61ade..97d768730952 100644
--- a/arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts
+++ b/arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts
@@ -197,6 +197,325 @@
197 }; 197 };
198}; 198};
199 199
200/*
201 * Legend: proper name = the GPIO line is used as GPIO
202 * NC = not connected (pin out but not routed from the chip to
203 * anything the board)
204 * "[PER]" = pin is muxed for [peripheral] (not GPIO)
205 * "" = no idea, schematic doesn't say, could be
206 * unrouted (not connected to any external pin)
207 * LSEC = Low Speed External Connector
208 * HSEC = High Speed External Connector
209 *
210 * Line names are taken from "HiKey 960 Board ver A" schematics
211 * from Huawei. The 40 pin low speed expansion connector is named
212 * J2002 63453-140LF.
213 *
214 * For the lines routed to the external connectors the
215 * lines are named after the 96Boards CE Specification 1.0,
216 * Appendix "Expansion Connector Signal Description".
217 *
218 * When the 96Board naming of a line and the schematic name of
219 * the same line are in conflict, the 96Board specification
220 * takes precedence, which means that the external UART on the
221 * LSEC is named UART0 while the schematic and SoC names this
222 * UART3. This is only for the informational lines i.e. "[FOO]",
223 * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
224 * ones actually used for GPIO.
225 */
226&gpio0 {
227 /* GPIO_000-GPIO_007 */
228 gpio-line-names =
229 "",
230 "TP901", /* TEST_MODE connected to TP901 */
231 "[PMU0_SSI]",
232 "[PMU1_SSI]",
233 "[PMU2_SSI]",
234 "[PMU0_CLKOUT]",
235 "[JTAG_TCK]",
236 "[JTAG_TMS]";
237};
238
239&gpio1 {
240 /* GPIO_008-GPIO_015 */
241 gpio-line-names =
242 "[JTAG_TRST_N]",
243 "[JTAG_TDI]",
244 "[JTAG_TDO]",
245 "NC", "NC",
246 "[I2C3_SCL]",
247 "[I2C3_SDA]",
248 "NC";
249};
250
251&gpio2 {
252 /* GPIO_016-GPIO_023 */
253 gpio-line-names =
254 "NC", "NC", "NC",
255 "GPIO-J", /* LSEC pin 32: GPIO_019 */
256 "GPIO_020_HDMI_SEL",
257 "GPIO-L", /* LSEC pin 34: GPIO_021 */
258 "GPIO_022_UFSBUCK_INT_N",
259 "GPIO-G"; /* LSEC pin 29: LCD_TE0 */
260};
261
262&gpio3 {
263 /* GPIO_024-GPIO_031 */
264 /* The rail from pin BK36 is named LCD_TE0, we assume to be muxed as GPIO for GPIO-G */
265 gpio-line-names =
266 "[CSI0_MCLK]", /* HSEC pin 15: ISP_CCLK0_MCAM */
267 "[CSI1_MCLK]", /* HSEC pin 17: ISP_CCLK1_SCAM */
268 "NC",
269 "[I2C2_SCL]", /* HSEC pin 32: ISP_SCL0 */
270 "[I2C2_SDA]", /* HSEC pin 34: ISP_SDA0 */
271 "[I2C3_SCL]", /* HSEC pin 36: ISP_SCL1 */
272 "[I2C3_SDA]", /* HSEC pin 38: ISP_SDA1 */
273 "NC";
274};
275
276&gpio4 {
277 /* GPIO_032-GPIO_039 */
278 gpio-line-names =
279 "NC", "NC",
280 "PWR_BTN_N", /* LSEC pin 4: GPIO_034_PWRON_DET */
281 "GPIO_035_PMU2_EN",
282 "GPIO_036_USB_HUB_RESET",
283 "NC", "NC", "NC";
284};
285
286&gpio5 {
287 /* GPIO_040-GPIO_047 */
288 gpio-line-names =
289 "GPIO-H", /* LSEC pin 30: GPIO_040_LCD_RST_N */
290 "GPIO_041_HDMI_PD",
291 "TP904", /* Test point */
292 "TP905", /* Test point */
293 "NC", "NC",
294 "GPIO_046_HUB_VDD33_EN",
295 "GPIO_047_PMU1_EN";
296};
297
298&gpio6 {
299 /* GPIO_048-GPIO_055 */
300 gpio-line-names =
301 "NC", "NC", "NC",
302 "GPIO_051_WIFI_EN",
303 "GPIO-I", /* LSEC pin 31: GPIO_052_CAM0_RST_N */
304 /*
305 * These two pins should be used for SD(IO) data according to the
306 * 96boards specification but seems to be repurposed for a IRDA UART.
307 * They are however named according to the spec.
308 */
309 "[SD_DAT1]", /* HSEC pin 3: UART0_IRDA_RXD */
310 "[SD_DAT2]", /* HSEC pin 5: UART0_IRDA_TXD */
311 "[UART1_RXD]"; /* LSEC pin 13: DEBUG_UART6_RXD */
312};
313
314&gpio7 {
315 /* GPIO_056-GPIO_063 */
316 gpio-line-names =
317 "[UART1_TXD]", /* LSEC pin 11: DEBUG_UART6_TXD */
318 "[UART0_CTS]", /* LSEC pin 3: UART3_CTS_N */
319 "[UART0_RTS]", /* LSEC pin 9: UART3_RTS_N */
320 "[UART0_RXD]", /* LSEC pin 7: UART3_RXD */
321 "[UART0_TXD]", /* LSEC pin 5: UART3_TXD */
322 "[SOC_BT_UART4_CTS_N]",
323 "[SOC_BT_UART4_RTS_N]",
324 "[SOC_BT_UART4_RXD]";
325};
326
327&gpio8 {
328 /* GPIO_064-GPIO_071 */
329 gpio-line-names =
330 "[SOC_BT_UART4_TXD]",
331 "NC",
332 "[PMU_HKADC_SSI]",
333 "NC",
334 "GPIO_068_SEL",
335 "NC", "NC", "NC";
336
337};
338
339&gpio9 {
340 /* GPIO_072-GPIO_079 */
341 gpio-line-names =
342 "NC", "NC", "NC",
343 "GPIO-K", /* LSEC pin 33: GPIO_075_CAM1_RST_N */
344 "NC", "NC", "NC", "NC";
345};
346
347&gpio10 {
348 /* GPIO_080-GPIO_087 */
349 gpio-line-names = "NC", "NC", "NC", "NC", "NC", "NC", "NC", "NC";
350};
351
352&gpio11 {
353 /* GPIO_088-GPIO_095 */
354 gpio-line-names =
355 "NC",
356 "[PCIE_PERST_N]",
357 "NC", "NC", "NC", "NC", "NC", "NC";
358};
359
360&gpio12 {
361 /* GPIO_096-GPIO_103 */
362 gpio-line-names = "NC", "NC", "NC", "", "", "", "", "NC";
363};
364
365&gpio13 {
366 /* GPIO_104-GPIO_111 */
367 gpio-line-names = "NC", "NC", "NC", "NC", "NC", "NC", "NC", "NC";
368};
369
370&gpio14 {
371 /* GPIO_112-GPIO_119 */
372 gpio-line-names = "NC", "NC", "NC", "NC", "NC", "NC", "NC", "NC";
373};
374
375&gpio15 {
376 /* GPIO_120-GPIO_127 */
377 gpio-line-names =
378 "NC", "NC", "NC", "NC", "NC", "NC",
379 "GPIO_126_BT_EN",
380 "TP902"; /* GPIO_127_JTAG_SEL0 */
381};
382
383&gpio16 {
384 /* GPIO_128-GPIO_135 */
385 gpio-line-names = "", "", "", "", "", "", "", "";
386};
387
388&gpio17 {
389 /* GPIO_136-GPIO_143 */
390 gpio-line-names = "", "", "", "", "", "", "", "";
391};
392
393&gpio18 {
394 /* GPIO_144-GPIO_151 */
395 gpio-line-names =
396 "[UFS_REF_CLK]",
397 "[UFS_RST_N]",
398 "[SPI1_SCLK]", /* HSEC pin 9: GPIO_146_SPI3_CLK */
399 "[SPI1_DIN]", /* HSEC pin 11: GPIO_147_SPI3_DI */
400 "[SPI1_DOUT]", /* HSEC pin 1: GPIO_148_SPI3_DO */
401 "[SPI1_CS]", /* HSEC pin 7: GPIO_149_SPI3_CS0_N */
402 "GPIO_150_USER_LED1",
403 "GPIO_151_USER_LED2";
404};
405
406&gpio19 {
407 /* GPIO_152-GPIO_159 */
408 gpio-line-names = "NC", "NC", "NC", "NC", "", "", "", "";
409};
410
411&gpio20 {
412 /* GPIO_160-GPIO_167 */
413 gpio-line-names =
414 "[SD_CLK]",
415 "[SD_CMD]",
416 "[SD_DATA0]",
417 "[SD_DATA1]",
418 "[SD_DATA2]",
419 "[SD_DATA3]",
420 "", "";
421};
422
423&gpio21 {
424 /* GPIO_168-GPIO_175 */
425 gpio-line-names =
426 "[WL_SDIO_CLK]",
427 "[WL_SDIO_CMD]",
428 "[WL_SDIO_DATA0]",
429 "[WL_SDIO_DATA1]",
430 "[WL_SDIO_DATA2]",
431 "[WL_SDIO_DATA3]",
432 "", "";
433};
434
435&gpio22 {
436 /* GPIO_176-GPIO_183 */
437 gpio-line-names =
438 "[GPIO_176_PMU_PWR_HOLD]",
439 "NA",
440 "[SYSCLK_EN]",
441 "GPIO_179_WL_WAKEUP_AP",
442 "GPIO_180_HDMI_INT",
443 "NA",
444 "GPIO-F", /* LSEC pin 28: LCD_BL_PWM */
445 "[I2C0_SCL]"; /* LSEC pin 15 */
446};
447
448&gpio23 {
449 /* GPIO_184-GPIO_191 */
450 gpio-line-names =
451 "[I2C0_SDA]", /* LSEC pin 17 */
452 "[I2C1_SCL]", /* Actual SoC I2C1 */
453 "[I2C1_SDA]", /* Actual SoC I2C1 */
454 "[I2C1_SCL]", /* LSEC pin 19: I2C7_SCL */
455 "[I2C1_SDA]", /* LSEC pin 21: I2C7_SDA */
456 "GPIO_189_USER_LED3",
457 "GPIO_190_USER_LED4",
458 "";
459};
460
461&gpio24 {
462 /* GPIO_192-GPIO_199 */
463 gpio-line-names =
464 "[PCM_DI]", /* LSEC pin 22: GPIO_192_I2S0_DI */
465 "[PCM_DO]", /* LSEC pin 20: GPIO_193_I2S0_DO */
466 "[PCM_CLK]", /* LSEC pin 18: GPIO_194_I2S0_XCLK */
467 "[PCM_FS]", /* LSEC pin 16: GPIO_195_I2S0_XFS */
468 "[GPIO_196_I2S2_DI]",
469 "[GPIO_197_I2S2_DO]",
470 "[GPIO_198_I2S2_XCLK]",
471 "[GPIO_199_I2S2_XFS]";
472};
473
474&gpio25 {
475 /* GPIO_200-GPIO_207 */
476 gpio-line-names =
477 "NC",
478 "NC",
479 "GPIO_202_VBUS_TYPEC",
480 "GPIO_203_SD_DET",
481 "GPIO_204_PMU12_IRQ_N",
482 "GPIO_205_WIFI_ACTIVE",
483 "GPIO_206_USBSW_SEL",
484 "GPIO_207_BT_ACTIVE";
485};
486
487&gpio26 {
488 /* GPIO_208-GPIO_215 */
489 gpio-line-names =
490 "GPIO-A", /* LSEC pin 23: GPIO_208 */
491 "GPIO-B", /* LSEC pin 24: GPIO_209 */
492 "GPIO-C", /* LSEC pin 25: GPIO_210 */
493 "GPIO-D", /* LSEC pin 26: GPIO_211 */
494 "GPIO-E", /* LSEC pin 27: GPIO_212 */
495 "[PCIE_CLKREQ_N]",
496 "[PCIE_WAKE_N]",
497 "[SPI0_CLK]"; /* LSEC pin 8: SPI2_CLK */
498};
499
500&gpio27 {
501 /* GPIO_216-GPIO_223 */
502 gpio-line-names =
503 "[SPI0_DIN]", /* LSEC pin 10: SPI2_DI */
504 "[SPI0_DOUT]", /* LSEC pin 14: SPI2_DO */
505 "[SPI0_CS]", /* LSEC pin 12: SPI2_CS0_N */
506 "GPIO_219_CC_INT",
507 "NC",
508 "NC",
509 "[PMU_INT]",
510 "";
511};
512
513&gpio28 {
514 /* GPIO_224-GPIO_231 */
515 gpio-line-names =
516 "", "", "", "", "", "", "", "";
517};
518
200&i2c0 { 519&i2c0 {
201 /* On Low speed expansion */ 520 /* On Low speed expansion */
202 label = "LS-I2C0"; 521 label = "LS-I2C0";
diff --git a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi
index 13ae69f5a327..ab0b95ba5ae5 100644
--- a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi
+++ b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi
@@ -979,5 +979,12 @@
979 clocks = <&crg_ctrl HI3660_OSC32K>; 979 clocks = <&crg_ctrl HI3660_OSC32K>;
980 clock-names = "apb_pclk"; 980 clock-names = "apb_pclk";
981 }; 981 };
982
983 tsensor: tsensor@fff30000 {
984 compatible = "hisilicon,hi3660-tsensor";
985 reg = <0x0 0xfff30000 0x0 0x1000>;
986 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
987 #thermal-sensor-cells = <1>;
988 };
982 }; 989 };
983}; 990};
diff --git a/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts b/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts
index b9142871d6fe..a6fd13389f8d 100644
--- a/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts
+++ b/arch/arm64/boot/dts/hisilicon/hi3798cv200-poplar.dts
@@ -78,17 +78,17 @@
78 78
79&gpio1 { 79&gpio1 {
80 status = "okay"; 80 status = "okay";
81 gpio-line-names = "LS-GPIO-E", "", 81 gpio-line-names = "GPIO-E", "",
82 "", "", 82 "", "",
83 "", "LS-GPIO-F", 83 "", "GPIO-F",
84 "", "LS-GPIO-J"; 84 "", "GPIO-J";
85}; 85};
86 86
87&gpio2 { 87&gpio2 {
88 status = "okay"; 88 status = "okay";
89 gpio-line-names = "LS-GPIO-H", "LS-GPIO-I", 89 gpio-line-names = "GPIO-H", "GPIO-I",
90 "LS-GPIO-L", "LS-GPIO-G", 90 "GPIO-L", "GPIO-G",
91 "LS-GPIO-K", "", 91 "GPIO-K", "",
92 "", ""; 92 "", "";
93}; 93};
94 94
@@ -96,15 +96,15 @@
96 status = "okay"; 96 status = "okay";
97 gpio-line-names = "", "", 97 gpio-line-names = "", "",
98 "", "", 98 "", "",
99 "LS-GPIO-C", "", 99 "GPIO-C", "",
100 "", "LS-GPIO-B"; 100 "", "GPIO-B";
101}; 101};
102 102
103&gpio4 { 103&gpio4 {
104 status = "okay"; 104 status = "okay";
105 gpio-line-names = "", "", 105 gpio-line-names = "", "",
106 "", "", 106 "", "",
107 "", "LS-GPIO-D", 107 "", "GPIO-D",
108 "", ""; 108 "", "";
109}; 109};
110 110
@@ -112,7 +112,7 @@
112 status = "okay"; 112 status = "okay";
113 gpio-line-names = "", "USER-LED-1", 113 gpio-line-names = "", "USER-LED-1",
114 "USER-LED-2", "", 114 "USER-LED-2", "",
115 "", "LS-GPIO-A", 115 "", "GPIO-A",
116 "", ""; 116 "", "";
117}; 117};
118 118
diff --git a/arch/arm64/boot/dts/hisilicon/hi6220-coresight.dtsi b/arch/arm64/boot/dts/hisilicon/hi6220-coresight.dtsi
new file mode 100644
index 000000000000..7afee5d5087b
--- /dev/null
+++ b/arch/arm64/boot/dts/hisilicon/hi6220-coresight.dtsi
@@ -0,0 +1,381 @@
1/*
2 * dtsi file for Hisilicon Hi6220 coresight
3 *
4 * Copyright (C) 2017 Hisilicon Ltd.
5 *
6 * Author: Pengcheng Li <lipengcheng8@huawei.com>
7 * Leo Yan <leo.yan@linaro.org>
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * publishhed by the Free Software Foundation.
12 *
13 */
14
15/ {
16 soc {
17 funnel@f6401000 {
18 compatible = "arm,coresight-funnel", "arm,primecell";
19 reg = <0 0xf6401000 0 0x1000>;
20 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
21 clock-names = "apb_pclk";
22
23 ports {
24 #address-cells = <1>;
25 #size-cells = <0>;
26
27 port@0 {
28 reg = <0>;
29 soc_funnel_out: endpoint {
30 remote-endpoint =
31 <&etf_in>;
32 };
33 };
34
35 port@1 {
36 reg = <0>;
37 soc_funnel_in: endpoint {
38 slave-mode;
39 remote-endpoint =
40 <&acpu_funnel_out>;
41 };
42 };
43 };
44 };
45
46 etf@f6402000 {
47 compatible = "arm,coresight-tmc", "arm,primecell";
48 reg = <0 0xf6402000 0 0x1000>;
49 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
50 clock-names = "apb_pclk";
51
52 ports {
53 #address-cells = <1>;
54 #size-cells = <0>;
55
56 port@0 {
57 reg = <0>;
58 etf_in: endpoint {
59 slave-mode;
60 remote-endpoint =
61 <&soc_funnel_out>;
62 };
63 };
64
65 port@1 {
66 reg = <0>;
67 etf_out: endpoint {
68 remote-endpoint =
69 <&replicator_in>;
70 };
71 };
72 };
73 };
74
75 replicator {
76 compatible = "arm,coresight-replicator";
77 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
78 clock-names = "apb_pclk";
79
80 ports {
81 #address-cells = <1>;
82 #size-cells = <0>;
83
84 port@0 {
85 reg = <0>;
86 replicator_in: endpoint {
87 slave-mode;
88 remote-endpoint =
89 <&etf_out>;
90 };
91 };
92
93 port@1 {
94 reg = <0>;
95 replicator_out0: endpoint {
96 remote-endpoint =
97 <&etr_in>;
98 };
99 };
100
101 port@2 {
102 reg = <1>;
103 replicator_out1: endpoint {
104 remote-endpoint =
105 <&tpiu_in>;
106 };
107 };
108 };
109 };
110
111 etr@f6404000 {
112 compatible = "arm,coresight-tmc", "arm,primecell";
113 reg = <0 0xf6404000 0 0x1000>;
114 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
115 clock-names = "apb_pclk";
116
117 ports {
118 #address-cells = <1>;
119 #size-cells = <0>;
120
121 port@0 {
122 reg = <0>;
123 etr_in: endpoint {
124 slave-mode;
125 remote-endpoint =
126 <&replicator_out0>;
127 };
128 };
129 };
130 };
131
132 tpiu@f6405000 {
133 compatible = "arm,coresight-tpiu", "arm,primecell";
134 reg = <0 0xf6405000 0 0x1000>;
135 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
136 clock-names = "apb_pclk";
137
138 ports {
139 #address-cells = <1>;
140 #size-cells = <0>;
141
142 port@0 {
143 reg = <0>;
144 tpiu_in: endpoint {
145 slave-mode;
146 remote-endpoint =
147 <&replicator_out1>;
148 };
149 };
150 };
151 };
152
153 funnel@f6501000 {
154 compatible = "arm,coresight-funnel", "arm,primecell";
155 reg = <0 0xf6501000 0 0x1000>;
156 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
157 clock-names = "apb_pclk";
158
159 ports {
160 #address-cells = <1>;
161 #size-cells = <0>;
162
163 port@0 {
164 reg = <0>;
165 acpu_funnel_out: endpoint {
166 remote-endpoint =
167 <&soc_funnel_in>;
168 };
169 };
170
171 port@1 {
172 reg = <0>;
173 acpu_funnel_in0: endpoint {
174 slave-mode;
175 remote-endpoint =
176 <&etm0_out>;
177 };
178 };
179
180 port@2 {
181 reg = <1>;
182 acpu_funnel_in1: endpoint {
183 slave-mode;
184 remote-endpoint =
185 <&etm1_out>;
186 };
187 };
188
189 port@3 {
190 reg = <2>;
191 acpu_funnel_in2: endpoint {
192 slave-mode;
193 remote-endpoint =
194 <&etm2_out>;
195 };
196 };
197
198 port@4 {
199 reg = <3>;
200 acpu_funnel_in3: endpoint {
201 slave-mode;
202 remote-endpoint =
203 <&etm3_out>;
204 };
205 };
206
207 port@5 {
208 reg = <4>;
209 acpu_funnel_in4: endpoint {
210 slave-mode;
211 remote-endpoint =
212 <&etm4_out>;
213 };
214 };
215
216 port@6 {
217 reg = <5>;
218 acpu_funnel_in5: endpoint {
219 slave-mode;
220 remote-endpoint =
221 <&etm5_out>;
222 };
223 };
224
225 port@7 {
226 reg = <6>;
227 acpu_funnel_in6: endpoint {
228 slave-mode;
229 remote-endpoint =
230 <&etm6_out>;
231 };
232 };
233
234 port@8 {
235 reg = <7>;
236 acpu_funnel_in7: endpoint {
237 slave-mode;
238 remote-endpoint =
239 <&etm7_out>;
240 };
241 };
242 };
243 };
244
245 etm@f659c000 {
246 compatible = "arm,coresight-etm4x", "arm,primecell";
247 reg = <0 0xf659c000 0 0x1000>;
248
249 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
250 clock-names = "apb_pclk";
251
252 cpu = <&cpu0>;
253
254 port {
255 etm0_out: endpoint {
256 remote-endpoint =
257 <&acpu_funnel_in0>;
258 };
259 };
260 };
261
262 etm@f659d000 {
263 compatible = "arm,coresight-etm4x", "arm,primecell";
264 reg = <0 0xf659d000 0 0x1000>;
265
266 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
267 clock-names = "apb_pclk";
268
269 cpu = <&cpu1>;
270
271 port {
272 etm1_out: endpoint {
273 remote-endpoint =
274 <&acpu_funnel_in1>;
275 };
276 };
277 };
278
279 etm@f659e000 {
280 compatible = "arm,coresight-etm4x", "arm,primecell";
281 reg = <0 0xf659e000 0 0x1000>;
282
283 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
284 clock-names = "apb_pclk";
285
286 cpu = <&cpu2>;
287
288 port {
289 etm2_out: endpoint {
290 remote-endpoint =
291 <&acpu_funnel_in2>;
292 };
293 };
294 };
295
296 etm@f659f000 {
297 compatible = "arm,coresight-etm4x", "arm,primecell";
298 reg = <0 0xf659f000 0 0x1000>;
299
300 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
301 clock-names = "apb_pclk";
302
303 cpu = <&cpu3>;
304
305 port {
306 etm3_out: endpoint {
307 remote-endpoint =
308 <&acpu_funnel_in3>;
309 };
310 };
311 };
312
313 etm@f65dc000 {
314 compatible = "arm,coresight-etm4x", "arm,primecell";
315 reg = <0 0xf65dc000 0 0x1000>;
316
317 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
318 clock-names = "apb_pclk";
319
320 cpu = <&cpu4>;
321
322 port {
323 etm4_out: endpoint {
324 remote-endpoint =
325 <&acpu_funnel_in4>;
326 };
327 };
328 };
329
330 etm@f65dd000 {
331 compatible = "arm,coresight-etm4x", "arm,primecell";
332 reg = <0 0xf65dd000 0 0x1000>;
333
334 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
335 clock-names = "apb_pclk";
336
337 cpu = <&cpu5>;
338
339 port {
340 etm5_out: endpoint {
341 remote-endpoint =
342 <&acpu_funnel_in5>;
343 };
344 };
345 };
346
347 etm@f65de000 {
348 compatible = "arm,coresight-etm4x", "arm,primecell";
349 reg = <0 0xf65de000 0 0x1000>;
350
351 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
352 clock-names = "apb_pclk";
353
354 cpu = <&cpu6>;
355
356 port {
357 etm6_out: endpoint {
358 remote-endpoint =
359 <&acpu_funnel_in6>;
360 };
361 };
362 };
363
364 etm@f65df000 {
365 compatible = "arm,coresight-etm4x", "arm,primecell";
366 reg = <0 0xf65df000 0 0x1000>;
367
368 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
369 clock-names = "apb_pclk";
370
371 cpu = <&cpu7>;
372
373 port {
374 etm7_out: endpoint {
375 remote-endpoint =
376 <&acpu_funnel_in7>;
377 };
378 };
379 };
380 };
381};
diff --git a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
index ff1dc89f599e..6a180d1926e8 100644
--- a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
+++ b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
@@ -987,3 +987,5 @@
987 }; 987 };
988 }; 988 };
989}; 989};
990
991#include "hi6220-coresight.dtsi"
diff --git a/arch/arm64/boot/dts/hisilicon/hip05-d02.dts b/arch/arm64/boot/dts/hisilicon/hip05-d02.dts
index abba750b87f8..3bbd017f088f 100644
--- a/arch/arm64/boot/dts/hisilicon/hip05-d02.dts
+++ b/arch/arm64/boot/dts/hisilicon/hip05-d02.dts
@@ -18,7 +18,7 @@
18 model = "Hisilicon Hip05 D02 Development Board"; 18 model = "Hisilicon Hip05 D02 Development Board";
19 compatible = "hisilicon,hip05-d02"; 19 compatible = "hisilicon,hip05-d02";
20 20
21 memory@00000000 { 21 memory@0 {
22 device_type = "memory"; 22 device_type = "memory";
23 reg = <0x0 0x00000000 0x0 0x80000000>; 23 reg = <0x0 0x00000000 0x0 0x80000000>;
24 }; 24 };
diff --git a/arch/arm64/boot/dts/hisilicon/hip06-d03.dts b/arch/arm64/boot/dts/hisilicon/hip06-d03.dts
index 7c4114a67753..9af633021a42 100644
--- a/arch/arm64/boot/dts/hisilicon/hip06-d03.dts
+++ b/arch/arm64/boot/dts/hisilicon/hip06-d03.dts
@@ -17,7 +17,7 @@
17 model = "Hisilicon Hip06 D03 Development Board"; 17 model = "Hisilicon Hip06 D03 Development Board";
18 compatible = "hisilicon,hip06-d03"; 18 compatible = "hisilicon,hip06-d03";
19 19
20 memory@00000000 { 20 memory@0 {
21 device_type = "memory"; 21 device_type = "memory";
22 reg = <0x0 0x00000000 0x0 0x40000000>; 22 reg = <0x0 0x00000000 0x0 0x40000000>;
23 }; 23 };
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-db.dts b/arch/arm64/boot/dts/marvell/armada-3720-db.dts
index 9df0f06ce607..0f3468e777f7 100644
--- a/arch/arm64/boot/dts/marvell/armada-3720-db.dts
+++ b/arch/arm64/boot/dts/marvell/armada-3720-db.dts
@@ -94,6 +94,16 @@
94 3300000 0x0>; 94 3300000 0x0>;
95 enable-active-high; 95 enable-active-high;
96 }; 96 };
97
98 vcc_sd_reg2: regulator-vmcc {
99 compatible = "regulator-fixed";
100 regulator-name = "vcc_sd2";
101 regulator-min-microvolt = <3300000>;
102 regulator-max-microvolt = <3300000>;
103 regulator-boot-on;
104 enable-active-high;
105 gpio = <&gpio_exp 4 GPIO_ACTIVE_HIGH>;
106 };
97}; 107};
98 108
99/* Gigabit module on CON19(V2.0)/CON21(V1.4) */ 109/* Gigabit module on CON19(V2.0)/CON21(V1.4) */
@@ -179,6 +189,7 @@
179 bus-width = <4>; 189 bus-width = <4>;
180 marvell,pad-type = "sd"; 190 marvell,pad-type = "sd";
181 vqmmc-supply = <&vcc_sd_reg1>; 191 vqmmc-supply = <&vcc_sd_reg1>;
192 vmmc-supply = <&vcc_sd_reg2>;
182 status = "okay"; 193 status = "okay";
183}; 194};
184 195
@@ -216,7 +227,7 @@
216 227
217/* 228/*
218 * Exported on the micro USB connector CON30(V2.0)/CON32(V1.4) through 229 * Exported on the micro USB connector CON30(V2.0)/CON32(V1.4) through
219 * an FTDI 230 * an FTDI (also on CON24(V2.0)/CON26(V1.4)).
220 */ 231 */
221&uart0 { 232&uart0 {
222 pinctrl-names = "default"; 233 pinctrl-names = "default";
@@ -224,6 +235,13 @@
224 status = "okay"; 235 status = "okay";
225}; 236};
226 237
238/* CON26(V2.0)/CON28(V1.4) */
239&uart1 {
240 pinctrl-names = "default";
241 pinctrl-0 = <&uart2_pins>;
242 status = "okay";
243};
244
227/* CON27(V2.0)/CON29(V1.4) */ 245/* CON27(V2.0)/CON29(V1.4) */
228&usb2 { 246&usb2 {
229 status = "okay"; 247 status = "okay";
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts b/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
index 2ce52ba74f73..bdfb5553ddb5 100644
--- a/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
+++ b/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
@@ -98,9 +98,21 @@
98 98
99/* Exported on the micro USB connector J5 through an FTDI */ 99/* Exported on the micro USB connector J5 through an FTDI */
100&uart0 { 100&uart0 {
101 pinctrl-names = "default";
102 pinctrl-0 = <&uart1_pins>;
101 status = "okay"; 103 status = "okay";
102}; 104};
103 105
106/*
107 * Connector J17 and J18 expose a number of different features. Some pins are
108 * multiplexed. This is the case for instance for the following features:
109 * - UART1 (pin 24 = RX, pin 26 = TX). See armada-3720-db.dts for an example of
110 * how to enable it. Beware that the signals are 1.8V TTL.
111 * - I2C
112 * - SPI
113 * - MMC
114 */
115
104/* J7 */ 116/* J7 */
105&usb3 { 117&usb3 {
106 status = "okay"; 118 status = "okay";
diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
index 8c0cf7efac65..90c26d616a54 100644
--- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
@@ -55,6 +55,7 @@
55 55
56 aliases { 56 aliases {
57 serial0 = &uart0; 57 serial0 = &uart0;
58 serial1 = &uart1;
58 }; 59 };
59 60
60 cpus { 61 cpus {
@@ -134,8 +135,24 @@
134 135
135 uart0: serial@12000 { 136 uart0: serial@12000 {
136 compatible = "marvell,armada-3700-uart"; 137 compatible = "marvell,armada-3700-uart";
137 reg = <0x12000 0x400>; 138 reg = <0x12000 0x200>;
138 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 139 clocks = <&xtalclk>;
140 interrupts =
141 <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
142 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
143 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
144 interrupt-names = "uart-sum", "uart-tx", "uart-rx";
145 status = "disabled";
146 };
147
148 uart1: serial@12200 {
149 compatible = "marvell,armada-3700-uart-ext";
150 reg = <0x12200 0x30>;
151 clocks = <&xtalclk>;
152 interrupts =
153 <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
154 <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>;
155 interrupt-names = "uart-tx", "uart-rx";
139 status = "disabled"; 156 status = "disabled";
140 }; 157 };
141 158
@@ -183,7 +200,6 @@
183 <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>, 200 <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
184 <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>, 201 <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
185 <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; 202 <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
186
187 }; 203 };
188 204
189 xtalclk: xtal-clk { 205 xtalclk: xtal-clk {
diff --git a/arch/arm64/boot/dts/marvell/armada-7040-db.dts b/arch/arm64/boot/dts/marvell/armada-7040-db.dts
index 9c3bdf87e543..52b5341cb270 100644
--- a/arch/arm64/boot/dts/marvell/armada-7040-db.dts
+++ b/arch/arm64/boot/dts/marvell/armada-7040-db.dts
@@ -56,7 +56,7 @@
56 stdout-path = "serial0:115200n8"; 56 stdout-path = "serial0:115200n8";
57 }; 57 };
58 58
59 memory@00000000 { 59 memory@0 {
60 device_type = "memory"; 60 device_type = "memory";
61 reg = <0x0 0x0 0x0 0x80000000>; 61 reg = <0x0 0x0 0x0 0x80000000>;
62 }; 62 };
@@ -124,6 +124,8 @@
124 124
125&uart0 { 125&uart0 {
126 status = "okay"; 126 status = "okay";
127 pinctrl-0 = <&uart0_pins>;
128 pinctrl-names = "default";
127}; 129};
128 130
129 131
@@ -141,9 +143,49 @@
141 gpio-controller; 143 gpio-controller;
142 #gpio-cells = <2>; 144 #gpio-cells = <2>;
143 reg = <0x21>; 145 reg = <0x21>;
146 /*
147 * IO0_0: USB3_PWR_EN0 IO1_0: USB_3_1_Dev_Detect
148 * IO0_1: USB3_PWR_EN1 IO1_1: USB2_1_current_limit
149 * IO0_2: DDR3_4_Detect IO1_2: Hcon_IO_RstN
150 * IO0_3: USB2_DEVICE_DETECT
151 * IO0_4: GPIO_0 IO1_4: SD_Status
152 * IO0_5: GPIO_1 IO1_5: LDO_5V_Enable
153 * IO0_6: IHB_5V_Enable IO1_6: PWR_EN_eMMC
154 * IO0_7: IO1_7: SDIO_Vcntrl
155 */
144 }; 156 };
145}; 157};
146 158
159&cpm_nand {
160 /*
161 * SPI on CPM and NAND have common pins on this board. We can
162 * use only one at a time. To enable the NAND (whihch will
163 * disable the SPI), the "status = "okay";" line have to be
164 * added here.
165 */
166 num-cs = <1>;
167 pinctrl-0 = <&nand_pins>, <&nand_rb>;
168 pinctrl-names = "default";
169 nand-ecc-strength = <4>;
170 nand-ecc-step-size = <512>;
171 marvell,nand-enable-arbiter;
172 nand-on-flash-bbt;
173
174 partition@0 {
175 label = "U-Boot";
176 reg = <0 0x200000>;
177 };
178 partition@200000 {
179 label = "Linux";
180 reg = <0x200000 0xe00000>;
181 };
182 partition@1000000 {
183 label = "Filesystem";
184 reg = <0x1000000 0x3f000000>;
185 };
186};
187
188
147&cpm_spi1 { 189&cpm_spi1 {
148 status = "okay"; 190 status = "okay";
149 191
@@ -197,7 +239,7 @@
197 status = "okay"; 239 status = "okay";
198 bus-width = <4>; 240 bus-width = <4>;
199 no-1-8-v; 241 no-1-8-v;
200 non-removable; 242 cd-gpios = <&expander0 12 GPIO_ACTIVE_LOW>;
201}; 243};
202 244
203&cpm_mdio { 245&cpm_mdio {
@@ -215,10 +257,21 @@
215 status = "okay"; 257 status = "okay";
216}; 258};
217 259
260&cpm_eth0 {
261 status = "okay";
262 /* Network PHY */
263 phy-mode = "10gbase-kr";
264 /* Generic PHY, providing serdes lanes */
265 phys = <&cpm_comphy2 0>;
266};
267
218&cpm_eth1 { 268&cpm_eth1 {
219 status = "okay"; 269 status = "okay";
270 /* Network PHY */
220 phy = <&phy0>; 271 phy = <&phy0>;
221 phy-mode = "sgmii"; 272 phy-mode = "sgmii";
273 /* Generic PHY, providing serdes lanes */
274 phys = <&cpm_comphy0 1>;
222}; 275};
223 276
224&cpm_eth2 { 277&cpm_eth2 {
diff --git a/arch/arm64/boot/dts/marvell/armada-70x0.dtsi b/arch/arm64/boot/dts/marvell/armada-70x0.dtsi
index 860b6ae9dcc5..0e1a1e5be399 100644
--- a/arch/arm64/boot/dts/marvell/armada-70x0.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-70x0.dtsi
@@ -64,5 +64,19 @@
64&cpm_syscon0 { 64&cpm_syscon0 {
65 cpm_pinctrl: pinctrl { 65 cpm_pinctrl: pinctrl {
66 compatible = "marvell,armada-7k-pinctrl"; 66 compatible = "marvell,armada-7k-pinctrl";
67
68 nand_pins: nand-pins {
69 marvell,pins =
70 "mpp15", "mpp16", "mpp17", "mpp18",
71 "mpp19", "mpp20", "mpp21", "mpp22",
72 "mpp23", "mpp24", "mpp25", "mpp26",
73 "mpp27";
74 marvell,function = "dev";
75 };
76
77 nand_rb: nand-rb {
78 marvell,pins = "mpp13";
79 marvell,function = "nf";
80 };
67 }; 81 };
68}; 82};
diff --git a/arch/arm64/boot/dts/marvell/armada-8040-db.dts b/arch/arm64/boot/dts/marvell/armada-8040-db.dts
index 0d7b2ae46610..d97b72bed662 100644
--- a/arch/arm64/boot/dts/marvell/armada-8040-db.dts
+++ b/arch/arm64/boot/dts/marvell/armada-8040-db.dts
@@ -56,7 +56,7 @@
56 stdout-path = "serial0:115200n8"; 56 stdout-path = "serial0:115200n8";
57 }; 57 };
58 58
59 memory@00000000 { 59 memory@0 {
60 device_type = "memory"; 60 device_type = "memory";
61 reg = <0x0 0x0 0x0 0x80000000>; 61 reg = <0x0 0x0 0x0 0x80000000>;
62 }; 62 };
@@ -139,8 +139,14 @@
139/* Accessible over the mini-USB CON9 connector on the main board */ 139/* Accessible over the mini-USB CON9 connector on the main board */
140&uart0 { 140&uart0 {
141 status = "okay"; 141 status = "okay";
142 pinctrl-0 = <&uart0_pins>;
143 pinctrl-names = "default";
142}; 144};
143 145
146/* CON6 on CP0 expansion */
147&cpm_pcie0 {
148 status = "okay";
149};
144 150
145/* CON5 on CP0 expansion */ 151/* CON5 on CP0 expansion */
146&cpm_pcie2 { 152&cpm_pcie2 {
@@ -200,12 +206,27 @@
200 status = "okay"; 206 status = "okay";
201}; 207};
202 208
209&cpm_eth0 {
210 status = "okay";
211 phy-mode = "10gbase-kr";
212};
213
203&cpm_eth2 { 214&cpm_eth2 {
204 status = "okay"; 215 status = "okay";
205 phy = <&phy1>; 216 phy = <&phy1>;
206 phy-mode = "rgmii-id"; 217 phy-mode = "rgmii-id";
207}; 218};
208 219
220/* CON6 on CP1 expansion */
221&cps_pcie0 {
222 status = "okay";
223};
224
225/* CON7 on CP1 expansion */
226&cps_pcie1 {
227 status = "okay";
228};
229
209/* CON5 on CP1 expansion */ 230/* CON5 on CP1 expansion */
210&cps_pcie2 { 231&cps_pcie2 {
211 status = "okay"; 232 status = "okay";
@@ -216,6 +237,37 @@
216 clock-frequency = <100000>; 237 clock-frequency = <100000>;
217}; 238};
218 239
240&cps_spi1 {
241 status = "okay";
242
243 spi-flash@0 {
244 #address-cells = <0x1>;
245 #size-cells = <0x1>;
246 compatible = "jedec,spi-nor";
247 reg = <0x0>;
248 spi-max-frequency = <20000000>;
249
250 partitions {
251 compatible = "fixed-partitions";
252 #address-cells = <1>;
253 #size-cells = <1>;
254
255 partition@0 {
256 label = "Boot";
257 reg = <0x0 0x200000>;
258 };
259 partition@200000 {
260 label = "Filesystem";
261 reg = <0x200000 0xd00000>;
262 };
263 partition@f00000 {
264 label = "Boot_2nd";
265 reg = <0xf00000 0x100000>;
266 };
267 };
268 };
269};
270
219/* CON4 on CP1 expansion */ 271/* CON4 on CP1 expansion */
220&cps_sata0 { 272&cps_sata0 {
221 status = "okay"; 273 status = "okay";
@@ -244,6 +296,11 @@
244 status = "okay"; 296 status = "okay";
245}; 297};
246 298
299&cps_eth0 {
300 status = "okay";
301 phy-mode = "10gbase-kr";
302};
303
247&cps_eth1 { 304&cps_eth1 {
248 status = "okay"; 305 status = "okay";
249 phy = <&phy0>; 306 phy = <&phy0>;
diff --git a/arch/arm64/boot/dts/marvell/armada-8040-mcbin.dts b/arch/arm64/boot/dts/marvell/armada-8040-mcbin.dts
index acf5c7d16d79..b3350827ee55 100644
--- a/arch/arm64/boot/dts/marvell/armada-8040-mcbin.dts
+++ b/arch/arm64/boot/dts/marvell/armada-8040-mcbin.dts
@@ -57,7 +57,7 @@
57 stdout-path = "serial0:115200n8"; 57 stdout-path = "serial0:115200n8";
58 }; 58 };
59 59
60 memory@00000000 { 60 memory@0 {
61 device_type = "memory"; 61 device_type = "memory";
62 reg = <0x0 0x0 0x0 0x80000000>; 62 reg = <0x0 0x0 0x0 0x80000000>;
63 }; 63 };
@@ -101,6 +101,8 @@
101 101
102&uart0 { 102&uart0 {
103 status = "okay"; 103 status = "okay";
104 pinctrl-0 = <&uart0_pins>;
105 pinctrl-names = "default";
104}; 106};
105 107
106&ap_sdhci0 { 108&ap_sdhci0 {
@@ -222,8 +224,11 @@
222 224
223&cpm_eth0 { 225&cpm_eth0 {
224 status = "okay"; 226 status = "okay";
227 /* Network PHY */
225 phy = <&phy0>; 228 phy = <&phy0>;
226 phy-mode = "10gbase-kr"; 229 phy-mode = "10gbase-kr";
230 /* Generic PHY, providing serdes lanes */
231 phys = <&cpm_comphy4 0>;
227}; 232};
228 233
229&cpm_sata0 { 234&cpm_sata0 {
@@ -257,15 +262,21 @@
257 262
258&cps_eth0 { 263&cps_eth0 {
259 status = "okay"; 264 status = "okay";
265 /* Network PHY */
260 phy = <&phy8>; 266 phy = <&phy8>;
261 phy-mode = "10gbase-kr"; 267 phy-mode = "10gbase-kr";
268 /* Generic PHY, providing serdes lanes */
269 phys = <&cps_comphy4 0>;
262}; 270};
263 271
264&cps_eth1 { 272&cps_eth1 {
265 /* CPS Lane 0 - J5 (Gigabit RJ45) */ 273 /* CPS Lane 0 - J5 (Gigabit RJ45) */
266 status = "okay"; 274 status = "okay";
275 /* Network PHY */
267 phy = <&ge_phy>; 276 phy = <&ge_phy>;
268 phy-mode = "sgmii"; 277 phy-mode = "sgmii";
278 /* Generic PHY, providing serdes lanes */
279 phys = <&cps_comphy0 1>;
269}; 280};
270 281
271&cps_pinctrl { 282&cps_pinctrl {
diff --git a/arch/arm64/boot/dts/marvell/armada-8080-db.dts b/arch/arm64/boot/dts/marvell/armada-8080-db.dts
index 707af833832b..85b58a19a9fb 100644
--- a/arch/arm64/boot/dts/marvell/armada-8080-db.dts
+++ b/arch/arm64/boot/dts/marvell/armada-8080-db.dts
@@ -55,7 +55,7 @@
55 stdout-path = "serial0:115200n8"; 55 stdout-path = "serial0:115200n8";
56 }; 56 };
57 57
58 memory@00000000 { 58 memory@0 {
59 device_type = "memory"; 59 device_type = "memory";
60 reg = <0x0 0x0 0x0 0x80000000>; 60 reg = <0x0 0x0 0x0 0x80000000>;
61 }; 61 };
diff --git a/arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi b/arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi
index 95a1ff60f6c1..b98ea137371d 100644
--- a/arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi
@@ -54,13 +54,13 @@
54 #address-cells = <1>; 54 #address-cells = <1>;
55 #size-cells = <0>; 55 #size-cells = <0>;
56 56
57 cpu@000 { 57 cpu@0 {
58 device_type = "cpu"; 58 device_type = "cpu";
59 compatible = "arm,cortex-a72", "arm,armv8"; 59 compatible = "arm,cortex-a72", "arm,armv8";
60 reg = <0x000>; 60 reg = <0x000>;
61 enable-method = "psci"; 61 enable-method = "psci";
62 }; 62 };
63 cpu@001 { 63 cpu@1 {
64 device_type = "cpu"; 64 device_type = "cpu";
65 compatible = "arm,cortex-a72", "arm,armv8"; 65 compatible = "arm,cortex-a72", "arm,armv8";
66 reg = <0x001>; 66 reg = <0x001>;
diff --git a/arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi b/arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi
index ba43a4357b89..116164ff260f 100644
--- a/arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi
@@ -54,13 +54,13 @@
54 #address-cells = <1>; 54 #address-cells = <1>;
55 #size-cells = <0>; 55 #size-cells = <0>;
56 56
57 cpu@000 { 57 cpu@0 {
58 device_type = "cpu"; 58 device_type = "cpu";
59 compatible = "arm,cortex-a72", "arm,armv8"; 59 compatible = "arm,cortex-a72", "arm,armv8";
60 reg = <0x000>; 60 reg = <0x000>;
61 enable-method = "psci"; 61 enable-method = "psci";
62 }; 62 };
63 cpu@001 { 63 cpu@1 {
64 device_type = "cpu"; 64 device_type = "cpu";
65 compatible = "arm,cortex-a72", "arm,armv8"; 65 compatible = "arm,cortex-a72", "arm,armv8";
66 reg = <0x001>; 66 reg = <0x001>;
diff --git a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
index 30d48ecf46e0..1c4dd8ab9ad5 100644
--- a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
@@ -241,6 +241,12 @@
241 241
242 }; 242 };
243 243
244 watchdog: watchdog@600000 {
245 compatible = "arm,sbsa-gwdt";
246 reg = <0x610000 0x1000>, <0x600000 0x1000>;
247 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
248 };
249
244 ap_sdhci0: sdhci@6e0000 { 250 ap_sdhci0: sdhci@6e0000 {
245 compatible = "marvell,armada-ap806-sdhci"; 251 compatible = "marvell,armada-ap806-sdhci";
246 reg = <0x6e0000 0x300>; 252 reg = <0x6e0000 0x300>;
@@ -263,6 +269,11 @@
263 269
264 ap_pinctrl: pinctrl { 270 ap_pinctrl: pinctrl {
265 compatible = "marvell,ap806-pinctrl"; 271 compatible = "marvell,ap806-pinctrl";
272
273 uart0_pins: uart0-pins {
274 marvell,pins = "mpp11", "mpp19";
275 marvell,function = "uart0";
276 };
266 }; 277 };
267 278
268 ap_gpio: gpio@1040 { 279 ap_gpio: gpio@1040 {
diff --git a/arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi b/arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi
index bf1b22b70384..7f0661e12f5e 100644
--- a/arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi
@@ -52,13 +52,13 @@
52 #size-cells = <0>; 52 #size-cells = <0>;
53 compatible = "marvell,armada-ap810-octa"; 53 compatible = "marvell,armada-ap810-octa";
54 54
55 cpu@000 { 55 cpu@0 {
56 device_type = "cpu"; 56 device_type = "cpu";
57 compatible = "arm,cortex-a72", "arm,armv8"; 57 compatible = "arm,cortex-a72", "arm,armv8";
58 reg = <0x000>; 58 reg = <0x000>;
59 enable-method = "psci"; 59 enable-method = "psci";
60 }; 60 };
61 cpu@001 { 61 cpu@1 {
62 device_type = "cpu"; 62 device_type = "cpu";
63 compatible = "arm,cortex-a72", "arm,armv8"; 63 compatible = "arm,cortex-a72", "arm,armv8";
64 reg = <0x001>; 64 reg = <0x001>;
diff --git a/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi b/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi
index f2aa2a81de4d..e3b64d03fbd8 100644
--- a/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi
@@ -74,9 +74,10 @@
74 <ICU_GRP_NSR 43 IRQ_TYPE_LEVEL_HIGH>, 74 <ICU_GRP_NSR 43 IRQ_TYPE_LEVEL_HIGH>,
75 <ICU_GRP_NSR 47 IRQ_TYPE_LEVEL_HIGH>, 75 <ICU_GRP_NSR 47 IRQ_TYPE_LEVEL_HIGH>,
76 <ICU_GRP_NSR 51 IRQ_TYPE_LEVEL_HIGH>, 76 <ICU_GRP_NSR 51 IRQ_TYPE_LEVEL_HIGH>,
77 <ICU_GRP_NSR 55 IRQ_TYPE_LEVEL_HIGH>; 77 <ICU_GRP_NSR 55 IRQ_TYPE_LEVEL_HIGH>,
78 <ICU_GRP_NSR 129 IRQ_TYPE_LEVEL_HIGH>;
78 interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2", 79 interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
79 "tx-cpu3", "rx-shared"; 80 "tx-cpu3", "rx-shared", "link";
80 port-id = <0>; 81 port-id = <0>;
81 gop-port-id = <0>; 82 gop-port-id = <0>;
82 status = "disabled"; 83 status = "disabled";
@@ -87,9 +88,10 @@
87 <ICU_GRP_NSR 44 IRQ_TYPE_LEVEL_HIGH>, 88 <ICU_GRP_NSR 44 IRQ_TYPE_LEVEL_HIGH>,
88 <ICU_GRP_NSR 48 IRQ_TYPE_LEVEL_HIGH>, 89 <ICU_GRP_NSR 48 IRQ_TYPE_LEVEL_HIGH>,
89 <ICU_GRP_NSR 52 IRQ_TYPE_LEVEL_HIGH>, 90 <ICU_GRP_NSR 52 IRQ_TYPE_LEVEL_HIGH>,
90 <ICU_GRP_NSR 56 IRQ_TYPE_LEVEL_HIGH>; 91 <ICU_GRP_NSR 56 IRQ_TYPE_LEVEL_HIGH>,
92 <ICU_GRP_NSR 128 IRQ_TYPE_LEVEL_HIGH>;
91 interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2", 93 interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
92 "tx-cpu3", "rx-shared"; 94 "tx-cpu3", "rx-shared", "link";
93 port-id = <1>; 95 port-id = <1>;
94 gop-port-id = <2>; 96 gop-port-id = <2>;
95 status = "disabled"; 97 status = "disabled";
@@ -100,15 +102,54 @@
100 <ICU_GRP_NSR 45 IRQ_TYPE_LEVEL_HIGH>, 102 <ICU_GRP_NSR 45 IRQ_TYPE_LEVEL_HIGH>,
101 <ICU_GRP_NSR 49 IRQ_TYPE_LEVEL_HIGH>, 103 <ICU_GRP_NSR 49 IRQ_TYPE_LEVEL_HIGH>,
102 <ICU_GRP_NSR 53 IRQ_TYPE_LEVEL_HIGH>, 104 <ICU_GRP_NSR 53 IRQ_TYPE_LEVEL_HIGH>,
103 <ICU_GRP_NSR 57 IRQ_TYPE_LEVEL_HIGH>; 105 <ICU_GRP_NSR 57 IRQ_TYPE_LEVEL_HIGH>,
106 <ICU_GRP_NSR 127 IRQ_TYPE_LEVEL_HIGH>;
104 interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2", 107 interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
105 "tx-cpu3", "rx-shared"; 108 "tx-cpu3", "rx-shared", "link";
106 port-id = <2>; 109 port-id = <2>;
107 gop-port-id = <3>; 110 gop-port-id = <3>;
108 status = "disabled"; 111 status = "disabled";
109 }; 112 };
110 }; 113 };
111 114
115 cpm_comphy: phy@120000 {
116 compatible = "marvell,comphy-cp110";
117 reg = <0x120000 0x6000>;
118 marvell,system-controller = <&cpm_syscon0>;
119 #address-cells = <1>;
120 #size-cells = <0>;
121
122 cpm_comphy0: phy@0 {
123 reg = <0>;
124 #phy-cells = <1>;
125 };
126
127 cpm_comphy1: phy@1 {
128 reg = <1>;
129 #phy-cells = <1>;
130 };
131
132 cpm_comphy2: phy@2 {
133 reg = <2>;
134 #phy-cells = <1>;
135 };
136
137 cpm_comphy3: phy@3 {
138 reg = <3>;
139 #phy-cells = <1>;
140 };
141
142 cpm_comphy4: phy@4 {
143 reg = <4>;
144 #phy-cells = <1>;
145 };
146
147 cpm_comphy5: phy@5 {
148 reg = <5>;
149 #phy-cells = <1>;
150 };
151 };
152
112 cpm_mdio: mdio@12a200 { 153 cpm_mdio: mdio@12a200 {
113 #address-cells = <1>; 154 #address-cells = <1>;
114 #size-cells = <0>; 155 #size-cells = <0>;
@@ -143,7 +184,7 @@
143 184
144 cpm_syscon0: system-controller@440000 { 185 cpm_syscon0: system-controller@440000 {
145 compatible = "syscon", "simple-mfd"; 186 compatible = "syscon", "simple-mfd";
146 reg = <0x440000 0x1000>; 187 reg = <0x440000 0x2000>;
147 188
148 cpm_clk: clock { 189 cpm_clk: clock {
149 compatible = "marvell,cp110-clock"; 190 compatible = "marvell,cp110-clock";
@@ -274,12 +315,14 @@
274 * this controller is only usable on the CPM 315 * this controller is only usable on the CPM
275 * for A7K and on the CPS for A8K. 316 * for A7K and on the CPS for A8K.
276 */ 317 */
277 compatible = "marvell,armada370-nand"; 318 compatible = "marvell,armada-8k-nand",
319 "marvell,armada370-nand";
278 reg = <0x720000 0x54>; 320 reg = <0x720000 0x54>;
279 #address-cells = <1>; 321 #address-cells = <1>;
280 #size-cells = <1>; 322 #size-cells = <1>;
281 interrupts = <ICU_GRP_NSR 115 IRQ_TYPE_LEVEL_HIGH>; 323 interrupts = <ICU_GRP_NSR 115 IRQ_TYPE_LEVEL_HIGH>;
282 clocks = <&cpm_clk 1 2>; 324 clocks = <&cpm_clk 1 2>;
325 marvell,system-controller = <&cpm_syscon0>;
283 status = "disabled"; 326 status = "disabled";
284 }; 327 };
285 328
diff --git a/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi b/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi
index 4fe70323abb3..0d51096c69f8 100644
--- a/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi
@@ -74,9 +74,10 @@
74 <ICU_GRP_NSR 43 IRQ_TYPE_LEVEL_HIGH>, 74 <ICU_GRP_NSR 43 IRQ_TYPE_LEVEL_HIGH>,
75 <ICU_GRP_NSR 47 IRQ_TYPE_LEVEL_HIGH>, 75 <ICU_GRP_NSR 47 IRQ_TYPE_LEVEL_HIGH>,
76 <ICU_GRP_NSR 51 IRQ_TYPE_LEVEL_HIGH>, 76 <ICU_GRP_NSR 51 IRQ_TYPE_LEVEL_HIGH>,
77 <ICU_GRP_NSR 55 IRQ_TYPE_LEVEL_HIGH>; 77 <ICU_GRP_NSR 55 IRQ_TYPE_LEVEL_HIGH>,
78 <ICU_GRP_NSR 129 IRQ_TYPE_LEVEL_HIGH>;
78 interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2", 79 interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
79 "tx-cpu3", "rx-shared"; 80 "tx-cpu3", "rx-shared", "link";
80 port-id = <0>; 81 port-id = <0>;
81 gop-port-id = <0>; 82 gop-port-id = <0>;
82 status = "disabled"; 83 status = "disabled";
@@ -87,9 +88,10 @@
87 <ICU_GRP_NSR 44 IRQ_TYPE_LEVEL_HIGH>, 88 <ICU_GRP_NSR 44 IRQ_TYPE_LEVEL_HIGH>,
88 <ICU_GRP_NSR 48 IRQ_TYPE_LEVEL_HIGH>, 89 <ICU_GRP_NSR 48 IRQ_TYPE_LEVEL_HIGH>,
89 <ICU_GRP_NSR 52 IRQ_TYPE_LEVEL_HIGH>, 90 <ICU_GRP_NSR 52 IRQ_TYPE_LEVEL_HIGH>,
90 <ICU_GRP_NSR 56 IRQ_TYPE_LEVEL_HIGH>; 91 <ICU_GRP_NSR 56 IRQ_TYPE_LEVEL_HIGH>,
92 <ICU_GRP_NSR 128 IRQ_TYPE_LEVEL_HIGH>;
91 interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2", 93 interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
92 "tx-cpu3", "rx-shared"; 94 "tx-cpu3", "rx-shared", "link";
93 port-id = <1>; 95 port-id = <1>;
94 gop-port-id = <2>; 96 gop-port-id = <2>;
95 status = "disabled"; 97 status = "disabled";
@@ -100,15 +102,54 @@
100 <ICU_GRP_NSR 45 IRQ_TYPE_LEVEL_HIGH>, 102 <ICU_GRP_NSR 45 IRQ_TYPE_LEVEL_HIGH>,
101 <ICU_GRP_NSR 49 IRQ_TYPE_LEVEL_HIGH>, 103 <ICU_GRP_NSR 49 IRQ_TYPE_LEVEL_HIGH>,
102 <ICU_GRP_NSR 53 IRQ_TYPE_LEVEL_HIGH>, 104 <ICU_GRP_NSR 53 IRQ_TYPE_LEVEL_HIGH>,
103 <ICU_GRP_NSR 57 IRQ_TYPE_LEVEL_HIGH>; 105 <ICU_GRP_NSR 57 IRQ_TYPE_LEVEL_HIGH>,
106 <ICU_GRP_NSR 127 IRQ_TYPE_LEVEL_HIGH>;
104 interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2", 107 interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
105 "tx-cpu3", "rx-shared"; 108 "tx-cpu3", "rx-shared", "link";
106 port-id = <2>; 109 port-id = <2>;
107 gop-port-id = <3>; 110 gop-port-id = <3>;
108 status = "disabled"; 111 status = "disabled";
109 }; 112 };
110 }; 113 };
111 114
115 cps_comphy: phy@120000 {
116 compatible = "marvell,comphy-cp110";
117 reg = <0x120000 0x6000>;
118 marvell,system-controller = <&cps_syscon0>;
119 #address-cells = <1>;
120 #size-cells = <0>;
121
122 cps_comphy0: phy@0 {
123 reg = <0>;
124 #phy-cells = <1>;
125 };
126
127 cps_comphy1: phy@1 {
128 reg = <1>;
129 #phy-cells = <1>;
130 };
131
132 cps_comphy2: phy@2 {
133 reg = <2>;
134 #phy-cells = <1>;
135 };
136
137 cps_comphy3: phy@3 {
138 reg = <3>;
139 #phy-cells = <1>;
140 };
141
142 cps_comphy4: phy@4 {
143 reg = <4>;
144 #phy-cells = <1>;
145 };
146
147 cps_comphy5: phy@5 {
148 reg = <5>;
149 #phy-cells = <1>;
150 };
151 };
152
112 cps_mdio: mdio@12a200 { 153 cps_mdio: mdio@12a200 {
113 #address-cells = <1>; 154 #address-cells = <1>;
114 #size-cells = <0>; 155 #size-cells = <0>;
@@ -143,7 +184,7 @@
143 184
144 cps_syscon0: system-controller@440000 { 185 cps_syscon0: system-controller@440000 {
145 compatible = "syscon", "simple-mfd"; 186 compatible = "syscon", "simple-mfd";
146 reg = <0x440000 0x1000>; 187 reg = <0x440000 0x2000>;
147 188
148 cps_clk: clock { 189 cps_clk: clock {
149 compatible = "marvell,cp110-clock"; 190 compatible = "marvell,cp110-clock";
@@ -275,7 +316,8 @@
275 * this controller is only usable on the CPM 316 * this controller is only usable on the CPM
276 * for A7K and on the CPS for A8K. 317 * for A7K and on the CPS for A8K.
277 */ 318 */
278 compatible = "marvell,armada370-nand"; 319 compatible = "marvell,armada370-nand",
320 "marvell,armada370-nand";
279 reg = <0x720000 0x54>; 321 reg = <0x720000 0x54>;
280 #address-cells = <1>; 322 #address-cells = <1>;
281 #size-cells = <1>; 323 #size-cells = <1>;
diff --git a/arch/arm64/boot/dts/marvell/berlin4ct.dtsi b/arch/arm64/boot/dts/marvell/berlin4ct.dtsi
index d6b800fd26d0..d2f88b92d8e2 100644
--- a/arch/arm64/boot/dts/marvell/berlin4ct.dtsi
+++ b/arch/arm64/boot/dts/marvell/berlin4ct.dtsi
@@ -167,7 +167,7 @@
167 ranges = <0 0xe80000 0x10000>; 167 ranges = <0 0xe80000 0x10000>;
168 interrupt-parent = <&aic>; 168 interrupt-parent = <&aic>;
169 169
170 gpio0: gpio@0400 { 170 gpio0: gpio@400 {
171 compatible = "snps,dw-apb-gpio"; 171 compatible = "snps,dw-apb-gpio";
172 reg = <0x0400 0x400>; 172 reg = <0x0400 0x400>;
173 #address-cells = <1>; 173 #address-cells = <1>;
@@ -185,7 +185,7 @@
185 }; 185 };
186 }; 186 };
187 187
188 gpio1: gpio@0800 { 188 gpio1: gpio@800 {
189 compatible = "snps,dw-apb-gpio"; 189 compatible = "snps,dw-apb-gpio";
190 reg = <0x0800 0x400>; 190 reg = <0x0800 0x400>;
191 #address-cells = <1>; 191 #address-cells = <1>;
@@ -203,7 +203,7 @@
203 }; 203 };
204 }; 204 };
205 205
206 gpio2: gpio@0c00 { 206 gpio2: gpio@c00 {
207 compatible = "snps,dw-apb-gpio"; 207 compatible = "snps,dw-apb-gpio";
208 reg = <0x0c00 0x400>; 208 reg = <0x0c00 0x400>;
209 #address-cells = <1>; 209 #address-cells = <1>;
diff --git a/arch/arm64/boot/dts/mediatek/mt2712e.dtsi b/arch/arm64/boot/dts/mediatek/mt2712e.dtsi
index 57d0396b7faa..5d4e406bb35d 100644
--- a/arch/arm64/boot/dts/mediatek/mt2712e.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt2712e.dtsi
@@ -39,6 +39,7 @@
39 device_type = "cpu"; 39 device_type = "cpu";
40 compatible = "arm,cortex-a35"; 40 compatible = "arm,cortex-a35";
41 reg = <0x000>; 41 reg = <0x000>;
42 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
42 }; 43 };
43 44
44 cpu1: cpu@1 { 45 cpu1: cpu@1 {
@@ -46,6 +47,7 @@
46 compatible = "arm,cortex-a35"; 47 compatible = "arm,cortex-a35";
47 reg = <0x001>; 48 reg = <0x001>;
48 enable-method = "psci"; 49 enable-method = "psci";
50 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
49 }; 51 };
50 52
51 cpu2: cpu@200 { 53 cpu2: cpu@200 {
@@ -53,6 +55,29 @@
53 compatible = "arm,cortex-a72"; 55 compatible = "arm,cortex-a72";
54 reg = <0x200>; 56 reg = <0x200>;
55 enable-method = "psci"; 57 enable-method = "psci";
58 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
59 };
60
61 idle-states {
62 entry-method = "arm,psci";
63
64 CPU_SLEEP_0: cpu-sleep-0 {
65 compatible = "arm,idle-state";
66 local-timer-stop;
67 entry-latency-us = <100>;
68 exit-latency-us = <80>;
69 min-residency-us = <2000>;
70 arm,psci-suspend-param = <0x0010000>;
71 };
72
73 CLUSTER_SLEEP_0: cluster-sleep-0 {
74 compatible = "arm,idle-state";
75 local-timer-stop;
76 entry-latency-us = <350>;
77 exit-latency-us = <80>;
78 min-residency-us = <3000>;
79 arm,psci-suspend-param = <0x1010000>;
80 };
56 }; 81 };
57 }; 82 };
58 83
diff --git a/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts b/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
index c71d762bf697..42a23997dcdb 100644
--- a/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
+++ b/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
@@ -50,6 +50,30 @@
50 vmmc-supply = <&vdd_sd>; 50 vmmc-supply = <&vdd_sd>;
51 }; 51 };
52 52
53 pcie@10003000 {
54 status = "okay";
55
56 dvdd-pex-supply = <&vdd_pex>;
57 hvdd-pex-pll-supply = <&vdd_1v8>;
58 hvdd-pex-supply = <&vdd_1v8>;
59 vddio-pexctl-aud-supply = <&vdd_1v8>;
60
61 pci@1,0 {
62 nvidia,num-lanes = <4>;
63 status = "okay";
64 };
65
66 pci@2,0 {
67 nvidia,num-lanes = <0>;
68 status = "disabled";
69 };
70
71 pci@3,0 {
72 nvidia,num-lanes = <1>;
73 status = "disabled";
74 };
75 };
76
53 gpio-keys { 77 gpio-keys {
54 compatible = "gpio-keys"; 78 compatible = "gpio-keys";
55 79
diff --git a/arch/arm64/boot/dts/nvidia/tegra186.dtsi b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
index a9c3eef6c4e0..46d1f287fb0f 100644
--- a/arch/arm64/boot/dts/nvidia/tegra186.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
@@ -5,6 +5,7 @@
5#include <dt-bindings/mailbox/tegra186-hsp.h> 5#include <dt-bindings/mailbox/tegra186-hsp.h>
6#include <dt-bindings/power/tegra186-powergate.h> 6#include <dt-bindings/power/tegra186-powergate.h>
7#include <dt-bindings/reset/tegra186-reset.h> 7#include <dt-bindings/reset/tegra186-reset.h>
8#include <dt-bindings/thermal/tegra186-bpmp-thermal.h>
8 9
9/ { 10/ {
10 compatible = "nvidia,tegra186"; 11 compatible = "nvidia,tegra186";
@@ -356,6 +357,116 @@
356 nvidia,bpmp = <&bpmp>; 357 nvidia,bpmp = <&bpmp>;
357 }; 358 };
358 359
360 pcie@10003000 {
361 compatible = "nvidia,tegra186-pcie";
362 power-domains = <&bpmp TEGRA186_POWER_DOMAIN_PCX>;
363 device_type = "pci";
364 reg = <0x0 0x10003000 0x0 0x00000800 /* PADS registers */
365 0x0 0x10003800 0x0 0x00000800 /* AFI registers */
366 0x0 0x40000000 0x0 0x10000000>; /* configuration space */
367 reg-names = "pads", "afi", "cs";
368
369 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
370 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
371 interrupt-names = "intr", "msi";
372
373 #interrupt-cells = <1>;
374 interrupt-map-mask = <0 0 0 0>;
375 interrupt-map = <0 0 0 0 &gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
376
377 bus-range = <0x00 0xff>;
378 #address-cells = <3>;
379 #size-cells = <2>;
380
381 ranges = <0x82000000 0 0x10000000 0x0 0x10000000 0 0x00001000 /* port 0 configuration space */
382 0x82000000 0 0x10001000 0x0 0x10001000 0 0x00001000 /* port 1 configuration space */
383 0x82000000 0 0x10004000 0x0 0x10004000 0 0x00001000 /* port 2 configuration space */
384 0x81000000 0 0x0 0x0 0x50000000 0 0x00010000 /* downstream I/O (64 KiB) */
385 0x82000000 0 0x50100000 0x0 0x50100000 0 0x07F00000 /* non-prefetchable memory (127 MiB) */
386 0xc2000000 0 0x58000000 0x0 0x58000000 0 0x28000000>; /* prefetchable memory (640 MiB) */
387
388 clocks = <&bpmp TEGRA186_CLK_AFI>,
389 <&bpmp TEGRA186_CLK_PCIE>,
390 <&bpmp TEGRA186_CLK_PLLE>;
391 clock-names = "afi", "pex", "pll_e";
392
393 resets = <&bpmp TEGRA186_RESET_AFI>,
394 <&bpmp TEGRA186_RESET_PCIE>,
395 <&bpmp TEGRA186_RESET_PCIEXCLK>;
396 reset-names = "afi", "pex", "pcie_x";
397
398 status = "disabled";
399
400 pci@1,0 {
401 device_type = "pci";
402 assigned-addresses = <0x82000800 0 0x10000000 0 0x1000>;
403 reg = <0x000800 0 0 0 0>;
404 status = "disabled";
405
406 #address-cells = <3>;
407 #size-cells = <2>;
408 ranges;
409
410 nvidia,num-lanes = <2>;
411 };
412
413 pci@2,0 {
414 device_type = "pci";
415 assigned-addresses = <0x82001000 0 0x10001000 0 0x1000>;
416 reg = <0x001000 0 0 0 0>;
417 status = "disabled";
418
419 #address-cells = <3>;
420 #size-cells = <2>;
421 ranges;
422
423 nvidia,num-lanes = <1>;
424 };
425
426 pci@3,0 {
427 device_type = "pci";
428 assigned-addresses = <0x82001800 0 0x10004000 0 0x1000>;
429 reg = <0x001800 0 0 0 0>;
430 status = "disabled";
431
432 #address-cells = <3>;
433 #size-cells = <2>;
434 ranges;
435
436 nvidia,num-lanes = <1>;
437 };
438 };
439
440 host1x@13e00000 {
441 compatible = "nvidia,tegra186-host1x", "simple-bus";
442 reg = <0x0 0x13e00000 0x0 0x10000>,
443 <0x0 0x13e10000 0x0 0x10000>;
444 reg-names = "hypervisor", "vm";
445 interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>,
446 <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>;
447 clocks = <&bpmp TEGRA186_CLK_HOST1X>;
448 clock-names = "host1x";
449 resets = <&bpmp TEGRA186_RESET_HOST1X>;
450 reset-names = "host1x";
451
452 #address-cells = <1>;
453 #size-cells = <1>;
454
455 ranges = <0x15000000 0x0 0x15000000 0x01000000>;
456
457 vic@15340000 {
458 compatible = "nvidia,tegra186-vic";
459 reg = <0x15340000 0x40000>;
460 interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>;
461 clocks = <&bpmp TEGRA186_CLK_VIC>;
462 clock-names = "vic";
463 resets = <&bpmp TEGRA186_RESET_VIC>;
464 reset-names = "vic";
465
466 power-domains = <&bpmp TEGRA186_POWER_DOMAIN_VIC>;
467 };
468 };
469
359 gpu@17000000 { 470 gpu@17000000 {
360 compatible = "nvidia,gp10b"; 471 compatible = "nvidia,gp10b";
361 reg = <0x0 0x17000000 0x0 0x1000000>, 472 reg = <0x0 0x17000000 0x0 0x1000000>,
@@ -444,6 +555,7 @@
444 shmem = <&cpu_bpmp_tx &cpu_bpmp_rx>; 555 shmem = <&cpu_bpmp_tx &cpu_bpmp_rx>;
445 #clock-cells = <1>; 556 #clock-cells = <1>;
446 #reset-cells = <1>; 557 #reset-cells = <1>;
558 #power-domain-cells = <1>;
447 559
448 bpmp_i2c: i2c { 560 bpmp_i2c: i2c {
449 compatible = "nvidia,tegra186-bpmp-i2c"; 561 compatible = "nvidia,tegra186-bpmp-i2c";
@@ -452,6 +564,108 @@
452 #size-cells = <0>; 564 #size-cells = <0>;
453 status = "disabled"; 565 status = "disabled";
454 }; 566 };
567
568 bpmp_thermal: thermal {
569 compatible = "nvidia,tegra186-bpmp-thermal";
570 #thermal-sensor-cells = <1>;
571 };
572 };
573
574 thermal-zones {
575 a57 {
576 polling-delay = <0>;
577 polling-delay-passive = <1000>;
578
579 thermal-sensors =
580 <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_CPU>;
581
582 trips {
583 critical {
584 temperature = <101000>;
585 hysteresis = <0>;
586 type = "critical";
587 };
588 };
589
590 cooling-maps {
591 };
592 };
593
594 denver {
595 polling-delay = <0>;
596 polling-delay-passive = <1000>;
597
598 thermal-sensors =
599 <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_AUX>;
600
601 trips {
602 critical {
603 temperature = <101000>;
604 hysteresis = <0>;
605 type = "critical";
606 };
607 };
608
609 cooling-maps {
610 };
611 };
612
613 gpu {
614 polling-delay = <0>;
615 polling-delay-passive = <1000>;
616
617 thermal-sensors =
618 <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_GPU>;
619
620 trips {
621 critical {
622 temperature = <101000>;
623 hysteresis = <0>;
624 type = "critical";
625 };
626 };
627
628 cooling-maps {
629 };
630 };
631
632 pll {
633 polling-delay = <0>;
634 polling-delay-passive = <1000>;
635
636 thermal-sensors =
637 <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_PLLX>;
638
639 trips {
640 critical {
641 temperature = <101000>;
642 hysteresis = <0>;
643 type = "critical";
644 };
645 };
646
647 cooling-maps {
648 };
649 };
650
651 always_on {
652 polling-delay = <0>;
653 polling-delay-passive = <1000>;
654
655 thermal-sensors =
656 <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_AO>;
657
658 trips {
659 critical {
660 temperature = <101000>;
661 hysteresis = <0>;
662 type = "critical";
663 };
664 };
665
666 cooling-maps {
667 };
668 };
455 }; 669 };
456 670
457 timer { 671 timer {
diff --git a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
index 1d63e6b879de..33a3297eb284 100644
--- a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
+++ b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
@@ -19,6 +19,30 @@
19#include <dt-bindings/input/input.h> 19#include <dt-bindings/input/input.h>
20#include <dt-bindings/sound/apq8016-lpass.h> 20#include <dt-bindings/sound/apq8016-lpass.h>
21 21
22/*
23 * GPIO name legend: proper name = the GPIO line is used as GPIO
24 * NC = not connected (pin out but not routed from the chip to
25 * anything the board)
26 * "[PER]" = pin is muxed for [peripheral] (not GPIO)
27 * LSEC = Low Speed External Connector
28 * HSEC = High Speed External Connector
29 *
30 * Line names are taken from the schematic "DragonBoard410c"
31 * dated monday, august 31, 2015. Page 5 in particular.
32 *
33 * For the lines routed to the external connectors the
34 * lines are named after the 96Boards CE Specification 1.0,
35 * Appendix "Expansion Connector Signal Description".
36 *
37 * When the 96Board naming of a line and the schematic name of
38 * the same line are in conflict, the 96Board specification
39 * takes precedence, which means that the external UART on the
40 * LSEC is named UART0 while the schematic and SoC names this
41 * UART3. This is only for the informational lines i.e. "[FOO]",
42 * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
43 * ones actually used for GPIO.
44 */
45
22/ { 46/ {
23 aliases { 47 aliases {
24 serial0 = &blsp1_uart2; 48 serial0 = &blsp1_uart2;
@@ -47,6 +71,132 @@
47 }; 71 };
48 72
49 soc { 73 soc {
74 pinctrl@1000000 {
75 gpio-line-names =
76 "[UART0_TX]", /* GPIO_0, LSEC pin 5 */
77 "[UART0_RX]", /* GPIO_1, LSEC pin 7 */
78 "[UART0_CTS_N]", /* GPIO_2, LSEC pin 3 */
79 "[UART0_RTS_N]", /* GPIO_3, LSEC pin 9 */
80 "[UART1_TX]", /* GPIO_4, LSEC pin 11 */
81 "[UART1_RX]", /* GPIO_5, LSEC pin 13 */
82 "[I2C0_SDA]", /* GPIO_8, LSEC pin 17 */
83 "[I2C0_SCL]", /* GPIO_7, LSEC pin 15 */
84 "[SPI1_DOUT]", /* SPI1_MOSI, HSEC pin 1 */
85 "[SPI1_DIN]", /* SPI1_MISO, HSEC pin 11 */
86 "[SPI1_CS]", /* SPI1_CS_N, HSEC pin 7 */
87 "[SPI1_SCLK]", /* SPI1_CLK, HSEC pin 9 */
88 "GPIO-B", /* LS_EXP_GPIO_B, LSEC pin 24 */
89 "GPIO-C", /* LS_EXP_GPIO_C, LSEC pin 25 */
90 "[I2C3_SDA]", /* HSEC pin 38 */
91 "[I2C3_SCL]", /* HSEC pin 36 */
92 "[SPI0_MOSI]", /* LSEC pin 14 */
93 "[SPI0_MISO]", /* LSEC pin 10 */
94 "[SPI0_CS_N]", /* LSEC pin 12 */
95 "[SPI0_CLK]", /* LSEC pin 8 */
96 "HDMI_HPD_N", /* GPIO 20 */
97 "USR_LED_1_CTRL",
98 "[I2C1_SDA]", /* GPIO_22, LSEC pin 21 */
99 "[I2C1_SCL]", /* GPIO_23, LSEC pin 19 */
100 "GPIO-G", /* LS_EXP_GPIO_G, LSEC pin 29 */
101 "GPIO-H", /* LS_EXP_GPIO_H, LSEC pin 30 */
102 "[CSI0_MCLK]", /* HSEC pin 15 */
103 "[CSI1_MCLK]", /* HSEC pin 17 */
104 "GPIO-K", /* LS_EXP_GPIO_K, LSEC pin 33 */
105 "[I2C2_SDA]", /* HSEC pin 34 */
106 "[I2C2_SCL]", /* HSEC pin 32 */
107 "DSI2HDMI_INT_N",
108 "DSI_SW_SEL_APQ",
109 "GPIO-L", /* LS_EXP_GPIO_L, LSEC pin 34 */
110 "GPIO-J", /* LS_EXP_GPIO_J, LSEC pin 32 */
111 "GPIO-I", /* LS_EXP_GPIO_I, LSEC pin 31 */
112 "GPIO-A", /* LS_EXP_GPIO_A, LSEC pin 23 */
113 "FORCED_USB_BOOT",
114 "SD_CARD_DET_N",
115 "[WCSS_BT_SSBI]",
116 "[WCSS_WLAN_DATA_2]", /* GPIO 40 */
117 "[WCSS_WLAN_DATA_1]",
118 "[WCSS_WLAN_DATA_0]",
119 "[WCSS_WLAN_SET]",
120 "[WCSS_WLAN_CLK]",
121 "[WCSS_FM_SSBI]",
122 "[WCSS_FM_SDI]",
123 "[WCSS_BT_DAT_CTL]",
124 "[WCSS_BT_DAT_STB]",
125 "NC",
126 "NC", /* GPIO 50 */
127 "NC",
128 "NC",
129 "NC",
130 "NC",
131 "NC",
132 "NC",
133 "NC",
134 "NC",
135 "NC",
136 "NC", /* GPIO 60 */
137 "NC",
138 "NC",
139 "[CDC_PDM0_CLK]",
140 "[CDC_PDM0_SYNC]",
141 "[CDC_PDM0_TX0]",
142 "[CDC_PDM0_RX0]",
143 "[CDC_PDM0_RX1]",
144 "[CDC_PDM0_RX2]",
145 "GPIO-D", /* LS_EXP_GPIO_D, LSEC pin 26 */
146 "NC", /* GPIO 70 */
147 "NC",
148 "NC",
149 "NC",
150 "NC", /* GPIO 74 */
151 "NC",
152 "NC",
153 "NC",
154 "NC",
155 "NC",
156 "BOOT_CONFIG_0", /* GPIO 80 */
157 "BOOT_CONFIG_1",
158 "BOOT_CONFIG_2",
159 "BOOT_CONFIG_3",
160 "NC",
161 "NC",
162 "BOOT_CONFIG_5",
163 "NC",
164 "NC",
165 "NC",
166 "NC", /* GPIO 90 */
167 "NC",
168 "NC",
169 "NC",
170 "NC",
171 "NC",
172 "NC",
173 "NC",
174 "NC",
175 "NC",
176 "NC", /* GPIO 100 */
177 "NC",
178 "NC",
179 "NC",
180 "SSBI_GPS",
181 "NC",
182 "NC",
183 "KEY_VOLP_N",
184 "NC",
185 "NC",
186 "[LS_EXP_MI2S_WS]", /* GPIO 110 */
187 "NC",
188 "NC",
189 "[LS_EXP_MI2S_SCK]",
190 "[LS_EXP_MI2S_DATA0]",
191 "GPIO-E", /* LS_EXP_GPIO_E, LSEC pin 27 */
192 "NC",
193 "[DSI2HDMI_MI2S_WS]",
194 "[DSI2HDMI_MI2S_SCK]",
195 "[DSI2HDMI_MI2S_DATA0]",
196 "USR_LED_2_CTRL", /* GPIO 120 */
197 "SB_HS_ID";
198 };
199
50 dma@7884000 { 200 dma@7884000 {
51 status = "okay"; 201 status = "okay";
52 }; 202 };
@@ -192,7 +342,7 @@
192 }; 342 };
193 }; 343 };
194 344
195 sdhci@07824000 { 345 sdhci@7824000 {
196 vmmc-supply = <&pm8916_l8>; 346 vmmc-supply = <&pm8916_l8>;
197 vqmmc-supply = <&pm8916_l5>; 347 vqmmc-supply = <&pm8916_l5>;
198 348
@@ -202,7 +352,7 @@
202 status = "okay"; 352 status = "okay";
203 }; 353 };
204 354
205 sdhci@07864000 { 355 sdhci@7864000 {
206 vmmc-supply = <&pm8916_l11>; 356 vmmc-supply = <&pm8916_l11>;
207 vqmmc-supply = <&pm8916_l12>; 357 vqmmc-supply = <&pm8916_l12>;
208 358
@@ -232,7 +382,7 @@
232 }; 382 };
233 }; 383 };
234 384
235 lpass@07708000 { 385 lpass@7708000 {
236 status = "okay"; 386 status = "okay";
237 }; 387 };
238 388
@@ -329,6 +479,25 @@
329 }; 479 };
330 }; 480 };
331 481
482 spmi@200f000 {
483 pm8916@0 {
484 gpios@c000 {
485 gpio-line-names =
486 "USR_LED_3_CTRL",
487 "USR_LED_4_CTRL",
488 "USB_HUB_RESET_N_PM",
489 "USB_SW_SEL_PM";
490 };
491 mpps@a000 {
492 gpio-line-names =
493 "VDD_PX_BIAS",
494 "WLAN_LED_CTRL",
495 "BT_LED_CTRL",
496 "GPIO-F"; /* LS_EXP_GPIO_F, LSEC pin 28 */
497 };
498 };
499 };
500
332 wcnss@a21b000 { 501 wcnss@a21b000 {
333 status = "okay"; 502 status = "okay";
334 }; 503 };
@@ -379,6 +548,8 @@
379 status = "okay"; 548 status = "okay";
380 clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>; 549 clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
381 clock-names = "mclk"; 550 clock-names = "mclk";
551 qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
552 qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
382}; 553};
383 554
384&smd_rpm_regulators { 555&smd_rpm_regulators {
diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
index 789f3e87321e..492a011f14f6 100644
--- a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
+++ b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
@@ -51,31 +51,31 @@
51 pinctrl-1 = <&blsp2_uart2_4pins_sleep>; 51 pinctrl-1 = <&blsp2_uart2_4pins_sleep>;
52 }; 52 };
53 53
54 i2c@07577000 { 54 i2c@7577000 {
55 /* On Low speed expansion */ 55 /* On Low speed expansion */
56 label = "LS-I2C0"; 56 label = "LS-I2C0";
57 status = "okay"; 57 status = "okay";
58 }; 58 };
59 59
60 i2c@075b6000 { 60 i2c@75b6000 {
61 /* On Low speed expansion */ 61 /* On Low speed expansion */
62 label = "LS-I2C1"; 62 label = "LS-I2C1";
63 status = "okay"; 63 status = "okay";
64 }; 64 };
65 65
66 spi@07575000 { 66 spi@7575000 {
67 /* On Low speed expansion */ 67 /* On Low speed expansion */
68 label = "LS-SPI0"; 68 label = "LS-SPI0";
69 status = "okay"; 69 status = "okay";
70 }; 70 };
71 71
72 i2c@075b5000 { 72 i2c@75b5000 {
73 /* On High speed expansion */ 73 /* On High speed expansion */
74 label = "HS-I2C2"; 74 label = "HS-I2C2";
75 status = "okay"; 75 status = "okay";
76 }; 76 };
77 77
78 spi@075ba000{ 78 spi@75ba000{
79 /* On High speed expansion */ 79 /* On High speed expansion */
80 label = "HS-SPI1"; 80 label = "HS-SPI1";
81 status = "okay"; 81 status = "okay";
@@ -138,6 +138,22 @@
138 pinctrl-names = "default"; 138 pinctrl-names = "default";
139 pinctrl-0 = <&usb2_vbus_det_gpio>; 139 pinctrl-0 = <&usb2_vbus_det_gpio>;
140 }; 140 };
141
142 agnoc@0 {
143 qcom,pcie@00600000 {
144 perst-gpio = <&msmgpio 35 GPIO_ACTIVE_LOW>;
145 };
146
147 qcom,pcie@00608000 {
148 status = "okay";
149 perst-gpio = <&msmgpio 130 GPIO_ACTIVE_LOW>;
150 };
151
152 qcom,pcie@00610000 {
153 status = "okay";
154 perst-gpio = <&msmgpio 114 GPIO_ACTIVE_LOW>;
155 };
156 };
141 }; 157 };
142 158
143 159
@@ -173,9 +189,15 @@
173 regulator-min-microvolt = <1300000>; 189 regulator-min-microvolt = <1300000>;
174 regulator-max-microvolt = <1300000>; 190 regulator-max-microvolt = <1300000>;
175 }; 191 };
192
193 /**
194 * 1.8v required on LS expansion
195 * for mezzanine boards
196 */
176 s4 { 197 s4 {
177 regulator-min-microvolt = <1800000>; 198 regulator-min-microvolt = <1800000>;
178 regulator-max-microvolt = <1800000>; 199 regulator-max-microvolt = <1800000>;
200 regulator-always-on;
179 }; 201 };
180 s5 { 202 s5 {
181 regulator-min-microvolt = <2150000>; 203 regulator-min-microvolt = <2150000>;
diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
index dc3817593e14..6b2127a6ced1 100644
--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
@@ -69,8 +69,11 @@
69 }; 69 };
70 70
71 rmtfs@86700000 { 71 rmtfs@86700000 {
72 compatible = "qcom,rmtfs-mem";
72 reg = <0x0 0x86700000 0x0 0xe0000>; 73 reg = <0x0 0x86700000 0x0 0xe0000>;
73 no-map; 74 no-map;
75
76 qcom,client-id = <1>;
74 }; 77 };
75 78
76 rfsa@867e00000 { 79 rfsa@867e00000 {
@@ -257,6 +260,8 @@
257 clocks = <&gcc GCC_CRYPTO_CLK>, <&gcc GCC_CRYPTO_AXI_CLK>, <&gcc GCC_CRYPTO_AHB_CLK>; 260 clocks = <&gcc GCC_CRYPTO_CLK>, <&gcc GCC_CRYPTO_AXI_CLK>, <&gcc GCC_CRYPTO_AHB_CLK>;
258 clock-names = "core", "bus", "iface"; 261 clock-names = "core", "bus", "iface";
259 #reset-cells = <1>; 262 #reset-cells = <1>;
263
264 qcom,dload-mode = <&tcsr 0x6100>;
260 }; 265 };
261 }; 266 };
262 267
@@ -495,7 +500,7 @@
495 status = "disabled"; 500 status = "disabled";
496 }; 501 };
497 502
498 lpass: lpass@07708000 { 503 lpass: lpass@7708000 {
499 status = "disabled"; 504 status = "disabled";
500 compatible = "qcom,lpass-cpu-apq8016"; 505 compatible = "qcom,lpass-cpu-apq8016";
501 clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>, 506 clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
@@ -530,7 +535,7 @@
530 #sound-dai-cells = <1>; 535 #sound-dai-cells = <1>;
531 }; 536 };
532 537
533 sdhc_1: sdhci@07824000 { 538 sdhc_1: sdhci@7824000 {
534 compatible = "qcom,sdhci-msm-v4"; 539 compatible = "qcom,sdhci-msm-v4";
535 reg = <0x07824900 0x11c>, <0x07824000 0x800>; 540 reg = <0x07824900 0x11c>, <0x07824000 0x800>;
536 reg-names = "hc_mem", "core_mem"; 541 reg-names = "hc_mem", "core_mem";
@@ -547,7 +552,7 @@
547 status = "disabled"; 552 status = "disabled";
548 }; 553 };
549 554
550 sdhc_2: sdhci@07864000 { 555 sdhc_2: sdhci@7864000 {
551 compatible = "qcom,sdhci-msm-v4"; 556 compatible = "qcom,sdhci-msm-v4";
552 reg = <0x07864900 0x11c>, <0x07864000 0x800>; 557 reg = <0x07864900 0x11c>, <0x07864000 0x800>;
553 reg-names = "hc_mem", "core_mem"; 558 reg-names = "hc_mem", "core_mem";
@@ -814,7 +819,7 @@
814 819
815 mdp: mdp@1a01000 { 820 mdp: mdp@1a01000 {
816 compatible = "qcom,mdp5"; 821 compatible = "qcom,mdp5";
817 reg = <0x1a01000 0x90000>; 822 reg = <0x1a01000 0x89000>;
818 reg-names = "mdp_phys"; 823 reg-names = "mdp_phys";
819 824
820 interrupt-parent = <&mdss>; 825 interrupt-parent = <&mdss>;
diff --git a/arch/arm64/boot/dts/qcom/msm8996-pins.dtsi b/arch/arm64/boot/dts/qcom/msm8996-pins.dtsi
index 659940434842..c5c42e94f387 100644
--- a/arch/arm64/boot/dts/qcom/msm8996-pins.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8996-pins.dtsi
@@ -300,4 +300,199 @@
300 drive-strength = <2>; /* 2 MA */ 300 drive-strength = <2>; /* 2 MA */
301 }; 301 };
302 }; 302 };
303
304 pcie0_clkreq_default: pcie0_clkreq_default {
305 mux {
306 pins = "gpio36";
307 function = "pci_e0";
308 };
309
310 config {
311 pins = "gpio36";
312 drive-strength = <2>;
313 bias-pull-up;
314 };
315 };
316
317 pcie0_perst_default: pcie0_perst_default {
318 mux {
319 pins = "gpio35";
320 function = "gpio";
321 };
322
323 config {
324 pins = "gpio35";
325 drive-strength = <2>;
326 bias-pull-down;
327 };
328 };
329
330 pcie0_wake_default: pcie0_wake_default {
331 mux {
332 pins = "gpio37";
333 function = "gpio";
334 };
335
336 config {
337 pins = "gpio37";
338 drive-strength = <2>;
339 bias-pull-up;
340 };
341 };
342
343 pcie0_clkreq_sleep: pcie0_clkreq_sleep {
344 mux {
345 pins = "gpio36";
346 function = "gpio";
347 };
348
349 config {
350 pins = "gpio36";
351 drive-strength = <2>;
352 bias-disable;
353 };
354 };
355
356 pcie0_wake_sleep: pcie0_wake_sleep {
357 mux {
358 pins = "gpio37";
359 function = "gpio";
360 };
361
362 config {
363 pins = "gpio37";
364 drive-strength = <2>;
365 bias-disable;
366 };
367 };
368
369 pcie1_clkreq_default: pcie1_clkreq_default {
370 mux {
371 pins = "gpio131";
372 function = "pci_e1";
373 };
374
375 config {
376 pins = "gpio131";
377 drive-strength = <2>;
378 bias-pull-up;
379 };
380 };
381
382 pcie1_perst_default: pcie1_perst_default {
383 mux {
384 pins = "gpio130";
385 function = "gpio";
386 };
387
388 config {
389 pins = "gpio130";
390 drive-strength = <2>;
391 bias-pull-down;
392 };
393 };
394
395 pcie1_wake_default: pcie1_wake_default {
396 mux {
397 pins = "gpio132";
398 function = "gpio";
399 };
400
401 config {
402 pins = "gpio132";
403 drive-strength = <2>;
404 bias-pull-down;
405 };
406 };
407
408 pcie1_clkreq_sleep: pcie1_clkreq_sleep {
409 mux {
410 pins = "gpio131";
411 function = "gpio";
412 };
413
414 config {
415 pins = "gpio131";
416 drive-strength = <2>;
417 bias-disable;
418 };
419 };
420
421 pcie1_wake_sleep: pcie1_wake_sleep {
422 mux {
423 pins = "gpio132";
424 function = "gpio";
425 };
426
427 config {
428 pins = "gpio132";
429 drive-strength = <2>;
430 bias-disable;
431 };
432 };
433
434 pcie2_clkreq_default: pcie2_clkreq_default {
435 mux {
436 pins = "gpio115";
437 function = "pci_e2";
438 };
439
440 config {
441 pins = "gpio115";
442 drive-strength = <2>;
443 bias-pull-up;
444 };
445 };
446
447 pcie2_perst_default: pcie2_perst_default {
448 mux {
449 pins = "gpio114";
450 function = "gpio";
451 };
452
453 config {
454 pins = "gpio114";
455 drive-strength = <2>;
456 bias-pull-down;
457 };
458 };
459
460 pcie2_wake_default: pcie2_wake_default {
461 mux {
462 pins = "gpio116";
463 function = "gpio";
464 };
465
466 config {
467 pins = "gpio116";
468 drive-strength = <2>;
469 bias-pull-down;
470 };
471 };
472
473 pcie2_clkreq_sleep: pcie2_clkreq_sleep {
474 mux {
475 pins = "gpio115";
476 function = "gpio";
477 };
478
479 config {
480 pins = "gpio115";
481 drive-strength = <2>;
482 bias-disable;
483 };
484 };
485
486 pcie2_wake_sleep: pcie2_wake_sleep {
487 mux {
488 pins = "gpio116";
489 function = "gpio";
490 };
491
492 config {
493 pins = "gpio116";
494 drive-strength = <2>;
495 bias-disable;
496 };
497 };
303}; 498};
diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi
index 887b61c872dd..4b2afcc4fdf4 100644
--- a/arch/arm64/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi
@@ -13,6 +13,7 @@
13#include <dt-bindings/interrupt-controller/arm-gic.h> 13#include <dt-bindings/interrupt-controller/arm-gic.h>
14#include <dt-bindings/clock/qcom,gcc-msm8996.h> 14#include <dt-bindings/clock/qcom,gcc-msm8996.h>
15#include <dt-bindings/clock/qcom,mmcc-msm8996.h> 15#include <dt-bindings/clock/qcom,mmcc-msm8996.h>
16#include <dt-bindings/clock/qcom,rpmcc.h>
16 17
17/ { 18/ {
18 model = "Qualcomm Technologies, Inc. MSM8996"; 19 model = "Qualcomm Technologies, Inc. MSM8996";
@@ -261,6 +262,8 @@
261 firmware { 262 firmware {
262 scm { 263 scm {
263 compatible = "qcom,scm-msm8996"; 264 compatible = "qcom,scm-msm8996";
265
266 qcom,dload-mode = <&tcsr 0x13000>;
264 }; 267 };
265 }; 268 };
266 269
@@ -289,6 +292,11 @@
289 compatible = "qcom,rpm-msm8996"; 292 compatible = "qcom,rpm-msm8996";
290 qcom,glink-channels = "rpm_requests"; 293 qcom,glink-channels = "rpm_requests";
291 294
295 rpmcc: qcom,rpmcc {
296 compatible = "qcom,rpmcc-msm8996";
297 #clock-cells = <1>;
298 };
299
292 pm8994-regulators { 300 pm8994-regulators {
293 compatible = "qcom,rpm-pm8994-regulators"; 301 compatible = "qcom,rpm-pm8994-regulators";
294 302
@@ -358,6 +366,11 @@
358 reg = <0x740000 0x20000>; 366 reg = <0x740000 0x20000>;
359 }; 367 };
360 368
369 tcsr: syscon@7a0000 {
370 compatible = "qcom,tcsr-msm8996", "syscon";
371 reg = <0x7a0000 0x18000>;
372 };
373
361 intc: interrupt-controller@9bc0000 { 374 intc: interrupt-controller@9bc0000 {
362 compatible = "arm,gic-v3"; 375 compatible = "arm,gic-v3";
363 #interrupt-cells = <3>; 376 #interrupt-cells = <3>;
@@ -395,7 +408,7 @@
395 #clock-cells = <1>; 408 #clock-cells = <1>;
396 }; 409 };
397 410
398 blsp1_spi0: spi@07575000 { 411 blsp1_spi0: spi@7575000 {
399 compatible = "qcom,spi-qup-v2.2.1"; 412 compatible = "qcom,spi-qup-v2.2.1";
400 reg = <0x07575000 0x600>; 413 reg = <0x07575000 0x600>;
401 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 414 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
@@ -410,7 +423,7 @@
410 status = "disabled"; 423 status = "disabled";
411 }; 424 };
412 425
413 blsp2_i2c0: i2c@075b5000 { 426 blsp2_i2c0: i2c@75b5000 {
414 compatible = "qcom,i2c-qup-v2.2.1"; 427 compatible = "qcom,i2c-qup-v2.2.1";
415 reg = <0x075b5000 0x1000>; 428 reg = <0x075b5000 0x1000>;
416 interrupts = <GIC_SPI 101 0>; 429 interrupts = <GIC_SPI 101 0>;
@@ -441,7 +454,7 @@
441 status = "disabled"; 454 status = "disabled";
442 }; 455 };
443 456
444 blsp2_i2c1: i2c@075b6000 { 457 blsp2_i2c1: i2c@75b6000 {
445 compatible = "qcom,i2c-qup-v2.2.1"; 458 compatible = "qcom,i2c-qup-v2.2.1";
446 reg = <0x075b6000 0x1000>; 459 reg = <0x075b6000 0x1000>;
447 interrupts = <GIC_SPI 102 0>; 460 interrupts = <GIC_SPI 102 0>;
@@ -466,7 +479,7 @@
466 status = "disabled"; 479 status = "disabled";
467 }; 480 };
468 481
469 blsp1_i2c2: i2c@07577000 { 482 blsp1_i2c2: i2c@7577000 {
470 compatible = "qcom,i2c-qup-v2.2.1"; 483 compatible = "qcom,i2c-qup-v2.2.1";
471 reg = <0x07577000 0x1000>; 484 reg = <0x07577000 0x1000>;
472 interrupts = <GIC_SPI 97 0>; 485 interrupts = <GIC_SPI 97 0>;
@@ -481,7 +494,7 @@
481 status = "disabled"; 494 status = "disabled";
482 }; 495 };
483 496
484 blsp2_spi5: spi@075ba000{ 497 blsp2_spi5: spi@75ba000{
485 compatible = "qcom,spi-qup-v2.2.1"; 498 compatible = "qcom,spi-qup-v2.2.1";
486 reg = <0x075ba000 0x600>; 499 reg = <0x075ba000 0x600>;
487 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 500 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
@@ -522,7 +535,7 @@
522 #interrupt-cells = <2>; 535 #interrupt-cells = <2>;
523 }; 536 };
524 537
525 timer@09840000 { 538 timer@9840000 {
526 #address-cells = <1>; 539 #address-cells = <1>;
527 #size-cells = <1>; 540 #size-cells = <1>;
528 ranges; 541 ranges;
@@ -819,6 +832,172 @@
819 phy-names = "usb2-phy", "usb3-phy"; 832 phy-names = "usb2-phy", "usb3-phy";
820 }; 833 };
821 }; 834 };
835
836 agnoc@0 {
837 power-domains = <&gcc AGGRE0_NOC_GDSC>;
838 compatible = "simple-pm-bus";
839 #address-cells = <1>;
840 #size-cells = <1>;
841 ranges;
842
843 pcie0: qcom,pcie@00600000 {
844 compatible = "qcom,pcie-msm8996", "snps,dw-pcie";
845 status = "disabled";
846 power-domains = <&gcc PCIE0_GDSC>;
847 bus-range = <0x00 0xff>;
848 num-lanes = <1>;
849
850 reg = <0x00600000 0x2000>,
851 <0x0c000000 0xf1d>,
852 <0x0c000f20 0xa8>,
853 <0x0c100000 0x100000>;
854 reg-names = "parf", "dbi", "elbi","config";
855
856 phys = <&pciephy_0>;
857 phy-names = "pciephy";
858
859 #address-cells = <3>;
860 #size-cells = <2>;
861 ranges = <0x01000000 0x0 0x0c200000 0x0c200000 0x0 0x100000>,
862 <0x02000000 0x0 0x0c300000 0x0c300000 0x0 0xd00000>;
863
864 interrupts = <GIC_SPI 405 IRQ_TYPE_NONE>;
865 interrupt-names = "msi";
866 #interrupt-cells = <1>;
867 interrupt-map-mask = <0 0 0 0x7>;
868 interrupt-map = <0 0 0 1 &intc 0 244 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
869 <0 0 0 2 &intc 0 245 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
870 <0 0 0 3 &intc 0 247 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
871 <0 0 0 4 &intc 0 248 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
872
873 pinctrl-names = "default", "sleep";
874 pinctrl-0 = <&pcie0_clkreq_default &pcie0_perst_default &pcie0_wake_default>;
875 pinctrl-1 = <&pcie0_clkreq_sleep &pcie0_perst_default &pcie0_wake_sleep>;
876
877
878 vdda-supply = <&pm8994_l28>;
879
880 linux,pci-domain = <0>;
881
882 clocks = <&gcc GCC_PCIE_0_PIPE_CLK>,
883 <&gcc GCC_PCIE_0_AUX_CLK>,
884 <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
885 <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
886 <&gcc GCC_PCIE_0_SLV_AXI_CLK>;
887
888 clock-names = "pipe",
889 "aux",
890 "cfg",
891 "bus_master",
892 "bus_slave";
893
894 };
895
896 pcie1: qcom,pcie@00608000 {
897 compatible = "qcom,pcie-msm8996", "snps,dw-pcie";
898 power-domains = <&gcc PCIE1_GDSC>;
899 bus-range = <0x00 0xff>;
900 num-lanes = <1>;
901
902 status = "disabled";
903
904 reg = <0x00608000 0x2000>,
905 <0x0d000000 0xf1d>,
906 <0x0d000f20 0xa8>,
907 <0x0d100000 0x100000>;
908
909 reg-names = "parf", "dbi", "elbi","config";
910
911 phys = <&pciephy_1>;
912 phy-names = "pciephy";
913
914 #address-cells = <3>;
915 #size-cells = <2>;
916 ranges = <0x01000000 0x0 0x0d200000 0x0d200000 0x0 0x100000>,
917 <0x02000000 0x0 0x0d300000 0x0d300000 0x0 0xd00000>;
918
919 interrupts = <GIC_SPI 413 IRQ_TYPE_NONE>;
920 interrupt-names = "msi";
921 #interrupt-cells = <1>;
922 interrupt-map-mask = <0 0 0 0x7>;
923 interrupt-map = <0 0 0 1 &intc 0 272 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
924 <0 0 0 2 &intc 0 273 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
925 <0 0 0 3 &intc 0 274 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
926 <0 0 0 4 &intc 0 275 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
927
928 pinctrl-names = "default", "sleep";
929 pinctrl-0 = <&pcie1_clkreq_default &pcie1_perst_default &pcie1_wake_default>;
930 pinctrl-1 = <&pcie1_clkreq_sleep &pcie1_perst_default &pcie1_wake_sleep>;
931
932
933 vdda-supply = <&pm8994_l28>;
934 linux,pci-domain = <1>;
935
936 clocks = <&gcc GCC_PCIE_1_PIPE_CLK>,
937 <&gcc GCC_PCIE_1_AUX_CLK>,
938 <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
939 <&gcc GCC_PCIE_1_MSTR_AXI_CLK>,
940 <&gcc GCC_PCIE_1_SLV_AXI_CLK>;
941
942 clock-names = "pipe",
943 "aux",
944 "cfg",
945 "bus_master",
946 "bus_slave";
947 };
948
949 pcie2: qcom,pcie@00610000 {
950 compatible = "qcom,pcie-msm8996", "snps,dw-pcie";
951 power-domains = <&gcc PCIE2_GDSC>;
952 bus-range = <0x00 0xff>;
953 num-lanes = <1>;
954 status = "disabled";
955 reg = <0x00610000 0x2000>,
956 <0x0e000000 0xf1d>,
957 <0x0e000f20 0xa8>,
958 <0x0e100000 0x100000>;
959
960 reg-names = "parf", "dbi", "elbi","config";
961
962 phys = <&pciephy_2>;
963 phy-names = "pciephy";
964
965 #address-cells = <3>;
966 #size-cells = <2>;
967 ranges = <0x01000000 0x0 0x0e200000 0x0e200000 0x0 0x100000>,
968 <0x02000000 0x0 0x0e300000 0x0e300000 0x0 0x1d00000>;
969
970 device_type = "pci";
971
972 interrupts = <GIC_SPI 421 IRQ_TYPE_NONE>;
973 interrupt-names = "msi";
974 #interrupt-cells = <1>;
975 interrupt-map-mask = <0 0 0 0x7>;
976 interrupt-map = <0 0 0 1 &intc 0 142 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
977 <0 0 0 2 &intc 0 143 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
978 <0 0 0 3 &intc 0 144 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
979 <0 0 0 4 &intc 0 145 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
980
981 pinctrl-names = "default", "sleep";
982 pinctrl-0 = <&pcie2_clkreq_default &pcie2_perst_default &pcie2_wake_default>;
983 pinctrl-1 = <&pcie2_clkreq_sleep &pcie2_perst_default &pcie2_wake_sleep >;
984
985 vdda-supply = <&pm8994_l28>;
986
987 linux,pci-domain = <2>;
988 clocks = <&gcc GCC_PCIE_2_PIPE_CLK>,
989 <&gcc GCC_PCIE_2_AUX_CLK>,
990 <&gcc GCC_PCIE_2_CFG_AHB_CLK>,
991 <&gcc GCC_PCIE_2_MSTR_AXI_CLK>,
992 <&gcc GCC_PCIE_2_SLV_AXI_CLK>;
993
994 clock-names = "pipe",
995 "aux",
996 "cfg",
997 "bus_master",
998 "bus_slave";
999 };
1000 };
822 }; 1001 };
823 1002
824 adsp-pil { 1003 adsp-pil {
diff --git a/arch/arm64/boot/dts/realtek/Makefile b/arch/arm64/boot/dts/realtek/Makefile
index 6e2ae59a3745..c108d73f8766 100644
--- a/arch/arm64/boot/dts/realtek/Makefile
+++ b/arch/arm64/boot/dts/realtek/Makefile
@@ -1 +1,3 @@
1dtb-$(CONFIG_ARCH_REALTEK) += rtd1295-mele-v9.dtb
2dtb-$(CONFIG_ARCH_REALTEK) += rtd1295-probox2-ava.dtb
1dtb-$(CONFIG_ARCH_REALTEK) += rtd1295-zidoo-x9s.dtb 3dtb-$(CONFIG_ARCH_REALTEK) += rtd1295-zidoo-x9s.dtb
diff --git a/arch/arm64/boot/dts/realtek/rtd1295-mele-v9.dts b/arch/arm64/boot/dts/realtek/rtd1295-mele-v9.dts
new file mode 100644
index 000000000000..bd584e99fff9
--- /dev/null
+++ b/arch/arm64/boot/dts/realtek/rtd1295-mele-v9.dts
@@ -0,0 +1,31 @@
1/*
2 * Copyright (c) 2017 Andreas Färber
3 *
4 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
5 */
6
7/dts-v1/;
8
9#include "rtd1295.dtsi"
10
11/ {
12 compatible = "mele,v9", "realtek,rtd1295";
13 model = "MeLE V9";
14
15 memory@0 {
16 device_type = "memory";
17 reg = <0x0 0x80000000>;
18 };
19
20 aliases {
21 serial0 = &uart0;
22 };
23
24 chosen {
25 stdout-path = "serial0:115200n8";
26 };
27};
28
29&uart0 {
30 status = "okay";
31};
diff --git a/arch/arm64/boot/dts/realtek/rtd1295-probox2-ava.dts b/arch/arm64/boot/dts/realtek/rtd1295-probox2-ava.dts
new file mode 100644
index 000000000000..8e2b0e75298a
--- /dev/null
+++ b/arch/arm64/boot/dts/realtek/rtd1295-probox2-ava.dts
@@ -0,0 +1,31 @@
1/*
2 * Copyright (c) 2017 Andreas Färber
3 *
4 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
5 */
6
7/dts-v1/;
8
9#include "rtd1295.dtsi"
10
11/ {
12 compatible = "probox2,ava", "realtek,rtd1295";
13 model = "PROBOX2 AVA";
14
15 memory@0 {
16 device_type = "memory";
17 reg = <0x0 0x80000000>;
18 };
19
20 aliases {
21 serial0 = &uart0;
22 };
23
24 chosen {
25 stdout-path = "serial0:115200n8";
26 };
27};
28
29&uart0 {
30 status = "okay";
31};
diff --git a/arch/arm64/boot/dts/realtek/rtd1295-zidoo-x9s.dts b/arch/arm64/boot/dts/realtek/rtd1295-zidoo-x9s.dts
index 6efa8091bb30..da19faab29d5 100644
--- a/arch/arm64/boot/dts/realtek/rtd1295-zidoo-x9s.dts
+++ b/arch/arm64/boot/dts/realtek/rtd1295-zidoo-x9s.dts
@@ -6,12 +6,6 @@
6 6
7/dts-v1/; 7/dts-v1/;
8 8
9/memreserve/ 0x0000000000000000 0x0000000000030000;
10/memreserve/ 0x000000000001f000 0x0000000000001000;
11/memreserve/ 0x0000000000030000 0x00000000000d0000;
12/memreserve/ 0x0000000001b00000 0x00000000004be000;
13/memreserve/ 0x0000000001ffe000 0x0000000000004000;
14
15#include "rtd1295.dtsi" 9#include "rtd1295.dtsi"
16 10
17/ { 11/ {
diff --git a/arch/arm64/boot/dts/realtek/rtd1295.dtsi b/arch/arm64/boot/dts/realtek/rtd1295.dtsi
index d8f84666c8ce..8d9ac05d17dc 100644
--- a/arch/arm64/boot/dts/realtek/rtd1295.dtsi
+++ b/arch/arm64/boot/dts/realtek/rtd1295.dtsi
@@ -6,13 +6,10 @@
6 * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 6 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
7 */ 7 */
8 8
9#include <dt-bindings/interrupt-controller/arm-gic.h> 9#include "rtd129x.dtsi"
10 10
11/ { 11/ {
12 compatible = "realtek,rtd1295"; 12 compatible = "realtek,rtd1295";
13 interrupt-parent = <&gic>;
14 #address-cells = <1>;
15 #size-cells = <1>;
16 13
17 cpus { 14 cpus {
18 #address-cells = <2>; 15 #address-cells = <2>;
@@ -62,12 +59,6 @@
62 }; 59 };
63 }; 60 };
64 61
65 arm-pmu {
66 compatible = "arm,cortex-a53-pmu";
67 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
68 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
69 };
70
71 timer { 62 timer {
72 compatible = "arm,armv8-timer"; 63 compatible = "arm,armv8-timer";
73 interrupts = <GIC_PPI 13 64 interrupts = <GIC_PPI 13
@@ -79,53 +70,8 @@
79 <GIC_PPI 10 70 <GIC_PPI 10
80 (GIC_CPU_MASK_RAW(0xf) | IRQ_TYPE_LEVEL_LOW)>; 71 (GIC_CPU_MASK_RAW(0xf) | IRQ_TYPE_LEVEL_LOW)>;
81 }; 72 };
73};
82 74
83 soc { 75&arm_pmu {
84 compatible = "simple-bus"; 76 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
85 #address-cells = <1>;
86 #size-cells = <1>;
87 /* Exclude up to 2 GiB of RAM */
88 ranges = <0x80000000 0x80000000 0x80000000>;
89
90 uart0: serial@98007800 {
91 compatible = "snps,dw-apb-uart";
92 reg = <0x98007800 0x400>,
93 <0x98007000 0x100>;
94 reg-shift = <2>;
95 reg-io-width = <4>;
96 clock-frequency = <27000000>;
97 status = "disabled";
98 };
99
100 uart1: serial@9801b200 {
101 compatible = "snps,dw-apb-uart";
102 reg = <0x9801b200 0x100>,
103 <0x9801b00c 0x100>;
104 reg-shift = <2>;
105 reg-io-width = <4>;
106 clock-frequency = <432000000>;
107 status = "disabled";
108 };
109
110 uart2: serial@9801b400 {
111 compatible = "snps,dw-apb-uart";
112 reg = <0x9801b400 0x100>,
113 <0x9801b00c 0x100>;
114 reg-shift = <2>;
115 reg-io-width = <4>;
116 clock-frequency = <432000000>;
117 status = "disabled";
118 };
119
120 gic: interrupt-controller@ff011000 {
121 compatible = "arm,gic-400";
122 reg = <0xff011000 0x1000>,
123 <0xff012000 0x2000>,
124 <0xff014000 0x2000>,
125 <0xff016000 0x2000>;
126 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
127 interrupt-controller;
128 #interrupt-cells = <3>;
129 };
130 };
131}; 77};
diff --git a/arch/arm64/boot/dts/realtek/rtd129x.dtsi b/arch/arm64/boot/dts/realtek/rtd129x.dtsi
new file mode 100644
index 000000000000..b9cb92466fc7
--- /dev/null
+++ b/arch/arm64/boot/dts/realtek/rtd129x.dtsi
@@ -0,0 +1,72 @@
1/*
2 * Realtek RTD1293/RTD1295/RTD1296 SoC
3 *
4 * Copyright (c) 2016-2017 Andreas Färber
5 *
6 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
7 */
8
9/memreserve/ 0x0000000000000000 0x0000000000030000;
10/memreserve/ 0x000000000001f000 0x0000000000001000;
11/memreserve/ 0x0000000000030000 0x00000000000d0000;
12/memreserve/ 0x0000000001b00000 0x00000000004be000;
13/memreserve/ 0x0000000001ffe000 0x0000000000004000;
14
15#include <dt-bindings/interrupt-controller/arm-gic.h>
16
17/ {
18 interrupt-parent = <&gic>;
19 #address-cells = <1>;
20 #size-cells = <1>;
21
22 arm_pmu: arm-pmu {
23 compatible = "arm,cortex-a53-pmu";
24 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
25 };
26
27 soc {
28 compatible = "simple-bus";
29 #address-cells = <1>;
30 #size-cells = <1>;
31 /* Exclude up to 2 GiB of RAM */
32 ranges = <0x80000000 0x80000000 0x80000000>;
33
34 uart0: serial@98007800 {
35 compatible = "snps,dw-apb-uart";
36 reg = <0x98007800 0x400>;
37 reg-shift = <2>;
38 reg-io-width = <4>;
39 clock-frequency = <27000000>;
40 status = "disabled";
41 };
42
43 uart1: serial@9801b200 {
44 compatible = "snps,dw-apb-uart";
45 reg = <0x9801b200 0x100>;
46 reg-shift = <2>;
47 reg-io-width = <4>;
48 clock-frequency = <432000000>;
49 status = "disabled";
50 };
51
52 uart2: serial@9801b400 {
53 compatible = "snps,dw-apb-uart";
54 reg = <0x9801b400 0x100>;
55 reg-shift = <2>;
56 reg-io-width = <4>;
57 clock-frequency = <432000000>;
58 status = "disabled";
59 };
60
61 gic: interrupt-controller@ff011000 {
62 compatible = "arm,gic-400";
63 reg = <0xff011000 0x1000>,
64 <0xff012000 0x2000>,
65 <0xff014000 0x2000>,
66 <0xff016000 0x2000>;
67 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
68 interrupt-controller;
69 #interrupt-cells = <3>;
70 };
71 };
72};
diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile
index 6b282283f1bf..646198d82903 100644
--- a/arch/arm64/boot/dts/renesas/Makefile
+++ b/arch/arm64/boot/dts/renesas/Makefile
@@ -1,6 +1,10 @@
1# SPDX-License-Identifier: GPL-2.0 1# SPDX-License-Identifier: GPL-2.0
2dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-salvator-x.dtb r8a7795-h3ulcb.dtb 2dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-salvator-x.dtb r8a7795-h3ulcb.dtb
3dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-h3ulcb-kf.dtb
3dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-salvator-xs.dtb 4dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-salvator-xs.dtb
4dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-es1-salvator-x.dtb r8a7795-es1-h3ulcb.dtb 5dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-es1-salvator-x.dtb r8a7795-es1-h3ulcb.dtb
6dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-es1-h3ulcb-kf.dtb
5dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-salvator-x.dtb r8a7796-m3ulcb.dtb 7dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-salvator-x.dtb r8a7796-m3ulcb.dtb
8dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-m3ulcb-kf.dtb
9dtb-$(CONFIG_ARCH_R8A77970) += r8a77970-eagle.dtb
6dtb-$(CONFIG_ARCH_R8A77995) += r8a77995-draak.dtb 10dtb-$(CONFIG_ARCH_R8A77995) += r8a77995-draak.dtb
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-es1-h3ulcb-kf.dts b/arch/arm64/boot/dts/renesas/r8a7795-es1-h3ulcb-kf.dts
new file mode 100644
index 000000000000..009cb1cb0dde
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a7795-es1-h3ulcb-kf.dts
@@ -0,0 +1,19 @@
1/*
2 * Device Tree Source for the H3ULCB Kingfisher board
3 *
4 * Copyright (C) 2017 Renesas Electronics Corp.
5 * Copyright (C) 2017 Cogent Embedded, Inc.
6 *
7 * This file is licensed under the terms of the GNU General Public License
8 * version 2. This program is licensed "as is" without any warranty of any
9 * kind, whether express or implied.
10 */
11
12#include "r8a7795-es1-h3ulcb.dts"
13#include "ulcb-kf.dtsi"
14
15/ {
16 model = "Renesas H3ULCB Kingfisher board based on r8a7795 ES1.x";
17 compatible = "shimafuji,kingfisher", "renesas,h3ulcb",
18 "renesas,r8a7795";
19};
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi b/arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi
index aaa5e67a963e..655dd30639c5 100644
--- a/arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi
@@ -11,7 +11,7 @@
11#include "r8a7795.dtsi" 11#include "r8a7795.dtsi"
12 12
13&soc { 13&soc {
14 xhci1: usb@ee0400000 { 14 xhci1: usb@ee040000 {
15 compatible = "renesas,xhci-r8a7795", "renesas,rcar-gen3-xhci"; 15 compatible = "renesas,xhci-r8a7795", "renesas,rcar-gen3-xhci";
16 reg = <0 0xee040000 0 0xc00>; 16 reg = <0 0xee040000 0 0xc00>;
17 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 17 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf.dts b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf.dts
new file mode 100644
index 000000000000..4403227c0f97
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb-kf.dts
@@ -0,0 +1,19 @@
1/*
2 * Device Tree Source for the H3ULCB Kingfisher board
3 *
4 * Copyright (C) 2017 Renesas Electronics Corp.
5 * Copyright (C) 2017 Cogent Embedded, Inc.
6 *
7 * This file is licensed under the terms of the GNU General Public License
8 * version 2. This program is licensed "as is" without any warranty of any
9 * kind, whether express or implied.
10 */
11
12#include "r8a7795-h3ulcb.dts"
13#include "ulcb-kf.dtsi"
14
15/ {
16 model = "Renesas H3ULCB Kingfisher board based on r8a7795 ES2.0+";
17 compatible = "shimafuji,kingfisher", "renesas,h3ulcb",
18 "renesas,r8a7795";
19};
diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi b/arch/arm64/boot/dts/renesas/r8a7795.dtsi
index 2938195b9571..15ef292a8d9f 100644
--- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi
@@ -220,7 +220,7 @@
220 220
221 gpio0: gpio@e6050000 { 221 gpio0: gpio@e6050000 {
222 compatible = "renesas,gpio-r8a7795", 222 compatible = "renesas,gpio-r8a7795",
223 "renesas,gpio-rcar"; 223 "renesas,rcar-gen3-gpio";
224 reg = <0 0xe6050000 0 0x50>; 224 reg = <0 0xe6050000 0 0x50>;
225 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 225 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
226 #gpio-cells = <2>; 226 #gpio-cells = <2>;
@@ -235,7 +235,7 @@
235 235
236 gpio1: gpio@e6051000 { 236 gpio1: gpio@e6051000 {
237 compatible = "renesas,gpio-r8a7795", 237 compatible = "renesas,gpio-r8a7795",
238 "renesas,gpio-rcar"; 238 "renesas,rcar-gen3-gpio";
239 reg = <0 0xe6051000 0 0x50>; 239 reg = <0 0xe6051000 0 0x50>;
240 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 240 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
241 #gpio-cells = <2>; 241 #gpio-cells = <2>;
@@ -250,7 +250,7 @@
250 250
251 gpio2: gpio@e6052000 { 251 gpio2: gpio@e6052000 {
252 compatible = "renesas,gpio-r8a7795", 252 compatible = "renesas,gpio-r8a7795",
253 "renesas,gpio-rcar"; 253 "renesas,rcar-gen3-gpio";
254 reg = <0 0xe6052000 0 0x50>; 254 reg = <0 0xe6052000 0 0x50>;
255 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 255 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
256 #gpio-cells = <2>; 256 #gpio-cells = <2>;
@@ -265,7 +265,7 @@
265 265
266 gpio3: gpio@e6053000 { 266 gpio3: gpio@e6053000 {
267 compatible = "renesas,gpio-r8a7795", 267 compatible = "renesas,gpio-r8a7795",
268 "renesas,gpio-rcar"; 268 "renesas,rcar-gen3-gpio";
269 reg = <0 0xe6053000 0 0x50>; 269 reg = <0 0xe6053000 0 0x50>;
270 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 270 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
271 #gpio-cells = <2>; 271 #gpio-cells = <2>;
@@ -280,7 +280,7 @@
280 280
281 gpio4: gpio@e6054000 { 281 gpio4: gpio@e6054000 {
282 compatible = "renesas,gpio-r8a7795", 282 compatible = "renesas,gpio-r8a7795",
283 "renesas,gpio-rcar"; 283 "renesas,rcar-gen3-gpio";
284 reg = <0 0xe6054000 0 0x50>; 284 reg = <0 0xe6054000 0 0x50>;
285 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 285 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
286 #gpio-cells = <2>; 286 #gpio-cells = <2>;
@@ -295,7 +295,7 @@
295 295
296 gpio5: gpio@e6055000 { 296 gpio5: gpio@e6055000 {
297 compatible = "renesas,gpio-r8a7795", 297 compatible = "renesas,gpio-r8a7795",
298 "renesas,gpio-rcar"; 298 "renesas,rcar-gen3-gpio";
299 reg = <0 0xe6055000 0 0x50>; 299 reg = <0 0xe6055000 0 0x50>;
300 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 300 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
301 #gpio-cells = <2>; 301 #gpio-cells = <2>;
@@ -310,7 +310,7 @@
310 310
311 gpio6: gpio@e6055400 { 311 gpio6: gpio@e6055400 {
312 compatible = "renesas,gpio-r8a7795", 312 compatible = "renesas,gpio-r8a7795",
313 "renesas,gpio-rcar"; 313 "renesas,rcar-gen3-gpio";
314 reg = <0 0xe6055400 0 0x50>; 314 reg = <0 0xe6055400 0 0x50>;
315 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 315 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
316 #gpio-cells = <2>; 316 #gpio-cells = <2>;
@@ -325,7 +325,7 @@
325 325
326 gpio7: gpio@e6055800 { 326 gpio7: gpio@e6055800 {
327 compatible = "renesas,gpio-r8a7795", 327 compatible = "renesas,gpio-r8a7795",
328 "renesas,gpio-rcar"; 328 "renesas,rcar-gen3-gpio";
329 reg = <0 0xe6055800 0 0x50>; 329 reg = <0 0xe6055800 0 0x50>;
330 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 330 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
331 #gpio-cells = <2>; 331 #gpio-cells = <2>;
@@ -1471,6 +1471,17 @@
1471 status = "disabled"; 1471 status = "disabled";
1472 }; 1472 };
1473 1473
1474 usb3_peri0: usb@ee020000 {
1475 compatible = "renesas,r8a7795-usb3-peri",
1476 "renesas,rcar-gen3-usb3-peri";
1477 reg = <0 0xee020000 0 0x400>;
1478 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
1479 clocks = <&cpg CPG_MOD 328>;
1480 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
1481 resets = <&cpg 328>;
1482 status = "disabled";
1483 };
1484
1474 usb_dmac0: dma-controller@e65a0000 { 1485 usb_dmac0: dma-controller@e65a0000 {
1475 compatible = "renesas,r8a7795-usb-dmac", 1486 compatible = "renesas,r8a7795-usb-dmac",
1476 "renesas,usb-dmac"; 1487 "renesas,usb-dmac";
@@ -2014,7 +2025,7 @@
2014 renesas,fcp = <&fcpf1>; 2025 renesas,fcp = <&fcpf1>;
2015 }; 2026 };
2016 2027
2017 hdmi0: hdmi0@fead0000 { 2028 hdmi0: hdmi@fead0000 {
2018 compatible = "renesas,r8a7795-hdmi", "renesas,rcar-gen3-hdmi"; 2029 compatible = "renesas,r8a7795-hdmi", "renesas,rcar-gen3-hdmi";
2019 reg = <0 0xfead0000 0 0x10000>; 2030 reg = <0 0xfead0000 0 0x10000>;
2020 interrupts = <GIC_SPI 389 IRQ_TYPE_LEVEL_HIGH>; 2031 interrupts = <GIC_SPI 389 IRQ_TYPE_LEVEL_HIGH>;
@@ -2039,7 +2050,7 @@
2039 }; 2050 };
2040 }; 2051 };
2041 2052
2042 hdmi1: hdmi1@feae0000 { 2053 hdmi1: hdmi@feae0000 {
2043 compatible = "renesas,r8a7795-hdmi", "renesas,rcar-gen3-hdmi"; 2054 compatible = "renesas,r8a7795-hdmi", "renesas,rcar-gen3-hdmi";
2044 reg = <0 0xfeae0000 0 0x10000>; 2055 reg = <0 0xfeae0000 0 0x10000>;
2045 interrupts = <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH>; 2056 interrupts = <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts
new file mode 100644
index 000000000000..de2390f009e7
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts
@@ -0,0 +1,19 @@
1/*
2 * Device Tree Source for the M3ULCB Kingfisher board
3 *
4 * Copyright (C) 2017 Renesas Electronics Corp.
5 * Copyright (C) 2017 Cogent Embedded, Inc.
6 *
7 * This file is licensed under the terms of the GNU General Public License
8 * version 2. This program is licensed "as is" without any warranty of any
9 * kind, whether express or implied.
10 */
11
12#include "r8a7796-m3ulcb.dts"
13#include "ulcb-kf.dtsi"
14
15/ {
16 model = "Renesas M3ULCB Kingfisher board based on r8a7796";
17 compatible = "shimafuji,kingfisher", "renesas,m3ulcb",
18 "renesas,r8a7796";
19};
diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
index 369092e17e34..f2b2e40c655e 100644
--- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
@@ -214,7 +214,7 @@
214 214
215 gpio0: gpio@e6050000 { 215 gpio0: gpio@e6050000 {
216 compatible = "renesas,gpio-r8a7796", 216 compatible = "renesas,gpio-r8a7796",
217 "renesas,gpio-rcar"; 217 "renesas,rcar-gen3-gpio";
218 reg = <0 0xe6050000 0 0x50>; 218 reg = <0 0xe6050000 0 0x50>;
219 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 219 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
220 #gpio-cells = <2>; 220 #gpio-cells = <2>;
@@ -229,7 +229,7 @@
229 229
230 gpio1: gpio@e6051000 { 230 gpio1: gpio@e6051000 {
231 compatible = "renesas,gpio-r8a7796", 231 compatible = "renesas,gpio-r8a7796",
232 "renesas,gpio-rcar"; 232 "renesas,rcar-gen3-gpio";
233 reg = <0 0xe6051000 0 0x50>; 233 reg = <0 0xe6051000 0 0x50>;
234 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 234 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
235 #gpio-cells = <2>; 235 #gpio-cells = <2>;
@@ -244,7 +244,7 @@
244 244
245 gpio2: gpio@e6052000 { 245 gpio2: gpio@e6052000 {
246 compatible = "renesas,gpio-r8a7796", 246 compatible = "renesas,gpio-r8a7796",
247 "renesas,gpio-rcar"; 247 "renesas,rcar-gen3-gpio";
248 reg = <0 0xe6052000 0 0x50>; 248 reg = <0 0xe6052000 0 0x50>;
249 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 249 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
250 #gpio-cells = <2>; 250 #gpio-cells = <2>;
@@ -259,7 +259,7 @@
259 259
260 gpio3: gpio@e6053000 { 260 gpio3: gpio@e6053000 {
261 compatible = "renesas,gpio-r8a7796", 261 compatible = "renesas,gpio-r8a7796",
262 "renesas,gpio-rcar"; 262 "renesas,rcar-gen3-gpio";
263 reg = <0 0xe6053000 0 0x50>; 263 reg = <0 0xe6053000 0 0x50>;
264 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 264 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
265 #gpio-cells = <2>; 265 #gpio-cells = <2>;
@@ -274,7 +274,7 @@
274 274
275 gpio4: gpio@e6054000 { 275 gpio4: gpio@e6054000 {
276 compatible = "renesas,gpio-r8a7796", 276 compatible = "renesas,gpio-r8a7796",
277 "renesas,gpio-rcar"; 277 "renesas,rcar-gen3-gpio";
278 reg = <0 0xe6054000 0 0x50>; 278 reg = <0 0xe6054000 0 0x50>;
279 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 279 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
280 #gpio-cells = <2>; 280 #gpio-cells = <2>;
@@ -289,7 +289,7 @@
289 289
290 gpio5: gpio@e6055000 { 290 gpio5: gpio@e6055000 {
291 compatible = "renesas,gpio-r8a7796", 291 compatible = "renesas,gpio-r8a7796",
292 "renesas,gpio-rcar"; 292 "renesas,rcar-gen3-gpio";
293 reg = <0 0xe6055000 0 0x50>; 293 reg = <0 0xe6055000 0 0x50>;
294 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 294 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
295 #gpio-cells = <2>; 295 #gpio-cells = <2>;
@@ -304,7 +304,7 @@
304 304
305 gpio6: gpio@e6055400 { 305 gpio6: gpio@e6055400 {
306 compatible = "renesas,gpio-r8a7796", 306 compatible = "renesas,gpio-r8a7796",
307 "renesas,gpio-rcar"; 307 "renesas,rcar-gen3-gpio";
308 reg = <0 0xe6055400 0 0x50>; 308 reg = <0 0xe6055400 0 0x50>;
309 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 309 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
310 #gpio-cells = <2>; 310 #gpio-cells = <2>;
@@ -319,7 +319,7 @@
319 319
320 gpio7: gpio@e6055800 { 320 gpio7: gpio@e6055800 {
321 compatible = "renesas,gpio-r8a7796", 321 compatible = "renesas,gpio-r8a7796",
322 "renesas,gpio-rcar"; 322 "renesas,rcar-gen3-gpio";
323 reg = <0 0xe6055800 0 0x50>; 323 reg = <0 0xe6055800 0 0x50>;
324 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 324 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
325 #gpio-cells = <2>; 325 #gpio-cells = <2>;
@@ -383,6 +383,22 @@
383 #power-domain-cells = <1>; 383 #power-domain-cells = <1>;
384 }; 384 };
385 385
386 intc_ex: interrupt-controller@e61c0000 {
387 compatible = "renesas,intc-ex-r8a7796", "renesas,irqc";
388 #interrupt-cells = <2>;
389 interrupt-controller;
390 reg = <0 0xe61c0000 0 0x200>;
391 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH
392 GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH
393 GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH
394 GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH
395 GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH
396 GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
397 clocks = <&cpg CPG_MOD 407>;
398 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
399 resets = <&cpg 407>;
400 };
401
386 i2c_dvfs: i2c@e60b0000 { 402 i2c_dvfs: i2c@e60b0000 {
387 #address-cells = <1>; 403 #address-cells = <1>;
388 #size-cells = <0>; 404 #size-cells = <0>;
@@ -1279,6 +1295,17 @@
1279 status = "disabled"; 1295 status = "disabled";
1280 }; 1296 };
1281 1297
1298 usb3_peri0: usb@ee020000 {
1299 compatible = "renesas,r8a7796-usb3-peri",
1300 "renesas,rcar-gen3-usb3-peri";
1301 reg = <0 0xee020000 0 0x400>;
1302 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
1303 clocks = <&cpg CPG_MOD 328>;
1304 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
1305 resets = <&cpg 328>;
1306 status = "disabled";
1307 };
1308
1282 ohci0: usb@ee080000 { 1309 ohci0: usb@ee080000 {
1283 compatible = "generic-ohci"; 1310 compatible = "generic-ohci";
1284 reg = <0 0xee080000 0 0x100>; 1311 reg = <0 0xee080000 0 0x100>;
@@ -1659,6 +1686,16 @@
1659 /* placeholder */ 1686 /* placeholder */
1660 }; 1687 };
1661 1688
1689 fdp1@fe940000 {
1690 compatible = "renesas,fdp1";
1691 reg = <0 0xfe940000 0 0x2400>;
1692 interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>;
1693 clocks = <&cpg CPG_MOD 119>;
1694 power-domains = <&sysc R8A7796_PD_A3VC>;
1695 resets = <&cpg 119>;
1696 renesas,fcp = <&fcpf0>;
1697 };
1698
1662 fcpf0: fcp@fe950000 { 1699 fcpf0: fcp@fe950000 {
1663 compatible = "renesas,fcpf"; 1700 compatible = "renesas,fcpf";
1664 reg = <0 0xfe950000 0 0x200>; 1701 reg = <0 0xfe950000 0 0x200>;
diff --git a/arch/arm64/boot/dts/renesas/r8a77970-eagle.dts b/arch/arm64/boot/dts/renesas/r8a77970-eagle.dts
new file mode 100644
index 000000000000..a711e77cc6a5
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a77970-eagle.dts
@@ -0,0 +1,57 @@
1/*
2 * Device Tree Source for the Eagle board
3 *
4 * Copyright (C) 2016-2017 Renesas Electronics Corp.
5 * Copyright (C) 2017 Cogent Embedded, Inc.
6 *
7 * This file is licensed under the terms of the GNU General Public License
8 * version 2. This program is licensed "as is" without any warranty of any
9 * kind, whether express or implied.
10 */
11
12/dts-v1/;
13#include "r8a77970.dtsi"
14
15/ {
16 model = "Renesas Eagle board based on r8a77970";
17 compatible = "renesas,eagle", "renesas,r8a77970";
18
19 aliases {
20 serial0 = &scif0;
21 ethernet0 = &avb;
22 };
23
24 chosen {
25 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
26 stdout-path = "serial0:115200n8";
27 };
28
29 memory@48000000 {
30 device_type = "memory";
31 /* first 128MB is reserved for secure area. */
32 reg = <0x0 0x48000000 0x0 0x38000000>;
33 };
34};
35
36&extal_clk {
37 clock-frequency = <16666666>;
38};
39
40&extalr_clk {
41 clock-frequency = <32768>;
42};
43
44&scif0 {
45 status = "okay";
46};
47
48&avb {
49 renesas,no-ether-link;
50 phy-handle = <&phy0>;
51 status = "okay";
52
53 phy0: ethernet-phy@0 {
54 rxc-skew-ps = <1500>;
55 reg = <0>;
56 };
57};
diff --git a/arch/arm64/boot/dts/renesas/r8a77970.dtsi b/arch/arm64/boot/dts/renesas/r8a77970.dtsi
new file mode 100644
index 000000000000..97e6981938e7
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a77970.dtsi
@@ -0,0 +1,382 @@
1/*
2 * Device Tree Source for the r8a77970 SoC
3 *
4 * Copyright (C) 2016-2017 Renesas Electronics Corp.
5 * Copyright (C) 2017 Cogent Embedded, Inc.
6 *
7 * This file is licensed under the terms of the GNU General Public License
8 * version 2. This program is licensed "as is" without any warranty of any
9 * kind, whether express or implied.
10 */
11
12#include <dt-bindings/interrupt-controller/irq.h>
13#include <dt-bindings/interrupt-controller/arm-gic.h>
14#include <dt-bindings/clock/renesas-cpg-mssr.h>
15
16/ {
17 compatible = "renesas,r8a77970";
18 #address-cells = <2>;
19 #size-cells = <2>;
20
21 psci {
22 compatible = "arm,psci-1.0", "arm,psci-0.2";
23 method = "smc";
24 };
25
26 cpus {
27 #address-cells = <1>;
28 #size-cells = <0>;
29
30 a53_0: cpu@0 {
31 device_type = "cpu";
32 compatible = "arm,cortex-a53", "arm,armv8";
33 reg = <0>;
34 clocks = <&cpg CPG_CORE 0>;
35 power-domains = <&sysc 5>;
36 next-level-cache = <&L2_CA53>;
37 enable-method = "psci";
38 };
39
40 L2_CA53: cache-controller {
41 compatible = "cache";
42 power-domains = <&sysc 21>;
43 cache-unified;
44 cache-level = <2>;
45 };
46 };
47
48 extal_clk: extal {
49 compatible = "fixed-clock";
50 #clock-cells = <0>;
51 /* This value must be overridden by the board */
52 clock-frequency = <0>;
53 };
54
55 extalr_clk: extalr {
56 compatible = "fixed-clock";
57 #clock-cells = <0>;
58 /* This value must be overridden by the board */
59 clock-frequency = <0>;
60 };
61
62 /* External SCIF clock - to be overridden by boards that provide it */
63 scif_clk: scif {
64 compatible = "fixed-clock";
65 #clock-cells = <0>;
66 clock-frequency = <0>;
67 };
68
69 soc {
70 compatible = "simple-bus";
71 interrupt-parent = <&gic>;
72
73 #address-cells = <2>;
74 #size-cells = <2>;
75 ranges;
76
77 gic: interrupt-controller@f1010000 {
78 compatible = "arm,gic-400";
79 #interrupt-cells = <3>;
80 #address-cells = <0>;
81 interrupt-controller;
82 reg = <0 0xf1010000 0 0x1000>,
83 <0 0xf1020000 0 0x20000>,
84 <0 0xf1040000 0 0x20000>,
85 <0 0xf1060000 0 0x20000>;
86 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) |
87 IRQ_TYPE_LEVEL_HIGH)>;
88 clocks = <&cpg CPG_MOD 408>;
89 clock-names = "clk";
90 power-domains = <&sysc 32>;
91 resets = <&cpg 408>;
92 };
93
94 timer {
95 compatible = "arm,armv8-timer";
96 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) |
97 IRQ_TYPE_LEVEL_LOW)>,
98 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) |
99 IRQ_TYPE_LEVEL_LOW)>,
100 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) |
101 IRQ_TYPE_LEVEL_LOW)>,
102 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) |
103 IRQ_TYPE_LEVEL_LOW)>;
104 };
105
106 cpg: clock-controller@e6150000 {
107 compatible = "renesas,r8a77970-cpg-mssr";
108 reg = <0 0xe6150000 0 0x1000>;
109 clocks = <&extal_clk>, <&extalr_clk>;
110 clock-names = "extal", "extalr";
111 #clock-cells = <2>;
112 #power-domain-cells = <0>;
113 #reset-cells = <1>;
114 };
115
116 rst: reset-controller@e6160000 {
117 compatible = "renesas,r8a77970-rst";
118 reg = <0 0xe6160000 0 0x200>;
119 };
120
121 sysc: system-controller@e6180000 {
122 compatible = "renesas,r8a77970-sysc";
123 reg = <0 0xe6180000 0 0x440>;
124 #power-domain-cells = <1>;
125 };
126
127 intc_ex: interrupt-controller@e61c0000 {
128 compatible = "renesas,intc-ex-r8a77970", "renesas,irqc";
129 #interrupt-cells = <2>;
130 interrupt-controller;
131 reg = <0 0xe61c0000 0 0x200>;
132 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH
133 GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH
134 GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH
135 GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH
136 GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH
137 GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
138 clocks = <&cpg CPG_MOD 407>;
139 power-domains = <&sysc 32>;
140 resets = <&cpg 407>;
141 };
142
143 prr: chipid@fff00044 {
144 compatible = "renesas,prr";
145 reg = <0 0xfff00044 0 4>;
146 };
147
148 dmac1: dma-controller@e7300000 {
149 compatible = "renesas,dmac-r8a77970",
150 "renesas,rcar-dmac";
151 reg = <0 0xe7300000 0 0x10000>;
152 interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH
153 GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH
154 GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH
155 GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH
156 GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH
157 GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH
158 GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH
159 GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH
160 GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>;
161 interrupt-names = "error",
162 "ch0", "ch1", "ch2", "ch3",
163 "ch4", "ch5", "ch6", "ch7";
164 clocks = <&cpg CPG_MOD 218>;
165 clock-names = "fck";
166 power-domains = <&sysc 32>;
167 resets = <&cpg 218>;
168 #dma-cells = <1>;
169 dma-channels = <8>;
170 };
171
172 dmac2: dma-controller@e7310000 {
173 compatible = "renesas,dmac-r8a77970",
174 "renesas,rcar-dmac";
175 reg = <0 0xe7310000 0 0x10000>;
176 interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH
177 GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH
178 GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH
179 GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH
180 GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH
181 GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH
182 GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH
183 GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH
184 GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>;
185 interrupt-names = "error",
186 "ch0", "ch1", "ch2", "ch3",
187 "ch4", "ch5", "ch6", "ch7";
188 clocks = <&cpg CPG_MOD 217>;
189 clock-names = "fck";
190 power-domains = <&sysc 32>;
191 resets = <&cpg 217>;
192 #dma-cells = <1>;
193 dma-channels = <8>;
194 };
195
196 hscif0: serial@e6540000 {
197 compatible = "renesas,hscif-r8a77970",
198 "renesas,rcar-gen3-hscif",
199 "renesas,hscif";
200 reg = <0 0xe6540000 0 96>;
201 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
202 clocks = <&cpg CPG_MOD 520>,
203 <&cpg CPG_CORE 9>,
204 <&scif_clk>;
205 clock-names = "fck", "brg_int", "scif_clk";
206 dmas = <&dmac1 0x31>, <&dmac1 0x30>,
207 <&dmac2 0x31>, <&dmac2 0x30>;
208 dma-names = "tx", "rx", "tx", "rx";
209 power-domains = <&sysc 32>;
210 resets = <&cpg 520>;
211 status = "disabled";
212 };
213
214 hscif1: serial@e6550000 {
215 compatible = "renesas,hscif-r8a77970",
216 "renesas,rcar-gen3-hscif",
217 "renesas,hscif";
218 reg = <0 0xe6550000 0 96>;
219 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
220 clocks = <&cpg CPG_MOD 519>,
221 <&cpg CPG_CORE 9>,
222 <&scif_clk>;
223 clock-names = "fck", "brg_int", "scif_clk";
224 dmas = <&dmac1 0x33>, <&dmac1 0x32>,
225 <&dmac2 0x33>, <&dmac2 0x32>;
226 dma-names = "tx", "rx", "tx", "rx";
227 power-domains = <&sysc 32>;
228 resets = <&cpg 519>;
229 status = "disabled";
230 };
231
232 hscif2: serial@e6560000 {
233 compatible = "renesas,hscif-r8a77970",
234 "renesas,rcar-gen3-hscif",
235 "renesas,hscif";
236 reg = <0 0xe6560000 0 96>;
237 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
238 clocks = <&cpg CPG_MOD 518>,
239 <&cpg CPG_CORE 9>,
240 <&scif_clk>;
241 clock-names = "fck", "brg_int", "scif_clk";
242 dmas = <&dmac1 0x35>, <&dmac1 0x34>,
243 <&dmac2 0x35>, <&dmac2 0x34>;
244 dma-names = "tx", "rx", "tx", "rx";
245 power-domains = <&sysc 32>;
246 resets = <&cpg 518>;
247 status = "disabled";
248 };
249
250 hscif3: serial@e66a0000 {
251 compatible = "renesas,hscif-r8a77970",
252 "renesas,rcar-gen3-hscif", "renesas,hscif";
253 reg = <0 0xe66a0000 0 96>;
254 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
255 clocks = <&cpg CPG_MOD 517>,
256 <&cpg CPG_CORE 9>,
257 <&scif_clk>;
258 clock-names = "fck", "brg_int", "scif_clk";
259 dmas = <&dmac1 0x37>, <&dmac1 0x36>,
260 <&dmac2 0x37>, <&dmac2 0x36>;
261 dma-names = "tx", "rx", "tx", "rx";
262 power-domains = <&sysc 32>;
263 resets = <&cpg 517>;
264 status = "disabled";
265 };
266
267 scif0: serial@e6e60000 {
268 compatible = "renesas,scif-r8a77970",
269 "renesas,rcar-gen3-scif",
270 "renesas,scif";
271 reg = <0 0xe6e60000 0 64>;
272 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
273 clocks = <&cpg CPG_MOD 207>,
274 <&cpg CPG_CORE 9>,
275 <&scif_clk>;
276 clock-names = "fck", "brg_int", "scif_clk";
277 dmas = <&dmac1 0x51>, <&dmac1 0x50>,
278 <&dmac2 0x51>, <&dmac2 0x50>;
279 dma-names = "tx", "rx", "tx", "rx";
280 power-domains = <&sysc 32>;
281 resets = <&cpg 207>;
282 status = "disabled";
283 };
284
285 scif1: serial@e6e68000 {
286 compatible = "renesas,scif-r8a77970",
287 "renesas,rcar-gen3-scif",
288 "renesas,scif";
289 reg = <0 0xe6e68000 0 64>;
290 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
291 clocks = <&cpg CPG_MOD 206>,
292 <&cpg CPG_CORE 9>,
293 <&scif_clk>;
294 clock-names = "fck", "brg_int", "scif_clk";
295 dmas = <&dmac1 0x53>, <&dmac1 0x52>,
296 <&dmac2 0x53>, <&dmac2 0x52>;
297 dma-names = "tx", "rx", "tx", "rx";
298 power-domains = <&sysc 32>;
299 resets = <&cpg 206>;
300 status = "disabled";
301 };
302
303 scif3: serial@e6c50000 {
304 compatible = "renesas,scif-r8a77970",
305 "renesas,rcar-gen3-scif",
306 "renesas,scif";
307 reg = <0 0xe6c50000 0 64>;
308 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
309 clocks = <&cpg CPG_MOD 204>,
310 <&cpg CPG_CORE 9>,
311 <&scif_clk>;
312 clock-names = "fck", "brg_int", "scif_clk";
313 dmas = <&dmac1 0x57>, <&dmac1 0x56>,
314 <&dmac2 0x57>, <&dmac2 0x56>;
315 dma-names = "tx", "rx", "tx", "rx";
316 power-domains = <&sysc 32>;
317 resets = <&cpg 204>;
318 status = "disabled";
319 };
320
321 scif4: serial@e6c40000 {
322 compatible = "renesas,scif-r8a77970",
323 "renesas,rcar-gen3-scif", "renesas,scif";
324 reg = <0 0xe6c40000 0 64>;
325 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
326 clocks = <&cpg CPG_MOD 203>,
327 <&cpg CPG_CORE 9>,
328 <&scif_clk>;
329 clock-names = "fck", "brg_int", "scif_clk";
330 dmas = <&dmac1 0x59>, <&dmac1 0x58>,
331 <&dmac2 0x59>, <&dmac2 0x58>;
332 dma-names = "tx", "rx", "tx", "rx";
333 power-domains = <&sysc 32>;
334 resets = <&cpg 203>;
335 status = "disabled";
336 };
337
338 avb: ethernet@e6800000 {
339 compatible = "renesas,etheravb-r8a77970",
340 "renesas,etheravb-rcar-gen3";
341 reg = <0 0xe6800000 0 0x800>, <0 0xe6a00000 0 0x10000>;
342 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
343 <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
344 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
345 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
346 <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
347 <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
348 <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
349 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
350 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
351 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
352 <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
353 <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,
354 <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
355 <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
356 <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
357 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
358 <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
359 <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
360 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
361 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
362 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
363 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
364 <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
365 <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
366 <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
367 interrupt-names = "ch0", "ch1", "ch2", "ch3",
368 "ch4", "ch5", "ch6", "ch7",
369 "ch8", "ch9", "ch10", "ch11",
370 "ch12", "ch13", "ch14", "ch15",
371 "ch16", "ch17", "ch18", "ch19",
372 "ch20", "ch21", "ch22", "ch23",
373 "ch24";
374 clocks = <&cpg CPG_MOD 812>;
375 power-domains = <&sysc 32>;
376 resets = <&cpg 812>;
377 phy-mode = "rgmii-id";
378 #address-cells = <1>;
379 #size-cells = <0>;
380 };
381 };
382};
diff --git a/arch/arm64/boot/dts/renesas/r8a77995-draak.dts b/arch/arm64/boot/dts/renesas/r8a77995-draak.dts
index d144370051d5..09de73b11db8 100644
--- a/arch/arm64/boot/dts/renesas/r8a77995-draak.dts
+++ b/arch/arm64/boot/dts/renesas/r8a77995-draak.dts
@@ -11,6 +11,7 @@
11 11
12/dts-v1/; 12/dts-v1/;
13#include "r8a77995.dtsi" 13#include "r8a77995.dtsi"
14#include <dt-bindings/gpio/gpio.h>
14 15
15/ { 16/ {
16 model = "Renesas Draak board based on r8a77995"; 17 model = "Renesas Draak board based on r8a77995";
@@ -18,6 +19,7 @@
18 19
19 aliases { 20 aliases {
20 serial0 = &scif2; 21 serial0 = &scif2;
22 ethernet0 = &avb;
21 }; 23 };
22 24
23 chosen { 25 chosen {
@@ -36,7 +38,83 @@
36 clock-frequency = <48000000>; 38 clock-frequency = <48000000>;
37}; 39};
38 40
41&pfc {
42 avb0_pins: avb {
43 mux {
44 groups = "avb0_link", "avb0_mdc", "avb0_mii";
45 function = "avb0";
46 };
47 };
48
49 pwm0_pins: pwm0 {
50 groups = "pwm0_c";
51 function = "pwm0";
52 };
53
54 pwm1_pins: pwm1 {
55 groups = "pwm1_c";
56 function = "pwm1";
57 };
58
59 scif2_pins: scif2 {
60 groups = "scif2_data";
61 function = "scif2";
62 };
63
64 usb0_pins: usb0 {
65 groups = "usb0";
66 function = "usb0";
67 };
68};
69
70&ehci0 {
71 status = "okay";
72};
73
74&ohci0 {
75 status = "okay";
76};
77
78&avb {
79 pinctrl-0 = <&avb0_pins>;
80 pinctrl-names = "default";
81 renesas,no-ether-link;
82 phy-handle = <&phy0>;
83 status = "okay";
84
85 phy0: ethernet-phy@0 {
86 rxc-skew-ps = <1500>;
87 reg = <0>;
88 interrupt-parent = <&gpio5>;
89 interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
90 };
91};
92
39&scif2 { 93&scif2 {
94 pinctrl-0 = <&scif2_pins>;
95 pinctrl-names = "default";
96
97 status = "okay";
98};
99
100&usb2_phy0 {
101 pinctrl-0 = <&usb0_pins>;
102 pinctrl-names = "default";
103
104 status = "okay";
105};
106
107&pwm0 {
108 pinctrl-0 = <&pwm0_pins>;
109 pinctrl-names = "default";
110
111 status = "okay";
112};
113
114&pwm1 {
115 pinctrl-0 = <&pwm1_pins>;
116 pinctrl-names = "default";
117
40 status = "okay"; 118 status = "okay";
41}; 119};
42 120
diff --git a/arch/arm64/boot/dts/renesas/r8a77995.dtsi b/arch/arm64/boot/dts/renesas/r8a77995.dtsi
index d0f95b78c022..788e3afae6e3 100644
--- a/arch/arm64/boot/dts/renesas/r8a77995.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77995.dtsi
@@ -9,8 +9,9 @@
9 * kind, whether express or implied. 9 * kind, whether express or implied.
10 */ 10 */
11 11
12#include <dt-bindings/clock/renesas-cpg-mssr.h> 12#include <dt-bindings/clock/r8a77995-cpg-mssr.h>
13#include <dt-bindings/interrupt-controller/arm-gic.h> 13#include <dt-bindings/interrupt-controller/arm-gic.h>
14#include <dt-bindings/power/r8a77995-sysc.h>
14 15
15/ { 16/ {
16 compatible = "renesas,r8a77995"; 17 compatible = "renesas,r8a77995";
@@ -30,14 +31,14 @@
30 compatible = "arm,cortex-a53", "arm,armv8"; 31 compatible = "arm,cortex-a53", "arm,armv8";
31 reg = <0x0>; 32 reg = <0x0>;
32 device_type = "cpu"; 33 device_type = "cpu";
33 power-domains = <&sysc 5>; 34 power-domains = <&sysc R8A77995_PD_CA53_CPU0>;
34 next-level-cache = <&L2_CA53>; 35 next-level-cache = <&L2_CA53>;
35 enable-method = "psci"; 36 enable-method = "psci";
36 }; 37 };
37 38
38 L2_CA53: cache-controller-1 { 39 L2_CA53: cache-controller-1 {
39 compatible = "cache"; 40 compatible = "cache";
40 power-domains = <&sysc 21>; 41 power-domains = <&sysc R8A77995_PD_CA53_SCU>;
41 cache-unified; 42 cache-unified;
42 cache-level = <2>; 43 cache-level = <2>;
43 }; 44 };
@@ -76,7 +77,7 @@
76 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>; 77 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
77 clocks = <&cpg CPG_MOD 408>; 78 clocks = <&cpg CPG_MOD 408>;
78 clock-names = "clk"; 79 clock-names = "clk";
79 power-domains = <&sysc 32>; 80 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
80 resets = <&cpg 408>; 81 resets = <&cpg 408>;
81 }; 82 };
82 83
@@ -97,7 +98,7 @@
97 "renesas,rcar-gen3-wdt"; 98 "renesas,rcar-gen3-wdt";
98 reg = <0 0xe6020000 0 0x0c>; 99 reg = <0 0xe6020000 0 0x0c>;
99 clocks = <&cpg CPG_MOD 402>; 100 clocks = <&cpg CPG_MOD 402>;
100 power-domains = <&sysc 32>; 101 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
101 resets = <&cpg 402>; 102 resets = <&cpg 402>;
102 status = "disabled"; 103 status = "disabled";
103 }; 104 };
@@ -122,7 +123,7 @@
122 reg = <0 0xe6160000 0 0x0200>; 123 reg = <0 0xe6160000 0 0x0200>;
123 }; 124 };
124 125
125 pfc: pfc@e6060000 { 126 pfc: pin-controller@e6060000 {
126 compatible = "renesas,pfc-r8a77995"; 127 compatible = "renesas,pfc-r8a77995";
127 reg = <0 0xe6060000 0 0x508>; 128 reg = <0 0xe6060000 0 0x508>;
128 }; 129 };
@@ -138,18 +139,268 @@
138 #power-domain-cells = <1>; 139 #power-domain-cells = <1>;
139 }; 140 };
140 141
142 intc_ex: interrupt-controller@e61c0000 {
143 compatible = "renesas,intc-ex-r8a77995", "renesas,irqc";
144 #interrupt-cells = <2>;
145 interrupt-controller;
146 reg = <0 0xe61c0000 0 0x200>;
147 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH
148 GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH
149 GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH
150 GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH
151 GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH
152 GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
153 clocks = <&cpg CPG_MOD 407>;
154 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
155 resets = <&cpg 407>;
156 };
157
158 gpio0: gpio@e6050000 {
159 compatible = "renesas,gpio-r8a77995",
160 "renesas,rcar-gen3-gpio",
161 "renesas,gpio-rcar";
162 reg = <0 0xe6050000 0 0x50>;
163 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
164 #gpio-cells = <2>;
165 gpio-controller;
166 gpio-ranges = <&pfc 0 0 9>;
167 #interrupt-cells = <2>;
168 interrupt-controller;
169 clocks = <&cpg CPG_MOD 912>;
170 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
171 resets = <&cpg 912>;
172 };
173
174 gpio1: gpio@e6051000 {
175 compatible = "renesas,gpio-r8a77995",
176 "renesas,rcar-gen3-gpio",
177 "renesas,gpio-rcar";
178 reg = <0 0xe6051000 0 0x50>;
179 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
180 #gpio-cells = <2>;
181 gpio-controller;
182 gpio-ranges = <&pfc 0 32 32>;
183 #interrupt-cells = <2>;
184 interrupt-controller;
185 clocks = <&cpg CPG_MOD 911>;
186 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
187 resets = <&cpg 911>;
188 };
189
190 gpio2: gpio@e6052000 {
191 compatible = "renesas,gpio-r8a77995",
192 "renesas,rcar-gen3-gpio",
193 "renesas,gpio-rcar";
194 reg = <0 0xe6052000 0 0x50>;
195 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
196 #gpio-cells = <2>;
197 gpio-controller;
198 gpio-ranges = <&pfc 0 64 32>;
199 #interrupt-cells = <2>;
200 interrupt-controller;
201 clocks = <&cpg CPG_MOD 910>;
202 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
203 resets = <&cpg 910>;
204 };
205
206 gpio3: gpio@e6053000 {
207 compatible = "renesas,gpio-r8a77995",
208 "renesas,rcar-gen3-gpio",
209 "renesas,gpio-rcar";
210 reg = <0 0xe6053000 0 0x50>;
211 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
212 #gpio-cells = <2>;
213 gpio-controller;
214 gpio-ranges = <&pfc 0 96 10>;
215 #interrupt-cells = <2>;
216 interrupt-controller;
217 clocks = <&cpg CPG_MOD 909>;
218 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
219 resets = <&cpg 909>;
220 };
221
222 gpio4: gpio@e6054000 {
223 compatible = "renesas,gpio-r8a77995",
224 "renesas,rcar-gen3-gpio",
225 "renesas,gpio-rcar";
226 reg = <0 0xe6054000 0 0x50>;
227 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
228 #gpio-cells = <2>;
229 gpio-controller;
230 gpio-ranges = <&pfc 0 128 32>;
231 #interrupt-cells = <2>;
232 interrupt-controller;
233 clocks = <&cpg CPG_MOD 908>;
234 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
235 resets = <&cpg 908>;
236 };
237
238 gpio5: gpio@e6055000 {
239 compatible = "renesas,gpio-r8a77995",
240 "renesas,rcar-gen3-gpio",
241 "renesas,gpio-rcar";
242 reg = <0 0xe6055000 0 0x50>;
243 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
244 #gpio-cells = <2>;
245 gpio-controller;
246 gpio-ranges = <&pfc 0 160 21>;
247 #interrupt-cells = <2>;
248 interrupt-controller;
249 clocks = <&cpg CPG_MOD 907>;
250 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
251 resets = <&cpg 907>;
252 };
253
254 gpio6: gpio@e6055400 {
255 compatible = "renesas,gpio-r8a77995",
256 "renesas,rcar-gen3-gpio",
257 "renesas,gpio-rcar";
258 reg = <0 0xe6055400 0 0x50>;
259 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
260 #gpio-cells = <2>;
261 gpio-controller;
262 gpio-ranges = <&pfc 0 192 14>;
263 #interrupt-cells = <2>;
264 interrupt-controller;
265 clocks = <&cpg CPG_MOD 906>;
266 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
267 resets = <&cpg 906>;
268 };
269
270 avb: ethernet@e6800000 {
271 compatible = "renesas,etheravb-r8a77995",
272 "renesas,etheravb-rcar-gen3";
273 reg = <0 0xe6800000 0 0x800>, <0 0xe6a00000 0 0x10000>;
274 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
275 <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
276 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
277 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
278 <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
279 <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
280 <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
281 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
282 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
283 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
284 <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
285 <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,
286 <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
287 <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
288 <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
289 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
290 <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
291 <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
292 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
293 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
294 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
295 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
296 <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
297 <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
298 <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
299 interrupt-names = "ch0", "ch1", "ch2", "ch3",
300 "ch4", "ch5", "ch6", "ch7",
301 "ch8", "ch9", "ch10", "ch11",
302 "ch12", "ch13", "ch14", "ch15",
303 "ch16", "ch17", "ch18", "ch19",
304 "ch20", "ch21", "ch22", "ch23",
305 "ch24";
306 clocks = <&cpg CPG_MOD 812>;
307 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
308 resets = <&cpg 812>;
309 phy-mode = "rgmii-txid";
310 #address-cells = <1>;
311 #size-cells = <0>;
312 status = "disabled";
313 };
314
141 scif2: serial@e6e88000 { 315 scif2: serial@e6e88000 {
142 compatible = "renesas,scif-r8a77995", 316 compatible = "renesas,scif-r8a77995",
143 "renesas,rcar-gen3-scif", "renesas,scif"; 317 "renesas,rcar-gen3-scif", "renesas,scif";
144 reg = <0 0xe6e88000 0 64>; 318 reg = <0 0xe6e88000 0 64>;
145 interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; 319 interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
146 clocks = <&cpg CPG_MOD 310>, 320 clocks = <&cpg CPG_MOD 310>,
147 <&cpg CPG_CORE 16>, 321 <&cpg CPG_CORE R8A77995_CLK_S3D1C>,
148 <&scif_clk>; 322 <&scif_clk>;
149 clock-names = "fck", "brg_int", "scif_clk"; 323 clock-names = "fck", "brg_int", "scif_clk";
150 power-domains = <&sysc 32>; 324 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
151 resets = <&cpg 310>; 325 resets = <&cpg 310>;
152 status = "disabled"; 326 status = "disabled";
153 }; 327 };
328
329 pwm0: pwm@e6e30000 {
330 compatible = "renesas,pwm-r8a77995", "renesas,pwm-rcar";
331 reg = <0 0xe6e30000 0 0x8>;
332 #pwm-cells = <2>;
333 clocks = <&cpg CPG_MOD 523>;
334 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
335 resets = <&cpg 523>;
336 status = "disabled";
337 };
338
339 pwm1: pwm@e6e31000 {
340 compatible = "renesas,pwm-r8a77995", "renesas,pwm-rcar";
341 reg = <0 0xe6e31000 0 0x8>;
342 #pwm-cells = <2>;
343 clocks = <&cpg CPG_MOD 523>;
344 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
345 resets = <&cpg 523>;
346 status = "disabled";
347 };
348
349 pwm2: pwm@e6e32000 {
350 compatible = "renesas,pwm-r8a77995", "renesas,pwm-rcar";
351 reg = <0 0xe6e32000 0 0x8>;
352 #pwm-cells = <2>;
353 clocks = <&cpg CPG_MOD 523>;
354 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
355 resets = <&cpg 523>;
356 status = "disabled";
357 };
358
359 pwm3: pwm@e6e33000 {
360 compatible = "renesas,pwm-r8a77995", "renesas,pwm-rcar";
361 reg = <0 0xe6e33000 0 0x8>;
362 #pwm-cells = <2>;
363 clocks = <&cpg CPG_MOD 523>;
364 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
365 resets = <&cpg 523>;
366 status = "disabled";
367 };
368
369 ehci0: usb@ee080100 {
370 compatible = "generic-ehci";
371 reg = <0 0xee080100 0 0x100>;
372 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
373 clocks = <&cpg CPG_MOD 703>;
374 phys = <&usb2_phy0>;
375 phy-names = "usb";
376 companion = <&ohci0>;
377 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
378 resets = <&cpg 703>;
379 status = "disabled";
380 };
381
382 ohci0: usb@ee080000 {
383 compatible = "generic-ohci";
384 reg = <0 0xee080000 0 0x100>;
385 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
386 clocks = <&cpg CPG_MOD 703>;
387 phys = <&usb2_phy0>;
388 phy-names = "usb";
389 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
390 resets = <&cpg 703>;
391 status = "disabled";
392 };
393
394 usb2_phy0: usb-phy@ee080200 {
395 compatible = "renesas,usb2-phy-r8a77995",
396 "renesas,rcar-gen3-usb2-phy";
397 reg = <0 0xee080200 0 0x700>;
398 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
399 clocks = <&cpg CPG_MOD 703>;
400 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
401 resets = <&cpg 703>;
402 #phy-cells = <0>;
403 status = "disabled";
404 };
154 }; 405 };
155}; 406};
diff --git a/arch/arm64/boot/dts/renesas/salvator-common.dtsi b/arch/arm64/boot/dts/renesas/salvator-common.dtsi
index d9d885006a8e..a298df74ca6c 100644
--- a/arch/arm64/boot/dts/renesas/salvator-common.dtsi
+++ b/arch/arm64/boot/dts/renesas/salvator-common.dtsi
@@ -52,7 +52,7 @@
52 */ 52 */
53 compatible = "fixed-clock"; 53 compatible = "fixed-clock";
54 #clock-cells = <0>; 54 #clock-cells = <0>;
55 clock-frequency = <11289600>; 55 clock-frequency = <12288000>;
56 }; 56 };
57 57
58 backlight: backlight { 58 backlight: backlight {
@@ -282,6 +282,7 @@
282}; 282};
283 283
284&ehci0 { 284&ehci0 {
285 dr_mode = "otg";
285 status = "okay"; 286 status = "okay";
286}; 287};
287 288
@@ -294,6 +295,7 @@
294}; 295};
295 296
296&hsusb { 297&hsusb {
298 dr_mode = "otg";
297 status = "okay"; 299 status = "okay";
298}; 300};
299 301
@@ -356,6 +358,7 @@
356}; 358};
357 359
358&ohci0 { 360&ohci0 {
361 dr_mode = "otg";
359 status = "okay"; 362 status = "okay";
360}; 363};
361 364
@@ -381,8 +384,7 @@
381 384
382 avb_pins: avb { 385 avb_pins: avb {
383 mux { 386 mux {
384 groups = "avb_link", "avb_phy_int", "avb_mdc", 387 groups = "avb_link", "avb_mdc", "avb_mii";
385 "avb_mii";
386 function = "avb"; 388 function = "avb";
387 }; 389 };
388 390
@@ -496,6 +498,11 @@
496 bias-pull-down; 498 bias-pull-down;
497 }; 499 };
498 }; 500 };
501
502 usb30_pins: usb30 {
503 groups = "usb30";
504 function = "usb30";
505 };
499}; 506};
500 507
501&pwm1 { 508&pwm1 {
@@ -631,5 +638,8 @@
631}; 638};
632 639
633&xhci0 { 640&xhci0 {
641 pinctrl-0 = <&usb30_pins>;
642 pinctrl-names = "default";
643
634 status = "okay"; 644 status = "okay";
635}; 645};
diff --git a/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi b/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi
new file mode 100644
index 000000000000..657ad1041965
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi
@@ -0,0 +1,169 @@
1/*
2 * Device Tree Source for the Kingfisher (ULCB extension) board
3 *
4 * Copyright (C) 2017 Renesas Electronics Corp.
5 * Copyright (C) 2017 Cogent Embedded, Inc.
6 *
7 * This file is licensed under the terms of the GNU General Public License
8 * version 2. This program is licensed "as is" without any warranty of any
9 * kind, whether express or implied.
10 */
11
12/ {
13 aliases {
14 serial1 = &hscif0;
15 serial2 = &scif1;
16 };
17};
18
19&can0 {
20 pinctrl-0 = <&can0_pins>;
21 pinctrl-names = "default";
22 status = "okay";
23};
24
25&can1 {
26 pinctrl-0 = <&can1_pins>;
27 pinctrl-names = "default";
28 status = "okay";
29};
30
31&ehci0 {
32 status = "okay";
33};
34
35&hscif0 {
36 pinctrl-0 = <&hscif0_pins>;
37 pinctrl-names = "default";
38 uart-has-rtscts;
39
40 status = "okay";
41};
42
43&hsusb {
44 status = "okay";
45};
46
47&i2c2 {
48 gpio_exp_74: gpio@74 {
49 compatible = "ti,tca9539";
50 reg = <0x74>;
51 gpio-controller;
52 #gpio-cells = <2>;
53 interrupt-controller;
54 interrupt-parent = <&gpio6>;
55 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
56
57 hub_pwen {
58 gpio-hog;
59 gpios = <6 GPIO_ACTIVE_HIGH>;
60 output-high;
61 line-name = "HUB pwen";
62 };
63
64 hub_rst {
65 gpio-hog;
66 gpios = <7 GPIO_ACTIVE_HIGH>;
67 output-high;
68 line-name = "HUB rst";
69 };
70 };
71
72 gpio_exp_75: gpio@75 {
73 compatible = "ti,tca9539";
74 reg = <0x75>;
75 gpio-controller;
76 #gpio-cells = <2>;
77 interrupt-controller;
78 interrupt-parent = <&gpio6>;
79 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
80 };
81
82 i2cswitch2: i2c-switch@71 {
83 compatible = "nxp,pca9548";
84 #address-cells = <1>;
85 #size-cells = <0>;
86 reg = <0x71>;
87 reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
88 };
89};
90
91&i2c4 {
92 gpio_exp_76: gpio@76 {
93 compatible = "ti,tca9539";
94 reg = <0x76>;
95 gpio-controller;
96 #gpio-cells = <2>;
97 interrupt-controller;
98 interrupt-parent = <&gpio7>;
99 interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
100 };
101
102 gpio_exp_77: gpio@77 {
103 compatible = "ti,tca9539";
104 reg = <0x77>;
105 gpio-controller;
106 #gpio-cells = <2>;
107 interrupt-controller;
108 interrupt-parent = <&gpio5>;
109 interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
110 };
111
112 i2cswitch4: i2c-switch@71 {
113 compatible = "nxp,pca9548";
114 #address-cells = <1>;
115 #size-cells = <0>;
116 reg = <0x71>;
117 reset-gpios= <&gpio3 15 GPIO_ACTIVE_LOW>;
118 };
119};
120
121&ohci0 {
122 status = "okay";
123};
124
125&pcie_bus_clk {
126 clock-frequency = <100000000>;
127};
128
129&pciec0 {
130 status = "okay";
131};
132
133&pciec1 {
134 status = "okay";
135};
136
137&pfc {
138 can0_pins: can0 {
139 groups = "can0_data_a";
140 function = "can0";
141 };
142
143 can1_pins: can1 {
144 groups = "can1_data";
145 function = "can1";
146 };
147
148 hscif0_pins: hscif0 {
149 groups = "hscif0_data", "hscif0_ctrl";
150 function = "hscif0";
151 };
152
153 scif1_pins: scif1 {
154 groups = "scif1_data_b", "scif1_ctrl";
155 function = "scif1";
156 };
157};
158
159&scif1 {
160 pinctrl-0 = <&scif1_pins>;
161 pinctrl-names = "default";
162 uart-has-rtscts;
163
164 status = "okay";
165};
166
167&xhci0 {
168 status = "okay";
169};
diff --git a/arch/arm64/boot/dts/renesas/ulcb.dtsi b/arch/arm64/boot/dts/renesas/ulcb.dtsi
index 1b868df2393f..0d85b315ce71 100644
--- a/arch/arm64/boot/dts/renesas/ulcb.dtsi
+++ b/arch/arm64/boot/dts/renesas/ulcb.dtsi
@@ -31,7 +31,7 @@
31 */ 31 */
32 compatible = "fixed-clock"; 32 compatible = "fixed-clock";
33 #clock-cells = <0>; 33 #clock-cells = <0>;
34 clock-frequency = <11289600>; 34 clock-frequency = <12288000>;
35 }; 35 };
36 36
37 hdmi0-out { 37 hdmi0-out {
@@ -157,6 +157,10 @@
157 }; 157 };
158}; 158};
159 159
160&du {
161 status = "okay";
162};
163
160&ehci1 { 164&ehci1 {
161 status = "okay"; 165 status = "okay";
162}; 166};
@@ -250,8 +254,7 @@
250 254
251 avb_pins: avb { 255 avb_pins: avb {
252 mux { 256 mux {
253 groups = "avb_link", "avb_phy_int", "avb_mdc", 257 groups = "avb_link", "avb_mdc", "avb_mii";
254 "avb_mii";
255 function = "avb"; 258 function = "avb";
256 }; 259 };
257 260
diff --git a/arch/arm64/boot/dts/rockchip/rk3328-evb.dts b/arch/arm64/boot/dts/rockchip/rk3328-evb.dts
index 8e6a65431756..3d551e3e6c23 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328-evb.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3328-evb.dts
@@ -60,6 +60,31 @@
60 regulator-max-microvolt = <12000000>; 60 regulator-max-microvolt = <12000000>;
61 }; 61 };
62 62
63 sdio_pwrseq: sdio-pwrseq {
64 compatible = "mmc-pwrseq-simple";
65 pinctrl-names = "default";
66 pinctrl-0 = <&wifi_enable_h>;
67
68 /*
69 * On the module itself this is one of these (depending
70 * on the actual card populated):
71 * - SDIO_RESET_L_WL_REG_ON
72 * - PDN (power down when low)
73 */
74 reset-gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
75 };
76
77 vcc_sd: sdmmc-regulator {
78 compatible = "regulator-fixed";
79 gpio = <&gpio0 30 GPIO_ACTIVE_LOW>;
80 pinctrl-names = "default";
81 pinctrl-0 = <&sdmmc0m1_gpio>;
82 regulator-name = "vcc_sd";
83 regulator-min-microvolt = <3300000>;
84 regulator-max-microvolt = <3300000>;
85 vin-supply = <&vcc_io>;
86 };
87
63 vcc_sys: vcc-sys { 88 vcc_sys: vcc-sys {
64 compatible = "regulator-fixed"; 89 compatible = "regulator-fixed";
65 regulator-name = "vcc_sys"; 90 regulator-name = "vcc_sys";
@@ -78,6 +103,19 @@
78 }; 103 };
79}; 104};
80 105
106&cpu0 {
107 cpu-supply = <&vdd_arm>;
108};
109
110&emmc {
111 bus-width = <8>;
112 cap-mmc-highspeed;
113 non-removable;
114 pinctrl-names = "default";
115 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
116 status = "okay";
117};
118
81&gmac2phy { 119&gmac2phy {
82 phy-supply = <&vcc_phy>; 120 phy-supply = <&vcc_phy>;
83 clock_in_out = "output"; 121 clock_in_out = "output";
@@ -85,7 +123,7 @@
85 assigned-clock-rate = <50000000>; 123 assigned-clock-rate = <50000000>;
86 assigned-clocks = <&cru SCLK_MAC2PHY>; 124 assigned-clocks = <&cru SCLK_MAC2PHY>;
87 assigned-clock-parents = <&cru SCLK_MAC2PHY_SRC>; 125 assigned-clock-parents = <&cru SCLK_MAC2PHY_SRC>;
88 status = "okay"; 126
89}; 127};
90 128
91&i2c1 { 129&i2c1 {
@@ -203,6 +241,38 @@
203 rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>; 241 rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
204 }; 242 };
205 }; 243 };
244
245 sdio-pwrseq {
246 wifi_enable_h: wifi-enable-h {
247 rockchip,pins =
248 <1 18 RK_FUNC_GPIO &pcfg_pull_none>;
249 };
250 };
251};
252
253&sdio {
254 bus-width = <4>;
255 cap-sd-highspeed;
256 cap-sdio-irq;
257 keep-power-in-suspend;
258 max-frequency = <150000000>;
259 mmc-pwrseq = <&sdio_pwrseq>;
260 non-removable;
261 pinctrl-names = "default";
262 pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
263 status = "okay";
264};
265
266&sdmmc {
267 bus-width = <4>;
268 cap-mmc-highspeed;
269 cap-sd-highspeed;
270 disable-wp;
271 max-frequency = <150000000>;
272 pinctrl-names = "default";
273 pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
274 vmmc-supply = <&vcc_sd>;
275 status = "okay";
206}; 276};
207 277
208&tsadc { 278&tsadc {
diff --git a/arch/arm64/boot/dts/rockchip/rk3368.dtsi b/arch/arm64/boot/dts/rockchip/rk3368.dtsi
index 1070c8264c13..aa4d07046a7b 100644
--- a/arch/arm64/boot/dts/rockchip/rk3368.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3368.dtsi
@@ -786,6 +786,22 @@
786 status = "disabled"; 786 status = "disabled";
787 }; 787 };
788 788
789 efuse256: efuse@ffb00000 {
790 compatible = "rockchip,rk3368-efuse";
791 reg = <0x0 0xffb00000 0x0 0x20>;
792 #address-cells = <1>;
793 #size-cells = <1>;
794 clocks = <&cru PCLK_EFUSE256>;
795 clock-names = "pclk_efuse";
796
797 cpu_leakage: cpu-leakage@17 {
798 reg = <0x17 0x1>;
799 };
800 temp_adjust: temp-adjust@1f {
801 reg = <0x1f 0x1>;
802 };
803 };
804
789 gic: interrupt-controller@ffb71000 { 805 gic: interrupt-controller@ffb71000 {
790 compatible = "arm,gic-400"; 806 compatible = "arm,gic-400";
791 interrupt-controller; 807 interrupt-controller;
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
index fef82274a39d..4f28628aa091 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
@@ -49,6 +49,10 @@
49 model = "Firefly-RK3399 Board"; 49 model = "Firefly-RK3399 Board";
50 compatible = "firefly,firefly-rk3399", "rockchip,rk3399"; 50 compatible = "firefly,firefly-rk3399", "rockchip,rk3399";
51 51
52 chosen {
53 stdout-path = "serial2:1500000n8";
54 };
55
52 backlight: backlight { 56 backlight: backlight {
53 compatible = "pwm-backlight"; 57 compatible = "pwm-backlight";
54 enable-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; 58 enable-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
@@ -255,6 +259,13 @@
255 status = "okay"; 259 status = "okay";
256}; 260};
257 261
262&hdmi {
263 ddc-i2c-bus = <&i2c3>;
264 pinctrl-names = "default";
265 pinctrl-0 = <&hdmi_cec>;
266 status = "okay";
267};
268
258&i2c0 { 269&i2c0 {
259 clock-frequency = <400000>; 270 clock-frequency = <400000>;
260 i2c-scl-rising-time-ns = <168>; 271 i2c-scl-rising-time-ns = <168>;
@@ -728,3 +739,19 @@
728 status = "okay"; 739 status = "okay";
729 dr_mode = "host"; 740 dr_mode = "host";
730}; 741};
742
743&vopb {
744 status = "okay";
745};
746
747&vopb_mmu {
748 status = "okay";
749};
750
751&vopl {
752 status = "okay";
753};
754
755&vopl_mmu {
756 status = "okay";
757};
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts b/arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts
index a3d3cea7dc4f..0384e3121f18 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts
@@ -249,6 +249,10 @@ ap_i2c_dig: &i2c2 {
249 pinctrl-0 = <&trackpad_int_l>; 249 pinctrl-0 = <&trackpad_int_l>;
250 interrupt-parent = <&gpio1>; 250 interrupt-parent = <&gpio1>;
251 interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 251 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
252 linux,gpio-keymap = <KEY_RESERVED
253 KEY_RESERVED
254 KEY_RESERVED
255 BTN_LEFT>;
252 wakeup-source; 256 wakeup-source;
253 }; 257 };
254}; 258};
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
index 199a5118b20d..5772c52fbfd3 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
@@ -514,7 +514,8 @@
514 sound { 514 sound {
515 compatible = "rockchip,rk3399-gru-sound"; 515 compatible = "rockchip,rk3399-gru-sound";
516 rockchip,cpu = <&i2s0 &i2s2>; 516 rockchip,cpu = <&i2s0 &i2s2>;
517 rockchip,codec = <&max98357a &headsetcodec &codec>; 517 rockchip,codec = <&max98357a &headsetcodec
518 &codec &wacky_spi_audio>;
518 }; 519 };
519}; 520};
520 521
diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
index ab7629c5b856..d340b58ab184 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
@@ -1204,6 +1204,17 @@
1204 status = "disabled"; 1204 status = "disabled";
1205 }; 1205 };
1206 1206
1207 rga: rga@ff680000 {
1208 compatible = "rockchip,rk3399-rga";
1209 reg = <0x0 0xff680000 0x0 0x10000>;
1210 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH 0>;
1211 clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru SCLK_RGA_CORE>;
1212 clock-names = "aclk", "hclk", "sclk";
1213 resets = <&cru SRST_RGA_CORE>, <&cru SRST_A_RGA>, <&cru SRST_H_RGA>;
1214 reset-names = "core", "axi", "ahb";
1215 power-domains = <&power RK3399_PD_RGA>;
1216 };
1217
1207 efuse0: efuse@ff690000 { 1218 efuse0: efuse@ff690000 {
1208 compatible = "rockchip,rk3399-efuse"; 1219 compatible = "rockchip,rk3399-efuse";
1209 reg = <0x0 0xff690000 0x0 0x80>; 1220 reg = <0x0 0xff690000 0x0 0x80>;
@@ -1601,8 +1612,12 @@
1601 compatible = "rockchip,rk3399-dw-hdmi"; 1612 compatible = "rockchip,rk3399-dw-hdmi";
1602 reg = <0x0 0xff940000 0x0 0x20000>; 1613 reg = <0x0 0xff940000 0x0 0x20000>;
1603 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH 0>; 1614 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH 0>;
1604 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_SFR>, <&cru PLL_VPLL>, <&cru PCLK_VIO_GRF>; 1615 clocks = <&cru PCLK_HDMI_CTRL>,
1605 clock-names = "iahb", "isfr", "vpll", "grf"; 1616 <&cru SCLK_HDMI_SFR>,
1617 <&cru PLL_VPLL>,
1618 <&cru PCLK_VIO_GRF>,
1619 <&cru SCLK_HDMI_CEC>;
1620 clock-names = "iahb", "isfr", "vpll", "grf", "cec";
1606 power-domains = <&power RK3399_PD_HDCP>; 1621 power-domains = <&power RK3399_PD_HDCP>;
1607 reg-io-width = <4>; 1622 reg-io-width = <4>;
1608 rockchip,grf = <&grf>; 1623 rockchip,grf = <&grf>;
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld11-ref.dts b/arch/arm64/boot/dts/socionext/uniphier-ld11-ref.dts
index ffb473ad2e0f..dd7193acc7df 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-ld11-ref.dts
+++ b/arch/arm64/boot/dts/socionext/uniphier-ld11-ref.dts
@@ -40,13 +40,22 @@
40}; 40};
41 41
42&ethsc { 42&ethsc {
43 interrupts = <0 48 4>; 43 interrupt-parent = <&gpio>;
44 interrupts = <0 8>;
44}; 45};
45 46
46&serial0 { 47&serial0 {
47 status = "okay"; 48 status = "okay";
48}; 49};
49 50
51&gpio {
52 xirq0 {
53 gpio-hog;
54 gpios = <120 0>;
55 input;
56 };
57};
58
50&i2c0 { 59&i2c0 {
51 status = "okay"; 60 status = "okay";
52}; 61};
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi b/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi
index 09c429cb6d61..1c63d0ab8a58 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi
+++ b/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi
@@ -7,6 +7,8 @@
7 * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 7 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
8 */ 8 */
9 9
10#include <dt-bindings/gpio/gpio.h>
11
10/memreserve/ 0x80000000 0x02000000; 12/memreserve/ 0x80000000 0x02000000;
11 13
12/ { 14/ {
@@ -49,7 +51,7 @@
49 }; 51 };
50 }; 52 };
51 53
52 cluster0_opp: opp_table { 54 cluster0_opp: opp-table {
53 compatible = "operating-points-v2"; 55 compatible = "operating-points-v2";
54 opp-shared; 56 opp-shared;
55 57
@@ -96,6 +98,11 @@
96 }; 98 };
97 }; 99 };
98 100
101 emmc_pwrseq: emmc-pwrseq {
102 compatible = "mmc-pwrseq-emmc";
103 reset-gpios = <&gpio 26 GPIO_ACTIVE_LOW>;
104 };
105
99 timer { 106 timer {
100 compatible = "arm,armv8-timer"; 107 compatible = "arm,armv8-timer";
101 interrupts = <1 13 4>, 108 interrupts = <1 13 4>,
@@ -118,6 +125,7 @@
118 pinctrl-names = "default"; 125 pinctrl-names = "default";
119 pinctrl-0 = <&pinctrl_uart0>; 126 pinctrl-0 = <&pinctrl_uart0>;
120 clocks = <&peri_clk 0>; 127 clocks = <&peri_clk 0>;
128 resets = <&peri_rst 0>;
121 }; 129 };
122 130
123 serial1: serial@54006900 { 131 serial1: serial@54006900 {
@@ -128,6 +136,7 @@
128 pinctrl-names = "default"; 136 pinctrl-names = "default";
129 pinctrl-0 = <&pinctrl_uart1>; 137 pinctrl-0 = <&pinctrl_uart1>;
130 clocks = <&peri_clk 1>; 138 clocks = <&peri_clk 1>;
139 resets = <&peri_rst 1>;
131 }; 140 };
132 141
133 serial2: serial@54006a00 { 142 serial2: serial@54006a00 {
@@ -138,6 +147,7 @@
138 pinctrl-names = "default"; 147 pinctrl-names = "default";
139 pinctrl-0 = <&pinctrl_uart2>; 148 pinctrl-0 = <&pinctrl_uart2>;
140 clocks = <&peri_clk 2>; 149 clocks = <&peri_clk 2>;
150 resets = <&peri_rst 2>;
141 }; 151 };
142 152
143 serial3: serial@54006b00 { 153 serial3: serial@54006b00 {
@@ -148,6 +158,32 @@
148 pinctrl-names = "default"; 158 pinctrl-names = "default";
149 pinctrl-0 = <&pinctrl_uart3>; 159 pinctrl-0 = <&pinctrl_uart3>;
150 clocks = <&peri_clk 3>; 160 clocks = <&peri_clk 3>;
161 resets = <&peri_rst 3>;
162 };
163
164 gpio: gpio@55000000 {
165 compatible = "socionext,uniphier-gpio";
166 reg = <0x55000000 0x200>;
167 interrupt-parent = <&aidet>;
168 interrupt-controller;
169 #interrupt-cells = <2>;
170 gpio-controller;
171 #gpio-cells = <2>;
172 gpio-ranges = <&pinctrl 0 0 0>,
173 <&pinctrl 43 0 0>,
174 <&pinctrl 51 0 0>,
175 <&pinctrl 96 0 0>,
176 <&pinctrl 160 0 0>,
177 <&pinctrl 184 0 0>;
178 gpio-ranges-group-names = "gpio_range0",
179 "gpio_range1",
180 "gpio_range2",
181 "gpio_range3",
182 "gpio_range4",
183 "gpio_range5";
184 ngpios = <200>;
185 socionext,interrupt-ranges = <0 48 16>, <16 154 5>,
186 <21 217 3>;
151 }; 187 };
152 188
153 adamv@57920000 { 189 adamv@57920000 {
@@ -171,6 +207,7 @@
171 pinctrl-names = "default"; 207 pinctrl-names = "default";
172 pinctrl-0 = <&pinctrl_i2c0>; 208 pinctrl-0 = <&pinctrl_i2c0>;
173 clocks = <&peri_clk 4>; 209 clocks = <&peri_clk 4>;
210 resets = <&peri_rst 4>;
174 clock-frequency = <100000>; 211 clock-frequency = <100000>;
175 }; 212 };
176 213
@@ -184,6 +221,7 @@
184 pinctrl-names = "default"; 221 pinctrl-names = "default";
185 pinctrl-0 = <&pinctrl_i2c1>; 222 pinctrl-0 = <&pinctrl_i2c1>;
186 clocks = <&peri_clk 5>; 223 clocks = <&peri_clk 5>;
224 resets = <&peri_rst 5>;
187 clock-frequency = <100000>; 225 clock-frequency = <100000>;
188 }; 226 };
189 227
@@ -194,6 +232,7 @@
194 #size-cells = <0>; 232 #size-cells = <0>;
195 interrupts = <0 43 4>; 233 interrupts = <0 43 4>;
196 clocks = <&peri_clk 6>; 234 clocks = <&peri_clk 6>;
235 resets = <&peri_rst 6>;
197 clock-frequency = <400000>; 236 clock-frequency = <400000>;
198 }; 237 };
199 238
@@ -207,6 +246,7 @@
207 pinctrl-names = "default"; 246 pinctrl-names = "default";
208 pinctrl-0 = <&pinctrl_i2c3>; 247 pinctrl-0 = <&pinctrl_i2c3>;
209 clocks = <&peri_clk 7>; 248 clocks = <&peri_clk 7>;
249 resets = <&peri_rst 7>;
210 clock-frequency = <100000>; 250 clock-frequency = <100000>;
211 }; 251 };
212 252
@@ -220,6 +260,7 @@
220 pinctrl-names = "default"; 260 pinctrl-names = "default";
221 pinctrl-0 = <&pinctrl_i2c4>; 261 pinctrl-0 = <&pinctrl_i2c4>;
222 clocks = <&peri_clk 8>; 262 clocks = <&peri_clk 8>;
263 resets = <&peri_rst 8>;
223 clock-frequency = <100000>; 264 clock-frequency = <100000>;
224 }; 265 };
225 266
@@ -230,6 +271,7 @@
230 #size-cells = <0>; 271 #size-cells = <0>;
231 interrupts = <0 25 4>; 272 interrupts = <0 25 4>;
232 clocks = <&peri_clk 9>; 273 clocks = <&peri_clk 9>;
274 resets = <&peri_rst 9>;
233 clock-frequency = <400000>; 275 clock-frequency = <400000>;
234 }; 276 };
235 277
@@ -282,9 +324,11 @@
282 pinctrl-names = "default"; 324 pinctrl-names = "default";
283 pinctrl-0 = <&pinctrl_emmc>; 325 pinctrl-0 = <&pinctrl_emmc>;
284 clocks = <&sys_clk 4>; 326 clocks = <&sys_clk 4>;
327 resets = <&sys_rst 4>;
285 bus-width = <8>; 328 bus-width = <8>;
286 mmc-ddr-1_8v; 329 mmc-ddr-1_8v;
287 mmc-hs200-1_8v; 330 mmc-hs200-1_8v;
331 mmc-pwrseq = <&emmc_pwrseq>;
288 cdns,phy-input-delay-legacy = <4>; 332 cdns,phy-input-delay-legacy = <4>;
289 cdns,phy-input-delay-mmc-highspeed = <2>; 333 cdns,phy-input-delay-mmc-highspeed = <2>;
290 cdns,phy-input-delay-mmc-ddr = <3>; 334 cdns,phy-input-delay-mmc-ddr = <3>;
@@ -358,6 +402,24 @@
358 }; 402 };
359 }; 403 };
360 404
405 soc-glue@5f900000 {
406 compatible = "socionext,uniphier-ld11-soc-glue-debug",
407 "simple-mfd";
408 #address-cells = <1>;
409 #size-cells = <1>;
410 ranges = <0 0x5f900000 0x2000>;
411
412 efuse@100 {
413 compatible = "socionext,uniphier-efuse";
414 reg = <0x100 0x28>;
415 };
416
417 efuse@200 {
418 compatible = "socionext,uniphier-efuse";
419 reg = <0x200 0x68>;
420 };
421 };
422
361 aidet: aidet@5fc20000 { 423 aidet: aidet@5fc20000 {
362 compatible = "socionext,uniphier-ld11-aidet"; 424 compatible = "socionext,uniphier-ld11-aidet";
363 reg = <0x5fc20000 0x200>; 425 reg = <0x5fc20000 0x200>;
@@ -403,6 +465,7 @@
403 pinctrl-names = "default"; 465 pinctrl-names = "default";
404 pinctrl-0 = <&pinctrl_nand>; 466 pinctrl-0 = <&pinctrl_nand>;
405 clocks = <&sys_clk 2>; 467 clocks = <&sys_clk 2>;
468 resets = <&sys_rst 2>;
406 }; 469 };
407 }; 470 };
408}; 471};
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts b/arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts
index 1ca0c8620dc5..d99e3731358c 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts
+++ b/arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts
@@ -40,13 +40,22 @@
40}; 40};
41 41
42&ethsc { 42&ethsc {
43 interrupts = <0 48 4>; 43 interrupt-parent = <&gpio>;
44 interrupts = <0 8>;
44}; 45};
45 46
46&serial0 { 47&serial0 {
47 status = "okay"; 48 status = "okay";
48}; 49};
49 50
51&gpio {
52 xirq0 {
53 gpio-hog;
54 gpios = <120 0>;
55 input;
56 };
57};
58
50&i2c0 { 59&i2c0 {
51 status = "okay"; 60 status = "okay";
52}; 61};
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi b/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi
index a29c279b6e8e..5c81070944cc 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi
+++ b/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi
@@ -7,6 +7,9 @@
7 * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 7 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
8 */ 8 */
9 9
10#include <dt-bindings/gpio/gpio.h>
11#include <dt-bindings/thermal/thermal.h>
12
10/memreserve/ 0x80000000 0x02000000; 13/memreserve/ 0x80000000 0x02000000;
11 14
12/ { 15/ {
@@ -46,6 +49,7 @@
46 clocks = <&sys_clk 32>; 49 clocks = <&sys_clk 32>;
47 enable-method = "psci"; 50 enable-method = "psci";
48 operating-points-v2 = <&cluster0_opp>; 51 operating-points-v2 = <&cluster0_opp>;
52 #cooling-cells = <2>;
49 }; 53 };
50 54
51 cpu1: cpu@1 { 55 cpu1: cpu@1 {
@@ -64,6 +68,7 @@
64 clocks = <&sys_clk 33>; 68 clocks = <&sys_clk 33>;
65 enable-method = "psci"; 69 enable-method = "psci";
66 operating-points-v2 = <&cluster1_opp>; 70 operating-points-v2 = <&cluster1_opp>;
71 #cooling-cells = <2>;
67 }; 72 };
68 73
69 cpu3: cpu@101 { 74 cpu3: cpu@101 {
@@ -76,7 +81,7 @@
76 }; 81 };
77 }; 82 };
78 83
79 cluster0_opp: opp_table0 { 84 cluster0_opp: opp-table0 {
80 compatible = "operating-points-v2"; 85 compatible = "operating-points-v2";
81 opp-shared; 86 opp-shared;
82 87
@@ -114,7 +119,7 @@
114 }; 119 };
115 }; 120 };
116 121
117 cluster1_opp: opp_table1 { 122 cluster1_opp: opp-table1 {
118 compatible = "operating-points-v2"; 123 compatible = "operating-points-v2";
119 opp-shared; 124 opp-shared;
120 125
@@ -165,6 +170,11 @@
165 }; 170 };
166 }; 171 };
167 172
173 emmc_pwrseq: emmc-pwrseq {
174 compatible = "mmc-pwrseq-emmc";
175 reset-gpios = <&gpio 26 GPIO_ACTIVE_LOW>;
176 };
177
168 timer { 178 timer {
169 compatible = "arm,armv8-timer"; 179 compatible = "arm,armv8-timer";
170 interrupts = <1 13 4>, 180 interrupts = <1 13 4>,
@@ -173,6 +183,40 @@
173 <1 10 4>; 183 <1 10 4>;
174 }; 184 };
175 185
186 thermal-zones {
187 cpu-thermal {
188 polling-delay-passive = <250>; /* 250ms */
189 polling-delay = <1000>; /* 1000ms */
190 thermal-sensors = <&pvtctl>;
191
192 trips {
193 cpu_crit: cpu-crit {
194 temperature = <110000>; /* 110C */
195 hysteresis = <2000>;
196 type = "critical";
197 };
198 cpu_alert: cpu-alert {
199 temperature = <100000>; /* 100C */
200 hysteresis = <2000>;
201 type = "passive";
202 };
203 };
204
205 cooling-maps {
206 map0 {
207 trip = <&cpu_alert>;
208 cooling-device = <&cpu0
209 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
210 };
211 map1 {
212 trip = <&cpu_alert>;
213 cooling-device = <&cpu2
214 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
215 };
216 };
217 };
218 };
219
176 soc@0 { 220 soc@0 {
177 compatible = "simple-bus"; 221 compatible = "simple-bus";
178 #address-cells = <1>; 222 #address-cells = <1>;
@@ -187,6 +231,7 @@
187 pinctrl-names = "default"; 231 pinctrl-names = "default";
188 pinctrl-0 = <&pinctrl_uart0>; 232 pinctrl-0 = <&pinctrl_uart0>;
189 clocks = <&peri_clk 0>; 233 clocks = <&peri_clk 0>;
234 resets = <&peri_rst 0>;
190 }; 235 };
191 236
192 serial1: serial@54006900 { 237 serial1: serial@54006900 {
@@ -197,6 +242,7 @@
197 pinctrl-names = "default"; 242 pinctrl-names = "default";
198 pinctrl-0 = <&pinctrl_uart1>; 243 pinctrl-0 = <&pinctrl_uart1>;
199 clocks = <&peri_clk 1>; 244 clocks = <&peri_clk 1>;
245 resets = <&peri_rst 1>;
200 }; 246 };
201 247
202 serial2: serial@54006a00 { 248 serial2: serial@54006a00 {
@@ -207,6 +253,7 @@
207 pinctrl-names = "default"; 253 pinctrl-names = "default";
208 pinctrl-0 = <&pinctrl_uart2>; 254 pinctrl-0 = <&pinctrl_uart2>;
209 clocks = <&peri_clk 2>; 255 clocks = <&peri_clk 2>;
256 resets = <&peri_rst 2>;
210 }; 257 };
211 258
212 serial3: serial@54006b00 { 259 serial3: serial@54006b00 {
@@ -217,6 +264,26 @@
217 pinctrl-names = "default"; 264 pinctrl-names = "default";
218 pinctrl-0 = <&pinctrl_uart3>; 265 pinctrl-0 = <&pinctrl_uart3>;
219 clocks = <&peri_clk 3>; 266 clocks = <&peri_clk 3>;
267 resets = <&peri_rst 3>;
268 };
269
270 gpio: gpio@55000000 {
271 compatible = "socionext,uniphier-gpio";
272 reg = <0x55000000 0x200>;
273 interrupt-parent = <&aidet>;
274 interrupt-controller;
275 #interrupt-cells = <2>;
276 gpio-controller;
277 #gpio-cells = <2>;
278 gpio-ranges = <&pinctrl 0 0 0>,
279 <&pinctrl 96 0 0>,
280 <&pinctrl 160 0 0>;
281 gpio-ranges-group-names = "gpio_range0",
282 "gpio_range1",
283 "gpio_range2";
284 ngpios = <205>;
285 socionext,interrupt-ranges = <0 48 16>, <16 154 5>,
286 <21 217 3>;
220 }; 287 };
221 288
222 adamv@57920000 { 289 adamv@57920000 {
@@ -240,6 +307,7 @@
240 pinctrl-names = "default"; 307 pinctrl-names = "default";
241 pinctrl-0 = <&pinctrl_i2c0>; 308 pinctrl-0 = <&pinctrl_i2c0>;
242 clocks = <&peri_clk 4>; 309 clocks = <&peri_clk 4>;
310 resets = <&peri_rst 4>;
243 clock-frequency = <100000>; 311 clock-frequency = <100000>;
244 }; 312 };
245 313
@@ -253,6 +321,7 @@
253 pinctrl-names = "default"; 321 pinctrl-names = "default";
254 pinctrl-0 = <&pinctrl_i2c1>; 322 pinctrl-0 = <&pinctrl_i2c1>;
255 clocks = <&peri_clk 5>; 323 clocks = <&peri_clk 5>;
324 resets = <&peri_rst 5>;
256 clock-frequency = <100000>; 325 clock-frequency = <100000>;
257 }; 326 };
258 327
@@ -263,6 +332,7 @@
263 #size-cells = <0>; 332 #size-cells = <0>;
264 interrupts = <0 43 4>; 333 interrupts = <0 43 4>;
265 clocks = <&peri_clk 6>; 334 clocks = <&peri_clk 6>;
335 resets = <&peri_rst 6>;
266 clock-frequency = <400000>; 336 clock-frequency = <400000>;
267 }; 337 };
268 338
@@ -276,6 +346,7 @@
276 pinctrl-names = "default"; 346 pinctrl-names = "default";
277 pinctrl-0 = <&pinctrl_i2c3>; 347 pinctrl-0 = <&pinctrl_i2c3>;
278 clocks = <&peri_clk 7>; 348 clocks = <&peri_clk 7>;
349 resets = <&peri_rst 7>;
279 clock-frequency = <100000>; 350 clock-frequency = <100000>;
280 }; 351 };
281 352
@@ -289,6 +360,7 @@
289 pinctrl-names = "default"; 360 pinctrl-names = "default";
290 pinctrl-0 = <&pinctrl_i2c4>; 361 pinctrl-0 = <&pinctrl_i2c4>;
291 clocks = <&peri_clk 8>; 362 clocks = <&peri_clk 8>;
363 resets = <&peri_rst 8>;
292 clock-frequency = <100000>; 364 clock-frequency = <100000>;
293 }; 365 };
294 366
@@ -299,6 +371,7 @@
299 #size-cells = <0>; 371 #size-cells = <0>;
300 interrupts = <0 25 4>; 372 interrupts = <0 25 4>;
301 clocks = <&peri_clk 9>; 373 clocks = <&peri_clk 9>;
374 resets = <&peri_rst 9>;
302 clock-frequency = <400000>; 375 clock-frequency = <400000>;
303 }; 376 };
304 377
@@ -356,9 +429,11 @@
356 pinctrl-names = "default"; 429 pinctrl-names = "default";
357 pinctrl-0 = <&pinctrl_emmc>; 430 pinctrl-0 = <&pinctrl_emmc>;
358 clocks = <&sys_clk 4>; 431 clocks = <&sys_clk 4>;
432 resets = <&sys_rst 4>;
359 bus-width = <8>; 433 bus-width = <8>;
360 mmc-ddr-1_8v; 434 mmc-ddr-1_8v;
361 mmc-hs200-1_8v; 435 mmc-hs200-1_8v;
436 mmc-pwrseq = <&emmc_pwrseq>;
362 cdns,phy-input-delay-legacy = <4>; 437 cdns,phy-input-delay-legacy = <4>;
363 cdns,phy-input-delay-mmc-highspeed = <2>; 438 cdns,phy-input-delay-mmc-highspeed = <2>;
364 cdns,phy-input-delay-mmc-ddr = <3>; 439 cdns,phy-input-delay-mmc-ddr = <3>;
@@ -376,6 +451,24 @@
376 }; 451 };
377 }; 452 };
378 453
454 soc-glue@5f900000 {
455 compatible = "socionext,uniphier-ld20-soc-glue-debug",
456 "simple-mfd";
457 #address-cells = <1>;
458 #size-cells = <1>;
459 ranges = <0 0x5f900000 0x2000>;
460
461 efuse@100 {
462 compatible = "socionext,uniphier-efuse";
463 reg = <0x100 0x28>;
464 };
465
466 efuse@200 {
467 compatible = "socionext,uniphier-efuse";
468 reg = <0x200 0x68>;
469 };
470 };
471
379 aidet: aidet@5fc20000 { 472 aidet: aidet@5fc20000 {
380 compatible = "socionext,uniphier-ld20-aidet"; 473 compatible = "socionext,uniphier-ld20-aidet";
381 reg = <0x5fc20000 0x200>; 474 reg = <0x5fc20000 0x200>;
@@ -410,6 +503,13 @@
410 watchdog { 503 watchdog {
411 compatible = "socionext,uniphier-wdt"; 504 compatible = "socionext,uniphier-wdt";
412 }; 505 };
506
507 pvtctl: pvtctl {
508 compatible = "socionext,uniphier-ld20-thermal";
509 interrupts = <0 3 4>;
510 #thermal-sensor-cells = <0>;
511 socionext,tmod-calibration = <0x0f22 0x68ee>;
512 };
413 }; 513 };
414 514
415 nand: nand@68000000 { 515 nand: nand@68000000 {
@@ -421,6 +521,7 @@
421 pinctrl-names = "default"; 521 pinctrl-names = "default";
422 pinctrl-0 = <&pinctrl_nand>; 522 pinctrl-0 = <&pinctrl_nand>;
423 clocks = <&sys_clk 2>; 523 clocks = <&sys_clk 2>;
524 resets = <&sys_rst 2>;
424 }; 525 };
425 }; 526 };
426}; 527};
diff --git a/arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts b/arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts
index d65f746a3f9d..864feeb35180 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts
+++ b/arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts
@@ -38,7 +38,8 @@
38}; 38};
39 39
40&ethsc { 40&ethsc {
41 interrupts = <0 52 4>; 41 interrupt-parent = <&gpio>;
42 interrupts = <0 8>;
42}; 43};
43 44
44&serial0 { 45&serial0 {
@@ -60,3 +61,7 @@
60&i2c3 { 61&i2c3 {
61 status = "okay"; 62 status = "okay";
62}; 63};
64
65&nand {
66 status = "okay";
67};
diff --git a/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi b/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi
index 384729fa740f..48e733136db4 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi
+++ b/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi
@@ -7,6 +7,8 @@
7 * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 7 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
8 */ 8 */
9 9
10#include <dt-bindings/gpio/gpio.h>
11
10/memreserve/ 0x80000000 0x02000000; 12/memreserve/ 0x80000000 0x02000000;
11 13
12/ { 14/ {
@@ -73,7 +75,7 @@
73 }; 75 };
74 }; 76 };
75 77
76 cluster0_opp: opp_table { 78 cluster0_opp: opp-table {
77 compatible = "operating-points-v2"; 79 compatible = "operating-points-v2";
78 opp-shared; 80 opp-shared;
79 81
@@ -124,6 +126,11 @@
124 }; 126 };
125 }; 127 };
126 128
129 emmc_pwrseq: emmc-pwrseq {
130 compatible = "mmc-pwrseq-emmc";
131 reset-gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
132 };
133
127 timer { 134 timer {
128 compatible = "arm,armv8-timer"; 135 compatible = "arm,armv8-timer";
129 interrupts = <1 13 4>, 136 interrupts = <1 13 4>,
@@ -146,6 +153,7 @@
146 pinctrl-names = "default"; 153 pinctrl-names = "default";
147 pinctrl-0 = <&pinctrl_uart0>; 154 pinctrl-0 = <&pinctrl_uart0>;
148 clocks = <&peri_clk 0>; 155 clocks = <&peri_clk 0>;
156 resets = <&peri_rst 0>;
149 }; 157 };
150 158
151 serial1: serial@54006900 { 159 serial1: serial@54006900 {
@@ -156,6 +164,7 @@
156 pinctrl-names = "default"; 164 pinctrl-names = "default";
157 pinctrl-0 = <&pinctrl_uart1>; 165 pinctrl-0 = <&pinctrl_uart1>;
158 clocks = <&peri_clk 1>; 166 clocks = <&peri_clk 1>;
167 resets = <&peri_rst 1>;
159 }; 168 };
160 169
161 serial2: serial@54006a00 { 170 serial2: serial@54006a00 {
@@ -166,6 +175,7 @@
166 pinctrl-names = "default"; 175 pinctrl-names = "default";
167 pinctrl-0 = <&pinctrl_uart2>; 176 pinctrl-0 = <&pinctrl_uart2>;
168 clocks = <&peri_clk 2>; 177 clocks = <&peri_clk 2>;
178 resets = <&peri_rst 2>;
169 }; 179 };
170 180
171 serial3: serial@54006b00 { 181 serial3: serial@54006b00 {
@@ -176,6 +186,26 @@
176 pinctrl-names = "default"; 186 pinctrl-names = "default";
177 pinctrl-0 = <&pinctrl_uart3>; 187 pinctrl-0 = <&pinctrl_uart3>;
178 clocks = <&peri_clk 3>; 188 clocks = <&peri_clk 3>;
189 resets = <&peri_rst 3>;
190 };
191
192 gpio: gpio@55000000 {
193 compatible = "socionext,uniphier-gpio";
194 reg = <0x55000000 0x200>;
195 interrupt-parent = <&aidet>;
196 interrupt-controller;
197 #interrupt-cells = <2>;
198 gpio-controller;
199 #gpio-cells = <2>;
200 gpio-ranges = <&pinctrl 0 0 0>,
201 <&pinctrl 96 0 0>,
202 <&pinctrl 160 0 0>;
203 gpio-ranges-group-names = "gpio_range0",
204 "gpio_range1",
205 "gpio_range2";
206 ngpios = <286>;
207 socionext,interrupt-ranges = <0 48 16>, <16 154 5>,
208 <21 217 3>;
179 }; 209 };
180 210
181 i2c0: i2c@58780000 { 211 i2c0: i2c@58780000 {
@@ -188,6 +218,7 @@
188 pinctrl-names = "default"; 218 pinctrl-names = "default";
189 pinctrl-0 = <&pinctrl_i2c0>; 219 pinctrl-0 = <&pinctrl_i2c0>;
190 clocks = <&peri_clk 4>; 220 clocks = <&peri_clk 4>;
221 resets = <&peri_rst 4>;
191 clock-frequency = <100000>; 222 clock-frequency = <100000>;
192 }; 223 };
193 224
@@ -201,6 +232,7 @@
201 pinctrl-names = "default"; 232 pinctrl-names = "default";
202 pinctrl-0 = <&pinctrl_i2c1>; 233 pinctrl-0 = <&pinctrl_i2c1>;
203 clocks = <&peri_clk 5>; 234 clocks = <&peri_clk 5>;
235 resets = <&peri_rst 5>;
204 clock-frequency = <100000>; 236 clock-frequency = <100000>;
205 }; 237 };
206 238
@@ -214,6 +246,7 @@
214 pinctrl-names = "default"; 246 pinctrl-names = "default";
215 pinctrl-0 = <&pinctrl_i2c2>; 247 pinctrl-0 = <&pinctrl_i2c2>;
216 clocks = <&peri_clk 6>; 248 clocks = <&peri_clk 6>;
249 resets = <&peri_rst 6>;
217 clock-frequency = <100000>; 250 clock-frequency = <100000>;
218 }; 251 };
219 252
@@ -227,6 +260,7 @@
227 pinctrl-names = "default"; 260 pinctrl-names = "default";
228 pinctrl-0 = <&pinctrl_i2c3>; 261 pinctrl-0 = <&pinctrl_i2c3>;
229 clocks = <&peri_clk 7>; 262 clocks = <&peri_clk 7>;
263 resets = <&peri_rst 7>;
230 clock-frequency = <100000>; 264 clock-frequency = <100000>;
231 }; 265 };
232 266
@@ -238,6 +272,7 @@
238 #size-cells = <0>; 272 #size-cells = <0>;
239 interrupts = <0 26 4>; 273 interrupts = <0 26 4>;
240 clocks = <&peri_clk 10>; 274 clocks = <&peri_clk 10>;
275 resets = <&peri_rst 10>;
241 clock-frequency = <400000>; 276 clock-frequency = <400000>;
242 }; 277 };
243 278
@@ -295,9 +330,11 @@
295 pinctrl-names = "default"; 330 pinctrl-names = "default";
296 pinctrl-0 = <&pinctrl_emmc>; 331 pinctrl-0 = <&pinctrl_emmc>;
297 clocks = <&sys_clk 4>; 332 clocks = <&sys_clk 4>;
333 resets = <&sys_rst 4>;
298 bus-width = <8>; 334 bus-width = <8>;
299 mmc-ddr-1_8v; 335 mmc-ddr-1_8v;
300 mmc-hs200-1_8v; 336 mmc-hs200-1_8v;
337 mmc-pwrseq = <&emmc_pwrseq>;
301 cdns,phy-input-delay-legacy = <4>; 338 cdns,phy-input-delay-legacy = <4>;
302 cdns,phy-input-delay-mmc-highspeed = <2>; 339 cdns,phy-input-delay-mmc-highspeed = <2>;
303 cdns,phy-input-delay-mmc-ddr = <3>; 340 cdns,phy-input-delay-mmc-ddr = <3>;
@@ -315,6 +352,24 @@
315 }; 352 };
316 }; 353 };
317 354
355 soc-glue@5f900000 {
356 compatible = "socionext,uniphier-pxs3-soc-glue-debug",
357 "simple-mfd";
358 #address-cells = <1>;
359 #size-cells = <1>;
360 ranges = <0 0x5f900000 0x2000>;
361
362 efuse@100 {
363 compatible = "socionext,uniphier-efuse";
364 reg = <0x100 0x28>;
365 };
366
367 efuse@200 {
368 compatible = "socionext,uniphier-efuse";
369 reg = <0x200 0x68>;
370 };
371 };
372
318 aidet: aidet@5fc20000 { 373 aidet: aidet@5fc20000 {
319 compatible = "socionext,uniphier-pxs3-aidet"; 374 compatible = "socionext,uniphier-pxs3-aidet";
320 reg = <0x5fc20000 0x200>; 375 reg = <0x5fc20000 0x200>;
@@ -360,6 +415,7 @@
360 pinctrl-names = "default"; 415 pinctrl-names = "default";
361 pinctrl-0 = <&pinctrl_nand>; 416 pinctrl-0 = <&pinctrl_nand>;
362 clocks = <&sys_clk 2>; 417 clocks = <&sys_clk 2>;
418 resets = <&sys_rst 2>;
363 }; 419 };
364 }; 420 };
365}; 421};
diff --git a/include/dt-bindings/clock/r7s72100-clock.h b/include/dt-bindings/clock/r7s72100-clock.h
index 7dd8bc0c3cd0..0dcb3e87d44c 100644
--- a/include/dt-bindings/clock/r7s72100-clock.h
+++ b/include/dt-bindings/clock/r7s72100-clock.h
@@ -11,6 +11,8 @@
11#define __DT_BINDINGS_CLOCK_R7S72100_H__ 11#define __DT_BINDINGS_CLOCK_R7S72100_H__
12 12
13#define R7S72100_CLK_PLL 0 13#define R7S72100_CLK_PLL 0
14#define R7S72100_CLK_I 1
15#define R7S72100_CLK_G 2
14 16
15/* MSTP2 */ 17/* MSTP2 */
16#define R7S72100_CLK_CORESIGHT 0 18#define R7S72100_CLK_CORESIGHT 0
diff --git a/include/dt-bindings/clock/rk3188-cru-common.h b/include/dt-bindings/clock/rk3188-cru-common.h
index eff4319d008b..b9462b7d3dfe 100644
--- a/include/dt-bindings/clock/rk3188-cru-common.h
+++ b/include/dt-bindings/clock/rk3188-cru-common.h
@@ -68,12 +68,14 @@
68#define ACLK_LCDC1 196 68#define ACLK_LCDC1 196
69#define ACLK_GPU 197 69#define ACLK_GPU 197
70#define ACLK_SMC 198 70#define ACLK_SMC 198
71#define ACLK_CIF 199 71#define ACLK_CIF1 199
72#define ACLK_IPP 200 72#define ACLK_IPP 200
73#define ACLK_RGA 201 73#define ACLK_RGA 201
74#define ACLK_CIF0 202 74#define ACLK_CIF0 202
75#define ACLK_CPU 203 75#define ACLK_CPU 203
76#define ACLK_PERI 204 76#define ACLK_PERI 204
77#define ACLK_VEPU 205
78#define ACLK_VDPU 206
77 79
78/* pclk gates */ 80/* pclk gates */
79#define PCLK_GRF 320 81#define PCLK_GRF 320
@@ -134,8 +136,11 @@
134#define HCLK_NANDC0 467 136#define HCLK_NANDC0 467
135#define HCLK_CPU 468 137#define HCLK_CPU 468
136#define HCLK_PERI 469 138#define HCLK_PERI 469
139#define HCLK_CIF1 470
140#define HCLK_VEPU 471
141#define HCLK_VDPU 472
137 142
138#define CLK_NR_CLKS (HCLK_PERI + 1) 143#define CLK_NR_CLKS (HCLK_VDPU + 1)
139 144
140/* soft-reset indices */ 145/* soft-reset indices */
141#define SRST_MCORE 2 146#define SRST_MCORE 2
diff --git a/include/dt-bindings/clock/rk3368-cru.h b/include/dt-bindings/clock/rk3368-cru.h
index aeb83e581a11..a0063ed7284a 100644
--- a/include/dt-bindings/clock/rk3368-cru.h
+++ b/include/dt-bindings/clock/rk3368-cru.h
@@ -156,6 +156,7 @@
156#define PCLK_ISP 366 156#define PCLK_ISP 366
157#define PCLK_VIP 367 157#define PCLK_VIP 367
158#define PCLK_WDT 368 158#define PCLK_WDT 368
159#define PCLK_EFUSE256 369
159 160
160/* hclk gates */ 161/* hclk gates */
161#define HCLK_SFC 448 162#define HCLK_SFC 448
diff --git a/include/dt-bindings/clock/tegra210-car.h b/include/dt-bindings/clock/tegra210-car.h
index a9dc1457cb00..6422314e46eb 100644
--- a/include/dt-bindings/clock/tegra210-car.h
+++ b/include/dt-bindings/clock/tegra210-car.h
@@ -310,6 +310,7 @@
310#define TEGRA210_CLK_BLINK 280 310#define TEGRA210_CLK_BLINK 280
311/* 281 */ 311/* 281 */
312#define TEGRA210_CLK_SOR1_SRC 282 312#define TEGRA210_CLK_SOR1_SRC 282
313#define TEGRA210_CLK_SOR1_OUT 282
313/* 283 */ 314/* 283 */
314#define TEGRA210_CLK_XUSB_HOST_SRC 284 315#define TEGRA210_CLK_XUSB_HOST_SRC 284
315#define TEGRA210_CLK_XUSB_FALCON_SRC 285 316#define TEGRA210_CLK_XUSB_FALCON_SRC 285
diff --git a/include/dt-bindings/pinctrl/am43xx.h b/include/dt-bindings/pinctrl/am43xx.h
index 46789157660b..a69e310789c5 100644
--- a/include/dt-bindings/pinctrl/am43xx.h
+++ b/include/dt-bindings/pinctrl/am43xx.h
@@ -22,9 +22,21 @@
22#define INPUT_EN (1 << 18) 22#define INPUT_EN (1 << 18)
23#define SLEWCTRL_SLOW (1 << 19) 23#define SLEWCTRL_SLOW (1 << 19)
24#define SLEWCTRL_FAST 0 24#define SLEWCTRL_FAST 0
25#define DS0_FORCE_OFF_MODE (1 << 24)
26#define DS0_INPUT (1 << 25)
27#define DS0_FORCE_OUT_HIGH (1 << 26)
25#define DS0_PULL_UP_DOWN_EN (1 << 27) 28#define DS0_PULL_UP_DOWN_EN (1 << 27)
29#define DS0_PULL_UP_SEL (1 << 28)
26#define WAKEUP_ENABLE (1 << 29) 30#define WAKEUP_ENABLE (1 << 29)
27 31
32#define DS0_PIN_OUTPUT (DS0_FORCE_OFF_MODE)
33#define DS0_PIN_OUTPUT_HIGH (DS0_FORCE_OFF_MODE | DS0_FORCE_OUT_HIGH)
34#define DS0_PIN_OUTPUT_PULLUP (DS0_FORCE_OFF_MODE | DS0_PULL_UP_DOWN_EN | DS0_PULL_UP_SEL)
35#define DS0_PIN_OUTPUT_PULLDOWN (DS0_FORCE_OFF_MODE | DS0_PULL_UP_DOWN_EN)
36#define DS0_PIN_INPUT (DS0_FORCE_OFF_MODE | DS0_INPUT)
37#define DS0_PIN_INPUT_PULLUP (DS0_FORCE_OFF_MODE | DS0_INPUT | DS0_PULL_UP_DOWN_EN | DS0_PULL_UP_SEL)
38#define DS0_PIN_INPUT_PULLDOWN (DS0_FORCE_OFF_MODE | DS0_INPUT | DS0_PULL_UP_DOWN_EN)
39
28#define PIN_OUTPUT (PULL_DISABLE) 40#define PIN_OUTPUT (PULL_DISABLE)
29#define PIN_OUTPUT_PULLUP (PULL_UP) 41#define PIN_OUTPUT_PULLUP (PULL_UP)
30#define PIN_OUTPUT_PULLDOWN 0 42#define PIN_OUTPUT_PULLDOWN 0
diff --git a/include/dt-bindings/pinctrl/stm32-pinfunc.h b/include/dt-bindings/pinctrl/stm32-pinfunc.h
new file mode 100644
index 000000000000..b8dfe31821e6
--- /dev/null
+++ b/include/dt-bindings/pinctrl/stm32-pinfunc.h
@@ -0,0 +1,30 @@
1#ifndef _DT_BINDINGS_STM32_PINFUNC_H
2#define _DT_BINDINGS_STM32_PINFUNC_H
3
4/* define PIN modes */
5#define GPIO 0x0
6#define AF0 0x1
7#define AF1 0x2
8#define AF2 0x3
9#define AF3 0x4
10#define AF4 0x5
11#define AF5 0x6
12#define AF6 0x7
13#define AF7 0x8
14#define AF8 0x9
15#define AF9 0xa
16#define AF10 0xb
17#define AF11 0xc
18#define AF12 0xd
19#define AF13 0xe
20#define AF14 0xf
21#define AF15 0x10
22#define ANALOG 0x11
23
24/* define Pins number*/
25#define PIN_NO(port, line) (((port) - 'A') * 0x10 + (line))
26
27#define STM32_PINMUX(port, line, mode) (((PIN_NO(port, line)) << 8) | (mode))
28
29#endif /* _DT_BINDINGS_STM32_PINFUNC_H */
30
diff --git a/include/dt-bindings/pinctrl/stm32f429-pinfunc.h b/include/dt-bindings/pinctrl/stm32f429-pinfunc.h
deleted file mode 100644
index 9a5a028f0d00..000000000000
--- a/include/dt-bindings/pinctrl/stm32f429-pinfunc.h
+++ /dev/null
@@ -1,1240 +0,0 @@
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _DT_BINDINGS_STM32F429_PINFUNC_H
3#define _DT_BINDINGS_STM32F429_PINFUNC_H
4
5#define STM32F429_PA0_FUNC_GPIO 0x0
6#define STM32F429_PA0_FUNC_TIM2_CH1_TIM2_ETR 0x2
7#define STM32F429_PA0_FUNC_TIM5_CH1 0x3
8#define STM32F429_PA0_FUNC_TIM8_ETR 0x4
9#define STM32F429_PA0_FUNC_USART2_CTS 0x8
10#define STM32F429_PA0_FUNC_UART4_TX 0x9
11#define STM32F429_PA0_FUNC_ETH_MII_CRS 0xc
12#define STM32F429_PA0_FUNC_EVENTOUT 0x10
13#define STM32F429_PA0_FUNC_ANALOG 0x11
14
15#define STM32F429_PA1_FUNC_GPIO 0x100
16#define STM32F429_PA1_FUNC_TIM2_CH2 0x102
17#define STM32F429_PA1_FUNC_TIM5_CH2 0x103
18#define STM32F429_PA1_FUNC_USART2_RTS 0x108
19#define STM32F429_PA1_FUNC_UART4_RX 0x109
20#define STM32F429_PA1_FUNC_ETH_MII_RX_CLK_ETH_RMII_REF_CLK 0x10c
21#define STM32F429_PA1_FUNC_EVENTOUT 0x110
22#define STM32F429_PA1_FUNC_ANALOG 0x111
23
24#define STM32F429_PA2_FUNC_GPIO 0x200
25#define STM32F429_PA2_FUNC_TIM2_CH3 0x202
26#define STM32F429_PA2_FUNC_TIM5_CH3 0x203
27#define STM32F429_PA2_FUNC_TIM9_CH1 0x204
28#define STM32F429_PA2_FUNC_USART2_TX 0x208
29#define STM32F429_PA2_FUNC_ETH_MDIO 0x20c
30#define STM32F429_PA2_FUNC_EVENTOUT 0x210
31#define STM32F429_PA2_FUNC_ANALOG 0x211
32
33#define STM32F429_PA3_FUNC_GPIO 0x300
34#define STM32F429_PA3_FUNC_TIM2_CH4 0x302
35#define STM32F429_PA3_FUNC_TIM5_CH4 0x303
36#define STM32F429_PA3_FUNC_TIM9_CH2 0x304
37#define STM32F429_PA3_FUNC_USART2_RX 0x308
38#define STM32F429_PA3_FUNC_OTG_HS_ULPI_D0 0x30b
39#define STM32F429_PA3_FUNC_ETH_MII_COL 0x30c
40#define STM32F429_PA3_FUNC_LCD_B5 0x30f
41#define STM32F429_PA3_FUNC_EVENTOUT 0x310
42#define STM32F429_PA3_FUNC_ANALOG 0x311
43
44#define STM32F429_PA4_FUNC_GPIO 0x400
45#define STM32F429_PA4_FUNC_SPI1_NSS 0x406
46#define STM32F429_PA4_FUNC_SPI3_NSS_I2S3_WS 0x407
47#define STM32F429_PA4_FUNC_USART2_CK 0x408
48#define STM32F429_PA4_FUNC_OTG_HS_SOF 0x40d
49#define STM32F429_PA4_FUNC_DCMI_HSYNC 0x40e
50#define STM32F429_PA4_FUNC_LCD_VSYNC 0x40f
51#define STM32F429_PA4_FUNC_EVENTOUT 0x410
52#define STM32F429_PA4_FUNC_ANALOG 0x411
53
54#define STM32F429_PA5_FUNC_GPIO 0x500
55#define STM32F429_PA5_FUNC_TIM2_CH1_TIM2_ETR 0x502
56#define STM32F429_PA5_FUNC_TIM8_CH1N 0x504
57#define STM32F429_PA5_FUNC_SPI1_SCK 0x506
58#define STM32F429_PA5_FUNC_OTG_HS_ULPI_CK 0x50b
59#define STM32F429_PA5_FUNC_EVENTOUT 0x510
60#define STM32F429_PA5_FUNC_ANALOG 0x511
61
62#define STM32F429_PA6_FUNC_GPIO 0x600
63#define STM32F429_PA6_FUNC_TIM1_BKIN 0x602
64#define STM32F429_PA6_FUNC_TIM3_CH1 0x603
65#define STM32F429_PA6_FUNC_TIM8_BKIN 0x604
66#define STM32F429_PA6_FUNC_SPI1_MISO 0x606
67#define STM32F429_PA6_FUNC_TIM13_CH1 0x60a
68#define STM32F429_PA6_FUNC_DCMI_PIXCLK 0x60e
69#define STM32F429_PA6_FUNC_LCD_G2 0x60f
70#define STM32F429_PA6_FUNC_EVENTOUT 0x610
71#define STM32F429_PA6_FUNC_ANALOG 0x611
72
73#define STM32F429_PA7_FUNC_GPIO 0x700
74#define STM32F429_PA7_FUNC_TIM1_CH1N 0x702
75#define STM32F429_PA7_FUNC_TIM3_CH2 0x703
76#define STM32F429_PA7_FUNC_TIM8_CH1N 0x704
77#define STM32F429_PA7_FUNC_SPI1_MOSI 0x706
78#define STM32F429_PA7_FUNC_TIM14_CH1 0x70a
79#define STM32F429_PA7_FUNC_ETH_MII_RX_DV_ETH_RMII_CRS_DV 0x70c
80#define STM32F429_PA7_FUNC_EVENTOUT 0x710
81#define STM32F429_PA7_FUNC_ANALOG 0x711
82
83#define STM32F429_PA8_FUNC_GPIO 0x800
84#define STM32F429_PA8_FUNC_MCO1 0x801
85#define STM32F429_PA8_FUNC_TIM1_CH1 0x802
86#define STM32F429_PA8_FUNC_I2C3_SCL 0x805
87#define STM32F429_PA8_FUNC_USART1_CK 0x808
88#define STM32F429_PA8_FUNC_OTG_FS_SOF 0x80b
89#define STM32F429_PA8_FUNC_LCD_R6 0x80f
90#define STM32F429_PA8_FUNC_EVENTOUT 0x810
91#define STM32F429_PA8_FUNC_ANALOG 0x811
92
93#define STM32F429_PA9_FUNC_GPIO 0x900
94#define STM32F429_PA9_FUNC_TIM1_CH2 0x902
95#define STM32F429_PA9_FUNC_I2C3_SMBA 0x905
96#define STM32F429_PA9_FUNC_USART1_TX 0x908
97#define STM32F429_PA9_FUNC_DCMI_D0 0x90e
98#define STM32F429_PA9_FUNC_EVENTOUT 0x910
99#define STM32F429_PA9_FUNC_ANALOG 0x911
100
101#define STM32F429_PA10_FUNC_GPIO 0xa00
102#define STM32F429_PA10_FUNC_TIM1_CH3 0xa02
103#define STM32F429_PA10_FUNC_USART1_RX 0xa08
104#define STM32F429_PA10_FUNC_OTG_FS_ID 0xa0b
105#define STM32F429_PA10_FUNC_DCMI_D1 0xa0e
106#define STM32F429_PA10_FUNC_EVENTOUT 0xa10
107#define STM32F429_PA10_FUNC_ANALOG 0xa11
108
109#define STM32F429_PA11_FUNC_GPIO 0xb00
110#define STM32F429_PA11_FUNC_TIM1_CH4 0xb02
111#define STM32F429_PA11_FUNC_USART1_CTS 0xb08
112#define STM32F429_PA11_FUNC_CAN1_RX 0xb0a
113#define STM32F429_PA11_FUNC_OTG_FS_DM 0xb0b
114#define STM32F429_PA11_FUNC_LCD_R4 0xb0f
115#define STM32F429_PA11_FUNC_EVENTOUT 0xb10
116#define STM32F429_PA11_FUNC_ANALOG 0xb11
117
118#define STM32F429_PA12_FUNC_GPIO 0xc00
119#define STM32F429_PA12_FUNC_TIM1_ETR 0xc02
120#define STM32F429_PA12_FUNC_USART1_RTS 0xc08
121#define STM32F429_PA12_FUNC_CAN1_TX 0xc0a
122#define STM32F429_PA12_FUNC_OTG_FS_DP 0xc0b
123#define STM32F429_PA12_FUNC_LCD_R5 0xc0f
124#define STM32F429_PA12_FUNC_EVENTOUT 0xc10
125#define STM32F429_PA12_FUNC_ANALOG 0xc11
126
127#define STM32F429_PA13_FUNC_GPIO 0xd00
128#define STM32F429_PA13_FUNC_JTMS_SWDIO 0xd01
129#define STM32F429_PA13_FUNC_EVENTOUT 0xd10
130#define STM32F429_PA13_FUNC_ANALOG 0xd11
131
132#define STM32F429_PA14_FUNC_GPIO 0xe00
133#define STM32F429_PA14_FUNC_JTCK_SWCLK 0xe01
134#define STM32F429_PA14_FUNC_EVENTOUT 0xe10
135#define STM32F429_PA14_FUNC_ANALOG 0xe11
136
137#define STM32F429_PA15_FUNC_GPIO 0xf00
138#define STM32F429_PA15_FUNC_JTDI 0xf01
139#define STM32F429_PA15_FUNC_TIM2_CH1_TIM2_ETR 0xf02
140#define STM32F429_PA15_FUNC_SPI1_NSS 0xf06
141#define STM32F429_PA15_FUNC_SPI3_NSS_I2S3_WS 0xf07
142#define STM32F429_PA15_FUNC_EVENTOUT 0xf10
143#define STM32F429_PA15_FUNC_ANALOG 0xf11
144
145
146
147#define STM32F429_PB0_FUNC_GPIO 0x1000
148#define STM32F429_PB0_FUNC_TIM1_CH2N 0x1002
149#define STM32F429_PB0_FUNC_TIM3_CH3 0x1003
150#define STM32F429_PB0_FUNC_TIM8_CH2N 0x1004
151#define STM32F429_PB0_FUNC_LCD_R3 0x100a
152#define STM32F429_PB0_FUNC_OTG_HS_ULPI_D1 0x100b
153#define STM32F429_PB0_FUNC_ETH_MII_RXD2 0x100c
154#define STM32F429_PB0_FUNC_EVENTOUT 0x1010
155#define STM32F429_PB0_FUNC_ANALOG 0x1011
156
157#define STM32F429_PB1_FUNC_GPIO 0x1100
158#define STM32F429_PB1_FUNC_TIM1_CH3N 0x1102
159#define STM32F429_PB1_FUNC_TIM3_CH4 0x1103
160#define STM32F429_PB1_FUNC_TIM8_CH3N 0x1104
161#define STM32F429_PB1_FUNC_LCD_R6 0x110a
162#define STM32F429_PB1_FUNC_OTG_HS_ULPI_D2 0x110b
163#define STM32F429_PB1_FUNC_ETH_MII_RXD3 0x110c
164#define STM32F429_PB1_FUNC_EVENTOUT 0x1110
165#define STM32F429_PB1_FUNC_ANALOG 0x1111
166
167#define STM32F429_PB2_FUNC_GPIO 0x1200
168#define STM32F429_PB2_FUNC_EVENTOUT 0x1210
169#define STM32F429_PB2_FUNC_ANALOG 0x1211
170
171#define STM32F429_PB3_FUNC_GPIO 0x1300
172#define STM32F429_PB3_FUNC_JTDO_TRACESWO 0x1301
173#define STM32F429_PB3_FUNC_TIM2_CH2 0x1302
174#define STM32F429_PB3_FUNC_SPI1_SCK 0x1306
175#define STM32F429_PB3_FUNC_SPI3_SCK_I2S3_CK 0x1307
176#define STM32F429_PB3_FUNC_EVENTOUT 0x1310
177#define STM32F429_PB3_FUNC_ANALOG 0x1311
178
179#define STM32F429_PB4_FUNC_GPIO 0x1400
180#define STM32F429_PB4_FUNC_NJTRST 0x1401
181#define STM32F429_PB4_FUNC_TIM3_CH1 0x1403
182#define STM32F429_PB4_FUNC_SPI1_MISO 0x1406
183#define STM32F429_PB4_FUNC_SPI3_MISO 0x1407
184#define STM32F429_PB4_FUNC_I2S3EXT_SD 0x1408
185#define STM32F429_PB4_FUNC_EVENTOUT 0x1410
186#define STM32F429_PB4_FUNC_ANALOG 0x1411
187
188#define STM32F429_PB5_FUNC_GPIO 0x1500
189#define STM32F429_PB5_FUNC_TIM3_CH2 0x1503
190#define STM32F429_PB5_FUNC_I2C1_SMBA 0x1505
191#define STM32F429_PB5_FUNC_SPI1_MOSI 0x1506
192#define STM32F429_PB5_FUNC_SPI3_MOSI_I2S3_SD 0x1507
193#define STM32F429_PB5_FUNC_CAN2_RX 0x150a
194#define STM32F429_PB5_FUNC_OTG_HS_ULPI_D7 0x150b
195#define STM32F429_PB5_FUNC_ETH_PPS_OUT 0x150c
196#define STM32F429_PB5_FUNC_FMC_SDCKE1 0x150d
197#define STM32F429_PB5_FUNC_DCMI_D10 0x150e
198#define STM32F429_PB5_FUNC_EVENTOUT 0x1510
199#define STM32F429_PB5_FUNC_ANALOG 0x1511
200
201#define STM32F429_PB6_FUNC_GPIO 0x1600
202#define STM32F429_PB6_FUNC_TIM4_CH1 0x1603
203#define STM32F429_PB6_FUNC_I2C1_SCL 0x1605
204#define STM32F429_PB6_FUNC_USART1_TX 0x1608
205#define STM32F429_PB6_FUNC_CAN2_TX 0x160a
206#define STM32F429_PB6_FUNC_FMC_SDNE1 0x160d
207#define STM32F429_PB6_FUNC_DCMI_D5 0x160e
208#define STM32F429_PB6_FUNC_EVENTOUT 0x1610
209#define STM32F429_PB6_FUNC_ANALOG 0x1611
210
211#define STM32F429_PB7_FUNC_GPIO 0x1700
212#define STM32F429_PB7_FUNC_TIM4_CH2 0x1703
213#define STM32F429_PB7_FUNC_I2C1_SDA 0x1705
214#define STM32F429_PB7_FUNC_USART1_RX 0x1708
215#define STM32F429_PB7_FUNC_FMC_NL 0x170d
216#define STM32F429_PB7_FUNC_DCMI_VSYNC 0x170e
217#define STM32F429_PB7_FUNC_EVENTOUT 0x1710
218#define STM32F429_PB7_FUNC_ANALOG 0x1711
219
220#define STM32F429_PB8_FUNC_GPIO 0x1800
221#define STM32F429_PB8_FUNC_TIM4_CH3 0x1803
222#define STM32F429_PB8_FUNC_TIM10_CH1 0x1804
223#define STM32F429_PB8_FUNC_I2C1_SCL 0x1805
224#define STM32F429_PB8_FUNC_CAN1_RX 0x180a
225#define STM32F429_PB8_FUNC_ETH_MII_TXD3 0x180c
226#define STM32F429_PB8_FUNC_SDIO_D4 0x180d
227#define STM32F429_PB8_FUNC_DCMI_D6 0x180e
228#define STM32F429_PB8_FUNC_LCD_B6 0x180f
229#define STM32F429_PB8_FUNC_EVENTOUT 0x1810
230#define STM32F429_PB8_FUNC_ANALOG 0x1811
231
232#define STM32F429_PB9_FUNC_GPIO 0x1900
233#define STM32F429_PB9_FUNC_TIM4_CH4 0x1903
234#define STM32F429_PB9_FUNC_TIM11_CH1 0x1904
235#define STM32F429_PB9_FUNC_I2C1_SDA 0x1905
236#define STM32F429_PB9_FUNC_SPI2_NSS_I2S2_WS 0x1906
237#define STM32F429_PB9_FUNC_CAN1_TX 0x190a
238#define STM32F429_PB9_FUNC_SDIO_D5 0x190d
239#define STM32F429_PB9_FUNC_DCMI_D7 0x190e
240#define STM32F429_PB9_FUNC_LCD_B7 0x190f
241#define STM32F429_PB9_FUNC_EVENTOUT 0x1910
242#define STM32F429_PB9_FUNC_ANALOG 0x1911
243
244#define STM32F429_PB10_FUNC_GPIO 0x1a00
245#define STM32F429_PB10_FUNC_TIM2_CH3 0x1a02
246#define STM32F429_PB10_FUNC_I2C2_SCL 0x1a05
247#define STM32F429_PB10_FUNC_SPI2_SCK_I2S2_CK 0x1a06
248#define STM32F429_PB10_FUNC_USART3_TX 0x1a08
249#define STM32F429_PB10_FUNC_OTG_HS_ULPI_D3 0x1a0b
250#define STM32F429_PB10_FUNC_ETH_MII_RX_ER 0x1a0c
251#define STM32F429_PB10_FUNC_LCD_G4 0x1a0f
252#define STM32F429_PB10_FUNC_EVENTOUT 0x1a10
253#define STM32F429_PB10_FUNC_ANALOG 0x1a11
254
255#define STM32F429_PB11_FUNC_GPIO 0x1b00
256#define STM32F429_PB11_FUNC_TIM2_CH4 0x1b02
257#define STM32F429_PB11_FUNC_I2C2_SDA 0x1b05
258#define STM32F429_PB11_FUNC_USART3_RX 0x1b08
259#define STM32F429_PB11_FUNC_OTG_HS_ULPI_D4 0x1b0b
260#define STM32F429_PB11_FUNC_ETH_MII_TX_EN_ETH_RMII_TX_EN 0x1b0c
261#define STM32F429_PB11_FUNC_LCD_G5 0x1b0f
262#define STM32F429_PB11_FUNC_EVENTOUT 0x1b10
263#define STM32F429_PB11_FUNC_ANALOG 0x1b11
264
265#define STM32F429_PB12_FUNC_GPIO 0x1c00
266#define STM32F429_PB12_FUNC_TIM1_BKIN 0x1c02
267#define STM32F429_PB12_FUNC_I2C2_SMBA 0x1c05
268#define STM32F429_PB12_FUNC_SPI2_NSS_I2S2_WS 0x1c06
269#define STM32F429_PB12_FUNC_USART3_CK 0x1c08
270#define STM32F429_PB12_FUNC_CAN2_RX 0x1c0a
271#define STM32F429_PB12_FUNC_OTG_HS_ULPI_D5 0x1c0b
272#define STM32F429_PB12_FUNC_ETH_MII_TXD0_ETH_RMII_TXD0 0x1c0c
273#define STM32F429_PB12_FUNC_OTG_HS_ID 0x1c0d
274#define STM32F429_PB12_FUNC_EVENTOUT 0x1c10
275#define STM32F429_PB12_FUNC_ANALOG 0x1c11
276
277#define STM32F429_PB13_FUNC_GPIO 0x1d00
278#define STM32F429_PB13_FUNC_TIM1_CH1N 0x1d02
279#define STM32F429_PB13_FUNC_SPI2_SCK_I2S2_CK 0x1d06
280#define STM32F429_PB13_FUNC_USART3_CTS 0x1d08
281#define STM32F429_PB13_FUNC_CAN2_TX 0x1d0a
282#define STM32F429_PB13_FUNC_OTG_HS_ULPI_D6 0x1d0b
283#define STM32F429_PB13_FUNC_ETH_MII_TXD1_ETH_RMII_TXD1 0x1d0c
284#define STM32F429_PB13_FUNC_EVENTOUT 0x1d10
285#define STM32F429_PB13_FUNC_ANALOG 0x1d11
286
287#define STM32F429_PB14_FUNC_GPIO 0x1e00
288#define STM32F429_PB14_FUNC_TIM1_CH2N 0x1e02
289#define STM32F429_PB14_FUNC_TIM8_CH2N 0x1e04
290#define STM32F429_PB14_FUNC_SPI2_MISO 0x1e06
291#define STM32F429_PB14_FUNC_I2S2EXT_SD 0x1e07
292#define STM32F429_PB14_FUNC_USART3_RTS 0x1e08
293#define STM32F429_PB14_FUNC_TIM12_CH1 0x1e0a
294#define STM32F429_PB14_FUNC_OTG_HS_DM 0x1e0d
295#define STM32F429_PB14_FUNC_EVENTOUT 0x1e10
296#define STM32F429_PB14_FUNC_ANALOG 0x1e11
297
298#define STM32F429_PB15_FUNC_GPIO 0x1f00
299#define STM32F429_PB15_FUNC_RTC_REFIN 0x1f01
300#define STM32F429_PB15_FUNC_TIM1_CH3N 0x1f02
301#define STM32F429_PB15_FUNC_TIM8_CH3N 0x1f04
302#define STM32F429_PB15_FUNC_SPI2_MOSI_I2S2_SD 0x1f06
303#define STM32F429_PB15_FUNC_TIM12_CH2 0x1f0a
304#define STM32F429_PB15_FUNC_OTG_HS_DP 0x1f0d
305#define STM32F429_PB15_FUNC_EVENTOUT 0x1f10
306#define STM32F429_PB15_FUNC_ANALOG 0x1f11
307
308
309
310#define STM32F429_PC0_FUNC_GPIO 0x2000
311#define STM32F429_PC0_FUNC_OTG_HS_ULPI_STP 0x200b
312#define STM32F429_PC0_FUNC_FMC_SDNWE 0x200d
313#define STM32F429_PC0_FUNC_EVENTOUT 0x2010
314#define STM32F429_PC0_FUNC_ANALOG 0x2011
315
316#define STM32F429_PC1_FUNC_GPIO 0x2100
317#define STM32F429_PC1_FUNC_ETH_MDC 0x210c
318#define STM32F429_PC1_FUNC_EVENTOUT 0x2110
319#define STM32F429_PC1_FUNC_ANALOG 0x2111
320
321#define STM32F429_PC2_FUNC_GPIO 0x2200
322#define STM32F429_PC2_FUNC_SPI2_MISO 0x2206
323#define STM32F429_PC2_FUNC_I2S2EXT_SD 0x2207
324#define STM32F429_PC2_FUNC_OTG_HS_ULPI_DIR 0x220b
325#define STM32F429_PC2_FUNC_ETH_MII_TXD2 0x220c
326#define STM32F429_PC2_FUNC_FMC_SDNE0 0x220d
327#define STM32F429_PC2_FUNC_EVENTOUT 0x2210
328#define STM32F429_PC2_FUNC_ANALOG 0x2211
329
330#define STM32F429_PC3_FUNC_GPIO 0x2300
331#define STM32F429_PC3_FUNC_SPI2_MOSI_I2S2_SD 0x2306
332#define STM32F429_PC3_FUNC_OTG_HS_ULPI_NXT 0x230b
333#define STM32F429_PC3_FUNC_ETH_MII_TX_CLK 0x230c
334#define STM32F429_PC3_FUNC_FMC_SDCKE0 0x230d
335#define STM32F429_PC3_FUNC_EVENTOUT 0x2310
336#define STM32F429_PC3_FUNC_ANALOG 0x2311
337
338#define STM32F429_PC4_FUNC_GPIO 0x2400
339#define STM32F429_PC4_FUNC_ETH_MII_RXD0_ETH_RMII_RXD0 0x240c
340#define STM32F429_PC4_FUNC_EVENTOUT 0x2410
341#define STM32F429_PC4_FUNC_ANALOG 0x2411
342
343#define STM32F429_PC5_FUNC_GPIO 0x2500
344#define STM32F429_PC5_FUNC_ETH_MII_RXD1_ETH_RMII_RXD1 0x250c
345#define STM32F429_PC5_FUNC_EVENTOUT 0x2510
346#define STM32F429_PC5_FUNC_ANALOG 0x2511
347
348#define STM32F429_PC6_FUNC_GPIO 0x2600
349#define STM32F429_PC6_FUNC_TIM3_CH1 0x2603
350#define STM32F429_PC6_FUNC_TIM8_CH1 0x2604
351#define STM32F429_PC6_FUNC_I2S2_MCK 0x2606
352#define STM32F429_PC6_FUNC_USART6_TX 0x2609
353#define STM32F429_PC6_FUNC_SDIO_D6 0x260d
354#define STM32F429_PC6_FUNC_DCMI_D0 0x260e
355#define STM32F429_PC6_FUNC_LCD_HSYNC 0x260f
356#define STM32F429_PC6_FUNC_EVENTOUT 0x2610
357#define STM32F429_PC6_FUNC_ANALOG 0x2611
358
359#define STM32F429_PC7_FUNC_GPIO 0x2700
360#define STM32F429_PC7_FUNC_TIM3_CH2 0x2703
361#define STM32F429_PC7_FUNC_TIM8_CH2 0x2704
362#define STM32F429_PC7_FUNC_I2S3_MCK 0x2707
363#define STM32F429_PC7_FUNC_USART6_RX 0x2709
364#define STM32F429_PC7_FUNC_SDIO_D7 0x270d
365#define STM32F429_PC7_FUNC_DCMI_D1 0x270e
366#define STM32F429_PC7_FUNC_LCD_G6 0x270f
367#define STM32F429_PC7_FUNC_EVENTOUT 0x2710
368#define STM32F429_PC7_FUNC_ANALOG 0x2711
369
370#define STM32F429_PC8_FUNC_GPIO 0x2800
371#define STM32F429_PC8_FUNC_TIM3_CH3 0x2803
372#define STM32F429_PC8_FUNC_TIM8_CH3 0x2804
373#define STM32F429_PC8_FUNC_USART6_CK 0x2809
374#define STM32F429_PC8_FUNC_SDIO_D0 0x280d
375#define STM32F429_PC8_FUNC_DCMI_D2 0x280e
376#define STM32F429_PC8_FUNC_EVENTOUT 0x2810
377#define STM32F429_PC8_FUNC_ANALOG 0x2811
378
379#define STM32F429_PC9_FUNC_GPIO 0x2900
380#define STM32F429_PC9_FUNC_MCO2 0x2901
381#define STM32F429_PC9_FUNC_TIM3_CH4 0x2903
382#define STM32F429_PC9_FUNC_TIM8_CH4 0x2904
383#define STM32F429_PC9_FUNC_I2C3_SDA 0x2905
384#define STM32F429_PC9_FUNC_I2S_CKIN 0x2906
385#define STM32F429_PC9_FUNC_SDIO_D1 0x290d
386#define STM32F429_PC9_FUNC_DCMI_D3 0x290e
387#define STM32F429_PC9_FUNC_EVENTOUT 0x2910
388#define STM32F429_PC9_FUNC_ANALOG 0x2911
389
390#define STM32F429_PC10_FUNC_GPIO 0x2a00
391#define STM32F429_PC10_FUNC_SPI3_SCK_I2S3_CK 0x2a07
392#define STM32F429_PC10_FUNC_USART3_TX 0x2a08
393#define STM32F429_PC10_FUNC_UART4_TX 0x2a09
394#define STM32F429_PC10_FUNC_SDIO_D2 0x2a0d
395#define STM32F429_PC10_FUNC_DCMI_D8 0x2a0e
396#define STM32F429_PC10_FUNC_LCD_R2 0x2a0f
397#define STM32F429_PC10_FUNC_EVENTOUT 0x2a10
398#define STM32F429_PC10_FUNC_ANALOG 0x2a11
399
400#define STM32F429_PC11_FUNC_GPIO 0x2b00
401#define STM32F429_PC11_FUNC_I2S3EXT_SD 0x2b06
402#define STM32F429_PC11_FUNC_SPI3_MISO 0x2b07
403#define STM32F429_PC11_FUNC_USART3_RX 0x2b08
404#define STM32F429_PC11_FUNC_UART4_RX 0x2b09
405#define STM32F429_PC11_FUNC_SDIO_D3 0x2b0d
406#define STM32F429_PC11_FUNC_DCMI_D4 0x2b0e
407#define STM32F429_PC11_FUNC_EVENTOUT 0x2b10
408#define STM32F429_PC11_FUNC_ANALOG 0x2b11
409
410#define STM32F429_PC12_FUNC_GPIO 0x2c00
411#define STM32F429_PC12_FUNC_SPI3_MOSI_I2S3_SD 0x2c07
412#define STM32F429_PC12_FUNC_USART3_CK 0x2c08
413#define STM32F429_PC12_FUNC_UART5_TX 0x2c09
414#define STM32F429_PC12_FUNC_SDIO_CK 0x2c0d
415#define STM32F429_PC12_FUNC_DCMI_D9 0x2c0e
416#define STM32F429_PC12_FUNC_EVENTOUT 0x2c10
417#define STM32F429_PC12_FUNC_ANALOG 0x2c11
418
419#define STM32F429_PC13_FUNC_GPIO 0x2d00
420#define STM32F429_PC13_FUNC_EVENTOUT 0x2d10
421#define STM32F429_PC13_FUNC_ANALOG 0x2d11
422
423#define STM32F429_PC14_FUNC_GPIO 0x2e00
424#define STM32F429_PC14_FUNC_EVENTOUT 0x2e10
425#define STM32F429_PC14_FUNC_ANALOG 0x2e11
426
427#define STM32F429_PC15_FUNC_GPIO 0x2f00
428#define STM32F429_PC15_FUNC_EVENTOUT 0x2f10
429#define STM32F429_PC15_FUNC_ANALOG 0x2f11
430
431
432
433#define STM32F429_PD0_FUNC_GPIO 0x3000
434#define STM32F429_PD0_FUNC_CAN1_RX 0x300a
435#define STM32F429_PD0_FUNC_FMC_D2 0x300d
436#define STM32F429_PD0_FUNC_EVENTOUT 0x3010
437#define STM32F429_PD0_FUNC_ANALOG 0x3011
438
439#define STM32F429_PD1_FUNC_GPIO 0x3100
440#define STM32F429_PD1_FUNC_CAN1_TX 0x310a
441#define STM32F429_PD1_FUNC_FMC_D3 0x310d
442#define STM32F429_PD1_FUNC_EVENTOUT 0x3110
443#define STM32F429_PD1_FUNC_ANALOG 0x3111
444
445#define STM32F429_PD2_FUNC_GPIO 0x3200
446#define STM32F429_PD2_FUNC_TIM3_ETR 0x3203
447#define STM32F429_PD2_FUNC_UART5_RX 0x3209
448#define STM32F429_PD2_FUNC_SDIO_CMD 0x320d
449#define STM32F429_PD2_FUNC_DCMI_D11 0x320e
450#define STM32F429_PD2_FUNC_EVENTOUT 0x3210
451#define STM32F429_PD2_FUNC_ANALOG 0x3211
452
453#define STM32F429_PD3_FUNC_GPIO 0x3300
454#define STM32F429_PD3_FUNC_SPI2_SCK_I2S2_CK 0x3306
455#define STM32F429_PD3_FUNC_USART2_CTS 0x3308
456#define STM32F429_PD3_FUNC_FMC_CLK 0x330d
457#define STM32F429_PD3_FUNC_DCMI_D5 0x330e
458#define STM32F429_PD3_FUNC_LCD_G7 0x330f
459#define STM32F429_PD3_FUNC_EVENTOUT 0x3310
460#define STM32F429_PD3_FUNC_ANALOG 0x3311
461
462#define STM32F429_PD4_FUNC_GPIO 0x3400
463#define STM32F429_PD4_FUNC_USART2_RTS 0x3408
464#define STM32F429_PD4_FUNC_FMC_NOE 0x340d
465#define STM32F429_PD4_FUNC_EVENTOUT 0x3410
466#define STM32F429_PD4_FUNC_ANALOG 0x3411
467
468#define STM32F429_PD5_FUNC_GPIO 0x3500
469#define STM32F429_PD5_FUNC_USART2_TX 0x3508
470#define STM32F429_PD5_FUNC_FMC_NWE 0x350d
471#define STM32F429_PD5_FUNC_EVENTOUT 0x3510
472#define STM32F429_PD5_FUNC_ANALOG 0x3511
473
474#define STM32F429_PD6_FUNC_GPIO 0x3600
475#define STM32F429_PD6_FUNC_SPI3_MOSI_I2S3_SD 0x3606
476#define STM32F429_PD6_FUNC_SAI1_SD_A 0x3607
477#define STM32F429_PD6_FUNC_USART2_RX 0x3608
478#define STM32F429_PD6_FUNC_FMC_NWAIT 0x360d
479#define STM32F429_PD6_FUNC_DCMI_D10 0x360e
480#define STM32F429_PD6_FUNC_LCD_B2 0x360f
481#define STM32F429_PD6_FUNC_EVENTOUT 0x3610
482#define STM32F429_PD6_FUNC_ANALOG 0x3611
483
484#define STM32F429_PD7_FUNC_GPIO 0x3700
485#define STM32F429_PD7_FUNC_USART2_CK 0x3708
486#define STM32F429_PD7_FUNC_FMC_NE1_FMC_NCE2 0x370d
487#define STM32F429_PD7_FUNC_EVENTOUT 0x3710
488#define STM32F429_PD7_FUNC_ANALOG 0x3711
489
490#define STM32F429_PD8_FUNC_GPIO 0x3800
491#define STM32F429_PD8_FUNC_USART3_TX 0x3808
492#define STM32F429_PD8_FUNC_FMC_D13 0x380d
493#define STM32F429_PD8_FUNC_EVENTOUT 0x3810
494#define STM32F429_PD8_FUNC_ANALOG 0x3811
495
496#define STM32F429_PD9_FUNC_GPIO 0x3900
497#define STM32F429_PD9_FUNC_USART3_RX 0x3908
498#define STM32F429_PD9_FUNC_FMC_D14 0x390d
499#define STM32F429_PD9_FUNC_EVENTOUT 0x3910
500#define STM32F429_PD9_FUNC_ANALOG 0x3911
501
502#define STM32F429_PD10_FUNC_GPIO 0x3a00
503#define STM32F429_PD10_FUNC_USART3_CK 0x3a08
504#define STM32F429_PD10_FUNC_FMC_D15 0x3a0d
505#define STM32F429_PD10_FUNC_LCD_B3 0x3a0f
506#define STM32F429_PD10_FUNC_EVENTOUT 0x3a10
507#define STM32F429_PD10_FUNC_ANALOG 0x3a11
508
509#define STM32F429_PD11_FUNC_GPIO 0x3b00
510#define STM32F429_PD11_FUNC_USART3_CTS 0x3b08
511#define STM32F429_PD11_FUNC_FMC_A16 0x3b0d
512#define STM32F429_PD11_FUNC_EVENTOUT 0x3b10
513#define STM32F429_PD11_FUNC_ANALOG 0x3b11
514
515#define STM32F429_PD12_FUNC_GPIO 0x3c00
516#define STM32F429_PD12_FUNC_TIM4_CH1 0x3c03
517#define STM32F429_PD12_FUNC_USART3_RTS 0x3c08
518#define STM32F429_PD12_FUNC_FMC_A17 0x3c0d
519#define STM32F429_PD12_FUNC_EVENTOUT 0x3c10
520#define STM32F429_PD12_FUNC_ANALOG 0x3c11
521
522#define STM32F429_PD13_FUNC_GPIO 0x3d00
523#define STM32F429_PD13_FUNC_TIM4_CH2 0x3d03
524#define STM32F429_PD13_FUNC_FMC_A18 0x3d0d
525#define STM32F429_PD13_FUNC_EVENTOUT 0x3d10
526#define STM32F429_PD13_FUNC_ANALOG 0x3d11
527
528#define STM32F429_PD14_FUNC_GPIO 0x3e00
529#define STM32F429_PD14_FUNC_TIM4_CH3 0x3e03
530#define STM32F429_PD14_FUNC_FMC_D0 0x3e0d
531#define STM32F429_PD14_FUNC_EVENTOUT 0x3e10
532#define STM32F429_PD14_FUNC_ANALOG 0x3e11
533
534#define STM32F429_PD15_FUNC_GPIO 0x3f00
535#define STM32F429_PD15_FUNC_TIM4_CH4 0x3f03
536#define STM32F429_PD15_FUNC_FMC_D1 0x3f0d
537#define STM32F429_PD15_FUNC_EVENTOUT 0x3f10
538#define STM32F429_PD15_FUNC_ANALOG 0x3f11
539
540
541
542#define STM32F429_PE0_FUNC_GPIO 0x4000
543#define STM32F429_PE0_FUNC_TIM4_ETR 0x4003
544#define STM32F429_PE0_FUNC_UART8_RX 0x4009
545#define STM32F429_PE0_FUNC_FMC_NBL0 0x400d
546#define STM32F429_PE0_FUNC_DCMI_D2 0x400e
547#define STM32F429_PE0_FUNC_EVENTOUT 0x4010
548#define STM32F429_PE0_FUNC_ANALOG 0x4011
549
550#define STM32F429_PE1_FUNC_GPIO 0x4100
551#define STM32F429_PE1_FUNC_UART8_TX 0x4109
552#define STM32F429_PE1_FUNC_FMC_NBL1 0x410d
553#define STM32F429_PE1_FUNC_DCMI_D3 0x410e
554#define STM32F429_PE1_FUNC_EVENTOUT 0x4110
555#define STM32F429_PE1_FUNC_ANALOG 0x4111
556
557#define STM32F429_PE2_FUNC_GPIO 0x4200
558#define STM32F429_PE2_FUNC_TRACECLK 0x4201
559#define STM32F429_PE2_FUNC_SPI4_SCK 0x4206
560#define STM32F429_PE2_FUNC_SAI1_MCLK_A 0x4207
561#define STM32F429_PE2_FUNC_ETH_MII_TXD3 0x420c
562#define STM32F429_PE2_FUNC_FMC_A23 0x420d
563#define STM32F429_PE2_FUNC_EVENTOUT 0x4210
564#define STM32F429_PE2_FUNC_ANALOG 0x4211
565
566#define STM32F429_PE3_FUNC_GPIO 0x4300
567#define STM32F429_PE3_FUNC_TRACED0 0x4301
568#define STM32F429_PE3_FUNC_SAI1_SD_B 0x4307
569#define STM32F429_PE3_FUNC_FMC_A19 0x430d
570#define STM32F429_PE3_FUNC_EVENTOUT 0x4310
571#define STM32F429_PE3_FUNC_ANALOG 0x4311
572
573#define STM32F429_PE4_FUNC_GPIO 0x4400
574#define STM32F429_PE4_FUNC_TRACED1 0x4401
575#define STM32F429_PE4_FUNC_SPI4_NSS 0x4406
576#define STM32F429_PE4_FUNC_SAI1_FS_A 0x4407
577#define STM32F429_PE4_FUNC_FMC_A20 0x440d
578#define STM32F429_PE4_FUNC_DCMI_D4 0x440e
579#define STM32F429_PE4_FUNC_LCD_B0 0x440f
580#define STM32F429_PE4_FUNC_EVENTOUT 0x4410
581#define STM32F429_PE4_FUNC_ANALOG 0x4411
582
583#define STM32F429_PE5_FUNC_GPIO 0x4500
584#define STM32F429_PE5_FUNC_TRACED2 0x4501
585#define STM32F429_PE5_FUNC_TIM9_CH1 0x4504
586#define STM32F429_PE5_FUNC_SPI4_MISO 0x4506
587#define STM32F429_PE5_FUNC_SAI1_SCK_A 0x4507
588#define STM32F429_PE5_FUNC_FMC_A21 0x450d
589#define STM32F429_PE5_FUNC_DCMI_D6 0x450e
590#define STM32F429_PE5_FUNC_LCD_G0 0x450f
591#define STM32F429_PE5_FUNC_EVENTOUT 0x4510
592#define STM32F429_PE5_FUNC_ANALOG 0x4511
593
594#define STM32F429_PE6_FUNC_GPIO 0x4600
595#define STM32F429_PE6_FUNC_TRACED3 0x4601
596#define STM32F429_PE6_FUNC_TIM9_CH2 0x4604
597#define STM32F429_PE6_FUNC_SPI4_MOSI 0x4606
598#define STM32F429_PE6_FUNC_SAI1_SD_A 0x4607
599#define STM32F429_PE6_FUNC_FMC_A22 0x460d
600#define STM32F429_PE6_FUNC_DCMI_D7 0x460e
601#define STM32F429_PE6_FUNC_LCD_G1 0x460f
602#define STM32F429_PE6_FUNC_EVENTOUT 0x4610
603#define STM32F429_PE6_FUNC_ANALOG 0x4611
604
605#define STM32F429_PE7_FUNC_GPIO 0x4700
606#define STM32F429_PE7_FUNC_TIM1_ETR 0x4702
607#define STM32F429_PE7_FUNC_UART7_RX 0x4709
608#define STM32F429_PE7_FUNC_FMC_D4 0x470d
609#define STM32F429_PE7_FUNC_EVENTOUT 0x4710
610#define STM32F429_PE7_FUNC_ANALOG 0x4711
611
612#define STM32F429_PE8_FUNC_GPIO 0x4800
613#define STM32F429_PE8_FUNC_TIM1_CH1N 0x4802
614#define STM32F429_PE8_FUNC_UART7_TX 0x4809
615#define STM32F429_PE8_FUNC_FMC_D5 0x480d
616#define STM32F429_PE8_FUNC_EVENTOUT 0x4810
617#define STM32F429_PE8_FUNC_ANALOG 0x4811
618
619#define STM32F429_PE9_FUNC_GPIO 0x4900
620#define STM32F429_PE9_FUNC_TIM1_CH1 0x4902
621#define STM32F429_PE9_FUNC_FMC_D6 0x490d
622#define STM32F429_PE9_FUNC_EVENTOUT 0x4910
623#define STM32F429_PE9_FUNC_ANALOG 0x4911
624
625#define STM32F429_PE10_FUNC_GPIO 0x4a00
626#define STM32F429_PE10_FUNC_TIM1_CH2N 0x4a02
627#define STM32F429_PE10_FUNC_FMC_D7 0x4a0d
628#define STM32F429_PE10_FUNC_EVENTOUT 0x4a10
629#define STM32F429_PE10_FUNC_ANALOG 0x4a11
630
631#define STM32F429_PE11_FUNC_GPIO 0x4b00
632#define STM32F429_PE11_FUNC_TIM1_CH2 0x4b02
633#define STM32F429_PE11_FUNC_SPI4_NSS 0x4b06
634#define STM32F429_PE11_FUNC_FMC_D8 0x4b0d
635#define STM32F429_PE11_FUNC_LCD_G3 0x4b0f
636#define STM32F429_PE11_FUNC_EVENTOUT 0x4b10
637#define STM32F429_PE11_FUNC_ANALOG 0x4b11
638
639#define STM32F429_PE12_FUNC_GPIO 0x4c00
640#define STM32F429_PE12_FUNC_TIM1_CH3N 0x4c02
641#define STM32F429_PE12_FUNC_SPI4_SCK 0x4c06
642#define STM32F429_PE12_FUNC_FMC_D9 0x4c0d
643#define STM32F429_PE12_FUNC_LCD_B4 0x4c0f
644#define STM32F429_PE12_FUNC_EVENTOUT 0x4c10
645#define STM32F429_PE12_FUNC_ANALOG 0x4c11
646
647#define STM32F429_PE13_FUNC_GPIO 0x4d00
648#define STM32F429_PE13_FUNC_TIM1_CH3 0x4d02
649#define STM32F429_PE13_FUNC_SPI4_MISO 0x4d06
650#define STM32F429_PE13_FUNC_FMC_D10 0x4d0d
651#define STM32F429_PE13_FUNC_LCD_DE 0x4d0f
652#define STM32F429_PE13_FUNC_EVENTOUT 0x4d10
653#define STM32F429_PE13_FUNC_ANALOG 0x4d11
654
655#define STM32F429_PE14_FUNC_GPIO 0x4e00
656#define STM32F429_PE14_FUNC_TIM1_CH4 0x4e02
657#define STM32F429_PE14_FUNC_SPI4_MOSI 0x4e06
658#define STM32F429_PE14_FUNC_FMC_D11 0x4e0d
659#define STM32F429_PE14_FUNC_LCD_CLK 0x4e0f
660#define STM32F429_PE14_FUNC_EVENTOUT 0x4e10
661#define STM32F429_PE14_FUNC_ANALOG 0x4e11
662
663#define STM32F429_PE15_FUNC_GPIO 0x4f00
664#define STM32F429_PE15_FUNC_TIM1_BKIN 0x4f02
665#define STM32F429_PE15_FUNC_FMC_D12 0x4f0d
666#define STM32F429_PE15_FUNC_LCD_R7 0x4f0f
667#define STM32F429_PE15_FUNC_EVENTOUT 0x4f10
668#define STM32F429_PE15_FUNC_ANALOG 0x4f11
669
670
671
672#define STM32F429_PF0_FUNC_GPIO 0x5000
673#define STM32F429_PF0_FUNC_I2C2_SDA 0x5005
674#define STM32F429_PF0_FUNC_FMC_A0 0x500d
675#define STM32F429_PF0_FUNC_EVENTOUT 0x5010
676#define STM32F429_PF0_FUNC_ANALOG 0x5011
677
678#define STM32F429_PF1_FUNC_GPIO 0x5100
679#define STM32F429_PF1_FUNC_I2C2_SCL 0x5105
680#define STM32F429_PF1_FUNC_FMC_A1 0x510d
681#define STM32F429_PF1_FUNC_EVENTOUT 0x5110
682#define STM32F429_PF1_FUNC_ANALOG 0x5111
683
684#define STM32F429_PF2_FUNC_GPIO 0x5200
685#define STM32F429_PF2_FUNC_I2C2_SMBA 0x5205
686#define STM32F429_PF2_FUNC_FMC_A2 0x520d
687#define STM32F429_PF2_FUNC_EVENTOUT 0x5210
688#define STM32F429_PF2_FUNC_ANALOG 0x5211
689
690#define STM32F429_PF3_FUNC_GPIO 0x5300
691#define STM32F429_PF3_FUNC_FMC_A3 0x530d
692#define STM32F429_PF3_FUNC_EVENTOUT 0x5310
693#define STM32F429_PF3_FUNC_ANALOG 0x5311
694
695#define STM32F429_PF4_FUNC_GPIO 0x5400
696#define STM32F429_PF4_FUNC_FMC_A4 0x540d
697#define STM32F429_PF4_FUNC_EVENTOUT 0x5410
698#define STM32F429_PF4_FUNC_ANALOG 0x5411
699
700#define STM32F429_PF5_FUNC_GPIO 0x5500
701#define STM32F429_PF5_FUNC_FMC_A5 0x550d
702#define STM32F429_PF5_FUNC_EVENTOUT 0x5510
703#define STM32F429_PF5_FUNC_ANALOG 0x5511
704
705#define STM32F429_PF6_FUNC_GPIO 0x5600
706#define STM32F429_PF6_FUNC_TIM10_CH1 0x5604
707#define STM32F429_PF6_FUNC_SPI5_NSS 0x5606
708#define STM32F429_PF6_FUNC_SAI1_SD_B 0x5607
709#define STM32F429_PF6_FUNC_UART7_RX 0x5609
710#define STM32F429_PF6_FUNC_FMC_NIORD 0x560d
711#define STM32F429_PF6_FUNC_EVENTOUT 0x5610
712#define STM32F429_PF6_FUNC_ANALOG 0x5611
713
714#define STM32F429_PF7_FUNC_GPIO 0x5700
715#define STM32F429_PF7_FUNC_TIM11_CH1 0x5704
716#define STM32F429_PF7_FUNC_SPI5_SCK 0x5706
717#define STM32F429_PF7_FUNC_SAI1_MCLK_B 0x5707
718#define STM32F429_PF7_FUNC_UART7_TX 0x5709
719#define STM32F429_PF7_FUNC_FMC_NREG 0x570d
720#define STM32F429_PF7_FUNC_EVENTOUT 0x5710
721#define STM32F429_PF7_FUNC_ANALOG 0x5711
722
723#define STM32F429_PF8_FUNC_GPIO 0x5800
724#define STM32F429_PF8_FUNC_SPI5_MISO 0x5806
725#define STM32F429_PF8_FUNC_SAI1_SCK_B 0x5807
726#define STM32F429_PF8_FUNC_TIM13_CH1 0x580a
727#define STM32F429_PF8_FUNC_FMC_NIOWR 0x580d
728#define STM32F429_PF8_FUNC_EVENTOUT 0x5810
729#define STM32F429_PF8_FUNC_ANALOG 0x5811
730
731#define STM32F429_PF9_FUNC_GPIO 0x5900
732#define STM32F429_PF9_FUNC_SPI5_MOSI 0x5906
733#define STM32F429_PF9_FUNC_SAI1_FS_B 0x5907
734#define STM32F429_PF9_FUNC_TIM14_CH1 0x590a
735#define STM32F429_PF9_FUNC_FMC_CD 0x590d
736#define STM32F429_PF9_FUNC_EVENTOUT 0x5910
737#define STM32F429_PF9_FUNC_ANALOG 0x5911
738
739#define STM32F429_PF10_FUNC_GPIO 0x5a00
740#define STM32F429_PF10_FUNC_FMC_INTR 0x5a0d
741#define STM32F429_PF10_FUNC_DCMI_D11 0x5a0e
742#define STM32F429_PF10_FUNC_LCD_DE 0x5a0f
743#define STM32F429_PF10_FUNC_EVENTOUT 0x5a10
744#define STM32F429_PF10_FUNC_ANALOG 0x5a11
745
746#define STM32F429_PF11_FUNC_GPIO 0x5b00
747#define STM32F429_PF11_FUNC_SPI5_MOSI 0x5b06
748#define STM32F429_PF11_FUNC_FMC_SDNRAS 0x5b0d
749#define STM32F429_PF11_FUNC_DCMI_D12 0x5b0e
750#define STM32F429_PF11_FUNC_EVENTOUT 0x5b10
751#define STM32F429_PF11_FUNC_ANALOG 0x5b11
752
753#define STM32F429_PF12_FUNC_GPIO 0x5c00
754#define STM32F429_PF12_FUNC_FMC_A6 0x5c0d
755#define STM32F429_PF12_FUNC_EVENTOUT 0x5c10
756#define STM32F429_PF12_FUNC_ANALOG 0x5c11
757
758#define STM32F429_PF13_FUNC_GPIO 0x5d00
759#define STM32F429_PF13_FUNC_FMC_A7 0x5d0d
760#define STM32F429_PF13_FUNC_EVENTOUT 0x5d10
761#define STM32F429_PF13_FUNC_ANALOG 0x5d11
762
763#define STM32F429_PF14_FUNC_GPIO 0x5e00
764#define STM32F429_PF14_FUNC_FMC_A8 0x5e0d
765#define STM32F429_PF14_FUNC_EVENTOUT 0x5e10
766#define STM32F429_PF14_FUNC_ANALOG 0x5e11
767
768#define STM32F429_PF15_FUNC_GPIO 0x5f00
769#define STM32F429_PF15_FUNC_FMC_A9 0x5f0d
770#define STM32F429_PF15_FUNC_EVENTOUT 0x5f10
771#define STM32F429_PF15_FUNC_ANALOG 0x5f11
772
773
774
775#define STM32F429_PG0_FUNC_GPIO 0x6000
776#define STM32F429_PG0_FUNC_FMC_A10 0x600d
777#define STM32F429_PG0_FUNC_EVENTOUT 0x6010
778#define STM32F429_PG0_FUNC_ANALOG 0x6011
779
780#define STM32F429_PG1_FUNC_GPIO 0x6100
781#define STM32F429_PG1_FUNC_FMC_A11 0x610d
782#define STM32F429_PG1_FUNC_EVENTOUT 0x6110
783#define STM32F429_PG1_FUNC_ANALOG 0x6111
784
785#define STM32F429_PG2_FUNC_GPIO 0x6200
786#define STM32F429_PG2_FUNC_FMC_A12 0x620d
787#define STM32F429_PG2_FUNC_EVENTOUT 0x6210
788#define STM32F429_PG2_FUNC_ANALOG 0x6211
789
790#define STM32F429_PG3_FUNC_GPIO 0x6300
791#define STM32F429_PG3_FUNC_FMC_A13 0x630d
792#define STM32F429_PG3_FUNC_EVENTOUT 0x6310
793#define STM32F429_PG3_FUNC_ANALOG 0x6311
794
795#define STM32F429_PG4_FUNC_GPIO 0x6400
796#define STM32F429_PG4_FUNC_FMC_A14_FMC_BA0 0x640d
797#define STM32F429_PG4_FUNC_EVENTOUT 0x6410
798#define STM32F429_PG4_FUNC_ANALOG 0x6411
799
800#define STM32F429_PG5_FUNC_GPIO 0x6500
801#define STM32F429_PG5_FUNC_FMC_A15_FMC_BA1 0x650d
802#define STM32F429_PG5_FUNC_EVENTOUT 0x6510
803#define STM32F429_PG5_FUNC_ANALOG 0x6511
804
805#define STM32F429_PG6_FUNC_GPIO 0x6600
806#define STM32F429_PG6_FUNC_FMC_INT2 0x660d
807#define STM32F429_PG6_FUNC_DCMI_D12 0x660e
808#define STM32F429_PG6_FUNC_LCD_R7 0x660f
809#define STM32F429_PG6_FUNC_EVENTOUT 0x6610
810#define STM32F429_PG6_FUNC_ANALOG 0x6611
811
812#define STM32F429_PG7_FUNC_GPIO 0x6700
813#define STM32F429_PG7_FUNC_USART6_CK 0x6709
814#define STM32F429_PG7_FUNC_FMC_INT3 0x670d
815#define STM32F429_PG7_FUNC_DCMI_D13 0x670e
816#define STM32F429_PG7_FUNC_LCD_CLK 0x670f
817#define STM32F429_PG7_FUNC_EVENTOUT 0x6710
818#define STM32F429_PG7_FUNC_ANALOG 0x6711
819
820#define STM32F429_PG8_FUNC_GPIO 0x6800
821#define STM32F429_PG8_FUNC_SPI6_NSS 0x6806
822#define STM32F429_PG8_FUNC_USART6_RTS 0x6809
823#define STM32F429_PG8_FUNC_ETH_PPS_OUT 0x680c
824#define STM32F429_PG8_FUNC_FMC_SDCLK 0x680d
825#define STM32F429_PG8_FUNC_EVENTOUT 0x6810
826#define STM32F429_PG8_FUNC_ANALOG 0x6811
827
828#define STM32F429_PG9_FUNC_GPIO 0x6900
829#define STM32F429_PG9_FUNC_USART6_RX 0x6909
830#define STM32F429_PG9_FUNC_FMC_NE2_FMC_NCE3 0x690d
831#define STM32F429_PG9_FUNC_DCMI_VSYNC 0x690e
832#define STM32F429_PG9_FUNC_EVENTOUT 0x6910
833#define STM32F429_PG9_FUNC_ANALOG 0x6911
834
835#define STM32F429_PG10_FUNC_GPIO 0x6a00
836#define STM32F429_PG10_FUNC_LCD_G3 0x6a0a
837#define STM32F429_PG10_FUNC_FMC_NCE4_1_FMC_NE3 0x6a0d
838#define STM32F429_PG10_FUNC_DCMI_D2 0x6a0e
839#define STM32F429_PG10_FUNC_LCD_B2 0x6a0f
840#define STM32F429_PG10_FUNC_EVENTOUT 0x6a10
841#define STM32F429_PG10_FUNC_ANALOG 0x6a11
842
843#define STM32F429_PG11_FUNC_GPIO 0x6b00
844#define STM32F429_PG11_FUNC_ETH_MII_TX_EN_ETH_RMII_TX_EN 0x6b0c
845#define STM32F429_PG11_FUNC_FMC_NCE4_2 0x6b0d
846#define STM32F429_PG11_FUNC_DCMI_D3 0x6b0e
847#define STM32F429_PG11_FUNC_LCD_B3 0x6b0f
848#define STM32F429_PG11_FUNC_EVENTOUT 0x6b10
849#define STM32F429_PG11_FUNC_ANALOG 0x6b11
850
851#define STM32F429_PG12_FUNC_GPIO 0x6c00
852#define STM32F429_PG12_FUNC_SPI6_MISO 0x6c06
853#define STM32F429_PG12_FUNC_USART6_RTS 0x6c09
854#define STM32F429_PG12_FUNC_LCD_B4 0x6c0a
855#define STM32F429_PG12_FUNC_FMC_NE4 0x6c0d
856#define STM32F429_PG12_FUNC_LCD_B1 0x6c0f
857#define STM32F429_PG12_FUNC_EVENTOUT 0x6c10
858#define STM32F429_PG12_FUNC_ANALOG 0x6c11
859
860#define STM32F429_PG13_FUNC_GPIO 0x6d00
861#define STM32F429_PG13_FUNC_SPI6_SCK 0x6d06
862#define STM32F429_PG13_FUNC_USART6_CTS 0x6d09
863#define STM32F429_PG13_FUNC_ETH_MII_TXD0_ETH_RMII_TXD0 0x6d0c
864#define STM32F429_PG13_FUNC_FMC_A24 0x6d0d
865#define STM32F429_PG13_FUNC_EVENTOUT 0x6d10
866#define STM32F429_PG13_FUNC_ANALOG 0x6d11
867
868#define STM32F429_PG14_FUNC_GPIO 0x6e00
869#define STM32F429_PG14_FUNC_SPI6_MOSI 0x6e06
870#define STM32F429_PG14_FUNC_USART6_TX 0x6e09
871#define STM32F429_PG14_FUNC_ETH_MII_TXD1_ETH_RMII_TXD1 0x6e0c
872#define STM32F429_PG14_FUNC_FMC_A25 0x6e0d
873#define STM32F429_PG14_FUNC_EVENTOUT 0x6e10
874#define STM32F429_PG14_FUNC_ANALOG 0x6e11
875
876#define STM32F429_PG15_FUNC_GPIO 0x6f00
877#define STM32F429_PG15_FUNC_USART6_CTS 0x6f09
878#define STM32F429_PG15_FUNC_FMC_SDNCAS 0x6f0d
879#define STM32F429_PG15_FUNC_DCMI_D13 0x6f0e
880#define STM32F429_PG15_FUNC_EVENTOUT 0x6f10
881#define STM32F429_PG15_FUNC_ANALOG 0x6f11
882
883
884
885#define STM32F429_PH0_FUNC_GPIO 0x7000
886#define STM32F429_PH0_FUNC_EVENTOUT 0x7010
887#define STM32F429_PH0_FUNC_ANALOG 0x7011
888
889#define STM32F429_PH1_FUNC_GPIO 0x7100
890#define STM32F429_PH1_FUNC_EVENTOUT 0x7110
891#define STM32F429_PH1_FUNC_ANALOG 0x7111
892
893#define STM32F429_PH2_FUNC_GPIO 0x7200
894#define STM32F429_PH2_FUNC_ETH_MII_CRS 0x720c
895#define STM32F429_PH2_FUNC_FMC_SDCKE0 0x720d
896#define STM32F429_PH2_FUNC_LCD_R0 0x720f
897#define STM32F429_PH2_FUNC_EVENTOUT 0x7210
898#define STM32F429_PH2_FUNC_ANALOG 0x7211
899
900#define STM32F429_PH3_FUNC_GPIO 0x7300
901#define STM32F429_PH3_FUNC_ETH_MII_COL 0x730c
902#define STM32F429_PH3_FUNC_FMC_SDNE0 0x730d
903#define STM32F429_PH3_FUNC_LCD_R1 0x730f
904#define STM32F429_PH3_FUNC_EVENTOUT 0x7310
905#define STM32F429_PH3_FUNC_ANALOG 0x7311
906
907#define STM32F429_PH4_FUNC_GPIO 0x7400
908#define STM32F429_PH4_FUNC_I2C2_SCL 0x7405
909#define STM32F429_PH4_FUNC_OTG_HS_ULPI_NXT 0x740b
910#define STM32F429_PH4_FUNC_EVENTOUT 0x7410
911#define STM32F429_PH4_FUNC_ANALOG 0x7411
912
913#define STM32F429_PH5_FUNC_GPIO 0x7500
914#define STM32F429_PH5_FUNC_I2C2_SDA 0x7505
915#define STM32F429_PH5_FUNC_SPI5_NSS 0x7506
916#define STM32F429_PH5_FUNC_FMC_SDNWE 0x750d
917#define STM32F429_PH5_FUNC_EVENTOUT 0x7510
918#define STM32F429_PH5_FUNC_ANALOG 0x7511
919
920#define STM32F429_PH6_FUNC_GPIO 0x7600
921#define STM32F429_PH6_FUNC_I2C2_SMBA 0x7605
922#define STM32F429_PH6_FUNC_SPI5_SCK 0x7606
923#define STM32F429_PH6_FUNC_TIM12_CH1 0x760a
924#define STM32F429_PH6_FUNC_ETH_MII_RXD2 0x760c
925#define STM32F429_PH6_FUNC_FMC_SDNE1 0x760d
926#define STM32F429_PH6_FUNC_DCMI_D8 0x760e
927#define STM32F429_PH6_FUNC_EVENTOUT 0x7610
928#define STM32F429_PH6_FUNC_ANALOG 0x7611
929
930#define STM32F429_PH7_FUNC_GPIO 0x7700
931#define STM32F429_PH7_FUNC_I2C3_SCL 0x7705
932#define STM32F429_PH7_FUNC_SPI5_MISO 0x7706
933#define STM32F429_PH7_FUNC_ETH_MII_RXD3 0x770c
934#define STM32F429_PH7_FUNC_FMC_SDCKE1 0x770d
935#define STM32F429_PH7_FUNC_DCMI_D9 0x770e
936#define STM32F429_PH7_FUNC_EVENTOUT 0x7710
937#define STM32F429_PH7_FUNC_ANALOG 0x7711
938
939#define STM32F429_PH8_FUNC_GPIO 0x7800
940#define STM32F429_PH8_FUNC_I2C3_SDA 0x7805
941#define STM32F429_PH8_FUNC_FMC_D16 0x780d
942#define STM32F429_PH8_FUNC_DCMI_HSYNC 0x780e
943#define STM32F429_PH8_FUNC_LCD_R2 0x780f
944#define STM32F429_PH8_FUNC_EVENTOUT 0x7810
945#define STM32F429_PH8_FUNC_ANALOG 0x7811
946
947#define STM32F429_PH9_FUNC_GPIO 0x7900
948#define STM32F429_PH9_FUNC_I2C3_SMBA 0x7905
949#define STM32F429_PH9_FUNC_TIM12_CH2 0x790a
950#define STM32F429_PH9_FUNC_FMC_D17 0x790d
951#define STM32F429_PH9_FUNC_DCMI_D0 0x790e
952#define STM32F429_PH9_FUNC_LCD_R3 0x790f
953#define STM32F429_PH9_FUNC_EVENTOUT 0x7910
954#define STM32F429_PH9_FUNC_ANALOG 0x7911
955
956#define STM32F429_PH10_FUNC_GPIO 0x7a00
957#define STM32F429_PH10_FUNC_TIM5_CH1 0x7a03
958#define STM32F429_PH10_FUNC_FMC_D18 0x7a0d
959#define STM32F429_PH10_FUNC_DCMI_D1 0x7a0e
960#define STM32F429_PH10_FUNC_LCD_R4 0x7a0f
961#define STM32F429_PH10_FUNC_EVENTOUT 0x7a10
962#define STM32F429_PH10_FUNC_ANALOG 0x7a11
963
964#define STM32F429_PH11_FUNC_GPIO 0x7b00
965#define STM32F429_PH11_FUNC_TIM5_CH2 0x7b03
966#define STM32F429_PH11_FUNC_FMC_D19 0x7b0d
967#define STM32F429_PH11_FUNC_DCMI_D2 0x7b0e
968#define STM32F429_PH11_FUNC_LCD_R5 0x7b0f
969#define STM32F429_PH11_FUNC_EVENTOUT 0x7b10
970#define STM32F429_PH11_FUNC_ANALOG 0x7b11
971
972#define STM32F429_PH12_FUNC_GPIO 0x7c00
973#define STM32F429_PH12_FUNC_TIM5_CH3 0x7c03
974#define STM32F429_PH12_FUNC_FMC_D20 0x7c0d
975#define STM32F429_PH12_FUNC_DCMI_D3 0x7c0e
976#define STM32F429_PH12_FUNC_LCD_R6 0x7c0f
977#define STM32F429_PH12_FUNC_EVENTOUT 0x7c10
978#define STM32F429_PH12_FUNC_ANALOG 0x7c11
979
980#define STM32F429_PH13_FUNC_GPIO 0x7d00
981#define STM32F429_PH13_FUNC_TIM8_CH1N 0x7d04
982#define STM32F429_PH13_FUNC_CAN1_TX 0x7d0a
983#define STM32F429_PH13_FUNC_FMC_D21 0x7d0d
984#define STM32F429_PH13_FUNC_LCD_G2 0x7d0f
985#define STM32F429_PH13_FUNC_EVENTOUT 0x7d10
986#define STM32F429_PH13_FUNC_ANALOG 0x7d11
987
988#define STM32F429_PH14_FUNC_GPIO 0x7e00
989#define STM32F429_PH14_FUNC_TIM8_CH2N 0x7e04
990#define STM32F429_PH14_FUNC_FMC_D22 0x7e0d
991#define STM32F429_PH14_FUNC_DCMI_D4 0x7e0e
992#define STM32F429_PH14_FUNC_LCD_G3 0x7e0f
993#define STM32F429_PH14_FUNC_EVENTOUT 0x7e10
994#define STM32F429_PH14_FUNC_ANALOG 0x7e11
995
996#define STM32F429_PH15_FUNC_GPIO 0x7f00
997#define STM32F429_PH15_FUNC_TIM8_CH3N 0x7f04
998#define STM32F429_PH15_FUNC_FMC_D23 0x7f0d
999#define STM32F429_PH15_FUNC_DCMI_D11 0x7f0e
1000#define STM32F429_PH15_FUNC_LCD_G4 0x7f0f
1001#define STM32F429_PH15_FUNC_EVENTOUT 0x7f10
1002#define STM32F429_PH15_FUNC_ANALOG 0x7f11
1003
1004
1005
1006#define STM32F429_PI0_FUNC_GPIO 0x8000
1007#define STM32F429_PI0_FUNC_TIM5_CH4 0x8003
1008#define STM32F429_PI0_FUNC_SPI2_NSS_I2S2_WS 0x8006
1009#define STM32F429_PI0_FUNC_FMC_D24 0x800d
1010#define STM32F429_PI0_FUNC_DCMI_D13 0x800e
1011#define STM32F429_PI0_FUNC_LCD_G5 0x800f
1012#define STM32F429_PI0_FUNC_EVENTOUT 0x8010
1013#define STM32F429_PI0_FUNC_ANALOG 0x8011
1014
1015#define STM32F429_PI1_FUNC_GPIO 0x8100
1016#define STM32F429_PI1_FUNC_SPI2_SCK_I2S2_CK 0x8106
1017#define STM32F429_PI1_FUNC_FMC_D25 0x810d
1018#define STM32F429_PI1_FUNC_DCMI_D8 0x810e
1019#define STM32F429_PI1_FUNC_LCD_G6 0x810f
1020#define STM32F429_PI1_FUNC_EVENTOUT 0x8110
1021#define STM32F429_PI1_FUNC_ANALOG 0x8111
1022
1023#define STM32F429_PI2_FUNC_GPIO 0x8200
1024#define STM32F429_PI2_FUNC_TIM8_CH4 0x8204
1025#define STM32F429_PI2_FUNC_SPI2_MISO 0x8206
1026#define STM32F429_PI2_FUNC_I2S2EXT_SD 0x8207
1027#define STM32F429_PI2_FUNC_FMC_D26 0x820d
1028#define STM32F429_PI2_FUNC_DCMI_D9 0x820e
1029#define STM32F429_PI2_FUNC_LCD_G7 0x820f
1030#define STM32F429_PI2_FUNC_EVENTOUT 0x8210
1031#define STM32F429_PI2_FUNC_ANALOG 0x8211
1032
1033#define STM32F429_PI3_FUNC_GPIO 0x8300
1034#define STM32F429_PI3_FUNC_TIM8_ETR 0x8304
1035#define STM32F429_PI3_FUNC_SPI2_MOSI_I2S2_SD 0x8306
1036#define STM32F429_PI3_FUNC_FMC_D27 0x830d
1037#define STM32F429_PI3_FUNC_DCMI_D10 0x830e
1038#define STM32F429_PI3_FUNC_EVENTOUT 0x8310
1039#define STM32F429_PI3_FUNC_ANALOG 0x8311
1040
1041#define STM32F429_PI4_FUNC_GPIO 0x8400
1042#define STM32F429_PI4_FUNC_TIM8_BKIN 0x8404
1043#define STM32F429_PI4_FUNC_FMC_NBL2 0x840d
1044#define STM32F429_PI4_FUNC_DCMI_D5 0x840e
1045#define STM32F429_PI4_FUNC_LCD_B4 0x840f
1046#define STM32F429_PI4_FUNC_EVENTOUT 0x8410
1047#define STM32F429_PI4_FUNC_ANALOG 0x8411
1048
1049#define STM32F429_PI5_FUNC_GPIO 0x8500
1050#define STM32F429_PI5_FUNC_TIM8_CH1 0x8504
1051#define STM32F429_PI5_FUNC_FMC_NBL3 0x850d
1052#define STM32F429_PI5_FUNC_DCMI_VSYNC 0x850e
1053#define STM32F429_PI5_FUNC_LCD_B5 0x850f
1054#define STM32F429_PI5_FUNC_EVENTOUT 0x8510
1055#define STM32F429_PI5_FUNC_ANALOG 0x8511
1056
1057#define STM32F429_PI6_FUNC_GPIO 0x8600
1058#define STM32F429_PI6_FUNC_TIM8_CH2 0x8604
1059#define STM32F429_PI6_FUNC_FMC_D28 0x860d
1060#define STM32F429_PI6_FUNC_DCMI_D6 0x860e
1061#define STM32F429_PI6_FUNC_LCD_B6 0x860f
1062#define STM32F429_PI6_FUNC_EVENTOUT 0x8610
1063#define STM32F429_PI6_FUNC_ANALOG 0x8611
1064
1065#define STM32F429_PI7_FUNC_GPIO 0x8700
1066#define STM32F429_PI7_FUNC_TIM8_CH3 0x8704
1067#define STM32F429_PI7_FUNC_FMC_D29 0x870d
1068#define STM32F429_PI7_FUNC_DCMI_D7 0x870e
1069#define STM32F429_PI7_FUNC_LCD_B7 0x870f
1070#define STM32F429_PI7_FUNC_EVENTOUT 0x8710
1071#define STM32F429_PI7_FUNC_ANALOG 0x8711
1072
1073#define STM32F429_PI8_FUNC_GPIO 0x8800
1074#define STM32F429_PI8_FUNC_EVENTOUT 0x8810
1075#define STM32F429_PI8_FUNC_ANALOG 0x8811
1076
1077#define STM32F429_PI9_FUNC_GPIO 0x8900
1078#define STM32F429_PI9_FUNC_CAN1_RX 0x890a
1079#define STM32F429_PI9_FUNC_FMC_D30 0x890d
1080#define STM32F429_PI9_FUNC_LCD_VSYNC 0x890f
1081#define STM32F429_PI9_FUNC_EVENTOUT 0x8910
1082#define STM32F429_PI9_FUNC_ANALOG 0x8911
1083
1084#define STM32F429_PI10_FUNC_GPIO 0x8a00
1085#define STM32F429_PI10_FUNC_ETH_MII_RX_ER 0x8a0c
1086#define STM32F429_PI10_FUNC_FMC_D31 0x8a0d
1087#define STM32F429_PI10_FUNC_LCD_HSYNC 0x8a0f
1088#define STM32F429_PI10_FUNC_EVENTOUT 0x8a10
1089#define STM32F429_PI10_FUNC_ANALOG 0x8a11
1090
1091#define STM32F429_PI11_FUNC_GPIO 0x8b00
1092#define STM32F429_PI11_FUNC_OTG_HS_ULPI_DIR 0x8b0b
1093#define STM32F429_PI11_FUNC_EVENTOUT 0x8b10
1094#define STM32F429_PI11_FUNC_ANALOG 0x8b11
1095
1096#define STM32F429_PI12_FUNC_GPIO 0x8c00
1097#define STM32F429_PI12_FUNC_LCD_HSYNC 0x8c0f
1098#define STM32F429_PI12_FUNC_EVENTOUT 0x8c10
1099#define STM32F429_PI12_FUNC_ANALOG 0x8c11
1100
1101#define STM32F429_PI13_FUNC_GPIO 0x8d00
1102#define STM32F429_PI13_FUNC_LCD_VSYNC 0x8d0f
1103#define STM32F429_PI13_FUNC_EVENTOUT 0x8d10
1104#define STM32F429_PI13_FUNC_ANALOG 0x8d11
1105
1106#define STM32F429_PI14_FUNC_GPIO 0x8e00
1107#define STM32F429_PI14_FUNC_LCD_CLK 0x8e0f
1108#define STM32F429_PI14_FUNC_EVENTOUT 0x8e10
1109#define STM32F429_PI14_FUNC_ANALOG 0x8e11
1110
1111#define STM32F429_PI15_FUNC_GPIO 0x8f00
1112#define STM32F429_PI15_FUNC_LCD_R0 0x8f0f
1113#define STM32F429_PI15_FUNC_EVENTOUT 0x8f10
1114#define STM32F429_PI15_FUNC_ANALOG 0x8f11
1115
1116
1117
1118#define STM32F429_PJ0_FUNC_GPIO 0x9000
1119#define STM32F429_PJ0_FUNC_LCD_R1 0x900f
1120#define STM32F429_PJ0_FUNC_EVENTOUT 0x9010
1121#define STM32F429_PJ0_FUNC_ANALOG 0x9011
1122
1123#define STM32F429_PJ1_FUNC_GPIO 0x9100
1124#define STM32F429_PJ1_FUNC_LCD_R2 0x910f
1125#define STM32F429_PJ1_FUNC_EVENTOUT 0x9110
1126#define STM32F429_PJ1_FUNC_ANALOG 0x9111
1127
1128#define STM32F429_PJ2_FUNC_GPIO 0x9200
1129#define STM32F429_PJ2_FUNC_LCD_R3 0x920f
1130#define STM32F429_PJ2_FUNC_EVENTOUT 0x9210
1131#define STM32F429_PJ2_FUNC_ANALOG 0x9211
1132
1133#define STM32F429_PJ3_FUNC_GPIO 0x9300
1134#define STM32F429_PJ3_FUNC_LCD_R4 0x930f
1135#define STM32F429_PJ3_FUNC_EVENTOUT 0x9310
1136#define STM32F429_PJ3_FUNC_ANALOG 0x9311
1137
1138#define STM32F429_PJ4_FUNC_GPIO 0x9400
1139#define STM32F429_PJ4_FUNC_LCD_R5 0x940f
1140#define STM32F429_PJ4_FUNC_EVENTOUT 0x9410
1141#define STM32F429_PJ4_FUNC_ANALOG 0x9411
1142
1143#define STM32F429_PJ5_FUNC_GPIO 0x9500
1144#define STM32F429_PJ5_FUNC_LCD_R6 0x950f
1145#define STM32F429_PJ5_FUNC_EVENTOUT 0x9510
1146#define STM32F429_PJ5_FUNC_ANALOG 0x9511
1147
1148#define STM32F429_PJ6_FUNC_GPIO 0x9600
1149#define STM32F429_PJ6_FUNC_LCD_R7 0x960f
1150#define STM32F429_PJ6_FUNC_EVENTOUT 0x9610
1151#define STM32F429_PJ6_FUNC_ANALOG 0x9611
1152
1153#define STM32F429_PJ7_FUNC_GPIO 0x9700
1154#define STM32F429_PJ7_FUNC_LCD_G0 0x970f
1155#define STM32F429_PJ7_FUNC_EVENTOUT 0x9710
1156#define STM32F429_PJ7_FUNC_ANALOG 0x9711
1157
1158#define STM32F429_PJ8_FUNC_GPIO 0x9800
1159#define STM32F429_PJ8_FUNC_LCD_G1 0x980f
1160#define STM32F429_PJ8_FUNC_EVENTOUT 0x9810
1161#define STM32F429_PJ8_FUNC_ANALOG 0x9811
1162
1163#define STM32F429_PJ9_FUNC_GPIO 0x9900
1164#define STM32F429_PJ9_FUNC_LCD_G2 0x990f
1165#define STM32F429_PJ9_FUNC_EVENTOUT 0x9910
1166#define STM32F429_PJ9_FUNC_ANALOG 0x9911
1167
1168#define STM32F429_PJ10_FUNC_GPIO 0x9a00
1169#define STM32F429_PJ10_FUNC_LCD_G3 0x9a0f
1170#define STM32F429_PJ10_FUNC_EVENTOUT 0x9a10
1171#define STM32F429_PJ10_FUNC_ANALOG 0x9a11
1172
1173#define STM32F429_PJ11_FUNC_GPIO 0x9b00
1174#define STM32F429_PJ11_FUNC_LCD_G4 0x9b0f
1175#define STM32F429_PJ11_FUNC_EVENTOUT 0x9b10
1176#define STM32F429_PJ11_FUNC_ANALOG 0x9b11
1177
1178#define STM32F429_PJ12_FUNC_GPIO 0x9c00
1179#define STM32F429_PJ12_FUNC_LCD_B0 0x9c0f
1180#define STM32F429_PJ12_FUNC_EVENTOUT 0x9c10
1181#define STM32F429_PJ12_FUNC_ANALOG 0x9c11
1182
1183#define STM32F429_PJ13_FUNC_GPIO 0x9d00
1184#define STM32F429_PJ13_FUNC_LCD_B1 0x9d0f
1185#define STM32F429_PJ13_FUNC_EVENTOUT 0x9d10
1186#define STM32F429_PJ13_FUNC_ANALOG 0x9d11
1187
1188#define STM32F429_PJ14_FUNC_GPIO 0x9e00
1189#define STM32F429_PJ14_FUNC_LCD_B2 0x9e0f
1190#define STM32F429_PJ14_FUNC_EVENTOUT 0x9e10
1191#define STM32F429_PJ14_FUNC_ANALOG 0x9e11
1192
1193#define STM32F429_PJ15_FUNC_GPIO 0x9f00
1194#define STM32F429_PJ15_FUNC_LCD_B3 0x9f0f
1195#define STM32F429_PJ15_FUNC_EVENTOUT 0x9f10
1196#define STM32F429_PJ15_FUNC_ANALOG 0x9f11
1197
1198
1199
1200#define STM32F429_PK0_FUNC_GPIO 0xa000
1201#define STM32F429_PK0_FUNC_LCD_G5 0xa00f
1202#define STM32F429_PK0_FUNC_EVENTOUT 0xa010
1203#define STM32F429_PK0_FUNC_ANALOG 0xa011
1204
1205#define STM32F429_PK1_FUNC_GPIO 0xa100
1206#define STM32F429_PK1_FUNC_LCD_G6 0xa10f
1207#define STM32F429_PK1_FUNC_EVENTOUT 0xa110
1208#define STM32F429_PK1_FUNC_ANALOG 0xa111
1209
1210#define STM32F429_PK2_FUNC_GPIO 0xa200
1211#define STM32F429_PK2_FUNC_LCD_G7 0xa20f
1212#define STM32F429_PK2_FUNC_EVENTOUT 0xa210
1213#define STM32F429_PK2_FUNC_ANALOG 0xa211
1214
1215#define STM32F429_PK3_FUNC_GPIO 0xa300
1216#define STM32F429_PK3_FUNC_LCD_B4 0xa30f
1217#define STM32F429_PK3_FUNC_EVENTOUT 0xa310
1218#define STM32F429_PK3_FUNC_ANALOG 0xa311
1219
1220#define STM32F429_PK4_FUNC_GPIO 0xa400
1221#define STM32F429_PK4_FUNC_LCD_B5 0xa40f
1222#define STM32F429_PK4_FUNC_EVENTOUT 0xa410
1223#define STM32F429_PK4_FUNC_ANALOG 0xa411
1224
1225#define STM32F429_PK5_FUNC_GPIO 0xa500
1226#define STM32F429_PK5_FUNC_LCD_B6 0xa50f
1227#define STM32F429_PK5_FUNC_EVENTOUT 0xa510
1228#define STM32F429_PK5_FUNC_ANALOG 0xa511
1229
1230#define STM32F429_PK6_FUNC_GPIO 0xa600
1231#define STM32F429_PK6_FUNC_LCD_B7 0xa60f
1232#define STM32F429_PK6_FUNC_EVENTOUT 0xa610
1233#define STM32F429_PK6_FUNC_ANALOG 0xa611
1234
1235#define STM32F429_PK7_FUNC_GPIO 0xa700
1236#define STM32F429_PK7_FUNC_LCD_DE 0xa70f
1237#define STM32F429_PK7_FUNC_EVENTOUT 0xa710
1238#define STM32F429_PK7_FUNC_ANALOG 0xa711
1239
1240#endif /* _DT_BINDINGS_STM32F429_PINFUNC_H */
diff --git a/include/dt-bindings/pinctrl/stm32f746-pinfunc.h b/include/dt-bindings/pinctrl/stm32f746-pinfunc.h
deleted file mode 100644
index 4c28f8f41621..000000000000
--- a/include/dt-bindings/pinctrl/stm32f746-pinfunc.h
+++ /dev/null
@@ -1,1325 +0,0 @@
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _DT_BINDINGS_STM32F746_PINFUNC_H
3#define _DT_BINDINGS_STM32F746_PINFUNC_H
4
5#define STM32F746_PA0_FUNC_GPIO 0x0
6#define STM32F746_PA0_FUNC_TIM2_CH1_TIM2_ETR 0x2
7#define STM32F746_PA0_FUNC_TIM5_CH1 0x3
8#define STM32F746_PA0_FUNC_TIM8_ETR 0x4
9#define STM32F746_PA0_FUNC_USART2_CTS 0x8
10#define STM32F746_PA0_FUNC_UART4_TX 0x9
11#define STM32F746_PA0_FUNC_SAI2_SD_B 0xb
12#define STM32F746_PA0_FUNC_ETH_MII_CRS 0xc
13#define STM32F746_PA0_FUNC_EVENTOUT 0x10
14#define STM32F746_PA0_FUNC_ANALOG 0x11
15
16#define STM32F746_PA1_FUNC_GPIO 0x100
17#define STM32F746_PA1_FUNC_TIM2_CH2 0x102
18#define STM32F746_PA1_FUNC_TIM5_CH2 0x103
19#define STM32F746_PA1_FUNC_USART2_RTS 0x108
20#define STM32F746_PA1_FUNC_UART4_RX 0x109
21#define STM32F746_PA1_FUNC_QUADSPI_BK1_IO3 0x10a
22#define STM32F746_PA1_FUNC_SAI2_MCLK_B 0x10b
23#define STM32F746_PA1_FUNC_ETH_MII_RX_CLK_ETH_RMII_REF_CLK 0x10c
24#define STM32F746_PA1_FUNC_LCD_R2 0x10f
25#define STM32F746_PA1_FUNC_EVENTOUT 0x110
26#define STM32F746_PA1_FUNC_ANALOG 0x111
27
28#define STM32F746_PA2_FUNC_GPIO 0x200
29#define STM32F746_PA2_FUNC_TIM2_CH3 0x202
30#define STM32F746_PA2_FUNC_TIM5_CH3 0x203
31#define STM32F746_PA2_FUNC_TIM9_CH1 0x204
32#define STM32F746_PA2_FUNC_USART2_TX 0x208
33#define STM32F746_PA2_FUNC_SAI2_SCK_B 0x209
34#define STM32F746_PA2_FUNC_ETH_MDIO 0x20c
35#define STM32F746_PA2_FUNC_LCD_R1 0x20f
36#define STM32F746_PA2_FUNC_EVENTOUT 0x210
37#define STM32F746_PA2_FUNC_ANALOG 0x211
38
39#define STM32F746_PA3_FUNC_GPIO 0x300
40#define STM32F746_PA3_FUNC_TIM2_CH4 0x302
41#define STM32F746_PA3_FUNC_TIM5_CH4 0x303
42#define STM32F746_PA3_FUNC_TIM9_CH2 0x304
43#define STM32F746_PA3_FUNC_USART2_RX 0x308
44#define STM32F746_PA3_FUNC_OTG_HS_ULPI_D0 0x30b
45#define STM32F746_PA3_FUNC_ETH_MII_COL 0x30c
46#define STM32F746_PA3_FUNC_LCD_B5 0x30f
47#define STM32F746_PA3_FUNC_EVENTOUT 0x310
48#define STM32F746_PA3_FUNC_ANALOG 0x311
49
50#define STM32F746_PA4_FUNC_GPIO 0x400
51#define STM32F746_PA4_FUNC_SPI1_NSS_I2S1_WS 0x406
52#define STM32F746_PA4_FUNC_SPI3_NSS_I2S3_WS 0x407
53#define STM32F746_PA4_FUNC_USART2_CK 0x408
54#define STM32F746_PA4_FUNC_OTG_HS_SOF 0x40d
55#define STM32F746_PA4_FUNC_DCMI_HSYNC 0x40e
56#define STM32F746_PA4_FUNC_LCD_VSYNC 0x40f
57#define STM32F746_PA4_FUNC_EVENTOUT 0x410
58#define STM32F746_PA4_FUNC_ANALOG 0x411
59
60#define STM32F746_PA5_FUNC_GPIO 0x500
61#define STM32F746_PA5_FUNC_TIM2_CH1_TIM2_ETR 0x502
62#define STM32F746_PA5_FUNC_TIM8_CH1N 0x504
63#define STM32F746_PA5_FUNC_SPI1_SCK_I2S1_CK 0x506
64#define STM32F746_PA5_FUNC_OTG_HS_ULPI_CK 0x50b
65#define STM32F746_PA5_FUNC_LCD_R4 0x50f
66#define STM32F746_PA5_FUNC_EVENTOUT 0x510
67#define STM32F746_PA5_FUNC_ANALOG 0x511
68
69#define STM32F746_PA6_FUNC_GPIO 0x600
70#define STM32F746_PA6_FUNC_TIM1_BKIN 0x602
71#define STM32F746_PA6_FUNC_TIM3_CH1 0x603
72#define STM32F746_PA6_FUNC_TIM8_BKIN 0x604
73#define STM32F746_PA6_FUNC_SPI1_MISO 0x606
74#define STM32F746_PA6_FUNC_TIM13_CH1 0x60a
75#define STM32F746_PA6_FUNC_DCMI_PIXCLK 0x60e
76#define STM32F746_PA6_FUNC_LCD_G2 0x60f
77#define STM32F746_PA6_FUNC_EVENTOUT 0x610
78#define STM32F746_PA6_FUNC_ANALOG 0x611
79
80#define STM32F746_PA7_FUNC_GPIO 0x700
81#define STM32F746_PA7_FUNC_TIM1_CH1N 0x702
82#define STM32F746_PA7_FUNC_TIM3_CH2 0x703
83#define STM32F746_PA7_FUNC_TIM8_CH1N 0x704
84#define STM32F746_PA7_FUNC_SPI1_MOSI_I2S1_SD 0x706
85#define STM32F746_PA7_FUNC_TIM14_CH1 0x70a
86#define STM32F746_PA7_FUNC_ETH_MII_RX_DV_ETH_RMII_CRS_DV 0x70c
87#define STM32F746_PA7_FUNC_FMC_SDNWE 0x70d
88#define STM32F746_PA7_FUNC_EVENTOUT 0x710
89#define STM32F746_PA7_FUNC_ANALOG 0x711
90
91#define STM32F746_PA8_FUNC_GPIO 0x800
92#define STM32F746_PA8_FUNC_MCO1 0x801
93#define STM32F746_PA8_FUNC_TIM1_CH1 0x802
94#define STM32F746_PA8_FUNC_TIM8_BKIN2 0x804
95#define STM32F746_PA8_FUNC_I2C3_SCL 0x805
96#define STM32F746_PA8_FUNC_USART1_CK 0x808
97#define STM32F746_PA8_FUNC_OTG_FS_SOF 0x80b
98#define STM32F746_PA8_FUNC_LCD_R6 0x80f
99#define STM32F746_PA8_FUNC_EVENTOUT 0x810
100#define STM32F746_PA8_FUNC_ANALOG 0x811
101
102#define STM32F746_PA9_FUNC_GPIO 0x900
103#define STM32F746_PA9_FUNC_TIM1_CH2 0x902
104#define STM32F746_PA9_FUNC_I2C3_SMBA 0x905
105#define STM32F746_PA9_FUNC_SPI2_SCK_I2S2_CK 0x906
106#define STM32F746_PA9_FUNC_USART1_TX 0x908
107#define STM32F746_PA9_FUNC_DCMI_D0 0x90e
108#define STM32F746_PA9_FUNC_EVENTOUT 0x910
109#define STM32F746_PA9_FUNC_ANALOG 0x911
110
111#define STM32F746_PA10_FUNC_GPIO 0xa00
112#define STM32F746_PA10_FUNC_TIM1_CH3 0xa02
113#define STM32F746_PA10_FUNC_USART1_RX 0xa08
114#define STM32F746_PA10_FUNC_OTG_FS_ID 0xa0b
115#define STM32F746_PA10_FUNC_DCMI_D1 0xa0e
116#define STM32F746_PA10_FUNC_EVENTOUT 0xa10
117#define STM32F746_PA10_FUNC_ANALOG 0xa11
118
119#define STM32F746_PA11_FUNC_GPIO 0xb00
120#define STM32F746_PA11_FUNC_TIM1_CH4 0xb02
121#define STM32F746_PA11_FUNC_USART1_CTS 0xb08
122#define STM32F746_PA11_FUNC_CAN1_RX 0xb0a
123#define STM32F746_PA11_FUNC_OTG_FS_DM 0xb0b
124#define STM32F746_PA11_FUNC_LCD_R4 0xb0f
125#define STM32F746_PA11_FUNC_EVENTOUT 0xb10
126#define STM32F746_PA11_FUNC_ANALOG 0xb11
127
128#define STM32F746_PA12_FUNC_GPIO 0xc00
129#define STM32F746_PA12_FUNC_TIM1_ETR 0xc02
130#define STM32F746_PA12_FUNC_USART1_RTS 0xc08
131#define STM32F746_PA12_FUNC_SAI2_FS_B 0xc09
132#define STM32F746_PA12_FUNC_CAN1_TX 0xc0a
133#define STM32F746_PA12_FUNC_OTG_FS_DP 0xc0b
134#define STM32F746_PA12_FUNC_LCD_R5 0xc0f
135#define STM32F746_PA12_FUNC_EVENTOUT 0xc10
136#define STM32F746_PA12_FUNC_ANALOG 0xc11
137
138#define STM32F746_PA13_FUNC_GPIO 0xd00
139#define STM32F746_PA13_FUNC_JTMS_SWDIO 0xd01
140#define STM32F746_PA13_FUNC_EVENTOUT 0xd10
141#define STM32F746_PA13_FUNC_ANALOG 0xd11
142
143#define STM32F746_PA14_FUNC_GPIO 0xe00
144#define STM32F746_PA14_FUNC_JTCK_SWCLK 0xe01
145#define STM32F746_PA14_FUNC_EVENTOUT 0xe10
146#define STM32F746_PA14_FUNC_ANALOG 0xe11
147
148#define STM32F746_PA15_FUNC_GPIO 0xf00
149#define STM32F746_PA15_FUNC_JTDI 0xf01
150#define STM32F746_PA15_FUNC_TIM2_CH1_TIM2_ETR 0xf02
151#define STM32F746_PA15_FUNC_HDMI_CEC 0xf05
152#define STM32F746_PA15_FUNC_SPI1_NSS_I2S1_WS 0xf06
153#define STM32F746_PA15_FUNC_SPI3_NSS_I2S3_WS 0xf07
154#define STM32F746_PA15_FUNC_UART4_RTS 0xf09
155#define STM32F746_PA15_FUNC_EVENTOUT 0xf10
156#define STM32F746_PA15_FUNC_ANALOG 0xf11
157
158
159#define STM32F746_PB0_FUNC_GPIO 0x1000
160#define STM32F746_PB0_FUNC_TIM1_CH2N 0x1002
161#define STM32F746_PB0_FUNC_TIM3_CH3 0x1003
162#define STM32F746_PB0_FUNC_TIM8_CH2N 0x1004
163#define STM32F746_PB0_FUNC_UART4_CTS 0x1009
164#define STM32F746_PB0_FUNC_LCD_R3 0x100a
165#define STM32F746_PB0_FUNC_OTG_HS_ULPI_D1 0x100b
166#define STM32F746_PB0_FUNC_ETH_MII_RXD2 0x100c
167#define STM32F746_PB0_FUNC_EVENTOUT 0x1010
168#define STM32F746_PB0_FUNC_ANALOG 0x1011
169
170#define STM32F746_PB1_FUNC_GPIO 0x1100
171#define STM32F746_PB1_FUNC_TIM1_CH3N 0x1102
172#define STM32F746_PB1_FUNC_TIM3_CH4 0x1103
173#define STM32F746_PB1_FUNC_TIM8_CH3N 0x1104
174#define STM32F746_PB1_FUNC_LCD_R6 0x110a
175#define STM32F746_PB1_FUNC_OTG_HS_ULPI_D2 0x110b
176#define STM32F746_PB1_FUNC_ETH_MII_RXD3 0x110c
177#define STM32F746_PB1_FUNC_EVENTOUT 0x1110
178#define STM32F746_PB1_FUNC_ANALOG 0x1111
179
180#define STM32F746_PB2_FUNC_GPIO 0x1200
181#define STM32F746_PB2_FUNC_SAI1_SD_A 0x1207
182#define STM32F746_PB2_FUNC_SPI3_MOSI_I2S3_SD 0x1208
183#define STM32F746_PB2_FUNC_QUADSPI_CLK 0x120a
184#define STM32F746_PB2_FUNC_EVENTOUT 0x1210
185#define STM32F746_PB2_FUNC_ANALOG 0x1211
186
187#define STM32F746_PB3_FUNC_GPIO 0x1300
188#define STM32F746_PB3_FUNC_JTDO_TRACESWO 0x1301
189#define STM32F746_PB3_FUNC_TIM2_CH2 0x1302
190#define STM32F746_PB3_FUNC_SPI1_SCK_I2S1_CK 0x1306
191#define STM32F746_PB3_FUNC_SPI3_SCK_I2S3_CK 0x1307
192#define STM32F746_PB3_FUNC_EVENTOUT 0x1310
193#define STM32F746_PB3_FUNC_ANALOG 0x1311
194
195#define STM32F746_PB4_FUNC_GPIO 0x1400
196#define STM32F746_PB4_FUNC_NJTRST 0x1401
197#define STM32F746_PB4_FUNC_TIM3_CH1 0x1403
198#define STM32F746_PB4_FUNC_SPI1_MISO 0x1406
199#define STM32F746_PB4_FUNC_SPI3_MISO 0x1407
200#define STM32F746_PB4_FUNC_SPI2_NSS_I2S2_WS 0x1408
201#define STM32F746_PB4_FUNC_EVENTOUT 0x1410
202#define STM32F746_PB4_FUNC_ANALOG 0x1411
203
204#define STM32F746_PB5_FUNC_GPIO 0x1500
205#define STM32F746_PB5_FUNC_TIM3_CH2 0x1503
206#define STM32F746_PB5_FUNC_I2C1_SMBA 0x1505
207#define STM32F746_PB5_FUNC_SPI1_MOSI_I2S1_SD 0x1506
208#define STM32F746_PB5_FUNC_SPI3_MOSI_I2S3_SD 0x1507
209#define STM32F746_PB5_FUNC_CAN2_RX 0x150a
210#define STM32F746_PB5_FUNC_OTG_HS_ULPI_D7 0x150b
211#define STM32F746_PB5_FUNC_ETH_PPS_OUT 0x150c
212#define STM32F746_PB5_FUNC_FMC_SDCKE1 0x150d
213#define STM32F746_PB5_FUNC_DCMI_D10 0x150e
214#define STM32F746_PB5_FUNC_EVENTOUT 0x1510
215#define STM32F746_PB5_FUNC_ANALOG 0x1511
216
217#define STM32F746_PB6_FUNC_GPIO 0x1600
218#define STM32F746_PB6_FUNC_TIM4_CH1 0x1603
219#define STM32F746_PB6_FUNC_HDMI_CEC 0x1604
220#define STM32F746_PB6_FUNC_I2C1_SCL 0x1605
221#define STM32F746_PB6_FUNC_USART1_TX 0x1608
222#define STM32F746_PB6_FUNC_CAN2_TX 0x160a
223#define STM32F746_PB6_FUNC_QUADSPI_BK1_NCS 0x160b
224#define STM32F746_PB6_FUNC_FMC_SDNE1 0x160d
225#define STM32F746_PB6_FUNC_DCMI_D5 0x160e
226#define STM32F746_PB6_FUNC_EVENTOUT 0x1610
227#define STM32F746_PB6_FUNC_ANALOG 0x1611
228
229#define STM32F746_PB7_FUNC_GPIO 0x1700
230#define STM32F746_PB7_FUNC_TIM4_CH2 0x1703
231#define STM32F746_PB7_FUNC_I2C1_SDA 0x1705
232#define STM32F746_PB7_FUNC_USART1_RX 0x1708
233#define STM32F746_PB7_FUNC_FMC_NL 0x170d
234#define STM32F746_PB7_FUNC_DCMI_VSYNC 0x170e
235#define STM32F746_PB7_FUNC_EVENTOUT 0x1710
236#define STM32F746_PB7_FUNC_ANALOG 0x1711
237
238#define STM32F746_PB8_FUNC_GPIO 0x1800
239#define STM32F746_PB8_FUNC_TIM4_CH3 0x1803
240#define STM32F746_PB8_FUNC_TIM10_CH1 0x1804
241#define STM32F746_PB8_FUNC_I2C1_SCL 0x1805
242#define STM32F746_PB8_FUNC_CAN1_RX 0x180a
243#define STM32F746_PB8_FUNC_ETH_MII_TXD3 0x180c
244#define STM32F746_PB8_FUNC_SDMMC1_D4 0x180d
245#define STM32F746_PB8_FUNC_DCMI_D6 0x180e
246#define STM32F746_PB8_FUNC_LCD_B6 0x180f
247#define STM32F746_PB8_FUNC_EVENTOUT 0x1810
248#define STM32F746_PB8_FUNC_ANALOG 0x1811
249
250#define STM32F746_PB9_FUNC_GPIO 0x1900
251#define STM32F746_PB9_FUNC_TIM4_CH4 0x1903
252#define STM32F746_PB9_FUNC_TIM11_CH1 0x1904
253#define STM32F746_PB9_FUNC_I2C1_SDA 0x1905
254#define STM32F746_PB9_FUNC_SPI2_NSS_I2S2_WS 0x1906
255#define STM32F746_PB9_FUNC_CAN1_TX 0x190a
256#define STM32F746_PB9_FUNC_SDMMC1_D5 0x190d
257#define STM32F746_PB9_FUNC_DCMI_D7 0x190e
258#define STM32F746_PB9_FUNC_LCD_B7 0x190f
259#define STM32F746_PB9_FUNC_EVENTOUT 0x1910
260#define STM32F746_PB9_FUNC_ANALOG 0x1911
261
262#define STM32F746_PB10_FUNC_GPIO 0x1a00
263#define STM32F746_PB10_FUNC_TIM2_CH3 0x1a02
264#define STM32F746_PB10_FUNC_I2C2_SCL 0x1a05
265#define STM32F746_PB10_FUNC_SPI2_SCK_I2S2_CK 0x1a06
266#define STM32F746_PB10_FUNC_USART3_TX 0x1a08
267#define STM32F746_PB10_FUNC_OTG_HS_ULPI_D3 0x1a0b
268#define STM32F746_PB10_FUNC_ETH_MII_RX_ER 0x1a0c
269#define STM32F746_PB10_FUNC_LCD_G4 0x1a0f
270#define STM32F746_PB10_FUNC_EVENTOUT 0x1a10
271#define STM32F746_PB10_FUNC_ANALOG 0x1a11
272
273#define STM32F746_PB11_FUNC_GPIO 0x1b00
274#define STM32F746_PB11_FUNC_TIM2_CH4 0x1b02
275#define STM32F746_PB11_FUNC_I2C2_SDA 0x1b05
276#define STM32F746_PB11_FUNC_USART3_RX 0x1b08
277#define STM32F746_PB11_FUNC_OTG_HS_ULPI_D4 0x1b0b
278#define STM32F746_PB11_FUNC_ETH_MII_TX_EN_ETH_RMII_TX_EN 0x1b0c
279#define STM32F746_PB11_FUNC_LCD_G5 0x1b0f
280#define STM32F746_PB11_FUNC_EVENTOUT 0x1b10
281#define STM32F746_PB11_FUNC_ANALOG 0x1b11
282
283#define STM32F746_PB12_FUNC_GPIO 0x1c00
284#define STM32F746_PB12_FUNC_TIM1_BKIN 0x1c02
285#define STM32F746_PB12_FUNC_I2C2_SMBA 0x1c05
286#define STM32F746_PB12_FUNC_SPI2_NSS_I2S2_WS 0x1c06
287#define STM32F746_PB12_FUNC_USART3_CK 0x1c08
288#define STM32F746_PB12_FUNC_CAN2_RX 0x1c0a
289#define STM32F746_PB12_FUNC_OTG_HS_ULPI_D5 0x1c0b
290#define STM32F746_PB12_FUNC_ETH_MII_TXD0_ETH_RMII_TXD0 0x1c0c
291#define STM32F746_PB12_FUNC_OTG_HS_ID 0x1c0d
292#define STM32F746_PB12_FUNC_EVENTOUT 0x1c10
293#define STM32F746_PB12_FUNC_ANALOG 0x1c11
294
295#define STM32F746_PB13_FUNC_GPIO 0x1d00
296#define STM32F746_PB13_FUNC_TIM1_CH1N 0x1d02
297#define STM32F746_PB13_FUNC_SPI2_SCK_I2S2_CK 0x1d06
298#define STM32F746_PB13_FUNC_USART3_CTS 0x1d08
299#define STM32F746_PB13_FUNC_CAN2_TX 0x1d0a
300#define STM32F746_PB13_FUNC_OTG_HS_ULPI_D6 0x1d0b
301#define STM32F746_PB13_FUNC_ETH_MII_TXD1_ETH_RMII_TXD1 0x1d0c
302#define STM32F746_PB13_FUNC_EVENTOUT 0x1d10
303#define STM32F746_PB13_FUNC_ANALOG 0x1d11
304
305#define STM32F746_PB14_FUNC_GPIO 0x1e00
306#define STM32F746_PB14_FUNC_TIM1_CH2N 0x1e02
307#define STM32F746_PB14_FUNC_TIM8_CH2N 0x1e04
308#define STM32F746_PB14_FUNC_SPI2_MISO 0x1e06
309#define STM32F746_PB14_FUNC_USART3_RTS 0x1e08
310#define STM32F746_PB14_FUNC_TIM12_CH1 0x1e0a
311#define STM32F746_PB14_FUNC_OTG_HS_DM 0x1e0d
312#define STM32F746_PB14_FUNC_EVENTOUT 0x1e10
313#define STM32F746_PB14_FUNC_ANALOG 0x1e11
314
315#define STM32F746_PB15_FUNC_GPIO 0x1f00
316#define STM32F746_PB15_FUNC_RTC_REFIN 0x1f01
317#define STM32F746_PB15_FUNC_TIM1_CH3N 0x1f02
318#define STM32F746_PB15_FUNC_TIM8_CH3N 0x1f04
319#define STM32F746_PB15_FUNC_SPI2_MOSI_I2S2_SD 0x1f06
320#define STM32F746_PB15_FUNC_TIM12_CH2 0x1f0a
321#define STM32F746_PB15_FUNC_OTG_HS_DP 0x1f0d
322#define STM32F746_PB15_FUNC_EVENTOUT 0x1f10
323#define STM32F746_PB15_FUNC_ANALOG 0x1f11
324
325
326#define STM32F746_PC0_FUNC_GPIO 0x2000
327#define STM32F746_PC0_FUNC_SAI2_FS_B 0x2009
328#define STM32F746_PC0_FUNC_OTG_HS_ULPI_STP 0x200b
329#define STM32F746_PC0_FUNC_FMC_SDNWE 0x200d
330#define STM32F746_PC0_FUNC_LCD_R5 0x200f
331#define STM32F746_PC0_FUNC_EVENTOUT 0x2010
332#define STM32F746_PC0_FUNC_ANALOG 0x2011
333
334#define STM32F746_PC1_FUNC_GPIO 0x2100
335#define STM32F746_PC1_FUNC_TRACED0 0x2101
336#define STM32F746_PC1_FUNC_SPI2_MOSI_I2S2_SD 0x2106
337#define STM32F746_PC1_FUNC_SAI1_SD_A 0x2107
338#define STM32F746_PC1_FUNC_ETH_MDC 0x210c
339#define STM32F746_PC1_FUNC_EVENTOUT 0x2110
340#define STM32F746_PC1_FUNC_ANALOG 0x2111
341
342#define STM32F746_PC2_FUNC_GPIO 0x2200
343#define STM32F746_PC2_FUNC_SPI2_MISO 0x2206
344#define STM32F746_PC2_FUNC_OTG_HS_ULPI_DIR 0x220b
345#define STM32F746_PC2_FUNC_ETH_MII_TXD2 0x220c
346#define STM32F746_PC2_FUNC_FMC_SDNE0 0x220d
347#define STM32F746_PC2_FUNC_EVENTOUT 0x2210
348#define STM32F746_PC2_FUNC_ANALOG 0x2211
349
350#define STM32F746_PC3_FUNC_GPIO 0x2300
351#define STM32F746_PC3_FUNC_SPI2_MOSI_I2S2_SD 0x2306
352#define STM32F746_PC3_FUNC_OTG_HS_ULPI_NXT 0x230b
353#define STM32F746_PC3_FUNC_ETH_MII_TX_CLK 0x230c
354#define STM32F746_PC3_FUNC_FMC_SDCKE0 0x230d
355#define STM32F746_PC3_FUNC_EVENTOUT 0x2310
356#define STM32F746_PC3_FUNC_ANALOG 0x2311
357
358#define STM32F746_PC4_FUNC_GPIO 0x2400
359#define STM32F746_PC4_FUNC_I2S1_MCK 0x2406
360#define STM32F746_PC4_FUNC_SPDIFRX_IN2 0x2409
361#define STM32F746_PC4_FUNC_ETH_MII_RXD0_ETH_RMII_RXD0 0x240c
362#define STM32F746_PC4_FUNC_FMC_SDNE0 0x240d
363#define STM32F746_PC4_FUNC_EVENTOUT 0x2410
364#define STM32F746_PC4_FUNC_ANALOG 0x2411
365
366#define STM32F746_PC5_FUNC_GPIO 0x2500
367#define STM32F746_PC5_FUNC_SPDIFRX_IN3 0x2509
368#define STM32F746_PC5_FUNC_ETH_MII_RXD1_ETH_RMII_RXD1 0x250c
369#define STM32F746_PC5_FUNC_FMC_SDCKE0 0x250d
370#define STM32F746_PC5_FUNC_EVENTOUT 0x2510
371#define STM32F746_PC5_FUNC_ANALOG 0x2511
372
373#define STM32F746_PC6_FUNC_GPIO 0x2600
374#define STM32F746_PC6_FUNC_TIM3_CH1 0x2603
375#define STM32F746_PC6_FUNC_TIM8_CH1 0x2604
376#define STM32F746_PC6_FUNC_I2S2_MCK 0x2606
377#define STM32F746_PC6_FUNC_USART6_TX 0x2609
378#define STM32F746_PC6_FUNC_SDMMC1_D6 0x260d
379#define STM32F746_PC6_FUNC_DCMI_D0 0x260e
380#define STM32F746_PC6_FUNC_LCD_HSYNC 0x260f
381#define STM32F746_PC6_FUNC_EVENTOUT 0x2610
382#define STM32F746_PC6_FUNC_ANALOG 0x2611
383
384#define STM32F746_PC7_FUNC_GPIO 0x2700
385#define STM32F746_PC7_FUNC_TIM3_CH2 0x2703
386#define STM32F746_PC7_FUNC_TIM8_CH2 0x2704
387#define STM32F746_PC7_FUNC_I2S3_MCK 0x2707
388#define STM32F746_PC7_FUNC_USART6_RX 0x2709
389#define STM32F746_PC7_FUNC_SDMMC1_D7 0x270d
390#define STM32F746_PC7_FUNC_DCMI_D1 0x270e
391#define STM32F746_PC7_FUNC_LCD_G6 0x270f
392#define STM32F746_PC7_FUNC_EVENTOUT 0x2710
393#define STM32F746_PC7_FUNC_ANALOG 0x2711
394
395#define STM32F746_PC8_FUNC_GPIO 0x2800
396#define STM32F746_PC8_FUNC_TRACED1 0x2801
397#define STM32F746_PC8_FUNC_TIM3_CH3 0x2803
398#define STM32F746_PC8_FUNC_TIM8_CH3 0x2804
399#define STM32F746_PC8_FUNC_UART5_RTS 0x2808
400#define STM32F746_PC8_FUNC_USART6_CK 0x2809
401#define STM32F746_PC8_FUNC_SDMMC1_D0 0x280d
402#define STM32F746_PC8_FUNC_DCMI_D2 0x280e
403#define STM32F746_PC8_FUNC_EVENTOUT 0x2810
404#define STM32F746_PC8_FUNC_ANALOG 0x2811
405
406#define STM32F746_PC9_FUNC_GPIO 0x2900
407#define STM32F746_PC9_FUNC_MCO2 0x2901
408#define STM32F746_PC9_FUNC_TIM3_CH4 0x2903
409#define STM32F746_PC9_FUNC_TIM8_CH4 0x2904
410#define STM32F746_PC9_FUNC_I2C3_SDA 0x2905
411#define STM32F746_PC9_FUNC_I2S_CKIN 0x2906
412#define STM32F746_PC9_FUNC_UART5_CTS 0x2908
413#define STM32F746_PC9_FUNC_QUADSPI_BK1_IO0 0x290a
414#define STM32F746_PC9_FUNC_SDMMC1_D1 0x290d
415#define STM32F746_PC9_FUNC_DCMI_D3 0x290e
416#define STM32F746_PC9_FUNC_EVENTOUT 0x2910
417#define STM32F746_PC9_FUNC_ANALOG 0x2911
418
419#define STM32F746_PC10_FUNC_GPIO 0x2a00
420#define STM32F746_PC10_FUNC_SPI3_SCK_I2S3_CK 0x2a07
421#define STM32F746_PC10_FUNC_USART3_TX 0x2a08
422#define STM32F746_PC10_FUNC_UART4_TX 0x2a09
423#define STM32F746_PC10_FUNC_QUADSPI_BK1_IO1 0x2a0a
424#define STM32F746_PC10_FUNC_SDMMC1_D2 0x2a0d
425#define STM32F746_PC10_FUNC_DCMI_D8 0x2a0e
426#define STM32F746_PC10_FUNC_LCD_R2 0x2a0f
427#define STM32F746_PC10_FUNC_EVENTOUT 0x2a10
428#define STM32F746_PC10_FUNC_ANALOG 0x2a11
429
430#define STM32F746_PC11_FUNC_GPIO 0x2b00
431#define STM32F746_PC11_FUNC_SPI3_MISO 0x2b07
432#define STM32F746_PC11_FUNC_USART3_RX 0x2b08
433#define STM32F746_PC11_FUNC_UART4_RX 0x2b09
434#define STM32F746_PC11_FUNC_QUADSPI_BK2_NCS 0x2b0a
435#define STM32F746_PC11_FUNC_SDMMC1_D3 0x2b0d
436#define STM32F746_PC11_FUNC_DCMI_D4 0x2b0e
437#define STM32F746_PC11_FUNC_EVENTOUT 0x2b10
438#define STM32F746_PC11_FUNC_ANALOG 0x2b11
439
440#define STM32F746_PC12_FUNC_GPIO 0x2c00
441#define STM32F746_PC12_FUNC_TRACED3 0x2c01
442#define STM32F746_PC12_FUNC_SPI3_MOSI_I2S3_SD 0x2c07
443#define STM32F746_PC12_FUNC_USART3_CK 0x2c08
444#define STM32F746_PC12_FUNC_UART5_TX 0x2c09
445#define STM32F746_PC12_FUNC_SDMMC1_CK 0x2c0d
446#define STM32F746_PC12_FUNC_DCMI_D9 0x2c0e
447#define STM32F746_PC12_FUNC_EVENTOUT 0x2c10
448#define STM32F746_PC12_FUNC_ANALOG 0x2c11
449
450#define STM32F746_PC13_FUNC_GPIO 0x2d00
451#define STM32F746_PC13_FUNC_EVENTOUT 0x2d10
452#define STM32F746_PC13_FUNC_ANALOG 0x2d11
453
454#define STM32F746_PC14_FUNC_GPIO 0x2e00
455#define STM32F746_PC14_FUNC_EVENTOUT 0x2e10
456#define STM32F746_PC14_FUNC_ANALOG 0x2e11
457
458#define STM32F746_PC15_FUNC_GPIO 0x2f00
459#define STM32F746_PC15_FUNC_EVENTOUT 0x2f10
460#define STM32F746_PC15_FUNC_ANALOG 0x2f11
461
462
463#define STM32F746_PD0_FUNC_GPIO 0x3000
464#define STM32F746_PD0_FUNC_CAN1_RX 0x300a
465#define STM32F746_PD0_FUNC_FMC_D2 0x300d
466#define STM32F746_PD0_FUNC_EVENTOUT 0x3010
467#define STM32F746_PD0_FUNC_ANALOG 0x3011
468
469#define STM32F746_PD1_FUNC_GPIO 0x3100
470#define STM32F746_PD1_FUNC_CAN1_TX 0x310a
471#define STM32F746_PD1_FUNC_FMC_D3 0x310d
472#define STM32F746_PD1_FUNC_EVENTOUT 0x3110
473#define STM32F746_PD1_FUNC_ANALOG 0x3111
474
475#define STM32F746_PD2_FUNC_GPIO 0x3200
476#define STM32F746_PD2_FUNC_TRACED2 0x3201
477#define STM32F746_PD2_FUNC_TIM3_ETR 0x3203
478#define STM32F746_PD2_FUNC_UART5_RX 0x3209
479#define STM32F746_PD2_FUNC_SDMMC1_CMD 0x320d
480#define STM32F746_PD2_FUNC_DCMI_D11 0x320e
481#define STM32F746_PD2_FUNC_EVENTOUT 0x3210
482#define STM32F746_PD2_FUNC_ANALOG 0x3211
483
484#define STM32F746_PD3_FUNC_GPIO 0x3300
485#define STM32F746_PD3_FUNC_SPI2_SCK_I2S2_CK 0x3306
486#define STM32F746_PD3_FUNC_USART2_CTS 0x3308
487#define STM32F746_PD3_FUNC_FMC_CLK 0x330d
488#define STM32F746_PD3_FUNC_DCMI_D5 0x330e
489#define STM32F746_PD3_FUNC_LCD_G7 0x330f
490#define STM32F746_PD3_FUNC_EVENTOUT 0x3310
491#define STM32F746_PD3_FUNC_ANALOG 0x3311
492
493#define STM32F746_PD4_FUNC_GPIO 0x3400
494#define STM32F746_PD4_FUNC_USART2_RTS 0x3408
495#define STM32F746_PD4_FUNC_FMC_NOE 0x340d
496#define STM32F746_PD4_FUNC_EVENTOUT 0x3410
497#define STM32F746_PD4_FUNC_ANALOG 0x3411
498
499#define STM32F746_PD5_FUNC_GPIO 0x3500
500#define STM32F746_PD5_FUNC_USART2_TX 0x3508
501#define STM32F746_PD5_FUNC_FMC_NWE 0x350d
502#define STM32F746_PD5_FUNC_EVENTOUT 0x3510
503#define STM32F746_PD5_FUNC_ANALOG 0x3511
504
505#define STM32F746_PD6_FUNC_GPIO 0x3600
506#define STM32F746_PD6_FUNC_SPI3_MOSI_I2S3_SD 0x3606
507#define STM32F746_PD6_FUNC_SAI1_SD_A 0x3607
508#define STM32F746_PD6_FUNC_USART2_RX 0x3608
509#define STM32F746_PD6_FUNC_FMC_NWAIT 0x360d
510#define STM32F746_PD6_FUNC_DCMI_D10 0x360e
511#define STM32F746_PD6_FUNC_LCD_B2 0x360f
512#define STM32F746_PD6_FUNC_EVENTOUT 0x3610
513#define STM32F746_PD6_FUNC_ANALOG 0x3611
514
515#define STM32F746_PD7_FUNC_GPIO 0x3700
516#define STM32F746_PD7_FUNC_USART2_CK 0x3708
517#define STM32F746_PD7_FUNC_SPDIFRX_IN0 0x3709
518#define STM32F746_PD7_FUNC_FMC_NE1 0x370d
519#define STM32F746_PD7_FUNC_EVENTOUT 0x3710
520#define STM32F746_PD7_FUNC_ANALOG 0x3711
521
522#define STM32F746_PD8_FUNC_GPIO 0x3800
523#define STM32F746_PD8_FUNC_USART3_TX 0x3808
524#define STM32F746_PD8_FUNC_SPDIFRX_IN1 0x3809
525#define STM32F746_PD8_FUNC_FMC_D13 0x380d
526#define STM32F746_PD8_FUNC_EVENTOUT 0x3810
527#define STM32F746_PD8_FUNC_ANALOG 0x3811
528
529#define STM32F746_PD9_FUNC_GPIO 0x3900
530#define STM32F746_PD9_FUNC_USART3_RX 0x3908
531#define STM32F746_PD9_FUNC_FMC_D14 0x390d
532#define STM32F746_PD9_FUNC_EVENTOUT 0x3910
533#define STM32F746_PD9_FUNC_ANALOG 0x3911
534
535#define STM32F746_PD10_FUNC_GPIO 0x3a00
536#define STM32F746_PD10_FUNC_USART3_CK 0x3a08
537#define STM32F746_PD10_FUNC_FMC_D15 0x3a0d
538#define STM32F746_PD10_FUNC_LCD_B3 0x3a0f
539#define STM32F746_PD10_FUNC_EVENTOUT 0x3a10
540#define STM32F746_PD10_FUNC_ANALOG 0x3a11
541
542#define STM32F746_PD11_FUNC_GPIO 0x3b00
543#define STM32F746_PD11_FUNC_I2C4_SMBA 0x3b05
544#define STM32F746_PD11_FUNC_USART3_CTS 0x3b08
545#define STM32F746_PD11_FUNC_QUADSPI_BK1_IO0 0x3b0a
546#define STM32F746_PD11_FUNC_SAI2_SD_A 0x3b0b
547#define STM32F746_PD11_FUNC_FMC_A16_FMC_CLE 0x3b0d
548#define STM32F746_PD11_FUNC_EVENTOUT 0x3b10
549#define STM32F746_PD11_FUNC_ANALOG 0x3b11
550
551#define STM32F746_PD12_FUNC_GPIO 0x3c00
552#define STM32F746_PD12_FUNC_TIM4_CH1 0x3c03
553#define STM32F746_PD12_FUNC_LPTIM1_IN1 0x3c04
554#define STM32F746_PD12_FUNC_I2C4_SCL 0x3c05
555#define STM32F746_PD12_FUNC_USART3_RTS 0x3c08
556#define STM32F746_PD12_FUNC_QUADSPI_BK1_IO1 0x3c0a
557#define STM32F746_PD12_FUNC_SAI2_FS_A 0x3c0b
558#define STM32F746_PD12_FUNC_FMC_A17_FMC_ALE 0x3c0d
559#define STM32F746_PD12_FUNC_EVENTOUT 0x3c10
560#define STM32F746_PD12_FUNC_ANALOG 0x3c11
561
562#define STM32F746_PD13_FUNC_GPIO 0x3d00
563#define STM32F746_PD13_FUNC_TIM4_CH2 0x3d03
564#define STM32F746_PD13_FUNC_LPTIM1_OUT 0x3d04
565#define STM32F746_PD13_FUNC_I2C4_SDA 0x3d05
566#define STM32F746_PD13_FUNC_QUADSPI_BK1_IO3 0x3d0a
567#define STM32F746_PD13_FUNC_SAI2_SCK_A 0x3d0b
568#define STM32F746_PD13_FUNC_FMC_A18 0x3d0d
569#define STM32F746_PD13_FUNC_EVENTOUT 0x3d10
570#define STM32F746_PD13_FUNC_ANALOG 0x3d11
571
572#define STM32F746_PD14_FUNC_GPIO 0x3e00
573#define STM32F746_PD14_FUNC_TIM4_CH3 0x3e03
574#define STM32F746_PD14_FUNC_UART8_CTS 0x3e09
575#define STM32F746_PD14_FUNC_FMC_D0 0x3e0d
576#define STM32F746_PD14_FUNC_EVENTOUT 0x3e10
577#define STM32F746_PD14_FUNC_ANALOG 0x3e11
578
579#define STM32F746_PD15_FUNC_GPIO 0x3f00
580#define STM32F746_PD15_FUNC_TIM4_CH4 0x3f03
581#define STM32F746_PD15_FUNC_UART8_RTS 0x3f09
582#define STM32F746_PD15_FUNC_FMC_D1 0x3f0d
583#define STM32F746_PD15_FUNC_EVENTOUT 0x3f10
584#define STM32F746_PD15_FUNC_ANALOG 0x3f11
585
586
587#define STM32F746_PE0_FUNC_GPIO 0x4000
588#define STM32F746_PE0_FUNC_TIM4_ETR 0x4003
589#define STM32F746_PE0_FUNC_LPTIM1_ETR 0x4004
590#define STM32F746_PE0_FUNC_UART8_RX 0x4009
591#define STM32F746_PE0_FUNC_SAI2_MCLK_A 0x400b
592#define STM32F746_PE0_FUNC_FMC_NBL0 0x400d
593#define STM32F746_PE0_FUNC_DCMI_D2 0x400e
594#define STM32F746_PE0_FUNC_EVENTOUT 0x4010
595#define STM32F746_PE0_FUNC_ANALOG 0x4011
596
597#define STM32F746_PE1_FUNC_GPIO 0x4100
598#define STM32F746_PE1_FUNC_LPTIM1_IN2 0x4104
599#define STM32F746_PE1_FUNC_UART8_TX 0x4109
600#define STM32F746_PE1_FUNC_FMC_NBL1 0x410d
601#define STM32F746_PE1_FUNC_DCMI_D3 0x410e
602#define STM32F746_PE1_FUNC_EVENTOUT 0x4110
603#define STM32F746_PE1_FUNC_ANALOG 0x4111
604
605#define STM32F746_PE2_FUNC_GPIO 0x4200
606#define STM32F746_PE2_FUNC_TRACECLK 0x4201
607#define STM32F746_PE2_FUNC_SPI4_SCK 0x4206
608#define STM32F746_PE2_FUNC_SAI1_MCLK_A 0x4207
609#define STM32F746_PE2_FUNC_QUADSPI_BK1_IO2 0x420a
610#define STM32F746_PE2_FUNC_ETH_MII_TXD3 0x420c
611#define STM32F746_PE2_FUNC_FMC_A23 0x420d
612#define STM32F746_PE2_FUNC_EVENTOUT 0x4210
613#define STM32F746_PE2_FUNC_ANALOG 0x4211
614
615#define STM32F746_PE3_FUNC_GPIO 0x4300
616#define STM32F746_PE3_FUNC_TRACED0 0x4301
617#define STM32F746_PE3_FUNC_SAI1_SD_B 0x4307
618#define STM32F746_PE3_FUNC_FMC_A19 0x430d
619#define STM32F746_PE3_FUNC_EVENTOUT 0x4310
620#define STM32F746_PE3_FUNC_ANALOG 0x4311
621
622#define STM32F746_PE4_FUNC_GPIO 0x4400
623#define STM32F746_PE4_FUNC_TRACED1 0x4401
624#define STM32F746_PE4_FUNC_SPI4_NSS 0x4406
625#define STM32F746_PE4_FUNC_SAI1_FS_A 0x4407
626#define STM32F746_PE4_FUNC_FMC_A20 0x440d
627#define STM32F746_PE4_FUNC_DCMI_D4 0x440e
628#define STM32F746_PE4_FUNC_LCD_B0 0x440f
629#define STM32F746_PE4_FUNC_EVENTOUT 0x4410
630#define STM32F746_PE4_FUNC_ANALOG 0x4411
631
632#define STM32F746_PE5_FUNC_GPIO 0x4500
633#define STM32F746_PE5_FUNC_TRACED2 0x4501
634#define STM32F746_PE5_FUNC_TIM9_CH1 0x4504
635#define STM32F746_PE5_FUNC_SPI4_MISO 0x4506
636#define STM32F746_PE5_FUNC_SAI1_SCK_A 0x4507
637#define STM32F746_PE5_FUNC_FMC_A21 0x450d
638#define STM32F746_PE5_FUNC_DCMI_D6 0x450e
639#define STM32F746_PE5_FUNC_LCD_G0 0x450f
640#define STM32F746_PE5_FUNC_EVENTOUT 0x4510
641#define STM32F746_PE5_FUNC_ANALOG 0x4511
642
643#define STM32F746_PE6_FUNC_GPIO 0x4600
644#define STM32F746_PE6_FUNC_TRACED3 0x4601
645#define STM32F746_PE6_FUNC_TIM1_BKIN2 0x4602
646#define STM32F746_PE6_FUNC_TIM9_CH2 0x4604
647#define STM32F746_PE6_FUNC_SPI4_MOSI 0x4606
648#define STM32F746_PE6_FUNC_SAI1_SD_A 0x4607
649#define STM32F746_PE6_FUNC_SAI2_MCLK_B 0x460b
650#define STM32F746_PE6_FUNC_FMC_A22 0x460d
651#define STM32F746_PE6_FUNC_DCMI_D7 0x460e
652#define STM32F746_PE6_FUNC_LCD_G1 0x460f
653#define STM32F746_PE6_FUNC_EVENTOUT 0x4610
654#define STM32F746_PE6_FUNC_ANALOG 0x4611
655
656#define STM32F746_PE7_FUNC_GPIO 0x4700
657#define STM32F746_PE7_FUNC_TIM1_ETR 0x4702
658#define STM32F746_PE7_FUNC_UART7_RX 0x4709
659#define STM32F746_PE7_FUNC_QUADSPI_BK2_IO0 0x470b
660#define STM32F746_PE7_FUNC_FMC_D4 0x470d
661#define STM32F746_PE7_FUNC_EVENTOUT 0x4710
662#define STM32F746_PE7_FUNC_ANALOG 0x4711
663
664#define STM32F746_PE8_FUNC_GPIO 0x4800
665#define STM32F746_PE8_FUNC_TIM1_CH1N 0x4802
666#define STM32F746_PE8_FUNC_UART7_TX 0x4809
667#define STM32F746_PE8_FUNC_QUADSPI_BK2_IO1 0x480b
668#define STM32F746_PE8_FUNC_FMC_D5 0x480d
669#define STM32F746_PE8_FUNC_EVENTOUT 0x4810
670#define STM32F746_PE8_FUNC_ANALOG 0x4811
671
672#define STM32F746_PE9_FUNC_GPIO 0x4900
673#define STM32F746_PE9_FUNC_TIM1_CH1 0x4902
674#define STM32F746_PE9_FUNC_UART7_RTS 0x4909
675#define STM32F746_PE9_FUNC_QUADSPI_BK2_IO2 0x490b
676#define STM32F746_PE9_FUNC_FMC_D6 0x490d
677#define STM32F746_PE9_FUNC_EVENTOUT 0x4910
678#define STM32F746_PE9_FUNC_ANALOG 0x4911
679
680#define STM32F746_PE10_FUNC_GPIO 0x4a00
681#define STM32F746_PE10_FUNC_TIM1_CH2N 0x4a02
682#define STM32F746_PE10_FUNC_UART7_CTS 0x4a09
683#define STM32F746_PE10_FUNC_QUADSPI_BK2_IO3 0x4a0b
684#define STM32F746_PE10_FUNC_FMC_D7 0x4a0d
685#define STM32F746_PE10_FUNC_EVENTOUT 0x4a10
686#define STM32F746_PE10_FUNC_ANALOG 0x4a11
687
688#define STM32F746_PE11_FUNC_GPIO 0x4b00
689#define STM32F746_PE11_FUNC_TIM1_CH2 0x4b02
690#define STM32F746_PE11_FUNC_SPI4_NSS 0x4b06
691#define STM32F746_PE11_FUNC_SAI2_SD_B 0x4b0b
692#define STM32F746_PE11_FUNC_FMC_D8 0x4b0d
693#define STM32F746_PE11_FUNC_LCD_G3 0x4b0f
694#define STM32F746_PE11_FUNC_EVENTOUT 0x4b10
695#define STM32F746_PE11_FUNC_ANALOG 0x4b11
696
697#define STM32F746_PE12_FUNC_GPIO 0x4c00
698#define STM32F746_PE12_FUNC_TIM1_CH3N 0x4c02
699#define STM32F746_PE12_FUNC_SPI4_SCK 0x4c06
700#define STM32F746_PE12_FUNC_SAI2_SCK_B 0x4c0b
701#define STM32F746_PE12_FUNC_FMC_D9 0x4c0d
702#define STM32F746_PE12_FUNC_LCD_B4 0x4c0f
703#define STM32F746_PE12_FUNC_EVENTOUT 0x4c10
704#define STM32F746_PE12_FUNC_ANALOG 0x4c11
705
706#define STM32F746_PE13_FUNC_GPIO 0x4d00
707#define STM32F746_PE13_FUNC_TIM1_CH3 0x4d02
708#define STM32F746_PE13_FUNC_SPI4_MISO 0x4d06
709#define STM32F746_PE13_FUNC_SAI2_FS_B 0x4d0b
710#define STM32F746_PE13_FUNC_FMC_D10 0x4d0d
711#define STM32F746_PE13_FUNC_LCD_DE 0x4d0f
712#define STM32F746_PE13_FUNC_EVENTOUT 0x4d10
713#define STM32F746_PE13_FUNC_ANALOG 0x4d11
714
715#define STM32F746_PE14_FUNC_GPIO 0x4e00
716#define STM32F746_PE14_FUNC_TIM1_CH4 0x4e02
717#define STM32F746_PE14_FUNC_SPI4_MOSI 0x4e06
718#define STM32F746_PE14_FUNC_SAI2_MCLK_B 0x4e0b
719#define STM32F746_PE14_FUNC_FMC_D11 0x4e0d
720#define STM32F746_PE14_FUNC_LCD_CLK 0x4e0f
721#define STM32F746_PE14_FUNC_EVENTOUT 0x4e10
722#define STM32F746_PE14_FUNC_ANALOG 0x4e11
723
724#define STM32F746_PE15_FUNC_GPIO 0x4f00
725#define STM32F746_PE15_FUNC_TIM1_BKIN 0x4f02
726#define STM32F746_PE15_FUNC_FMC_D12 0x4f0d
727#define STM32F746_PE15_FUNC_LCD_R7 0x4f0f
728#define STM32F746_PE15_FUNC_EVENTOUT 0x4f10
729#define STM32F746_PE15_FUNC_ANALOG 0x4f11
730
731
732#define STM32F746_PF0_FUNC_GPIO 0x5000
733#define STM32F746_PF0_FUNC_I2C2_SDA 0x5005
734#define STM32F746_PF0_FUNC_FMC_A0 0x500d
735#define STM32F746_PF0_FUNC_EVENTOUT 0x5010
736#define STM32F746_PF0_FUNC_ANALOG 0x5011
737
738#define STM32F746_PF1_FUNC_GPIO 0x5100
739#define STM32F746_PF1_FUNC_I2C2_SCL 0x5105
740#define STM32F746_PF1_FUNC_FMC_A1 0x510d
741#define STM32F746_PF1_FUNC_EVENTOUT 0x5110
742#define STM32F746_PF1_FUNC_ANALOG 0x5111
743
744#define STM32F746_PF2_FUNC_GPIO 0x5200
745#define STM32F746_PF2_FUNC_I2C2_SMBA 0x5205
746#define STM32F746_PF2_FUNC_FMC_A2 0x520d
747#define STM32F746_PF2_FUNC_EVENTOUT 0x5210
748#define STM32F746_PF2_FUNC_ANALOG 0x5211
749
750#define STM32F746_PF3_FUNC_GPIO 0x5300
751#define STM32F746_PF3_FUNC_FMC_A3 0x530d
752#define STM32F746_PF3_FUNC_EVENTOUT 0x5310
753#define STM32F746_PF3_FUNC_ANALOG 0x5311
754
755#define STM32F746_PF4_FUNC_GPIO 0x5400
756#define STM32F746_PF4_FUNC_FMC_A4 0x540d
757#define STM32F746_PF4_FUNC_EVENTOUT 0x5410
758#define STM32F746_PF4_FUNC_ANALOG 0x5411
759
760#define STM32F746_PF5_FUNC_GPIO 0x5500
761#define STM32F746_PF5_FUNC_FMC_A5 0x550d
762#define STM32F746_PF5_FUNC_EVENTOUT 0x5510
763#define STM32F746_PF5_FUNC_ANALOG 0x5511
764
765#define STM32F746_PF6_FUNC_GPIO 0x5600
766#define STM32F746_PF6_FUNC_TIM10_CH1 0x5604
767#define STM32F746_PF6_FUNC_SPI5_NSS 0x5606
768#define STM32F746_PF6_FUNC_SAI1_SD_B 0x5607
769#define STM32F746_PF6_FUNC_UART7_RX 0x5609
770#define STM32F746_PF6_FUNC_QUADSPI_BK1_IO3 0x560a
771#define STM32F746_PF6_FUNC_EVENTOUT 0x5610
772#define STM32F746_PF6_FUNC_ANALOG 0x5611
773
774#define STM32F746_PF7_FUNC_GPIO 0x5700
775#define STM32F746_PF7_FUNC_TIM11_CH1 0x5704
776#define STM32F746_PF7_FUNC_SPI5_SCK 0x5706
777#define STM32F746_PF7_FUNC_SAI1_MCLK_B 0x5707
778#define STM32F746_PF7_FUNC_UART7_TX 0x5709
779#define STM32F746_PF7_FUNC_QUADSPI_BK1_IO2 0x570a
780#define STM32F746_PF7_FUNC_EVENTOUT 0x5710
781#define STM32F746_PF7_FUNC_ANALOG 0x5711
782
783#define STM32F746_PF8_FUNC_GPIO 0x5800
784#define STM32F746_PF8_FUNC_SPI5_MISO 0x5806
785#define STM32F746_PF8_FUNC_SAI1_SCK_B 0x5807
786#define STM32F746_PF8_FUNC_UART7_RTS 0x5809
787#define STM32F746_PF8_FUNC_TIM13_CH1 0x580a
788#define STM32F746_PF8_FUNC_QUADSPI_BK1_IO0 0x580b
789#define STM32F746_PF8_FUNC_EVENTOUT 0x5810
790#define STM32F746_PF8_FUNC_ANALOG 0x5811
791
792#define STM32F746_PF9_FUNC_GPIO 0x5900
793#define STM32F746_PF9_FUNC_SPI5_MOSI 0x5906
794#define STM32F746_PF9_FUNC_SAI1_FS_B 0x5907
795#define STM32F746_PF9_FUNC_UART7_CTS 0x5909
796#define STM32F746_PF9_FUNC_TIM14_CH1 0x590a
797#define STM32F746_PF9_FUNC_QUADSPI_BK1_IO1 0x590b
798#define STM32F746_PF9_FUNC_EVENTOUT 0x5910
799#define STM32F746_PF9_FUNC_ANALOG 0x5911
800
801#define STM32F746_PF10_FUNC_GPIO 0x5a00
802#define STM32F746_PF10_FUNC_DCMI_D11 0x5a0e
803#define STM32F746_PF10_FUNC_LCD_DE 0x5a0f
804#define STM32F746_PF10_FUNC_EVENTOUT 0x5a10
805#define STM32F746_PF10_FUNC_ANALOG 0x5a11
806
807#define STM32F746_PF11_FUNC_GPIO 0x5b00
808#define STM32F746_PF11_FUNC_SPI5_MOSI 0x5b06
809#define STM32F746_PF11_FUNC_SAI2_SD_B 0x5b0b
810#define STM32F746_PF11_FUNC_FMC_SDNRAS 0x5b0d
811#define STM32F746_PF11_FUNC_DCMI_D12 0x5b0e
812#define STM32F746_PF11_FUNC_EVENTOUT 0x5b10
813#define STM32F746_PF11_FUNC_ANALOG 0x5b11
814
815#define STM32F746_PF12_FUNC_GPIO 0x5c00
816#define STM32F746_PF12_FUNC_FMC_A6 0x5c0d
817#define STM32F746_PF12_FUNC_EVENTOUT 0x5c10
818#define STM32F746_PF12_FUNC_ANALOG 0x5c11
819
820#define STM32F746_PF13_FUNC_GPIO 0x5d00
821#define STM32F746_PF13_FUNC_I2C4_SMBA 0x5d05
822#define STM32F746_PF13_FUNC_FMC_A7 0x5d0d
823#define STM32F746_PF13_FUNC_EVENTOUT 0x5d10
824#define STM32F746_PF13_FUNC_ANALOG 0x5d11
825
826#define STM32F746_PF14_FUNC_GPIO 0x5e00
827#define STM32F746_PF14_FUNC_I2C4_SCL 0x5e05
828#define STM32F746_PF14_FUNC_FMC_A8 0x5e0d
829#define STM32F746_PF14_FUNC_EVENTOUT 0x5e10
830#define STM32F746_PF14_FUNC_ANALOG 0x5e11
831
832#define STM32F746_PF15_FUNC_GPIO 0x5f00
833#define STM32F746_PF15_FUNC_I2C4_SDA 0x5f05
834#define STM32F746_PF15_FUNC_FMC_A9 0x5f0d
835#define STM32F746_PF15_FUNC_EVENTOUT 0x5f10
836#define STM32F746_PF15_FUNC_ANALOG 0x5f11
837
838
839#define STM32F746_PG0_FUNC_GPIO 0x6000
840#define STM32F746_PG0_FUNC_FMC_A10 0x600d
841#define STM32F746_PG0_FUNC_EVENTOUT 0x6010
842#define STM32F746_PG0_FUNC_ANALOG 0x6011
843
844#define STM32F746_PG1_FUNC_GPIO 0x6100
845#define STM32F746_PG1_FUNC_FMC_A11 0x610d
846#define STM32F746_PG1_FUNC_EVENTOUT 0x6110
847#define STM32F746_PG1_FUNC_ANALOG 0x6111
848
849#define STM32F746_PG2_FUNC_GPIO 0x6200
850#define STM32F746_PG2_FUNC_FMC_A12 0x620d
851#define STM32F746_PG2_FUNC_EVENTOUT 0x6210
852#define STM32F746_PG2_FUNC_ANALOG 0x6211
853
854#define STM32F746_PG3_FUNC_GPIO 0x6300
855#define STM32F746_PG3_FUNC_FMC_A13 0x630d
856#define STM32F746_PG3_FUNC_EVENTOUT 0x6310
857#define STM32F746_PG3_FUNC_ANALOG 0x6311
858
859#define STM32F746_PG4_FUNC_GPIO 0x6400
860#define STM32F746_PG4_FUNC_FMC_A14_FMC_BA0 0x640d
861#define STM32F746_PG4_FUNC_EVENTOUT 0x6410
862#define STM32F746_PG4_FUNC_ANALOG 0x6411
863
864#define STM32F746_PG5_FUNC_GPIO 0x6500
865#define STM32F746_PG5_FUNC_FMC_A15_FMC_BA1 0x650d
866#define STM32F746_PG5_FUNC_EVENTOUT 0x6510
867#define STM32F746_PG5_FUNC_ANALOG 0x6511
868
869#define STM32F746_PG6_FUNC_GPIO 0x6600
870#define STM32F746_PG6_FUNC_DCMI_D12 0x660e
871#define STM32F746_PG6_FUNC_LCD_R7 0x660f
872#define STM32F746_PG6_FUNC_EVENTOUT 0x6610
873#define STM32F746_PG6_FUNC_ANALOG 0x6611
874
875#define STM32F746_PG7_FUNC_GPIO 0x6700
876#define STM32F746_PG7_FUNC_USART6_CK 0x6709
877#define STM32F746_PG7_FUNC_FMC_INT 0x670d
878#define STM32F746_PG7_FUNC_DCMI_D13 0x670e
879#define STM32F746_PG7_FUNC_LCD_CLK 0x670f
880#define STM32F746_PG7_FUNC_EVENTOUT 0x6710
881#define STM32F746_PG7_FUNC_ANALOG 0x6711
882
883#define STM32F746_PG8_FUNC_GPIO 0x6800
884#define STM32F746_PG8_FUNC_SPI6_NSS 0x6806
885#define STM32F746_PG8_FUNC_SPDIFRX_IN2 0x6808
886#define STM32F746_PG8_FUNC_USART6_RTS 0x6809
887#define STM32F746_PG8_FUNC_ETH_PPS_OUT 0x680c
888#define STM32F746_PG8_FUNC_FMC_SDCLK 0x680d
889#define STM32F746_PG8_FUNC_EVENTOUT 0x6810
890#define STM32F746_PG8_FUNC_ANALOG 0x6811
891
892#define STM32F746_PG9_FUNC_GPIO 0x6900
893#define STM32F746_PG9_FUNC_SPDIFRX_IN3 0x6908
894#define STM32F746_PG9_FUNC_USART6_RX 0x6909
895#define STM32F746_PG9_FUNC_QUADSPI_BK2_IO2 0x690a
896#define STM32F746_PG9_FUNC_SAI2_FS_B 0x690b
897#define STM32F746_PG9_FUNC_FMC_NE2_FMC_NCE 0x690d
898#define STM32F746_PG9_FUNC_DCMI_VSYNC 0x690e
899#define STM32F746_PG9_FUNC_EVENTOUT 0x6910
900#define STM32F746_PG9_FUNC_ANALOG 0x6911
901
902#define STM32F746_PG10_FUNC_GPIO 0x6a00
903#define STM32F746_PG10_FUNC_LCD_G3 0x6a0a
904#define STM32F746_PG10_FUNC_SAI2_SD_B 0x6a0b
905#define STM32F746_PG10_FUNC_FMC_NE3 0x6a0d
906#define STM32F746_PG10_FUNC_DCMI_D2 0x6a0e
907#define STM32F746_PG10_FUNC_LCD_B2 0x6a0f
908#define STM32F746_PG10_FUNC_EVENTOUT 0x6a10
909#define STM32F746_PG10_FUNC_ANALOG 0x6a11
910
911#define STM32F746_PG11_FUNC_GPIO 0x6b00
912#define STM32F746_PG11_FUNC_SPDIFRX_IN0 0x6b08
913#define STM32F746_PG11_FUNC_ETH_MII_TX_EN_ETH_RMII_TX_EN 0x6b0c
914#define STM32F746_PG11_FUNC_DCMI_D3 0x6b0e
915#define STM32F746_PG11_FUNC_LCD_B3 0x6b0f
916#define STM32F746_PG11_FUNC_EVENTOUT 0x6b10
917#define STM32F746_PG11_FUNC_ANALOG 0x6b11
918
919#define STM32F746_PG12_FUNC_GPIO 0x6c00
920#define STM32F746_PG12_FUNC_LPTIM1_IN1 0x6c04
921#define STM32F746_PG12_FUNC_SPI6_MISO 0x6c06
922#define STM32F746_PG12_FUNC_SPDIFRX_IN1 0x6c08
923#define STM32F746_PG12_FUNC_USART6_RTS 0x6c09
924#define STM32F746_PG12_FUNC_LCD_B4 0x6c0a
925#define STM32F746_PG12_FUNC_FMC_NE4 0x6c0d
926#define STM32F746_PG12_FUNC_LCD_B1 0x6c0f
927#define STM32F746_PG12_FUNC_EVENTOUT 0x6c10
928#define STM32F746_PG12_FUNC_ANALOG 0x6c11
929
930#define STM32F746_PG13_FUNC_GPIO 0x6d00
931#define STM32F746_PG13_FUNC_TRACED0 0x6d01
932#define STM32F746_PG13_FUNC_LPTIM1_OUT 0x6d04
933#define STM32F746_PG13_FUNC_SPI6_SCK 0x6d06
934#define STM32F746_PG13_FUNC_USART6_CTS 0x6d09
935#define STM32F746_PG13_FUNC_ETH_MII_TXD0_ETH_RMII_TXD0 0x6d0c
936#define STM32F746_PG13_FUNC_FMC_A24 0x6d0d
937#define STM32F746_PG13_FUNC_LCD_R0 0x6d0f
938#define STM32F746_PG13_FUNC_EVENTOUT 0x6d10
939#define STM32F746_PG13_FUNC_ANALOG 0x6d11
940
941#define STM32F746_PG14_FUNC_GPIO 0x6e00
942#define STM32F746_PG14_FUNC_TRACED1 0x6e01
943#define STM32F746_PG14_FUNC_LPTIM1_ETR 0x6e04
944#define STM32F746_PG14_FUNC_SPI6_MOSI 0x6e06
945#define STM32F746_PG14_FUNC_USART6_TX 0x6e09
946#define STM32F746_PG14_FUNC_QUADSPI_BK2_IO3 0x6e0a
947#define STM32F746_PG14_FUNC_ETH_MII_TXD1_ETH_RMII_TXD1 0x6e0c
948#define STM32F746_PG14_FUNC_FMC_A25 0x6e0d
949#define STM32F746_PG14_FUNC_LCD_B0 0x6e0f
950#define STM32F746_PG14_FUNC_EVENTOUT 0x6e10
951#define STM32F746_PG14_FUNC_ANALOG 0x6e11
952
953#define STM32F746_PG15_FUNC_GPIO 0x6f00
954#define STM32F746_PG15_FUNC_USART6_CTS 0x6f09
955#define STM32F746_PG15_FUNC_FMC_SDNCAS 0x6f0d
956#define STM32F746_PG15_FUNC_DCMI_D13 0x6f0e
957#define STM32F746_PG15_FUNC_EVENTOUT 0x6f10
958#define STM32F746_PG15_FUNC_ANALOG 0x6f11
959
960
961#define STM32F746_PH0_FUNC_GPIO 0x7000
962#define STM32F746_PH0_FUNC_EVENTOUT 0x7010
963#define STM32F746_PH0_FUNC_ANALOG 0x7011
964
965#define STM32F746_PH1_FUNC_GPIO 0x7100
966#define STM32F746_PH1_FUNC_EVENTOUT 0x7110
967#define STM32F746_PH1_FUNC_ANALOG 0x7111
968
969#define STM32F746_PH2_FUNC_GPIO 0x7200
970#define STM32F746_PH2_FUNC_LPTIM1_IN2 0x7204
971#define STM32F746_PH2_FUNC_QUADSPI_BK2_IO0 0x720a
972#define STM32F746_PH2_FUNC_SAI2_SCK_B 0x720b
973#define STM32F746_PH2_FUNC_ETH_MII_CRS 0x720c
974#define STM32F746_PH2_FUNC_FMC_SDCKE0 0x720d
975#define STM32F746_PH2_FUNC_LCD_R0 0x720f
976#define STM32F746_PH2_FUNC_EVENTOUT 0x7210
977#define STM32F746_PH2_FUNC_ANALOG 0x7211
978
979#define STM32F746_PH3_FUNC_GPIO 0x7300
980#define STM32F746_PH3_FUNC_QUADSPI_BK2_IO1 0x730a
981#define STM32F746_PH3_FUNC_SAI2_MCLK_B 0x730b
982#define STM32F746_PH3_FUNC_ETH_MII_COL 0x730c
983#define STM32F746_PH3_FUNC_FMC_SDNE0 0x730d
984#define STM32F746_PH3_FUNC_LCD_R1 0x730f
985#define STM32F746_PH3_FUNC_EVENTOUT 0x7310
986#define STM32F746_PH3_FUNC_ANALOG 0x7311
987
988#define STM32F746_PH4_FUNC_GPIO 0x7400
989#define STM32F746_PH4_FUNC_I2C2_SCL 0x7405
990#define STM32F746_PH4_FUNC_OTG_HS_ULPI_NXT 0x740b
991#define STM32F746_PH4_FUNC_EVENTOUT 0x7410
992#define STM32F746_PH4_FUNC_ANALOG 0x7411
993
994#define STM32F746_PH5_FUNC_GPIO 0x7500
995#define STM32F746_PH5_FUNC_I2C2_SDA 0x7505
996#define STM32F746_PH5_FUNC_SPI5_NSS 0x7506
997#define STM32F746_PH5_FUNC_FMC_SDNWE 0x750d
998#define STM32F746_PH5_FUNC_EVENTOUT 0x7510
999#define STM32F746_PH5_FUNC_ANALOG 0x7511
1000
1001#define STM32F746_PH6_FUNC_GPIO 0x7600
1002#define STM32F746_PH6_FUNC_I2C2_SMBA 0x7605
1003#define STM32F746_PH6_FUNC_SPI5_SCK 0x7606
1004#define STM32F746_PH6_FUNC_TIM12_CH1 0x760a
1005#define STM32F746_PH6_FUNC_ETH_MII_RXD2 0x760c
1006#define STM32F746_PH6_FUNC_FMC_SDNE1 0x760d
1007#define STM32F746_PH6_FUNC_DCMI_D8 0x760e
1008#define STM32F746_PH6_FUNC_EVENTOUT 0x7610
1009#define STM32F746_PH6_FUNC_ANALOG 0x7611
1010
1011#define STM32F746_PH7_FUNC_GPIO 0x7700
1012#define STM32F746_PH7_FUNC_I2C3_SCL 0x7705
1013#define STM32F746_PH7_FUNC_SPI5_MISO 0x7706
1014#define STM32F746_PH7_FUNC_ETH_MII_RXD3 0x770c
1015#define STM32F746_PH7_FUNC_FMC_SDCKE1 0x770d
1016#define STM32F746_PH7_FUNC_DCMI_D9 0x770e
1017#define STM32F746_PH7_FUNC_EVENTOUT 0x7710
1018#define STM32F746_PH7_FUNC_ANALOG 0x7711
1019
1020#define STM32F746_PH8_FUNC_GPIO 0x7800
1021#define STM32F746_PH8_FUNC_I2C3_SDA 0x7805
1022#define STM32F746_PH8_FUNC_FMC_D16 0x780d
1023#define STM32F746_PH8_FUNC_DCMI_HSYNC 0x780e
1024#define STM32F746_PH8_FUNC_LCD_R2 0x780f
1025#define STM32F746_PH8_FUNC_EVENTOUT 0x7810
1026#define STM32F746_PH8_FUNC_ANALOG 0x7811
1027
1028#define STM32F746_PH9_FUNC_GPIO 0x7900
1029#define STM32F746_PH9_FUNC_I2C3_SMBA 0x7905
1030#define STM32F746_PH9_FUNC_TIM12_CH2 0x790a
1031#define STM32F746_PH9_FUNC_FMC_D17 0x790d
1032#define STM32F746_PH9_FUNC_DCMI_D0 0x790e
1033#define STM32F746_PH9_FUNC_LCD_R3 0x790f
1034#define STM32F746_PH9_FUNC_EVENTOUT 0x7910
1035#define STM32F746_PH9_FUNC_ANALOG 0x7911
1036
1037#define STM32F746_PH10_FUNC_GPIO 0x7a00
1038#define STM32F746_PH10_FUNC_TIM5_CH1 0x7a03
1039#define STM32F746_PH10_FUNC_I2C4_SMBA 0x7a05
1040#define STM32F746_PH10_FUNC_FMC_D18 0x7a0d
1041#define STM32F746_PH10_FUNC_DCMI_D1 0x7a0e
1042#define STM32F746_PH10_FUNC_LCD_R4 0x7a0f
1043#define STM32F746_PH10_FUNC_EVENTOUT 0x7a10
1044#define STM32F746_PH10_FUNC_ANALOG 0x7a11
1045
1046#define STM32F746_PH11_FUNC_GPIO 0x7b00
1047#define STM32F746_PH11_FUNC_TIM5_CH2 0x7b03
1048#define STM32F746_PH11_FUNC_I2C4_SCL 0x7b05
1049#define STM32F746_PH11_FUNC_FMC_D19 0x7b0d
1050#define STM32F746_PH11_FUNC_DCMI_D2 0x7b0e
1051#define STM32F746_PH11_FUNC_LCD_R5 0x7b0f
1052#define STM32F746_PH11_FUNC_EVENTOUT 0x7b10
1053#define STM32F746_PH11_FUNC_ANALOG 0x7b11
1054
1055#define STM32F746_PH12_FUNC_GPIO 0x7c00
1056#define STM32F746_PH12_FUNC_TIM5_CH3 0x7c03
1057#define STM32F746_PH12_FUNC_I2C4_SDA 0x7c05
1058#define STM32F746_PH12_FUNC_FMC_D20 0x7c0d
1059#define STM32F746_PH12_FUNC_DCMI_D3 0x7c0e
1060#define STM32F746_PH12_FUNC_LCD_R6 0x7c0f
1061#define STM32F746_PH12_FUNC_EVENTOUT 0x7c10
1062#define STM32F746_PH12_FUNC_ANALOG 0x7c11
1063
1064#define STM32F746_PH13_FUNC_GPIO 0x7d00
1065#define STM32F746_PH13_FUNC_TIM8_CH1N 0x7d04
1066#define STM32F746_PH13_FUNC_CAN1_TX 0x7d0a
1067#define STM32F746_PH13_FUNC_FMC_D21 0x7d0d
1068#define STM32F746_PH13_FUNC_LCD_G2 0x7d0f
1069#define STM32F746_PH13_FUNC_EVENTOUT 0x7d10
1070#define STM32F746_PH13_FUNC_ANALOG 0x7d11
1071
1072#define STM32F746_PH14_FUNC_GPIO 0x7e00
1073#define STM32F746_PH14_FUNC_TIM8_CH2N 0x7e04
1074#define STM32F746_PH14_FUNC_FMC_D22 0x7e0d
1075#define STM32F746_PH14_FUNC_DCMI_D4 0x7e0e
1076#define STM32F746_PH14_FUNC_LCD_G3 0x7e0f
1077#define STM32F746_PH14_FUNC_EVENTOUT 0x7e10
1078#define STM32F746_PH14_FUNC_ANALOG 0x7e11
1079
1080#define STM32F746_PH15_FUNC_GPIO 0x7f00
1081#define STM32F746_PH15_FUNC_TIM8_CH3N 0x7f04
1082#define STM32F746_PH15_FUNC_FMC_D23 0x7f0d
1083#define STM32F746_PH15_FUNC_DCMI_D11 0x7f0e
1084#define STM32F746_PH15_FUNC_LCD_G4 0x7f0f
1085#define STM32F746_PH15_FUNC_EVENTOUT 0x7f10
1086#define STM32F746_PH15_FUNC_ANALOG 0x7f11
1087
1088
1089#define STM32F746_PI0_FUNC_GPIO 0x8000
1090#define STM32F746_PI0_FUNC_TIM5_CH4 0x8003
1091#define STM32F746_PI0_FUNC_SPI2_NSS_I2S2_WS 0x8006
1092#define STM32F746_PI0_FUNC_FMC_D24 0x800d
1093#define STM32F746_PI0_FUNC_DCMI_D13 0x800e
1094#define STM32F746_PI0_FUNC_LCD_G5 0x800f
1095#define STM32F746_PI0_FUNC_EVENTOUT 0x8010
1096#define STM32F746_PI0_FUNC_ANALOG 0x8011
1097
1098#define STM32F746_PI1_FUNC_GPIO 0x8100
1099#define STM32F746_PI1_FUNC_TIM8_BKIN2 0x8104
1100#define STM32F746_PI1_FUNC_SPI2_SCK_I2S2_CK 0x8106
1101#define STM32F746_PI1_FUNC_FMC_D25 0x810d
1102#define STM32F746_PI1_FUNC_DCMI_D8 0x810e
1103#define STM32F746_PI1_FUNC_LCD_G6 0x810f
1104#define STM32F746_PI1_FUNC_EVENTOUT 0x8110
1105#define STM32F746_PI1_FUNC_ANALOG 0x8111
1106
1107#define STM32F746_PI2_FUNC_GPIO 0x8200
1108#define STM32F746_PI2_FUNC_TIM8_CH4 0x8204
1109#define STM32F746_PI2_FUNC_SPI2_MISO 0x8206
1110#define STM32F746_PI2_FUNC_FMC_D26 0x820d
1111#define STM32F746_PI2_FUNC_DCMI_D9 0x820e
1112#define STM32F746_PI2_FUNC_LCD_G7 0x820f
1113#define STM32F746_PI2_FUNC_EVENTOUT 0x8210
1114#define STM32F746_PI2_FUNC_ANALOG 0x8211
1115
1116#define STM32F746_PI3_FUNC_GPIO 0x8300
1117#define STM32F746_PI3_FUNC_TIM8_ETR 0x8304
1118#define STM32F746_PI3_FUNC_SPI2_MOSI_I2S2_SD 0x8306
1119#define STM32F746_PI3_FUNC_FMC_D27 0x830d
1120#define STM32F746_PI3_FUNC_DCMI_D10 0x830e
1121#define STM32F746_PI3_FUNC_EVENTOUT 0x8310
1122#define STM32F746_PI3_FUNC_ANALOG 0x8311
1123
1124#define STM32F746_PI4_FUNC_GPIO 0x8400
1125#define STM32F746_PI4_FUNC_TIM8_BKIN 0x8404
1126#define STM32F746_PI4_FUNC_SAI2_MCLK_A 0x840b
1127#define STM32F746_PI4_FUNC_FMC_NBL2 0x840d
1128#define STM32F746_PI4_FUNC_DCMI_D5 0x840e
1129#define STM32F746_PI4_FUNC_LCD_B4 0x840f
1130#define STM32F746_PI4_FUNC_EVENTOUT 0x8410
1131#define STM32F746_PI4_FUNC_ANALOG 0x8411
1132
1133#define STM32F746_PI5_FUNC_GPIO 0x8500
1134#define STM32F746_PI5_FUNC_TIM8_CH1 0x8504
1135#define STM32F746_PI5_FUNC_SAI2_SCK_A 0x850b
1136#define STM32F746_PI5_FUNC_FMC_NBL3 0x850d
1137#define STM32F746_PI5_FUNC_DCMI_VSYNC 0x850e
1138#define STM32F746_PI5_FUNC_LCD_B5 0x850f
1139#define STM32F746_PI5_FUNC_EVENTOUT 0x8510
1140#define STM32F746_PI5_FUNC_ANALOG 0x8511
1141
1142#define STM32F746_PI6_FUNC_GPIO 0x8600
1143#define STM32F746_PI6_FUNC_TIM8_CH2 0x8604
1144#define STM32F746_PI6_FUNC_SAI2_SD_A 0x860b
1145#define STM32F746_PI6_FUNC_FMC_D28 0x860d
1146#define STM32F746_PI6_FUNC_DCMI_D6 0x860e
1147#define STM32F746_PI6_FUNC_LCD_B6 0x860f
1148#define STM32F746_PI6_FUNC_EVENTOUT 0x8610
1149#define STM32F746_PI6_FUNC_ANALOG 0x8611
1150
1151#define STM32F746_PI7_FUNC_GPIO 0x8700
1152#define STM32F746_PI7_FUNC_TIM8_CH3 0x8704
1153#define STM32F746_PI7_FUNC_SAI2_FS_A 0x870b
1154#define STM32F746_PI7_FUNC_FMC_D29 0x870d
1155#define STM32F746_PI7_FUNC_DCMI_D7 0x870e
1156#define STM32F746_PI7_FUNC_LCD_B7 0x870f
1157#define STM32F746_PI7_FUNC_EVENTOUT 0x8710
1158#define STM32F746_PI7_FUNC_ANALOG 0x8711
1159
1160#define STM32F746_PI8_FUNC_GPIO 0x8800
1161#define STM32F746_PI8_FUNC_EVENTOUT 0x8810
1162#define STM32F746_PI8_FUNC_ANALOG 0x8811
1163
1164#define STM32F746_PI9_FUNC_GPIO 0x8900
1165#define STM32F746_PI9_FUNC_CAN1_RX 0x890a
1166#define STM32F746_PI9_FUNC_FMC_D30 0x890d
1167#define STM32F746_PI9_FUNC_LCD_VSYNC 0x890f
1168#define STM32F746_PI9_FUNC_EVENTOUT 0x8910
1169#define STM32F746_PI9_FUNC_ANALOG 0x8911
1170
1171#define STM32F746_PI10_FUNC_GPIO 0x8a00
1172#define STM32F746_PI10_FUNC_ETH_MII_RX_ER 0x8a0c
1173#define STM32F746_PI10_FUNC_FMC_D31 0x8a0d
1174#define STM32F746_PI10_FUNC_LCD_HSYNC 0x8a0f
1175#define STM32F746_PI10_FUNC_EVENTOUT 0x8a10
1176#define STM32F746_PI10_FUNC_ANALOG 0x8a11
1177
1178#define STM32F746_PI11_FUNC_GPIO 0x8b00
1179#define STM32F746_PI11_FUNC_OTG_HS_ULPI_DIR 0x8b0b
1180#define STM32F746_PI11_FUNC_EVENTOUT 0x8b10
1181#define STM32F746_PI11_FUNC_ANALOG 0x8b11
1182
1183#define STM32F746_PI12_FUNC_GPIO 0x8c00
1184#define STM32F746_PI12_FUNC_LCD_HSYNC 0x8c0f
1185#define STM32F746_PI12_FUNC_EVENTOUT 0x8c10
1186#define STM32F746_PI12_FUNC_ANALOG 0x8c11
1187
1188#define STM32F746_PI13_FUNC_GPIO 0x8d00
1189#define STM32F746_PI13_FUNC_LCD_VSYNC 0x8d0f
1190#define STM32F746_PI13_FUNC_EVENTOUT 0x8d10
1191#define STM32F746_PI13_FUNC_ANALOG 0x8d11
1192
1193#define STM32F746_PI14_FUNC_GPIO 0x8e00
1194#define STM32F746_PI14_FUNC_LCD_CLK 0x8e0f
1195#define STM32F746_PI14_FUNC_EVENTOUT 0x8e10
1196#define STM32F746_PI14_FUNC_ANALOG 0x8e11
1197
1198#define STM32F746_PI15_FUNC_GPIO 0x8f00
1199#define STM32F746_PI15_FUNC_LCD_R0 0x8f0f
1200#define STM32F746_PI15_FUNC_EVENTOUT 0x8f10
1201#define STM32F746_PI15_FUNC_ANALOG 0x8f11
1202
1203
1204#define STM32F746_PJ0_FUNC_GPIO 0x9000
1205#define STM32F746_PJ0_FUNC_LCD_R1 0x900f
1206#define STM32F746_PJ0_FUNC_EVENTOUT 0x9010
1207#define STM32F746_PJ0_FUNC_ANALOG 0x9011
1208
1209#define STM32F746_PJ1_FUNC_GPIO 0x9100
1210#define STM32F746_PJ1_FUNC_LCD_R2 0x910f
1211#define STM32F746_PJ1_FUNC_EVENTOUT 0x9110
1212#define STM32F746_PJ1_FUNC_ANALOG 0x9111
1213
1214#define STM32F746_PJ2_FUNC_GPIO 0x9200
1215#define STM32F746_PJ2_FUNC_LCD_R3 0x920f
1216#define STM32F746_PJ2_FUNC_EVENTOUT 0x9210
1217#define STM32F746_PJ2_FUNC_ANALOG 0x9211
1218
1219#define STM32F746_PJ3_FUNC_GPIO 0x9300
1220#define STM32F746_PJ3_FUNC_LCD_R4 0x930f
1221#define STM32F746_PJ3_FUNC_EVENTOUT 0x9310
1222#define STM32F746_PJ3_FUNC_ANALOG 0x9311
1223
1224#define STM32F746_PJ4_FUNC_GPIO 0x9400
1225#define STM32F746_PJ4_FUNC_LCD_R5 0x940f
1226#define STM32F746_PJ4_FUNC_EVENTOUT 0x9410
1227#define STM32F746_PJ4_FUNC_ANALOG 0x9411
1228
1229#define STM32F746_PJ5_FUNC_GPIO 0x9500
1230#define STM32F746_PJ5_FUNC_LCD_R6 0x950f
1231#define STM32F746_PJ5_FUNC_EVENTOUT 0x9510
1232#define STM32F746_PJ5_FUNC_ANALOG 0x9511
1233
1234#define STM32F746_PJ6_FUNC_GPIO 0x9600
1235#define STM32F746_PJ6_FUNC_LCD_R7 0x960f
1236#define STM32F746_PJ6_FUNC_EVENTOUT 0x9610
1237#define STM32F746_PJ6_FUNC_ANALOG 0x9611
1238
1239#define STM32F746_PJ7_FUNC_GPIO 0x9700
1240#define STM32F746_PJ7_FUNC_LCD_G0 0x970f
1241#define STM32F746_PJ7_FUNC_EVENTOUT 0x9710
1242#define STM32F746_PJ7_FUNC_ANALOG 0x9711
1243
1244#define STM32F746_PJ8_FUNC_GPIO 0x9800
1245#define STM32F746_PJ8_FUNC_LCD_G1 0x980f
1246#define STM32F746_PJ8_FUNC_EVENTOUT 0x9810
1247#define STM32F746_PJ8_FUNC_ANALOG 0x9811
1248
1249#define STM32F746_PJ9_FUNC_GPIO 0x9900
1250#define STM32F746_PJ9_FUNC_LCD_G2 0x990f
1251#define STM32F746_PJ9_FUNC_EVENTOUT 0x9910
1252#define STM32F746_PJ9_FUNC_ANALOG 0x9911
1253
1254#define STM32F746_PJ10_FUNC_GPIO 0x9a00
1255#define STM32F746_PJ10_FUNC_LCD_G3 0x9a0f
1256#define STM32F746_PJ10_FUNC_EVENTOUT 0x9a10
1257#define STM32F746_PJ10_FUNC_ANALOG 0x9a11
1258
1259#define STM32F746_PJ11_FUNC_GPIO 0x9b00
1260#define STM32F746_PJ11_FUNC_LCD_G4 0x9b0f
1261#define STM32F746_PJ11_FUNC_EVENTOUT 0x9b10
1262#define STM32F746_PJ11_FUNC_ANALOG 0x9b11
1263
1264#define STM32F746_PJ12_FUNC_GPIO 0x9c00
1265#define STM32F746_PJ12_FUNC_LCD_B0 0x9c0f
1266#define STM32F746_PJ12_FUNC_EVENTOUT 0x9c10
1267#define STM32F746_PJ12_FUNC_ANALOG 0x9c11
1268
1269#define STM32F746_PJ13_FUNC_GPIO 0x9d00
1270#define STM32F746_PJ13_FUNC_LCD_B1 0x9d0f
1271#define STM32F746_PJ13_FUNC_EVENTOUT 0x9d10
1272#define STM32F746_PJ13_FUNC_ANALOG 0x9d11
1273
1274#define STM32F746_PJ14_FUNC_GPIO 0x9e00
1275#define STM32F746_PJ14_FUNC_LCD_B2 0x9e0f
1276#define STM32F746_PJ14_FUNC_EVENTOUT 0x9e10
1277#define STM32F746_PJ14_FUNC_ANALOG 0x9e11
1278
1279#define STM32F746_PJ15_FUNC_GPIO 0x9f00
1280#define STM32F746_PJ15_FUNC_LCD_B3 0x9f0f
1281#define STM32F746_PJ15_FUNC_EVENTOUT 0x9f10
1282#define STM32F746_PJ15_FUNC_ANALOG 0x9f11
1283
1284
1285#define STM32F746_PK0_FUNC_GPIO 0xa000
1286#define STM32F746_PK0_FUNC_LCD_G5 0xa00f
1287#define STM32F746_PK0_FUNC_EVENTOUT 0xa010
1288#define STM32F746_PK0_FUNC_ANALOG 0xa011
1289
1290#define STM32F746_PK1_FUNC_GPIO 0xa100
1291#define STM32F746_PK1_FUNC_LCD_G6 0xa10f
1292#define STM32F746_PK1_FUNC_EVENTOUT 0xa110
1293#define STM32F746_PK1_FUNC_ANALOG 0xa111
1294
1295#define STM32F746_PK2_FUNC_GPIO 0xa200
1296#define STM32F746_PK2_FUNC_LCD_G7 0xa20f
1297#define STM32F746_PK2_FUNC_EVENTOUT 0xa210
1298#define STM32F746_PK2_FUNC_ANALOG 0xa211
1299
1300#define STM32F746_PK3_FUNC_GPIO 0xa300
1301#define STM32F746_PK3_FUNC_LCD_B4 0xa30f
1302#define STM32F746_PK3_FUNC_EVENTOUT 0xa310
1303#define STM32F746_PK3_FUNC_ANALOG 0xa311
1304
1305#define STM32F746_PK4_FUNC_GPIO 0xa400
1306#define STM32F746_PK4_FUNC_LCD_B5 0xa40f
1307#define STM32F746_PK4_FUNC_EVENTOUT 0xa410
1308#define STM32F746_PK4_FUNC_ANALOG 0xa411
1309
1310#define STM32F746_PK5_FUNC_GPIO 0xa500
1311#define STM32F746_PK5_FUNC_LCD_B6 0xa50f
1312#define STM32F746_PK5_FUNC_EVENTOUT 0xa510
1313#define STM32F746_PK5_FUNC_ANALOG 0xa511
1314
1315#define STM32F746_PK6_FUNC_GPIO 0xa600
1316#define STM32F746_PK6_FUNC_LCD_B7 0xa60f
1317#define STM32F746_PK6_FUNC_EVENTOUT 0xa610
1318#define STM32F746_PK6_FUNC_ANALOG 0xa611
1319
1320#define STM32F746_PK7_FUNC_GPIO 0xa700
1321#define STM32F746_PK7_FUNC_LCD_DE 0xa70f
1322#define STM32F746_PK7_FUNC_EVENTOUT 0xa710
1323#define STM32F746_PK7_FUNC_ANALOG 0xa711
1324
1325#endif /* _DT_BINDINGS_STM32F746_PINFUNC_H */
diff --git a/include/dt-bindings/pinctrl/stm32h7-pinfunc.h b/include/dt-bindings/pinctrl/stm32h7-pinfunc.h
deleted file mode 100644
index 06d99a8ddbc6..000000000000
--- a/include/dt-bindings/pinctrl/stm32h7-pinfunc.h
+++ /dev/null
@@ -1,1613 +0,0 @@
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _DT_BINDINGS_STM32H7_PINFUNC_H
3#define _DT_BINDINGS_STM32H7_PINFUNC_H
4
5#define STM32H7_PA0_FUNC_GPIO 0x0
6#define STM32H7_PA0_FUNC_TIM2_CH1_TIM2_ETR 0x2
7#define STM32H7_PA0_FUNC_TIM5_CH1 0x3
8#define STM32H7_PA0_FUNC_TIM8_ETR 0x4
9#define STM32H7_PA0_FUNC_TIM15_BKIN 0x5
10#define STM32H7_PA0_FUNC_USART2_CTS_NSS 0x8
11#define STM32H7_PA0_FUNC_UART4_TX 0x9
12#define STM32H7_PA0_FUNC_SDMMC2_CMD 0xa
13#define STM32H7_PA0_FUNC_SAI2_SD_B 0xb
14#define STM32H7_PA0_FUNC_ETH_MII_CRS 0xc
15#define STM32H7_PA0_FUNC_EVENTOUT 0x10
16#define STM32H7_PA0_FUNC_ANALOG 0x11
17
18#define STM32H7_PA1_FUNC_GPIO 0x100
19#define STM32H7_PA1_FUNC_TIM2_CH2 0x102
20#define STM32H7_PA1_FUNC_TIM5_CH2 0x103
21#define STM32H7_PA1_FUNC_LPTIM3_OUT 0x104
22#define STM32H7_PA1_FUNC_TIM15_CH1N 0x105
23#define STM32H7_PA1_FUNC_USART2_RTS 0x108
24#define STM32H7_PA1_FUNC_UART4_RX 0x109
25#define STM32H7_PA1_FUNC_QUADSPI_BK1_IO3 0x10a
26#define STM32H7_PA1_FUNC_SAI2_MCK_B 0x10b
27#define STM32H7_PA1_FUNC_ETH_MII_RX_CLK_ETH_RMII_REF_CLK 0x10c
28#define STM32H7_PA1_FUNC_LCD_R2 0x10f
29#define STM32H7_PA1_FUNC_EVENTOUT 0x110
30#define STM32H7_PA1_FUNC_ANALOG 0x111
31
32#define STM32H7_PA2_FUNC_GPIO 0x200
33#define STM32H7_PA2_FUNC_TIM2_CH3 0x202
34#define STM32H7_PA2_FUNC_TIM5_CH3 0x203
35#define STM32H7_PA2_FUNC_LPTIM4_OUT 0x204
36#define STM32H7_PA2_FUNC_TIM15_CH1 0x205
37#define STM32H7_PA2_FUNC_USART2_TX 0x208
38#define STM32H7_PA2_FUNC_SAI2_SCK_B 0x209
39#define STM32H7_PA2_FUNC_ETH_MDIO 0x20c
40#define STM32H7_PA2_FUNC_MDIOS_MDIO 0x20d
41#define STM32H7_PA2_FUNC_LCD_R1 0x20f
42#define STM32H7_PA2_FUNC_EVENTOUT 0x210
43#define STM32H7_PA2_FUNC_ANALOG 0x211
44
45#define STM32H7_PA3_FUNC_GPIO 0x300
46#define STM32H7_PA3_FUNC_TIM2_CH4 0x302
47#define STM32H7_PA3_FUNC_TIM5_CH4 0x303
48#define STM32H7_PA3_FUNC_LPTIM5_OUT 0x304
49#define STM32H7_PA3_FUNC_TIM15_CH2 0x305
50#define STM32H7_PA3_FUNC_USART2_RX 0x308
51#define STM32H7_PA3_FUNC_LCD_B2 0x30a
52#define STM32H7_PA3_FUNC_OTG_HS_ULPI_D0 0x30b
53#define STM32H7_PA3_FUNC_ETH_MII_COL 0x30c
54#define STM32H7_PA3_FUNC_LCD_B5 0x30f
55#define STM32H7_PA3_FUNC_EVENTOUT 0x310
56#define STM32H7_PA3_FUNC_ANALOG 0x311
57
58#define STM32H7_PA4_FUNC_GPIO 0x400
59#define STM32H7_PA4_FUNC_TIM5_ETR 0x403
60#define STM32H7_PA4_FUNC_SPI1_NSS_I2S1_WS 0x406
61#define STM32H7_PA4_FUNC_SPI3_NSS_I2S3_WS 0x407
62#define STM32H7_PA4_FUNC_USART2_CK 0x408
63#define STM32H7_PA4_FUNC_SPI6_NSS 0x409
64#define STM32H7_PA4_FUNC_OTG_HS_SOF 0x40d
65#define STM32H7_PA4_FUNC_DCMI_HSYNC 0x40e
66#define STM32H7_PA4_FUNC_LCD_VSYNC 0x40f
67#define STM32H7_PA4_FUNC_EVENTOUT 0x410
68#define STM32H7_PA4_FUNC_ANALOG 0x411
69
70#define STM32H7_PA5_FUNC_GPIO 0x500
71#define STM32H7_PA5_FUNC_TIM2_CH1_TIM2_ETR 0x502
72#define STM32H7_PA5_FUNC_TIM8_CH1N 0x504
73#define STM32H7_PA5_FUNC_SPI1_SCK_I2S1_CK 0x506
74#define STM32H7_PA5_FUNC_SPI6_SCK 0x509
75#define STM32H7_PA5_FUNC_OTG_HS_ULPI_CK 0x50b
76#define STM32H7_PA5_FUNC_LCD_R4 0x50f
77#define STM32H7_PA5_FUNC_EVENTOUT 0x510
78#define STM32H7_PA5_FUNC_ANALOG 0x511
79
80#define STM32H7_PA6_FUNC_GPIO 0x600
81#define STM32H7_PA6_FUNC_TIM1_BKIN 0x602
82#define STM32H7_PA6_FUNC_TIM3_CH1 0x603
83#define STM32H7_PA6_FUNC_TIM8_BKIN 0x604
84#define STM32H7_PA6_FUNC_SPI1_MISO_I2S1_SDI 0x606
85#define STM32H7_PA6_FUNC_SPI6_MISO 0x609
86#define STM32H7_PA6_FUNC_TIM13_CH1 0x60a
87#define STM32H7_PA6_FUNC_TIM8_BKIN_COMP12 0x60b
88#define STM32H7_PA6_FUNC_MDIOS_MDC 0x60c
89#define STM32H7_PA6_FUNC_TIM1_BKIN_COMP12 0x60d
90#define STM32H7_PA6_FUNC_DCMI_PIXCLK 0x60e
91#define STM32H7_PA6_FUNC_LCD_G2 0x60f
92#define STM32H7_PA6_FUNC_EVENTOUT 0x610
93#define STM32H7_PA6_FUNC_ANALOG 0x611
94
95#define STM32H7_PA7_FUNC_GPIO 0x700
96#define STM32H7_PA7_FUNC_TIM1_CH1N 0x702
97#define STM32H7_PA7_FUNC_TIM3_CH2 0x703
98#define STM32H7_PA7_FUNC_TIM8_CH1N 0x704
99#define STM32H7_PA7_FUNC_SPI1_MOSI_I2S1_SDO 0x706
100#define STM32H7_PA7_FUNC_SPI6_MOSI 0x709
101#define STM32H7_PA7_FUNC_TIM14_CH1 0x70a
102#define STM32H7_PA7_FUNC_ETH_MII_RX_DV_ETH_RMII_CRS_DV 0x70c
103#define STM32H7_PA7_FUNC_FMC_SDNWE 0x70d
104#define STM32H7_PA7_FUNC_EVENTOUT 0x710
105#define STM32H7_PA7_FUNC_ANALOG 0x711
106
107#define STM32H7_PA8_FUNC_GPIO 0x800
108#define STM32H7_PA8_FUNC_MCO1 0x801
109#define STM32H7_PA8_FUNC_TIM1_CH1 0x802
110#define STM32H7_PA8_FUNC_HRTIM_CHB2 0x803
111#define STM32H7_PA8_FUNC_TIM8_BKIN2 0x804
112#define STM32H7_PA8_FUNC_I2C3_SCL 0x805
113#define STM32H7_PA8_FUNC_USART1_CK 0x808
114#define STM32H7_PA8_FUNC_OTG_FS_SOF 0x80b
115#define STM32H7_PA8_FUNC_UART7_RX 0x80c
116#define STM32H7_PA8_FUNC_TIM8_BKIN2_COMP12 0x80d
117#define STM32H7_PA8_FUNC_LCD_B3 0x80e
118#define STM32H7_PA8_FUNC_LCD_R6 0x80f
119#define STM32H7_PA8_FUNC_EVENTOUT 0x810
120#define STM32H7_PA8_FUNC_ANALOG 0x811
121
122#define STM32H7_PA9_FUNC_GPIO 0x900
123#define STM32H7_PA9_FUNC_TIM1_CH2 0x902
124#define STM32H7_PA9_FUNC_HRTIM_CHC1 0x903
125#define STM32H7_PA9_FUNC_LPUART1_TX 0x904
126#define STM32H7_PA9_FUNC_I2C3_SMBA 0x905
127#define STM32H7_PA9_FUNC_SPI2_SCK_I2S2_CK 0x906
128#define STM32H7_PA9_FUNC_USART1_TX 0x908
129#define STM32H7_PA9_FUNC_CAN1_RXFD 0x90a
130#define STM32H7_PA9_FUNC_ETH_TX_ER 0x90c
131#define STM32H7_PA9_FUNC_DCMI_D0 0x90e
132#define STM32H7_PA9_FUNC_LCD_R5 0x90f
133#define STM32H7_PA9_FUNC_EVENTOUT 0x910
134#define STM32H7_PA9_FUNC_ANALOG 0x911
135
136#define STM32H7_PA10_FUNC_GPIO 0xa00
137#define STM32H7_PA10_FUNC_TIM1_CH3 0xa02
138#define STM32H7_PA10_FUNC_HRTIM_CHC2 0xa03
139#define STM32H7_PA10_FUNC_LPUART1_RX 0xa04
140#define STM32H7_PA10_FUNC_USART1_RX 0xa08
141#define STM32H7_PA10_FUNC_CAN1_TXFD 0xa0a
142#define STM32H7_PA10_FUNC_OTG_FS_ID 0xa0b
143#define STM32H7_PA10_FUNC_MDIOS_MDIO 0xa0c
144#define STM32H7_PA10_FUNC_LCD_B4 0xa0d
145#define STM32H7_PA10_FUNC_DCMI_D1 0xa0e
146#define STM32H7_PA10_FUNC_LCD_B1 0xa0f
147#define STM32H7_PA10_FUNC_EVENTOUT 0xa10
148#define STM32H7_PA10_FUNC_ANALOG 0xa11
149
150#define STM32H7_PA11_FUNC_GPIO 0xb00
151#define STM32H7_PA11_FUNC_TIM1_CH4 0xb02
152#define STM32H7_PA11_FUNC_HRTIM_CHD1 0xb03
153#define STM32H7_PA11_FUNC_LPUART1_CTS 0xb04
154#define STM32H7_PA11_FUNC_SPI2_NSS_I2S2_WS 0xb06
155#define STM32H7_PA11_FUNC_UART4_RX 0xb07
156#define STM32H7_PA11_FUNC_USART1_CTS_NSS 0xb08
157#define STM32H7_PA11_FUNC_CAN1_RX 0xb0a
158#define STM32H7_PA11_FUNC_OTG_FS_DM 0xb0b
159#define STM32H7_PA11_FUNC_LCD_R4 0xb0f
160#define STM32H7_PA11_FUNC_EVENTOUT 0xb10
161#define STM32H7_PA11_FUNC_ANALOG 0xb11
162
163#define STM32H7_PA12_FUNC_GPIO 0xc00
164#define STM32H7_PA12_FUNC_TIM1_ETR 0xc02
165#define STM32H7_PA12_FUNC_HRTIM_CHD2 0xc03
166#define STM32H7_PA12_FUNC_LPUART1_RTS 0xc04
167#define STM32H7_PA12_FUNC_SPI2_SCK_I2S2_CK 0xc06
168#define STM32H7_PA12_FUNC_UART4_TX 0xc07
169#define STM32H7_PA12_FUNC_USART1_RTS 0xc08
170#define STM32H7_PA12_FUNC_SAI2_FS_B 0xc09
171#define STM32H7_PA12_FUNC_CAN1_TX 0xc0a
172#define STM32H7_PA12_FUNC_OTG_FS_DP 0xc0b
173#define STM32H7_PA12_FUNC_LCD_R5 0xc0f
174#define STM32H7_PA12_FUNC_EVENTOUT 0xc10
175#define STM32H7_PA12_FUNC_ANALOG 0xc11
176
177#define STM32H7_PA13_FUNC_GPIO 0xd00
178#define STM32H7_PA13_FUNC_JTMS_SWDIO 0xd01
179#define STM32H7_PA13_FUNC_EVENTOUT 0xd10
180#define STM32H7_PA13_FUNC_ANALOG 0xd11
181
182#define STM32H7_PA14_FUNC_GPIO 0xe00
183#define STM32H7_PA14_FUNC_JTCK_SWCLK 0xe01
184#define STM32H7_PA14_FUNC_EVENTOUT 0xe10
185#define STM32H7_PA14_FUNC_ANALOG 0xe11
186
187#define STM32H7_PA15_FUNC_GPIO 0xf00
188#define STM32H7_PA15_FUNC_JTDI 0xf01
189#define STM32H7_PA15_FUNC_TIM2_CH1_TIM2_ETR 0xf02
190#define STM32H7_PA15_FUNC_HRTIM_FLT1 0xf03
191#define STM32H7_PA15_FUNC_HDMI_CEC 0xf05
192#define STM32H7_PA15_FUNC_SPI1_NSS_I2S1_WS 0xf06
193#define STM32H7_PA15_FUNC_SPI3_NSS_I2S3_WS 0xf07
194#define STM32H7_PA15_FUNC_SPI6_NSS 0xf08
195#define STM32H7_PA15_FUNC_UART4_RTS 0xf09
196#define STM32H7_PA15_FUNC_UART7_TX 0xf0c
197#define STM32H7_PA15_FUNC_DSI_TE 0xf0e
198#define STM32H7_PA15_FUNC_EVENTOUT 0xf10
199#define STM32H7_PA15_FUNC_ANALOG 0xf11
200
201#define STM32H7_PB0_FUNC_GPIO 0x1000
202#define STM32H7_PB0_FUNC_TIM1_CH2N 0x1002
203#define STM32H7_PB0_FUNC_TIM3_CH3 0x1003
204#define STM32H7_PB0_FUNC_TIM8_CH2N 0x1004
205#define STM32H7_PB0_FUNC_DFSDM_CKOUT 0x1007
206#define STM32H7_PB0_FUNC_UART4_CTS 0x1009
207#define STM32H7_PB0_FUNC_LCD_R3 0x100a
208#define STM32H7_PB0_FUNC_OTG_HS_ULPI_D1 0x100b
209#define STM32H7_PB0_FUNC_ETH_MII_RXD2 0x100c
210#define STM32H7_PB0_FUNC_LCD_G1 0x100f
211#define STM32H7_PB0_FUNC_EVENTOUT 0x1010
212#define STM32H7_PB0_FUNC_ANALOG 0x1011
213
214#define STM32H7_PB1_FUNC_GPIO 0x1100
215#define STM32H7_PB1_FUNC_TIM1_CH3N 0x1102
216#define STM32H7_PB1_FUNC_TIM3_CH4 0x1103
217#define STM32H7_PB1_FUNC_TIM8_CH3N 0x1104
218#define STM32H7_PB1_FUNC_DFSDM_DATIN1 0x1107
219#define STM32H7_PB1_FUNC_LCD_R6 0x110a
220#define STM32H7_PB1_FUNC_OTG_HS_ULPI_D2 0x110b
221#define STM32H7_PB1_FUNC_ETH_MII_RXD3 0x110c
222#define STM32H7_PB1_FUNC_LCD_G0 0x110f
223#define STM32H7_PB1_FUNC_EVENTOUT 0x1110
224#define STM32H7_PB1_FUNC_ANALOG 0x1111
225
226#define STM32H7_PB2_FUNC_GPIO 0x1200
227#define STM32H7_PB2_FUNC_SAI1_D1 0x1203
228#define STM32H7_PB2_FUNC_DFSDM_CKIN1 0x1205
229#define STM32H7_PB2_FUNC_SAI1_SD_A 0x1207
230#define STM32H7_PB2_FUNC_SPI3_MOSI_I2S3_SDO 0x1208
231#define STM32H7_PB2_FUNC_SAI4_SD_A 0x1209
232#define STM32H7_PB2_FUNC_QUADSPI_CLK 0x120a
233#define STM32H7_PB2_FUNC_SAI4_D1 0x120b
234#define STM32H7_PB2_FUNC_ETH_TX_ER 0x120c
235#define STM32H7_PB2_FUNC_EVENTOUT 0x1210
236#define STM32H7_PB2_FUNC_ANALOG 0x1211
237
238#define STM32H7_PB3_FUNC_GPIO 0x1300
239#define STM32H7_PB3_FUNC_JTDO_TRACESWO 0x1301
240#define STM32H7_PB3_FUNC_TIM2_CH2 0x1302
241#define STM32H7_PB3_FUNC_HRTIM_FLT4 0x1303
242#define STM32H7_PB3_FUNC_SPI1_SCK_I2S1_CK 0x1306
243#define STM32H7_PB3_FUNC_SPI3_SCK_I2S3_CK 0x1307
244#define STM32H7_PB3_FUNC_SPI6_SCK 0x1309
245#define STM32H7_PB3_FUNC_SDMMC2_D2 0x130a
246#define STM32H7_PB3_FUNC_UART7_RX 0x130c
247#define STM32H7_PB3_FUNC_EVENTOUT 0x1310
248#define STM32H7_PB3_FUNC_ANALOG 0x1311
249
250#define STM32H7_PB4_FUNC_GPIO 0x1400
251#define STM32H7_PB4_FUNC_NJTRST 0x1401
252#define STM32H7_PB4_FUNC_TIM16_BKIN 0x1402
253#define STM32H7_PB4_FUNC_TIM3_CH1 0x1403
254#define STM32H7_PB4_FUNC_HRTIM_EEV6 0x1404
255#define STM32H7_PB4_FUNC_SPI1_MISO_I2S1_SDI 0x1406
256#define STM32H7_PB4_FUNC_SPI3_MISO_I2S3_SDI 0x1407
257#define STM32H7_PB4_FUNC_SPI2_NSS_I2S2_WS 0x1408
258#define STM32H7_PB4_FUNC_SPI6_MISO 0x1409
259#define STM32H7_PB4_FUNC_SDMMC2_D3 0x140a
260#define STM32H7_PB4_FUNC_UART7_TX 0x140c
261#define STM32H7_PB4_FUNC_EVENTOUT 0x1410
262#define STM32H7_PB4_FUNC_ANALOG 0x1411
263
264#define STM32H7_PB5_FUNC_GPIO 0x1500
265#define STM32H7_PB5_FUNC_TIM17_BKIN 0x1502
266#define STM32H7_PB5_FUNC_TIM3_CH2 0x1503
267#define STM32H7_PB5_FUNC_HRTIM_EEV7 0x1504
268#define STM32H7_PB5_FUNC_I2C1_SMBA 0x1505
269#define STM32H7_PB5_FUNC_SPI1_MOSI_I2S1_SDO 0x1506
270#define STM32H7_PB5_FUNC_I2C4_SMBA 0x1507
271#define STM32H7_PB5_FUNC_SPI3_MOSI_I2S3_SDO 0x1508
272#define STM32H7_PB5_FUNC_SPI6_MOSI 0x1509
273#define STM32H7_PB5_FUNC_CAN2_RX 0x150a
274#define STM32H7_PB5_FUNC_OTG_HS_ULPI_D7 0x150b
275#define STM32H7_PB5_FUNC_ETH_PPS_OUT 0x150c
276#define STM32H7_PB5_FUNC_FMC_SDCKE1 0x150d
277#define STM32H7_PB5_FUNC_DCMI_D10 0x150e
278#define STM32H7_PB5_FUNC_UART5_RX 0x150f
279#define STM32H7_PB5_FUNC_EVENTOUT 0x1510
280#define STM32H7_PB5_FUNC_ANALOG 0x1511
281
282#define STM32H7_PB6_FUNC_GPIO 0x1600
283#define STM32H7_PB6_FUNC_TIM16_CH1N 0x1602
284#define STM32H7_PB6_FUNC_TIM4_CH1 0x1603
285#define STM32H7_PB6_FUNC_HRTIM_EEV8 0x1604
286#define STM32H7_PB6_FUNC_I2C1_SCL 0x1605
287#define STM32H7_PB6_FUNC_HDMI_CEC 0x1606
288#define STM32H7_PB6_FUNC_I2C4_SCL 0x1607
289#define STM32H7_PB6_FUNC_USART1_TX 0x1608
290#define STM32H7_PB6_FUNC_LPUART1_TX 0x1609
291#define STM32H7_PB6_FUNC_CAN2_TX 0x160a
292#define STM32H7_PB6_FUNC_QUADSPI_BK1_NCS 0x160b
293#define STM32H7_PB6_FUNC_DFSDM_DATIN5 0x160c
294#define STM32H7_PB6_FUNC_FMC_SDNE1 0x160d
295#define STM32H7_PB6_FUNC_DCMI_D5 0x160e
296#define STM32H7_PB6_FUNC_UART5_TX 0x160f
297#define STM32H7_PB6_FUNC_EVENTOUT 0x1610
298#define STM32H7_PB6_FUNC_ANALOG 0x1611
299
300#define STM32H7_PB7_FUNC_GPIO 0x1700
301#define STM32H7_PB7_FUNC_TIM17_CH1N 0x1702
302#define STM32H7_PB7_FUNC_TIM4_CH2 0x1703
303#define STM32H7_PB7_FUNC_HRTIM_EEV9 0x1704
304#define STM32H7_PB7_FUNC_I2C1_SDA 0x1705
305#define STM32H7_PB7_FUNC_I2C4_SDA 0x1707
306#define STM32H7_PB7_FUNC_USART1_RX 0x1708
307#define STM32H7_PB7_FUNC_LPUART1_RX 0x1709
308#define STM32H7_PB7_FUNC_CAN2_TXFD 0x170a
309#define STM32H7_PB7_FUNC_DFSDM_CKIN5 0x170c
310#define STM32H7_PB7_FUNC_FMC_NL 0x170d
311#define STM32H7_PB7_FUNC_DCMI_VSYNC 0x170e
312#define STM32H7_PB7_FUNC_EVENTOUT 0x1710
313#define STM32H7_PB7_FUNC_ANALOG 0x1711
314
315#define STM32H7_PB8_FUNC_GPIO 0x1800
316#define STM32H7_PB8_FUNC_TIM16_CH1 0x1802
317#define STM32H7_PB8_FUNC_TIM4_CH3 0x1803
318#define STM32H7_PB8_FUNC_DFSDM_CKIN7 0x1804
319#define STM32H7_PB8_FUNC_I2C1_SCL 0x1805
320#define STM32H7_PB8_FUNC_I2C4_SCL 0x1807
321#define STM32H7_PB8_FUNC_SDMMC1_CKIN 0x1808
322#define STM32H7_PB8_FUNC_UART4_RX 0x1809
323#define STM32H7_PB8_FUNC_CAN1_RX 0x180a
324#define STM32H7_PB8_FUNC_SDMMC2_D4 0x180b
325#define STM32H7_PB8_FUNC_ETH_MII_TXD3 0x180c
326#define STM32H7_PB8_FUNC_SDMMC1_D4 0x180d
327#define STM32H7_PB8_FUNC_DCMI_D6 0x180e
328#define STM32H7_PB8_FUNC_LCD_B6 0x180f
329#define STM32H7_PB8_FUNC_EVENTOUT 0x1810
330#define STM32H7_PB8_FUNC_ANALOG 0x1811
331
332#define STM32H7_PB9_FUNC_GPIO 0x1900
333#define STM32H7_PB9_FUNC_TIM17_CH1 0x1902
334#define STM32H7_PB9_FUNC_TIM4_CH4 0x1903
335#define STM32H7_PB9_FUNC_DFSDM_DATIN7 0x1904
336#define STM32H7_PB9_FUNC_I2C1_SDA 0x1905
337#define STM32H7_PB9_FUNC_SPI2_NSS_I2S2_WS 0x1906
338#define STM32H7_PB9_FUNC_I2C4_SDA 0x1907
339#define STM32H7_PB9_FUNC_SDMMC1_CDIR 0x1908
340#define STM32H7_PB9_FUNC_UART4_TX 0x1909
341#define STM32H7_PB9_FUNC_CAN1_TX 0x190a
342#define STM32H7_PB9_FUNC_SDMMC2_D5 0x190b
343#define STM32H7_PB9_FUNC_I2C4_SMBA 0x190c
344#define STM32H7_PB9_FUNC_SDMMC1_D5 0x190d
345#define STM32H7_PB9_FUNC_DCMI_D7 0x190e
346#define STM32H7_PB9_FUNC_LCD_B7 0x190f
347#define STM32H7_PB9_FUNC_EVENTOUT 0x1910
348#define STM32H7_PB9_FUNC_ANALOG 0x1911
349
350#define STM32H7_PB10_FUNC_GPIO 0x1a00
351#define STM32H7_PB10_FUNC_TIM2_CH3 0x1a02
352#define STM32H7_PB10_FUNC_HRTIM_SCOUT 0x1a03
353#define STM32H7_PB10_FUNC_LPTIM2_IN1 0x1a04
354#define STM32H7_PB10_FUNC_I2C2_SCL 0x1a05
355#define STM32H7_PB10_FUNC_SPI2_SCK_I2S2_CK 0x1a06
356#define STM32H7_PB10_FUNC_DFSDM_DATIN7 0x1a07
357#define STM32H7_PB10_FUNC_USART3_TX 0x1a08
358#define STM32H7_PB10_FUNC_QUADSPI_BK1_NCS 0x1a0a
359#define STM32H7_PB10_FUNC_OTG_HS_ULPI_D3 0x1a0b
360#define STM32H7_PB10_FUNC_ETH_MII_RX_ER 0x1a0c
361#define STM32H7_PB10_FUNC_LCD_G4 0x1a0f
362#define STM32H7_PB10_FUNC_EVENTOUT 0x1a10
363#define STM32H7_PB10_FUNC_ANALOG 0x1a11
364
365#define STM32H7_PB11_FUNC_GPIO 0x1b00
366#define STM32H7_PB11_FUNC_TIM2_CH4 0x1b02
367#define STM32H7_PB11_FUNC_HRTIM_SCIN 0x1b03
368#define STM32H7_PB11_FUNC_LPTIM2_ETR 0x1b04
369#define STM32H7_PB11_FUNC_I2C2_SDA 0x1b05
370#define STM32H7_PB11_FUNC_DFSDM_CKIN7 0x1b07
371#define STM32H7_PB11_FUNC_USART3_RX 0x1b08
372#define STM32H7_PB11_FUNC_OTG_HS_ULPI_D4 0x1b0b
373#define STM32H7_PB11_FUNC_ETH_MII_TX_EN_ETH_RMII_TX_EN 0x1b0c
374#define STM32H7_PB11_FUNC_DSI_TE 0x1b0e
375#define STM32H7_PB11_FUNC_LCD_G5 0x1b0f
376#define STM32H7_PB11_FUNC_EVENTOUT 0x1b10
377#define STM32H7_PB11_FUNC_ANALOG 0x1b11
378
379#define STM32H7_PB12_FUNC_GPIO 0x1c00
380#define STM32H7_PB12_FUNC_TIM1_BKIN 0x1c02
381#define STM32H7_PB12_FUNC_I2C2_SMBA 0x1c05
382#define STM32H7_PB12_FUNC_SPI2_NSS_I2S2_WS 0x1c06
383#define STM32H7_PB12_FUNC_DFSDM_DATIN1 0x1c07
384#define STM32H7_PB12_FUNC_USART3_CK 0x1c08
385#define STM32H7_PB12_FUNC_CAN2_RX 0x1c0a
386#define STM32H7_PB12_FUNC_OTG_HS_ULPI_D5 0x1c0b
387#define STM32H7_PB12_FUNC_ETH_MII_TXD0_ETH_RMII_TXD0 0x1c0c
388#define STM32H7_PB12_FUNC_OTG_HS_ID 0x1c0d
389#define STM32H7_PB12_FUNC_TIM1_BKIN_COMP12 0x1c0e
390#define STM32H7_PB12_FUNC_UART5_RX 0x1c0f
391#define STM32H7_PB12_FUNC_EVENTOUT 0x1c10
392#define STM32H7_PB12_FUNC_ANALOG 0x1c11
393
394#define STM32H7_PB13_FUNC_GPIO 0x1d00
395#define STM32H7_PB13_FUNC_TIM1_CH1N 0x1d02
396#define STM32H7_PB13_FUNC_LPTIM2_OUT 0x1d04
397#define STM32H7_PB13_FUNC_SPI2_SCK_I2S2_CK 0x1d06
398#define STM32H7_PB13_FUNC_DFSDM_CKIN1 0x1d07
399#define STM32H7_PB13_FUNC_USART3_CTS_NSS 0x1d08
400#define STM32H7_PB13_FUNC_CAN2_TX 0x1d0a
401#define STM32H7_PB13_FUNC_OTG_HS_ULPI_D6 0x1d0b
402#define STM32H7_PB13_FUNC_ETH_MII_TXD1_ETH_RMII_TXD1 0x1d0c
403#define STM32H7_PB13_FUNC_UART5_TX 0x1d0f
404#define STM32H7_PB13_FUNC_EVENTOUT 0x1d10
405#define STM32H7_PB13_FUNC_ANALOG 0x1d11
406
407#define STM32H7_PB14_FUNC_GPIO 0x1e00
408#define STM32H7_PB14_FUNC_TIM1_CH2N 0x1e02
409#define STM32H7_PB14_FUNC_TIM8_CH2N 0x1e04
410#define STM32H7_PB14_FUNC_USART1_TX 0x1e05
411#define STM32H7_PB14_FUNC_SPI2_MISO_I2S2_SDI 0x1e06
412#define STM32H7_PB14_FUNC_DFSDM_DATIN2 0x1e07
413#define STM32H7_PB14_FUNC_USART3_RTS 0x1e08
414#define STM32H7_PB14_FUNC_UART4_RTS 0x1e09
415#define STM32H7_PB14_FUNC_SDMMC2_D0 0x1e0a
416#define STM32H7_PB14_FUNC_OTG_HS_DM 0x1e0d
417#define STM32H7_PB14_FUNC_EVENTOUT 0x1e10
418#define STM32H7_PB14_FUNC_ANALOG 0x1e11
419
420#define STM32H7_PB15_FUNC_GPIO 0x1f00
421#define STM32H7_PB15_FUNC_RTC_REFIN 0x1f01
422#define STM32H7_PB15_FUNC_TIM1_CH3N 0x1f02
423#define STM32H7_PB15_FUNC_TIM8_CH3N 0x1f04
424#define STM32H7_PB15_FUNC_USART1_RX 0x1f05
425#define STM32H7_PB15_FUNC_SPI2_MOSI_I2S2_SDO 0x1f06
426#define STM32H7_PB15_FUNC_DFSDM_CKIN2 0x1f07
427#define STM32H7_PB15_FUNC_UART4_CTS 0x1f09
428#define STM32H7_PB15_FUNC_SDMMC2_D1 0x1f0a
429#define STM32H7_PB15_FUNC_OTG_HS_DP 0x1f0d
430#define STM32H7_PB15_FUNC_EVENTOUT 0x1f10
431#define STM32H7_PB15_FUNC_ANALOG 0x1f11
432
433#define STM32H7_PC0_FUNC_GPIO 0x2000
434#define STM32H7_PC0_FUNC_DFSDM_CKIN0 0x2004
435#define STM32H7_PC0_FUNC_DFSDM_DATIN4 0x2007
436#define STM32H7_PC0_FUNC_SAI2_FS_B 0x2009
437#define STM32H7_PC0_FUNC_OTG_HS_ULPI_STP 0x200b
438#define STM32H7_PC0_FUNC_FMC_SDNWE 0x200d
439#define STM32H7_PC0_FUNC_LCD_R5 0x200f
440#define STM32H7_PC0_FUNC_EVENTOUT 0x2010
441#define STM32H7_PC0_FUNC_ANALOG 0x2011
442
443#define STM32H7_PC1_FUNC_GPIO 0x2100
444#define STM32H7_PC1_FUNC_TRACED0 0x2101
445#define STM32H7_PC1_FUNC_SAI1_D1 0x2103
446#define STM32H7_PC1_FUNC_DFSDM_DATIN0 0x2104
447#define STM32H7_PC1_FUNC_DFSDM_CKIN4 0x2105
448#define STM32H7_PC1_FUNC_SPI2_MOSI_I2S2_SDO 0x2106
449#define STM32H7_PC1_FUNC_SAI1_SD_A 0x2107
450#define STM32H7_PC1_FUNC_SAI4_SD_A 0x2109
451#define STM32H7_PC1_FUNC_SDMMC2_CK 0x210a
452#define STM32H7_PC1_FUNC_SAI4_D1 0x210b
453#define STM32H7_PC1_FUNC_ETH_MDC 0x210c
454#define STM32H7_PC1_FUNC_MDIOS_MDC 0x210d
455#define STM32H7_PC1_FUNC_EVENTOUT 0x2110
456#define STM32H7_PC1_FUNC_ANALOG 0x2111
457
458#define STM32H7_PC2_FUNC_GPIO 0x2200
459#define STM32H7_PC2_FUNC_DFSDM_CKIN1 0x2204
460#define STM32H7_PC2_FUNC_SPI2_MISO_I2S2_SDI 0x2206
461#define STM32H7_PC2_FUNC_DFSDM_CKOUT 0x2207
462#define STM32H7_PC2_FUNC_OTG_HS_ULPI_DIR 0x220b
463#define STM32H7_PC2_FUNC_ETH_MII_TXD2 0x220c
464#define STM32H7_PC2_FUNC_FMC_SDNE0 0x220d
465#define STM32H7_PC2_FUNC_EVENTOUT 0x2210
466#define STM32H7_PC2_FUNC_ANALOG 0x2211
467
468#define STM32H7_PC3_FUNC_GPIO 0x2300
469#define STM32H7_PC3_FUNC_DFSDM_DATIN1 0x2304
470#define STM32H7_PC3_FUNC_SPI2_MOSI_I2S2_SDO 0x2306
471#define STM32H7_PC3_FUNC_OTG_HS_ULPI_NXT 0x230b
472#define STM32H7_PC3_FUNC_ETH_MII_TX_CLK 0x230c
473#define STM32H7_PC3_FUNC_FMC_SDCKE0 0x230d
474#define STM32H7_PC3_FUNC_EVENTOUT 0x2310
475#define STM32H7_PC3_FUNC_ANALOG 0x2311
476
477#define STM32H7_PC4_FUNC_GPIO 0x2400
478#define STM32H7_PC4_FUNC_DFSDM_CKIN2 0x2404
479#define STM32H7_PC4_FUNC_I2S1_MCK 0x2406
480#define STM32H7_PC4_FUNC_SPDIFRX_IN2 0x240a
481#define STM32H7_PC4_FUNC_ETH_MII_RXD0_ETH_RMII_RXD0 0x240c
482#define STM32H7_PC4_FUNC_FMC_SDNE0 0x240d
483#define STM32H7_PC4_FUNC_EVENTOUT 0x2410
484#define STM32H7_PC4_FUNC_ANALOG 0x2411
485
486#define STM32H7_PC5_FUNC_GPIO 0x2500
487#define STM32H7_PC5_FUNC_SAI1_D3 0x2503
488#define STM32H7_PC5_FUNC_DFSDM_DATIN2 0x2504
489#define STM32H7_PC5_FUNC_SPDIFRX_IN3 0x250a
490#define STM32H7_PC5_FUNC_SAI4_D3 0x250b
491#define STM32H7_PC5_FUNC_ETH_MII_RXD1_ETH_RMII_RXD1 0x250c
492#define STM32H7_PC5_FUNC_FMC_SDCKE0 0x250d
493#define STM32H7_PC5_FUNC_COMP_1_OUT 0x250e
494#define STM32H7_PC5_FUNC_EVENTOUT 0x2510
495#define STM32H7_PC5_FUNC_ANALOG 0x2511
496
497#define STM32H7_PC6_FUNC_GPIO 0x2600
498#define STM32H7_PC6_FUNC_HRTIM_CHA1 0x2602
499#define STM32H7_PC6_FUNC_TIM3_CH1 0x2603
500#define STM32H7_PC6_FUNC_TIM8_CH1 0x2604
501#define STM32H7_PC6_FUNC_DFSDM_CKIN3 0x2605
502#define STM32H7_PC6_FUNC_I2S2_MCK 0x2606
503#define STM32H7_PC6_FUNC_USART6_TX 0x2608
504#define STM32H7_PC6_FUNC_SDMMC1_D0DIR 0x2609
505#define STM32H7_PC6_FUNC_FMC_NWAIT 0x260a
506#define STM32H7_PC6_FUNC_SDMMC2_D6 0x260b
507#define STM32H7_PC6_FUNC_SDMMC1_D6 0x260d
508#define STM32H7_PC6_FUNC_DCMI_D0 0x260e
509#define STM32H7_PC6_FUNC_LCD_HSYNC 0x260f
510#define STM32H7_PC6_FUNC_EVENTOUT 0x2610
511#define STM32H7_PC6_FUNC_ANALOG 0x2611
512
513#define STM32H7_PC7_FUNC_GPIO 0x2700
514#define STM32H7_PC7_FUNC_TRGIO 0x2701
515#define STM32H7_PC7_FUNC_HRTIM_CHA2 0x2702
516#define STM32H7_PC7_FUNC_TIM3_CH2 0x2703
517#define STM32H7_PC7_FUNC_TIM8_CH2 0x2704
518#define STM32H7_PC7_FUNC_DFSDM_DATIN3 0x2705
519#define STM32H7_PC7_FUNC_I2S3_MCK 0x2707
520#define STM32H7_PC7_FUNC_USART6_RX 0x2708
521#define STM32H7_PC7_FUNC_SDMMC1_D123DIR 0x2709
522#define STM32H7_PC7_FUNC_FMC_NE1 0x270a
523#define STM32H7_PC7_FUNC_SDMMC2_D7 0x270b
524#define STM32H7_PC7_FUNC_SWPMI_TX 0x270c
525#define STM32H7_PC7_FUNC_SDMMC1_D7 0x270d
526#define STM32H7_PC7_FUNC_DCMI_D1 0x270e
527#define STM32H7_PC7_FUNC_LCD_G6 0x270f
528#define STM32H7_PC7_FUNC_EVENTOUT 0x2710
529#define STM32H7_PC7_FUNC_ANALOG 0x2711
530
531#define STM32H7_PC8_FUNC_GPIO 0x2800
532#define STM32H7_PC8_FUNC_TRACED1 0x2801
533#define STM32H7_PC8_FUNC_HRTIM_CHB1 0x2802
534#define STM32H7_PC8_FUNC_TIM3_CH3 0x2803
535#define STM32H7_PC8_FUNC_TIM8_CH3 0x2804
536#define STM32H7_PC8_FUNC_USART6_CK 0x2808
537#define STM32H7_PC8_FUNC_UART5_RTS 0x2809
538#define STM32H7_PC8_FUNC_FMC_NE2_FMC_NCE 0x280a
539#define STM32H7_PC8_FUNC_SWPMI_RX 0x280c
540#define STM32H7_PC8_FUNC_SDMMC1_D0 0x280d
541#define STM32H7_PC8_FUNC_DCMI_D2 0x280e
542#define STM32H7_PC8_FUNC_EVENTOUT 0x2810
543#define STM32H7_PC8_FUNC_ANALOG 0x2811
544
545#define STM32H7_PC9_FUNC_GPIO 0x2900
546#define STM32H7_PC9_FUNC_MCO2 0x2901
547#define STM32H7_PC9_FUNC_TIM3_CH4 0x2903
548#define STM32H7_PC9_FUNC_TIM8_CH4 0x2904
549#define STM32H7_PC9_FUNC_I2C3_SDA 0x2905
550#define STM32H7_PC9_FUNC_I2S_CKIN 0x2906
551#define STM32H7_PC9_FUNC_UART5_CTS 0x2909
552#define STM32H7_PC9_FUNC_QUADSPI_BK1_IO0 0x290a
553#define STM32H7_PC9_FUNC_LCD_G3 0x290b
554#define STM32H7_PC9_FUNC_SWPMI_SUSPEND 0x290c
555#define STM32H7_PC9_FUNC_SDMMC1_D1 0x290d
556#define STM32H7_PC9_FUNC_DCMI_D3 0x290e
557#define STM32H7_PC9_FUNC_LCD_B2 0x290f
558#define STM32H7_PC9_FUNC_EVENTOUT 0x2910
559#define STM32H7_PC9_FUNC_ANALOG 0x2911
560
561#define STM32H7_PC10_FUNC_GPIO 0x2a00
562#define STM32H7_PC10_FUNC_HRTIM_EEV1 0x2a03
563#define STM32H7_PC10_FUNC_DFSDM_CKIN5 0x2a04
564#define STM32H7_PC10_FUNC_SPI3_SCK_I2S3_CK 0x2a07
565#define STM32H7_PC10_FUNC_USART3_TX 0x2a08
566#define STM32H7_PC10_FUNC_UART4_TX 0x2a09
567#define STM32H7_PC10_FUNC_QUADSPI_BK1_IO1 0x2a0a
568#define STM32H7_PC10_FUNC_SDMMC1_D2 0x2a0d
569#define STM32H7_PC10_FUNC_DCMI_D8 0x2a0e
570#define STM32H7_PC10_FUNC_LCD_R2 0x2a0f
571#define STM32H7_PC10_FUNC_EVENTOUT 0x2a10
572#define STM32H7_PC10_FUNC_ANALOG 0x2a11
573
574#define STM32H7_PC11_FUNC_GPIO 0x2b00
575#define STM32H7_PC11_FUNC_HRTIM_FLT2 0x2b03
576#define STM32H7_PC11_FUNC_DFSDM_DATIN5 0x2b04
577#define STM32H7_PC11_FUNC_SPI3_MISO_I2S3_SDI 0x2b07
578#define STM32H7_PC11_FUNC_USART3_RX 0x2b08
579#define STM32H7_PC11_FUNC_UART4_RX 0x2b09
580#define STM32H7_PC11_FUNC_QUADSPI_BK2_NCS 0x2b0a
581#define STM32H7_PC11_FUNC_SDMMC1_D3 0x2b0d
582#define STM32H7_PC11_FUNC_DCMI_D4 0x2b0e
583#define STM32H7_PC11_FUNC_EVENTOUT 0x2b10
584#define STM32H7_PC11_FUNC_ANALOG 0x2b11
585
586#define STM32H7_PC12_FUNC_GPIO 0x2c00
587#define STM32H7_PC12_FUNC_TRACED3 0x2c01
588#define STM32H7_PC12_FUNC_HRTIM_EEV2 0x2c03
589#define STM32H7_PC12_FUNC_SPI3_MOSI_I2S3_SDO 0x2c07
590#define STM32H7_PC12_FUNC_USART3_CK 0x2c08
591#define STM32H7_PC12_FUNC_UART5_TX 0x2c09
592#define STM32H7_PC12_FUNC_SDMMC1_CK 0x2c0d
593#define STM32H7_PC12_FUNC_DCMI_D9 0x2c0e
594#define STM32H7_PC12_FUNC_EVENTOUT 0x2c10
595#define STM32H7_PC12_FUNC_ANALOG 0x2c11
596
597#define STM32H7_PC13_FUNC_GPIO 0x2d00
598#define STM32H7_PC13_FUNC_EVENTOUT 0x2d10
599#define STM32H7_PC13_FUNC_ANALOG 0x2d11
600
601#define STM32H7_PC14_FUNC_GPIO 0x2e00
602#define STM32H7_PC14_FUNC_EVENTOUT 0x2e10
603#define STM32H7_PC14_FUNC_ANALOG 0x2e11
604
605#define STM32H7_PC15_FUNC_GPIO 0x2f00
606#define STM32H7_PC15_FUNC_EVENTOUT 0x2f10
607#define STM32H7_PC15_FUNC_ANALOG 0x2f11
608
609#define STM32H7_PD0_FUNC_GPIO 0x3000
610#define STM32H7_PD0_FUNC_DFSDM_CKIN6 0x3004
611#define STM32H7_PD0_FUNC_SAI3_SCK_A 0x3007
612#define STM32H7_PD0_FUNC_UART4_RX 0x3009
613#define STM32H7_PD0_FUNC_CAN1_RX 0x300a
614#define STM32H7_PD0_FUNC_FMC_D2_FMC_DA2 0x300d
615#define STM32H7_PD0_FUNC_EVENTOUT 0x3010
616#define STM32H7_PD0_FUNC_ANALOG 0x3011
617
618#define STM32H7_PD1_FUNC_GPIO 0x3100
619#define STM32H7_PD1_FUNC_DFSDM_DATIN6 0x3104
620#define STM32H7_PD1_FUNC_SAI3_SD_A 0x3107
621#define STM32H7_PD1_FUNC_UART4_TX 0x3109
622#define STM32H7_PD1_FUNC_CAN1_TX 0x310a
623#define STM32H7_PD1_FUNC_FMC_D3_FMC_DA3 0x310d
624#define STM32H7_PD1_FUNC_EVENTOUT 0x3110
625#define STM32H7_PD1_FUNC_ANALOG 0x3111
626
627#define STM32H7_PD2_FUNC_GPIO 0x3200
628#define STM32H7_PD2_FUNC_TRACED2 0x3201
629#define STM32H7_PD2_FUNC_TIM3_ETR 0x3203
630#define STM32H7_PD2_FUNC_UART5_RX 0x3209
631#define STM32H7_PD2_FUNC_SDMMC1_CMD 0x320d
632#define STM32H7_PD2_FUNC_DCMI_D11 0x320e
633#define STM32H7_PD2_FUNC_EVENTOUT 0x3210
634#define STM32H7_PD2_FUNC_ANALOG 0x3211
635
636#define STM32H7_PD3_FUNC_GPIO 0x3300
637#define STM32H7_PD3_FUNC_DFSDM_CKOUT 0x3304
638#define STM32H7_PD3_FUNC_SPI2_SCK_I2S2_CK 0x3306
639#define STM32H7_PD3_FUNC_USART2_CTS_NSS 0x3308
640#define STM32H7_PD3_FUNC_FMC_CLK 0x330d
641#define STM32H7_PD3_FUNC_DCMI_D5 0x330e
642#define STM32H7_PD3_FUNC_LCD_G7 0x330f
643#define STM32H7_PD3_FUNC_EVENTOUT 0x3310
644#define STM32H7_PD3_FUNC_ANALOG 0x3311
645
646#define STM32H7_PD4_FUNC_GPIO 0x3400
647#define STM32H7_PD4_FUNC_HRTIM_FLT3 0x3403
648#define STM32H7_PD4_FUNC_SAI3_FS_A 0x3407
649#define STM32H7_PD4_FUNC_USART2_RTS 0x3408
650#define STM32H7_PD4_FUNC_CAN1_RXFD 0x340a
651#define STM32H7_PD4_FUNC_FMC_NOE 0x340d
652#define STM32H7_PD4_FUNC_EVENTOUT 0x3410
653#define STM32H7_PD4_FUNC_ANALOG 0x3411
654
655#define STM32H7_PD5_FUNC_GPIO 0x3500
656#define STM32H7_PD5_FUNC_HRTIM_EEV3 0x3503
657#define STM32H7_PD5_FUNC_USART2_TX 0x3508
658#define STM32H7_PD5_FUNC_CAN1_TXFD 0x350a
659#define STM32H7_PD5_FUNC_FMC_NWE 0x350d
660#define STM32H7_PD5_FUNC_EVENTOUT 0x3510
661#define STM32H7_PD5_FUNC_ANALOG 0x3511
662
663#define STM32H7_PD6_FUNC_GPIO 0x3600
664#define STM32H7_PD6_FUNC_SAI1_D1 0x3603
665#define STM32H7_PD6_FUNC_DFSDM_CKIN4 0x3604
666#define STM32H7_PD6_FUNC_DFSDM_DATIN1 0x3605
667#define STM32H7_PD6_FUNC_SPI3_MOSI_I2S3_SDO 0x3606
668#define STM32H7_PD6_FUNC_SAI1_SD_A 0x3607
669#define STM32H7_PD6_FUNC_USART2_RX 0x3608
670#define STM32H7_PD6_FUNC_SAI4_SD_A 0x3609
671#define STM32H7_PD6_FUNC_CAN2_RXFD 0x360a
672#define STM32H7_PD6_FUNC_SAI4_D1 0x360b
673#define STM32H7_PD6_FUNC_SDMMC2_CK 0x360c
674#define STM32H7_PD6_FUNC_FMC_NWAIT 0x360d
675#define STM32H7_PD6_FUNC_DCMI_D10 0x360e
676#define STM32H7_PD6_FUNC_LCD_B2 0x360f
677#define STM32H7_PD6_FUNC_EVENTOUT 0x3610
678#define STM32H7_PD6_FUNC_ANALOG 0x3611
679
680#define STM32H7_PD7_FUNC_GPIO 0x3700
681#define STM32H7_PD7_FUNC_DFSDM_DATIN4 0x3704
682#define STM32H7_PD7_FUNC_SPI1_MOSI_I2S1_SDO 0x3706
683#define STM32H7_PD7_FUNC_DFSDM_CKIN1 0x3707
684#define STM32H7_PD7_FUNC_USART2_CK 0x3708
685#define STM32H7_PD7_FUNC_SPDIFRX_IN0 0x370a
686#define STM32H7_PD7_FUNC_SDMMC2_CMD 0x370c
687#define STM32H7_PD7_FUNC_FMC_NE1 0x370d
688#define STM32H7_PD7_FUNC_EVENTOUT 0x3710
689#define STM32H7_PD7_FUNC_ANALOG 0x3711
690
691#define STM32H7_PD8_FUNC_GPIO 0x3800
692#define STM32H7_PD8_FUNC_DFSDM_CKIN3 0x3804
693#define STM32H7_PD8_FUNC_SAI3_SCK_B 0x3807
694#define STM32H7_PD8_FUNC_USART3_TX 0x3808
695#define STM32H7_PD8_FUNC_SPDIFRX_IN1 0x380a
696#define STM32H7_PD8_FUNC_FMC_D13_FMC_DA13 0x380d
697#define STM32H7_PD8_FUNC_EVENTOUT 0x3810
698#define STM32H7_PD8_FUNC_ANALOG 0x3811
699
700#define STM32H7_PD9_FUNC_GPIO 0x3900
701#define STM32H7_PD9_FUNC_DFSDM_DATIN3 0x3904
702#define STM32H7_PD9_FUNC_SAI3_SD_B 0x3907
703#define STM32H7_PD9_FUNC_USART3_RX 0x3908
704#define STM32H7_PD9_FUNC_CAN2_RXFD 0x390a
705#define STM32H7_PD9_FUNC_FMC_D14_FMC_DA14 0x390d
706#define STM32H7_PD9_FUNC_EVENTOUT 0x3910
707#define STM32H7_PD9_FUNC_ANALOG 0x3911
708
709#define STM32H7_PD10_FUNC_GPIO 0x3a00
710#define STM32H7_PD10_FUNC_DFSDM_CKOUT 0x3a04
711#define STM32H7_PD10_FUNC_SAI3_FS_B 0x3a07
712#define STM32H7_PD10_FUNC_USART3_CK 0x3a08
713#define STM32H7_PD10_FUNC_CAN2_TXFD 0x3a0a
714#define STM32H7_PD10_FUNC_FMC_D15_FMC_DA15 0x3a0d
715#define STM32H7_PD10_FUNC_LCD_B3 0x3a0f
716#define STM32H7_PD10_FUNC_EVENTOUT 0x3a10
717#define STM32H7_PD10_FUNC_ANALOG 0x3a11
718
719#define STM32H7_PD11_FUNC_GPIO 0x3b00
720#define STM32H7_PD11_FUNC_LPTIM2_IN2 0x3b04
721#define STM32H7_PD11_FUNC_I2C4_SMBA 0x3b05
722#define STM32H7_PD11_FUNC_USART3_CTS_NSS 0x3b08
723#define STM32H7_PD11_FUNC_QUADSPI_BK1_IO0 0x3b0a
724#define STM32H7_PD11_FUNC_SAI2_SD_A 0x3b0b
725#define STM32H7_PD11_FUNC_FMC_A16 0x3b0d
726#define STM32H7_PD11_FUNC_EVENTOUT 0x3b10
727#define STM32H7_PD11_FUNC_ANALOG 0x3b11
728
729#define STM32H7_PD12_FUNC_GPIO 0x3c00
730#define STM32H7_PD12_FUNC_LPTIM1_IN1 0x3c02
731#define STM32H7_PD12_FUNC_TIM4_CH1 0x3c03
732#define STM32H7_PD12_FUNC_LPTIM2_IN1 0x3c04
733#define STM32H7_PD12_FUNC_I2C4_SCL 0x3c05
734#define STM32H7_PD12_FUNC_USART3_RTS 0x3c08
735#define STM32H7_PD12_FUNC_QUADSPI_BK1_IO1 0x3c0a
736#define STM32H7_PD12_FUNC_SAI2_FS_A 0x3c0b
737#define STM32H7_PD12_FUNC_FMC_A17 0x3c0d
738#define STM32H7_PD12_FUNC_EVENTOUT 0x3c10
739#define STM32H7_PD12_FUNC_ANALOG 0x3c11
740
741#define STM32H7_PD13_FUNC_GPIO 0x3d00
742#define STM32H7_PD13_FUNC_LPTIM1_OUT 0x3d02
743#define STM32H7_PD13_FUNC_TIM4_CH2 0x3d03
744#define STM32H7_PD13_FUNC_I2C4_SDA 0x3d05
745#define STM32H7_PD13_FUNC_QUADSPI_BK1_IO3 0x3d0a
746#define STM32H7_PD13_FUNC_SAI2_SCK_A 0x3d0b
747#define STM32H7_PD13_FUNC_FMC_A18 0x3d0d
748#define STM32H7_PD13_FUNC_EVENTOUT 0x3d10
749#define STM32H7_PD13_FUNC_ANALOG 0x3d11
750
751#define STM32H7_PD14_FUNC_GPIO 0x3e00
752#define STM32H7_PD14_FUNC_TIM4_CH3 0x3e03
753#define STM32H7_PD14_FUNC_SAI3_MCLK_B 0x3e07
754#define STM32H7_PD14_FUNC_UART8_CTS 0x3e09
755#define STM32H7_PD14_FUNC_FMC_D0_FMC_DA0 0x3e0d
756#define STM32H7_PD14_FUNC_EVENTOUT 0x3e10
757#define STM32H7_PD14_FUNC_ANALOG 0x3e11
758
759#define STM32H7_PD15_FUNC_GPIO 0x3f00
760#define STM32H7_PD15_FUNC_TIM4_CH4 0x3f03
761#define STM32H7_PD15_FUNC_SAI3_MCLK_A 0x3f07
762#define STM32H7_PD15_FUNC_UART8_RTS 0x3f09
763#define STM32H7_PD15_FUNC_FMC_D1_FMC_DA1 0x3f0d
764#define STM32H7_PD15_FUNC_EVENTOUT 0x3f10
765#define STM32H7_PD15_FUNC_ANALOG 0x3f11
766
767#define STM32H7_PE0_FUNC_GPIO 0x4000
768#define STM32H7_PE0_FUNC_LPTIM1_ETR 0x4002
769#define STM32H7_PE0_FUNC_TIM4_ETR 0x4003
770#define STM32H7_PE0_FUNC_HRTIM_SCIN 0x4004
771#define STM32H7_PE0_FUNC_LPTIM2_ETR 0x4005
772#define STM32H7_PE0_FUNC_UART8_RX 0x4009
773#define STM32H7_PE0_FUNC_CAN1_RXFD 0x400a
774#define STM32H7_PE0_FUNC_SAI2_MCK_A 0x400b
775#define STM32H7_PE0_FUNC_FMC_NBL0 0x400d
776#define STM32H7_PE0_FUNC_DCMI_D2 0x400e
777#define STM32H7_PE0_FUNC_EVENTOUT 0x4010
778#define STM32H7_PE0_FUNC_ANALOG 0x4011
779
780#define STM32H7_PE1_FUNC_GPIO 0x4100
781#define STM32H7_PE1_FUNC_LPTIM1_IN2 0x4102
782#define STM32H7_PE1_FUNC_HRTIM_SCOUT 0x4104
783#define STM32H7_PE1_FUNC_UART8_TX 0x4109
784#define STM32H7_PE1_FUNC_CAN1_TXFD 0x410a
785#define STM32H7_PE1_FUNC_FMC_NBL1 0x410d
786#define STM32H7_PE1_FUNC_DCMI_D3 0x410e
787#define STM32H7_PE1_FUNC_EVENTOUT 0x4110
788#define STM32H7_PE1_FUNC_ANALOG 0x4111
789
790#define STM32H7_PE2_FUNC_GPIO 0x4200
791#define STM32H7_PE2_FUNC_TRACECLK 0x4201
792#define STM32H7_PE2_FUNC_SAI1_CK1 0x4203
793#define STM32H7_PE2_FUNC_SPI4_SCK 0x4206
794#define STM32H7_PE2_FUNC_SAI1_MCLK_A 0x4207
795#define STM32H7_PE2_FUNC_SAI4_MCLK_A 0x4209
796#define STM32H7_PE2_FUNC_QUADSPI_BK1_IO2 0x420a
797#define STM32H7_PE2_FUNC_SAI4_CK1 0x420b
798#define STM32H7_PE2_FUNC_ETH_MII_TXD3 0x420c
799#define STM32H7_PE2_FUNC_FMC_A23 0x420d
800#define STM32H7_PE2_FUNC_EVENTOUT 0x4210
801#define STM32H7_PE2_FUNC_ANALOG 0x4211
802
803#define STM32H7_PE3_FUNC_GPIO 0x4300
804#define STM32H7_PE3_FUNC_TRACED0 0x4301
805#define STM32H7_PE3_FUNC_TIM15_BKIN 0x4305
806#define STM32H7_PE3_FUNC_SAI1_SD_B 0x4307
807#define STM32H7_PE3_FUNC_SAI4_SD_B 0x4309
808#define STM32H7_PE3_FUNC_FMC_A19 0x430d
809#define STM32H7_PE3_FUNC_EVENTOUT 0x4310
810#define STM32H7_PE3_FUNC_ANALOG 0x4311
811
812#define STM32H7_PE4_FUNC_GPIO 0x4400
813#define STM32H7_PE4_FUNC_TRACED1 0x4401
814#define STM32H7_PE4_FUNC_SAI1_D2 0x4403
815#define STM32H7_PE4_FUNC_DFSDM_DATIN3 0x4404
816#define STM32H7_PE4_FUNC_TIM15_CH1N 0x4405
817#define STM32H7_PE4_FUNC_SPI4_NSS 0x4406
818#define STM32H7_PE4_FUNC_SAI1_FS_A 0x4407
819#define STM32H7_PE4_FUNC_SAI4_FS_A 0x4409
820#define STM32H7_PE4_FUNC_SAI4_D2 0x440b
821#define STM32H7_PE4_FUNC_FMC_A20 0x440d
822#define STM32H7_PE4_FUNC_DCMI_D4 0x440e
823#define STM32H7_PE4_FUNC_LCD_B0 0x440f
824#define STM32H7_PE4_FUNC_EVENTOUT 0x4410
825#define STM32H7_PE4_FUNC_ANALOG 0x4411
826
827#define STM32H7_PE5_FUNC_GPIO 0x4500
828#define STM32H7_PE5_FUNC_TRACED2 0x4501
829#define STM32H7_PE5_FUNC_SAI1_CK2 0x4503
830#define STM32H7_PE5_FUNC_DFSDM_CKIN3 0x4504
831#define STM32H7_PE5_FUNC_TIM15_CH1 0x4505
832#define STM32H7_PE5_FUNC_SPI4_MISO 0x4506
833#define STM32H7_PE5_FUNC_SAI1_SCK_A 0x4507
834#define STM32H7_PE5_FUNC_SAI4_SCK_A 0x4509
835#define STM32H7_PE5_FUNC_SAI4_CK2 0x450b
836#define STM32H7_PE5_FUNC_FMC_A21 0x450d
837#define STM32H7_PE5_FUNC_DCMI_D6 0x450e
838#define STM32H7_PE5_FUNC_LCD_G0 0x450f
839#define STM32H7_PE5_FUNC_EVENTOUT 0x4510
840#define STM32H7_PE5_FUNC_ANALOG 0x4511
841
842#define STM32H7_PE6_FUNC_GPIO 0x4600
843#define STM32H7_PE6_FUNC_TRACED3 0x4601
844#define STM32H7_PE6_FUNC_TIM1_BKIN2 0x4602
845#define STM32H7_PE6_FUNC_SAI1_D1 0x4603
846#define STM32H7_PE6_FUNC_TIM15_CH2 0x4605
847#define STM32H7_PE6_FUNC_SPI4_MOSI 0x4606
848#define STM32H7_PE6_FUNC_SAI1_SD_A 0x4607
849#define STM32H7_PE6_FUNC_SAI4_SD_A 0x4609
850#define STM32H7_PE6_FUNC_SAI4_D1 0x460a
851#define STM32H7_PE6_FUNC_SAI2_MCK_B 0x460b
852#define STM32H7_PE6_FUNC_TIM1_BKIN2_COMP12 0x460c
853#define STM32H7_PE6_FUNC_FMC_A22 0x460d
854#define STM32H7_PE6_FUNC_DCMI_D7 0x460e
855#define STM32H7_PE6_FUNC_LCD_G1 0x460f
856#define STM32H7_PE6_FUNC_EVENTOUT 0x4610
857#define STM32H7_PE6_FUNC_ANALOG 0x4611
858
859#define STM32H7_PE7_FUNC_GPIO 0x4700
860#define STM32H7_PE7_FUNC_TIM1_ETR 0x4702
861#define STM32H7_PE7_FUNC_DFSDM_DATIN2 0x4704
862#define STM32H7_PE7_FUNC_UART7_RX 0x4708
863#define STM32H7_PE7_FUNC_QUADSPI_BK2_IO0 0x470b
864#define STM32H7_PE7_FUNC_FMC_D4_FMC_DA4 0x470d
865#define STM32H7_PE7_FUNC_EVENTOUT 0x4710
866#define STM32H7_PE7_FUNC_ANALOG 0x4711
867
868#define STM32H7_PE8_FUNC_GPIO 0x4800
869#define STM32H7_PE8_FUNC_TIM1_CH1N 0x4802
870#define STM32H7_PE8_FUNC_DFSDM_CKIN2 0x4804
871#define STM32H7_PE8_FUNC_UART7_TX 0x4808
872#define STM32H7_PE8_FUNC_QUADSPI_BK2_IO1 0x480b
873#define STM32H7_PE8_FUNC_FMC_D5_FMC_DA5 0x480d
874#define STM32H7_PE8_FUNC_COMP_2_OUT 0x480e
875#define STM32H7_PE8_FUNC_EVENTOUT 0x4810
876#define STM32H7_PE8_FUNC_ANALOG 0x4811
877
878#define STM32H7_PE9_FUNC_GPIO 0x4900
879#define STM32H7_PE9_FUNC_TIM1_CH1 0x4902
880#define STM32H7_PE9_FUNC_DFSDM_CKOUT 0x4904
881#define STM32H7_PE9_FUNC_UART7_RTS 0x4908
882#define STM32H7_PE9_FUNC_QUADSPI_BK2_IO2 0x490b
883#define STM32H7_PE9_FUNC_FMC_D6_FMC_DA6 0x490d
884#define STM32H7_PE9_FUNC_EVENTOUT 0x4910
885#define STM32H7_PE9_FUNC_ANALOG 0x4911
886
887#define STM32H7_PE10_FUNC_GPIO 0x4a00
888#define STM32H7_PE10_FUNC_TIM1_CH2N 0x4a02
889#define STM32H7_PE10_FUNC_DFSDM_DATIN4 0x4a04
890#define STM32H7_PE10_FUNC_UART7_CTS 0x4a08
891#define STM32H7_PE10_FUNC_QUADSPI_BK2_IO3 0x4a0b
892#define STM32H7_PE10_FUNC_FMC_D7_FMC_DA7 0x4a0d
893#define STM32H7_PE10_FUNC_EVENTOUT 0x4a10
894#define STM32H7_PE10_FUNC_ANALOG 0x4a11
895
896#define STM32H7_PE11_FUNC_GPIO 0x4b00
897#define STM32H7_PE11_FUNC_TIM1_CH2 0x4b02
898#define STM32H7_PE11_FUNC_DFSDM_CKIN4 0x4b04
899#define STM32H7_PE11_FUNC_SPI4_NSS 0x4b06
900#define STM32H7_PE11_FUNC_SAI2_SD_B 0x4b0b
901#define STM32H7_PE11_FUNC_FMC_D8_FMC_DA8 0x4b0d
902#define STM32H7_PE11_FUNC_LCD_G3 0x4b0f
903#define STM32H7_PE11_FUNC_EVENTOUT 0x4b10
904#define STM32H7_PE11_FUNC_ANALOG 0x4b11
905
906#define STM32H7_PE12_FUNC_GPIO 0x4c00
907#define STM32H7_PE12_FUNC_TIM1_CH3N 0x4c02
908#define STM32H7_PE12_FUNC_DFSDM_DATIN5 0x4c04
909#define STM32H7_PE12_FUNC_SPI4_SCK 0x4c06
910#define STM32H7_PE12_FUNC_SAI2_SCK_B 0x4c0b
911#define STM32H7_PE12_FUNC_FMC_D9_FMC_DA9 0x4c0d
912#define STM32H7_PE12_FUNC_COMP_1_OUT 0x4c0e
913#define STM32H7_PE12_FUNC_LCD_B4 0x4c0f
914#define STM32H7_PE12_FUNC_EVENTOUT 0x4c10
915#define STM32H7_PE12_FUNC_ANALOG 0x4c11
916
917#define STM32H7_PE13_FUNC_GPIO 0x4d00
918#define STM32H7_PE13_FUNC_TIM1_CH3 0x4d02
919#define STM32H7_PE13_FUNC_DFSDM_CKIN5 0x4d04
920#define STM32H7_PE13_FUNC_SPI4_MISO 0x4d06
921#define STM32H7_PE13_FUNC_SAI2_FS_B 0x4d0b
922#define STM32H7_PE13_FUNC_FMC_D10_FMC_DA10 0x4d0d
923#define STM32H7_PE13_FUNC_COMP_2_OUT 0x4d0e
924#define STM32H7_PE13_FUNC_LCD_DE 0x4d0f
925#define STM32H7_PE13_FUNC_EVENTOUT 0x4d10
926#define STM32H7_PE13_FUNC_ANALOG 0x4d11
927
928#define STM32H7_PE14_FUNC_GPIO 0x4e00
929#define STM32H7_PE14_FUNC_TIM1_CH4 0x4e02
930#define STM32H7_PE14_FUNC_SPI4_MOSI 0x4e06
931#define STM32H7_PE14_FUNC_SAI2_MCK_B 0x4e0b
932#define STM32H7_PE14_FUNC_FMC_D11_FMC_DA11 0x4e0d
933#define STM32H7_PE14_FUNC_LCD_CLK 0x4e0f
934#define STM32H7_PE14_FUNC_EVENTOUT 0x4e10
935#define STM32H7_PE14_FUNC_ANALOG 0x4e11
936
937#define STM32H7_PE15_FUNC_GPIO 0x4f00
938#define STM32H7_PE15_FUNC_TIM1_BKIN 0x4f02
939#define STM32H7_PE15_FUNC_HDMI__TIM1_BKIN 0x4f06
940#define STM32H7_PE15_FUNC_FMC_D12_FMC_DA12 0x4f0d
941#define STM32H7_PE15_FUNC_TIM1_BKIN_COMP12 0x4f0e
942#define STM32H7_PE15_FUNC_LCD_R7 0x4f0f
943#define STM32H7_PE15_FUNC_EVENTOUT 0x4f10
944#define STM32H7_PE15_FUNC_ANALOG 0x4f11
945
946#define STM32H7_PF0_FUNC_GPIO 0x5000
947#define STM32H7_PF0_FUNC_I2C2_SDA 0x5005
948#define STM32H7_PF0_FUNC_FMC_A0 0x500d
949#define STM32H7_PF0_FUNC_EVENTOUT 0x5010
950#define STM32H7_PF0_FUNC_ANALOG 0x5011
951
952#define STM32H7_PF1_FUNC_GPIO 0x5100
953#define STM32H7_PF1_FUNC_I2C2_SCL 0x5105
954#define STM32H7_PF1_FUNC_FMC_A1 0x510d
955#define STM32H7_PF1_FUNC_EVENTOUT 0x5110
956#define STM32H7_PF1_FUNC_ANALOG 0x5111
957
958#define STM32H7_PF2_FUNC_GPIO 0x5200
959#define STM32H7_PF2_FUNC_I2C2_SMBA 0x5205
960#define STM32H7_PF2_FUNC_FMC_A2 0x520d
961#define STM32H7_PF2_FUNC_EVENTOUT 0x5210
962#define STM32H7_PF2_FUNC_ANALOG 0x5211
963
964#define STM32H7_PF3_FUNC_GPIO 0x5300
965#define STM32H7_PF3_FUNC_FMC_A3 0x530d
966#define STM32H7_PF3_FUNC_EVENTOUT 0x5310
967#define STM32H7_PF3_FUNC_ANALOG 0x5311
968
969#define STM32H7_PF4_FUNC_GPIO 0x5400
970#define STM32H7_PF4_FUNC_FMC_A4 0x540d
971#define STM32H7_PF4_FUNC_EVENTOUT 0x5410
972#define STM32H7_PF4_FUNC_ANALOG 0x5411
973
974#define STM32H7_PF5_FUNC_GPIO 0x5500
975#define STM32H7_PF5_FUNC_FMC_A5 0x550d
976#define STM32H7_PF5_FUNC_EVENTOUT 0x5510
977#define STM32H7_PF5_FUNC_ANALOG 0x5511
978
979#define STM32H7_PF6_FUNC_GPIO 0x5600
980#define STM32H7_PF6_FUNC_TIM16_CH1 0x5602
981#define STM32H7_PF6_FUNC_SPI5_NSS 0x5606
982#define STM32H7_PF6_FUNC_SAI1_SD_B 0x5607
983#define STM32H7_PF6_FUNC_UART7_RX 0x5608
984#define STM32H7_PF6_FUNC_SAI4_SD_B 0x5609
985#define STM32H7_PF6_FUNC_QUADSPI_BK1_IO3 0x560a
986#define STM32H7_PF6_FUNC_EVENTOUT 0x5610
987#define STM32H7_PF6_FUNC_ANALOG 0x5611
988
989#define STM32H7_PF7_FUNC_GPIO 0x5700
990#define STM32H7_PF7_FUNC_TIM17_CH1 0x5702
991#define STM32H7_PF7_FUNC_SPI5_SCK 0x5706
992#define STM32H7_PF7_FUNC_SAI1_MCLK_B 0x5707
993#define STM32H7_PF7_FUNC_UART7_TX 0x5708
994#define STM32H7_PF7_FUNC_SAI4_MCLK_B 0x5709
995#define STM32H7_PF7_FUNC_QUADSPI_BK1_IO2 0x570a
996#define STM32H7_PF7_FUNC_EVENTOUT 0x5710
997#define STM32H7_PF7_FUNC_ANALOG 0x5711
998
999#define STM32H7_PF8_FUNC_GPIO 0x5800
1000#define STM32H7_PF8_FUNC_TIM16_CH1N 0x5802
1001#define STM32H7_PF8_FUNC_SPI5_MISO 0x5806
1002#define STM32H7_PF8_FUNC_SAI1_SCK_B 0x5807
1003#define STM32H7_PF8_FUNC_UART7_RTS 0x5808
1004#define STM32H7_PF8_FUNC_SAI4_SCK_B 0x5809
1005#define STM32H7_PF8_FUNC_TIM13_CH1 0x580a
1006#define STM32H7_PF8_FUNC_QUADSPI_BK1_IO0 0x580b
1007#define STM32H7_PF8_FUNC_EVENTOUT 0x5810
1008#define STM32H7_PF8_FUNC_ANALOG 0x5811
1009
1010#define STM32H7_PF9_FUNC_GPIO 0x5900
1011#define STM32H7_PF9_FUNC_TIM17_CH1N 0x5902
1012#define STM32H7_PF9_FUNC_SPI5_MOSI 0x5906
1013#define STM32H7_PF9_FUNC_SAI1_FS_B 0x5907
1014#define STM32H7_PF9_FUNC_UART7_CTS 0x5908
1015#define STM32H7_PF9_FUNC_SAI4_FS_B 0x5909
1016#define STM32H7_PF9_FUNC_TIM14_CH1 0x590a
1017#define STM32H7_PF9_FUNC_QUADSPI_BK1_IO1 0x590b
1018#define STM32H7_PF9_FUNC_EVENTOUT 0x5910
1019#define STM32H7_PF9_FUNC_ANALOG 0x5911
1020
1021#define STM32H7_PF10_FUNC_GPIO 0x5a00
1022#define STM32H7_PF10_FUNC_TIM16_BKIN 0x5a02
1023#define STM32H7_PF10_FUNC_SAI1_D3 0x5a03
1024#define STM32H7_PF10_FUNC_QUADSPI_CLK 0x5a0a
1025#define STM32H7_PF10_FUNC_SAI4_D3 0x5a0b
1026#define STM32H7_PF10_FUNC_DCMI_D11 0x5a0e
1027#define STM32H7_PF10_FUNC_LCD_DE 0x5a0f
1028#define STM32H7_PF10_FUNC_EVENTOUT 0x5a10
1029#define STM32H7_PF10_FUNC_ANALOG 0x5a11
1030
1031#define STM32H7_PF11_FUNC_GPIO 0x5b00
1032#define STM32H7_PF11_FUNC_SPI5_MOSI 0x5b06
1033#define STM32H7_PF11_FUNC_SAI2_SD_B 0x5b0b
1034#define STM32H7_PF11_FUNC_FMC_SDNRAS 0x5b0d
1035#define STM32H7_PF11_FUNC_DCMI_D12 0x5b0e
1036#define STM32H7_PF11_FUNC_EVENTOUT 0x5b10
1037#define STM32H7_PF11_FUNC_ANALOG 0x5b11
1038
1039#define STM32H7_PF12_FUNC_GPIO 0x5c00
1040#define STM32H7_PF12_FUNC_FMC_A6 0x5c0d
1041#define STM32H7_PF12_FUNC_EVENTOUT 0x5c10
1042#define STM32H7_PF12_FUNC_ANALOG 0x5c11
1043
1044#define STM32H7_PF13_FUNC_GPIO 0x5d00
1045#define STM32H7_PF13_FUNC_DFSDM_DATIN6 0x5d04
1046#define STM32H7_PF13_FUNC_I2C4_SMBA 0x5d05
1047#define STM32H7_PF13_FUNC_FMC_A7 0x5d0d
1048#define STM32H7_PF13_FUNC_EVENTOUT 0x5d10
1049#define STM32H7_PF13_FUNC_ANALOG 0x5d11
1050
1051#define STM32H7_PF14_FUNC_GPIO 0x5e00
1052#define STM32H7_PF14_FUNC_DFSDM_CKIN6 0x5e04
1053#define STM32H7_PF14_FUNC_I2C4_SCL 0x5e05
1054#define STM32H7_PF14_FUNC_FMC_A8 0x5e0d
1055#define STM32H7_PF14_FUNC_EVENTOUT 0x5e10
1056#define STM32H7_PF14_FUNC_ANALOG 0x5e11
1057
1058#define STM32H7_PF15_FUNC_GPIO 0x5f00
1059#define STM32H7_PF15_FUNC_I2C4_SDA 0x5f05
1060#define STM32H7_PF15_FUNC_FMC_A9 0x5f0d
1061#define STM32H7_PF15_FUNC_EVENTOUT 0x5f10
1062#define STM32H7_PF15_FUNC_ANALOG 0x5f11
1063
1064#define STM32H7_PG0_FUNC_GPIO 0x6000
1065#define STM32H7_PG0_FUNC_FMC_A10 0x600d
1066#define STM32H7_PG0_FUNC_EVENTOUT 0x6010
1067#define STM32H7_PG0_FUNC_ANALOG 0x6011
1068
1069#define STM32H7_PG1_FUNC_GPIO 0x6100
1070#define STM32H7_PG1_FUNC_FMC_A11 0x610d
1071#define STM32H7_PG1_FUNC_EVENTOUT 0x6110
1072#define STM32H7_PG1_FUNC_ANALOG 0x6111
1073
1074#define STM32H7_PG2_FUNC_GPIO 0x6200
1075#define STM32H7_PG2_FUNC_TIM8_BKIN 0x6204
1076#define STM32H7_PG2_FUNC_TIM8_BKIN_COMP12 0x620c
1077#define STM32H7_PG2_FUNC_FMC_A12 0x620d
1078#define STM32H7_PG2_FUNC_EVENTOUT 0x6210
1079#define STM32H7_PG2_FUNC_ANALOG 0x6211
1080
1081#define STM32H7_PG3_FUNC_GPIO 0x6300
1082#define STM32H7_PG3_FUNC_TIM8_BKIN2 0x6304
1083#define STM32H7_PG3_FUNC_TIM8_BKIN2_COMP12 0x630c
1084#define STM32H7_PG3_FUNC_FMC_A13 0x630d
1085#define STM32H7_PG3_FUNC_EVENTOUT 0x6310
1086#define STM32H7_PG3_FUNC_ANALOG 0x6311
1087
1088#define STM32H7_PG4_FUNC_GPIO 0x6400
1089#define STM32H7_PG4_FUNC_TIM1_BKIN2 0x6402
1090#define STM32H7_PG4_FUNC_TIM1_BKIN2_COMP12 0x640c
1091#define STM32H7_PG4_FUNC_FMC_A14_FMC_BA0 0x640d
1092#define STM32H7_PG4_FUNC_EVENTOUT 0x6410
1093#define STM32H7_PG4_FUNC_ANALOG 0x6411
1094
1095#define STM32H7_PG5_FUNC_GPIO 0x6500
1096#define STM32H7_PG5_FUNC_TIM1_ETR 0x6502
1097#define STM32H7_PG5_FUNC_FMC_A15_FMC_BA1 0x650d
1098#define STM32H7_PG5_FUNC_EVENTOUT 0x6510
1099#define STM32H7_PG5_FUNC_ANALOG 0x6511
1100
1101#define STM32H7_PG6_FUNC_GPIO 0x6600
1102#define STM32H7_PG6_FUNC_TIM17_BKIN 0x6602
1103#define STM32H7_PG6_FUNC_HRTIM_CHE1 0x6603
1104#define STM32H7_PG6_FUNC_QUADSPI_BK1_NCS 0x660b
1105#define STM32H7_PG6_FUNC_FMC_NE3 0x660d
1106#define STM32H7_PG6_FUNC_DCMI_D12 0x660e
1107#define STM32H7_PG6_FUNC_LCD_R7 0x660f
1108#define STM32H7_PG6_FUNC_EVENTOUT 0x6610
1109#define STM32H7_PG6_FUNC_ANALOG 0x6611
1110
1111#define STM32H7_PG7_FUNC_GPIO 0x6700
1112#define STM32H7_PG7_FUNC_HRTIM_CHE2 0x6703
1113#define STM32H7_PG7_FUNC_SAI1_MCLK_A 0x6707
1114#define STM32H7_PG7_FUNC_USART6_CK 0x6708
1115#define STM32H7_PG7_FUNC_FMC_INT 0x670d
1116#define STM32H7_PG7_FUNC_DCMI_D13 0x670e
1117#define STM32H7_PG7_FUNC_LCD_CLK 0x670f
1118#define STM32H7_PG7_FUNC_EVENTOUT 0x6710
1119#define STM32H7_PG7_FUNC_ANALOG 0x6711
1120
1121#define STM32H7_PG8_FUNC_GPIO 0x6800
1122#define STM32H7_PG8_FUNC_TIM8_ETR 0x6804
1123#define STM32H7_PG8_FUNC_SPI6_NSS 0x6806
1124#define STM32H7_PG8_FUNC_USART6_RTS 0x6808
1125#define STM32H7_PG8_FUNC_SPDIFRX_IN2 0x6809
1126#define STM32H7_PG8_FUNC_ETH_PPS_OUT 0x680c
1127#define STM32H7_PG8_FUNC_FMC_SDCLK 0x680d
1128#define STM32H7_PG8_FUNC_LCD_G7 0x680f
1129#define STM32H7_PG8_FUNC_EVENTOUT 0x6810
1130#define STM32H7_PG8_FUNC_ANALOG 0x6811
1131
1132#define STM32H7_PG9_FUNC_GPIO 0x6900
1133#define STM32H7_PG9_FUNC_SPI1_MISO_I2S1_SDI 0x6906
1134#define STM32H7_PG9_FUNC_USART6_RX 0x6908
1135#define STM32H7_PG9_FUNC_SPDIFRX_IN3 0x6909
1136#define STM32H7_PG9_FUNC_QUADSPI_BK2_IO2 0x690a
1137#define STM32H7_PG9_FUNC_SAI2_FS_B 0x690b
1138#define STM32H7_PG9_FUNC_FMC_NE2_FMC_NCE 0x690d
1139#define STM32H7_PG9_FUNC_DCMI_VSYNC 0x690e
1140#define STM32H7_PG9_FUNC_EVENTOUT 0x6910
1141#define STM32H7_PG9_FUNC_ANALOG 0x6911
1142
1143#define STM32H7_PG10_FUNC_GPIO 0x6a00
1144#define STM32H7_PG10_FUNC_HRTIM_FLT5 0x6a03
1145#define STM32H7_PG10_FUNC_SPI1_NSS_I2S1_WS 0x6a06
1146#define STM32H7_PG10_FUNC_LCD_G3 0x6a0a
1147#define STM32H7_PG10_FUNC_SAI2_SD_B 0x6a0b
1148#define STM32H7_PG10_FUNC_FMC_NE3 0x6a0d
1149#define STM32H7_PG10_FUNC_DCMI_D2 0x6a0e
1150#define STM32H7_PG10_FUNC_LCD_B2 0x6a0f
1151#define STM32H7_PG10_FUNC_EVENTOUT 0x6a10
1152#define STM32H7_PG10_FUNC_ANALOG 0x6a11
1153
1154#define STM32H7_PG11_FUNC_GPIO 0x6b00
1155#define STM32H7_PG11_FUNC_HRTIM_EEV4 0x6b03
1156#define STM32H7_PG11_FUNC_SPI1_SCK_I2S1_CK 0x6b06
1157#define STM32H7_PG11_FUNC_SPDIFRX_IN0 0x6b09
1158#define STM32H7_PG11_FUNC_SDMMC2_D2 0x6b0b
1159#define STM32H7_PG11_FUNC_ETH_MII_TX_EN_ETH_RMII_TX_EN 0x6b0c
1160#define STM32H7_PG11_FUNC_DCMI_D3 0x6b0e
1161#define STM32H7_PG11_FUNC_LCD_B3 0x6b0f
1162#define STM32H7_PG11_FUNC_EVENTOUT 0x6b10
1163#define STM32H7_PG11_FUNC_ANALOG 0x6b11
1164
1165#define STM32H7_PG12_FUNC_GPIO 0x6c00
1166#define STM32H7_PG12_FUNC_LPTIM1_IN1 0x6c02
1167#define STM32H7_PG12_FUNC_HRTIM_EEV5 0x6c03
1168#define STM32H7_PG12_FUNC_SPI6_MISO 0x6c06
1169#define STM32H7_PG12_FUNC_USART6_RTS 0x6c08
1170#define STM32H7_PG12_FUNC_SPDIFRX_IN1 0x6c09
1171#define STM32H7_PG12_FUNC_LCD_B4 0x6c0a
1172#define STM32H7_PG12_FUNC_ETH_MII_TXD1_ETH_RMII_TXD1 0x6c0c
1173#define STM32H7_PG12_FUNC_FMC_NE4 0x6c0d
1174#define STM32H7_PG12_FUNC_LCD_B1 0x6c0f
1175#define STM32H7_PG12_FUNC_EVENTOUT 0x6c10
1176#define STM32H7_PG12_FUNC_ANALOG 0x6c11
1177
1178#define STM32H7_PG13_FUNC_GPIO 0x6d00
1179#define STM32H7_PG13_FUNC_TRACED0 0x6d01
1180#define STM32H7_PG13_FUNC_LPTIM1_OUT 0x6d02
1181#define STM32H7_PG13_FUNC_HRTIM_EEV10 0x6d03
1182#define STM32H7_PG13_FUNC_SPI6_SCK 0x6d06
1183#define STM32H7_PG13_FUNC_USART6_CTS_NSS 0x6d08
1184#define STM32H7_PG13_FUNC_ETH_MII_TXD0_ETH_RMII_TXD0 0x6d0c
1185#define STM32H7_PG13_FUNC_FMC_A24 0x6d0d
1186#define STM32H7_PG13_FUNC_LCD_R0 0x6d0f
1187#define STM32H7_PG13_FUNC_EVENTOUT 0x6d10
1188#define STM32H7_PG13_FUNC_ANALOG 0x6d11
1189
1190#define STM32H7_PG14_FUNC_GPIO 0x6e00
1191#define STM32H7_PG14_FUNC_TRACED1 0x6e01
1192#define STM32H7_PG14_FUNC_LPTIM1_ETR 0x6e02
1193#define STM32H7_PG14_FUNC_SPI6_MOSI 0x6e06
1194#define STM32H7_PG14_FUNC_USART6_TX 0x6e08
1195#define STM32H7_PG14_FUNC_QUADSPI_BK2_IO3 0x6e0a
1196#define STM32H7_PG14_FUNC_ETH_MII_TXD1_ETH_RMII_TXD1 0x6e0c
1197#define STM32H7_PG14_FUNC_FMC_A25 0x6e0d
1198#define STM32H7_PG14_FUNC_LCD_B0 0x6e0f
1199#define STM32H7_PG14_FUNC_EVENTOUT 0x6e10
1200#define STM32H7_PG14_FUNC_ANALOG 0x6e11
1201
1202#define STM32H7_PG15_FUNC_GPIO 0x6f00
1203#define STM32H7_PG15_FUNC_USART6_CTS_NSS 0x6f08
1204#define STM32H7_PG15_FUNC_FMC_SDNCAS 0x6f0d
1205#define STM32H7_PG15_FUNC_DCMI_D13 0x6f0e
1206#define STM32H7_PG15_FUNC_EVENTOUT 0x6f10
1207#define STM32H7_PG15_FUNC_ANALOG 0x6f11
1208
1209#define STM32H7_PH0_FUNC_GPIO 0x7000
1210#define STM32H7_PH0_FUNC_EVENTOUT 0x7010
1211#define STM32H7_PH0_FUNC_ANALOG 0x7011
1212
1213#define STM32H7_PH1_FUNC_GPIO 0x7100
1214#define STM32H7_PH1_FUNC_EVENTOUT 0x7110
1215#define STM32H7_PH1_FUNC_ANALOG 0x7111
1216
1217#define STM32H7_PH2_FUNC_GPIO 0x7200
1218#define STM32H7_PH2_FUNC_LPTIM1_IN2 0x7202
1219#define STM32H7_PH2_FUNC_QUADSPI_BK2_IO0 0x720a
1220#define STM32H7_PH2_FUNC_SAI2_SCK_B 0x720b
1221#define STM32H7_PH2_FUNC_ETH_MII_CRS 0x720c
1222#define STM32H7_PH2_FUNC_FMC_SDCKE0 0x720d
1223#define STM32H7_PH2_FUNC_LCD_R0 0x720f
1224#define STM32H7_PH2_FUNC_EVENTOUT 0x7210
1225#define STM32H7_PH2_FUNC_ANALOG 0x7211
1226
1227#define STM32H7_PH3_FUNC_GPIO 0x7300
1228#define STM32H7_PH3_FUNC_QUADSPI_BK2_IO1 0x730a
1229#define STM32H7_PH3_FUNC_SAI2_MCK_B 0x730b
1230#define STM32H7_PH3_FUNC_ETH_MII_COL 0x730c
1231#define STM32H7_PH3_FUNC_FMC_SDNE0 0x730d
1232#define STM32H7_PH3_FUNC_LCD_R1 0x730f
1233#define STM32H7_PH3_FUNC_EVENTOUT 0x7310
1234#define STM32H7_PH3_FUNC_ANALOG 0x7311
1235
1236#define STM32H7_PH4_FUNC_GPIO 0x7400
1237#define STM32H7_PH4_FUNC_I2C2_SCL 0x7405
1238#define STM32H7_PH4_FUNC_LCD_G5 0x740a
1239#define STM32H7_PH4_FUNC_OTG_HS_ULPI_NXT 0x740b
1240#define STM32H7_PH4_FUNC_LCD_G4 0x740f
1241#define STM32H7_PH4_FUNC_EVENTOUT 0x7410
1242#define STM32H7_PH4_FUNC_ANALOG 0x7411
1243
1244#define STM32H7_PH5_FUNC_GPIO 0x7500
1245#define STM32H7_PH5_FUNC_I2C2_SDA 0x7505
1246#define STM32H7_PH5_FUNC_SPI5_NSS 0x7506
1247#define STM32H7_PH5_FUNC_FMC_SDNWE 0x750d
1248#define STM32H7_PH5_FUNC_EVENTOUT 0x7510
1249#define STM32H7_PH5_FUNC_ANALOG 0x7511
1250
1251#define STM32H7_PH6_FUNC_GPIO 0x7600
1252#define STM32H7_PH6_FUNC_I2C2_SMBA 0x7605
1253#define STM32H7_PH6_FUNC_SPI5_SCK 0x7606
1254#define STM32H7_PH6_FUNC_ETH_MII_RXD2 0x760c
1255#define STM32H7_PH6_FUNC_FMC_SDNE1 0x760d
1256#define STM32H7_PH6_FUNC_DCMI_D8 0x760e
1257#define STM32H7_PH6_FUNC_EVENTOUT 0x7610
1258#define STM32H7_PH6_FUNC_ANALOG 0x7611
1259
1260#define STM32H7_PH7_FUNC_GPIO 0x7700
1261#define STM32H7_PH7_FUNC_I2C3_SCL 0x7705
1262#define STM32H7_PH7_FUNC_SPI5_MISO 0x7706
1263#define STM32H7_PH7_FUNC_ETH_MII_RXD3 0x770c
1264#define STM32H7_PH7_FUNC_FMC_SDCKE1 0x770d
1265#define STM32H7_PH7_FUNC_DCMI_D9 0x770e
1266#define STM32H7_PH7_FUNC_EVENTOUT 0x7710
1267#define STM32H7_PH7_FUNC_ANALOG 0x7711
1268
1269#define STM32H7_PH8_FUNC_GPIO 0x7800
1270#define STM32H7_PH8_FUNC_TIM5_ETR 0x7803
1271#define STM32H7_PH8_FUNC_I2C3_SDA 0x7805
1272#define STM32H7_PH8_FUNC_FMC_D16 0x780d
1273#define STM32H7_PH8_FUNC_DCMI_HSYNC 0x780e
1274#define STM32H7_PH8_FUNC_LCD_R2 0x780f
1275#define STM32H7_PH8_FUNC_EVENTOUT 0x7810
1276#define STM32H7_PH8_FUNC_ANALOG 0x7811
1277
1278#define STM32H7_PH9_FUNC_GPIO 0x7900
1279#define STM32H7_PH9_FUNC_I2C3_SMBA 0x7905
1280#define STM32H7_PH9_FUNC_FMC_D17 0x790d
1281#define STM32H7_PH9_FUNC_DCMI_D0 0x790e
1282#define STM32H7_PH9_FUNC_LCD_R3 0x790f
1283#define STM32H7_PH9_FUNC_EVENTOUT 0x7910
1284#define STM32H7_PH9_FUNC_ANALOG 0x7911
1285
1286#define STM32H7_PH10_FUNC_GPIO 0x7a00
1287#define STM32H7_PH10_FUNC_TIM5_CH1 0x7a03
1288#define STM32H7_PH10_FUNC_I2C4_SMBA 0x7a05
1289#define STM32H7_PH10_FUNC_FMC_D18 0x7a0d
1290#define STM32H7_PH10_FUNC_DCMI_D1 0x7a0e
1291#define STM32H7_PH10_FUNC_LCD_R4 0x7a0f
1292#define STM32H7_PH10_FUNC_EVENTOUT 0x7a10
1293#define STM32H7_PH10_FUNC_ANALOG 0x7a11
1294
1295#define STM32H7_PH11_FUNC_GPIO 0x7b00
1296#define STM32H7_PH11_FUNC_TIM5_CH2 0x7b03
1297#define STM32H7_PH11_FUNC_I2C4_SCL 0x7b05
1298#define STM32H7_PH11_FUNC_FMC_D19 0x7b0d
1299#define STM32H7_PH11_FUNC_DCMI_D2 0x7b0e
1300#define STM32H7_PH11_FUNC_LCD_R5 0x7b0f
1301#define STM32H7_PH11_FUNC_EVENTOUT 0x7b10
1302#define STM32H7_PH11_FUNC_ANALOG 0x7b11
1303
1304#define STM32H7_PH12_FUNC_GPIO 0x7c00
1305#define STM32H7_PH12_FUNC_TIM5_CH3 0x7c03
1306#define STM32H7_PH12_FUNC_I2C4_SDA 0x7c05
1307#define STM32H7_PH12_FUNC_FMC_D20 0x7c0d
1308#define STM32H7_PH12_FUNC_DCMI_D3 0x7c0e
1309#define STM32H7_PH12_FUNC_LCD_R6 0x7c0f
1310#define STM32H7_PH12_FUNC_EVENTOUT 0x7c10
1311#define STM32H7_PH12_FUNC_ANALOG 0x7c11
1312
1313#define STM32H7_PH13_FUNC_GPIO 0x7d00
1314#define STM32H7_PH13_FUNC_TIM8_CH1N 0x7d04
1315#define STM32H7_PH13_FUNC_UART4_TX 0x7d09
1316#define STM32H7_PH13_FUNC_CAN1_TX 0x7d0a
1317#define STM32H7_PH13_FUNC_FMC_D21 0x7d0d
1318#define STM32H7_PH13_FUNC_LCD_G2 0x7d0f
1319#define STM32H7_PH13_FUNC_EVENTOUT 0x7d10
1320#define STM32H7_PH13_FUNC_ANALOG 0x7d11
1321
1322#define STM32H7_PH14_FUNC_GPIO 0x7e00
1323#define STM32H7_PH14_FUNC_TIM8_CH2N 0x7e04
1324#define STM32H7_PH14_FUNC_UART4_RX 0x7e09
1325#define STM32H7_PH14_FUNC_CAN1_RX 0x7e0a
1326#define STM32H7_PH14_FUNC_FMC_D22 0x7e0d
1327#define STM32H7_PH14_FUNC_DCMI_D4 0x7e0e
1328#define STM32H7_PH14_FUNC_LCD_G3 0x7e0f
1329#define STM32H7_PH14_FUNC_EVENTOUT 0x7e10
1330#define STM32H7_PH14_FUNC_ANALOG 0x7e11
1331
1332#define STM32H7_PH15_FUNC_GPIO 0x7f00
1333#define STM32H7_PH15_FUNC_TIM8_CH3N 0x7f04
1334#define STM32H7_PH15_FUNC_CAN1_TXFD 0x7f0a
1335#define STM32H7_PH15_FUNC_FMC_D23 0x7f0d
1336#define STM32H7_PH15_FUNC_DCMI_D11 0x7f0e
1337#define STM32H7_PH15_FUNC_LCD_G4 0x7f0f
1338#define STM32H7_PH15_FUNC_EVENTOUT 0x7f10
1339#define STM32H7_PH15_FUNC_ANALOG 0x7f11
1340
1341#define STM32H7_PI0_FUNC_GPIO 0x8000
1342#define STM32H7_PI0_FUNC_TIM5_CH4 0x8003
1343#define STM32H7_PI0_FUNC_SPI2_NSS_I2S2_WS 0x8006
1344#define STM32H7_PI0_FUNC_CAN1_RXFD 0x800a
1345#define STM32H7_PI0_FUNC_FMC_D24 0x800d
1346#define STM32H7_PI0_FUNC_DCMI_D13 0x800e
1347#define STM32H7_PI0_FUNC_LCD_G5 0x800f
1348#define STM32H7_PI0_FUNC_EVENTOUT 0x8010
1349#define STM32H7_PI0_FUNC_ANALOG 0x8011
1350
1351#define STM32H7_PI1_FUNC_GPIO 0x8100
1352#define STM32H7_PI1_FUNC_TIM8_BKIN2 0x8104
1353#define STM32H7_PI1_FUNC_SPI2_SCK_I2S2_CK 0x8106
1354#define STM32H7_PI1_FUNC_TIM8_BKIN2_COMP12 0x810c
1355#define STM32H7_PI1_FUNC_FMC_D25 0x810d
1356#define STM32H7_PI1_FUNC_DCMI_D8 0x810e
1357#define STM32H7_PI1_FUNC_LCD_G6 0x810f
1358#define STM32H7_PI1_FUNC_EVENTOUT 0x8110
1359#define STM32H7_PI1_FUNC_ANALOG 0x8111
1360
1361#define STM32H7_PI2_FUNC_GPIO 0x8200
1362#define STM32H7_PI2_FUNC_TIM8_CH4 0x8204
1363#define STM32H7_PI2_FUNC_SPI2_MISO_I2S2_SDI 0x8206
1364#define STM32H7_PI2_FUNC_FMC_D26 0x820d
1365#define STM32H7_PI2_FUNC_DCMI_D9 0x820e
1366#define STM32H7_PI2_FUNC_LCD_G7 0x820f
1367#define STM32H7_PI2_FUNC_EVENTOUT 0x8210
1368#define STM32H7_PI2_FUNC_ANALOG 0x8211
1369
1370#define STM32H7_PI3_FUNC_GPIO 0x8300
1371#define STM32H7_PI3_FUNC_TIM8_ETR 0x8304
1372#define STM32H7_PI3_FUNC_SPI2_MOSI_I2S2_SDO 0x8306
1373#define STM32H7_PI3_FUNC_FMC_D27 0x830d
1374#define STM32H7_PI3_FUNC_DCMI_D10 0x830e
1375#define STM32H7_PI3_FUNC_EVENTOUT 0x8310
1376#define STM32H7_PI3_FUNC_ANALOG 0x8311
1377
1378#define STM32H7_PI4_FUNC_GPIO 0x8400
1379#define STM32H7_PI4_FUNC_TIM8_BKIN 0x8404
1380#define STM32H7_PI4_FUNC_SAI2_MCK_A 0x840b
1381#define STM32H7_PI4_FUNC_TIM8_BKIN_COMP12 0x840c
1382#define STM32H7_PI4_FUNC_FMC_NBL2 0x840d
1383#define STM32H7_PI4_FUNC_DCMI_D5 0x840e
1384#define STM32H7_PI4_FUNC_LCD_B4 0x840f
1385#define STM32H7_PI4_FUNC_EVENTOUT 0x8410
1386#define STM32H7_PI4_FUNC_ANALOG 0x8411
1387
1388#define STM32H7_PI5_FUNC_GPIO 0x8500
1389#define STM32H7_PI5_FUNC_TIM8_CH1 0x8504
1390#define STM32H7_PI5_FUNC_SAI2_SCK_A 0x850b
1391#define STM32H7_PI5_FUNC_FMC_NBL3 0x850d
1392#define STM32H7_PI5_FUNC_DCMI_VSYNC 0x850e
1393#define STM32H7_PI5_FUNC_LCD_B5 0x850f
1394#define STM32H7_PI5_FUNC_EVENTOUT 0x8510
1395#define STM32H7_PI5_FUNC_ANALOG 0x8511
1396
1397#define STM32H7_PI6_FUNC_GPIO 0x8600
1398#define STM32H7_PI6_FUNC_TIM8_CH2 0x8604
1399#define STM32H7_PI6_FUNC_SAI2_SD_A 0x860b
1400#define STM32H7_PI6_FUNC_FMC_D28 0x860d
1401#define STM32H7_PI6_FUNC_DCMI_D6 0x860e
1402#define STM32H7_PI6_FUNC_LCD_B6 0x860f
1403#define STM32H7_PI6_FUNC_EVENTOUT 0x8610
1404#define STM32H7_PI6_FUNC_ANALOG 0x8611
1405
1406#define STM32H7_PI7_FUNC_GPIO 0x8700
1407#define STM32H7_PI7_FUNC_TIM8_CH3 0x8704
1408#define STM32H7_PI7_FUNC_SAI2_FS_A 0x870b
1409#define STM32H7_PI7_FUNC_FMC_D29 0x870d
1410#define STM32H7_PI7_FUNC_DCMI_D7 0x870e
1411#define STM32H7_PI7_FUNC_LCD_B7 0x870f
1412#define STM32H7_PI7_FUNC_EVENTOUT 0x8710
1413#define STM32H7_PI7_FUNC_ANALOG 0x8711
1414
1415#define STM32H7_PI8_FUNC_GPIO 0x8800
1416#define STM32H7_PI8_FUNC_EVENTOUT 0x8810
1417#define STM32H7_PI8_FUNC_ANALOG 0x8811
1418
1419#define STM32H7_PI9_FUNC_GPIO 0x8900
1420#define STM32H7_PI9_FUNC_UART4_RX 0x8909
1421#define STM32H7_PI9_FUNC_CAN1_RX 0x890a
1422#define STM32H7_PI9_FUNC_FMC_D30 0x890d
1423#define STM32H7_PI9_FUNC_LCD_VSYNC 0x890f
1424#define STM32H7_PI9_FUNC_EVENTOUT 0x8910
1425#define STM32H7_PI9_FUNC_ANALOG 0x8911
1426
1427#define STM32H7_PI10_FUNC_GPIO 0x8a00
1428#define STM32H7_PI10_FUNC_CAN1_RXFD 0x8a0a
1429#define STM32H7_PI10_FUNC_ETH_MII_RX_ER 0x8a0c
1430#define STM32H7_PI10_FUNC_FMC_D31 0x8a0d
1431#define STM32H7_PI10_FUNC_LCD_HSYNC 0x8a0f
1432#define STM32H7_PI10_FUNC_EVENTOUT 0x8a10
1433#define STM32H7_PI10_FUNC_ANALOG 0x8a11
1434
1435#define STM32H7_PI11_FUNC_GPIO 0x8b00
1436#define STM32H7_PI11_FUNC_LCD_G6 0x8b0a
1437#define STM32H7_PI11_FUNC_OTG_HS_ULPI_DIR 0x8b0b
1438#define STM32H7_PI11_FUNC_EVENTOUT 0x8b10
1439#define STM32H7_PI11_FUNC_ANALOG 0x8b11
1440
1441#define STM32H7_PI12_FUNC_GPIO 0x8c00
1442#define STM32H7_PI12_FUNC_ETH_TX_ER 0x8c0c
1443#define STM32H7_PI12_FUNC_LCD_HSYNC 0x8c0f
1444#define STM32H7_PI12_FUNC_EVENTOUT 0x8c10
1445#define STM32H7_PI12_FUNC_ANALOG 0x8c11
1446
1447#define STM32H7_PI13_FUNC_GPIO 0x8d00
1448#define STM32H7_PI13_FUNC_LCD_VSYNC 0x8d0f
1449#define STM32H7_PI13_FUNC_EVENTOUT 0x8d10
1450#define STM32H7_PI13_FUNC_ANALOG 0x8d11
1451
1452#define STM32H7_PI14_FUNC_GPIO 0x8e00
1453#define STM32H7_PI14_FUNC_LCD_CLK 0x8e0f
1454#define STM32H7_PI14_FUNC_EVENTOUT 0x8e10
1455#define STM32H7_PI14_FUNC_ANALOG 0x8e11
1456
1457#define STM32H7_PI15_FUNC_GPIO 0x8f00
1458#define STM32H7_PI15_FUNC_LCD_G2 0x8f0a
1459#define STM32H7_PI15_FUNC_LCD_R0 0x8f0f
1460#define STM32H7_PI15_FUNC_EVENTOUT 0x8f10
1461#define STM32H7_PI15_FUNC_ANALOG 0x8f11
1462
1463#define STM32H7_PJ0_FUNC_GPIO 0x9000
1464#define STM32H7_PJ0_FUNC_LCD_R7 0x900a
1465#define STM32H7_PJ0_FUNC_LCD_R1 0x900f
1466#define STM32H7_PJ0_FUNC_EVENTOUT 0x9010
1467#define STM32H7_PJ0_FUNC_ANALOG 0x9011
1468
1469#define STM32H7_PJ1_FUNC_GPIO 0x9100
1470#define STM32H7_PJ1_FUNC_LCD_R2 0x910f
1471#define STM32H7_PJ1_FUNC_EVENTOUT 0x9110
1472#define STM32H7_PJ1_FUNC_ANALOG 0x9111
1473
1474#define STM32H7_PJ2_FUNC_GPIO 0x9200
1475#define STM32H7_PJ2_FUNC_DSI_TE 0x920e
1476#define STM32H7_PJ2_FUNC_LCD_R3 0x920f
1477#define STM32H7_PJ2_FUNC_EVENTOUT 0x9210
1478#define STM32H7_PJ2_FUNC_ANALOG 0x9211
1479
1480#define STM32H7_PJ3_FUNC_GPIO 0x9300
1481#define STM32H7_PJ3_FUNC_LCD_R4 0x930f
1482#define STM32H7_PJ3_FUNC_EVENTOUT 0x9310
1483#define STM32H7_PJ3_FUNC_ANALOG 0x9311
1484
1485#define STM32H7_PJ4_FUNC_GPIO 0x9400
1486#define STM32H7_PJ4_FUNC_LCD_R5 0x940f
1487#define STM32H7_PJ4_FUNC_EVENTOUT 0x9410
1488#define STM32H7_PJ4_FUNC_ANALOG 0x9411
1489
1490#define STM32H7_PJ5_FUNC_GPIO 0x9500
1491#define STM32H7_PJ5_FUNC_LCD_R6 0x950f
1492#define STM32H7_PJ5_FUNC_EVENTOUT 0x9510
1493#define STM32H7_PJ5_FUNC_ANALOG 0x9511
1494
1495#define STM32H7_PJ6_FUNC_GPIO 0x9600
1496#define STM32H7_PJ6_FUNC_TIM8_CH2 0x9604
1497#define STM32H7_PJ6_FUNC_LCD_R7 0x960f
1498#define STM32H7_PJ6_FUNC_EVENTOUT 0x9610
1499#define STM32H7_PJ6_FUNC_ANALOG 0x9611
1500
1501#define STM32H7_PJ7_FUNC_GPIO 0x9700
1502#define STM32H7_PJ7_FUNC_TRGIN 0x9701
1503#define STM32H7_PJ7_FUNC_TIM8_CH2N 0x9704
1504#define STM32H7_PJ7_FUNC_LCD_G0 0x970f
1505#define STM32H7_PJ7_FUNC_EVENTOUT 0x9710
1506#define STM32H7_PJ7_FUNC_ANALOG 0x9711
1507
1508#define STM32H7_PJ8_FUNC_GPIO 0x9800
1509#define STM32H7_PJ8_FUNC_TIM1_CH3N 0x9802
1510#define STM32H7_PJ8_FUNC_TIM8_CH1 0x9804
1511#define STM32H7_PJ8_FUNC_UART8_TX 0x9809
1512#define STM32H7_PJ8_FUNC_LCD_G1 0x980f
1513#define STM32H7_PJ8_FUNC_EVENTOUT 0x9810
1514#define STM32H7_PJ8_FUNC_ANALOG 0x9811
1515
1516#define STM32H7_PJ9_FUNC_GPIO 0x9900
1517#define STM32H7_PJ9_FUNC_TIM1_CH3 0x9902
1518#define STM32H7_PJ9_FUNC_TIM8_CH1N 0x9904
1519#define STM32H7_PJ9_FUNC_UART8_RX 0x9909
1520#define STM32H7_PJ9_FUNC_LCD_G2 0x990f
1521#define STM32H7_PJ9_FUNC_EVENTOUT 0x9910
1522#define STM32H7_PJ9_FUNC_ANALOG 0x9911
1523
1524#define STM32H7_PJ10_FUNC_GPIO 0x9a00
1525#define STM32H7_PJ10_FUNC_TIM1_CH2N 0x9a02
1526#define STM32H7_PJ10_FUNC_TIM8_CH2 0x9a04
1527#define STM32H7_PJ10_FUNC_SPI5_MOSI 0x9a06
1528#define STM32H7_PJ10_FUNC_LCD_G3 0x9a0f
1529#define STM32H7_PJ10_FUNC_EVENTOUT 0x9a10
1530#define STM32H7_PJ10_FUNC_ANALOG 0x9a11
1531
1532#define STM32H7_PJ11_FUNC_GPIO 0x9b00
1533#define STM32H7_PJ11_FUNC_TIM1_CH2 0x9b02
1534#define STM32H7_PJ11_FUNC_TIM8_CH2N 0x9b04
1535#define STM32H7_PJ11_FUNC_SPI5_MISO 0x9b06
1536#define STM32H7_PJ11_FUNC_LCD_G4 0x9b0f
1537#define STM32H7_PJ11_FUNC_EVENTOUT 0x9b10
1538#define STM32H7_PJ11_FUNC_ANALOG 0x9b11
1539
1540#define STM32H7_PJ12_FUNC_GPIO 0x9c00
1541#define STM32H7_PJ12_FUNC_TRGOUT 0x9c01
1542#define STM32H7_PJ12_FUNC_LCD_G3 0x9c0a
1543#define STM32H7_PJ12_FUNC_LCD_B0 0x9c0f
1544#define STM32H7_PJ12_FUNC_EVENTOUT 0x9c10
1545#define STM32H7_PJ12_FUNC_ANALOG 0x9c11
1546
1547#define STM32H7_PJ13_FUNC_GPIO 0x9d00
1548#define STM32H7_PJ13_FUNC_LCD_B4 0x9d0a
1549#define STM32H7_PJ13_FUNC_LCD_B1 0x9d0f
1550#define STM32H7_PJ13_FUNC_EVENTOUT 0x9d10
1551#define STM32H7_PJ13_FUNC_ANALOG 0x9d11
1552
1553#define STM32H7_PJ14_FUNC_GPIO 0x9e00
1554#define STM32H7_PJ14_FUNC_LCD_B2 0x9e0f
1555#define STM32H7_PJ14_FUNC_EVENTOUT 0x9e10
1556#define STM32H7_PJ14_FUNC_ANALOG 0x9e11
1557
1558#define STM32H7_PJ15_FUNC_GPIO 0x9f00
1559#define STM32H7_PJ15_FUNC_LCD_B3 0x9f0f
1560#define STM32H7_PJ15_FUNC_EVENTOUT 0x9f10
1561#define STM32H7_PJ15_FUNC_ANALOG 0x9f11
1562
1563#define STM32H7_PK0_FUNC_GPIO 0xa000
1564#define STM32H7_PK0_FUNC_TIM1_CH1N 0xa002
1565#define STM32H7_PK0_FUNC_TIM8_CH3 0xa004
1566#define STM32H7_PK0_FUNC_SPI5_SCK 0xa006
1567#define STM32H7_PK0_FUNC_LCD_G5 0xa00f
1568#define STM32H7_PK0_FUNC_EVENTOUT 0xa010
1569#define STM32H7_PK0_FUNC_ANALOG 0xa011
1570
1571#define STM32H7_PK1_FUNC_GPIO 0xa100
1572#define STM32H7_PK1_FUNC_TIM1_CH1 0xa102
1573#define STM32H7_PK1_FUNC_TIM8_CH3N 0xa104
1574#define STM32H7_PK1_FUNC_SPI5_NSS 0xa106
1575#define STM32H7_PK1_FUNC_LCD_G6 0xa10f
1576#define STM32H7_PK1_FUNC_EVENTOUT 0xa110
1577#define STM32H7_PK1_FUNC_ANALOG 0xa111
1578
1579#define STM32H7_PK2_FUNC_GPIO 0xa200
1580#define STM32H7_PK2_FUNC_TIM1_BKIN 0xa202
1581#define STM32H7_PK2_FUNC_TIM8_BKIN 0xa204
1582#define STM32H7_PK2_FUNC_TIM8_BKIN_COMP12 0xa20b
1583#define STM32H7_PK2_FUNC_TIM1_BKIN_COMP12 0xa20c
1584#define STM32H7_PK2_FUNC_LCD_G7 0xa20f
1585#define STM32H7_PK2_FUNC_EVENTOUT 0xa210
1586#define STM32H7_PK2_FUNC_ANALOG 0xa211
1587
1588#define STM32H7_PK3_FUNC_GPIO 0xa300
1589#define STM32H7_PK3_FUNC_LCD_B4 0xa30f
1590#define STM32H7_PK3_FUNC_EVENTOUT 0xa310
1591#define STM32H7_PK3_FUNC_ANALOG 0xa311
1592
1593#define STM32H7_PK4_FUNC_GPIO 0xa400
1594#define STM32H7_PK4_FUNC_LCD_B5 0xa40f
1595#define STM32H7_PK4_FUNC_EVENTOUT 0xa410
1596#define STM32H7_PK4_FUNC_ANALOG 0xa411
1597
1598#define STM32H7_PK5_FUNC_GPIO 0xa500
1599#define STM32H7_PK5_FUNC_LCD_B6 0xa50f
1600#define STM32H7_PK5_FUNC_EVENTOUT 0xa510
1601#define STM32H7_PK5_FUNC_ANALOG 0xa511
1602
1603#define STM32H7_PK6_FUNC_GPIO 0xa600
1604#define STM32H7_PK6_FUNC_LCD_B7 0xa60f
1605#define STM32H7_PK6_FUNC_EVENTOUT 0xa610
1606#define STM32H7_PK6_FUNC_ANALOG 0xa611
1607
1608#define STM32H7_PK7_FUNC_GPIO 0xa700
1609#define STM32H7_PK7_FUNC_LCD_DE 0xa70f
1610#define STM32H7_PK7_FUNC_EVENTOUT 0xa710
1611#define STM32H7_PK7_FUNC_ANALOG 0xa711
1612
1613#endif /* _DT_BINDINGS_STM32H7_PINFUNC_H */
diff --git a/include/dt-bindings/power/r8a77970-sysc.h b/include/dt-bindings/power/r8a77970-sysc.h
new file mode 100644
index 000000000000..bf54779d1625
--- /dev/null
+++ b/include/dt-bindings/power/r8a77970-sysc.h
@@ -0,0 +1,32 @@
1/*
2 * Copyright (C) 2017 Cogent Embedded Inc.
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#ifndef __DT_BINDINGS_POWER_R8A77970_SYSC_H__
9#define __DT_BINDINGS_POWER_R8A77970_SYSC_H__
10
11/*
12 * These power domain indices match the numbers of the interrupt bits
13 * representing the power areas in the various Interrupt Registers
14 * (e.g. SYSCISR, Interrupt Status Register)
15 */
16
17#define R8A77970_PD_CA53_CPU0 5
18#define R8A77970_PD_CA53_CPU1 6
19#define R8A77970_PD_CR7 13
20#define R8A77970_PD_CA53_SCU 21
21#define R8A77970_PD_A2IR0 23
22#define R8A77970_PD_A3IR 24
23#define R8A77970_PD_A2IR1 27
24#define R8A77970_PD_A2IR2 28
25#define R8A77970_PD_A2IR3 29
26#define R8A77970_PD_A2SC0 30
27#define R8A77970_PD_A2SC1 31
28
29/* Always-on power area */
30#define R8A77970_PD_ALWAYS_ON 32
31
32#endif /* __DT_BINDINGS_POWER_R8A77970_SYSC_H__ */
diff --git a/include/dt-bindings/thermal/tegra186-bpmp-thermal.h b/include/dt-bindings/thermal/tegra186-bpmp-thermal.h
new file mode 100644
index 000000000000..a96b8fa31aab
--- /dev/null
+++ b/include/dt-bindings/thermal/tegra186-bpmp-thermal.h
@@ -0,0 +1,14 @@
1/*
2 * This header provides constants for binding nvidia,tegra186-bpmp-thermal.
3 */
4
5#ifndef _DT_BINDINGS_THERMAL_TEGRA186_BPMP_THERMAL_H
6#define _DT_BINDINGS_THERMAL_TEGRA186_BPMP_THERMAL_H
7
8#define TEGRA186_BPMP_THERMAL_ZONE_CPU 2
9#define TEGRA186_BPMP_THERMAL_ZONE_GPU 3
10#define TEGRA186_BPMP_THERMAL_ZONE_AUX 4
11#define TEGRA186_BPMP_THERMAL_ZONE_PLLX 5
12#define TEGRA186_BPMP_THERMAL_ZONE_AO 6
13
14#endif